/* themes/shop/default/build/assets/app-DJQ56iRS.css */
*,:before,:after{--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: rgb(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: rgb(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: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.container{width:100%;margin-right:auto;margin-left:auto;padding-right:90px;padding-left:90px}@media (min-width: 1440px){.container{max-width:1440px}}::-moz-selection{background-color:#060c3b33}::selection{background-color:#060c3b33}input{outline:2px solid transparent;outline-offset:2px}button:disabled{cursor:not-allowed;opacity:.5}button:disabled:hover{cursor:not-allowed;opacity:.5}[class^=icon-],[class*=" icon-"]{font-family:bagisto-shop!important;speak:never;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1!important;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.icon-gdpr-safe:before{content:""}.icon-checkout-address:before{content:""}.icon-edit:before{content:""}.icon-add-new:before{content:""}.icon-arrow-down:before{content:""}.icon-arrow-left-stylish:before{content:""}.icon-arrow-left:before{content:""}.icon-arrow-right-stylish:before{content:""}.icon-arrow-right:before{content:""}.icon-arrow-up:before{content:""}.icon-astreisk:before{content:""}.icon-bin:before{content:""}.icon-box-fill:before{content:""}.icon-calendar:before{content:""}.icon-camera-fill:before{content:""}.icon-camera:before{content:""}.icon-cancel:before{content:""}.icon-cart:before{content:""}.icon-check-box:before{content:""}.icon-compare-1:before{content:""}.icon-compare:before{content:""}.icon-dislike:before{content:""}.icon-dollar-sign:before{content:""}.icon-double-arrow:before{content:""}.icon-download:before{content:""}.icon-email:before{content:""}.icon-error:before{content:""}.icon-eye:before{content:""}.icon-filter-1:before{content:""}.icon-filter-fill:before{content:""}.icon-filter:before{content:""}.icon-flate-rate:before{content:""}.icon-Free-Shipping:before{content:""}.icon-grid-view-fill:before{content:""}.icon-grid-view:before{content:""}.icon-hamburger:before{content:""}.icon-heart-1:before{content:""}.icon-heart-2:before{content:""}.icon-heart-fill:before{content:""}.icon-heart:before{content:""}.icon-left-arrow:before{content:""}.icon-like:before{content:""}.icon-listing-fill:before{content:""}.icon-listing:before{content:""}.icon-location:before{content:""}.icon-minus:before{content:""}.icon-more:before{content:""}.icon-orders:before{content:""}.icon-pen:before{content:""}.icon-plus:before{content:""}.icon-product:before{content:""}.icon-radio-select:before{content:""}.icon-radio-unselect:before{content:""}.icon-right-arrow:before{content:""}.icon-search:before{content:""}.icon-share:before{content:""}.icon-sort-1:before{content:""}.icon-sort-by:before{content:""}.icon-sort:before{content:"";color:#7d7d7d}.icon-star-fill:before{content:""}.icon-star:before{content:""}.icon-support:before{content:""}.icon-tick:before{content:""}.icon-toast-done:before{content:""}.icon-toast-error:before{content:""}.icon-toast-exclamation-mark:before{content:""}.icon-toast-info:before{content:""}.icon-truck:before{content:""}.icon-uncheck:before{content:""}.icon-users:before{content:""}.journal-scroll::-webkit-scrollbar{width:14px;cursor:pointer}.journal-scroll::-webkit-scrollbar-track{background-color:#fff;cursor:pointer;border-radius:12px;border:1px solid #e9e9e9}.journal-scroll::-webkit-scrollbar-thumb{cursor:pointer;background-color:#e9e9e9;border-radius:12px;border:3px solid transparent;background-clip:content-box}.scrollbar-width-hidden{-ms-overflow-style:none;scrollbar-width:none}.scrollbar-width-hidden::-webkit-scrollbar{display:none}.custom-select{-webkit-appearance:none;-moz-appearance:none;background:transparent;background-image:url("data:image/svg+xml;utf8,<svg fill='black' height='24' viewBox='0 0 24 24' width='24' xmlns='http://www.w3.org/2000/svg'><path d='M7 10l5 5 5-5z'/><path d='M0 0h24v24H0z' fill='none'/></svg>");background-repeat:no-repeat;background-position-x:calc(100% - 10px);background-position-y:50%}[dir=rtl] .custom-select{background-position-x:calc(100% - (100% - 10px))}*{box-sizing:border-box;font-family:Roboto,sans-serif}.scrollbar-hide::-webkit-scrollbar{display:none}.scrollbar-hide{-ms-overflow-style:none;scrollbar-width:none}.label-pending,.label-processing,.label-closed,.label-canceled,.label-info,.label-completed,.label-active{max-width:-moz-max-content;max-width:max-content;border-radius:35px;padding-top:1px;padding-bottom:1px;padding-left:.375rem;padding-right:.375rem;font-size:12px;font-weight:600;--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.label-pending{--tw-bg-opacity: 1;background-color:rgb(234 179 8 / var(--tw-bg-opacity, 1))}.label-processing{--tw-bg-opacity: 1;background-color:rgb(8 145 178 / var(--tw-bg-opacity, 1))}.label-completed,.label-active{--tw-bg-opacity: 1;background-color:rgb(22 163 74 / var(--tw-bg-opacity, 1))}.label-closed{--tw-bg-opacity: 1;background-color:rgb(79 70 229 / var(--tw-bg-opacity, 1))}.label-canceled{--tw-bg-opacity: 1;background-color:rgb(225 29 72 / var(--tw-bg-opacity, 1))}.label-info{--tw-bg-opacity: 1;background-color:rgb(148 163 184 / var(--tw-bg-opacity, 1))}.primary-button{display:flex;max-width:-moz-max-content;max-width:max-content;cursor:pointer;place-content:center;align-items:center;-moz-column-gap:.375rem;column-gap:.375rem;border-radius:.75rem;border-width:1px;--tw-border-opacity: 1;border-color:rgb(6 12 59 / var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgb(6 12 59 / var(--tw-bg-opacity, 1));padding:1rem 2rem;font-weight:500;--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1));transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.primary-button:hover{opacity:.9}.secondary-button{display:flex;max-width:-moz-max-content;max-width:max-content;cursor:pointer;place-content:center;align-items:center;-moz-column-gap:.375rem;column-gap:.375rem;border-radius:.75rem;border-width:1px;--tw-border-opacity: 1;border-color:rgb(6 12 59 / var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1));padding:1rem 2rem;font-weight:500;--tw-text-opacity: 1;color:rgb(6 12 59 / var(--tw-text-opacity, 1));transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.secondary-button:hover{background-color:#050e3a0d}.shimmer{animation-duration:2.2s;animation-fill-mode:forwards;animation-iteration-count:infinite;animation-name:skeleton;animation-timing-function:linear;background:linear-gradient(to right,#f6f6f6 8%,#f0f0f0 18%,#f6f6f6 33%);background-size:1250px 100%}@keyframes skeleton{0%{background-position:-1250px 0}to{background-position:1250px 0}}@keyframes on-fade{0%{opacity:0}to{opacity:1}}.wrapper-404{position:relative;font-size:394px;perspective:4.5em;overflow:clip;place-self:stretch;top:50%;transform:translateY(-62%)}.glow-404,.glow-shadow-404{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-content:center;font-family:"DM Serif Display";overflow:hidden;letter-spacing:24px}.glow-404{background-clip:text;-webkit-background-clip:text;color:#060c3b}.glow-shadow-404{color:#e6e7eb;mix-blend-mode:darken;transform:translateY(15.5%) rotateX(243deg) scaleY(-1) translateY(-23%) scaleY(1.35) translate(7%) skew(-45deg)}canvas[resize]{width:100%;height:100vh}html{margin-top:0!important}.required:after{content:"*"}.skip-to-main-content-link{position:absolute;z-index:999;--tw-bg-opacity: 1;background-color:rgb(0 0 0 / var(--tw-bg-opacity, 1));padding:1em;--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1));opacity:0}.skip-to-main-content-link:where([dir=ltr],[dir=ltr] *){left:-9999px}.skip-to-main-content-link:where([dir=rtl],[dir=rtl] *){right:-9999px}.skip-to-main-content-link:focus{opacity:1}.skip-to-main-content-link:focus:where([dir=ltr],[dir=ltr] *){left:50%;--tw-translate-x: 50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.skip-to-main-content-link:focus:where([dir=rtl],[dir=rtl] *){right:50%;--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.pointer-events-none{pointer-events:none}.pointer-events-auto{pointer-events:auto}.visible{visibility:visible}.collapse{visibility:collapse}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.-inset-px{top:-1px;right:-1px;bottom:-1px;left:-1px}.inset-0{top:0;right:0;bottom:0;left:0}.inset-x-0{left:0;right:0}.inset-y-0{top:0;bottom:0}.-left-1{left:-.25rem}.-left-10{left:-2.5rem}.-right-1{right:-.25rem}.-right-6{right:-1.5rem}.-top-2\.5{top:-.625rem}.-top-4{top:-1rem}.bottom-0{bottom:0}.bottom-1\.5{bottom:.375rem}.bottom-10{bottom:2.5rem}.bottom-3{bottom:.75rem}.bottom-4{bottom:1rem}.bottom-5{bottom:1.25rem}.left-0{left:0}.left-1\/2{left:50%}.left-1\/4{left:25%}.left-2\.5{left:.625rem}.right-0{right:0}.right-2\.5{right:.625rem}.top-0{top:0}.top-1\.5{top:.375rem}.top-1\/2{top:50%}.top-10{top:2.5rem}.top-16{top:4rem}.top-2\.5{top:.625rem}.top-20{top:5rem}.top-24{top:6rem}.top-3{top:.75rem}.top-4{top:1rem}.top-5{top:1.25rem}.top-8{top:2rem}.top-9{top:2.25rem}.top-\[74\%\]{top:74%}.top-\[78px\]{top:78px}.z-10{z-index:10}.z-20{z-index:20}.z-\[1000\]{z-index:1000}.z-\[1001\]{z-index:1001}.z-\[1\]{z-index:1}.z-\[999\]{z-index:999}.float-right{float:right}.-m-0\.5{margin:-.125rem}.m-0{margin:0}.m-1{margin:.25rem}.m-\[0_auto_20px_auto\]{margin:0 auto 20px}.m-auto{margin:auto}.mx-1{margin-left:.25rem;margin-right:.25rem}.mx-2\.5{margin-left:.625rem;margin-right:.625rem}.mx-4{margin-left:1rem;margin-right:1rem}.mx-auto{margin-left:auto;margin-right:auto}.my-2{margin-top:.5rem;margin-bottom:.5rem}.my-2\.5{margin-top:.625rem;margin-bottom:.625rem}.my-4{margin-top:1rem;margin-bottom:1rem}.my-8{margin-top:2rem;margin-bottom:2rem}.my-auto{margin-top:auto;margin-bottom:auto}.\!mb-0{margin-bottom:0!important}.\!mb-1{margin-bottom:.25rem!important}.\!mb-2{margin-bottom:.5rem!important}.\!mb-2\.5{margin-bottom:.625rem!important}.\!mb-4{margin-bottom:1rem!important}.\!mt-0{margin-top:0!important}.-mt-1{margin-top:-.25rem}.-mt-12{margin-top:-3rem}.-mt-9{margin-top:-2.25rem}.-mt-\[22px\]{margin-top:-22px}.mb-0{margin-bottom:0}.mb-0\.5{margin-bottom:.125rem}.mb-1{margin-bottom:.25rem}.mb-1\.5{margin-bottom:.375rem}.mb-2{margin-bottom:.5rem}.mb-2\.5{margin-bottom:.625rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-5{margin-bottom:1.25rem}.mb-6{margin-bottom:1.5rem}.mb-7{margin-bottom:1.75rem}.mb-8{margin-bottom:2rem}.ml-1{margin-left:.25rem}.ml-2{margin-left:.5rem}.mt-0{margin-top:0}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-1\.5{margin-top:.375rem}.mt-10{margin-top:2.5rem}.mt-11{margin-top:2.75rem}.mt-12{margin-top:3rem}.mt-14{margin-top:3.5rem}.mt-16{margin-top:4rem}.mt-2{margin-top:.5rem}.mt-2\.5{margin-top:.625rem}.mt-20{margin-top:5rem}.mt-3{margin-top:.75rem}.mt-32{margin-top:8rem}.mt-4{margin-top:1rem}.mt-5{margin-top:1.25rem}.mt-6{margin-top:1.5rem}.mt-7{margin-top:1.75rem}.mt-8{margin-top:2rem}.mt-9{margin-top:2.25rem}.mt-\[34px\]{margin-top:34px}.mt-\[60px\]{margin-top:60px}.box-border{box-sizing:border-box}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.aspect-\[2\.743\/1\]{aspect-ratio:2.743/1}.aspect-\[4\/1\]{aspect-ratio:4/1}.aspect-square{aspect-ratio:1 / 1}.h-1{height:.25rem}.h-1\.5{height:.375rem}.h-10{height:2.5rem}.h-12{height:3rem}.h-14{height:3.5rem}.h-16{height:4rem}.h-20{height:5rem}.h-24{height:6rem}.h-28{height:7rem}.h-3{height:.75rem}.h-3\.5{height:.875rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-80{height:20rem}.h-9{height:2.25rem}.h-\[100px\]{height:100px}.h-\[100vh\]{height:100vh}.h-\[110px\]{height:110px}.h-\[146px\]{height:146px}.h-\[17px\]{height:17px}.h-\[18px\]{height:18px}.h-\[19px\]{height:19px}.h-\[200px\]{height:200px}.h-\[21px\]{height:21px}.h-\[23px\]{height:23px}.h-\[25px\]{height:25px}.h-\[27px\]{height:27px}.h-\[29px\]{height:29px}.h-\[30px\]{height:30px}.h-\[37\.5px\]{height:37.5px}.h-\[37px\]{height:37px}.h-\[38px\]{height:38px}.h-\[39px\]{height:39px}.h-\[42px\]{height:42px}.h-\[45px\]{height:45px}.h-\[46px\]{height:46px}.h-\[476px\]{height:476px}.h-\[50px\]{height:50px}.h-\[52px\]{height:52px}.h-\[54px\]{height:54px}.h-\[60px\]{height:60px}.h-\[77px\]{height:77px}.h-\[90px\]{height:90px}.h-\[95px\]{height:95px}.h-\[calc\(100vh-74px\)\]{height:calc(100vh - 74px)}.h-auto{height:auto}.h-fit{height:-moz-fit-content;height:fit-content}.h-full{height:100%}.h-max{height:-moz-max-content;height:max-content}.max-h-10{max-height:2.5rem}.max-h-11{max-height:2.75rem}.max-h-12{max-height:3rem}.max-h-14{max-height:3.5rem}.max-h-20{max-height:5rem}.max-h-28{max-height:7rem}.max-h-4{max-height:1rem}.max-h-9{max-height:2.25rem}.max-h-\[100px\]{max-height:100px}.max-h-\[110px\]{max-height:110px}.max-h-\[1320px\]{max-height:1320px}.max-h-\[146px\]{max-height:146px}.max-h-\[258px\]{max-height:258px}.max-h-\[300px\]{max-height:300px}.max-h-\[30px\]{max-height:30px}.max-h-\[500px\]{max-height:500px}.max-h-\[50px\]{max-height:50px}.max-h-\[540px\]{max-height:540px}.max-h-\[580px\]{max-height:580px}.max-h-\[610px\]{max-height:610px}.max-h-\[80px\]{max-height:80px}.max-h-\[90px\]{max-height:90px}.max-h-\[95px\]{max-height:95px}.max-h-full{max-height:100%}.max-h-screen{max-height:100vh}.min-h-0{min-height:0px}.min-h-10{min-height:2.5rem}.min-h-5{min-height:1.25rem}.min-h-\[100px\]{min-height:100px}.min-h-\[110px\]{min-height:110px}.min-h-\[258px\]{min-height:258px}.min-h-\[30px\]{min-height:30px}.min-h-\[34px\]{min-height:34px}.min-h-\[500px\]{min-height:500px}.min-h-\[607px\]{min-height:607px}.min-h-\[78px\]{min-height:78px}.min-h-\[80px\]{min-height:80px}.min-h-full{min-height:100%}.\!w-full{width:100%!important}.w-0\.5{width:.125rem}.w-1\.5{width:.375rem}.w-1\/4{width:25%}.w-1\/5{width:20%}.w-10{width:2.5rem}.w-11{width:2.75rem}.w-12{width:3rem}.w-14{width:3.5rem}.w-16{width:4rem}.w-2\.5{width:.625rem}.w-2\/4{width:50%}.w-2\/5{width:40%}.w-20{width:5rem}.w-24{width:6rem}.w-28{width:7rem}.w-3{width:.75rem}.w-3\.5{width:.875rem}.w-3\/4{width:75%}.w-3\/5{width:60%}.w-32{width:8rem}.w-36{width:9rem}.w-4{width:1rem}.w-4\/5{width:80%}.w-40{width:10rem}.w-5{width:1.25rem}.w-56{width:14rem}.w-6{width:1.5rem}.w-60{width:15rem}.w-72{width:18rem}.w-8{width:2rem}.w-9{width:2.25rem}.w-\[100px\]{width:100px}.w-\[108px\]{width:108px}.w-\[110px\]{width:110px}.w-\[131px\]{width:131px}.w-\[15\%\]{width:15%}.w-\[150\.172px\]{width:150.172px}.w-\[150px\]{width:150px}.w-\[158px\]{width:158px}.w-\[161px\]{width:161px}.w-\[165px\]{width:165px}.w-\[168px\]{width:168px}.w-\[171\.516px\]{width:171.516px}.w-\[180px\]{width:180px}.w-\[185px\]{width:185px}.w-\[190px\]{width:190px}.w-\[200px\]{width:200px}.w-\[217px\]{width:217px}.w-\[225px\]{width:225px}.w-\[245px\]{width:245px}.w-\[250px\]{width:250px}.w-\[275px\]{width:275px}.w-\[279px\]{width:279px}.w-\[30\%\]{width:30%}.w-\[300px\]{width:300px}.w-\[302px\]{width:302px}.w-\[30px\]{width:30px}.w-\[31\%\]{width:31%}.w-\[311px\]{width:311px}.w-\[33\%\]{width:33%}.w-\[35\%\]{width:35%}.w-\[356px\]{width:356px}.w-\[35px\]{width:35px}.w-\[36\%\]{width:36%}.w-\[37px\]{width:37px}.w-\[38\%\]{width:38%}.w-\[38px\]{width:38px}.w-\[400px\]{width:400px}.w-\[418px\]{width:418px}.w-\[420px\]{width:420px}.w-\[442px\]{width:442px}.w-\[455px\]{width:455px}.w-\[45px\]{width:45px}.w-\[46px\]{width:46px}.w-\[50\%\]{width:50%}.w-\[500px\]{width:500px}.w-\[50px\]{width:50px}.w-\[55\%\]{width:55%}.w-\[56px\]{width:56px}.w-\[60px\]{width:60px}.w-\[70\%\]{width:70%}.w-\[72px\]{width:72px}.w-\[75px\]{width:75px}.w-\[84px\]{width:84px}.w-\[88px\]{width:88px}.w-\[90\%\]{width:90%}.w-\[90px\]{width:90px}.w-\[94px\]{width:94px}.w-auto{width:auto}.w-fit{width:-moz-fit-content;width:fit-content}.w-full{width:100%}.w-max{width:-moz-max-content;width:max-content}.w-screen{width:100vw}.min-w-0{min-width:0px}.min-w-10{min-width:2.5rem}.min-w-12{min-width:3rem}.min-w-20{min-width:5rem}.min-w-32{min-width:8rem}.min-w-9{min-width:2.25rem}.min-w-\[100px\]{min-width:100px}.min-w-\[110px\]{min-width:110px}.min-w-\[120px\]{min-width:120px}.min-w-\[150px\]{min-width:150px}.min-w-\[250px\]{min-width:250px}.min-w-\[291px\]{min-width:291px}.min-w-\[304px\]{min-width:304px}.min-w-\[311px\]{min-width:311px}.min-w-\[342px\]{min-width:342px}.min-w-\[450px\]{min-width:450px}.min-w-\[500px\]{min-width:500px}.min-w-\[50px\]{min-width:50px}.min-w-\[560px\]{min-width:560px}.min-w-\[80px\]{min-width:80px}.min-w-fit{min-width:-moz-fit-content;min-width:fit-content}.min-w-max{min-width:-moz-max-content;min-width:max-content}.max-w-10{max-width:2.5rem}.max-w-14{max-width:3.5rem}.max-w-24{max-width:6rem}.max-w-28{max-width:7rem}.max-w-32{max-width:8rem}.max-w-4{max-width:1rem}.max-w-\[100px\]{max-width:100px}.max-w-\[110px\]{max-width:110px}.max-w-\[120px\]{max-width:120px}.max-w-\[1260px\]{max-width:1260px}.max-w-\[150px\]{max-width:150px}.max-w-\[200px\]{max-width:200px}.max-w-\[217px\]{max-width:217px}.max-w-\[218px\]{max-width:218px}.max-w-\[250px\]{max-width:250px}.max-w-\[286px\]{max-width:286px}.max-w-\[288px\]{max-width:288px}.max-w-\[291px\]{max-width:291px}.max-w-\[311px\]{max-width:311px}.max-w-\[365px\]{max-width:365px}.max-w-\[374px\]{max-width:374px}.max-w-\[380px\]{max-width:380px}.max-w-\[400px\]{max-width:400px}.max-w-\[408px\]{max-width:408px}.max-w-\[414px\]{max-width:414px}.max-w-\[420px\]{max-width:420px}.max-w-\[42px\]{max-width:42px}.max-w-\[445px\]{max-width:445px}.max-w-\[470px\]{max-width:470px}.max-w-\[475px\]{max-width:475px}.max-w-\[500px\]{max-width:500px}.max-w-\[560px\]{max-width:560px}.max-w-\[590px\]{max-width:590px}.max-w-\[595px\]{max-width:595px}.max-w-\[70\%\]{max-width:70%}.max-w-\[80px\]{max-width:80px}.max-w-\[870px\]{max-width:870px}.max-w-\[90px\]{max-width:90px}.max-w-full{max-width:100%}.max-w-max{max-width:-moz-max-content;max-width:max-content}.max-w-none{max-width:none}.flex-1{flex:1 1 0%}.flex-auto{flex:1 1 auto}.flex-initial{flex:0 1 auto}.flex-shrink-0{flex-shrink:0}.border-collapse{border-collapse:collapse}.-translate-x-1\/2{--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-1\/2{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-full{--tw-translate-y: -100%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-0{--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-full{--tw-translate-x: 100%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-0{--tw-translate-y: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-1{--tw-translate-y: .25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-4{--tw-translate-y: 1rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-9{--tw-translate-y: 2.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-full{--tw-translate-y: 100%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-100{--tw-scale-x: 1;--tw-scale-y: 1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-95{--tw-scale-x: .95;--tw-scale-y: .95;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.animate-\[on-fade_0\.5s_ease-in-out\]{animation:on-fade .5s ease-in-out}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:spin 1s linear infinite}.cursor-grab{cursor:grab}.cursor-grabbing{cursor:grabbing}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.cursor-zoom-in{cursor:zoom-in}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.select-all{-webkit-user-select:all;-moz-user-select:all;user-select:all}.resize{resize:both}.appearance-none{-webkit-appearance:none;-moz-appearance:none;appearance:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.grid-cols-\[1fr\]{grid-template-columns:1fr}.grid-cols-\[1fr_2fr\]{grid-template-columns:1fr 2fr}.grid-cols-\[1fr_auto\]{grid-template-columns:1fr auto}.grid-cols-\[1fr_auto_1fr\]{grid-template-columns:1fr auto 1fr}.grid-cols-\[2fr_1fr_1fr\]{grid-template-columns:2fr 1fr 1fr}.grid-cols-\[2fr_3fr\]{grid-template-columns:2fr 3fr}.grid-cols-\[auto_1fr\]{grid-template-columns:auto 1fr}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.place-content-center{place-content:center}.place-content-start{place-content:start}.place-content-baseline{place-content:baseline}.place-items-end{place-items:end}.place-items-center{place-items:center}.content-center{align-content:center}.content-start{align-content:flex-start}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.items-baseline{align-items:baseline}.justify-start{justify-content:flex-start}.\!justify-end{justify-content:flex-end!important}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-stretch{justify-content:stretch}.justify-items-end{justify-items:end}.justify-items-center{justify-items:center}.gap-0\.5{gap:.125rem}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-10{gap:2.5rem}.gap-12{gap:3rem}.gap-16{gap:4rem}.gap-2{gap:.5rem}.gap-2\.5{gap:.625rem}.gap-20{gap:5rem}.gap-24{gap:6rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-5{gap:1.25rem}.gap-6{gap:1.5rem}.gap-7{gap:1.75rem}.gap-8{gap:2rem}.gap-9{gap:2.25rem}.gap-x-1{-moz-column-gap:.25rem;column-gap:.25rem}.gap-x-1\.5{-moz-column-gap:.375rem;column-gap:.375rem}.gap-x-10{-moz-column-gap:2.5rem;column-gap:2.5rem}.gap-x-11{-moz-column-gap:2.75rem;column-gap:2.75rem}.gap-x-14{-moz-column-gap:3.5rem;column-gap:3.5rem}.gap-x-2{-moz-column-gap:.5rem;column-gap:.5rem}.gap-x-2\.5{-moz-column-gap:.625rem;column-gap:.625rem}.gap-x-3\.5{-moz-column-gap:.875rem;column-gap:.875rem}.gap-x-4{-moz-column-gap:1rem;column-gap:1rem}.gap-x-5{-moz-column-gap:1.25rem;column-gap:1.25rem}.gap-x-6{-moz-column-gap:1.5rem;column-gap:1.5rem}.gap-x-8{-moz-column-gap:2rem;column-gap:2rem}.gap-x-9{-moz-column-gap:2.25rem;column-gap:2.25rem}.gap-x-\[15px\]{-moz-column-gap:15px;column-gap:15px}.gap-x-\[70px\]{-moz-column-gap:70px;column-gap:70px}.gap-y-0\.5{row-gap:.125rem}.gap-y-1\.5{row-gap:.375rem}.gap-y-2\.5{row-gap:.625rem}.gap-y-3{row-gap:.75rem}.gap-y-5{row-gap:1.25rem}.gap-y-6{row-gap:1.5rem}.gap-y-8{row-gap:2rem}.-space-x-px>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(-1px * var(--tw-space-x-reverse));margin-left:calc(-1px * calc(1 - var(--tw-space-x-reverse)))}.space-x-3>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.75rem * var(--tw-space-x-reverse));margin-left:calc(.75rem * calc(1 - var(--tw-space-x-reverse)))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.divide-y>:not([hidden])~:not([hidden]){--tw-divide-y-reverse: 0;border-top-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px * var(--tw-divide-y-reverse))}.place-self-end{place-self:end}.self-end{align-self:flex-end}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-visible{overflow:visible}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.overflow-x-hidden{overflow-x:hidden}.scroll-smooth{scroll-behavior:smooth}.whitespace-nowrap{white-space:nowrap}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:1rem}.rounded-\[20px\]{border-radius:20px}.rounded-\[44px\]{border-radius:44px}.rounded-\[45px\]{border-radius:45px}.rounded-\[54px\]{border-radius:54px}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-sm{border-radius:.125rem}.rounded-xl{border-radius:.75rem}.rounded-b{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.rounded-b-lg{border-bottom-right-radius:.5rem;border-bottom-left-radius:.5rem}.rounded-t{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.rounded-t-lg{border-top-left-radius:.5rem;border-top-right-radius:.5rem}.rounded-t-md{border-top-left-radius:.375rem;border-top-right-radius:.375rem}.rounded-t-none{border-top-left-radius:0;border-top-right-radius:0}.\!border-2{border-width:2px!important}.border{border-width:1px}.border-2{border-width:2px}.border-y{border-top-width:1px;border-bottom-width:1px}.\!border-b-0{border-bottom-width:0px!important}.border-b{border-bottom-width:1px}.border-b-0{border-bottom-width:0px}.border-b-2{border-bottom-width:2px}.border-b-4{border-bottom-width:4px}.border-l{border-left-width:1px}.border-l-0{border-left-width:0px}.border-l-\[1px\]{border-left-width:1px}.border-r{border-right-width:1px}.border-r-0{border-right-width:0px}.border-r-2{border-right-width:2px}.border-t{border-top-width:1px}.border-t-0{border-top-width:0px}.border-dashed{border-style:dashed}.\!border-none{border-style:none!important}.border-none{border-style:none}.\!border-\[\#E9E9E9\]{--tw-border-opacity: 1 !important;border-color:rgb(233 233 233 / var(--tw-border-opacity, 1))!important}.\!border-\[\#e9decc\]{--tw-border-opacity: 1 !important;border-color:rgb(233 222 204 / var(--tw-border-opacity, 1))!important}.\!border-blue-600{--tw-border-opacity: 1 !important;border-color:rgb(37 99 235 / var(--tw-border-opacity, 1))!important}.\!border-navyBlue{--tw-border-opacity: 1 !important;border-color:rgb(6 12 59 / var(--tw-border-opacity, 1))!important}.\!border-red-500{--tw-border-opacity: 1 !important;border-color:rgb(239 68 68 / var(--tw-border-opacity, 1))!important}.\!border-white{--tw-border-opacity: 1 !important;border-color:rgb(255 255 255 / var(--tw-border-opacity, 1))!important}.\!border-zinc-200{--tw-border-opacity: 1 !important;border-color:rgb(228 228 231 / var(--tw-border-opacity, 1))!important}.border-\[\#E9E9E9\]{--tw-border-opacity: 1;border-color:rgb(233 233 233 / var(--tw-border-opacity, 1))}.border-\[\#F3F3F3\]{--tw-border-opacity: 1;border-color:rgb(243 243 243 / var(--tw-border-opacity, 1))}.border-\[\#e9decc\]{--tw-border-opacity: 1;border-color:rgb(233 222 204 / var(--tw-border-opacity, 1))}.border-\[\'\#E3E3E3\'\]{border-color:"#E3E3E3"}.border-amber-300{--tw-border-opacity: 1;border-color:rgb(252 211 77 / var(--tw-border-opacity, 1))}.border-black{--tw-border-opacity: 1;border-color:rgb(0 0 0 / var(--tw-border-opacity, 1))}.border-emerald-200{--tw-border-opacity: 1;border-color:rgb(167 243 208 / var(--tw-border-opacity, 1))}.border-gray-200{--tw-border-opacity: 1;border-color:rgb(229 231 235 / var(--tw-border-opacity, 1))}.border-gray-300{--tw-border-opacity: 1;border-color:rgb(209 213 219 / var(--tw-border-opacity, 1))}.border-navyBlue{--tw-border-opacity: 1;border-color:rgb(6 12 59 / var(--tw-border-opacity, 1))}.border-red-500{--tw-border-opacity: 1;border-color:rgb(239 68 68 / var(--tw-border-opacity, 1))}.border-slate-500{--tw-border-opacity: 1;border-color:rgb(100 116 139 / var(--tw-border-opacity, 1))}.border-transparent{border-color:transparent}.border-white{--tw-border-opacity: 1;border-color:rgb(255 255 255 / var(--tw-border-opacity, 1))}.border-zinc-200{--tw-border-opacity: 1;border-color:rgb(228 228 231 / var(--tw-border-opacity, 1))}.border-zinc-300{--tw-border-opacity: 1;border-color:rgb(212 212 216 / var(--tw-border-opacity, 1))}.\!bg-gray-100{--tw-bg-opacity: 1 !important;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1))!important}.\!bg-navyBlue{--tw-bg-opacity: 1 !important;background-color:rgb(6 12 59 / var(--tw-bg-opacity, 1))!important}.\!bg-transparent{background-color:transparent!important}.bg-\[\#B5DCB4\]{--tw-bg-opacity: 1;background-color:rgb(181 220 180 / var(--tw-bg-opacity, 1))}.bg-\[\#F1EADF\]{--tw-bg-opacity: 1;background-color:rgb(241 234 223 / var(--tw-bg-opacity, 1))}.bg-\[\#FFF3CD\]{--tw-bg-opacity: 1;background-color:rgb(255 243 205 / var(--tw-bg-opacity, 1))}.bg-\[rgba\(0\,0\,0\,0\.8\)\]{background-color:#000c}.bg-amber-50{--tw-bg-opacity: 1;background-color:rgb(255 251 235 / var(--tw-bg-opacity, 1))}.bg-amber-500{--tw-bg-opacity: 1;background-color:rgb(245 158 11 / var(--tw-bg-opacity, 1))}.bg-black{--tw-bg-opacity: 1;background-color:rgb(0 0 0 / var(--tw-bg-opacity, 1))}.bg-black\/80{background-color:#000c}.bg-black\/90{background-color:#000000e6}.bg-blue-100{--tw-bg-opacity: 1;background-color:rgb(219 234 254 / var(--tw-bg-opacity, 1))}.bg-blue-500{--tw-bg-opacity: 1;background-color:rgb(59 130 246 / 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-50{--tw-bg-opacity: 1;background-color:rgb(236 253 245 / var(--tw-bg-opacity, 1))}.bg-gray-100{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1))}.bg-gray-200{--tw-bg-opacity: 1;background-color:rgb(229 231 235 / var(--tw-bg-opacity, 1))}.bg-gray-50{--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity, 1))}.bg-gray-500{--tw-bg-opacity: 1;background-color:rgb(107 114 128 / var(--tw-bg-opacity, 1))}.bg-gray-600{--tw-bg-opacity: 1;background-color:rgb(75 85 99 / var(--tw-bg-opacity, 1))}.bg-green-100{--tw-bg-opacity: 1;background-color:rgb(220 252 231 / var(--tw-bg-opacity, 1))}.bg-lightOrange{--tw-bg-opacity: 1;background-color:rgb(246 242 235 / var(--tw-bg-opacity, 1))}.bg-navyBlue{--tw-bg-opacity: 1;background-color:rgb(6 12 59 / var(--tw-bg-opacity, 1))}.bg-neutral-200{--tw-bg-opacity: 1;background-color:rgb(229 229 229 / var(--tw-bg-opacity, 1))}.bg-red-500{--tw-bg-opacity: 1;background-color:rgb(239 68 68 / var(--tw-bg-opacity, 1))}.bg-red-600{--tw-bg-opacity: 1;background-color:rgb(220 38 38 / var(--tw-bg-opacity, 1))}.bg-transparent{background-color:transparent}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.bg-white\/80{background-color:#fffc}.bg-zinc-100{--tw-bg-opacity: 1;background-color:rgb(244 244 245 / var(--tw-bg-opacity, 1))}.bg-zinc-200{--tw-bg-opacity: 1;background-color:rgb(228 228 231 / var(--tw-bg-opacity, 1))}.bg-zinc-300{--tw-bg-opacity: 1;background-color:rgb(212 212 216 / var(--tw-bg-opacity, 1))}.bg-zinc-50{--tw-bg-opacity: 1;background-color:rgb(250 250 250 / var(--tw-bg-opacity, 1))}.bg-zinc-500{--tw-bg-opacity: 1;background-color:rgb(113 113 122 / var(--tw-bg-opacity, 1))}.bg-opacity-50{--tw-bg-opacity: .5}.bg-cover{background-size:cover}.bg-no-repeat{background-repeat:no-repeat}.fill-blue-600{fill:#2563eb}.object-cover{-o-object-fit:cover;object-fit:cover}.\!p-0{padding:0!important}.\!p-4{padding:1rem!important}.\!p-5{padding:1.25rem!important}.p-0{padding:0}.p-0\.5{padding:.125rem}.p-1\.5{padding:.375rem}.p-16{padding:4rem}.p-2{padding:.5rem}.p-2\.5{padding:.625rem}.p-3{padding:.75rem}.p-3\.5{padding:.875rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.p-7{padding:1.75rem}.p-8{padding:2rem}.p-9{padding:2.25rem}.p-\[60px\]{padding:60px}.\!px-0{padding-left:0!important;padding-right:0!important}.\!px-2{padding-left:.5rem!important;padding-right:.5rem!important}.\!px-4{padding-left:1rem!important;padding-right:1rem!important}.\!py-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.px-0{padding-left:0;padding-right:0}.px-1{padding-left:.25rem;padding-right:.25rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-10{padding-left:2.5rem;padding-right:2.5rem}.px-11{padding-left:2.75rem;padding-right:2.75rem}.px-16{padding-left:4rem;padding-right:4rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-3\.5{padding-left:.875rem;padding-right:.875rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-7{padding-left:1.75rem;padding-right:1.75rem}.px-8{padding-left:2rem;padding-right:2rem}.px-\[60px\]{padding-left:60px;padding-right:60px}.px-\[90px\]{padding-left:90px;padding-right:90px}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-3\.5{padding-top:.875rem;padding-bottom:.875rem}.py-32{padding-top:8rem;padding-bottom:8rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-5{padding-top:1.25rem;padding-bottom:1.25rem}.py-\[25px\]{padding-top:25px;padding-bottom:25px}.\!pl-0{padding-left:0!important}.\!pt-2{padding-top:.5rem!important}.pb-0{padding-bottom:0}.pb-2{padding-bottom:.5rem}.pb-2\.5{padding-bottom:.625rem}.pb-3{padding-bottom:.75rem}.pb-4{padding-bottom:1rem}.pb-5{padding-bottom:1.25rem}.pb-8{padding-bottom:2rem}.pl-12{padding-left:3rem}.pt-0{padding-top:0}.pt-1\.5{padding-top:.375rem}.pt-2{padding-top:.5rem}.pt-3{padding-top:.75rem}.pt-5{padding-top:1.25rem}.pt-6{padding-top:1.5rem}.pt-7{padding-top:1.75rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.align-top{vertical-align:top}.align-text-bottom{vertical-align:text-bottom}.font-dmserif{font-family:DM Serif Display,serif}.font-sans{font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji"}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-4xl{font-size:2.25rem;line-height:2.5rem}.text-5xl{font-size:3rem;line-height:1}.text-6xl{font-size:3.75rem;line-height:1}.text-\[5px\]{font-size:5px}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-light{font-weight:300}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.italic{font-style:italic}.\!leading-6{line-height:1.5rem!important}.leading-5{line-height:1.25rem}.leading-6{line-height:1.5rem}.leading-\[45px\]{line-height:45px}.leading-\[9px\]{line-height:9px}.leading-none{line-height:1}.leading-normal{line-height:1.5}.leading-relaxed{line-height:1.625}.\!text-black{--tw-text-opacity: 1 !important;color:rgb(0 0 0 / var(--tw-text-opacity, 1))!important}.\!text-white{--tw-text-opacity: 1 !important;color:rgb(255 255 255 / var(--tw-text-opacity, 1))!important}.text-\[\#383D41\]{--tw-text-opacity: 1;color:rgb(56 61 65 / var(--tw-text-opacity, 1))}.text-\[\#6E6E6E\]{--tw-text-opacity: 1;color:rgb(110 110 110 / var(--tw-text-opacity, 1))}.text-amber-500{--tw-text-opacity: 1;color:rgb(245 158 11 / var(--tw-text-opacity, 1))}.text-amber-900{--tw-text-opacity: 1;color:rgb(120 53 15 / var(--tw-text-opacity, 1))}.text-black{--tw-text-opacity: 1;color:rgb(0 0 0 / var(--tw-text-opacity, 1))}.text-blue-500{--tw-text-opacity: 1;color:rgb(59 130 246 / var(--tw-text-opacity, 1))}.text-blue-600{--tw-text-opacity: 1;color:rgb(37 99 235 / var(--tw-text-opacity, 1))}.text-blue-700{--tw-text-opacity: 1;color:rgb(29 78 216 / var(--tw-text-opacity, 1))}.text-emerald-400{--tw-text-opacity: 1;color:rgb(52 211 153 / var(--tw-text-opacity, 1))}.text-emerald-500{--tw-text-opacity: 1;color:rgb(16 185 129 / var(--tw-text-opacity, 1))}.text-emerald-600{--tw-text-opacity: 1;color:rgb(5 150 105 / var(--tw-text-opacity, 1))}.text-emerald-700{--tw-text-opacity: 1;color:rgb(4 120 87 / var(--tw-text-opacity, 1))}.text-gray-200{--tw-text-opacity: 1;color:rgb(229 231 235 / var(--tw-text-opacity, 1))}.text-gray-300{--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity, 1))}.text-gray-400{--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}.text-gray-500{--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity, 1))}.text-gray-600{--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity, 1))}.text-gray-700{--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity, 1))}.text-gray-800{--tw-text-opacity: 1;color:rgb(31 41 55 / var(--tw-text-opacity, 1))}.text-gray-900{--tw-text-opacity: 1;color:rgb(17 24 39 / var(--tw-text-opacity, 1))}.text-navyBlue{--tw-text-opacity: 1;color:rgb(6 12 59 / var(--tw-text-opacity, 1))}.text-neutral-500{--tw-text-opacity: 1;color:rgb(115 115 115 / 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-slate-600{--tw-text-opacity: 1;color:rgb(71 85 105 / var(--tw-text-opacity, 1))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.text-zinc-300{--tw-text-opacity: 1;color:rgb(212 212 216 / var(--tw-text-opacity, 1))}.text-zinc-400{--tw-text-opacity: 1;color:rgb(161 161 170 / var(--tw-text-opacity, 1))}.text-zinc-500{--tw-text-opacity: 1;color:rgb(113 113 122 / var(--tw-text-opacity, 1))}.text-zinc-600{--tw-text-opacity: 1;color:rgb(82 82 91 / var(--tw-text-opacity, 1))}.underline{text-decoration-line:underline}.line-through{text-decoration-line:line-through}.no-underline{text-decoration-line:none}.opacity-0{opacity:0}.opacity-100{opacity:1}.opacity-25{opacity:.25}.opacity-30{opacity:.3}.opacity-75{opacity:.75}.shadow-\[0_5px_20px_rgba\(0\,0\,0\,0\.15\)\]{--tw-shadow: 0 5px 20px rgba(0,0,0,.15);--tw-shadow-colored: 0 5px 20px 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-\[0_6px_6px_1px_rgba\(0\,0\,0\,\.3\)\]{--tw-shadow: 0 6px 6px 1px rgba(0,0,0,.3);--tw-shadow-colored: 0 6px 6px 1px 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-\[0px_10px_84px_rgba\(0\,0\,0\,0\.1\)\]{--tw-shadow: 0px 10px 84px rgba(0,0,0,.1);--tw-shadow-colored: 0px 10px 84px 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-sm{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.outline-none{outline:2px solid transparent;outline-offset:2px}.outline{outline-style:solid}.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);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-gray-900{--tw-ring-opacity: 1;--tw-ring-color: rgb(17 24 39 / var(--tw-ring-opacity, 1))}.blur{--tw-blur: blur(8px);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)}.drop-shadow{--tw-drop-shadow: drop-shadow(0 1px 2px rgb(0 0 0 / .1)) drop-shadow(0 1px 1px rgb(0 0 0 / .06));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)}.grayscale{--tw-grayscale: grayscale(100%);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)}.filter{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{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-100{transition-duration:.1s}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.duration-700{transition-duration:.7s}.duration-75{transition-duration:75ms}.ease-in{transition-timing-function:cubic-bezier(.4,0,1,1)}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}.will-change-transform{will-change:transform}@font-face{font-family:bagisto-shop;src:url("https://hagzi.jo/themes/shop/default/build/assets/bagisto-shop-BHAKyv0r.woff") format("woff");font-weight:400;font-style:normal;font-display:swap}img.lazy{visibility:hidden}.peer:checked~.peer-checked\:icon-check-box:before{content:""}.peer:checked~.peer-checked\:icon-radio-select:before{content:""}.rtl\:icon-arrow-left-stylish:where([dir=rtl],[dir=rtl] *):before{content:""}.rtl\:icon-arrow-left:where([dir=rtl],[dir=rtl] *):before{content:""}.rtl\:icon-arrow-right-stylish:where([dir=rtl],[dir=rtl] *):before{content:""}.rtl\:icon-arrow-right:where([dir=rtl],[dir=rtl] *):before{content:""}.marker\:shadow *::marker{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.marker\:shadow::marker{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.after\:absolute:after{content:var(--tw-content);position:absolute}.after\:left-0\.5:after{content:var(--tw-content);left:.125rem}.after\:top-0\.5:after{content:var(--tw-content);top:.125rem}.after\:block:after{content:var(--tw-content);display:block}.after\:h-4:after{content:var(--tw-content);height:1rem}.after\:w-4:after{content:var(--tw-content);width:1rem}.after\:border:after{content:var(--tw-content);border-width:1px}.after\:border-gray-300:after{content:var(--tw-content);--tw-border-opacity: 1;border-color:rgb(209 213 219 / 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\:pb-\[calc\(100\%\+9px\)\]:after{content:var(--tw-content);padding-bottom:calc(100% + 9px)}.after\:transition-all:after{content:var(--tw-content);transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.after\:content-\[\'\'\]:after{--tw-content: "";content:var(--tw-content)}.after\:content-\[\'\/\'\]:after{--tw-content: "/";content:var(--tw-content)}.last\:mb-0:last-child{margin-bottom:0}.last\:border-b-0:last-child{border-bottom-width:0px}.after\:last\:hidden:last-child:after{content:var(--tw-content);display:none}.last\:after\:content-\[\'\'\]:last-child:after{--tw-content: "";content:var(--tw-content)}.hover\:border-b-4:hover{border-bottom-width:4px}.hover\:\!border-navyBlue:hover{--tw-border-opacity: 1 !important;border-color:rgb(6 12 59 / var(--tw-border-opacity, 1))!important}.hover\:border-gray-400:hover{--tw-border-opacity: 1;border-color:rgb(156 163 175 / var(--tw-border-opacity, 1))}.hover\:border-navyBlue:hover{--tw-border-opacity: 1;border-color:rgb(6 12 59 / var(--tw-border-opacity, 1))}.hover\:border-red-500:hover{--tw-border-opacity: 1;border-color:rgb(239 68 68 / var(--tw-border-opacity, 1))}.hover\:bg-black:hover{--tw-bg-opacity: 1;background-color:rgb(0 0 0 / var(--tw-bg-opacity, 1))}.hover\:bg-blue-400:hover{--tw-bg-opacity: 1;background-color:rgb(96 165 250 / var(--tw-bg-opacity, 1))}.hover\:bg-gray-100:hover{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1))}.hover\:bg-gray-200:hover{--tw-bg-opacity: 1;background-color:rgb(229 231 235 / var(--tw-bg-opacity, 1))}.hover\:bg-gray-50:hover{--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity, 1))}.hover\:bg-zinc-100:hover{--tw-bg-opacity: 1;background-color:rgb(244 244 245 / var(--tw-bg-opacity, 1))}.hover\:text-black:hover{--tw-text-opacity: 1;color:rgb(0 0 0 / var(--tw-text-opacity, 1))}.hover\:text-blue-600:hover{--tw-text-opacity: 1;color:rgb(37 99 235 / var(--tw-text-opacity, 1))}.hover\:text-blue-800:hover{--tw-text-opacity: 1;color:rgb(30 64 175 / var(--tw-text-opacity, 1))}.hover\:text-gray-800:hover{--tw-text-opacity: 1;color:rgb(31 41 55 / var(--tw-text-opacity, 1))}.hover\:text-red-500:hover{--tw-text-opacity: 1;color:rgb(239 68 68 / var(--tw-text-opacity, 1))}.hover\:text-white:hover{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-100:hover{opacity:1}.hover\:shadow-md:hover{--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.focus\:border-blue-500:focus{--tw-border-opacity: 1;border-color:rgb(59 130 246 / var(--tw-border-opacity, 1))}.focus\:border-gray-400:focus{--tw-border-opacity: 1;border-color:rgb(156 163 175 / var(--tw-border-opacity, 1))}.focus\:bg-gray-100:focus{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1))}.focus\:text-black:focus{--tw-text-opacity: 1;color:rgb(0 0 0 / var(--tw-text-opacity, 1))}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.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-black:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(0 0 0 / var(--tw-ring-opacity, 1))}.focus\:ring-blue-500:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(59 130 246 / var(--tw-ring-opacity, 1))}.focus-visible\:outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}.active\:border-gray-300:active{--tw-border-opacity: 1;border-color:rgb(209 213 219 / var(--tw-border-opacity, 1))}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-40:disabled{opacity:.4}.group:hover .group-hover\:pointer-events-auto{pointer-events:auto}.group:hover .group-hover\:bottom-0{bottom:0}.group\/item:hover .group-hover\/item\:block{display:block}.group:hover .group-hover\:-translate-y-0{--tw-translate-y: -0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:translate-y-0{--tw-translate-y: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:scale-105{--tw-scale-x: 1.05;--tw-scale-y: 1.05;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:rounded-t-lg{border-top-left-radius:.5rem;border-top-right-radius:.5rem}.group:hover .group-hover\:opacity-100{opacity:1}.group:hover .group-hover\:duration-200{transition-duration:.2s}.group:hover .group-hover\:ease-in{transition-timing-function:cubic-bezier(.4,0,1,1)}.peer:checked~.peer-checked\:bg-navyBlue{--tw-bg-opacity: 1;background-color:rgb(6 12 59 / var(--tw-bg-opacity, 1))}.peer:checked~.peer-checked\:text-navyBlue{--tw-text-opacity: 1;color:rgb(6 12 59 / var(--tw-text-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)) skew(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}.peer:focus~.peer-focus\:ring-blue-300{--tw-ring-opacity: 1;--tw-ring-color: rgb(147 197 253 / var(--tw-ring-opacity, 1))}@media not all and (min-width: 1240px){.max-xl\:mb-5{margin-bottom:1.25rem}.max-xl\:min-w-\[270px\]{min-width:270px}}@media not all and (min-width: 1180px){.max-1180\:mt-3\.5{margin-top:.875rem}.max-1180\:hidden{display:none}.max-1180\:w-full{width:100%}.max-1180\:max-w-full{max-width:100%}.max-1180\:flex-wrap{flex-wrap:wrap}.max-1180\:gap-6{gap:1.5rem}.max-1180\:px-0{padding-left:0;padding-right:0}.max-1180\:px-5{padding-left:1.25rem;padding-right:1.25rem}.max-1180\:px-8{padding-left:2rem;padding-right:2rem}}@media (max-width: 1180px){.max-\[1180px\]\:gap-x-5{-moz-column-gap:1.25rem;column-gap:1.25rem}.max-\[1180px\]\:gap-x-9{-moz-column-gap:2.25rem;column-gap:2.25rem}}@media (max-width: 1100px){.max-\[1100px\]\:gap-x-6{-moz-column-gap:1.5rem;column-gap:1.5rem}}@media not all and (min-width: 1060px){.max-1060\:block{display:block}.max-1060\:hidden{display:none}.max-1060\:w-full{width:100%}.max-1060\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.max-1060\:grid-cols-\[1fr\]{grid-template-columns:1fr}.max-1060\:flex-col{flex-direction:column}.max-1060\:flex-col-reverse{flex-direction:column-reverse}}@media not all and (min-width: 1024px){.max-lg\:relative{position:relative}.max-lg\:-left-7{left:-1.75rem}.max-lg\:-right-7{right:-1.75rem}.max-lg\:top-auto{top:auto}.max-lg\:mt-0{margin-top:0}.max-lg\:flex{display:flex}.max-lg\:grid{display:grid}.max-lg\:hidden{display:none}.max-lg\:w-auto{width:auto}.max-lg\:max-w-\[442px\]{max-width:442px}.max-lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.max-lg\:grid-cols-\[1fr\]{grid-template-columns:1fr}.max-lg\:flex-wrap{flex-wrap:wrap}.max-lg\:justify-center{justify-content:center}.max-lg\:gap-4{gap:1rem}.max-lg\:gap-5{gap:1.25rem}.max-lg\:gap-x-8{-moz-column-gap:2rem;column-gap:2rem}.max-lg\:px-3{padding-left:.75rem;padding-right:.75rem}.max-lg\:px-8{padding-left:2rem;padding-right:2rem}.max-lg\:py-3\.5{padding-top:.875rem;padding-bottom:.875rem}.max-lg\:text-xs{font-size:.75rem;line-height:1rem}.max-lg\:opacity-100{opacity:1}.max-lg\:shadow-none{--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}}@media not all and (min-width: 868px){.max-868\:w-full{width:100%}.max-868\:max-w-full{max-width:100%}.max-868\:\!text-\[294px\]{font-size:294px!important}}@media not all and (min-width: 768px){.max-md\:relative{position:relative}.max-md\:bottom-3\.5{bottom:.875rem}.max-md\:top-1{top:.25rem}.max-md\:top-10{top:2.5rem}.max-md\:top-\[60\%\]{top:60%}.max-md\:m-auto{margin:auto}.max-md\:mx-6{margin-left:1.5rem;margin-right:1.5rem}.max-md\:my-0{margin-top:0;margin-bottom:0}.max-md\:my-4{margin-top:1rem;margin-bottom:1rem}.max-md\:my-5{margin-top:1.25rem;margin-bottom:1.25rem}.max-md\:\!mb-0{margin-bottom:0!important}.max-md\:-mt-1{margin-top:-.25rem}.max-md\:mb-0{margin-bottom:0}.max-md\:mb-1\.5{margin-bottom:.375rem}.max-md\:mb-2{margin-bottom:.5rem}.max-md\:mb-2\.5{margin-bottom:.625rem}.max-md\:mb-4{margin-bottom:1rem}.max-md\:mb-5{margin-bottom:1.25rem}.max-md\:mt-0{margin-top:0}.max-md\:mt-1{margin-top:.25rem}.max-md\:mt-10{margin-top:2.5rem}.max-md\:mt-12{margin-top:3rem}.max-md\:mt-2{margin-top:.5rem}.max-md\:mt-2\.5{margin-top:.625rem}.max-md\:mt-3{margin-top:.75rem}.max-md\:mt-32{margin-top:8rem}.max-md\:mt-4{margin-top:1rem}.max-md\:mt-5{margin-top:1.25rem}.max-md\:mt-6{margin-top:1.5rem}.max-md\:mt-7{margin-top:1.75rem}.max-md\:mt-8{margin-top:2rem}.max-md\:mt-9{margin-top:2.25rem}.max-md\:block{display:block}.max-md\:flex{display:flex}.max-md\:grid{display:grid}.max-md\:hidden{display:none}.max-md\:h-10{height:2.5rem}.max-md\:h-16{height:4rem}.max-md\:h-2{height:.5rem}.max-md\:h-20{height:5rem}.max-md\:h-32{height:8rem}.max-md\:h-36{height:9rem}.max-md\:h-4{height:1rem}.max-md\:h-5{height:1.25rem}.max-md\:h-6{height:1.5rem}.max-md\:h-60{height:15rem}.max-md\:h-7{height:1.75rem}.max-md\:h-8{height:2rem}.max-md\:h-\[100px\]{height:100px}.max-md\:h-\[34px\]{height:34px}.max-md\:h-\[42px\]{height:42px}.max-md\:h-fit{height:-moz-fit-content;height:fit-content}.max-md\:h-full{height:100%}.max-md\:max-h-20{max-height:5rem}.max-md\:max-h-60{max-height:15rem}.max-md\:max-h-\[300px\]{max-height:300px}.max-md\:min-h-\[300px\]{min-height:300px}.max-md\:\!w-full{width:100%!important}.max-md\:w-16{width:4rem}.max-md\:w-2{width:.5rem}.max-md\:w-20{width:5rem}.max-md\:w-24{width:6rem}.max-md\:w-28{width:7rem}.max-md\:w-32{width:8rem}.max-md\:w-36{width:9rem}.max-md\:w-44{width:11rem}.max-md\:w-6{width:1.5rem}.max-md\:w-60{width:15rem}.max-md\:w-7{width:1.75rem}.max-md\:w-\[100px\]{width:100px}.max-md\:w-\[110px\]{width:110px}.max-md\:w-\[115px\]{width:115px}.max-md\:w-\[250px\]{width:250px}.max-md\:w-\[75px\]{width:75px}.max-md\:w-\[90\%\]{width:90%}.max-md\:w-fit{width:-moz-fit-content;width:fit-content}.max-md\:w-full{width:100%}.max-md\:min-w-20{min-width:5rem}.max-md\:min-w-40{min-width:10rem}.max-md\:min-w-56{min-width:14rem}.max-md\:min-w-60{min-width:15rem}.max-md\:min-w-\[300px\]{min-width:300px}.max-md\:max-w-20{max-width:5rem}.max-md\:max-w-56{max-width:14rem}.max-md\:max-w-60{max-width:15rem}.max-md\:max-w-9{max-width:2.25rem}.max-md\:max-w-\[153px\]{max-width:153px}.max-md\:max-w-\[250px\]{max-width:250px}.max-md\:max-w-\[300px\]{max-width:300px}.max-md\:max-w-\[76px\]{max-width:76px}.max-md\:max-w-full{max-width:100%}.max-md\:flex-auto{flex:1 1 auto}.max-md\:flex-none{flex:none}.max-md\:translate-y-0{--tw-translate-y: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.max-md\:grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.max-md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.max-md\:grid-cols-\[0\.5fr_2fr\]{grid-template-columns:.5fr 2fr}.max-md\:grid-cols-\[1fr\]{grid-template-columns:1fr}.max-md\:flex-col{flex-direction:column}.max-md\:flex-wrap{flex-wrap:wrap}.max-md\:flex-nowrap{flex-wrap:nowrap}.max-md\:items-center{align-items:center}.max-md\:justify-normal{justify-content:normal}.max-md\:justify-center{justify-content:center}.max-md\:justify-between{justify-content:space-between}.max-md\:justify-items-center{justify-items:center}.max-md\:gap-0{gap:0px}.max-md\:gap-0\.5{gap:.125rem}.max-md\:gap-1\.5{gap:.375rem}.max-md\:gap-2{gap:.5rem}.max-md\:gap-2\.5{gap:.625rem}.max-md\:gap-4{gap:1rem}.max-md\:gap-5{gap:1.25rem}.max-md\:gap-7{gap:1.75rem}.max-md\:gap-8{gap:2rem}.max-md\:gap-\[30px\]{gap:30px}.max-md\:gap-x-1{-moz-column-gap:.25rem;column-gap:.25rem}.max-md\:gap-x-1\.5{-moz-column-gap:.375rem;column-gap:.375rem}.max-md\:gap-x-2{-moz-column-gap:.5rem;column-gap:.5rem}.max-md\:gap-x-2\.5{-moz-column-gap:.625rem;column-gap:.625rem}.max-md\:gap-x-3{-moz-column-gap:.75rem;column-gap:.75rem}.max-md\:gap-x-4{-moz-column-gap:1rem;column-gap:1rem}.max-md\:gap-x-5{-moz-column-gap:1.25rem;column-gap:1.25rem}.max-md\:gap-y-0{row-gap:0px}.max-md\:gap-y-1{row-gap:.25rem}.max-md\:gap-y-1\.5{row-gap:.375rem}.max-md\:gap-y-2\.5{row-gap:.625rem}.max-md\:gap-y-5{row-gap:1.25rem}.max-md\:place-self-auto{place-self:auto}.max-md\:whitespace-nowrap{white-space:nowrap}.max-md\:whitespace-break-spaces{white-space:break-spaces}.max-md\:rounded-full{border-radius:9999px}.max-md\:rounded-lg{border-radius:.5rem}.max-md\:rounded-none{border-radius:0}.max-md\:rounded-t-md{border-top-left-radius:.375rem;border-top-right-radius:.375rem}.max-md\:rounded-t-none{border-top-left-radius:0;border-top-right-radius:0}.max-md\:border{border-width:1px}.max-md\:border-0{border-width:0px}.max-md\:border-b{border-bottom-width:1px}.max-md\:border-t{border-top-width:1px}.max-md\:border-t-0{border-top-width:0px}.max-md\:\!border-none{border-style:none!important}.max-md\:border-none{border-style:none}.max-md\:border-zinc-200{--tw-border-opacity: 1;border-color:rgb(228 228 231 / var(--tw-border-opacity, 1))}.max-md\:\!bg-gray-100{--tw-bg-opacity: 1 !important;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1))!important}.max-md\:bg-gray-200{--tw-bg-opacity: 1;background-color:rgb(229 231 235 / var(--tw-bg-opacity, 1))}.max-md\:\!p-3{padding:.75rem!important}.max-md\:\!p-4{padding:1rem!important}.max-md\:p-0{padding:0}.max-md\:p-1{padding:.25rem}.max-md\:p-2{padding:.5rem}.max-md\:p-2\.5{padding:.625rem}.max-md\:p-3{padding:.75rem}.max-md\:p-3\.5{padding:.875rem}.max-md\:p-4{padding:1rem}.max-md\:p-5{padding:1.25rem}.max-md\:p-8{padding:2rem}.max-md\:\!px-0{padding-left:0!important;padding-right:0!important}.max-md\:\!py-0{padding-top:0!important;padding-bottom:0!important}.max-md\:\!py-1\.5{padding-top:.375rem!important;padding-bottom:.375rem!important}.max-md\:px-0{padding-left:0;padding-right:0}.max-md\:px-1{padding-left:.25rem;padding-right:.25rem}.max-md\:px-1\.5{padding-left:.375rem;padding-right:.375rem}.max-md\:px-10{padding-left:2.5rem;padding-right:2.5rem}.max-md\:px-2{padding-left:.5rem;padding-right:.5rem}.max-md\:px-2\.5{padding-left:.625rem;padding-right:.625rem}.max-md\:px-3{padding-left:.75rem;padding-right:.75rem}.max-md\:px-4{padding-left:1rem;padding-right:1rem}.max-md\:px-5{padding-left:1.25rem;padding-right:1.25rem}.max-md\:px-6{padding-left:1.5rem;padding-right:1.5rem}.max-md\:px-8{padding-left:2rem;padding-right:2rem}.max-md\:py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.max-md\:py-1{padding-top:.25rem;padding-bottom:.25rem}.max-md\:py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.max-md\:py-2{padding-top:.5rem;padding-bottom:.5rem}.max-md\:py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.max-md\:py-3{padding-top:.75rem;padding-bottom:.75rem}.max-md\:py-4{padding-top:1rem;padding-bottom:1rem}.max-md\:py-8{padding-top:2rem;padding-bottom:2rem}.max-md\:\!pt-2\.5{padding-top:.625rem!important}.max-md\:pb-0{padding-bottom:0}.max-md\:pb-1\.5{padding-bottom:.375rem}.max-md\:pb-2{padding-bottom:.5rem}.max-md\:pb-3{padding-bottom:.75rem}.max-md\:pb-4{padding-bottom:1rem}.max-md\:pl-2\.5{padding-left:.625rem}.max-md\:pl-4{padding-left:1rem}.max-md\:pr-2\.5{padding-right:.625rem}.max-md\:pt-2{padding-top:.5rem}.max-md\:pt-4{padding-top:1rem}.max-md\:text-left{text-align:left}.max-md\:text-center{text-align:center}.max-md\:\!text-\[140px\]{font-size:140px!important}.max-md\:text-2xl{font-size:1.5rem;line-height:2rem}.max-md\:text-3xl{font-size:1.875rem;line-height:2.25rem}.max-md\:text-base{font-size:1rem;line-height:1.5rem}.max-md\:text-lg{font-size:1.125rem;line-height:1.75rem}.max-md\:text-sm{font-size:.875rem;line-height:1.25rem}.max-md\:text-xl{font-size:1.25rem;line-height:1.75rem}.max-md\:text-xs{font-size:.75rem;line-height:1rem}.max-md\:font-medium{font-weight:500}.max-md\:font-normal{font-weight:400}.max-md\:font-semibold{font-weight:600}.max-md\:leading-6{line-height:1.5rem}.max-md\:text-black{--tw-text-opacity: 1;color:rgb(0 0 0 / var(--tw-text-opacity, 1))}.max-md\:text-zinc-500{--tw-text-opacity: 1;color:rgb(113 113 122 / var(--tw-text-opacity, 1))}.max-md\:first\:ml-4:first-child{margin-left:1rem}.max-md\:last\:\!mb-0:last-child{margin-bottom:0!important}.max-md\:last\:mb-0:last-child{margin-bottom:0}}@media not all and (min-width: 525px){.max-sm\:relative{position:relative}.max-sm\:bottom-2\.5{bottom:.625rem}.max-sm\:top-2{top:.5rem}.max-sm\:top-2\.5{top:.625rem}.max-sm\:top-4{top:1rem}.max-sm\:mx-4{margin-left:1rem;margin-right:1rem}.max-sm\:my-2{margin-top:.5rem;margin-bottom:.5rem}.max-sm\:my-4{margin-top:1rem;margin-bottom:1rem}.max-sm\:my-\[20px\]{margin-top:20px;margin-bottom:20px}.max-sm\:\!mb-2\.5{margin-bottom:.625rem!important}.max-sm\:-mt-1{margin-top:-.25rem}.max-sm\:mb-0{margin-bottom:0}.max-sm\:mb-1{margin-bottom:.25rem}.max-sm\:mb-1\.5{margin-bottom:.375rem}.max-sm\:mb-10{margin-bottom:2.5rem}.max-sm\:mb-2{margin-bottom:.5rem}.max-sm\:mb-5{margin-bottom:1.25rem}.max-sm\:mt-0{margin-top:0}.max-sm\:mt-0\.5{margin-top:.125rem}.max-sm\:mt-1{margin-top:.25rem}.max-sm\:mt-10{margin-top:2.5rem}.max-sm\:mt-3{margin-top:.75rem}.max-sm\:mt-4{margin-top:1rem}.max-sm\:mt-5{margin-top:1.25rem}.max-sm\:mt-6{margin-top:1.5rem}.max-sm\:mt-7{margin-top:1.75rem}.max-sm\:mt-8{margin-top:2rem}.max-sm\:block{display:block}.max-sm\:flex{display:flex}.max-sm\:grid{display:grid}.max-sm\:hidden{display:none}.max-sm\:h-1\.5{height:.375rem}.max-sm\:h-10{height:2.5rem}.max-sm\:h-20{height:5rem}.max-sm\:h-3\.5{height:.875rem}.max-sm\:h-4{height:1rem}.max-sm\:h-5{height:1.25rem}.max-sm\:h-7{height:1.75rem}.max-sm\:h-\[100px\]{height:100px}.max-sm\:h-\[21px\]{height:21px}.max-sm\:h-\[25px\]{height:25px}.max-sm\:h-\[30px\]{height:30px}.max-sm\:h-\[34px\]{height:34px}.max-sm\:h-\[46px\]{height:46px}.max-sm\:h-\[60px\]{height:60px}.max-sm\:h-fit{height:-moz-fit-content;height:fit-content}.max-sm\:max-h-\[200px\]{max-height:200px}.max-sm\:max-h-\[60px\]{max-height:60px}.max-sm\:max-h-full{max-height:100%}.max-sm\:min-h-\[60px\]{min-height:60px}.max-sm\:w-1\.5{width:.375rem}.max-sm\:w-10{width:2.5rem}.max-sm\:w-20{width:5rem}.max-sm\:w-3\/6{width:50%}.max-sm\:w-4{width:1rem}.max-sm\:w-44{width:11rem}.max-sm\:w-\[100px\]{width:100px}.max-sm\:w-\[124px\]{width:124px}.max-sm\:w-\[180px\]{width:180px}.max-sm\:w-\[190px\]{width:190px}.max-sm\:w-\[25px\]{width:25px}.max-sm\:w-\[60px\]{width:60px}.max-sm\:w-\[68px\]{width:68px}.max-sm\:w-\[70px\]{width:70px}.max-sm\:w-fit{width:-moz-fit-content;width:fit-content}.max-sm\:w-full{width:100%}.max-sm\:min-w-\[110px\]{min-width:110px}.max-sm\:min-w-\[170px\]{min-width:170px}.max-sm\:min-w-\[190px\]{min-width:190px}.max-sm\:min-w-\[192px\]{min-width:192px}.max-sm\:min-w-\[60px\]{min-width:60px}.max-sm\:max-w-20{max-width:5rem}.max-sm\:max-w-80{max-width:20rem}.max-sm\:max-w-\[190px\]{max-width:190px}.max-sm\:max-w-\[192px\]{max-width:192px}.max-sm\:max-w-\[60px\]{max-width:60px}.max-sm\:max-w-full{max-width:100%}.max-sm\:flex-auto{flex:1 1 auto}.max-sm\:grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.max-sm\:flex-wrap{flex-wrap:wrap}.max-sm\:items-center{align-items:center}.max-sm\:justify-normal{justify-content:normal}.max-sm\:justify-center{justify-content:center}.max-sm\:justify-between{justify-content:space-between}.max-sm\:gap-0{gap:0px}.max-sm\:gap-1{gap:.25rem}.max-sm\:gap-1\.5{gap:.375rem}.max-sm\:gap-2{gap:.5rem}.max-sm\:gap-2\.5{gap:.625rem}.max-sm\:gap-3{gap:.75rem}.max-sm\:gap-4{gap:1rem}.max-sm\:gap-5{gap:1.25rem}.max-sm\:gap-\[30px\]{gap:30px}.max-sm\:gap-x-0{-moz-column-gap:0px;column-gap:0px}.max-sm\:gap-x-1\.5{-moz-column-gap:.375rem;column-gap:.375rem}.max-sm\:gap-x-3\.5{-moz-column-gap:.875rem;column-gap:.875rem}.max-sm\:gap-y-0\.5{row-gap:.125rem}.max-sm\:gap-y-2\.5{row-gap:.625rem}.max-sm\:gap-y-4{row-gap:1rem}.max-sm\:gap-y-6{row-gap:1.5rem}.max-sm\:place-self-center{place-self:center}.max-sm\:\!rounded-lg{border-radius:.5rem!important}.max-sm\:rounded-lg{border-radius:.5rem}.max-sm\:rounded-xl{border-radius:.75rem}.max-sm\:rounded-l-none{border-top-left-radius:0;border-bottom-left-radius:0}.max-sm\:rounded-r-xl{border-top-right-radius:.75rem;border-bottom-right-radius:.75rem}.max-sm\:border-0{border-width:0px}.max-sm\:border-2{border-width:2px}.max-sm\:border-none{border-style:none}.max-sm\:border-zinc-300{--tw-border-opacity: 1;border-color:rgb(212 212 216 / var(--tw-border-opacity, 1))}.max-sm\:\!p-2{padding:.5rem!important}.max-sm\:p-0{padding:0}.max-sm\:p-1\.5{padding:.375rem}.max-sm\:p-2{padding:.5rem}.max-sm\:p-2\.5{padding:.625rem}.max-sm\:p-3{padding:.75rem}.max-sm\:p-4{padding:1rem}.max-sm\:p-5{padding:1.25rem}.max-sm\:\!px-1\.5{padding-left:.375rem!important;padding-right:.375rem!important}.max-sm\:\!px-4{padding-left:1rem!important;padding-right:1rem!important}.max-sm\:\!py-0{padding-top:0!important;padding-bottom:0!important}.max-sm\:\!py-0\.5{padding-top:.125rem!important;padding-bottom:.125rem!important}.max-sm\:\!py-1\.5{padding-top:.375rem!important;padding-bottom:.375rem!important}.max-sm\:px-2{padding-left:.5rem;padding-right:.5rem}.max-sm\:px-2\.5{padding-left:.625rem;padding-right:.625rem}.max-sm\:px-3{padding-left:.75rem;padding-right:.75rem}.max-sm\:px-3\.5{padding-left:.875rem;padding-right:.875rem}.max-sm\:px-4{padding-left:1rem;padding-right:1rem}.max-sm\:px-5{padding-left:1.25rem;padding-right:1.25rem}.max-sm\:px-6{padding-left:1.5rem;padding-right:1.5rem}.max-sm\:py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.max-sm\:py-1{padding-top:.25rem;padding-bottom:.25rem}.max-sm\:py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.max-sm\:py-2{padding-top:.5rem;padding-bottom:.5rem}.max-sm\:py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.max-sm\:py-3{padding-top:.75rem;padding-bottom:.75rem}.max-sm\:py-3\.5{padding-top:.875rem;padding-bottom:.875rem}.max-sm\:py-4{padding-top:1rem;padding-bottom:1rem}.max-sm\:py-5{padding-top:1.25rem;padding-bottom:1.25rem}.max-sm\:\!pb-1\.5{padding-bottom:.375rem!important}.max-sm\:pb-0{padding-bottom:0}.max-sm\:pb-2\.5{padding-bottom:.625rem}.max-sm\:text-center{text-align:center}.max-sm\:text-right{text-align:right}.max-sm\:text-2xl{font-size:1.5rem;line-height:2rem}.max-sm\:text-5xl{font-size:3rem;line-height:1}.max-sm\:text-base{font-size:1rem;line-height:1.5rem}.max-sm\:text-lg{font-size:1.125rem;line-height:1.75rem}.max-sm\:text-sm{font-size:.875rem;line-height:1.25rem}.max-sm\:text-xl{font-size:1.25rem;line-height:1.75rem}.max-sm\:text-xs{font-size:.75rem;line-height:1rem}.max-sm\:\!font-semibold{font-weight:600!important}.max-sm\:font-medium{font-weight:500}.max-sm\:font-normal{font-weight:400}.max-sm\:leading-4{line-height:1rem}.max-sm\:leading-6{line-height:1.5rem}.max-sm\:leading-\[80px\]{line-height:80px}.max-sm\:text-zinc-500{--tw-text-opacity: 1;color:rgb(113 113 122 / var(--tw-text-opacity, 1))}.max-sm\:opacity-100{opacity:1}}@media (min-width: 525px){.sm\:hidden{display:none}.sm\:max-h-\[500px\]{max-height:500px}.sm\:max-w-\[420px\]{max-width:420px}.sm\:items-center{align-items:center}.sm\:p-0{padding:0}.sm\:p-2\.5{padding:.625rem}.sm\:py-6{padding-top:1.5rem;padding-bottom:1.5rem}}@media (min-width: 768px){.md\:mt-10{margin-top:2.5rem}.md\:block{display:block}.md\:inline-block{display:inline-block}.md\:hidden{display:none}.md\:max-w-\[342px\]{max-width:342px}.md\:translate-y-0{--tw-translate-y: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.md\:scale-100{--tw-scale-x: 1;--tw-scale-y: 1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.md\:scale-95{--tw-scale-x: .95;--tw-scale-y: .95;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.md\:grid-cols-\[200px_1fr\]{grid-template-columns:200px 1fr}.md\:text-2xl{font-size:1.5rem;line-height:2rem}}@media (min-width: 1024px){.lg\:hidden{display:none}}@media (min-width: 1180px){.\31 180\:relative{position:relative}.\31 180\:grid{display:grid}.\31 180\:hidden{display:none}.\31 180\:content-start{align-content:flex-start}.\31 180\:overflow-hidden{overflow:hidden}.\31 180\:duration-300{transition-duration:.3s}.\31 180\:hover\:shadow-\[0_5px_10px_rgba\(0\,0\,0\,0\.1\)\]:hover{--tw-shadow: 0 5px 10px rgba(0,0,0,.1);--tw-shadow-colored: 0 5px 10px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}}.ltr\:-left-9:where([dir=ltr],[dir=ltr] *){left:-2.25rem}.ltr\:left-0:where([dir=ltr],[dir=ltr] *){left:0}.ltr\:left-1\.5:where([dir=ltr],[dir=ltr] *){left:.375rem}.ltr\:left-3:where([dir=ltr],[dir=ltr] *){left:.75rem}.ltr\:left-4:where([dir=ltr],[dir=ltr] *){left:1rem}.ltr\:left-5:where([dir=ltr],[dir=ltr] *){left:1.25rem}.ltr\:left-full:where([dir=ltr],[dir=ltr] *){left:100%}.ltr\:right-0:where([dir=ltr],[dir=ltr] *){right:0}.ltr\:right-1\.5:where([dir=ltr],[dir=ltr] *){right:.375rem}.ltr\:right-10:where([dir=ltr],[dir=ltr] *){right:2.5rem}.ltr\:right-2:where([dir=ltr],[dir=ltr] *){right:.5rem}.ltr\:right-2\.5:where([dir=ltr],[dir=ltr] *){right:.625rem}.ltr\:right-3:where([dir=ltr],[dir=ltr] *){right:.75rem}.ltr\:right-5:where([dir=ltr],[dir=ltr] *){right:1.25rem}.ltr\:ml-0:where([dir=ltr],[dir=ltr] *){margin-left:0}.ltr\:ml-1:where([dir=ltr],[dir=ltr] *){margin-left:.25rem}.ltr\:ml-1\.5:where([dir=ltr],[dir=ltr] *){margin-left:.375rem}.ltr\:ml-2\.5:where([dir=ltr],[dir=ltr] *){margin-left:.625rem}.ltr\:ml-3:where([dir=ltr],[dir=ltr] *){margin-left:.75rem}.ltr\:mr-2\.5:where([dir=ltr],[dir=ltr] *){margin-right:.625rem}.ltr\:mr-\[50px\]:where([dir=ltr],[dir=ltr] *){margin-right:50px}.ltr\:-translate-x-full:where([dir=ltr],[dir=ltr] *){--tw-translate-x: -100%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.ltr\:translate-x-0:where([dir=ltr],[dir=ltr] *){--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.ltr\:translate-x-full:where([dir=ltr],[dir=ltr] *){--tw-translate-x: 100%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.ltr\:translate-y-0:where([dir=ltr],[dir=ltr] *){--tw-translate-y: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.ltr\:translate-y-full:where([dir=ltr],[dir=ltr] *){--tw-translate-y: 100%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.ltr\:rounded-l-lg:where([dir=ltr],[dir=ltr] *){border-top-left-radius:.5rem;border-bottom-left-radius:.5rem}.ltr\:rounded-r-lg:where([dir=ltr],[dir=ltr] *){border-top-right-radius:.5rem;border-bottom-right-radius:.5rem}.ltr\:border-l-\[1px\]:where([dir=ltr],[dir=ltr] *){border-left-width:1px}.ltr\:pl-0:where([dir=ltr],[dir=ltr] *){padding-left:0}.ltr\:pl-1:where([dir=ltr],[dir=ltr] *){padding-left:.25rem}.ltr\:pl-2:where([dir=ltr],[dir=ltr] *){padding-left:.5rem}.ltr\:pl-2\.5:where([dir=ltr],[dir=ltr] *){padding-left:.625rem}.ltr\:pl-3:where([dir=ltr],[dir=ltr] *){padding-left:.75rem}.ltr\:pl-4:where([dir=ltr],[dir=ltr] *){padding-left:1rem}.ltr\:pl-8:where([dir=ltr],[dir=ltr] *){padding-left:2rem}.ltr\:pr-0:where([dir=ltr],[dir=ltr] *){padding-right:0}.ltr\:pr-3:where([dir=ltr],[dir=ltr] *){padding-right:.75rem}.ltr\:pr-4:where([dir=ltr],[dir=ltr] *){padding-right:1rem}.ltr\:pr-7:where([dir=ltr],[dir=ltr] *){padding-right:1.75rem}.ltr\:pr-8:where([dir=ltr],[dir=ltr] *){padding-right:2rem}@media not all and (min-width: 1024px){.max-lg\:ltr\:pl-0:where([dir=ltr],[dir=ltr] *){padding-left:0}}@media not all and (min-width: 768px){.max-md\:ltr\:left-4:where([dir=ltr],[dir=ltr] *){left:1rem}.max-md\:ltr\:right-1\.5:where([dir=ltr],[dir=ltr] *){right:.375rem}.max-md\:ltr\:right-4:where([dir=ltr],[dir=ltr] *){right:1rem}.ltr\:max-md\:gap-0:where([dir=ltr],[dir=ltr] *){gap:0px}.max-md\:ltr\:pl-2\.5:where([dir=ltr],[dir=ltr] *){padding-left:.625rem}.max-md\:ltr\:pr-1:where([dir=ltr],[dir=ltr] *){padding-right:.25rem}.max-md\:ltr\:pr-2\.5:where([dir=ltr],[dir=ltr] *){padding-right:.625rem}}@media not all and (min-width: 525px){.max-sm\:ltr\:left-0:where([dir=ltr],[dir=ltr] *){left:0}.max-sm\:ltr\:left-2:where([dir=ltr],[dir=ltr] *){left:.5rem}}@media (min-width: 768px){.md\:ltr\:ml-0:where([dir=ltr],[dir=ltr] *){margin-left:0}}.rtl\:-right-9:where([dir=rtl],[dir=rtl] *){right:-2.25rem}.rtl\:left-0:where([dir=rtl],[dir=rtl] *){left:0}.rtl\:left-1\.5:where([dir=rtl],[dir=rtl] *){left:.375rem}.rtl\:left-10:where([dir=rtl],[dir=rtl] *){left:2.5rem}.rtl\:left-2:where([dir=rtl],[dir=rtl] *){left:.5rem}.rtl\:left-2\.5:where([dir=rtl],[dir=rtl] *){left:.625rem}.rtl\:left-3:where([dir=rtl],[dir=rtl] *){left:.75rem}.rtl\:left-5:where([dir=rtl],[dir=rtl] *){left:1.25rem}.rtl\:right-0:where([dir=rtl],[dir=rtl] *){right:0}.rtl\:right-1\.5:where([dir=rtl],[dir=rtl] *){right:.375rem}.rtl\:right-3:where([dir=rtl],[dir=rtl] *){right:.75rem}.rtl\:right-4:where([dir=rtl],[dir=rtl] *){right:1rem}.rtl\:right-5:where([dir=rtl],[dir=rtl] *){right:1.25rem}.rtl\:right-full:where([dir=rtl],[dir=rtl] *){right:100%}.rtl\:ml-2\.5:where([dir=rtl],[dir=rtl] *){margin-left:.625rem}.rtl\:ml-\[50px\]:where([dir=rtl],[dir=rtl] *){margin-left:50px}.rtl\:mr-0:where([dir=rtl],[dir=rtl] *){margin-right:0}.rtl\:mr-1:where([dir=rtl],[dir=rtl] *){margin-right:.25rem}.rtl\:mr-1\.5:where([dir=rtl],[dir=rtl] *){margin-right:.375rem}.rtl\:mr-2\.5:where([dir=rtl],[dir=rtl] *){margin-right:.625rem}.rtl\:mr-3:where([dir=rtl],[dir=rtl] *){margin-right:.75rem}.rtl\:-translate-x-0:where([dir=rtl],[dir=rtl] *){--tw-translate-x: -0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rtl\:-translate-x-full:where([dir=rtl],[dir=rtl] *){--tw-translate-x: -100%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rtl\:-translate-y-0:where([dir=rtl],[dir=rtl] *){--tw-translate-y: -0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rtl\:-translate-y-full:where([dir=rtl],[dir=rtl] *){--tw-translate-y: -100%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rtl\:translate-x-0:where([dir=rtl],[dir=rtl] *){--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rtl\:translate-x-full:where([dir=rtl],[dir=rtl] *){--tw-translate-x: 100%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rtl\:rounded-l-lg:where([dir=rtl],[dir=rtl] *){border-top-left-radius:.5rem;border-bottom-left-radius:.5rem}.rtl\:rounded-r-lg:where([dir=rtl],[dir=rtl] *){border-top-right-radius:.5rem;border-bottom-right-radius:.5rem}.rtl\:border-r-\[1px\]:where([dir=rtl],[dir=rtl] *){border-right-width:1px}.rtl\:pl-0:where([dir=rtl],[dir=rtl] *){padding-left:0}.rtl\:pl-3:where([dir=rtl],[dir=rtl] *){padding-left:.75rem}.rtl\:pl-4:where([dir=rtl],[dir=rtl] *){padding-left:1rem}.rtl\:pl-7:where([dir=rtl],[dir=rtl] *){padding-left:1.75rem}.rtl\:pl-8:where([dir=rtl],[dir=rtl] *){padding-left:2rem}.rtl\:pr-0:where([dir=rtl],[dir=rtl] *){padding-right:0}.rtl\:pr-1:where([dir=rtl],[dir=rtl] *){padding-right:.25rem}.rtl\:pr-2:where([dir=rtl],[dir=rtl] *){padding-right:.5rem}.rtl\:pr-2\.5:where([dir=rtl],[dir=rtl] *){padding-right:.625rem}.rtl\:pr-3:where([dir=rtl],[dir=rtl] *){padding-right:.75rem}.rtl\:pr-4:where([dir=rtl],[dir=rtl] *){padding-right:1rem}.rtl\:pr-8:where([dir=rtl],[dir=rtl] *){padding-right:2rem}@media not all and (min-width: 1024px){.max-lg\:rtl\:pr-0:where([dir=rtl],[dir=rtl] *){padding-right:0}}@media not all and (min-width: 768px){.max-md\:rtl\:left-1\.5:where([dir=rtl],[dir=rtl] *){left:.375rem}.max-md\:rtl\:left-4:where([dir=rtl],[dir=rtl] *){left:1rem}.max-md\:rtl\:right-4:where([dir=rtl],[dir=rtl] *){right:1rem}.rtl\:max-md\:gap-0:where([dir=rtl],[dir=rtl] *){gap:0px}.max-md\:rtl\:pl-1:where([dir=rtl],[dir=rtl] *){padding-left:.25rem}.max-md\:rtl\:pl-2\.5:where([dir=rtl],[dir=rtl] *){padding-left:.625rem}.max-md\:rtl\:pr-2\.5:where([dir=rtl],[dir=rtl] *){padding-right:.625rem}}@media not all and (min-width: 525px){.max-sm\:rtl\:right-0:where([dir=rtl],[dir=rtl] *){right:0}}@media (min-width: 768px){.md\:rtl\:mr-0:where([dir=rtl],[dir=rtl] *){margin-right:0}}@media (prefers-color-scheme: dark){.dark\:border-emerald-800{--tw-border-opacity: 1;border-color:rgb(6 95 70 / var(--tw-border-opacity, 1))}.dark\:bg-emerald-950{--tw-bg-opacity: 1;background-color:rgb(2 44 34 / var(--tw-bg-opacity, 1))}.dark\:text-emerald-300{--tw-text-opacity: 1;color:rgb(110 231 183 / var(--tw-text-opacity, 1))}.dark\:text-gray-400{--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}.dark\:hover\:bg-gray-800:hover{--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity, 1))}}.\[\&\:\:-moz-range-thumb\]\:pointer-events-auto::-moz-range-thumb{pointer-events:auto}.\[\&\:\:-moz-range-thumb\]\:h-\[18px\]::-moz-range-thumb{height:18px}.\[\&\:\:-moz-range-thumb\]\:w-\[18px\]::-moz-range-thumb{width:18px}.\[\&\:\:-moz-range-thumb\]\:appearance-none::-moz-range-thumb{-moz-appearance:none;-webkit-appearance:none;appearance:none}.\[\&\:\:-moz-range-thumb\]\:rounded-full::-moz-range-thumb{border-radius:9999px}.\[\&\:\:-moz-range-thumb\]\:bg-white::-moz-range-thumb{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.\[\&\:\:-moz-range-thumb\]\:ring::-moz-range-thumb{--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);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.\[\&\:\:-moz-range-thumb\]\:ring-navyBlue::-moz-range-thumb{--tw-ring-opacity: 1;--tw-ring-color: rgb(6 12 59 / var(--tw-ring-opacity, 1))}.\[\&\:\:-ms-thumb\]\:pointer-events-auto::-ms-thumb{pointer-events:auto}.\[\&\:\:-ms-thumb\]\:h-\[18px\]::-ms-thumb{height:18px}.\[\&\:\:-ms-thumb\]\:w-\[18px\]::-ms-thumb{width:18px}.\[\&\:\:-ms-thumb\]\:appearance-none::-ms-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none}.\[\&\:\:-ms-thumb\]\:rounded-full::-ms-thumb{border-radius:9999px}.\[\&\:\:-ms-thumb\]\:bg-white::-ms-thumb{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.\[\&\:\:-ms-thumb\]\:ring::-ms-thumb{--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);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.\[\&\:\:-ms-thumb\]\:ring-navyBlue::-ms-thumb{--tw-ring-opacity: 1;--tw-ring-color: rgb(6 12 59 / var(--tw-ring-opacity, 1))}.\[\&\:\:-webkit-slider-thumb\]\:pointer-events-auto::-webkit-slider-thumb{pointer-events:auto}.\[\&\:\:-webkit-slider-thumb\]\:h-\[18px\]::-webkit-slider-thumb{height:18px}.\[\&\:\:-webkit-slider-thumb\]\:w-\[18px\]::-webkit-slider-thumb{width:18px}.\[\&\:\:-webkit-slider-thumb\]\:appearance-none::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none}.\[\&\:\:-webkit-slider-thumb\]\:rounded-full::-webkit-slider-thumb{border-radius:9999px}.\[\&\:\:-webkit-slider-thumb\]\:bg-white::-webkit-slider-thumb{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.\[\&\:\:-webkit-slider-thumb\]\:ring::-webkit-slider-thumb{--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);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.\[\&\:\:-webkit-slider-thumb\]\:ring-navyBlue::-webkit-slider-thumb{--tw-ring-opacity: 1;--tw-ring-color: rgb(6 12 59 / var(--tw-ring-opacity, 1))}.\[\&\>\*\]\:flex>*{display:flex}.\[\&\>\*\]\:flex-\[0\]>*{flex:0}.\[\&\>\*\]\:justify-between>*{justify-content:space-between}.\[\&\>\*\]\:border-0>*{border-width:0px}.\[\&\>\*\]\:px-6>*{padding-left:1.5rem;padding-right:1.5rem}.\[\&\>\*\]\:py-4>*{padding-top:1rem;padding-bottom:1rem}.\[\&\>\*\]\:text-right>*{text-align:right}.\[\&\>\*\]\:font-medium>*{font-weight:500}.\[\&\>\*\]\:text-black>*{--tw-text-opacity: 1;color:rgb(0 0 0 / var(--tw-text-opacity, 1))}.\[\&\>\*\]\:text-blue-600>*{--tw-text-opacity: 1;color:rgb(37 99 235 / var(--tw-text-opacity, 1))}.\[\&\>\*\]\:after\:content-\[\'_\/_\'\]>*:after{--tw-content: " / ";content:var(--tw-content)}@media not all and (min-width: 768px){.max-md\:\[\&\>\*\]\:\[\&\>\*\]\:rounded-full>*>*{border-radius:9999px}.max-md\:\[\&\>\*\]\:leading-6>*{line-height:1.5rem}}@media not all and (min-width: 525px){.max-sm\:\[\&\>\*\]\:leading-4>*{line-height:1rem}}.\[\&_span\.icon-compare\]\:hidden span.icon-compare{display:none}

/* themes/shop/default/build/assets/app-DsP8OK1c.css */
.flatpickr-calendar{background:transparent;overflow:hidden;max-height:0;opacity:0;visibility:hidden;text-align:center;padding:0;-webkit-animation:none;animation:none;direction:ltr;border:0;font-size:14px;line-height:24px;border-radius:5px;position:absolute;width:315px;-webkit-box-sizing:border-box;box-sizing:border-box;-ms-touch-action:manipulation;touch-action:manipulation;background:#fff;-webkit-box-shadow:1px 0 0 #e6e6e6,-1px 0 0 #e6e6e6,0 1px 0 #e6e6e6,0 -1px 0 #e6e6e6,0 3px 13px rgba(0,0,0,.08);box-shadow:1px 0 #e6e6e6,-1px 0 #e6e6e6,0 1px #e6e6e6,0 -1px #e6e6e6,0 3px 13px #00000014}.flatpickr-calendar.open,.flatpickr-calendar.inline{opacity:1;visibility:visible;overflow:visible;max-height:640px}.flatpickr-calendar.open{display:inline-block;z-index:99999}.flatpickr-calendar.animate.open{-webkit-animation:fpFadeInDown .3s cubic-bezier(.23,1,.32,1);animation:fpFadeInDown .3s cubic-bezier(.23,1,.32,1)}.flatpickr-calendar.inline{display:block;position:relative;top:2px}.flatpickr-calendar.static{position:absolute;top:calc(100% + 2px)}.flatpickr-calendar.static.open{z-index:999;display:block}.flatpickr-calendar.hasWeeks{width:auto}.flatpickr-calendar .hasWeeks .dayContainer,.flatpickr-calendar .hasTime .dayContainer{border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.flatpickr-calendar .hasWeeks .dayContainer{border-left:0}.flatpickr-calendar.showTimeInput.hasTime .flatpickr-time{height:40px;border-top:1px solid #e6e6e6}.flatpickr-calendar.noCalendar.hasTime .flatpickr-time{height:auto}.flatpickr-calendar:before,.flatpickr-calendar:after{position:absolute;display:block;pointer-events:none;border:solid transparent;content:"";height:0;width:0;left:22px}.flatpickr-calendar.rightMost:before,.flatpickr-calendar.rightMost:after{left:auto;right:22px}.flatpickr-calendar:before{border-width:5px;margin:0 -5px}.flatpickr-calendar:after{border-width:4px;margin:0 -4px}.flatpickr-calendar.arrowTop:before,.flatpickr-calendar.arrowTop:after{bottom:100%}.flatpickr-calendar.arrowTop:before{border-bottom-color:#e6e6e6}.flatpickr-calendar.arrowTop:after{border-bottom-color:#fff}.flatpickr-calendar.arrowBottom:before,.flatpickr-calendar.arrowBottom:after{top:100%}.flatpickr-calendar.arrowBottom:before{border-top-color:#e6e6e6}.flatpickr-calendar.arrowBottom:after{border-top-color:#fff}.flatpickr-calendar:focus{outline:0}.flatpickr-wrapper{position:relative;display:inline-block}.flatpickr-month{background:transparent;color:#000000e6;fill:#000000e6;height:28px;line-height:1;text-align:center;position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;overflow:hidden}.flatpickr-prev-month,.flatpickr-next-month{text-decoration:none;cursor:pointer;position:absolute;top:0;line-height:16px;height:28px;padding:10px calc(3.57% - 1.5px);z-index:3}.flatpickr-prev-month i,.flatpickr-next-month i{position:relative}.flatpickr-prev-month.flatpickr-prev-month,.flatpickr-next-month.flatpickr-prev-month{left:0}.flatpickr-prev-month.flatpickr-next-month,.flatpickr-next-month.flatpickr-next-month{right:0}.flatpickr-prev-month:hover,.flatpickr-next-month:hover{color:#959ea9}.flatpickr-prev-month:hover svg,.flatpickr-next-month:hover svg{fill:#f64747}.flatpickr-prev-month svg,.flatpickr-next-month svg{width:14px}.flatpickr-prev-month svg path,.flatpickr-next-month svg path{-webkit-transition:fill .1s;transition:fill .1s;fill:inherit}.numInputWrapper{position:relative;height:auto}.numInputWrapper input,.numInputWrapper span{display:inline-block}.numInputWrapper input{width:100%}.numInputWrapper span{position:absolute;right:0;width:14px;padding:0 4px 0 2px;height:50%;line-height:50%;opacity:0;cursor:pointer;border:1px solid rgba(57,57,57,.05);-webkit-box-sizing:border-box;box-sizing:border-box}.numInputWrapper span:hover{background:#0000001a}.numInputWrapper span:active{background:#0003}.numInputWrapper span:after{display:block;content:"";position:absolute;top:33%}.numInputWrapper span.arrowUp{top:0;border-bottom:0}.numInputWrapper span.arrowUp:after{border-left:4px solid transparent;border-right:4px solid transparent;border-bottom:4px solid rgba(57,57,57,.6)}.numInputWrapper span.arrowDown{top:50%}.numInputWrapper span.arrowDown:after{border-left:4px solid transparent;border-right:4px solid transparent;border-top:4px solid rgba(57,57,57,.6)}.numInputWrapper span svg{width:inherit;height:auto}.numInputWrapper span svg path{fill:#00000080}.numInputWrapper:hover{background:#0000000d}.numInputWrapper:hover span{opacity:1}.flatpickr-current-month{font-size:135%;line-height:inherit;font-weight:300;color:inherit;position:absolute;width:75%;left:12.5%;padding:6.16px 0 0;line-height:1;height:28px;display:inline-block;text-align:center;-webkit-transform:translate3d(0px,0px,0px);transform:translateZ(0)}.flatpickr-current-month.slideLeft{-webkit-transform:translate3d(-100%,0px,0px);transform:translate3d(-100%,0,0);-webkit-animation:fpFadeOut .4s ease,fpSlideLeft .4s cubic-bezier(.23,1,.32,1);animation:fpFadeOut .4s ease,fpSlideLeft .4s cubic-bezier(.23,1,.32,1)}.flatpickr-current-month.slideLeftNew{-webkit-transform:translate3d(100%,0px,0px);transform:translate3d(100%,0,0);-webkit-animation:fpFadeIn .4s ease,fpSlideLeftNew .4s cubic-bezier(.23,1,.32,1);animation:fpFadeIn .4s ease,fpSlideLeftNew .4s cubic-bezier(.23,1,.32,1)}.flatpickr-current-month.slideRight{-webkit-transform:translate3d(100%,0px,0px);transform:translate3d(100%,0,0);-webkit-animation:fpFadeOut .4s ease,fpSlideRight .4s cubic-bezier(.23,1,.32,1);animation:fpFadeOut .4s ease,fpSlideRight .4s cubic-bezier(.23,1,.32,1)}.flatpickr-current-month.slideRightNew{-webkit-transform:translate3d(0,0,0px);transform:translateZ(0);-webkit-animation:fpFadeIn .4s ease,fpSlideRightNew .4s cubic-bezier(.23,1,.32,1);animation:fpFadeIn .4s ease,fpSlideRightNew .4s cubic-bezier(.23,1,.32,1)}.flatpickr-current-month span.cur-month{font-family:inherit;font-weight:700;color:inherit;display:inline-block;margin-left:.5ch;padding:0}.flatpickr-current-month span.cur-month:hover{background:#0000000d}.flatpickr-current-month .numInputWrapper{width:6ch;width:7ch�;display:inline-block}.flatpickr-current-month .numInputWrapper span.arrowUp:after{border-bottom-color:#000000e6}.flatpickr-current-month .numInputWrapper span.arrowDown:after{border-top-color:#000000e6}.flatpickr-current-month input.cur-year{background:transparent;-webkit-box-sizing:border-box;box-sizing:border-box;color:inherit;cursor:default;padding:0 0 0 .5ch;margin:0;display:inline-block;font-size:inherit;font-family:inherit;font-weight:300;line-height:inherit;height:initial;border:0;border-radius:0;vertical-align:initial}.flatpickr-current-month input.cur-year:focus{outline:0}.flatpickr-current-month input.cur-year[disabled],.flatpickr-current-month input.cur-year[disabled]:hover{font-size:100%;color:#00000080;background:transparent;pointer-events:none}.flatpickr-weekdays{background:transparent;text-align:center;overflow:hidden;width:315px;display:-webkit-flex;display:-ms-flexbox;display:-webkit-box;display:flex;-webkit-align-items:center;-ms-flex-align:center;-webkit-box-align:center;align-items:center;height:28px}span.flatpickr-weekday{cursor:default;font-size:90%;background:transparent;color:#0000008a;line-height:1;margin:0;text-align:center;display:block;-webkit-flex:1;-ms-flex:1;-webkit-box-flex:1;flex:1;font-weight:bolder}.dayContainer,.flatpickr-weeks{padding:1px 0 0}.flatpickr-days{position:relative;overflow:hidden;display:-webkit-flex;display:-ms-flexbox;display:-webkit-box;display:flex;width:315px}.flatpickr-days:focus{outline:0}.dayContainer{padding:0;outline:0;text-align:left;width:315px;min-width:315px;max-width:315px;-webkit-box-sizing:border-box;box-sizing:border-box;display:inline-block;display:-ms-flexbox;display:-webkit-flex;display:-webkit-box;display:flex;-webkit-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-wrap:wrap;-ms-flex-pack:justify;-webkit-justify-content:space-around;justify-content:space-around;-webkit-transform:translate3d(0px,0px,0px);transform:translateZ(0);opacity:1}.flatpickr-calendar.animate .dayContainer.slideLeft{-webkit-animation:fpFadeOut .4s cubic-bezier(.23,1,.32,1),fpSlideLeft .4s cubic-bezier(.23,1,.32,1);animation:fpFadeOut .4s cubic-bezier(.23,1,.32,1),fpSlideLeft .4s cubic-bezier(.23,1,.32,1)}.flatpickr-calendar.animate .dayContainer.slideLeft,.flatpickr-calendar.animate .dayContainer.slideLeftNew{-webkit-transform:translate3d(-100%,0px,0px);transform:translate3d(-100%,0,0)}.flatpickr-calendar.animate .dayContainer.slideLeftNew{-webkit-animation:fpFadeIn .4s cubic-bezier(.23,1,.32,1),fpSlideLeft .4s cubic-bezier(.23,1,.32,1);animation:fpFadeIn .4s cubic-bezier(.23,1,.32,1),fpSlideLeft .4s cubic-bezier(.23,1,.32,1)}.flatpickr-calendar.animate .dayContainer.slideRight{-webkit-animation:fpFadeOut .4s cubic-bezier(.23,1,.32,1),fpSlideRight .4s cubic-bezier(.23,1,.32,1);animation:fpFadeOut .4s cubic-bezier(.23,1,.32,1),fpSlideRight .4s cubic-bezier(.23,1,.32,1);-webkit-transform:translate3d(100%,0px,0px);transform:translate3d(100%,0,0)}.flatpickr-calendar.animate .dayContainer.slideRightNew{-webkit-animation:fpFadeIn .4s cubic-bezier(.23,1,.32,1),fpSlideRightNew .4s cubic-bezier(.23,1,.32,1);animation:fpFadeIn .4s cubic-bezier(.23,1,.32,1),fpSlideRightNew .4s cubic-bezier(.23,1,.32,1)}.flatpickr-day{background:none;border:1px solid transparent;border-radius:150px;-webkit-box-sizing:border-box;box-sizing:border-box;color:#393939;cursor:pointer;font-weight:400;width:14.2857143%;-webkit-flex-basis:14.2857143%;-ms-flex-preferred-size:14.2857143%;flex-basis:14.2857143%;max-width:40px;height:40px;line-height:40px;margin:0;display:inline-block;position:relative;-webkit-justify-content:center;-ms-flex-pack:center;-webkit-box-pack:center;justify-content:center;text-align:center}.flatpickr-day.inRange,.flatpickr-day.prevMonthDay.inRange,.flatpickr-day.nextMonthDay.inRange,.flatpickr-day.today.inRange,.flatpickr-day.prevMonthDay.today.inRange,.flatpickr-day.nextMonthDay.today.inRange,.flatpickr-day:hover,.flatpickr-day.prevMonthDay:hover,.flatpickr-day.nextMonthDay:hover,.flatpickr-day:focus,.flatpickr-day.prevMonthDay:focus,.flatpickr-day.nextMonthDay:focus{cursor:pointer;outline:0;background:#e6e6e6;border-color:#e6e6e6}.flatpickr-day.today{border-color:#959ea9}.flatpickr-day.today:hover,.flatpickr-day.today:focus{border-color:#959ea9;background:#959ea9;color:#fff}.flatpickr-day.selected,.flatpickr-day.startRange,.flatpickr-day.endRange,.flatpickr-day.selected.inRange,.flatpickr-day.startRange.inRange,.flatpickr-day.endRange.inRange,.flatpickr-day.selected:focus,.flatpickr-day.startRange:focus,.flatpickr-day.endRange:focus,.flatpickr-day.selected:hover,.flatpickr-day.startRange:hover,.flatpickr-day.endRange:hover,.flatpickr-day.selected.prevMonthDay,.flatpickr-day.startRange.prevMonthDay,.flatpickr-day.endRange.prevMonthDay,.flatpickr-day.selected.nextMonthDay,.flatpickr-day.startRange.nextMonthDay,.flatpickr-day.endRange.nextMonthDay{background:#569ff7;-webkit-box-shadow:none;box-shadow:none;color:#fff;border-color:#569ff7}.flatpickr-day.selected.startRange,.flatpickr-day.startRange.startRange,.flatpickr-day.endRange.startRange{border-radius:50px 0 0 50px}.flatpickr-day.selected.endRange,.flatpickr-day.startRange.endRange,.flatpickr-day.endRange.endRange{border-radius:0 50px 50px 0}.flatpickr-day.selected.startRange+.endRange,.flatpickr-day.startRange.startRange+.endRange,.flatpickr-day.endRange.startRange+.endRange{-webkit-box-shadow:-10px 0 0 #569ff7;box-shadow:-10px 0 #569ff7}.flatpickr-day.selected.startRange.endRange,.flatpickr-day.startRange.startRange.endRange,.flatpickr-day.endRange.startRange.endRange{border-radius:50px}.flatpickr-day.inRange{border-radius:0;-webkit-box-shadow:-5px 0 0 #e6e6e6,5px 0 0 #e6e6e6;box-shadow:-5px 0 #e6e6e6,5px 0 #e6e6e6}.flatpickr-day.disabled,.flatpickr-day.disabled:hover{pointer-events:none}.flatpickr-day.disabled,.flatpickr-day.disabled:hover,.flatpickr-day.prevMonthDay,.flatpickr-day.nextMonthDay,.flatpickr-day.notAllowed,.flatpickr-day.notAllowed.prevMonthDay,.flatpickr-day.notAllowed.nextMonthDay{color:#3939394d;background:transparent;border-color:transparent;cursor:default}.flatpickr-day.week.selected{border-radius:0;-webkit-box-shadow:-5px 0 0 #569ff7,5px 0 0 #569ff7;box-shadow:-5px 0 #569ff7,5px 0 #569ff7}.rangeMode .flatpickr-day{margin-top:1px}.flatpickr-weekwrapper{display:inline-block;float:left}.flatpickr-weekwrapper .flatpickr-weeks{padding:0 12px;-webkit-box-shadow:1px 0 0 #e6e6e6;box-shadow:1px 0 #e6e6e6}.flatpickr-weekwrapper .flatpickr-weekday{float:none;width:100%;line-height:28px}.flatpickr-weekwrapper span.flatpickr-day{display:block;width:100%;max-width:none}.flatpickr-innerContainer{display:block;display:-webkit-flex;display:-ms-flexbox;display:-webkit-box;display:flex;-webkit-box-sizing:border-box;box-sizing:border-box;overflow:hidden}.flatpickr-rContainer{display:inline-block;padding:0;-webkit-box-sizing:border-box;box-sizing:border-box}.flatpickr-time{text-align:center;outline:0;display:block;height:0;line-height:40px;max-height:40px;-webkit-box-sizing:border-box;box-sizing:border-box;overflow:hidden;display:-webkit-flex;display:-ms-flexbox;display:-webkit-box;display:flex}.flatpickr-time:after{content:"";display:table;clear:both}.flatpickr-time .numInputWrapper{-webkit-flex:1;-ms-flex:1;-webkit-box-flex:1;flex:1;width:40%;height:40px;float:left}.flatpickr-time .numInputWrapper span.arrowUp:after{border-bottom-color:#393939}.flatpickr-time .numInputWrapper span.arrowDown:after{border-top-color:#393939}.flatpickr-time.hasSeconds .numInputWrapper{width:26%}.flatpickr-time.time24hr .numInputWrapper{width:49%}.flatpickr-time input{background:transparent;-webkit-box-shadow:none;box-shadow:none;border:0;border-radius:0;text-align:center;margin:0;padding:0;height:inherit;line-height:inherit;cursor:pointer;color:#393939;font-size:14px;position:relative;-webkit-box-sizing:border-box;box-sizing:border-box}.flatpickr-time input.flatpickr-hour{font-weight:700}.flatpickr-time input.flatpickr-minute,.flatpickr-time input.flatpickr-second{font-weight:400}.flatpickr-time input:focus{outline:0;border:0}.flatpickr-time .flatpickr-time-separator,.flatpickr-time .flatpickr-am-pm{height:inherit;display:inline-block;float:left;line-height:inherit;color:#393939;font-weight:700;width:2%;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-align-self:center;-ms-flex-item-align:center;-ms-grid-row-align:center;align-self:center}.flatpickr-time .flatpickr-am-pm{outline:0;width:18%;cursor:pointer;text-align:center;font-weight:400}.flatpickr-time .flatpickr-am-pm:hover,.flatpickr-time .flatpickr-am-pm:focus{background:#f0f0f0}.flatpickr-input[readonly]{cursor:pointer}@-webkit-keyframes fpFadeInDown{0%{opacity:0;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translateZ(0)}}@keyframes fpFadeInDown{0%{opacity:0;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translateZ(0)}}@-webkit-keyframes fpSlideLeft{0%{-webkit-transform:translate3d(0px,0px,0px);transform:translateZ(0)}to{-webkit-transform:translate3d(-100%,0px,0px);transform:translate3d(-100%,0,0)}}@keyframes fpSlideLeft{0%{-webkit-transform:translate3d(0px,0px,0px);transform:translateZ(0)}to{-webkit-transform:translate3d(-100%,0px,0px);transform:translate3d(-100%,0,0)}}@-webkit-keyframes fpSlideLeftNew{0%{-webkit-transform:translate3d(100%,0px,0px);transform:translate3d(100%,0,0)}to{-webkit-transform:translate3d(0px,0px,0px);transform:translateZ(0)}}@keyframes fpSlideLeftNew{0%{-webkit-transform:translate3d(100%,0px,0px);transform:translate3d(100%,0,0)}to{-webkit-transform:translate3d(0px,0px,0px);transform:translateZ(0)}}@-webkit-keyframes fpSlideRight{0%{-webkit-transform:translate3d(0,0,0px);transform:translateZ(0)}to{-webkit-transform:translate3d(100%,0px,0px);transform:translate3d(100%,0,0)}}@keyframes fpSlideRight{0%{-webkit-transform:translate3d(0,0,0px);transform:translateZ(0)}to{-webkit-transform:translate3d(100%,0px,0px);transform:translate3d(100%,0,0)}}@-webkit-keyframes fpSlideRightNew{0%{-webkit-transform:translate3d(-100%,0,0px);transform:translate3d(-100%,0,0)}to{-webkit-transform:translate3d(0,0,0px);transform:translateZ(0)}}@keyframes fpSlideRightNew{0%{-webkit-transform:translate3d(-100%,0,0px);transform:translate3d(-100%,0,0)}to{-webkit-transform:translate3d(0,0,0px);transform:translateZ(0)}}@-webkit-keyframes fpFadeOut{0%{opacity:1}to{opacity:0}}@keyframes fpFadeOut{0%{opacity:1}to{opacity:0}}@-webkit-keyframes fpFadeIn{0%{opacity:0}to{opacity:1}}@keyframes fpFadeIn{0%{opacity:0}to{opacity:1}}

/* themes/property/property-fonts.css */
/* Roboto v51, unchanged Google Fonts WOFF2 subsets. See fonts/Roboto-OFL.txt.

   One exception: roboto-v51-approx.woff2 is roboto-v51-math.woff2 cut down
   to U+2248 alone (fontTools subset, all layout features, wght axis kept).
   ≈ is printed before every converted price, and it was the only character
   on the site in the math range, so each card page downloaded the 41 KB math
   file for one glyph. The math faces below therefore skip U+2248 and the
   approx faces serve it, same outline and metrics, 4 KB.

   WHY EACH SUBSET IS DECLARED FIVE TIMES (19 October 2026)

   Google serves these files as one variable face, `font-weight: 400 700`.
   Declared that way, Arabic NEVER rendered in Tajawal on this channel:
   ../shop/arabic-face.css registers Tajawal under the family name Roboto with
   single weights 400 / 500 / 700, and Chromium groups a family's @font-face
   rules by their exact (stretch, style, weight) descriptors, picks ONE group
   for the requested weight, and only then applies unicode-range inside that
   group. A request for weight 400 matched both the `400 700` group (Latin)
   and the `400` group (Arabic) equally, Chromium kept the Latin one, and
   every Arabic glyph fell through to the OS fallback. The Arabic faces stayed
   "unloaded" in document.fonts. The other five channels are unaffected
   because Google's css2 response declares single weights 400/500/700, which
   are the same groups arabic-face.css joins.

   The fix keeps the variable font's behaviour for Latin and gives every
   group Arabic coverage:

     400, 500, 700   single weights: the SAME descriptors arabic-face.css uses,
                     so those Arabic faces merge into these groups.
     401-499         Latin renders at the requested weight (variable axis is
                     clamped into the range, i.e. not clamped at all);
                     Arabic uses the 500 file, as weight matching would.
     501-699         likewise; Arabic uses the 700 file. This is the group
                     the theme's 600 / 650 weights land in.

   Below 400 and above 700 the nearest group answers and the axis is clamped
   to 400 / 700, exactly as the old single `400 700` face did. Never add a
   group here without Arabic in it: a group without Arabic is the bug.
   The Tajawal URLs are the same files arabic-face.css loads, so nothing is
   downloaded twice. */

/* ===== weight 400 ===== */
/* cyrillic-ext */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url("https://hagzi.jo/themes/property/fonts/roboto-v51-cyrillic-ext.woff2") format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url("https://hagzi.jo/themes/property/fonts/roboto-v51-cyrillic.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek-ext */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url("https://hagzi.jo/themes/property/fonts/roboto-v51-greek-ext.woff2") format('woff2');
  unicode-range: U+1F00-1FFF;
}
/* greek */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url("https://hagzi.jo/themes/property/fonts/roboto-v51-greek.woff2") format('woff2');
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
/* math */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url("https://hagzi.jo/themes/property/fonts/roboto-v51-math.woff2") format('woff2');
  unicode-range: U+0302-0303, U+0305, U+0307-0308, U+0310, U+0312, U+0315, U+031A, U+0326-0327, U+032C, U+032F-0330, U+0332-0333, U+0338, U+033A, U+0346, U+034D, U+0391-03A1, U+03A3-03A9, U+03B1-03C9, U+03D1, U+03D5-03D6, U+03F0-03F1, U+03F4-03F5, U+2016-2017, U+2034-2038, U+203C, U+2040, U+2043, U+2047, U+2050, U+2057, U+205F, U+2070-2071, U+2074-208E, U+2090-209C, U+20D0-20DC, U+20E1, U+20E5-20EF, U+2100-2112, U+2114-2115, U+2117-2121, U+2123-214F, U+2190, U+2192, U+2194-21AE, U+21B0-21E5, U+21F1-21F2, U+21F4-2211, U+2213-2214, U+2216-2247, U+2249-22FF, U+2308-230B, U+2310, U+2319, U+231C-2321, U+2336-237A, U+237C, U+2395, U+239B-23B7, U+23D0, U+23DC-23E1, U+2474-2475, U+25AF, U+25B3, U+25B7, U+25BD, U+25C1, U+25CA, U+25CC, U+25FB, U+266D-266F, U+27C0-27FF, U+2900-2AFF, U+2B0E-2B11, U+2B30-2B4C, U+2BFE, U+3030, U+FF5B, U+FF5D, U+1D400-1D7FF, U+1EE00-1EEFF;
}
/* approx: the one math glyph the site prints (≈ in .hzc-alt prices) */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url("https://hagzi.jo/themes/property/fonts/roboto-v51-approx.woff2") format('woff2');
  unicode-range: U+2248;
}
/* symbols */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url("https://hagzi.jo/themes/property/fonts/roboto-v51-symbols.woff2") format('woff2');
  unicode-range: U+0001-000C, U+000E-001F, U+007F-009F, U+20DD-20E0, U+20E2-20E4, U+2150-218F, U+2190, U+2192, U+2194-2199, U+21AF, U+21E6-21F0, U+21F3, U+2218-2219, U+2299, U+22C4-22C6, U+2300-243F, U+2440-244A, U+2460-24FF, U+25A0-27BF, U+2800-28FF, U+2921-2922, U+2981, U+29BF, U+29EB, U+2B00-2BFF, U+4DC0-4DFF, U+FFF9-FFFB, U+10140-1018E, U+10190-1019C, U+101A0, U+101D0-101FD, U+102E0-102FB, U+10E60-10E7E, U+1D2C0-1D2D3, U+1D2E0-1D37F, U+1F000-1F0FF, U+1F100-1F1AD, U+1F1E6-1F1FF, U+1F30D-1F30F, U+1F315, U+1F31C, U+1F31E, U+1F320-1F32C, U+1F336, U+1F378, U+1F37D, U+1F382, U+1F393-1F39F, U+1F3A7-1F3A8, U+1F3AC-1F3AF, U+1F3C2, U+1F3C4-1F3C6, U+1F3CA-1F3CE, U+1F3D4-1F3E0, U+1F3ED, U+1F3F1-1F3F3, U+1F3F5-1F3F7, U+1F408, U+1F415, U+1F41F, U+1F426, U+1F43F, U+1F441-1F442, U+1F444, U+1F446-1F449, U+1F44C-1F44E, U+1F453, U+1F46A, U+1F47D, U+1F4A3, U+1F4B0, U+1F4B3, U+1F4B9, U+1F4BB, U+1F4BF, U+1F4C8-1F4CB, U+1F4D6, U+1F4DA, U+1F4DF, U+1F4E3-1F4E6, U+1F4EA-1F4ED, U+1F4F7, U+1F4F9-1F4FB, U+1F4FD-1F4FE, U+1F503, U+1F507-1F50B, U+1F50D, U+1F512-1F513, U+1F53E-1F54A, U+1F54F-1F5FA, U+1F610, U+1F650-1F67F, U+1F687, U+1F68D, U+1F691, U+1F694, U+1F698, U+1F6AD, U+1F6B2, U+1F6B9-1F6BA, U+1F6BC, U+1F6C6-1F6CF, U+1F6D3-1F6D7, U+1F6E0-1F6EA, U+1F6F0-1F6F3, U+1F6F7-1F6FC, U+1F700-1F7FF, U+1F800-1F80B, U+1F810-1F847, U+1F850-1F859, U+1F860-1F887, U+1F890-1F8AD, U+1F8B0-1F8BB, U+1F8C0-1F8C1, U+1F900-1F90B, U+1F93B, U+1F946, U+1F984, U+1F996, U+1F9E9, U+1FA00-1FA6F, U+1FA70-1FA7C, U+1FA80-1FA89, U+1FA8F-1FAC6, U+1FACE-1FADC, U+1FADF-1FAE9, U+1FAF0-1FAF8, U+1FB00-1FBFF;
}
/* vietnamese */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url("https://hagzi.jo/themes/property/fonts/roboto-v51-vietnamese.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url("https://hagzi.jo/themes/property/fonts/roboto-v51-latin-ext.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url("https://hagzi.jo/themes/property/fonts/roboto-v51-latin.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* ===== weight 401 499 ===== */
/* cyrillic-ext */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 401 499;
  font-stretch: 100%;
  font-display: swap;
  src: url("https://hagzi.jo/themes/property/fonts/roboto-v51-cyrillic-ext.woff2") format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 401 499;
  font-stretch: 100%;
  font-display: swap;
  src: url("https://hagzi.jo/themes/property/fonts/roboto-v51-cyrillic.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek-ext */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 401 499;
  font-stretch: 100%;
  font-display: swap;
  src: url("https://hagzi.jo/themes/property/fonts/roboto-v51-greek-ext.woff2") format('woff2');
  unicode-range: U+1F00-1FFF;
}
/* greek */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 401 499;
  font-stretch: 100%;
  font-display: swap;
  src: url("https://hagzi.jo/themes/property/fonts/roboto-v51-greek.woff2") format('woff2');
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
/* math */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 401 499;
  font-stretch: 100%;
  font-display: swap;
  src: url("https://hagzi.jo/themes/property/fonts/roboto-v51-math.woff2") format('woff2');
  unicode-range: U+0302-0303, U+0305, U+0307-0308, U+0310, U+0312, U+0315, U+031A, U+0326-0327, U+032C, U+032F-0330, U+0332-0333, U+0338, U+033A, U+0346, U+034D, U+0391-03A1, U+03A3-03A9, U+03B1-03C9, U+03D1, U+03D5-03D6, U+03F0-03F1, U+03F4-03F5, U+2016-2017, U+2034-2038, U+203C, U+2040, U+2043, U+2047, U+2050, U+2057, U+205F, U+2070-2071, U+2074-208E, U+2090-209C, U+20D0-20DC, U+20E1, U+20E5-20EF, U+2100-2112, U+2114-2115, U+2117-2121, U+2123-214F, U+2190, U+2192, U+2194-21AE, U+21B0-21E5, U+21F1-21F2, U+21F4-2211, U+2213-2214, U+2216-2247, U+2249-22FF, U+2308-230B, U+2310, U+2319, U+231C-2321, U+2336-237A, U+237C, U+2395, U+239B-23B7, U+23D0, U+23DC-23E1, U+2474-2475, U+25AF, U+25B3, U+25B7, U+25BD, U+25C1, U+25CA, U+25CC, U+25FB, U+266D-266F, U+27C0-27FF, U+2900-2AFF, U+2B0E-2B11, U+2B30-2B4C, U+2BFE, U+3030, U+FF5B, U+FF5D, U+1D400-1D7FF, U+1EE00-1EEFF;
}
/* approx: the one math glyph the site prints (≈ in .hzc-alt prices) */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 401 499;
  font-stretch: 100%;
  font-display: swap;
  src: url("https://hagzi.jo/themes/property/fonts/roboto-v51-approx.woff2") format('woff2');
  unicode-range: U+2248;
}
/* symbols */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 401 499;
  font-stretch: 100%;
  font-display: swap;
  src: url("https://hagzi.jo/themes/property/fonts/roboto-v51-symbols.woff2") format('woff2');
  unicode-range: U+0001-000C, U+000E-001F, U+007F-009F, U+20DD-20E0, U+20E2-20E4, U+2150-218F, U+2190, U+2192, U+2194-2199, U+21AF, U+21E6-21F0, U+21F3, U+2218-2219, U+2299, U+22C4-22C6, U+2300-243F, U+2440-244A, U+2460-24FF, U+25A0-27BF, U+2800-28FF, U+2921-2922, U+2981, U+29BF, U+29EB, U+2B00-2BFF, U+4DC0-4DFF, U+FFF9-FFFB, U+10140-1018E, U+10190-1019C, U+101A0, U+101D0-101FD, U+102E0-102FB, U+10E60-10E7E, U+1D2C0-1D2D3, U+1D2E0-1D37F, U+1F000-1F0FF, U+1F100-1F1AD, U+1F1E6-1F1FF, U+1F30D-1F30F, U+1F315, U+1F31C, U+1F31E, U+1F320-1F32C, U+1F336, U+1F378, U+1F37D, U+1F382, U+1F393-1F39F, U+1F3A7-1F3A8, U+1F3AC-1F3AF, U+1F3C2, U+1F3C4-1F3C6, U+1F3CA-1F3CE, U+1F3D4-1F3E0, U+1F3ED, U+1F3F1-1F3F3, U+1F3F5-1F3F7, U+1F408, U+1F415, U+1F41F, U+1F426, U+1F43F, U+1F441-1F442, U+1F444, U+1F446-1F449, U+1F44C-1F44E, U+1F453, U+1F46A, U+1F47D, U+1F4A3, U+1F4B0, U+1F4B3, U+1F4B9, U+1F4BB, U+1F4BF, U+1F4C8-1F4CB, U+1F4D6, U+1F4DA, U+1F4DF, U+1F4E3-1F4E6, U+1F4EA-1F4ED, U+1F4F7, U+1F4F9-1F4FB, U+1F4FD-1F4FE, U+1F503, U+1F507-1F50B, U+1F50D, U+1F512-1F513, U+1F53E-1F54A, U+1F54F-1F5FA, U+1F610, U+1F650-1F67F, U+1F687, U+1F68D, U+1F691, U+1F694, U+1F698, U+1F6AD, U+1F6B2, U+1F6B9-1F6BA, U+1F6BC, U+1F6C6-1F6CF, U+1F6D3-1F6D7, U+1F6E0-1F6EA, U+1F6F0-1F6F3, U+1F6F7-1F6FC, U+1F700-1F7FF, U+1F800-1F80B, U+1F810-1F847, U+1F850-1F859, U+1F860-1F887, U+1F890-1F8AD, U+1F8B0-1F8BB, U+1F8C0-1F8C1, U+1F900-1F90B, U+1F93B, U+1F946, U+1F984, U+1F996, U+1F9E9, U+1FA00-1FA6F, U+1FA70-1FA7C, U+1FA80-1FA89, U+1FA8F-1FAC6, U+1FACE-1FADC, U+1FADF-1FAE9, U+1FAF0-1FAF8, U+1FB00-1FBFF;
}
/* vietnamese */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 401 499;
  font-stretch: 100%;
  font-display: swap;
  src: url("https://hagzi.jo/themes/property/fonts/roboto-v51-vietnamese.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 401 499;
  font-stretch: 100%;
  font-display: swap;
  src: url("https://hagzi.jo/themes/property/fonts/roboto-v51-latin-ext.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 401 499;
  font-stretch: 100%;
  font-display: swap;
  src: url("https://hagzi.jo/themes/property/fonts/roboto-v51-latin.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* arabic (Tajawal 500; 400/500/700 come from ../shop/arabic-face.css) */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 401 499;
  font-stretch: 100%;
  font-display: fallback;
  src: url("https://hagzi.jo/themes/shop/fonts/tajawal-arabic-500.woff2") format('woff2');
  unicode-range: U+0600-06FF, U+0750-077F, U+0870-088E, U+0890-0891, U+0897-08E1, U+08E3-08FF, U+FB50-FDFF, U+FE70-FE74, U+FE76-FEFC;
}

/* ===== weight 500 ===== */
/* cyrillic-ext */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 500;
  font-stretch: 100%;
  font-display: swap;
  src: url("https://hagzi.jo/themes/property/fonts/roboto-v51-cyrillic-ext.woff2") format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 500;
  font-stretch: 100%;
  font-display: swap;
  src: url("https://hagzi.jo/themes/property/fonts/roboto-v51-cyrillic.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek-ext */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 500;
  font-stretch: 100%;
  font-display: swap;
  src: url("https://hagzi.jo/themes/property/fonts/roboto-v51-greek-ext.woff2") format('woff2');
  unicode-range: U+1F00-1FFF;
}
/* greek */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 500;
  font-stretch: 100%;
  font-display: swap;
  src: url("https://hagzi.jo/themes/property/fonts/roboto-v51-greek.woff2") format('woff2');
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
/* math */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 500;
  font-stretch: 100%;
  font-display: swap;
  src: url("https://hagzi.jo/themes/property/fonts/roboto-v51-math.woff2") format('woff2');
  unicode-range: U+0302-0303, U+0305, U+0307-0308, U+0310, U+0312, U+0315, U+031A, U+0326-0327, U+032C, U+032F-0330, U+0332-0333, U+0338, U+033A, U+0346, U+034D, U+0391-03A1, U+03A3-03A9, U+03B1-03C9, U+03D1, U+03D5-03D6, U+03F0-03F1, U+03F4-03F5, U+2016-2017, U+2034-2038, U+203C, U+2040, U+2043, U+2047, U+2050, U+2057, U+205F, U+2070-2071, U+2074-208E, U+2090-209C, U+20D0-20DC, U+20E1, U+20E5-20EF, U+2100-2112, U+2114-2115, U+2117-2121, U+2123-214F, U+2190, U+2192, U+2194-21AE, U+21B0-21E5, U+21F1-21F2, U+21F4-2211, U+2213-2214, U+2216-2247, U+2249-22FF, U+2308-230B, U+2310, U+2319, U+231C-2321, U+2336-237A, U+237C, U+2395, U+239B-23B7, U+23D0, U+23DC-23E1, U+2474-2475, U+25AF, U+25B3, U+25B7, U+25BD, U+25C1, U+25CA, U+25CC, U+25FB, U+266D-266F, U+27C0-27FF, U+2900-2AFF, U+2B0E-2B11, U+2B30-2B4C, U+2BFE, U+3030, U+FF5B, U+FF5D, U+1D400-1D7FF, U+1EE00-1EEFF;
}
/* approx: the one math glyph the site prints (≈ in .hzc-alt prices) */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 500;
  font-stretch: 100%;
  font-display: swap;
  src: url("https://hagzi.jo/themes/property/fonts/roboto-v51-approx.woff2") format('woff2');
  unicode-range: U+2248;
}
/* symbols */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 500;
  font-stretch: 100%;
  font-display: swap;
  src: url("https://hagzi.jo/themes/property/fonts/roboto-v51-symbols.woff2") format('woff2');
  unicode-range: U+0001-000C, U+000E-001F, U+007F-009F, U+20DD-20E0, U+20E2-20E4, U+2150-218F, U+2190, U+2192, U+2194-2199, U+21AF, U+21E6-21F0, U+21F3, U+2218-2219, U+2299, U+22C4-22C6, U+2300-243F, U+2440-244A, U+2460-24FF, U+25A0-27BF, U+2800-28FF, U+2921-2922, U+2981, U+29BF, U+29EB, U+2B00-2BFF, U+4DC0-4DFF, U+FFF9-FFFB, U+10140-1018E, U+10190-1019C, U+101A0, U+101D0-101FD, U+102E0-102FB, U+10E60-10E7E, U+1D2C0-1D2D3, U+1D2E0-1D37F, U+1F000-1F0FF, U+1F100-1F1AD, U+1F1E6-1F1FF, U+1F30D-1F30F, U+1F315, U+1F31C, U+1F31E, U+1F320-1F32C, U+1F336, U+1F378, U+1F37D, U+1F382, U+1F393-1F39F, U+1F3A7-1F3A8, U+1F3AC-1F3AF, U+1F3C2, U+1F3C4-1F3C6, U+1F3CA-1F3CE, U+1F3D4-1F3E0, U+1F3ED, U+1F3F1-1F3F3, U+1F3F5-1F3F7, U+1F408, U+1F415, U+1F41F, U+1F426, U+1F43F, U+1F441-1F442, U+1F444, U+1F446-1F449, U+1F44C-1F44E, U+1F453, U+1F46A, U+1F47D, U+1F4A3, U+1F4B0, U+1F4B3, U+1F4B9, U+1F4BB, U+1F4BF, U+1F4C8-1F4CB, U+1F4D6, U+1F4DA, U+1F4DF, U+1F4E3-1F4E6, U+1F4EA-1F4ED, U+1F4F7, U+1F4F9-1F4FB, U+1F4FD-1F4FE, U+1F503, U+1F507-1F50B, U+1F50D, U+1F512-1F513, U+1F53E-1F54A, U+1F54F-1F5FA, U+1F610, U+1F650-1F67F, U+1F687, U+1F68D, U+1F691, U+1F694, U+1F698, U+1F6AD, U+1F6B2, U+1F6B9-1F6BA, U+1F6BC, U+1F6C6-1F6CF, U+1F6D3-1F6D7, U+1F6E0-1F6EA, U+1F6F0-1F6F3, U+1F6F7-1F6FC, U+1F700-1F7FF, U+1F800-1F80B, U+1F810-1F847, U+1F850-1F859, U+1F860-1F887, U+1F890-1F8AD, U+1F8B0-1F8BB, U+1F8C0-1F8C1, U+1F900-1F90B, U+1F93B, U+1F946, U+1F984, U+1F996, U+1F9E9, U+1FA00-1FA6F, U+1FA70-1FA7C, U+1FA80-1FA89, U+1FA8F-1FAC6, U+1FACE-1FADC, U+1FADF-1FAE9, U+1FAF0-1FAF8, U+1FB00-1FBFF;
}
/* vietnamese */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 500;
  font-stretch: 100%;
  font-display: swap;
  src: url("https://hagzi.jo/themes/property/fonts/roboto-v51-vietnamese.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 500;
  font-stretch: 100%;
  font-display: swap;
  src: url("https://hagzi.jo/themes/property/fonts/roboto-v51-latin-ext.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 500;
  font-stretch: 100%;
  font-display: swap;
  src: url("https://hagzi.jo/themes/property/fonts/roboto-v51-latin.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* ===== weight 501 699 ===== */
/* cyrillic-ext */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 501 699;
  font-stretch: 100%;
  font-display: swap;
  src: url("https://hagzi.jo/themes/property/fonts/roboto-v51-cyrillic-ext.woff2") format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 501 699;
  font-stretch: 100%;
  font-display: swap;
  src: url("https://hagzi.jo/themes/property/fonts/roboto-v51-cyrillic.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek-ext */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 501 699;
  font-stretch: 100%;
  font-display: swap;
  src: url("https://hagzi.jo/themes/property/fonts/roboto-v51-greek-ext.woff2") format('woff2');
  unicode-range: U+1F00-1FFF;
}
/* greek */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 501 699;
  font-stretch: 100%;
  font-display: swap;
  src: url("https://hagzi.jo/themes/property/fonts/roboto-v51-greek.woff2") format('woff2');
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
/* math */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 501 699;
  font-stretch: 100%;
  font-display: swap;
  src: url("https://hagzi.jo/themes/property/fonts/roboto-v51-math.woff2") format('woff2');
  unicode-range: U+0302-0303, U+0305, U+0307-0308, U+0310, U+0312, U+0315, U+031A, U+0326-0327, U+032C, U+032F-0330, U+0332-0333, U+0338, U+033A, U+0346, U+034D, U+0391-03A1, U+03A3-03A9, U+03B1-03C9, U+03D1, U+03D5-03D6, U+03F0-03F1, U+03F4-03F5, U+2016-2017, U+2034-2038, U+203C, U+2040, U+2043, U+2047, U+2050, U+2057, U+205F, U+2070-2071, U+2074-208E, U+2090-209C, U+20D0-20DC, U+20E1, U+20E5-20EF, U+2100-2112, U+2114-2115, U+2117-2121, U+2123-214F, U+2190, U+2192, U+2194-21AE, U+21B0-21E5, U+21F1-21F2, U+21F4-2211, U+2213-2214, U+2216-2247, U+2249-22FF, U+2308-230B, U+2310, U+2319, U+231C-2321, U+2336-237A, U+237C, U+2395, U+239B-23B7, U+23D0, U+23DC-23E1, U+2474-2475, U+25AF, U+25B3, U+25B7, U+25BD, U+25C1, U+25CA, U+25CC, U+25FB, U+266D-266F, U+27C0-27FF, U+2900-2AFF, U+2B0E-2B11, U+2B30-2B4C, U+2BFE, U+3030, U+FF5B, U+FF5D, U+1D400-1D7FF, U+1EE00-1EEFF;
}
/* approx: the one math glyph the site prints (≈ in .hzc-alt prices) */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 501 699;
  font-stretch: 100%;
  font-display: swap;
  src: url("https://hagzi.jo/themes/property/fonts/roboto-v51-approx.woff2") format('woff2');
  unicode-range: U+2248;
}
/* symbols */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 501 699;
  font-stretch: 100%;
  font-display: swap;
  src: url("https://hagzi.jo/themes/property/fonts/roboto-v51-symbols.woff2") format('woff2');
  unicode-range: U+0001-000C, U+000E-001F, U+007F-009F, U+20DD-20E0, U+20E2-20E4, U+2150-218F, U+2190, U+2192, U+2194-2199, U+21AF, U+21E6-21F0, U+21F3, U+2218-2219, U+2299, U+22C4-22C6, U+2300-243F, U+2440-244A, U+2460-24FF, U+25A0-27BF, U+2800-28FF, U+2921-2922, U+2981, U+29BF, U+29EB, U+2B00-2BFF, U+4DC0-4DFF, U+FFF9-FFFB, U+10140-1018E, U+10190-1019C, U+101A0, U+101D0-101FD, U+102E0-102FB, U+10E60-10E7E, U+1D2C0-1D2D3, U+1D2E0-1D37F, U+1F000-1F0FF, U+1F100-1F1AD, U+1F1E6-1F1FF, U+1F30D-1F30F, U+1F315, U+1F31C, U+1F31E, U+1F320-1F32C, U+1F336, U+1F378, U+1F37D, U+1F382, U+1F393-1F39F, U+1F3A7-1F3A8, U+1F3AC-1F3AF, U+1F3C2, U+1F3C4-1F3C6, U+1F3CA-1F3CE, U+1F3D4-1F3E0, U+1F3ED, U+1F3F1-1F3F3, U+1F3F5-1F3F7, U+1F408, U+1F415, U+1F41F, U+1F426, U+1F43F, U+1F441-1F442, U+1F444, U+1F446-1F449, U+1F44C-1F44E, U+1F453, U+1F46A, U+1F47D, U+1F4A3, U+1F4B0, U+1F4B3, U+1F4B9, U+1F4BB, U+1F4BF, U+1F4C8-1F4CB, U+1F4D6, U+1F4DA, U+1F4DF, U+1F4E3-1F4E6, U+1F4EA-1F4ED, U+1F4F7, U+1F4F9-1F4FB, U+1F4FD-1F4FE, U+1F503, U+1F507-1F50B, U+1F50D, U+1F512-1F513, U+1F53E-1F54A, U+1F54F-1F5FA, U+1F610, U+1F650-1F67F, U+1F687, U+1F68D, U+1F691, U+1F694, U+1F698, U+1F6AD, U+1F6B2, U+1F6B9-1F6BA, U+1F6BC, U+1F6C6-1F6CF, U+1F6D3-1F6D7, U+1F6E0-1F6EA, U+1F6F0-1F6F3, U+1F6F7-1F6FC, U+1F700-1F7FF, U+1F800-1F80B, U+1F810-1F847, U+1F850-1F859, U+1F860-1F887, U+1F890-1F8AD, U+1F8B0-1F8BB, U+1F8C0-1F8C1, U+1F900-1F90B, U+1F93B, U+1F946, U+1F984, U+1F996, U+1F9E9, U+1FA00-1FA6F, U+1FA70-1FA7C, U+1FA80-1FA89, U+1FA8F-1FAC6, U+1FACE-1FADC, U+1FADF-1FAE9, U+1FAF0-1FAF8, U+1FB00-1FBFF;
}
/* vietnamese */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 501 699;
  font-stretch: 100%;
  font-display: swap;
  src: url("https://hagzi.jo/themes/property/fonts/roboto-v51-vietnamese.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 501 699;
  font-stretch: 100%;
  font-display: swap;
  src: url("https://hagzi.jo/themes/property/fonts/roboto-v51-latin-ext.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 501 699;
  font-stretch: 100%;
  font-display: swap;
  src: url("https://hagzi.jo/themes/property/fonts/roboto-v51-latin.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* arabic (Tajawal 700; 400/500/700 come from ../shop/arabic-face.css) */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 501 699;
  font-stretch: 100%;
  font-display: fallback;
  src: url("https://hagzi.jo/themes/shop/fonts/tajawal-arabic-700.woff2") format('woff2');
  unicode-range: U+0600-06FF, U+0750-077F, U+0870-088E, U+0890-0891, U+0897-08E1, U+08E3-08FF, U+FB50-FDFF, U+FE70-FE74, U+FE76-FEFC;
}

/* ===== weight 700 ===== */
/* cyrillic-ext */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 700;
  font-stretch: 100%;
  font-display: swap;
  src: url("https://hagzi.jo/themes/property/fonts/roboto-v51-cyrillic-ext.woff2") format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 700;
  font-stretch: 100%;
  font-display: swap;
  src: url("https://hagzi.jo/themes/property/fonts/roboto-v51-cyrillic.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek-ext */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 700;
  font-stretch: 100%;
  font-display: swap;
  src: url("https://hagzi.jo/themes/property/fonts/roboto-v51-greek-ext.woff2") format('woff2');
  unicode-range: U+1F00-1FFF;
}
/* greek */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 700;
  font-stretch: 100%;
  font-display: swap;
  src: url("https://hagzi.jo/themes/property/fonts/roboto-v51-greek.woff2") format('woff2');
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
/* math */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 700;
  font-stretch: 100%;
  font-display: swap;
  src: url("https://hagzi.jo/themes/property/fonts/roboto-v51-math.woff2") format('woff2');
  unicode-range: U+0302-0303, U+0305, U+0307-0308, U+0310, U+0312, U+0315, U+031A, U+0326-0327, U+032C, U+032F-0330, U+0332-0333, U+0338, U+033A, U+0346, U+034D, U+0391-03A1, U+03A3-03A9, U+03B1-03C9, U+03D1, U+03D5-03D6, U+03F0-03F1, U+03F4-03F5, U+2016-2017, U+2034-2038, U+203C, U+2040, U+2043, U+2047, U+2050, U+2057, U+205F, U+2070-2071, U+2074-208E, U+2090-209C, U+20D0-20DC, U+20E1, U+20E5-20EF, U+2100-2112, U+2114-2115, U+2117-2121, U+2123-214F, U+2190, U+2192, U+2194-21AE, U+21B0-21E5, U+21F1-21F2, U+21F4-2211, U+2213-2214, U+2216-2247, U+2249-22FF, U+2308-230B, U+2310, U+2319, U+231C-2321, U+2336-237A, U+237C, U+2395, U+239B-23B7, U+23D0, U+23DC-23E1, U+2474-2475, U+25AF, U+25B3, U+25B7, U+25BD, U+25C1, U+25CA, U+25CC, U+25FB, U+266D-266F, U+27C0-27FF, U+2900-2AFF, U+2B0E-2B11, U+2B30-2B4C, U+2BFE, U+3030, U+FF5B, U+FF5D, U+1D400-1D7FF, U+1EE00-1EEFF;
}
/* approx: the one math glyph the site prints (≈ in .hzc-alt prices) */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 700;
  font-stretch: 100%;
  font-display: swap;
  src: url("https://hagzi.jo/themes/property/fonts/roboto-v51-approx.woff2") format('woff2');
  unicode-range: U+2248;
}
/* symbols */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 700;
  font-stretch: 100%;
  font-display: swap;
  src: url("https://hagzi.jo/themes/property/fonts/roboto-v51-symbols.woff2") format('woff2');
  unicode-range: U+0001-000C, U+000E-001F, U+007F-009F, U+20DD-20E0, U+20E2-20E4, U+2150-218F, U+2190, U+2192, U+2194-2199, U+21AF, U+21E6-21F0, U+21F3, U+2218-2219, U+2299, U+22C4-22C6, U+2300-243F, U+2440-244A, U+2460-24FF, U+25A0-27BF, U+2800-28FF, U+2921-2922, U+2981, U+29BF, U+29EB, U+2B00-2BFF, U+4DC0-4DFF, U+FFF9-FFFB, U+10140-1018E, U+10190-1019C, U+101A0, U+101D0-101FD, U+102E0-102FB, U+10E60-10E7E, U+1D2C0-1D2D3, U+1D2E0-1D37F, U+1F000-1F0FF, U+1F100-1F1AD, U+1F1E6-1F1FF, U+1F30D-1F30F, U+1F315, U+1F31C, U+1F31E, U+1F320-1F32C, U+1F336, U+1F378, U+1F37D, U+1F382, U+1F393-1F39F, U+1F3A7-1F3A8, U+1F3AC-1F3AF, U+1F3C2, U+1F3C4-1F3C6, U+1F3CA-1F3CE, U+1F3D4-1F3E0, U+1F3ED, U+1F3F1-1F3F3, U+1F3F5-1F3F7, U+1F408, U+1F415, U+1F41F, U+1F426, U+1F43F, U+1F441-1F442, U+1F444, U+1F446-1F449, U+1F44C-1F44E, U+1F453, U+1F46A, U+1F47D, U+1F4A3, U+1F4B0, U+1F4B3, U+1F4B9, U+1F4BB, U+1F4BF, U+1F4C8-1F4CB, U+1F4D6, U+1F4DA, U+1F4DF, U+1F4E3-1F4E6, U+1F4EA-1F4ED, U+1F4F7, U+1F4F9-1F4FB, U+1F4FD-1F4FE, U+1F503, U+1F507-1F50B, U+1F50D, U+1F512-1F513, U+1F53E-1F54A, U+1F54F-1F5FA, U+1F610, U+1F650-1F67F, U+1F687, U+1F68D, U+1F691, U+1F694, U+1F698, U+1F6AD, U+1F6B2, U+1F6B9-1F6BA, U+1F6BC, U+1F6C6-1F6CF, U+1F6D3-1F6D7, U+1F6E0-1F6EA, U+1F6F0-1F6F3, U+1F6F7-1F6FC, U+1F700-1F7FF, U+1F800-1F80B, U+1F810-1F847, U+1F850-1F859, U+1F860-1F887, U+1F890-1F8AD, U+1F8B0-1F8BB, U+1F8C0-1F8C1, U+1F900-1F90B, U+1F93B, U+1F946, U+1F984, U+1F996, U+1F9E9, U+1FA00-1FA6F, U+1FA70-1FA7C, U+1FA80-1FA89, U+1FA8F-1FAC6, U+1FACE-1FADC, U+1FADF-1FAE9, U+1FAF0-1FAF8, U+1FB00-1FBFF;
}
/* vietnamese */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 700;
  font-stretch: 100%;
  font-display: swap;
  src: url("https://hagzi.jo/themes/property/fonts/roboto-v51-vietnamese.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 700;
  font-stretch: 100%;
  font-display: swap;
  src: url("https://hagzi.jo/themes/property/fonts/roboto-v51-latin-ext.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 700;
  font-stretch: 100%;
  font-display: swap;
  src: url("https://hagzi.jo/themes/property/fonts/roboto-v51-latin.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* themes/shop/arabic-face.css */
/* =============================================================================
   arabic-face.css -- Tajawal for Arabic, Roboto kept for Latin
   =============================================================================

   Loaded only when the active locale's direction is rtl, so the English
   document is byte-identical to what it served before this file existed.

   WHY THE FAMILY IS CALLED "Roboto" HERE, WHICH LOOKS WRONG AND IS NOT

   The built stylesheet, and an inline override in the shop layout, both set

       * { font-family: Roboto, sans-serif; }

   on the universal selector. Every element on the site therefore resolves to
   a stack whose first name is Roboto -- the ~29 explicit `font-family: Roboto,
   sans-serif` rules included, and the 121 `font-family: inherit` rules by
   inheritance. Changing that stack to name Tajawal would mean editing the
   Vite source and rebuilding the bundle, which rewrites every asset hash on
   the site, plus every explicit rule in both themes, and any rule written
   after today would silently miss Arabic again.

   Registering additional faces for an EXISTING family, distinguished only by
   unicode-range, is the mechanism the spec provides for exactly this, and it
   is what Google Fonts itself does: their Roboto is a dozen @font-face blocks
   differing only in unicode-range (latin, latin-ext, cyrillic, greek,
   vietnamese). Google's Roboto has NO Arabic subset, so these three faces add
   coverage the family did not have and overlap nothing.

   The effect is per character, which is the requirement:

       Arabic characters  -> in range  -> Tajawal
       Latin characters   -> not in any range here -> Google's Roboto

   So a Latin make, model, price or phone number sitting inside Arabic copy
   still renders in Roboto without any markup saying so. That is why this is
   a unicode-range job and not a `:lang(ar)` or `[dir=rtl]` font override,
   either of which would have dragged the Latin fragments into Tajawal too.

   WEIGHTS
   400, 500 and 700, matching the three Roboto weights the layout requests.
   Nothing else is loaded. A missing weight would be synthesised by the
   browser, and synthetic emboldening of Arabic script looks conspicuously
   wrong -- strokes thicken across joins that should stay thin.

   font-display: fallback, NOT swap
   Because every visible glyph on an Arabic page is in this font, `swap`
   would repaint and reflow the entire page when it arrives. `fallback`
   gives a ~100ms block window, which a 9KB same-origin woff2 beats almost
   always, so in practice there is no flash at all; and if the network is
   slow the text still appears in a fallback face rather than staying
   invisible. `optional` was rejected: it lets the browser skip the font
   altogether, and the client chose this typeface.

   The files are self-hosted rather than fetched from Google, so the Arabic
   face costs no extra DNS or TLS handshake and does not put visitor IPs in
   front of a third party on a site that ships a GDPR feature.
   ============================================================================= */

/*
    Arabic, Arabic Supplement, Arabic Extended-A/B/C, and the two
    Presentation Forms blocks. Google's own Tajawal range additionally claims
    U+200C-200E, U+2010-2011, U+204F and U+2E41 -- zero-width joiners, marks
    and dashes shared with Latin text. Those are deliberately EXCLUDED: they
    occur on English pages, and including them would make an English page
    download an Arabic font and render its hyphens from it.
*/
@font-face {
    font-family: Roboto;
    font-style: normal;
    font-weight: 400;
    font-display: fallback;
    src: url("https://hagzi.jo/themes/shop/fonts/tajawal-arabic-400.woff2") format("woff2");
    unicode-range: U+0600-06FF, U+0750-077F, U+0870-088E, U+0890-0891, U+0897-08E1, U+08E3-08FF, U+FB50-FDFF, U+FE70-FE74, U+FE76-FEFC;
}

@font-face {
    font-family: Roboto;
    font-style: normal;
    font-weight: 500;
    font-display: fallback;
    src: url("https://hagzi.jo/themes/shop/fonts/tajawal-arabic-500.woff2") format("woff2");
    unicode-range: U+0600-06FF, U+0750-077F, U+0870-088E, U+0890-0891, U+0897-08E1, U+08E3-08FF, U+FB50-FDFF, U+FE70-FE74, U+FE76-FEFC;
}

@font-face {
    font-family: Roboto;
    font-style: normal;
    font-weight: 700;
    font-display: fallback;
    src: url("https://hagzi.jo/themes/shop/fonts/tajawal-arabic-700.woff2") format("woff2");
    unicode-range: U+0600-06FF, U+0750-077F, U+0870-088E, U+0890-0891, U+0897-08E1, U+08E3-08FF, U+FB50-FDFF, U+FE70-FE74, U+FE76-FEFC;
}

/* -----------------------------------------------------------------------------
   The same three faces again, under their real name.
   -----------------------------------------------------------------------------
   Needed for stacks that do NOT lead with Roboto and so never reach the
   registration above. The insurance sandbox is one: its stack is
   `-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, ...`, where three
   system families sit ahead of Roboto and would answer for Arabic first.

   Prepending an Arabic-only family to a stack is a provably Latin-neutral
   edit -- no Latin codepoint falls in the ranges below, so Latin resolution
   continues to the next family exactly as before, and on a page where this
   stylesheet is not loaded the name is simply unknown and skipped.

   Same URLs as above, so the browser downloads each file once. This costs
   CSS bytes, not font bytes. It also gives anyone writing new Arabic-only
   rules an honest name to ask for.
   -------------------------------------------------------------------------- */

@font-face {
    font-family: Tajawal;
    font-style: normal;
    font-weight: 400;
    font-display: fallback;
    src: url("https://hagzi.jo/themes/shop/fonts/tajawal-arabic-400.woff2") format("woff2");
    unicode-range: U+0600-06FF, U+0750-077F, U+0870-088E, U+0890-0891, U+0897-08E1, U+08E3-08FF, U+FB50-FDFF, U+FE70-FE74, U+FE76-FEFC;
}

@font-face {
    font-family: Tajawal;
    font-style: normal;
    font-weight: 500;
    font-display: fallback;
    src: url("https://hagzi.jo/themes/shop/fonts/tajawal-arabic-500.woff2") format("woff2");
    unicode-range: U+0600-06FF, U+0750-077F, U+0870-088E, U+0890-0891, U+0897-08E1, U+08E3-08FF, U+FB50-FDFF, U+FE70-FE74, U+FE76-FEFC;
}

@font-face {
    font-family: Tajawal;
    font-style: normal;
    font-weight: 700;
    font-display: fallback;
    src: url("https://hagzi.jo/themes/shop/fonts/tajawal-arabic-700.woff2") format("woff2");
    unicode-range: U+0600-06FF, U+0750-077F, U+0870-088E, U+0890-0891, U+0897-08E1, U+08E3-08FF, U+FB50-FDFF, U+FE70-FE74, U+FE76-FEFC;
}

/* inline */

            * {
                font-family: Roboto, sans-serif;
            }
        
/* inline */

    :root {
        /* ---- the one value ---- */
        --op-brand-primary: #1533F5;

        /* Hover and pressed shade. */
        --op-brand-primary-dark: color-mix(in srgb, var(--op-brand-primary) 78%, #000);

        /* Tinted ground for chips, badges, empty-state icons. */
        --op-brand-primary-soft: color-mix(in srgb, var(--op-brand-primary) 7%, #fff);

        /* Hairline for tinted outlines and pill borders. */
        --op-brand-primary-line: color-mix(in srgb, var(--op-brand-primary) 32%, #fff);
    }

/* inline */

    :root {
        --site-container-width: 1200px;
        --site-gutter: 32px;
    }

    /* Desktop lower band (1024–1279) */
    @media (max-width: 1279.98px) {
        :root {
            --site-gutter: 24px;
        }
    }

    /* Tablet lower band / large phone (480–767) */
    @media (max-width: 767.98px) {
        :root {
            --site-gutter: 20px;
        }
    }

    /* Mobile (<480) */
    @media (max-width: 479.98px) {
        :root {
            --site-gutter: 16px;
        }
    }

    .site-container,
    .container,
    .op-shell,
    .serp-container,
    .listing-container {
        width: 100%;
        max-width: var(--site-container-width);
        margin-inline: auto;
        padding-inline: var(--site-gutter);
    }

    /* ---------------------------------------------------------------
       Overflow guards
       Causes found while auditing: flex/grid children defaulting to
       min-width:auto (so they refuse to shrink below their content),
       100vw where 100% was meant, and unwrapped nav rows.
       --------------------------------------------------------------- */

    /* 100vw ignores the scrollbar and overflows by its width. */
    .w-screen {
        max-width: 100%;
    }

    /*
        The compiled Tailwind bundle is older than these Blade files, so a
        utility class that is not already in it does nothing. Anything new is
        declared here instead of relying on a rebuild.
    */
    .site-noshrink {
        flex-shrink: 0;
    }

    /* Replaces the footer's p-[60px]; only the inline padding moves to the container. */
    .site-footer-main {
        padding-block: 60px;
    }

    @media (max-width: 767.98px) {
        .site-footer-main {
            padding-block: 32px;
        }
    }

    @media (max-width: 524.98px) {
        .site-footer-main {
            padding-block: 20px;
        }
    }

    /*
        Account layout row: the content column is `flex-auto`, whose default
        min-width:auto stops it shrinking below the datagrid's min-content and
        pushes the page sideways at tablet width.
    */
    .site-account-row > * {
        min-width: 0;
    }

    /* The side navigation keeps its width; the content column absorbs the loss. */
    .site-account-row > *:first-child {
        flex-shrink: 0;
    }

    .site-account-row .panel-side {
        max-width: 100%;
    }

    /* At tablet the nav keeps the theme's 270px tablet width, no more, so the
       datagrid column is not squeezed to the point of overflowing. */
    @media (max-width: 1023.98px) {
        .site-account-row .panel-side {
            min-width: 0;
            max-width: 270px;
        }
    }

    /* Datagrids and any wide table scroll inside their column, not the page. */
    .site-account-row .table-responsive,
    .site-account-row table {
        max-width: 100%;
    }

/* themes/property/property.css */
/*
 * Property channel stylesheet.
 *
 * Plain CSS, served straight from public/ and loaded by
 * resources/themes/property/views/components/layouts/footer/styles.blade.php.
 * Deliberately outside the Vite pipeline: the shop build in
 * public/themes/shop/default/build is newer than its own sources and cannot be
 * regenerated, so nothing here may require an asset build.
 *
 * Width and gutter come from --site-container-width / --site-gutter, which the
 * shared container partial declares for every channel.
 */

/* ============================================================== footer ===== */
/*
 * Property channel footer.
 *
 * Replaces the dark green gradient block that sat here, along with its --pf-*
 * tokens: nothing outside the footer template referenced either, so both are
 * gone rather than left behind.
 *
 * The cars channel never reaches these rules. It resolves the default shop
 * theme's footer, which carries no .hzf-* class, and property.css is not in
 * its asset list at all.
 *
 * White page, one hairline, dark neutral text, grey secondary text, and the
 * primary reserved for hover and focus. No panel background, no shadow, no
 * gradient: the footer is the end of the page, not a component sitting on it.
 *
 * THE SPACE ABOVE THE FIRST ROW IS PADDING, NOT MARGIN
 *
 * It used to be `margin-top: 56px` here plus `padding: 48px 0 0` on the inner
 * shell, and both were wrong in a way that only showed on some pages.
 *
 * The margin sat outside the background, so those 56px were painted by
 * whatever was behind the footer -- and nothing is: `main` and `body` are both
 * transparent at that point, so it fell through to the canvas and came out
 * white. On a page that ends white nobody noticed. On the account area and the
 * Add Listing page, whose shells (.hzac and .hzf-page) paint #f4f5f7 right up
 * to the bottom of `main`, it read as a white strip wedged between the page and
 * the footer. Measured: the shells end exactly where `main` ends on every page,
 * so all 56px of that strip were this margin and none of it belonged to those
 * page shells.
 *
 * The inner padding never applied at all. `.hzf__inner` also carries .hz-shell,
 * and `.hz-shell { padding: 0 24px }` is declared ~220 lines below this at the
 * same specificity, so its shorthand reset the top padding to zero and the
 * footer opened with its logo flush against the border. That is why the
 * breathing room appeared to be outside the footer rather than inside it.
 *
 * So: padding on .hzf, which is the element that paints the background and the
 * hairline. The separation is now inside the footer, the background meets the
 * page background at the border with nothing between them, and there is no
 * shorthand competing for it. 40px because that is what .hzf__bottom already
 * uses for the gap below the last row -- one number for both ends of the
 * footer's interior.
 */

.hzf {
    padding-top: 40px;
    border-top: 1px solid var(--hz-line);
    background: #fafafa;
    color: var(--hz-ink);
    font-family: Roboto, "Helvetica Neue", Arial, sans-serif;
}

/*
 * The brand column is given more room than the link groups because it holds a
 * logo and a sentence rather than a stack of short labels. auto-fit is
 * deliberately not used: the groups are a fixed, known set, so an explicit
 * track list keeps the brand column from collapsing to a link column's width.
 */
.hzf__grid {
    display: grid;
    grid-template-columns: 1.6fr repeat(4, minmax(0, 1fr));
    gap: 32px 28px;
}

/* ---- brand ------------------------------------------------------------- */

.hzf__brand {
    display: inline-block;
    text-decoration: none;
}

.hzf__logo {
    display: block;
    width: auto;
    height: 34px;
    /* Same reason as the header mark: an auto grid track will otherwise squash
       it below its intrinsic width on narrow viewports. */
    min-width: max-content;
}

.hzf__tagline {
    margin: 14px 0 0;
    max-width: 30ch;
    color: #5c6270;
    font-size: 13.5px;
    line-height: 1.6;
}

/* ---- link groups -------------------------------------------------------- */

.hzf__title {
    margin: 0 0 14px;
    color: var(--hz-ink);
    font-size: 11.5px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.hzf__list {
    margin: 0;
    padding: 0;
    list-style: none;
}

/* Rows already carry 10px of padding between them from .hzf__link, so the
   margin only tops up the gap to the intended rhythm. */
.hzf__list li + li {
    margin-top: 2px;
}

/*
 * inline-block with vertical padding rather than a bare inline anchor: as
 * inline text the hit box is only the 15px line box, which is below the 24px
 * minimum target size. The padding takes it to 25px here and 35px once the
 * columns stack, where it is being tapped rather than clicked.
 */
.hzf__link {
    display: inline-block;
    padding: 5px 0;
    color: #5c6270;
    font-size: 13.5px;
    font-weight: 500;
    text-decoration: none;
    transition: color 0.15s ease;
}

.hzf__link:hover {
    color: var(--hagzi-primary);
}

/* ---- contact ------------------------------------------------------------ */

.hzf__contact {
    margin: 0;
    color: #5c6270;
    font-size: 13.5px;
    font-style: normal;
    line-height: 1.6;
}

.hzf__contact p {
    margin: 0 0 4px;
}

/* ---- bottom bar --------------------------------------------------------- */

.hzf__bottom {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 10px 24px;
    margin-top: 40px;
    padding: 18px 0 22px;
    border-top: 1px solid var(--hz-line);
}

.hzf__copy {
    margin: 0;
    color: #6b7280;
    font-size: 12.5px;
}

.hzf__legal {
    display: flex;
    flex-wrap: wrap;
    gap: 20px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.hzf__legal .hzf__link {
    color: #6b7280;
    font-size: 12.5px;
}

/* The footer sits on near-white, so the ring is the primary rather than the
   white one used over the hero photograph. */
.hzf a:focus-visible {
    outline: 3px solid var(--hagzi-primary);
    outline-offset: 3px;
    border-radius: 6px;
}

/* ---- responsive --------------------------------------------------------- */

/*
 * Five tracks do not survive below roughly 1000px, so the brand takes a full
 * row and the four groups pair off beneath it. Stacked columns rather than
 * accordions: four groups of at most four links are short enough that
 * collapsing them would add a control for no gain.
 */
@media (max-width: 1000px) {
    .hzf__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .hzf__brand-col {
        grid-column: 1 / -1;
    }

    .hzf__tagline {
        max-width: 46ch;
    }
}

@media (max-width: 560px) {
    /* Same pairing as at full width: the space above the first row matches the
       space .hzf__bottom leaves below the last one, which drops to 32px here. */
    .hzf {
        padding-top: 32px;
    }

    .hzf__grid {
        grid-template-columns: 1fr;
        gap: 28px;
    }

    /* Stacked, so these are being tapped. Taller targets, and the margin drops
       to nothing because the padding now supplies the whole gap. */
    .hzf__link {
        padding: 10px 0;
    }

    .hzf__list li + li {
        margin-top: 0;
    }

    .hzf__bottom {
        flex-direction: column;
        align-items: flex-start;
        margin-top: 32px;
    }
}

/* ==========================================================================
 * Header + hero (property channel) — Realtor-style direction
 *
 * Replaces the earlier .ph-* header block that sat here. Plain CSS served from
 * public/, no build step.
 *
 * The car header's own stylesheet (header.marketplace-styles) still loads on
 * this channel, but every one of its 92 rule blocks is scoped under .op-*, so
 * it cannot reach anything below.
 * ========================================================================== */

:root {
    --hz-red: #d92228;
    --hz-red-dark: #b3171c;
    --hz-ink: #12141a;
    --hz-nav: #3c414c;
    --hz-line: #e7e9ee;

    /*
     * Hagzi's primary action colour, for the whole channel.
     *
     * This file loads before property-pages.css, so a :root declaration here
     * is in scope for every stylesheet on the channel. Other themes' sheets
     * consume it as var(--hagzi-primary, #0745D9) with the literal repeated as
     * a fallback, so nothing breaks if this file is ever loaded second.
     *
     * Measured against white text: #0745D9 gives 7.34:1 and #0638B0 gives
     * 9.54:1, so both clear AA for body text with room to spare. The hover is
     * a darker blue, clear enough to read as a state change without shifting
     * hue.
     *
     * This is an action colour, not a brand wash. The channel stays white,
     * dark neutral and light grey; blue marks what can be clicked and what
     * is currently selected, and nothing else.
     */
    --hagzi-primary: #0745D9;
    --hagzi-primary-dark: #0638B0;

    /*
     * Form field edges (WCAG 1.4.11, 3:1 for the boundary that identifies a
     * control). #80868f is 3.67:1 on white and at least 3.2:1 on the channel's
     * grey and pale-blue panels. Dividers keep --hz-line; only inputs,
     * selects and textareas take this.
     */
    --hz-field-line: #80868f;

    /* Placeholder and other hint text: 4.83:1 on white (was #9ca3af, 2.54:1). */
    --hz-hint: #6b7280;
    /* Focus rings across the channel read this; unset, they fell back to a 1.5:1 translucent purple. */
    --hagzi-focus: var(--hagzi-primary);
}

/* Placeholder text is still text (1.4.3). Component rules may go darker, never lighter. */
html input::placeholder,
html textarea::placeholder {
    color: var(--hz-hint);
    opacity: 1;
}

.hz-shell {
    width: 100%;
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 24px;
}

/* Shared focus ring. Never removed, only restyled. */
.hz-nav__link:focus-visible,
.hz-phone:focus-visible,
.hz-cta:focus-visible,
.hz-brand:focus-visible,
.hz-band__cta:focus-visible,
.hz-band__link:focus-visible,
.hz-search__clear:focus-visible,
.hz-search__submit:focus-visible,
.hz-tab__input:focus-visible + .hz-tab__label {
    outline: 3px solid #ffffff;
    outline-offset: 2px;
    border-radius: 6px;
}

/*
 * On white the ring takes the primary: it is the channel's action colour and
 * measures 7.34:1 against white, so it is easier to see than the red it
 * replaces. The rings that sit on photographs stay white further down; blue
 * would disappear into a dark image.
 */
.hz-header .hz-nav__link:focus-visible,
.hz-header .hz-phone:focus-visible,
.hz-header .hz-brand:focus-visible,
.hz-header .hz-cta:focus-visible,
.hz-band__cta:focus-visible,
.hz-band__link:focus-visible {
    outline-color: var(--hagzi-primary);
}

/* --------------------------------------------------------------- header ---- */

.hz-header {
    border-bottom: 1px solid var(--hz-line);
    background: #fff;
    font-family: Roboto, "Helvetica Neue", Arial, sans-serif;
}

.hz-header__inner {
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    gap: 24px;
    min-height: 68px;
}

.hz-brand {
    display: inline-flex;
    align-items: center;
    text-decoration: none;
}

/*
 * The Hagzi mark and wordmark are supplied as one 133x38 SVG lockup.
 *
 * The intrinsic size sits on the element's width/height attributes so the box
 * is reserved before the image decodes; height drives the rendered size here
 * and width:auto holds the ratio. SVG keeps the lockup sharp at every size.
 *
 * min-width is a correctness guard, not a tweak. The brand sits in an `auto`
 * grid track, and a replaced element with width:auto contributes zero to
 * min-content, so under pressure the track could be crushed and the lockup
 * rendered distorted or to nothing at all — silently, because squashing the
 * image does not produce a document overflow for an overflow check to catch.
 * It measured 14px wide at 390px and 0 at 375px once two more items joined the
 * action row. Pinning the minimum to max-content makes the row give somewhere
 * else instead.
 */
.hz-brand__logo {
    display: block;
    width: auto;
    height: 30px;
    min-width: max-content;
}

/*
 * Sits immediately right of the logo and left-aligned with it, rather than
 * centred in its track: the realtor.com / Zoopla arrangement.
 *
 * The grid is unchanged, so the nav still owns the 1fr middle column. All the
 * slack therefore collects to the nav's right and the actions cluster stays
 * pinned to the far right exactly where it was.
 *
 * margin-left tops up the grid column-gap so the logo and the first link read
 * as two deliberate groups rather than one continuous run of text: 40px above
 * 1080px where the grid gap is 24px, 32px below it where the gap tightens to
 * 16px. It is reset at 720px, where the nav drops to its own full-width row and
 * needs to sit flush with the logo above it instead.
 */
.hz-nav {
    display: flex;
    justify-content: flex-start;
    gap: 30px;
    min-width: 0;
    margin-inline-start: 16px;
}

.hz-nav__link {
    padding: 4px 2px;
    color: var(--hz-nav);
    font-size: 14px;
    font-weight: 500;
    text-decoration: none;
    white-space: nowrap;
}

.hz-nav__link:hover {
    color: var(--hz-ink);
}

/*
 * The gap is measured between BOXES, but the eye reads the distance between
 * MARKS, and the two are not the same once a box is bigger than the glyph in
 * it. Measured at the old 18px gap with 40px icon boxes, mark to mark:
 * number to globe 19.7px, EN to heart 30.8px, heart to bell 44.0px. The last
 * one is worst because both icons contribute their own slack to it.
 *
 * So the gap is tightened and the boxes with it, and two small corrections
 * even out the rest: see .hz-locale and .hz-hicon + .hz-hicon below.
 */
.hz-actions {
    display: flex;
    align-items: center;
    gap: 9px;
}

.hz-phone,
.hz-locale {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 13px;
    font-weight: 600;
    white-space: nowrap;
}

.hz-phone {
    color: var(--hz-nav);
    text-decoration: none;
}

.hz-phone:hover {
    color: var(--hz-ink);
}

.hz-phone svg,
.hz-locale svg {
    width: 15px;
    height: 15px;
}

/* Static indicator, not a control: muted, no pointer, not focusable. */
.hz-locale {
    color: #9aa1ad;
    cursor: default;
    /*
     * The phone number is a text run whose last glyph ends flush with its box,
     * so it contributes no optical slack, while every glyph beside it does.
     * An equal CSS gap therefore looks tight here and loose everywhere else.
     * The correction rides on the locale rather than the phone so that it
     * disappears along with the locale at 860px.
     */
    margin-inline-start: 7px;
}

/*
 * Favourite and notification marks.
 *
 * Inert by construction like the locale beside them and the card hearts, so
 * they take the same muted grey rather than the phone's darker nav colour. That
 * is this header's existing signal for "indicator, not control", and using a
 * live-looking treatment on something with no destination is the thing we are
 * avoiding.
 *
 * A 32px square around a 22px glyph.
 *
 * The earlier pair were sized for optical balance against the 15px glyphs
 * beside them, which made them recede next to the CTA. These are meant to be
 * prominent instead, so the glyph stays at 22px.
 *
 * Only the box around it is tightened, from 40px. At 40 each icon padded
 * itself by roughly 13px a side and pushed its neighbours away, which is what
 * made the row read as four separated items rather than one group. 32px still
 * clears the 24px minimum target with room to spare.
 *
 * The square stays transparent — no chip, no border — because two filled pills
 * next to the purple CTA would out-compete it.
 *
 * No :focus-visible rule, because neither is focusable: they are spans with no
 * tabindex, so there is no focus to style. If either is later wired to a real
 * route it becomes an <a> and MUST be added to the .hz-header focus-ring
 * selector list near the top of this file.
 */
.hz-hicon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    color: #9aa1ad;
    cursor: default;
}

/*
 * The one gap with two icon boxes either side of it, so it collects twice the
 * slack of every other gap in the row. Pulling it back by the gap's own width
 * leaves the two boxes exactly touching: their hit areas stay contiguous with
 * no overlap and no dead strip between them, and the marks land at the same
 * spacing as the rest of the row.
 */
.hz-hicon + .hz-hicon {
    margin-inline-start: -9px;
}

/*
 * stroke-width is in viewBox units, so it scales with the glyph: leaving it at
 * the old 1.7 would have rendered these at 1.56px against the phone's 1.06px,
 * and the pair would have read as a heavier family sitting beside a lighter
 * one. 1.25 across a 22px glyph renders at 1.15px, which holds the line.
 */
.hz-hicon svg {
    width: 22px;
    height: 22px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.25;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.hz-cta {
    padding: 9px 18px;
    border-radius: 999px;
    border: 1px solid var(--hagzi-primary);
    background: var(--hagzi-primary);
    color: #fff;
    transition: background-color 0.15s ease, border-color 0.15s ease;
    font-size: 13px;
    font-weight: 700;
    text-decoration: none;
    white-space: nowrap;
}

.hz-cta:hover {
    border-color: var(--hagzi-primary-dark);
    background: var(--hagzi-primary-dark);
}

/* ----------------------------------------------------------------- hero ---- */
/*
 * Bright image, light scrim, and the content block anchored below the top of
 * the photo.
 *
 * It was centred (align-items: center) inside a 660px min-height, which tied
 * the hero's height and the content's position to one knob: taking height off
 * the bottom dragged the search card up with it. Anchoring to the top separates
 * the two. padding-top alone now decides where the content sits, and the height
 * decides how much photograph is left underneath it — which is what lets the
 * empty band below the card be cut without the card moving.
 *
 * The height is content-driven at every width: padding-top + content +
 * padding-bottom. min-height is a floor, held roughly 30px under the natural
 * height so it only takes over if the content is ever unusually short.
 *
 * Image, crop and scrim are untouched. Note for anyone changing this: with the
 * photograph at 1920x873 and background-position at "center 72%", a hero
 * shorter than about 655px at 1440 starts cropping vertically, and 72% puts
 * roughly three quarters of that crop on the TOP edge rather than the bottom.
 * Shortening the hero therefore trims the ceiling, not the floor.
 */

.hz-hero {
    position: relative;
    display: flex;
    align-items: flex-start;
    min-height: 540px;
    overflow: hidden;
    background-color: #223046;
}

/*
 * The one state in which the hero must not clip: a filter chip's panel is open
 * and hangs below the search card, past the section's bottom edge.
 *
 * Measured before this rule existed: the amenities panel is 300px tall and the
 * hero ended 112px below its top, so four of seventeen options were reachable
 * and the rest were cut off with nothing on screen to say so. The panel passed
 * a "is it visible" check the whole time, because it had a non-zero box — it
 * was an ancestor doing the clipping, not the panel being hidden.
 *
 * Scoped with :has() rather than dropping overflow altogether, so the hero
 * clips exactly as it always has in every other state and this cannot become
 * the reason some future absolutely positioned thing bleeds out of it. The
 * hero is a flex container, so toggling overflow changes no layout: margins
 * do not collapse through a flex container either way. Verified no geometry
 * moves at 1440, 1280, 1024, 768, 430 and 390.
 *
 * A browser without :has() keeps the old clipping. That is the pre-existing
 * behaviour rather than a new failure, and the panels still open and still
 * submit; the lower options just need scrolling to reach.
 */
.hz-hero:has(details[data-hz-chip][open]) {
    overflow: visible;
}

.hz-hero__media {
    position: absolute;
    inset: 0;
}

/* The photo is an <img> (home/hero-media.blade.php) so it can carry
   fetchpriority as the LCP element; object-fit/-position reproduce the former
   `background-size: cover; background-position: center 0%` exactly. */
.hz-hero__media img {
    position: absolute;
    inset: 0;
    display: block;
    width: 100%;
    height: 100%;
    max-width: none;
    object-fit: cover;
    /* Anchored to the top so `cover` takes its overflow off the bottom of the
       frame — bare floor — instead of the ceiling. Note this only has any
       effect where the crop is vertical, i.e. viewports wider than the image's
       2.2:1 ratio. Narrower boxes crop horizontally and ignore the Y value. */
    object-position: center 0%;
}

/*
 * Deliberately lighter than the previous cinematic treatment so the photo reads
 * clearly, as in the reference. Slightly stronger at the very top and bottom,
 * where the headline and the card edge need separation from the image.
 */
.hz-hero__scrim {
    position: absolute;
    inset: 0;
    background:
        linear-gradient(
            180deg,
            rgba(10, 16, 26, 0.48) 0%,
            rgba(10, 16, 26, 0.30) 38%,
            rgba(10, 16, 26, 0.32) 70%,
            rgba(10, 16, 26, 0.46) 100%
        );
}

.hz-hero__content {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    /* padding-top IS the content's vertical position now that the hero anchors
       to the top. 148px is where the centred 660px hero put the headline, to
       within a pixel, so the block did not move when the hero lost 90px off
       its bottom edge.

       padding-bottom is the floor of the band under the search card. It is a
       real minimum rather than decoration: if the content ever outgrows the
       min-height — a headline wrapping at some awkward width — this is what
       keeps the card off the section below instead of flush against it. */
    padding-top: 148px;
    padding-bottom: 96px;
    text-align: center;
}

.hz-hero__title {
    margin: 0 0 10px;
    color: #ffffff;
    font-size: 48px;
    font-weight: 800;
    line-height: 1.1;
    letter-spacing: -0.6px;
    text-shadow: 0 2px 18px rgba(8, 12, 20, 0.55);
}

.hz-hero__subtitle {
    margin: 0 0 26px;
    color: #ffffff;
    font-size: 19px;
    font-weight: 500;
    line-height: 1.4;
    /* The tight first shadow keeps 4.5:1 where the photo is pale behind the line. */
    text-shadow: 0 1px 3px rgba(8, 12, 20, 0.7), 0 1px 12px rgba(8, 12, 20, 0.6);
}

.hz-hero__form {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 100%;
}

/* ----------------------------------------------------------------- tabs ---- */
/*
 * A white pill bar holding the three segments. Still radio inputs and labels:
 * arrow keys move between them natively and there is no JavaScript involved,
 * so the tabs cannot break. Transactions and Agents are gone.
 */

.hz-tabbar {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    max-width: 100%;
    margin: 0 0 18px;
    padding: 5px;
    border-radius: 999px;
    background: #ffffff;
    box-shadow: 0 6px 22px rgba(6, 10, 18, 0.18);
    overflow-x: auto;
    scrollbar-width: none;
}

.hz-tabbar::-webkit-scrollbar {
    display: none;
}

.hz-tab {
    display: inline-flex;
    flex: 0 0 auto;
}

/* Off-screen rather than display:none, so the radio stays focusable. */
.hz-tab__input {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;
    border: 0;
    overflow: hidden;
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    white-space: nowrap;
}

.hz-tab__label {
    display: inline-block;
    padding: 9px 26px;
    border-radius: 999px;
    color: #2b3040;
    font-size: 14px;
    font-weight: 600;
    line-height: 1.2;
    white-space: nowrap;
    cursor: pointer;
    transition: background-color 0.15s ease, color 0.15s ease;
}

.hz-tab__label:hover {
    background: #f3f4f7;
}

/*
 * The two filters, grouped.
 *
 * A box of its own so that role="group" aria-label="Listing type" can name
 * exactly the controls that are listing types, and nothing else. It is a flex
 * row carrying the same 4px the bar carries, so the pills sit where they always
 * did: this adds a node, not a gap.
 */
.hz-tabbar__types {
    display: inline-flex;
    align-items: center;
    gap: 4px;
}

/*
 * New projects -- the one control in this bar that loads another page.
 *
 * It was .hz-tab__label on an anchor, which made it pixel-identical to the two
 * pills beside it: same padding, same weight, same grey hover wash. Two
 * behaviours in the same clothing, and the giveaway was that only its
 * neighbours could ever light up, because only they have a radio to check.
 *
 * So it drops the pill. It briefly also took the channel's action colour and
 * the forward arrow .hz-seeall uses elsewhere on this page; both were removed
 * on request, and the type is now the same near-black as .hz-tab__label.
 *
 * WHICH LEAVES THE HAIRLINE DOING ALL OF THE WORK. border-inline-start is the
 * only thing at rest that separates a control which loads another page from two
 * that set a filter in place, so it is load-bearing rather than trim -- please
 * do not fold it into the pills' 4px gap. The hover underline below is the only
 * other differentiator, and it needs a pointer to appear at all.
 *
 * It stays inside the white bar rather than moving out alongside it because
 * the bar is white for a reason: the hero behind it is a photograph, and text
 * out on the image has no contrast that holds at every crop and every hero.
 *
 * Nothing here can match .hz-tab__input:checked, which is the point. It is
 * never the selected anything -- the page it points at is not this one.
 */
.hz-tabbar__jump {
    display: inline-flex;
    align-items: center;
    flex: 0 0 auto;
    margin-inline-start: 4px;
    padding-block: 9px;
    padding-inline: 16px;
    border-inline-start: 1px solid var(--hz-line);
    /* The pills' own ink, literal for literal -- see .hz-tab__label. */
    color: #2b3040;
    font-size: 14px;
    font-weight: 600;
    line-height: 1.2;
    white-space: nowrap;
    text-decoration: none;
}

/*
 * An underline rather than the pills' background wash. The pills are answering
 * "which of these"; this is answering "go there", and filling a pill shape on
 * hover is exactly the suggestion this control should stop making.
 *
 * With the colour and the arrow gone this is the only thing that tells a
 * pointer user the two behaviours apart, so it earns its keep twice over.
 */
.hz-tabbar__jump:hover {
    text-decoration: underline;
    text-underline-offset: 3px;
}

/*
 * Inset, like the pills' own ring: the bar clips at its border radius, so an
 * outward ring on the last item in the row would be cut off.
 */
.hz-tabbar__jump:focus-visible {
    outline: 3px solid var(--hagzi-primary);
    outline-offset: -3px;
    border-radius: 6px;
}

/*
 * The selected segment. A tint of the primary rather than a fill, because the
 * hero already carries one solid purple control in the Search button and two
 * would compete for the same rank.
 *
 * The tint is the primary at 8% over white. Primary text on it measures
 * 7.92:1, so the label stays comfortably readable.
 */
.hz-tab__input:checked + .hz-tab__label {
    background: #EAF1FF;
    color: var(--hagzi-primary);
    /* The wash is 1.1:1 against white: the ring and weight carry "selected" without colour. */
    box-shadow: inset 0 0 0 2px var(--hagzi-primary);
    font-weight: 700;
}

/* --------------------------------------------------------- search card ---- */
/*
 * The raised white panel from the reference: the search row and the filter row
 * live inside it.
 */

.hz-card {
    width: 100%;
    max-width: 920px;
    padding: 22px;
    border-radius: 22px;
    background: #ffffff;
    box-shadow: 0 20px 48px rgba(6, 10, 18, 0.24);
    text-align: start;
}

.hz-search {
    display: flex;
    align-items: center;
    gap: 10px;
    height: 54px;
    padding: 0 7px;
    padding-inline-start: 16px;
    border: 1px solid var(--hz-field-line, #80868f);
    border-radius: 999px;
    background: #ffffff;
}

.hz-search:focus-within {
    border-color: var(--hagzi-primary);
    box-shadow: 0 0 0 2px var(--hagzi-primary);
}

.hz-search__icon {
    flex: 0 0 auto;
    width: 19px;
    height: 19px;
    color: #8b929f;
}

/* Visible label would duplicate the placeholder, but the field still needs a
   programmatic name, so it is hidden visually only. */
.hz-search__label {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;
    border: 0;
    overflow: hidden;
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    white-space: nowrap;
}

.hz-search__input {
    flex: 1 1 auto;
    min-width: 0;
    height: 100%;
    padding: 0;
    border: 0;
    outline: 0;
    background: transparent;
    color: var(--hz-ink);
    font-size: 15px;
    font-family: inherit;
}

.hz-search__input::placeholder {
    color: var(--hz-hint, #6b7280);
    opacity: 1;
}

/* Chrome's own search affordance is suppressed in favour of the reset button,
   which works without JavaScript and is reachable by keyboard. */
.hz-search__input::-webkit-search-cancel-button,
.hz-search__input::-webkit-search-decoration {
    -webkit-appearance: none;
    appearance: none;
}

.hz-search__clear {
    display: none;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: #f1f2f5;
    color: #5c6270;
    cursor: pointer;
}

.hz-search__clear svg {
    width: 15px;
    height: 15px;
}

.hz-search__clear:hover {
    background: #e4e6ea;
    color: var(--hz-ink);
}

/* Only offered once there is something to clear. */
.hz-search__input:not(:placeholder-shown) ~ .hz-search__clear {
    display: inline-flex;
}

/*
 * Compact pill sitting inside the field, not a full-height block.
 *
 * The field is itself a pill, so a pill here is the concentric curve rather
 * than a stylistic choice: the field's radius is capped at half its height,
 * 27px, and the button is inset by 8px (1px border + 7px padding), which
 * leaves 19px — within a pixel of the button's own half-height of 20px. The
 * gap between the two therefore stays even the whole way round the right end.
 * The same holds at the 620px breakpoint, where 25 - 7 = 18 against 19.
 */
.hz-search__submit {
    flex: 0 0 auto;
    height: 40px;
    padding: 0 22px;
    border: 1px solid var(--hagzi-primary);
    border-radius: 999px;
    background: var(--hagzi-primary);
    color: #ffffff;
    font-size: 14px;
    font-weight: 700;
    font-family: inherit;
    line-height: 1;
    cursor: pointer;
    transition: background-color 0.15s ease, border-color 0.15s ease;
}

.hz-search__submit:hover {
    border-color: var(--hagzi-primary-dark);
    background: var(--hagzi-primary-dark);
}

/* --------------------------------------------------------- filter chips ---- */
/*
 * Layout parity with the reference, and nothing more. None of these attributes
 * exist in this catalogue, so the chips are spans rather than controls: they
 * carry no click target, stay out of the tab order, and cannot open an empty
 * dropdown. Muted rather than full-contrast so the inert state is visible
 * without hovering for the title.
 */

.hz-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 14px;
}

/*
 * The chips are real filters now, built on <details>, so the element is a
 * positioning context for its panel rather than the pill itself. The pill is
 * the <summary>.
 */
.hz-chip {
    position: relative;
}

/* Type-specific chips wait for a property type (hero script). */
.hz-chip[hidden] {
    display: none !important;
}

.hz-chip__summary {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 9px 15px;
    border: 1px solid #dde1e9;
    border-radius: 999px;
    background: #fcfcfd;
    color: #5c6270;
    font-size: 13px;
    font-weight: 500;
    line-height: 1.2;
    white-space: nowrap;
    cursor: pointer;
    list-style: none;
    transition: border-color 0.15s ease, color 0.15s ease, background-color 0.15s ease;
}

/* Safari draws its own disclosure triangle unless both of these are set. */
.hz-chip__summary::-webkit-details-marker {
    display: none;
}

.hz-chip__summary::marker {
    content: "";
}

.hz-chip__summary:hover {
    border-color: #c3c9d4;
    color: var(--hz-ink);
}

.hz-chip[open] > .hz-chip__summary {
    border-color: var(--hagzi-primary);
    color: var(--hagzi-primary);
}

/*
 * A chip holding a selection. A tinted fill and a purple edge rather than a
 * solid purple pill: these are filters, and a solid fill would put them at the
 * same rank as the Search button sitting beside them.
 */
.hz-chip[data-hz-chip-active] > .hz-chip__summary {
    border-color: var(--hagzi-primary);
    background: #EAF1FF;
    color: var(--hagzi-primary);
    font-weight: 600;
}

.hz-chip[open] > .hz-chip__summary svg {
    transform: rotate(180deg);
}

.hz-chip__summary svg {
    transition: transform 0.15s ease;
}

.hz-chip__summary:focus-visible {
    outline: 3px solid var(--hagzi-primary);
    outline-offset: 2px;
}

/* ---- the panel ---------------------------------------------------------- */

.hz-chip__panel {
    position: absolute;
    z-index: 30;
    top: calc(100% + 6px);
    inset-inline-start: 0;
    min-width: 200px;
    /*
     * Tall enough that the seventeen amenities all fit at two columns, which
     * is what the 621-1100 band uses: measured scrollHeight is 390px there.
     * At 300 the last five needed an inner scroller, which is a poor way to
     * discover that Storage and Staff quarters exist. The three-column panel
     * is 256px tall and is unaffected by this.
     */
    max-height: 400px;
    overflow-y: auto;
    padding: 14px;
    border: 1px solid var(--hz-line);
    border-radius: 14px;
    background: #ffffff;
    box-shadow: 0 12px 28px rgba(16, 20, 30, 0.14);
    text-align: start;
}

/*
 * Amenities is seventeen options, and this panel is two columns at every width
 * now. There is no three-column case left.
 *
 * Three columns need 500px and 500px no longer fits. The property type chip
 * was added at the head of the row, which pushes the amenities chip along by
 * its width plus the gap, and the card the panel has to stay inside is a fixed
 * 920px from 968 up -- so the room does not come back at a wider viewport.
 * Measured at 1440 with a price range set, which is an ordinary thing to have
 * done before opening this panel: the panel's far edge lands 11px past the
 * card in English and 22px past it in Arabic, and by the same amount at 1024
 * as at 1920. No viewport check catches it -- there is a third of the screen
 * spare on either side.
 *
 * Two columns fit inside the 400px cap: measured scrollHeight is 390, so all
 * seventeen stay reachable without an inner scroller. Taller and narrower,
 * not truncated.
 */
.hz-chip[data-hz-chip="more"] .hz-chip__panel {
    min-width: 320px;
}

/*
 * EVERY PANEL OPENS FROM ITS OWN CHIP'S INLINE-START EDGE. Nothing is anchored
 * to the end of a chip, and nothing is anchored to the card.
 *
 * It used to end-anchor the last two, so their panels would not open past the
 * card's far edge. That held with four chips and stopped holding with three:
 * the chips clustered into the first half of the card, so the widest panel
 * anchored to the last of them hung 180px off the card's NEAR edge at 1440 --
 * inside the viewport, so no overflow check caught it, and visibly wrong.
 *
 * THE ROW IS FOUR CHIPS AGAIN, property type having been added at its head, so
 * this was re-measured rather than assumed. Two things had to move, and each
 * is explained where it is made: the amenities panel is two columns at every
 * width now, and the sheet further down takes over at 860 rather than 760.
 *
 * MEASURE WITH THE CHIPS CARRYING SELECTIONS, NOT AT REST. A chip's summary is
 * replaced by what is selected inside it, so a price range widens that chip by
 * about 66px and shoves everything after it along. At rest the row fits at
 * 1440 with 72px to spare; with a range set the same row does not fit at all.
 * The resting numbers are the ones that lie.
 *
 * Arabic is the tighter of the two directions, which is not obvious: its chip
 * labels are shorter at rest but longer once chosen -- "غرفتا نوم فأكثر"
 * against "2+ beds" -- and it is the chosen state that decides this.
 *
 * With two columns the widest panel is 320px. Worst case, selections set,
 * across 968 and up: 185px to spare in English, 161px in Arabic, and those do
 * not vary with the viewport because the card does not either. The tightest
 * width in the range is 861, the first that is not a sheet.
 *
 * If the row changes length again, re-measure, with selections set. Anchoring
 * by position is a guess about where a chip sits, and it only holds while the
 * row's length does.
 */

.hz-chip__set {
    margin: 0;
    padding: 0;
    border: 0;
}

.hz-chip__legend {
    margin: 0 0 10px;
    padding: 0;
    color: #5b6577;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.hz-chip__more-set {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 2px 16px;
}

.hz-chip[data-hz-chip="more"] .hz-chip__legend {
    grid-column: 1 / -1;
}

/* More filters: each section waits for a property type it applies to. */
.hz-chip__more-set[hidden] {
    display: none !important;
}

.hz-chip__more-set:not([hidden]) ~ .hz-chip__more-set:not([hidden]) {
    margin-top: 14px;
    padding-top: 12px;
    border-top: 1px solid var(--hz-line);
}

/*
 * THE 1340px BREAKPOINT THAT SAT HERE IS GONE, NOT MOVED.
 *
 * It dropped this panel from three columns to two below 1340, which was only
 * worth having while three columns fitted above it. They no longer fit at any
 * width: the card stops growing at 920px from 968 up, so a 500px panel has the
 * same room at 1920 as at 1024, and the property type chip at the head of the
 * row spent it. Two columns are unconditional now and there is nothing left
 * for a width query to switch between.
 */

/*
 * Labels wrap rather than being cut. Two columns in a 320px panel give each
 * label about 132px, and "Underground parking" and "Backup water supply" both
 * need more than that, so nowrap silently truncated them. Widening the panel
 * instead is what the note above rules out: there is no room left to widen it
 * into.
 */
.hz-chip__opt {
    display: flex;
    align-items: center;
    gap: 9px;
    padding: 7px 0;
    color: var(--hz-ink);
    font-size: 13.5px;
    font-weight: 500;
    line-height: 1.3;
    cursor: pointer;
}

.hz-chip__opt input {
    flex: 0 0 auto;
    width: 15px;
    height: 15px;
    margin: 0;
    accent-color: var(--hagzi-primary);
    cursor: pointer;
}

/* Homepage Bedrooms and Bathrooms share one pill-selection panel. */
.hz-chip__panel--rooms {
    width: 380px;
    padding: 20px;
}

.hz-chip__rooms-group + .hz-chip__rooms-group {
    margin-top: 28px;
}

.hz-chip__rooms-title {
    margin: 0 0 16px;
    padding: 0;
    color: var(--hz-ink);
    font-size: 18px;
    font-weight: 600;
    line-height: 1.4;
}

.hz-chip__pills {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 8px;
}

.hz-chip__pill {
    position: relative;
    display: inline-flex;
    cursor: pointer;
}

.hz-chip__pill input {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    margin: 0;
    opacity: 0;
    cursor: pointer;
}

.hz-chip__pill span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 54px;
    min-height: 38px;
    padding: 6px 12px;
    border: 1px solid var(--hz-line);
    border-radius: 999px;
    background: #fff;
    color: var(--hz-ink);
    font-size: 16px;
    font-weight: 400;
    line-height: 1.4;
    transition: color .15s ease, border-color .15s ease, background .15s ease;
}

.hz-chip__pill:hover span {
    border-color: var(--hagzi-primary);
}

.hz-chip__pill input:checked + span {
    border-color: var(--hagzi-primary);
    background: #eef3ff;
    color: var(--hagzi-primary);
}

.hz-chip__pill input:focus-visible + span {
    outline: 2px solid var(--hagzi-primary);
    outline-offset: 3px;
}

.hz-chip__range {
    display: flex;
    align-items: flex-end;
    gap: 10px;
}

.hz-chip__num {
    display: flex;
    flex-direction: column;
    gap: 5px;
    color: #5b6577;
    font-size: 11.5px;
    font-weight: 600;
}

.hz-chip__num input {
    width: 104px;
    padding: 8px 10px;
    border: 1px solid var(--hz-field-line, #80868f);
    border-radius: 9px;
    color: var(--hz-ink);
    font-family: inherit;
    font-size: 13.5px;
}

.hz-chip__num input:focus-visible {
    border-color: var(--hagzi-primary);
    outline: 2px solid var(--hagzi-primary);
    outline-offset: 0;
}

.hz-chip svg {
    width: 14px;
    height: 14px;
    opacity: 0.75;
}

/*
 * Focus ring overrides: the base ring is white for the header and hero, but the
 * tabs and the search buttons now sit on white, where white is invisible.
 */
.hz-tab__input:focus-visible + .hz-tab__label,
.hz-search__clear:focus-visible,
.hz-search__submit:focus-visible {
    outline-color: var(--hz-ink);
}

/* ------------------------------------------------------- below-hero band ---- */

.hz-band {
    padding: 72px 0 80px;
    background: #fff;
    font-family: Roboto, "Helvetica Neue", Arial, sans-serif;
}

.hz-band__inner {
    max-width: 760px;
    text-align: center;
}

.hz-band__title {
    margin: 0 0 14px;
    color: var(--hz-ink);
    font-size: 30px;
    font-weight: 800;
    letter-spacing: -0.02em;
}

.hz-band__text {
    margin: 0 auto 26px;
    max-width: 60ch;
    color: #5b6270;
    font-size: 16px;
    line-height: 1.65;
}

.hz-band__actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 14px;
}

/*
 * NOTHING RENDERS .hz-band TODAY. No view in the theme emits the class and the
 * homepage returns none of it in either locale; the markup went when the band
 * was reworked and the rules stayed. It is recoloured rather than deleted
 * because removing a block another session may be part-way through reinstating
 * is the more expensive mistake, and because a red button is exactly what
 * should not reappear if the band comes back. White on the primary is the same
 * pairing the Search button already uses.
 */
.hz-band__cta {
    padding: 12px 26px;
    border-radius: 8px;
    background: var(--hagzi-primary);
    color: #fff;
    font-size: 15px;
    font-weight: 700;
    text-decoration: none;
}

.hz-band__cta:hover {
    background: var(--hagzi-primary-dark);
}

.hz-band__link {
    padding: 12px 22px;
    border: 1px solid #d5d9e0;
    border-radius: 8px;
    color: var(--hz-ink);
    font-size: 15px;
    font-weight: 600;
    text-decoration: none;
}

.hz-band__link:hover {
    border-color: var(--hz-ink);
}

/* ----------------------------------------------------------- responsive ---- */

@media (max-width: 1080px) {
    .hz-header__inner {
        grid-template-columns: auto 1fr auto;
        gap: 16px;
    }

    .hz-nav {
        gap: 20px;
        overflow-x: auto;
        scrollbar-width: none;
    }

    .hz-nav::-webkit-scrollbar {
        display: none;
    }

    .hz-phone span {
        display: none;
    }

    .hz-hero {
        min-height: 500px;
    }

    /* 121px is where the 600px centred hero put the headline at this width, so
       the content holds its position here as well. */
    .hz-hero__content {
        padding-top: 121px;
        padding-bottom: 92px;
    }

    .hz-hero__title {
        font-size: 44px;
    }
}

@media (max-width: 860px) {
    .hz-locale {
        display: none;
    }
}

/*
 * Below this width the centred three-column header cannot hold a full nav row,
 * so the brand and actions share the top line and the nav scrolls underneath.
 */
@media (max-width: 720px) {
    .hz-header__inner {
        grid-template-columns: auto auto;
        justify-content: space-between;
        gap: 10px 16px;
        padding-top: 10px;
        padding-bottom: 4px;
    }

    .hz-brand {
        grid-column: 1;
        grid-row: 1;
    }

    /* The wordmark is baked into the lockup, so the whole mark scales down
       together on narrow screens. At 26px tall it remains compact enough for
       the header action row while keeping the brand readable. */
    .hz-brand__logo {
        height: 26px;
    }

    .hz-actions {
        grid-column: 2;
        grid-row: 1;
        justify-content: flex-end;
    }

    .hz-nav {
        grid-column: 1 / -1;
        grid-row: 2;
        justify-content: flex-start;
        padding-bottom: 8px;
        /* Own row now, so the offset that separated it from the logo on one
           line would only push it out of alignment with the logo above. */
        margin-inline-start: 0;
    }

    /* Row 2 frees up room again, so the number comes back rather than
       leaving a bare handset icon next to the CTA. */
    .hz-phone span {
        display: inline;
    }

    .hz-hero {
        min-height: 470px;
    }

    /* 117px is where the 560px centred hero put the headline. The band under
       the card is 80px here rather than the 96px used on desktop: the card
       fills far more of a phone's hero, so the same band would read as a gap
       rather than as breathing room. */
    .hz-hero__content {
        padding-top: 117px;
        padding-bottom: 80px;
    }

    .hz-hero__title {
        font-size: 33px;
    }

    .hz-hero__subtitle {
        margin-bottom: 20px;
        font-size: 16px;
    }

    .hz-tab__label {
        padding: 9px 17px;
        font-size: 13px;
    }

    /* Tightened with the pills, so the bar still fits a 390px viewport. */
    .hz-tabbar__jump {
        padding-inline: 12px;
        font-size: 13px;
    }

    .hz-card {
        padding: 14px;
        border-radius: 18px;
    }

    .hz-band {
        padding: 52px 0 56px;
    }

    .hz-band__title {
        font-size: 24px;
    }
}

/*
 * Handsets, with the favourite and notification marks now in the action row.
 *
 * Row one is brand + phone + heart + bell + CTA. The 720px block above restores
 * the phone number on the reasoning that row two had freed up space, and that
 * was true when the row held three items; with five it is not. The number is
 * ~85px of the ~312px row, far and away the cheapest thing to give up, so it
 * collapses back to its icon here.
 *
 * The two marks are NOT hidden at any width. They are the most compact items in
 * the row at 30px each, and hiding the thing that was just added in order to
 * keep an 11-digit phone number that also appears in the footer and one tap
 * away on the icon would be the wrong trade. Must come after the 720px block:
 * same specificity, so source order decides.
 *
 * Order of giving way across the whole header, for the record:
 *   1080px  phone number -> icon
 *    860px  locale hides entirely
 *    720px  nav drops to its own row; phone number returns
 *    480px  phone number -> icon again
 *   the heart and bell persist throughout
 */
@media (max-width: 480px) {
    .hz-phone span {
        display: none;
    }

}

/*
 * The chips are the first thing to give up room: they are inert, so scrolling
 * them sideways costs nothing, and it keeps them on one line as in the
 * reference instead of stacking three deep above the fold.
 */
@media (max-width: 620px) {
    .hz-search {
        height: 50px;
        padding: 0 6px;
        padding-inline-start: 13px;
    }

    .hz-search__submit {
        height: 38px;
        padding: 0 16px;
    }

    /*
     * THE ROW NO LONGER SCROLLS SIDEWAYS, AND THAT IS DELIBERATE.
     *
     * It used to be flex-wrap: nowrap with overflow-x: auto and contain: paint,
     * to keep six chips on one line as in the reference. Both of those clip an
     * absolutely positioned child, so every dropdown panel would be cut off at
     * the row's edge -- worst on the right-hand chips, which is exactly where
     * a panel has least room to begin with.
     *
     * Wrapping is affordable now because the six chips are four: two rows on a
     * handset rather than the three-deep stack that made scrolling worth it.
     * And they are controls rather than decoration now, so a chip a visitor
     * has to discover by swiping is a worse trade than a second row.
     */
    .hz-chips {
        flex-wrap: wrap;
    }

    /* Nothing chip-specific left here; the panel treatment moved to its own
       block below, which starts higher up than this one. */
}

/*
 * ONE FULL-WIDTH SHEET UNDER THE CARD, NOT A PANEL HANGING OFF A CHIP.
 *
 * A panel wide enough to be usable is wider than the chip that opens it, so it
 * has to extend past one of that chip's edges, and below this width there is
 * no edge that is safe. Measured with three chips: the amenities chip's right
 * edge sits 327px from the left of the screen at 640 and 700, so even the
 * two-column 320px panel is within a handful of pixels of running off, and
 * narrower still it is hopeless. If the row ever wraps again the problem gets
 * worse rather than better, because then which edge is safe depends on where
 * each chip landed -- right-anchoring threw the amenities panel 150px off the
 * left when it was the first chip on a second row, and left-anchoring does the
 * same to a chip at the end of the first.
 *
 * So below this width the panel takes the card as its containing block and
 * spans it. .hz-chip goes static to hand that role over and .hz-card takes it.
 * Nothing else about the card changes: it has no absolutely positioned
 * children of its own, so becoming a positioning context has no other effect.
 *
 * THIS STARTS AT 860, NOT AT THE 620 THE OTHER HANDSET RULES USE. The two
 * numbers answer different questions and have not been the same since the
 * chips became real controls.
 *
 * It was 760, measured with three chips. Property type makes four, so every
 * chip behind it starts about 141px further along and the panels stop fitting
 * that much sooner. Measured with a price range set, which is the case that
 * decides it: the amenities panel first breaks the card at about 783 in
 * English and about 807 in Arabic. Arabic is the tighter one because its
 * chosen labels are the longer ones -- see the note higher up.
 *
 * 860 clears the worse of the two by about 50px, which is a good deal more
 * price digits than the catalogue's own range needs.
 */
@media (max-width: 860px) {
    .hz-card {
        position: relative;
    }

    .hz-chip {
        position: static;
    }

    .hz-chip__panel,
    .hz-chip[data-hz-chip="more"] .hz-chip__panel {
        top: calc(100% + 8px);
        right: 0;
        left: 0;
        min-width: 0;
        /* A sheet under the card can afford to be taller than the cap a
           chip-anchored panel gets, and it should be: at 300px only twelve of
           the seventeen amenities were reachable without working a small inner
           scroller with a fingertip. */
        max-height: 60vh;
    }

    .hz-chip__panel--rooms {
        width: auto;
    }

    /* Three columns do not fit here. Two do. */
    .hz-chip__more-set {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

/* Very narrow handsets: the field alone needs the full row. */
@media (max-width: 360px) {
    .hz-search {
        flex-wrap: wrap;
        height: auto;
        padding: 10px;
        border-radius: 16px;
    }

    .hz-search__input {
        height: 38px;
    }

    /*
     * The field stops being a pill here and becomes a 16px box, and the button
     * stops being a chip inside it and becomes a full-width block along its
     * bottom edge. A pill would then curve harder than the container holding
     * it, which reads as a mistake, so the radius steps down to sit with the
     * field's corners instead.
     */
    .hz-search__submit {
        flex: 1 1 100%;
        height: 44px;
        margin-top: 8px;
        border-radius: 12px;
    }
}

/* ==========================================================================
 * Homepage sections below the hero (property channel)
 *
 * Appended: every rule above this line — footer, header, hero, tabs, search
 * card, chips and their media queries — is untouched.
 *
 * The content these style is hard-coded demo data. See the comment block at the
 * top of resources/themes/property/views/home/index.blade.php.
 * ========================================================================== */

/* Visually hidden but readable: metadata icons are aria-hidden, so the numbers
   need units in text for anyone not looking at the icon. */
.hz-sr {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;
    border: 0;
    overflow: hidden;
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    white-space: nowrap;
}

.hz-sec {
    padding: 44px 0 0;
    background: #ffffff;
}

.hz-sec--last {
    padding-bottom: 56px;
}

.hz-sec__head {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 18px;
}

.hz-sec__title {
    margin: 0;
    color: var(--hz-ink);
    font-size: 24px;
    font-weight: 700;
    letter-spacing: -0.3px;
}

.hz-sec__title--sm {
    font-size: 17px;
    font-weight: 600;
    letter-spacing: -0.1px;
}

.hz-seeall {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    flex: 0 0 auto;
    color: var(--hz-ink);
    font-size: 12.5px;
    font-weight: 600;
    text-decoration: none;
}

.hz-seeall svg {
    width: 15px;
    height: 15px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.hz-seeall:hover {
    color: var(--hagzi-primary);
}

/* -------------------------------------------------------------- areas ---- */
/*
 * Browse by Area: photographic cards in a horizontally scrolling row.
 *
 * The row is nothing more than an overflow-x container, so it scrolls with no
 * script at all — trackpad, touch, and tabbing between cards, which pulls the
 * focused one into view. The arrows and dots are BUILT BY SCRIPT (see the
 * template) and are simply absent when script does not run, rather than
 * sitting there looking live and doing nothing. Same principle as the inert
 * city spans in the off-plan grid below.
 */

.hz-areas-section .hz-sec__head {
    align-items: flex-end;
    margin-bottom: 28px;
}

.hz-areas-section .hz-sec__title--sm {
    font-size: 24px;
    font-weight: 700;
    letter-spacing: -0.5px;
}

.hz-areas__subtitle {
    margin: 6px 0 0;
    color: var(--hz-muted);
    font-size: 15px;
    line-height: 1.45;
}

.hz-areas-section .hz-seeall {
    color: var(--hagzi-primary);
    font-size: 14px;
    font-weight: 700;
}

/*
 * The Buy / Rent segmented control that used to sit here has gone, along with
 * .hz-areas__head, .hz-areas__seg and .hz-areas__segbtn.
 *
 * It rendered Buy as an enforced filter state. The cards below it now link to
 * real per-area searches, and those searches return whatever is in the area:
 * Deir Ghbar and Khalda each return a single FOR RENT listing. So the control
 * was not merely inert, it was describing the results wrongly. Marking both
 * halves aria-disabled would have fixed the lie and left two grey words in a
 * grey pill directly under the heading, saying nothing, in the most valuable
 * position in the section. Removing it was the smaller surface.
 *
 * Restoring it is a block of markup plus this block of CSS, once a real
 * listing-type filter exists to hang it on.
 */

.hz-areas__viewport {
    position: relative;
}

.hz-areas__track {
    display: flex;
    gap: 18px;
    margin: 0;
    padding: 0;
    /*
     * Its own scroll context, so however many cards there are they can never
     * push the document sideways. The card focus ring is inset, so nothing is
     * clipped by this either.
     */
    overflow-x: auto;
    scroll-snap-type: x proximity;
    scroll-behavior: smooth;
    scrollbar-width: none;
    list-style: none;
}

.hz-areas__track::-webkit-scrollbar {
    display: none;
}

/*
 * Fixed width, not a grid fraction: the card never grows with the viewport,
 * which is what keeps the photograph's density honest at every width and lets
 * the row show a partial card as a hint that it scrolls.
 */
.hz-areas__track > li {
    flex: 0 0 auto;
    width: 220px;
    scroll-snap-align: start;
}

.hz-area {
    display: flex;
    height: 100%;
    flex-direction: column;
}

.hz-area__media {
    display: block;
    height: 166px;
    flex: 0 0 auto;
    border-radius: 15px;
    overflow: hidden;
    background: #e9ebf0;
}

.hz-area__img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.35s ease;
}

.hz-area:hover .hz-area__img {
    transform: scale(1.045);
}

.hz-area__body {
    display: flex;
    min-height: 118px;
    flex: 1 1 auto;
    flex-direction: column;
    padding: 13px 3px 0;
}

.hz-area__name {
    display: block;
    margin: 0;
    color: var(--hz-ink);
    font-size: 18px;
    font-weight: 700;
    letter-spacing: -0.15px;
    line-height: 1.3;
    text-decoration: none;
}

.hz-area__name:hover {
    color: var(--hagzi-primary);
}

.hz-area__count {
    display: block;
    margin-top: 4px;
    color: var(--hz-muted);
    font-size: 14px;
    line-height: 1.35;
}

.hz-area__actions {
    display: flex;
    align-items: center;
    gap: 16px;
    margin-top: 15px;
}

.hz-area__action {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 5px;
    color: var(--hagzi-primary);
    font-size: 15px;
    font-weight: 700;
    line-height: 1.2;
    text-align: center;
    text-decoration: none;
    transition: color 0.15s ease;
}

.hz-area__action:hover {
    color: var(--hagzi-primary-dark, #0638B0);
}

.hz-area__action svg {
    width: 15px;
    height: 15px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.9;
    stroke-linecap: round;
    stroke-linejoin: round;
}

[dir="rtl"] .hz-area__action svg {
    transform: scaleX(-1);
}

.hz-area__divider {
    width: 1px;
    height: 20px;
    flex: 0 0 auto;
    background: #cfd3dc;
}

.hz-area__media:focus-visible,
.hz-area__name:focus-visible,
.hz-area__action:focus-visible {
    outline: 3px solid var(--hagzi-focus, rgba(82, 50, 137, 0.28));
    outline-offset: 2px;
}

/* ---- script-built controls ------------------------------------------- */

.hz-areas__nav {
    position: absolute;
    top: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    padding: 0;
    border: 1px solid var(--hz-line);
    border-radius: 999px;
    background: #ffffff;
    color: var(--hz-ink);
    box-shadow: 0 4px 14px rgba(6, 10, 18, 0.16);
    transform: translateY(-50%);
    cursor: pointer;
    transition: background-color 0.15s ease;
}

/*
 * Inside the row rather than out in the page margin as the mockup has them.
 * There is no margin to sit in below about 1250px, and anything hanging
 * outside the shell is a horizontal-overflow risk at every narrow width.
 */
.hz-areas__nav--prev {
    inset-inline-start: 8px;
}

.hz-areas__nav--next {
    inset-inline-end: 8px;
}

.hz-areas__nav:hover {
    background: #f3f4f7;
}

.hz-areas__nav svg {
    width: 17px;
    height: 17px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

/*
 * Hidden, not greyed, at the ends. A visible disabled arrow still reads as
 * "this does something"; removing it from the flow and from the tab order
 * says plainly that there is nothing further that way.
 */
.hz-areas__nav[hidden] {
    display: none;
}

.hz-areas__dots {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 4px;
    margin-top: 14px;
}

/*
 * Needed because the display:flex above is an author rule and would otherwise
 * beat the user-agent's [hidden] { display: none }, leaving the dots visible
 * when script hides them.
 */
.hz-areas__dots[hidden] {
    display: none;
}

/* 22px box for a 8px dot: the visual stays small, the touch target does not. */
.hz-areas__dot {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
    padding: 0;
    border: 0;
    background: none;
    cursor: pointer;
}

.hz-areas__dot::before {
    content: "";
    display: block;
    width: 8px;
    height: 8px;
    border-radius: 999px;
    background: #d2d6de;
    transition: background-color 0.15s ease;
}

.hz-areas__dot[aria-current="true"]::before {
    background: var(--hagzi-primary);
}

@media (prefers-reduced-motion: reduce) {
    .hz-areas__track {
        scroll-behavior: auto;
    }

    .hz-area,
    .hz-area__img {
        transition: none;
    }

    .hz-area:hover {
        transform: none;
    }

    .hz-area:hover .hz-area__img {
        transform: none;
    }
}

/* ------------------------------------------------------ listing cards ---- */

/*
 * Four columns, one row. Was three columns holding all six listings in two
 * rows; the page now shows them as three separate one-row sections — featured,
 * for sale, for rent — so the grid is a single row of at most four.
 */
.hz-listings {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 22px;
    margin: 0;
    padding: 0;
    list-style: none;
}

/*
 * Track count follows the item count, because the catalogue holds three sales
 * and three rentals and neither typed row can fill four slots. Four tracks with
 * the last one empty reads as a card that failed to load; three tracks reads as
 * a row of three.
 *
 * The rule is: fill the width down to three, cap below that. At three of four
 * the cards come out 329px against the featured row's 271px, which is wider but
 * still plainly the same card. At two they would be 505px and at one 1032px,
 * which stops looking like the same component, so those two cap their track to
 * the four-column card width and sit left-aligned instead. The calc reproduces
 * that width exactly: the shell minus the three gaps a four-column row has,
 * divided by four, plus the gaps the shorter row keeps.
 *
 * --4 needs no rule; it is the default above.
 */
.hz-listings--3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.hz-listings--2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    max-width: calc((100% - 66px) / 2 + 22px);
}

.hz-listings--1 {
    grid-template-columns: minmax(0, 1fr);
    max-width: calc((100% - 66px) / 4);
}

.hz-lcard {
    display: flex;
    flex-direction: column;
    height: 100%;
    border: 1px solid #edeff3;
    border-radius: 12px;
    background: #ffffff;
    overflow: hidden;
    /* Deliberately barely there: the mockup lifts cards off white by a hair. */
    box-shadow: 0 1px 3px rgba(16, 20, 28, 0.05);
    transition: box-shadow 0.15s ease, transform 0.15s ease;
}

.hz-lcard:hover {
    box-shadow: 0 8px 20px rgba(16, 20, 28, 0.1);
    transform: translateY(-2px);
}

.hz-lcard__media {
    position: relative;
    aspect-ratio: 16 / 11;
    /* Holds the crop, now that the photograph is bigger than this box. */
    overflow: hidden;
    background: #eef0f3;
}

/*
 * Absolutely positioned rather than merely sized to 100%, and that matters.
 *
 * With the photograph in normal flow its own intrinsic ratio wins whenever the
 * percentage height cannot resolve, and this box grows to fit it. That is how
 * moving from the 640x427 demo JPEGs to the catalogue's 350x360 renderings
 * silently turned a landscape card into a portrait one — 378px of photograph
 * where the design asks for 254 — and made every card in the row 124px taller
 * without a single line of layout CSS changing.
 *
 * Out of flow, the aspect-ratio above is the only thing that decides the
 * height, whatever dimensions the catalogue serves next.
 */
.hz-lcard__img {
    position: absolute;
    inset: 0;
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* A listing with no photograph says so, in the same words and the same grey as
   the search results card, rather than showing the browser's broken-image mark. */
.hz-lcard__img--none {
    display: grid;
    place-items: center;
    padding: 16px;
    background: #eef0f3;
    color: #5f6673;
    font-size: 13px;
    text-align: center;
}

.hz-lcard__badge {
    position: absolute;
    top: 10px;
    inset-inline-start: 10px;
    padding: 4px 8px;
    border-radius: 4px;
    color: #ffffff;
    font-size: 9.5px;
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    line-height: 1.3;
}

.hz-lcard__badge--sale {
    background: #2c7a55;
}

.hz-lcard__badge--rent {
    background: #2560b4;
}

/*
 * Inert by construction, matching the hero filter chips: a span with no click
 * target and no tab stop. Present so the card anatomy reads correctly.
 */
.hz-lcard__fav {
    position: absolute;
    top: 9px;
    inset-inline-end: 9px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 29px;
    height: 29px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.94);
    color: #6a7180;
    box-shadow: 0 1px 4px rgba(16, 20, 28, 0.16);
    cursor: not-allowed;
}

.hz-lcard__fav svg {
    width: 15px;
    height: 15px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.7;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.hz-lcard__body {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    padding: 13px 14px 15px;
}

.hz-lcard__title {
    margin: 0 0 6px;
    font-size: 14px;
    font-weight: 700;
    line-height: 1.35;
}

.hz-lcard__title a {
    color: var(--hz-ink);
    text-decoration: none;
}

.hz-lcard__title a:hover {
    color: var(--hagzi-primary);
}

.hz-lcard__loc {
    display: flex;
    align-items: center;
    gap: 5px;
    margin: 0 0 11px;
    color: #5b6577;
    font-size: 12px;
}

.hz-lcard__loc svg {
    flex: 0 0 auto;
    width: 13px;
    height: 13px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.6;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.hz-lcard__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 4px 13px;
    margin: 0 0 12px;
    padding: 0;
    list-style: none;
}

.hz-lcard__meta li {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    color: #5c6270;
    font-size: 12px;
    white-space: nowrap;
}

.hz-lcard__meta svg {
    flex: 0 0 auto;
    width: 15px;
    height: 15px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.5;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.hz-lcard__price {
    display: flex;
    align-items: baseline;
    gap: 5px;
    /* Pushed to the bottom so prices align across cards of unequal title length. */
    margin: auto 0 0;
}

.hz-lcard__price strong {
    color: var(--hz-ink);
    font-size: 16px;
    font-weight: 700;
    letter-spacing: -0.2px;
}

.hz-lcard__price span {
    color: #5b6577;
    font-size: 11px;
    font-weight: 500;
}

/* --------------------------------------------------------- value props ---- */

.hz-why__head {
    margin-bottom: 16px;
    font-size: 20px;
    font-weight: 700;
}

.hz-why {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 26px;
    margin: 0;
    padding: 22px 0 0;
    border-top: 1px solid var(--hz-line);
    list-style: none;
}

/*
 * Icon beside the label, not above it: that is what the mockup shows, even
 * though the written brief said "above".
 */
.hz-why__item {
    display: flex;
    align-items: flex-start;
    gap: 13px;
}

.hz-why__icon {
    flex: 0 0 auto;
    width: 26px;
    height: 26px;
    margin-top: 1px;
    color: var(--hz-nav);
    fill: none;
    stroke: currentColor;
    stroke-width: 1.4;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.hz-why__title {
    margin: 0 0 4px;
    color: var(--hz-ink);
    font-size: 13.5px;
    font-weight: 700;
}

.hz-why__text {
    margin: 0;
    max-width: 21ch;
    color: #5b6577;
    font-size: 12.5px;
    line-height: 1.55;
}

/*
 * Focus rings for the new controls. The shared ring near the top of this file
 * is white, for the header and the hero; everything in these sections sits on
 * white, so it needs its own.
 */
.hz-seeall:focus-visible,
.hz-lcard__title a:focus-visible,
.hz-areas__nav:focus-visible,
.hz-areas__dot:focus-visible {
    outline: 3px solid var(--hagzi-primary);
    outline-offset: 2px;
    border-radius: 6px;
}

/* ------------------------------------------- responsive (new sections) ---- */

/*
 * Four columns only hold up while the shell is wide. Below that the row steps
 * down 4 -> 3 -> 2 and then becomes a scroller at 720, which keeps the card
 * between roughly 270px and 400px the whole way rather than jumping straight
 * from four columns to two and doubling the card width in one step.
 *
 * These reset the count modifiers as well as the base: a two-card row capped to
 * the four-column width is right at 1440 and far too narrow once the grid
 * itself is down to two tracks. Same specificity as the modifiers, and later in
 * the file, so source order decides.
 */
@media (max-width: 1080px) {
    .hz-listings,
    .hz-listings--1,
    .hz-listings--2,
    .hz-listings--3 {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        max-width: none;
    }

    .hz-listings--1 {
        grid-template-columns: minmax(0, 1fr);
        max-width: calc((100% - 44px) / 3);
    }

    .hz-listings--2 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        max-width: calc((100% - 44px) / 3 * 2 + 22px);
    }
}

@media (max-width: 860px) {
    .hz-listings,
    .hz-listings--1,
    .hz-listings--2,
    .hz-listings--3 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        max-width: none;
    }

    .hz-listings--1 {
        grid-template-columns: minmax(0, 1fr);
        max-width: calc((100% - 22px) / 2);
    }
}

@media (max-width: 720px) {
    /* The row keeps scrolling at every width, so the card only needs to shrink
       enough to keep more than one in view. */
    .hz-areas__track {
        gap: 14px;
    }

    .hz-areas__track > li {
        width: 204px;
    }

    .hz-area__media {
        height: 132px;
    }

    .hz-areas-section .hz-sec__head {
        align-items: flex-start;
        margin-bottom: 20px;
    }

    .hz-areas-section .hz-sec__title--sm {
        font-size: 24px;
    }

    .hz-areas__subtitle {
        margin-top: 4px;
        font-size: 13px;
    }

    .hz-areas-section .hz-seeall {
        padding-top: 4px;
        font-size: 12.5px;
    }

    .hz-sec {
        padding-top: 34px;
    }

    .hz-sec__title {
        font-size: 20px;
    }

    /*
     * Without this the small variant is left on its 17px base while the full
     * size steps down to 20px, so a --sm heading ends up LARGER on a phone
     * than on a desktop and the same size as the section titles it is meant
     * to sit below. The hierarchy inverted. Stepping 17 -> 16 keeps it in
     * proportion with the 24 -> 20 above. .hz-why__head follows and keeps its
     * own 18px, so that heading is unaffected.
     */
    .hz-sec__title--sm {
        font-size: 16px;
    }

    .hz-why__head {
        font-size: 18px;
    }

    /*
     * Cards become a snap-scrolling row. No arrow buttons: moving them needs
     * script, and a decorative arrow that does nothing is worse than none.
     * Bleeds to the viewport edges so the partial card reads as scrollable.
     */
    .hz-listings,
    .hz-listings--1,
    .hz-listings--2,
    .hz-listings--3 {
        display: flex;
        /* Cleared here too: a capped short row would otherwise keep its cap as
           a flex container and squeeze the scroller into part of the width. */
        max-width: none;
        gap: 14px;
        margin-right: -24px;
        margin-left: -24px;
        padding: 4px 24px;
        overflow-x: auto;
        scroll-snap-type: x mandatory;
        scrollbar-width: none;
        /*
         * Required, not cosmetic. Without it Chrome still counts this
         * scroller's 1157px of content toward the document scroll width, even
         * though every ancestor up to <main> measures 390 and overflow-x:hidden
         * does not suppress it. The result was a 962px document at a 390px
         * viewport, which made mobile Chrome shrink-to-fit the whole page.
         * Paint containment stops the overflow escaping; scrolling is
         * unaffected.
         */
        contain: paint;
    }

    .hz-listings::-webkit-scrollbar {
        display: none;
    }

    .hz-listings > li {
        flex: 0 0 78%;
        scroll-snap-align: start;
    }

    .hz-why {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 22px;
    }

    .hz-why__text {
        max-width: none;
    }
}

@media (max-width: 520px) {
    .hz-areas__track {
        gap: 12px;
    }

    .hz-areas__track > li {
        width: 184px;
    }

    .hz-area__name {
        font-size: 15px;
    }

    .hz-area__media {
        height: 120px;
    }

    .hz-area__body {
        min-height: 112px;
        padding: 11px 2px 0;
    }

    .hz-area__actions {
        gap: 12px;
        margin-top: 12px;
    }

    .hz-area__action {
        font-size: 14px;
    }

    .hz-why {
        grid-template-columns: minmax(0, 1fr);
        gap: 18px;
    }
}

/* =========================================================== new projects ===
 *
 * Off-plan project grid. Full-bleed photograph per card with every piece of
 * copy overlaid at the bottom over a scrim, which is what makes this section
 * look different from .hz-lcard above (photo on top, copy on white below).
 *
 * This block is appended after the existing responsive rules on purpose, so
 * its own media queries below can override the shared .hz-sec__title sizes
 * without a specificity bump.
 * ========================================================================= */

.hz-np__title {
    font-size: 28px;
}

.hz-np__sub {
    margin: 7px 0 0;
    color: #6b7280;
    font-size: 14px;
    line-height: 1.5;
}

/*
 * City strip. Wraps rather than scrolls sideways: a horizontal scroller here
 * would put a second overflow container on the page for the sake of four
 * short words, and .hz-listings already showed how easily that leaks into the
 * document scroll width.
 */
.hz-np__tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 4px 26px;
    margin: 18px 0 22px;
    padding: 0;
    border-bottom: 1px solid var(--hz-line);
    list-style: none;
}

.hz-np__tab {
    display: inline-block;
    /* Pulls the 2px indicator down onto the strip's own hairline. */
    margin-bottom: -1px;
    padding: 0 1px 9px;
    border-bottom: 2px solid transparent;
    font-size: 13.5px;
    font-weight: 500;
}

/*
 * The selected city. This is the same device as the tab strip in "Explore
 * more" lower down the page -- a 2px underline plus the accent on the label --
 * and it carried the same stale red for the same reason: both were written
 * against --hz-red and neither was moved when the channel took the purple.
 * They now read the same token, so the two strips cannot drift apart again.
 */
.hz-np__tab--on {
    border-bottom-color: var(--hagzi-primary);
    color: var(--hagzi-primary);
    font-weight: 600;
}

/* Inert, like the hero filter chips: there is no city filter to run yet. */
.hz-np__tab--off {
    color: #9aa1ad;
    cursor: default;
}

.hz-np {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 22px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.hz-np__card {
    position: relative;
    display: flex;
    /* Copy sits on the floor of the card, photo fills whatever is left. */
    flex-direction: column;
    justify-content: flex-end;
    height: 100%;
    /*
     * min-height rather than aspect-ratio: only some cards carry a specs row,
     * so the copy block varies in height, and a fixed ratio would clip it in
     * a narrow column. This lets the card grow past the ratio if it must.
     */
    min-height: 408px;
    padding: 14px;
    border-radius: 12px;
    /* Holds the negative z-index layers below inside this card. */
    isolation: isolate;
    /* Shows through until the lazy photograph arrives; keeps text legible. */
    background: #2a2f38;
    overflow: hidden;
}

/*
 * Photo and scrim ride negative z-indexes instead of the copy riding a
 * positive one, so every text node below stays at auto and no stacking
 * order has to be maintained as the card's contents change.
 */
.hz-np__img {
    position: absolute;
    inset: 0;
    z-index: -2;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/*
 * Stop positions are set from measured contrast, not by eye. With the middle
 * stop at 0.54 the location line on the golden-hour tower photograph came out
 * at 3.1:1 against a (139,131,117) background, below the 4.5:1 that 11.5px
 * text needs. Raising the 58% stop to 0.68 is what clears it; a lighter scrim
 * with more opaque text does not, because the bright photo is the constraint
 * rather than the text alpha.
 */
.hz-np__scrim {
    position: absolute;
    inset: 0;
    z-index: -1;
    background: linear-gradient(
        to bottom,
        rgba(10, 13, 18, 0.46) 0%,
        rgba(10, 13, 18, 0.10) 26%,
        rgba(10, 13, 18, 0.68) 58%,
        rgba(10, 13, 18, 0.94) 100%
    );
}

.hz-np__flags {
    position: absolute;
    top: 12px;
    inset-inline-start: 12px;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 5px;
}

.hz-np__flag,
.hz-np__plan {
    padding: 3px 8px;
    border-radius: 4px;
    background: rgba(12, 16, 22, 0.74);
    color: #ffffff;
    font-size: 10.5px;
    font-weight: 600;
    line-height: 1.55;
    letter-spacing: 0.1px;
}

.hz-np__body {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
}

/*
 * Deliberately a text chip, not an image. These developers are invented for
 * the demo, so there is no logo to show, and a set-in-caps name is honest
 * about that where a fabricated wordmark would not be.
 *
 * A span rather than an anchor since the cards became clickable: there is no
 * developer page, and as an anchor it was a dead spot in the card's hit area.
 * cursor: default so it does not read as a control, matching the locale
 * indicator and the header's favourite and notification marks.
 */
.hz-np__dev {
    display: inline-block;
    cursor: default;
    max-width: 100%;
    margin-bottom: 9px;
    padding: 5px 9px;
    border-radius: 3px;
    background: #ffffff;
    color: #1b1f27;
    font-size: 10.5px;
    font-weight: 700;
    letter-spacing: 0.4px;
    text-decoration: none;
    text-transform: uppercase;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.hz-np__name {
    margin: 0;
    font-size: 17px;
    font-weight: 700;
    line-height: 1.25;
    letter-spacing: -0.2px;
}

.hz-np__name a {
    color: #ffffff;
    text-decoration: none;
}

.hz-np__name a:hover {
    text-decoration: underline;
}

/*
 * Whole-card click target.
 *
 * Now that the project pages exist, the name being the only hit area is a
 * 17px line on a 408px card. This stretches the name's own anchor over the
 * card with a transparent ::after, which is the one approach that adds no
 * nested anchor, no second tab stop and no script — worth insisting on here,
 * because anything scripted would be lost to the Vue remount on #app.
 *
 * Only applied via --linked, set in the template when the record has a url. An
 * unconditional rule would turn a url-less card into one big link to '#'.
 *
 * The card is already `position: relative` with `isolation: isolate`, and the
 * photo and scrim ride z-index -2 and -1, so the overlay needs no z-index of
 * its own: as a positioned box it paints above the in-flow copy while staying
 * below nothing that matters.
 *
 * Known trade-off: an overlay like this makes text inside the card hard to
 * select by dragging. Accepted — there is nothing here anyone needs to copy,
 * and the alternative of duplicating the link around the whole card would give
 * screen readers the card's entire contents as one link name.
 */
.hz-np__card--linked .hz-np__name a::after {
    content: '';
    position: absolute;
    inset: 0;
    /* No background: purely a hit area. */
}

/* The affordance has to match the target, or only the name looks clickable. */
.hz-np__card--linked:hover .hz-np__name a {
    text-decoration: underline;
}

/*
 * The one genuinely interactive thing inside the card has to stay above the
 * overlay or the card link would eat it. Positioned with a z-index so it wins
 * against the overlay's painting order regardless of DOM position.
 *
 * .hz-np__dev is deliberately NOT lifted: it is an inert span now, so letting
 * the card link cover it is the point.
 */
.hz-np__card--linked .hz-np__wa {
    position: relative;
    z-index: 1;
}

.hz-np__loc {
    margin: 4px 0 0;
    color: rgba(255, 255, 255, 0.88);
    font-size: 11.5px;
    line-height: 1.4;
}

.hz-np__specs {
    display: flex;
    align-items: center;
    margin: 8px 0 0;
    padding: 0;
    color: rgba(255, 255, 255, 0.9);
    font-size: 11.5px;
    list-style: none;
}

.hz-np__specs li {
    display: inline-flex;
    align-items: center;
    gap: 5px;
}

.hz-np__specs li + li {
    margin-inline-start: 10px;
    padding-inline-start: 10px;
    border-inline-start: 1px solid rgba(255, 255, 255, 0.34);
}

.hz-np__specs svg {
    width: 14px;
    height: 14px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.6;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.hz-np__pricelabel {
    margin: 12px 0 0;
    color: rgba(255, 255, 255, 0.86);
    font-size: 10.5px;
}

.hz-np__price {
    display: flex;
    align-items: baseline;
    gap: 5px;
    margin: 2px 0 0;
    color: #ffffff;
    font-size: 20px;
    font-weight: 700;
    letter-spacing: -0.3px;
}

.hz-np__price span {
    font-size: 14px;
    font-weight: 600;
}

.hz-np__plan {
    margin-top: 9px;
}

.hz-np__wa {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    width: 100%;
    margin-top: 12px;
    padding: 9px 12px;
    border-radius: 6px;
    background: #ffffff;
    color: #1b1f27;
    font-size: 12.5px;
    font-weight: 600;
    text-decoration: none;
    transition: background-color 0.15s ease;
}

.hz-np__wa:hover {
    background: #eef0f4;
}

.hz-np__wa svg {
    flex: 0 0 auto;
    width: 16px;
    height: 16px;
}

.hz-np__wa-bubble {
    fill: #25d366;
}

.hz-np__wa-phone {
    fill: #ffffff;
}

/*
 * Everything in this section sits on a dark photo, so the ring is white.
 *
 * .hz-np__dev is no longer listed: it is an inert span with no tabindex, so it
 * cannot take focus and the selector would never match. The ring stays on the
 * name — the card's link — rather than being stretched around the whole card,
 * so a keyboard user sees which card is focused without a 408px outline.
 */
.hz-np__name a:focus-visible,
.hz-np__wa:focus-visible {
    outline: 3px solid #ffffff;
    outline-offset: 2px;
    border-radius: 6px;
}

@media (max-width: 1080px) {
    .hz-np {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 720px) {
    .hz-np__title {
        font-size: 22px;
    }

    .hz-np__sub {
        font-size: 13.5px;
    }
}

/*
 * Two columns are held all the way down to 620 rather than dropping to one at
 * the usual 720. At 720 a single card would be 672px wide against a 408px
 * floor, a letterbox that crops the photograph hard and strands the copy in
 * one corner. Below 620 two columns would be under 280px each, too narrow for
 * a 20px price and a full-width button, so that is where it stacks.
 */
@media (max-width: 620px) {
    .hz-np {
        grid-template-columns: minmax(0, 1fr);
        gap: 16px;
    }

    .hz-np__card {
        min-height: 400px;
    }
}

/* Let the existing listing-title link open from anywhere on a home listing
   card. The favorite remains a separate control above the link overlay. */
.hz-lcard {
    position: relative;
    isolation: isolate;
}

.hz-lcard__title a::after {
    position: absolute;
    z-index: 1;
    inset: 0;
    border-radius: 12px;
    content: '';
    cursor: pointer;
}

.hz-lcard__fav {
    z-index: 2;
}

/*
 * HGZ-015: muted text and date-picker contrast.
 *
 * Muted copy on this channel (.hz-chip__legend, .hz-chip__num,
 * .hz-lcard__loc, .hz-lcard__price span, .hz-why__text, .hzloc__heading)
 * moved from #8b929f (3.13:1 on white) to #5b6577 (5.88:1 on white), which
 * clears WCAG AA for small text. .hz-search__icon keeps #8b929f: it is a
 * decorative, aria-hidden glyph and 3.13:1 already meets the 3:1 non-text
 * threshold.
 *
 * flatpickr's stock selected/today-hover fill is #569ff7 with white text
 * (2.73:1). #2563eb with white text is 5.17:1.
 */
.flatpickr-day.today:hover,
.flatpickr-day.today:focus,
.flatpickr-day.selected,
.flatpickr-day.selected:hover,
.flatpickr-day.selected:focus,
.flatpickr-day.startRange,
.flatpickr-day.endRange {
    border-color: #2563eb;
    background: #2563eb;
    color: #ffffff;
}

/* themes/property/property-header.css */
/* ===========================================================================
   Property header — account entry point.

   A separate file rather than more rules in property.css, for the same reason
   property-pages.css exists: another session had property.css open while this
   was written, so nothing was written to it. Loaded from
   components/layouts/footer/styles.blade.php immediately after property.css,
   so the --hz-* tokens it declares are already in scope and these rules win
   ties against it without needing manufactured specificity.

   Every selector here is .hz-hicon--link — a class that exists nowhere
   else. (The disabled notifications bell was removed, HGZ-032, along with the
   rules here that named it; the bell now only appears as a .hz-hicon--link
   when the customer inbox route exists.) Delete this file and its
   <link> and the header returns exactly to its previous rendering.
   =========================================================================== */

/* ---------------------------------------------------------------------------
   A wired icon is a control, so it takes the control's ink.

   property.css puts the heart and the bell on #9aa1ad and says why: "Inert by
   construction like the locale beside them ... so they take the same muted grey
   rather than the phone's darker nav colour. That is this header's existing
   signal for 'indicator, not control', and using a live-looking treatment on
   something with no destination is the thing we are avoiding."

   The converse is what this rule does. The heart and the account glyph now have
   real destinations, so they move to --hz-nav, which is the phone's colour and
   this header's established ink for a control: grey is an indicator, dark is
   something you can press. Nothing about the size or
   the spacing changes — the 32px box, the 22px glyph and the -9px sibling pull
   are all still property.css's, untouched.
   --------------------------------------------------------------------------- */
.hz-header .hz-hicon--link {
    color: var(--hz-nav, #3c414c);
    cursor: pointer;
    text-decoration: none;
}

.hz-header .hz-hicon--link:hover,
.hz-header .hz-hicon--link:focus-visible {
    color: var(--hz-ink, #12141a);
}

/* ---------------------------------------------------------------------------
   The focus ring property.css asked for.

   Its .hz-hicon comment closes with an instruction: "No :focus-visible rule,
   because neither is focusable: they are spans with no tabindex, so there is no
   focus to style. If either is later wired to a real route it becomes an <a>
   and MUST be added to the .hz-header focus-ring selector list near the top of
   this file."

   That is exactly what happened, and this is that rule — in this file rather
   than in that selector list only because property.css is being edited by
   another session and must not be appended to. The values are copied from the
   two rules it would have joined, so a focused account icon is
   indistinguishable from a focused phone number or nav link: 3px, 2px offset,
   6px radius, and the primary rather than the white used by the rings that sit
   on photographs, because this one sits on a white header.
   --------------------------------------------------------------------------- */
.hz-header .hz-hicon--link:focus-visible {
    outline: 3px solid var(--hagzi-primary, #0745D9);
    outline-offset: 2px;
    border-radius: 6px;
}

/* The account glyph is marked while the visitor is anywhere in /account, the
   way the nav row marks the section you are in. The primary rather than the
   ink, so "you are here" reads differently from "you can press this". */
.hz-header .hz-hicon--link[aria-current='page'] {
    color: var(--hagzi-primary, #0745D9);
    box-shadow: inset 0 -2px 0 currentColor;
}

/* The favourites count is resolved from the uncached customer API. It sits on
   the outside edge of the heart, away from the tightly spaced account
   control in both LTR and RTL layouts. */
.hz-header .hz-hicon--favorites {
    position: relative;
    overflow: visible;
}

.hz-header .hz-favorites-count {
    position: absolute;
    z-index: 2;
    inset-block-start: -4px;
    inset-inline-start: -5px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 17px;
    height: 17px;
    padding: 0 4px;
    border: 2px solid #ffffff;
    border-radius: 999px;
    background: #d9004a;
    color: #ffffff;
    box-shadow: 0 1px 4px rgba(18, 20, 26, 0.2);
    font-size: 9px;
    font-weight: 800;
    font-variant-numeric: tabular-nums;
    line-height: 1;
    pointer-events: none;
}

.hz-header .hz-favorites-count[hidden],
.hz-header .hz-mobile-menu__fav-count[hidden] {
    display: none;
}

.hz-header .hz-hicon--has-favorites svg {
    fill: #f40051;
    stroke: #f40051;
}

.hz-header .hz-mobile-menu__fav-count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 20px;
    height: 20px;
    margin-inline-start: 6px;
    padding: 0 6px;
    border-radius: 999px;
    background: #d9004a;
    color: #ffffff;
    font-size: 11px;
    font-weight: 800;
    font-variant-numeric: tabular-nums;
    line-height: 1;
}

/* =============================================================================
   The locale control, once it became a control
   ============================================================================= */

/*
 * property.css paints .hz-locale as muted static text with cursor: default,
 * and hides it altogether below 860px. Both were right while it was a dead
 * label: there was nothing to press, and nothing to read that the page did not
 * already say by being in English.
 *
 * As a switch, neither is. It takes the same darker ink the other pressable
 * things in this row take -- which is the distinction that row already makes,
 * grey for an indicator and dark for something you can press -- and it has to
 * survive to the narrow widths, because a handset is exactly where a reader is
 * least able to go and find another way to change language.
 *
 * Scoped to the --link modifier so the inert span keeps its old treatment on a
 * channel that has only one locale.
 */
.hz-locale--link {
    color: var(--hz-nav, #2f3540);
    cursor: pointer;
    text-decoration: none;
}

.hz-locale--link:hover {
    color: var(--hagzi-primary, #0745D9);
}

@media (max-width: 860px) {
    .hz-locale--link {
        display: inline-flex;
    }
}

/*
 * Below 480 the row is already carrying the brand, the phone, favourites,
 * account and the purple CTA, so space is short. The switch keeps its globe and gives up its word rather than the other
 * way round: the glyph is the part that is recognised without reading, and the
 * name of the language on offer is still in the title and still in the link's
 * text for anyone listening to the page rather than looking at it.
 */
@media (max-width: 480px) {
    .hz-locale--link > span {
        position: absolute;
        width: 1px;
        height: 1px;
        margin: -1px;
        overflow: hidden;
        clip-path: inset(50%);
        white-space: nowrap;
    }
}

/* =============================================================================
   The nav row wraps instead of hiding its tail
   ============================================================================= */

/*
 * property.css makes .hz-nav a horizontal scroll strip below 1080px --
 * `overflow-x: auto` with `scrollbar-width: none` and a ::-webkit-scrollbar
 * rule -- and gives it its own full-width row below 720px. The scrolling half
 * of that never worked as an interface: with every scrollbar suppressed the
 * strip offers no signal whatsoever that there is more of it, so anything past
 * the right edge is not "one swipe away", it is invisible.
 *
 * MEASURED, AT 390px, WITH THE NAV ON ITS OWN ROW
 *
 *                       label boxes    gaps (5 x 20)   total    available
 *   English                   243.1            100.0   343.1        342.0
 *   Arabic                    272.1            100.0   372.1        342.0
 *
 * So English hung 1px over the edge, which nobody could see, and Arabic hung
 * 30px over, which hid Projects/المشاريع entirely on first paint. The strip's
 * own box is not the problem and cannot be part of the fix: at this breakpoint
 * its margin-inline-start is already 0 and it has no inline padding, and the
 * 48px it gives up either side is .hz-shell's gutter, which is the whole
 * channel's and not the header's to narrow.
 *
 * Where the width goes is the two things left. The gaps are 100px -- 29% of the
 * English total and 27% of the Arabic one -- and the labels differ by 29px
 * between the locales, of which 24px is text (Arabic ink 248.1 against English
 * 220.1) and the rest is the six anchors' own 4px of horizontal padding, which
 * is identical in both. The strip was, in effect, sized for the English label
 * set; Arabic is 12% wider in ink and that is the whole of the difference.
 *
 * WHY WRAPPING RATHER THAN A TIGHTER GAP ALONE
 *
 * Tightening the gap is the obvious lever and it is not sufficient, which the
 * arithmetic settles rather than taste: fitting Arabic at 320px needs 100px
 * removed from a 100px gap budget, so even a gap of zero leaves it 0.1px over
 * and English 31px clear only because English is shorter. A single-line strip
 * cannot hold six items at 320px in either language without shrinking the type,
 * which is off the table.
 *
 * So the strip wraps. That is what makes the guarantee hold for text nobody has
 * measured yet: these six labels are translatable and a longer one moves the
 * overflow around, but the failure mode is now a second row rather than a
 * hidden destination. It is also why this is not a scroll affordance -- a fade
 * or an arrow would advertise the tail honestly, but the tail would still be
 * off-screen on first paint, and being able to discover Projects is the point.
 *
 * The gap comes down to 12px alongside it so the common case does not pay for
 * the guarantee: at 390px that puts English at 303.1 and Arabic at 332.1
 * against 342.0, so both still render on one line, with 39px of slack in
 * English and 10px in Arabic. Ink-to-ink separation is 16px once each anchor's
 * own 2px is counted -- the anchors keep their padding, so hit targets do not
 * shrink -- and at 320px both locales take a second row with everything on it.
 *
 * 720px because that is where property.css already decides the nav needs its
 * own row; nothing between 721px and 1080px is touched, and neither is the
 * 30px gap the wide header uses. `overflow-x: auto` is deliberately left where
 * it is rather than reached into property.css to remove: with wrapping it never
 * engages, and it stays a last resort for a single label longer than the strip,
 * which wrapping alone cannot help.
 */
@media (max-width: 720px) {
    .hz-header .hz-nav {
        flex-wrap: wrap;
        gap: 8px 12px;
    }
}

/*
 * D-20 adds a fifth link (Agencies). Between 721px and 1080px the strip is
 * the hidden-scrollbar one above, so a tail that does not fit would vanish;
 * it wraps to a second row instead.
 */
@media (min-width: 721px) and (max-width: 1080px) {
    .hz-header .hz-nav {
        flex-wrap: wrap;
        row-gap: 4px;
    }
}

/*
 * Above 1080px the row used to stay unwrapped. Tools & services and Home
 * services made it wider than the space beside the phone, so the last label
 * painted on top of the number (live, 31 Oct 2026: at 1440px "Home services"
 * covers 0798882727, and at 1100px "Sell your Property" does). The 1fr column
 * already has min-width: 0, so the links were spilling out of it with
 * overflow visible. Wrapping keeps every label inside that column. A wide
 * window that fits the whole row stays on one line.
 */
@media (min-width: 1081px) {
    .hz-header .hz-nav {
        flex-wrap: wrap;
        row-gap: 4px;
        column-gap: 24px;
        min-width: 0;
    }
}

/*
 * R-10: at 721-800px the fifth link takes the second row, and with no block
 * padding the first row sat about 6px under the top edge. The padding keeps
 * both rows clear of it; a single-row header is still 68px because the
 * min-height already exceeds the 30px logo plus this padding. The tighter
 * column gap lets more widths keep one row.
 */
@media (min-width: 721px) and (max-width: 800px) {
    .hz-header .hz-header__inner {
        padding-block: 10px;
    }

    .hz-header .hz-nav {
        column-gap: 16px;
        align-content: center;
    }
}

/* =============================================================================
   Compact mobile header and SERP search rail
   ============================================================================= */

/* These wrappers are deliberately transparent outside the handset layout. */
.hz-mobile-menu {
    display: none;
}

.hzp-fb__mobile-controls {
    display: contents;
}

@media (max-width: 720px) {
    /* The reference keeps one calm top row: brand, primary CTA, menu. */
    .hz-header {
        position: relative;
        z-index: 70;
    }

    .hz-header .hz-header__inner {
        grid-template-columns: minmax(0, 1fr) auto;
        gap: 12px;
        min-height: 68px;
        padding: 10px 16px;
    }

    .hz-header .hz-brand__logo {
        height: 24px;
    }

    .hz-header .hz-nav,
    .hz-header .hz-phone,
    .hz-header .hz-locale,
    .hz-header .hz-hicon {
        display: none !important;
    }

    .hz-header .hz-actions {
        display: flex;
        grid-column: 2;
        grid-row: 1;
        gap: 10px;
    }

    /* D-25: the language switch stays one tap away in the top row; below
       480px it shows only the globe (the word is kept for screen readers). */
    .hz-header .hz-locale.hz-locale--link {
        display: inline-flex !important;
        align-items: center;
        justify-content: center;
        gap: 4px;
        min-width: 44px;
        min-height: 44px;
        padding: 0 4px;
    }

    .hz-header .hz-cta {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        min-height: 42px;
        padding: 0 20px;
        font-size: 14px;
    }

    .hz-mobile-menu {
        position: relative;
        display: block;
    }

    .hz-mobile-menu__toggle {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: 42px;
        height: 42px;
        padding: 0;
        border: 1px solid #d6dae2;
        border-radius: 10px;
        background: #ffffff;
        color: var(--hz-ink, #12141a);
        cursor: pointer;
        list-style: none;
    }

    .hz-mobile-menu__toggle::-webkit-details-marker {
        display: none;
    }

    .hz-mobile-menu__toggle:focus-visible {
        outline: 3px solid var(--hagzi-primary, #0745D9);
        outline-offset: 2px;
    }

    .hz-mobile-menu[open] .hz-mobile-menu__toggle {
        border-color: var(--hagzi-primary, #0745D9);
        background: #F3F7FF;
    }

    .hz-mobile-menu__bars {
        display: grid;
        gap: 4px;
        width: 22px;
    }

    .hz-mobile-menu__bars > span {
        display: block;
        width: 100%;
        height: 2px;
        border-radius: 99px;
        background: currentColor;
    }

    .hz-mobile-menu__panel {
        position: absolute;
        top: calc(100% + 10px);
        inset-inline-end: 0;
        z-index: 90;
        width: min(320px, calc(100vw - 32px));
        padding: 10px;
        border: 1px solid #e2e5eb;
        border-radius: 14px;
        background: #ffffff;
        box-shadow: 0 20px 48px -20px rgba(18, 20, 26, 0.42);
    }

    .hz-mobile-menu__links,
    .hz-mobile-menu__tools {
        display: grid;
        gap: 3px;
    }

    .hz-mobile-menu__links a,
    .hz-mobile-menu__tools a {
        display: flex;
        align-items: center;
        min-height: 42px;
        padding: 9px 12px;
        border-radius: 9px;
        color: var(--hz-nav, #3c414c);
        font-size: 14px;
        font-weight: 650;
        line-height: 1.3;
        text-decoration: none;
    }

    .hz-mobile-menu__links a:hover,
    .hz-mobile-menu__tools a:hover,
    .hz-mobile-menu__links a:focus-visible,
    .hz-mobile-menu__tools a:focus-visible {
        background: #EEF4FF;
        color: var(--hagzi-primary, #0745D9);
        outline: none;
    }

    .hz-mobile-menu__tools {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        margin-top: 8px;
        padding-top: 8px;
        border-top: 1px solid #eceef2;
    }

    /* The SERP's existing form becomes the second and third rows in the
       reference header. No query name or submission behaviour changes. */
    .hzp-serp .hzp-filterbar {
        z-index: 30;
    }

    .hzp-serp .hzp-fb {
        align-items: center;
        gap: 12px 8px;
        padding: 12px;
    }

    html.hzp-js .hzp-serp .hzp-fb__basic-strip {
        display: block;
        flex: 1 1 100%;
        order: 1;
        width: 100%;
        padding: 0;
        overflow: visible;
    }

    html.hzp-js .hzp-serp .hzp-fb__basic-strip .hzp-fb__row,
    html.hzp-js .hzp-serp .hzp-fb__basic-strip .hzp-field--listing-type,
    html.hzp-js .hzp-serp .hzp-fb__basic-strip .hzp-fb__city {
        display: none !important;
    }

    html.hzp-js .hzp-serp .hzp-fb__basic-strip .hzp-field--location {
        display: block;
        width: 100%;
        max-width: none;
    }

    html.hzp-js .hzp-serp .hzp-field--location > .hzp-field__label {
        position: absolute;
        top: 0;
        inset-inline-start: 0;
        width: 1px;
        height: 1px;
        margin: 0;
        overflow: hidden;
        clip-path: inset(50%);
        white-space: nowrap;
    }

    html.hzp-js .hzp-serp .hzp-field--location .hzp-input {
        height: 56px;
        border: 1px solid var(--hz-field-line, #80868f);
        border-radius: 16px;
        background: #ffffff;
        box-shadow: none;
    }

    html.hzp-js .hzp-serp .hzp-field--location .hzp-input__field {
        height: 100%;
        padding-inline-start: 44px;
        border-radius: 16px;
        font-size: 16px;
        font-weight: 400;
    }

    /*
        The 44px start padding clears the magnifier when the field is empty.
        Once the city chip is in front of the text, that padding opens a hole
        between the chip and the placeholder. The chip already clears the icon
        (margin-inline-start below), so the field goes back to a normal gap.
        Scoped to the SERP handset: the shared picker stylesheet is untouched.
    */
    html.hzp-js .hzp-serp .hzp-field--location .hzloc__chip:not([hidden]) ~ .hzp-input__field {
        padding-inline-start: 10px;
    }

    html.hzp-js .hzp-serp .hzp-field--location .hzloc__chip:not([hidden]) {
        align-self: center;
        height: 32px;
        margin-inline-start: 40px;
        padding-inline: 12px 4px;
        line-height: 1;
    }

    html.hzp-js .hzp-serp .hzp-field--location .hzp-input__icon {
        inset-inline-start: 16px;
        top: 50%;
        width: 20px;
        height: 20px;
        margin-top: -10px;
        color: #8a909b;
    }

    .hzp-serp .hzp-fb__mobile-controls {
        display: flex;
        flex: 1 1 100%;
        flex-wrap: wrap;
        order: 2;
        align-items: flex-start;
        gap: 10px;
        width: 100%;
        max-width: 100%;
        min-width: 0;
    }

    html.hzp-js .hzp-serp .hzp-mf {
        display: contents;
    }

    html.hzp-js .hzp-serp .hzp-fb__actions {
        flex: 0 0 auto;
        order: 1;
        align-items: center;
        gap: 7px;
        margin: 0;
        padding: 0;
        border: 0;
    }

    html.hzp-js .hzp-serp .hzp-fb__actions .hzp-btn {
        min-height: 46px;
        border-radius: 13px;
    }

    html.hzp-js .hzp-serp .hzp-fb__toggle {
        gap: 6px;
        padding: 0 14px;
        border: 1px solid #e4e7ee;
        background: #ffffff;
        color: var(--hzp-ink, #12141a);
        font-size: 15px;
        font-weight: 500;
    }

    html.hzp-js .hzp-serp .hzp-fb__toggle:has(.hzp-fb__count) .hzp-fb__toggle-text::after {
        content: "·";
        margin-inline-start: 6px;
        color: #9aa3ad;
        font-weight: 500;
    }

    html.hzp-js .hzp-serp .hzp-fb__count {
        min-width: 20px;
        height: 20px;
        padding: 0;
        border-radius: 999px;
        background: var(--hagzi-primary, #0745D9);
        color: #ffffff;
        font-size: 12px;
        font-weight: 600;
    }

    html.hzp-js .hzp-serp .hzp-fb__toggle svg {
        color: var(--hagzi-primary, #0745D9);
        stroke: currentColor;
    }

    html.hzp-js .hzp-serp .hzp-fb__clear {
        width: 40px;
        padding: 0;
        overflow: hidden;
        color: transparent;
        font-size: 0;
    }

    html.hzp-js .hzp-serp .hzp-fb__clear svg {
        width: 17px;
        height: 17px;
        color: var(--hzp-body, #3c414c);
    }

    html.hzp-js .hzp-serp .hzp-mf__steps {
        flex: 1 1 auto;
        flex-wrap: wrap;
        align-items: center;
        order: 2;
        gap: 10px;
        min-width: 0;
        max-width: 100%;
        padding: 0;
        overflow: visible;
    }

    html.hzp-js .hzp-serp .hzp-mf__steps::-webkit-scrollbar {
        display: none;
    }

    /*
        Visual order only. The guided flow follows data-hzp-mf-next, not DOM
        order, so Price can sit after Property type without moving the buttons.
        City, Neighbourhood and Bedrooms stay in the row after it.
    */
    html.hzp-js .hzp-serp .hzp-mf__step[data-hzp-mf-step="type"] { order: 1; }
    html.hzp-js .hzp-serp .hzp-mf__step[data-hzp-mf-step="ptype"] { order: 2; }
    html.hzp-js .hzp-serp .hzp-mf__step[data-hzp-mf-step="price"] { order: 3; }
    html.hzp-js .hzp-serp .hzp-mf__step[data-hzp-mf-step="city"] { order: 4; }
    html.hzp-js .hzp-serp .hzp-mf__step[data-hzp-mf-step="district"] { order: 5; }
    html.hzp-js .hzp-serp .hzp-mf__step[data-hzp-mf-step="beds"] { order: 6; }

    html.hzp-js .hzp-serp .hzp-mf__step {
        flex: 0 0 auto;
        gap: 8px;
        max-width: 100%;
        min-height: 46px;
        padding: 0 14px;
        overflow: visible;
        border: 1px solid #e4e7ee;
        border-radius: 13px;
        background: #ffffff;
        color: var(--hzp-ink, #12141a);
        box-shadow: none;
        font-size: 15px;
        font-weight: 500;
        white-space: nowrap;
        text-overflow: clip;
    }

    html.hzp-js .hzp-serp .hzp-mf__step::after {
        content: "";
        width: 8px;
        height: 8px;
        margin-top: -4px;
        border-right: 2px solid currentColor;
        border-bottom: 2px solid currentColor;
        transform: rotate(45deg);
        transition: transform 0.16s ease, margin 0.16s ease;
    }

    html.hzp-js .hzp-serp .hzp-mf__step.is-current {
        border-color: var(--hagzi-primary, #0745D9);
        background: #EAF1FF;
        color: var(--hagzi-primary, #0745D9);
        box-shadow: none;
    }

    html.hzp-js .hzp-serp .hzp-mf:not(.is-open) .hzp-mf__step.is-current:not(.is-set) {
        border-color: #e4e7ee;
        background: #ffffff;
        color: var(--hzp-ink, #12141a);
    }

    html.hzp-js .hzp-serp .hzp-mf__step.is-set {
        border-color: var(--hagzi-primary, #0745D9);
        background: #EAF1FF;
        color: var(--hagzi-primary, #0745D9);
    }

    html.hzp-js .hzp-serp .hzp-mf.is-open .hzp-mf__step.is-current::after {
        margin-top: 4px;
        transform: rotate(-135deg);
    }

    html.hzp-js .hzp-serp .hzp-mf__body {
        display: none;
        flex: 1 1 100%;
        order: 3;
        align-items: center;
        gap: 8px;
        width: 100%;
        min-width: 0;
        padding-top: 1px;
    }

    html.hzp-js .hzp-serp .hzp-mf.is-open .hzp-mf__body {
        display: flex;
    }

    html.hzp-js .hzp-serp .hzp-mf__option,
    html.hzp-js .hzp-serp .hzp-mf__apply,
    html.hzp-js .hzp-serp .hzp-mf__price-input {
        min-height: 40px;
    }
}

@media (max-width: 360px) {
    .hz-header .hz-header__inner {
        gap: 8px;
        padding-inline: 12px;
    }

    .hz-header .hz-brand__logo {
        height: 22px;
    }

    .hz-header .hz-actions {
        gap: 8px;
    }

    .hz-header .hz-cta {
        min-height: 40px;
        padding-inline: 15px;
        font-size: 13px;
    }

    .hz-mobile-menu__toggle {
        width: 40px;
        height: 40px;
    }
}

/* =============================================================================
   Mobile SERP filter sheets and applied-filter tags
   ============================================================================= */

.hzp-mf__backdrop,
.hzp-mf__head,
.hzp-fb__backdrop,
.hzp-fb__sheethead,
.hzp-fb__active-tags {
    display: none;
}

@media (max-width: 720px) {
    html.hzp-filter-sheet-open,
    html.hzp-filter-sheet-open body {
        overflow: hidden;
        overscroll-behavior: none;
    }

    /* The native desktop controls must never surface above a phone sheet. */
    html.hzp-js .hzp-serp .hzp-fb__basic-strip .hzp-fb__row,
    html.hzp-js .hzp-serp .hzp-fb:has(.hzp-fb__more[open]) .hzp-fb__row {
        display: none !important;
    }

    /* The former circular X is replaced by named tags and a clear action. */
    html.hzp-js .hzp-serp .hzp-fb__clear {
        display: none !important;
    }

    html.hzp-js .hzp-serp .hzp-fb__active-tags {
        display: flex;
        flex: 1 1 100%;
        order: 3;
        align-items: center;
        gap: 10px;
        width: 100%;
        min-width: 0;
        padding-top: 10px;
        border-top: 1px solid #e5e8ee;
    }

    .hzp-fb__tag-list {
        display: flex;
        flex: 1 1 auto;
        align-items: center;
        gap: 8px;
        min-width: 0;
        overflow-x: auto;
        scrollbar-width: none;
        -webkit-overflow-scrolling: touch;
    }

    .hzp-fb__tag-list::-webkit-scrollbar {
        display: none;
    }

    .hzp-fb__tag {
        display: inline-flex;
        flex: 0 0 auto;
        align-items: center;
        gap: 7px;
        min-height: 34px;
        max-width: min(78vw, 310px);
        padding: 6px 10px 6px 12px;
        border: 1px solid #d7dce5;
        border-radius: 9px;
        background: #f4f5f7;
        color: #343a46;
        font-size: 13px;
        font-weight: 600;
        line-height: 1.25;
        text-decoration: none;
        white-space: nowrap;
    }

    [dir="rtl"] .hzp-fb__tag {
        padding: 6px 12px 6px 10px;
    }

    .hzp-fb__tag span {
        overflow: hidden;
        text-overflow: ellipsis;
    }

    .hzp-fb__tag svg {
        flex: none;
        width: 15px;
        height: 15px;
        fill: none;
        stroke: #9299a6;
        stroke-width: 1.8;
        stroke-linecap: round;
        stroke-linejoin: round;
    }

    .hzp-fb__clear-all {
        flex: none;
        color: var(--hagzi-primary, #0745D9);
        font-size: 14px;
        font-weight: 750;
        text-decoration: underline;
        text-underline-offset: 4px;
        white-space: nowrap;
    }

    /* One backdrop at a time keeps every control below the active sheet. */
    html.hzp-js .hzp-serp .hzp-mf__backdrop,
    html.hzp-js .hzp-serp .hzp-fb__backdrop {
        position: fixed;
        inset: 0;
        z-index: 90;
        width: 100%;
        height: 100%;
        margin: 0;
        padding: 0;
        border: 0;
        border-radius: 0;
        background: rgba(18, 20, 26, 0.42);
        backdrop-filter: blur(1.5px);
        cursor: default;
    }

    html.hzp-js .hzp-serp .hzp-mf__backdrop {
        display: none;
    }

    html.hzp-js .hzp-serp .hzp-mf.is-open .hzp-mf__backdrop,
    html.hzp-js .hzp-serp .hzp-fb__more[open] > .hzp-fb__backdrop {
        display: block;
    }

    html.hzp-js .hzp-serp .hzp-mf__body {
        position: fixed;
        inset-inline: 10px;
        top: auto;
        bottom: max(10px, env(safe-area-inset-bottom));
        z-index: 100;
        display: none;
        flex-direction: column;
        align-items: stretch;
        gap: 0;
        width: auto;
        max-height: min(78vh, 640px);
        max-height: min(78dvh, 640px);
        padding: 0;
        overflow: hidden;
        border: 1px solid #e0e4eb;
        border-radius: 18px;
        background: #ffffff;
        box-shadow: 0 24px 70px rgba(18, 20, 26, 0.28);
    }

    html.hzp-js .hzp-serp .hzp-mf.is-open .hzp-mf__body {
        display: flex;
    }

    html.hzp-js .hzp-serp .hzp-mf__head,
    html.hzp-js .hzp-serp .hzp-fb__sheethead {
        display: flex;
        flex: none;
        align-items: center;
        justify-content: space-between;
        gap: 16px;
        min-height: 58px;
        padding: 10px 14px 10px 18px;
        border-bottom: 1px solid #e5e8ee;
        background: #ffffff;
    }

    html[dir="rtl"].hzp-js .hzp-serp .hzp-mf__head,
    html[dir="rtl"].hzp-js .hzp-serp .hzp-fb__sheethead {
        padding: 10px 18px 10px 14px;
    }

    .hzp-mf__title,
    .hzp-fb__sheettitle {
        margin: 0;
        color: #12141a;
        font-size: 18px;
        font-weight: 800;
        line-height: 1.2;
    }

    .hzp-mf__close,
    .hzp-fb__sheetclose {
        appearance: none;
        display: inline-grid;
        flex: none;
        place-items: center;
        width: 38px;
        height: 38px;
        margin: 0;
        padding: 0;
        border: 1px solid #d7dce5;
        border-radius: 50%;
        background: #ffffff;
        color: #343a46;
        cursor: pointer;
    }

    .hzp-mf__close svg,
    .hzp-fb__sheetclose svg {
        width: 18px;
        height: 18px;
        fill: none;
        stroke: currentColor;
        stroke-width: 1.8;
        stroke-linecap: round;
        stroke-linejoin: round;
    }

    html.hzp-js .hzp-serp .hzp-mf__panels {
        flex: 1 1 auto;
        min-height: 0;
        overflow-y: auto;
        overscroll-behavior: contain;
        padding: 18px;
    }

    html.hzp-js .hzp-serp .hzp-mf__panel,
    html.hzp-js .hzp-serp .hzp-mf__options {
        width: 100%;
    }

    html.hzp-js .hzp-serp .hzp-mf__options {
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        gap: 10px;
        overflow: visible;
    }

    html.hzp-js .hzp-serp .hzp-mf__option {
        min-height: 44px;
        padding: 0 20px;
        border-color: #d7dce5;
        background: #ffffff;
        font-size: 15px;
    }

    html.hzp-js .hzp-serp .hzp-mf__option.is-selected {
        border-color: var(--hagzi-primary, #0745D9);
        background: var(--hagzi-primary, #0745D9);
        color: #ffffff;
    }

    html.hzp-js .hzp-serp .hzp-mf__price {
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
        align-items: center;
        gap: 10px;
        width: 100%;
    }

    html.hzp-js .hzp-serp .hzp-mf__price-input {
        width: 100%;
        min-width: 0;
        height: 48px;
        padding-inline: 14px;
        border-radius: 10px;
        font-size: 15px;
    }

    /* Pinned to the bottom of the scrolling list so the sheet footer never hides it. */
    html.hzp-js .hzp-serp .hzp-mf__more {
        position: sticky;
        bottom: -18px;
        z-index: 1;
        width: calc(100% + 36px);
        min-height: 44px;
        margin: 14px -18px -18px;
        padding: 10px 18px;
        border-top: 1px solid #e5e8ee;
        background: #ffffff;
        text-align: start;
    }

    html.hzp-js .hzp-serp .hzp-mf__foot {
        display: flex;
        flex: none;
        padding: 12px 14px max(12px, env(safe-area-inset-bottom));
        border-top: 1px solid #e5e8ee;
        background: #f7f8fa;
    }

    html.hzp-js .hzp-serp .hzp-mf__apply {
        width: 100%;
        min-height: 48px;
        border-color: var(--hagzi-primary, #0745D9);
        background: var(--hagzi-primary, #0745D9);
        font-size: 15px;
        font-weight: 800;
    }

    html.hzp-js .hzp-serp .hzp-fb__more[open] {
        z-index: 100;
    }

    html.hzp-js .hzp-serp .hzp-fb__panel {
        inset-inline: 10px;
        bottom: max(10px, env(safe-area-inset-bottom));
        z-index: 100;
        max-height: min(78vh, 680px);
        max-height: min(78dvh, 680px);
        border-radius: 18px;
        box-shadow: 0 24px 70px rgba(18, 20, 26, 0.28);
    }

    html.hzp-js .hzp-serp .hzp-fb__panelbody {
        min-height: 0;
        overscroll-behavior: contain;
        padding: 16px 18px;
    }

    html.hzp-js .hzp-serp .hzp-fb__foot {
        border-radius: 0 0 18px 18px;
        padding-bottom: max(11px, env(safe-area-inset-bottom));
    }

    .hzp-mf__close:focus-visible,
    .hzp-fb__sheetclose:focus-visible,
    .hzp-fb__tag:focus-visible,
    .hzp-fb__clear-all:focus-visible {
        outline: 2px solid var(--hagzi-primary, #0745D9);
        outline-offset: 2px;
    }
}

/* =============================================================================
   Mobile SERP overlay and compact-card refinement — 2026-09-14

   The filter bar is its own stacking context. Raising only the sheet/backdrop
   leaves the mobile site header above the dim layer, so lift the owning bar
   while either filter experience is open. Guided filters remain bottom sheets;
   the full Filters disclosure uses the whole viewport.
   ============================================================================= */
@media (max-width: 720px) {
    html.hzp-filter-sheet-open .hzp-serp .hzp-filterbar {
        z-index: 1000;
    }

    html.hzp-js .hzp-serp .hzp-mf__backdrop,
    html.hzp-js .hzp-serp .hzp-fb__backdrop {
        position: fixed;
        inset: 0;
        z-index: 1000;
        width: 100vw;
        height: 100vh;
        height: 100dvh;
        background: rgba(27, 32, 43, 0.56);
        backdrop-filter: blur(2px);
    }

    html.hzp-js .hzp-serp .hzp-mf__body {
        z-index: 1010;
    }

    /* Advanced Filters is a dedicated phone screen with its own close button. */
    html.hzp-js .hzp-serp .hzp-fb__more[open] {
        z-index: 1010;
    }

    html.hzp-js .hzp-serp .hzp-fb__panel {
        position: fixed;
        inset: 0;
        z-index: 1010;
        box-sizing: border-box;
        width: 100vw;
        height: 100vh;
        height: 100dvh;
        max-height: none;
        border: 0;
        border-radius: 0;
        box-shadow: none;
    }

    html.hzp-js .hzp-serp .hzp-fb__sheethead {
        min-height: 64px;
        padding-top: max(10px, env(safe-area-inset-top));
    }

    html.hzp-js .hzp-serp .hzp-fb__panelbody {
        flex: 1 1 auto;
        min-height: 0;
        padding: 18px;
        overflow-y: auto;
    }

    html.hzp-js .hzp-serp .hzp-fb__foot {
        flex: none;
        border-radius: 0;
        padding-bottom: max(12px, env(safe-area-inset-bottom));
    }

    /* Use the compact list on phones, including links carrying view=grid. */
    .hzp-serp .hzp-cards {
        gap: 12px;
    }

    .hzp-serp .hzp-cards .hzp-card {
        border-radius: 14px;
    }

    .hzp-serp .hzp-cards .hzp-card__photo {
        aspect-ratio: 16 / 9;
    }

    .hzp-serp .hzp-cards .hzp-card__thumbs,
    .hzp-serp .hzp-cards .hzp-card__desc {
        display: none;
    }

    .hzp-serp .hzp-cards .hzp-card__body {
        padding: 12px 14px 13px;
    }

    .hzp-serp .hzp-cards .hzp-price {
        font-size: 20px;
    }

    .hzp-serp .hzp-cards .hzp-price small {
        font-size: 12px;
    }

    .hzp-serp .hzp-cards .hzp-specs {
        gap: 4px 7px;
        margin-top: 8px;
        font-size: 12.5px;
    }

    .hzp-serp .hzp-cards .hzp-card__addr {
        display: -webkit-box;
        -webkit-box-orient: vertical;
        -webkit-line-clamp: 2;
        overflow: hidden;
        margin-top: 7px;
        font-size: 14px;
        font-weight: 700;
        line-height: 1.35;
    }

    .hzp-serp .hzp-cards .hzp-card__district,
    .hzp-serp .hzp-cards .hzp-card__listed {
        margin-top: 5px;
        font-size: 12px;
    }

    .hzp-serp .hzp-cards .hzp-card__foot {
        gap: 8px;
        padding-top: 9px;
    }

    .hzp-serp .hzp-cards .hzp-contacts {
        width: 100%;
        flex-wrap: nowrap;
    }

    .hzp-serp .hzp-cards .hzp-contacts__btn {
        flex: 1 1 0;
        justify-content: center;
        min-width: 0;
        padding-inline: 12px;
    }
}

/* Full-screen handset navigation, with the account action beside the brand. */
.hz-mobile-menu__back,
.hz-mobile-menu__close-label { display: none; }

@media (max-width: 720px) {
    html:has(.hz-mobile-menu[open]),
    body:has(.hz-mobile-menu[open]) { overflow: hidden; }

    .hz-header:has(.hz-mobile-menu[open]) { z-index: 1600; }
    body:has(.hz-mobile-menu[open]) .hz-mobile-nav { visibility: hidden; }

    .hz-mobile-menu__panel {
        position: fixed;
        inset: 0;
        display: flex;
        flex-direction: column;
        width: 100%;
        height: 100dvh;
        max-height: none;
        padding: 0;
        border: 0;
        border-radius: 0;
        background: #ffffff;
        box-shadow: none;
        overflow: hidden;
    }

    .hz-mobile-menu__head {
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
        align-items: center;
        flex: none;
        min-height: calc(76px + env(safe-area-inset-top));
        padding: env(safe-area-inset-top) 16px 0;
        gap: 8px;
    }

    .hz-mobile-menu__brand { grid-column: 2; display: block; }
    .hz-mobile-menu__brand img { display: block; width: 108px; height: auto; }
    .hz-mobile-menu__account {
        grid-column: 3;
        justify-self: end;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        min-height: 38px;
        padding: 7px 11px;
        border: 1px solid var(--hagzi-primary, #0745D9);
        border-radius: 10px;
        color: var(--hagzi-primary, #0745D9);
        font-size: 14px;
        font-weight: 600;
        line-height: 1.2;
        text-align: center;
        text-decoration: none;
    }

    .hz-mobile-menu[open] .hz-mobile-menu__toggle {
        position: fixed;
        z-index: 91;
        inset-block-start: calc(16px + env(safe-area-inset-top));
        inset-inline-start: 8px;
        width: 44px;
        height: 44px;
        border: 0;
        border-radius: 0;
        background: transparent;
    }
    .hz-mobile-menu[open] .hz-mobile-menu__bars,
    .hz-mobile-menu[open] .hz-mobile-menu__open-label { display: none; }
    .hz-mobile-menu[open] .hz-mobile-menu__back,
    .hz-mobile-menu[open] .hz-mobile-menu__close-label { display: block; }
    .hz-mobile-menu__back {
        width: 24px;
        height: 24px;
        fill: none;
        stroke: currentColor;
        stroke-width: 1.5;
        stroke-linecap: round;
        stroke-linejoin: round;
    }
    [dir="rtl"] .hz-mobile-menu__back { transform: scaleX(-1); }

    .hz-mobile-menu__body {
        flex: 1 1 auto;
        min-height: 0;
        overflow-y: auto;
        overscroll-behavior: contain;
        padding: 4px 12px max(24px, env(safe-area-inset-bottom));
    }
    .hz-mobile-menu__links,
    .hz-mobile-menu__tools { grid-template-columns: minmax(0, 1fr); gap: 0; }
    .hz-mobile-menu__tools { margin-top: 12px; padding-top: 12px; border-top: 1px solid #f0f1f4; }
    .hz-mobile-menu__links a,
    .hz-mobile-menu__tools a {
        gap: 8px;
        min-height: 48px;
        padding: 12px 8px;
        border-radius: 6px;
        color: #30343b;
        font-size: 16px;
        font-weight: 400;
        line-height: 1.5;
    }
    .hz-mobile-menu__links a::after,
    .hz-mobile-menu__tools a::after {
        content: "";
        width: 7px;
        height: 7px;
        flex: 0 0 7px;
        margin-inline-start: auto;
        margin-inline-end: 4px;
        border-right: 1px solid currentColor;
        border-bottom: 1px solid currentColor;
        transform: rotate(-45deg);
    }
    [dir="rtl"] .hz-mobile-menu__links a::after,
    [dir="rtl"] .hz-mobile-menu__tools a::after { transform: rotate(135deg); }
    .hz-mobile-menu__brand:focus-visible,
    .hz-mobile-menu__account:focus-visible {
        outline: 2px solid var(--hagzi-primary, #0745D9);
        outline-offset: 3px;
    }
}

/* =============================================================================
   Mobile SERP results header (breadcrumb, title, count, sort)
   Handset only. Desktop keeps the shared rules in property-pages.css.
   ============================================================================= */
@media (max-width: 720px) {
    .hzp-serp .hzp-results__top {
        display: flex;
        flex-direction: column;
        align-items: stretch;
        min-width: 0;
        max-width: 100%;
    }

    .hzp-serp .hzp-results__head,
    .hzp-serp .hzp-results__heading-copy {
        display: contents;
    }

    .hzp-serp .hzp-results__top .hzp-crumbs {
        order: 0;
        gap: 6px;
        margin: 0;
        padding: 2px 0 8px;
        color: #8a909b;
        font-size: 13px;
        font-weight: 400;
        line-height: 1.4;
    }

    .hzp-serp .hzp-results__top .hzp-crumbs a {
        color: #6b7280;
        text-decoration: underline;
        text-underline-offset: 2px;
    }

    .hzp-serp .hzp-results__top .hzp-crumbs [aria-current="page"] {
        color: #6b7280;
        font-weight: 400;
        text-decoration: none;
    }

    .hzp-serp .hzp-hub-back-link {
        order: 0;
    }

    .hzp-serp .hzp-results__title {
        order: 1;
        width: 100%;
        min-width: 0;
        margin: 0;
        color: #12141a;
        font-size: 29px;
        font-weight: 700;
        line-height: 1.15;
        letter-spacing: -0.02em;
    }

    .hzp-serp .hzp-results__title-count {
        display: flex;
        align-items: center;
        min-height: 44px;
        margin-top: 6px;
        padding-inline-end: 196px;
        color: #8a909b;
        font-size: 15px;
        font-weight: 400;
        line-height: 1.3;
        letter-spacing: 0;
        white-space: normal;
    }

    /*
        The count is the last line of the title. Pull the sort up onto that
        line and park it at the inline end. The negative margin equals the
        count row, so the blocks under the title (area chips included) stay
        where they were.
    */
    .hzp-serp .hzp-results__head > .hzp-sort {
        order: 2;
        align-self: flex-end;
        width: auto;
        max-width: calc(100% - 16px);
        margin-top: -44px;
        margin-bottom: 0;
        position: relative;
        z-index: 1;
    }

    .hzp-serp [data-property-hub-preview-notice],
    .hzp-serp .hzp-results__absent,
    .hzp-serp .hzp-hub-facets__range,
    .hzp-serp .hzp-hub-facets,
    .hzp-serp .hzp-hub-facets__directory {
        order: 3;
        min-width: 0;
        max-width: 100%;
    }

    .hzp-serp .hzp-sort {
        display: inline-flex;
        align-items: center;
        color: #12141a;
        font-size: 14px;
        font-weight: 500;
    }

    .hzp-serp .hzp-sort__control {
        min-width: 0;
        min-height: 44px;
        border: 1px solid var(--hz-field-line, #80868f);
        border-radius: 13px;
        background: #ffffff;
    }

    .hzp-serp .hzp-sort__el {
        min-height: 42px;
        padding: 8px 34px;
        font-size: 14px;
        font-weight: 500;
    }
}

/* =============================================================================
   UX audit D-07: first card above the fold at 390px, sort never over the H1.
   Handset only; desktop and tablet keep every rule above. The basic filter
   pills stay (they are the only basic filters on a phone) but share one
   scrolling row with the Filters control; the place links move below the
   results; the sort gets its own line under the count.
   ============================================================================= */
@media (max-width: 720px) {
    html.hzp-js .hzp-serp .hzp-mf__steps {
        flex: 1 1 0;
        flex-wrap: nowrap;
        overflow-x: auto;
        overscroll-behavior-x: contain;
        scrollbar-width: none;
        padding-block: 1px;
    }

    html.hzp-js .hzp-serp .hzp-mf__step {
        flex: 0 0 auto;
    }

    .hzp-serp .hzp-results__top .hzp-crumbs {
        flex-wrap: nowrap;
        overflow-x: auto;
        white-space: nowrap;
        scrollbar-width: none;
    }

    .hzp-serp .hzp-results__top .hzp-crumbs::-webkit-scrollbar {
        display: none;
    }

    .hzp-serp .hzp-results__title {
        font-size: 26px;
    }

    .hzp-serp .hzp-results__title-count {
        min-height: 0;
        padding-inline-end: 0;
    }

    .hzp-serp .hzp-results__head > .hzp-sort {
        justify-self: start;
        margin-top: 8px;
        z-index: auto;
    }

    /* One column; the header's parts become rows so the cards can come first. */
    .hzp-serp__grid {
        grid-template-areas: none;
        row-gap: 0;
    }

    .hzp-serp__grid > .hzp-results > .hzp-results__top {
        display: contents;
    }

    .hzp-serp__grid > .hzp-results > .hzp-results__top > *,
    .hzp-serp__grid .hzp-results__head > *,
    .hzp-serp__grid .hzp-results__heading-copy > * {
        order: 2;
        min-width: 0;
        max-width: 100%;
    }

    .hzp-serp__grid > .hzp-results > .hzp-results__top > :first-child {
        order: 0;
    }

    .hzp-serp__grid .hzp-results__heading-copy > .hzp-results__title {
        order: 1;
    }

    .hzp-serp__grid .hzp-results__head > .hzp-sort,
    .hzp-serp__grid .hzp-results__head > .hzp-view-switch,
    .hzp-serp__grid .hzp-results__head > .hzp-results__tools {
        order: 3;
    }

    .hzp-serp__grid > .hzp-results > .hzp-results__body {
        grid-area: auto;
        order: 5;
        margin-top: 14px;
    }

    .hzp-serp__grid .hzp-results__heading-copy > .hzp-hub-facets,
    .hzp-serp__grid .hzp-results__heading-copy > .hzp-hub-facets__directory {
        order: 6;
        margin-top: 18px;
    }

    .hzp-serp__grid > .hzp-side {
        grid-area: auto;
        order: 9;
        margin-top: 16px;
    }

    /*
     * The header wrappers are display: contents here, so the head's own
     * column rules (sort in 1, view switch in 2) land on this page grid.
     * Two explicit columns and full-width rows keep every block at the full
     * width and leave only sort and switch sharing one row.
     */
    .hzp-serp__grid {
        grid-template-columns: minmax(0, 1fr) auto;
        column-gap: 8px;
    }

    .hzp-serp__grid > *,
    .hzp-serp__grid > .hzp-results > *,
    .hzp-serp__grid > .hzp-results > .hzp-results__top > *,
    .hzp-serp__grid > .hzp-results > .hzp-results__body,
    .hzp-serp__grid > .hzp-side,
    .hzp-serp__grid .hzp-results__head > *,
    .hzp-serp__grid .hzp-results__heading-copy > * {
        grid-column: 1 / -1;
    }

    .hzp-serp__grid .hzp-results__head > .hzp-sort {
        grid-column: 1;
        align-self: center;
        /* Start alignment sizes the control to its text and can push the
           view switch past the screen. Stretch inside the first column. */
        justify-self: stretch;
        min-inline-size: 0;
        inline-size: 100%;
        max-inline-size: 100%;
        overflow: hidden;
    }

    .hzp-serp__grid .hzp-results__head > .hzp-sort .hzp-sort__control,
    .hzp-serp__grid .hzp-results__head > .hzp-sort .hzp-sort__el {
        min-inline-size: 0;
        max-inline-size: 100%;
    }

    .hzp-serp__grid .hzp-results__head > .hzp-view-switch {
        grid-column: 2;
        align-self: center;
        justify-self: end;
    }

    /*
        Copy link lives in this group with the view switch, so the handset
        page grid still has two columns: sort at the start, both controls
        at the end. The group must not span 1 / -1 or it takes its own row.
    */
    .hzp-serp__grid .hzp-results__head > .hzp-results__tools {
        grid-column: 2;
        align-self: center;
        justify-self: end;
        min-inline-size: 0;
        max-inline-size: 100%;
        margin-block-start: 8px;
    }
}

/* =============================================================================
   R-08: the mobile Neighbourhood sheet's search box and "show all" control
   ============================================================================= */

.hzp-mf__search {
    display: flex;
    flex-direction: column;
    gap: 6px;
    margin-bottom: 12px;
}

.hzp-mf__search-label {
    color: var(--hzp-body, #3c414c);
    font-size: 13px;
    font-weight: 600;
}

.hzp-mf__search-input {
    width: 100%;
    min-width: 0;
    height: 44px;
    padding-inline: 14px;
    border: 1px solid #d7dce5;
    border-radius: 10px;
    background: #ffffff;
    font: inherit;
    font-size: 15px;
}

.hzp-mf__search-none {
    margin: 12px 0 0;
    color: var(--hzp-body, #3c414c);
    font-size: 14px;
}

.hzp-mf__more {
    appearance: none;
    margin-top: 14px;
    padding: 8px 0;
    border: 0;
    background: none;
    color: var(--hagzi-primary, #0745D9);
    font: inherit;
    font-size: 14px;
    font-weight: 650;
    text-decoration: underline;
    cursor: pointer;
}

/* =============================================================================
   Mobile SERP filters after the Bayut comparison — 2026-10-25

   Only a slim search + Filters row is pinned while scrolling; the chip rows
   scroll away with the page. Location, bedrooms and price also live in the
   Filters sheet (one Show results), rent can be typed per month (searched as
   yearly), and the chip sheet's button shows the live count.
   ============================================================================= */
.hzp-pin,
.hzp-fb__core,
.hzp-period,
.hzp-period__note {
    display: none;
}

/* The price chip on the results bar names monthly or yearly at every width. */
.hzp-field--price .hzp-period {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 0 0 8px;
}

.hzp-field--price .hzp-period__opt {
    appearance: none;
    min-height: 36px;
    margin: 0;
    padding: 0 14px;
    border: 1px solid #d7dce5;
    border-radius: 999px;
    background: #ffffff;
    color: #343a46;
    font: inherit;
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
}

.hzp-field--price .hzp-period__opt.is-selected {
    border-color: var(--hagzi-primary, #0745D9);
    background: var(--hagzi-primary, #0745D9);
    color: #ffffff;
}

.hzp-field--price .hzp-period__note:not([hidden]) {
    display: block;
    margin: 0 0 8px;
    color: #3c414c;
    font-size: 13px;
    line-height: 1.4;
}

/* Wide bar: one small row, so the price box is not three rows taller than its neighbours. */
@media (min-width: 960px) {
    .hzp-field--price:has(.hzp-period) {
        min-width: max-content;
    }

    .hzp-field--price .hzp-period {
        flex-wrap: nowrap;
        gap: 4px;
        margin: 0 0 4px;
    }

    .hzp-field--price .hzp-period__opt {
        min-height: 24px;
        padding: 0 8px;
        font-size: 12px;
        white-space: nowrap;
    }
}

/* A Clear with only location, bedrooms or price to clear exists where the sheet shows them. */
html:not(.hzp-js) .hzp-fb__reset[data-hzp-core-only] {
    display: none;
}

@media (min-width: 721px) {
    .hzp-fb__reset[data-hzp-core-only] {
        display: none;
    }
}

/* The Filters number counts what is behind the button: the panel on a wide bar, the whole sheet on a phone. */
.hzp-fb__count.hzp-fb__count--phone {
    display: none;
}

@media (max-width: 720px) {
    html.hzp-js .hzp-fb__count.hzp-fb__count--wide {
        display: none;
    }

    html.hzp-js .hzp-fb__count.hzp-fb__count--phone {
        display: inline-grid;
    }
}

@media (max-width: 720px) {
    .hzp-serp .hzp-filterbar {
        position: relative;
        top: auto;
    }

    html.hzp-js .hzp-serp .hzp-pin:not([hidden]) {
        position: fixed;
        top: 0;
        inset-inline: 0;
        z-index: 60;
        display: flex;
        align-items: center;
        gap: 8px;
        box-sizing: border-box;
        height: 56px;
        padding: 8px 12px;
        border-bottom: 1px solid #e5e8ee;
        background: #ffffff;
        box-shadow: 0 6px 18px -14px rgba(18, 20, 26, 0.4);
    }

    .hzp-pin__search,
    .hzp-pin__filters {
        appearance: none;
        display: inline-flex;
        align-items: center;
        gap: 8px;
        height: 40px;
        margin: 0;
        border: 1px solid #e4e7ee;
        border-radius: 12px;
        background: #ffffff;
        color: var(--hzp-ink, #12141a);
        font: inherit;
        font-size: 14px;
        font-weight: 500;
        cursor: pointer;
    }

    .hzp-pin__search {
        flex: 1 1 auto;
        min-width: 0;
        padding: 0 12px;
        text-align: start;
    }

    .hzp-pin__search span {
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .hzp-pin__filters {
        flex: none;
        padding: 0 12px;
    }

    .hzp-pin svg {
        flex: none;
        width: 18px;
        height: 18px;
        fill: none;
        stroke: currentColor;
        stroke-width: 1.8;
        stroke-linecap: round;
        stroke-linejoin: round;
    }

    .hzp-pin__filters svg {
        color: var(--hagzi-primary, #0745D9);
    }

    .hzp-pin__count {
        box-sizing: border-box;
        min-width: 20px;
        height: 20px;
        padding: 0 6px;
        border-radius: 999px;
        background: var(--hagzi-primary, #0745D9);
        color: #ffffff;
        font-size: 12px;
        font-weight: 600;
        line-height: 20px;
        text-align: center;
    }

    html.hzp-js .hzp-serp .hzp-fb__core {
        display: grid;
        gap: 18px;
        margin-bottom: 18px;
        padding-bottom: 18px;
        border-bottom: 1px solid #e5e8ee;
    }

    .hzp-core__search {
        box-sizing: border-box;
        width: 100%;
        height: 44px;
        padding-inline: 14px;
        border: 1px solid #d7dce5;
        border-radius: 10px;
        background: #ffffff;
        font: inherit;
        font-size: 16px;
    }

    .hzp-core__options {
        display: flex;
        flex-wrap: wrap;
        gap: 8px;
    }

    .hzp-core__opt,
    .hzp-period__opt {
        appearance: none;
        min-height: 40px;
        margin: 0;
        padding: 0 16px;
        border: 1px solid #d7dce5;
        border-radius: 999px;
        background: #ffffff;
        color: #343a46;
        font: inherit;
        font-size: 14px;
        font-weight: 600;
        cursor: pointer;
    }

    .hzp-core__opt.is-selected,
    .hzp-period__opt.is-selected {
        border-color: var(--hagzi-primary, #0745D9);
        background: var(--hagzi-primary, #0745D9);
        color: #ffffff;
    }

    .hzp-core__more {
        appearance: none;
        justify-self: start;
        margin: 0;
        padding: 6px 0;
        border: 0;
        background: none;
        color: var(--hagzi-primary, #0745D9);
        font: inherit;
        font-size: 14px;
        font-weight: 650;
        text-decoration: underline;
        text-align: start;
        cursor: pointer;
    }

    .hzp-core__none {
        margin: 0;
        color: var(--hzp-body, #3c414c);
        font-size: 14px;
    }

    html.hzp-js .hzp-serp .hzp-period {
        display: inline-flex;
        gap: 8px;
        margin-bottom: 12px;
    }

    html.hzp-js .hzp-serp .hzp-period__note:not([hidden]) {
        display: block;
        margin: 10px 0 0;
        color: var(--hzp-body, #3c414c);
        font-size: 13px;
        line-height: 1.4;
    }

    html.hzp-js .hzp-mf__apply.is-nocount .hzp-fb__shownum {
        display: none;
    }

    html.hzp-js .hzp-mf__apply.is-nocount .hzp-fb__showplain {
        display: inline;
    }

    .hzp-pin__search:focus-visible,
    .hzp-pin__filters:focus-visible,
    .hzp-core__opt:focus-visible,
    .hzp-core__more:focus-visible,
    .hzp-period__opt:focus-visible {
        outline: 2px solid var(--hagzi-primary, #0745D9);
        outline-offset: 2px;
    }
}

/*
 * Home services menu item: not in the header row at any width. The nav column
 * tops out at about 546px on every desktop, and seven English labels with 30px
 * gaps need ~677px, so every desktop visitor got two rows. The item stays in
 * the phone menu sheet, the footer and the homepage card, and Tools & services
 * leads to it; the remaining six fit one row at a 24px gap.
 */
.hz-header .hz-nav__link--wide-only {
    display: none;
}

/* =============================================================================
   Smart search: "we searched for" chips (SearchInterpretation), every width.
   Server-rendered links; removing one needs no script.
   ============================================================================= */
.hzp-intent {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px 10px;
    margin: 12px 0 4px;
}

.hzp-intent__heading {
    color: #5b6270;
    font-size: 13px;
    font-weight: 600;
}

.hzp-intent__list {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.hzp-intent__chip {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    min-height: 34px;
    max-width: min(86vw, 360px);
    padding: 6px 10px 6px 12px;
    border: 1px solid #c9d6ea;
    border-radius: 999px;
    background: #eef4fc;
    color: #1f3a5f;
    font-size: 13px;
    font-weight: 600;
    line-height: 1.25;
    text-decoration: none;
}

[dir="rtl"] .hzp-intent__chip {
    padding: 6px 12px 6px 10px;
}

.hzp-intent__chip span {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.hzp-intent__chip svg {
    flex: none;
    width: 15px;
    height: 15px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.hzp-intent__chip:hover {
    border-color: #8fb0dc;
}

.hzp-intent__chip:focus-visible {
    outline: 2px solid #1f5fbf;
    outline-offset: 2px;
}

/* Currency selector (resources/currency/views/selector.blade.php). Phones use the menu-sheet copy. */
.hz-ccy:not([hidden]) { display: inline-flex; }

@media (max-width: 720px) {
    .hz-header .hz-actions > .hz-ccy:not(.hz-ccy--menu) { display: none !important; }
}

/* themes/property/property-add-listing-free.css */
/*
 * Free pill on the Add listing button, and the signed-out line on /add-listing.
 *
 * Linked from the property theme's head include (footer/styles.blade.php),
 * which runs after @stack('styles'). A @push from the header cannot land:
 * the header renders in the body, after that stack has already been emitted,
 * and a <style> inside #app is stripped when Vue mounts. This file is outside
 * both.
 *
 * The pill is inside the existing button. It does not change the button's
 * height: line-height stays under the label's line, vertical padding is 0,
 * and the button already refuses to wrap. Logical margin so Arabic mirrors.
 *
 * Contrast: #0745D9 on #ffffff is about 7.4:1. On the phone menu the same
 * blue sits on #E8F0FF (still above 4.5:1). The signed-out line is #12141a
 * on the form's light background.
 */

.hz-cta__free {
    display: inline-block;
    flex: 0 0 auto;
    margin-inline-start: 6px;
    padding: 0 5px;
    border-radius: 999px;
    background: #ffffff;
    color: #0745D9;
    font-size: 10px;
    font-weight: 700;
    line-height: 14px;
    letter-spacing: 0;
    vertical-align: middle;
    white-space: nowrap;
}

.hz-mobile-menu__links .hz-cta__free {
    background: #E8F0FF;
    color: #0745D9;
}

.hz-add-free-note {
    margin: 8px 0 0;
    max-width: 62ch;
    color: #12141a;
    font-size: 14px;
    font-weight: 700;
    line-height: 1.5;
    text-align: start;
}

@media (max-width: 720px) {
    /*
     * The handset row is brand, language, this button, and the menu.
     * The pill is about 36px. Taking that out of the button's own side
     * padding keeps the menu control inside the row. Height is untouched:
     * padding-inline only, and the pill's line is shorter than the label.
     */
    .hz-header .hz-cta:has(.hz-cta__free) {
        padding-inline: 12px;
    }

    .hz-header .hz-cta__free {
        margin-inline-start: 4px;
        padding: 0 4px;
    }
}

.hz-mobile-menu__links a:has(.hz-cta__free) {
    flex-wrap: nowrap;
    white-space: nowrap;
}

/* themes/property/property-favorites.css */
/*
 * ==========================================================================
 * PROPERTY FAVOURITES
 * ==========================================================================
 *
 * The hearts were <span aria-disabled> until now, so property-pages.css styles
 * .hzp-fav as inert text. They are <button> elements now, which arrive with a
 * user-agent border, background and font of their own, so the first block here
 * takes those off and leaves the existing .hzp-fav geometry -- the 32px circle
 * and the 21px stroked glyph -- untouched and still the only thing deciding how
 * the heart is laid out.
 *
 * A fifth file rather than rules added to property-pages.css or property.css:
 * both were open in other sessions while this was written. Loaded after them,
 * so their --hzp-* tokens are in scope here.
 *
 * Every selector below names either a <button>.hzp-fav, the .hzp-fav--on
 * modifier, or a .hzfav-* class, none of which existed before this file. A page
 * that has no heart on it renders exactly as it did.
 */

/* ------------------------------------------------------------- the contract */

/*
 * --hzfav-saved is the colour of a saved favourite on this channel. It is
 * declared on :root so it is in scope for every element on every property
 * page: this file is linked from components/layouts/footer/styles.blade.php,
 * which the shop layout includes in <head> unconditionally.
 *
 * The shared name is the point of it. The "Save this search" control on the
 * search page reads the same variable from property-pages.css, so the two
 * saved states on this channel are one declaration and cannot drift apart.
 * That file carries #e11d48 as its var() fallback and this declares the same
 * value, so the two agree whether or not this declaration is reached.
 *
 * WHY THIS RED
 *
 * A filled red heart is the convention for "saved", and the convention's red
 * is a crimson rather than a signal red. #e11d48 sits at hue 347deg -- pinker,
 * and eleven degrees off the #d92228 at hue 358deg that this project already
 * spends on the demo notices on the project pages. Keeping those two apart
 * matters more than reusing a value: #d92228 is this project's warning red,
 * and a heart drawn in the warning red says "problem" where it means "kept".
 *
 * Contrast, measured rather than assumed. #e11d48 is 4.70:1 against white,
 * which is what sits behind every heart on this channel -- the card body, the
 * 94%-white disc on the home page cards and the favourites tiles, and the
 * solid white circle on the gallery. That clears the 3:1 WCAG 1.4.11 asks of
 * a non-text graphic, and clears 4.5:1 too, which is the threshold that
 * would apply if it were ever put on running text.
 *
 * --hzfav-saved-strong is the hover, at 6.28:1. --hzfav-saved-wash is the
 * hover backing on the search card, standing in for the purple wash the
 * unsaved heart uses. Both are local to this file; the contract is one name.
 *
 * Colour is not the carrier of the state and is not being asked to be: the
 * glyph goes from outline to filled, and the accessible name changes with it.
 */
:root {
    --hzfav-saved: #f40051;
    --hzfav-saved-strong: #d60047;
    --hzfav-saved-wash: #fff0f5;
}

/* --------------------------------------------------------------- the control */

button.hzp-fav {
    padding: 0;
    border: 0;
    background: none;
    font: inherit;
    cursor: pointer;
    -webkit-appearance: none;
    appearance: none;
}

button.hzp-fav:hover {
    color: var(--hzp-accent, #0745D9);
    background: var(--hzp-accent-wash, #EEF3FF);
}

button.hzp-fav:focus-visible {
    outline: 2px solid var(--hzp-accent, #0745D9);
    outline-offset: 2px;
}

/*
 * The saved state, and the first thing that distinguishes it: the glyph fills.
 *
 * Colour alone would carry it for most readers but not for all, so the fill is
 * the signal and the colour follows it. One class and one red across this
 * channel rather than one per component -- this reaches the search card's
 * .hzp-fav, the gallery's .hzpg__tool, the home card's .hz-lcard__fav and the
 * detail bar's .hzd-bar__act, because the script sets .hzp-fav--on on every
 * [data-hzfav] whatever its own class is.
 *
 * It was the brand purple until now, which is the colour this channel uses for
 * "active" everywhere else. A heart is the one control where that reading is
 * wrong: a filled purple heart is a house style, a filled red one is
 * understood without being learned.
 *
 * (0,1,1), which is not enough on its own for four different surfaces with
 * hover and neutral rules of their own. The section at the foot of this file
 * corrects each of them and says why.
 */
button.hzp-fav--on {
    color: var(--hzfav-saved, #e11d48);
}

button.hzp-fav--on svg {
    fill: currentColor;
}

/*
 * The listing page's heart is a .hzpg__tool, which property-pages.css already
 * styles as a bordered 36px circle and already has a <button> form, because the
 * Share control beside it was one. So it needs no reset -- only the same
 * "saved" modifier the card hearts take, which is one class name across both so
 * the script has one thing to toggle. The two rules above it that name
 * button.hzp-fav do not reach here; these carry the fill and the border.
 *
 * The border takes the red as well as the glyph. This is a 36px circular icon
 * button sitting on a photograph, and a red ring around a filled red heart
 * reads as one saved control; a red glyph inside a purple ring would read as
 * two states disagreeing. It is not the "bordered and red all over" shape that
 * means destructive, because that shape needs a text label, and this has none.
 *
 * The white background and the neutral 1px border are property-pages.css's and
 * stay as they are when unsaved -- they are what makes any glyph legible over
 * a photograph.
 */
button.hzpg__tool[data-hzfav] svg {
    transition: fill 120ms ease;
}

.hzp-detail button.hzpg__tool.hzp-fav--on {
    border-color: var(--hzfav-saved, #e11d48);
    color: var(--hzfav-saved, #e11d48);
}

/*
 * .hzp-detail button.hzpg__tool:hover in property-pages.css is (0,3,1), the
 * same as the rule above, and would win or lose on file order alone. Written
 * out at (0,4,1) so a saved heart deepens under the pointer instead of
 * flickering back to the unsaved purple if that file is ever reordered.
 */
.hzp-detail button.hzpg__tool.hzp-fav--on:hover {
    border-color: var(--hzfav-saved-strong, #be123c);
    color: var(--hzfav-saved-strong, #be123c);
}

.hzp-detail button.hzpg__tool.hzp-fav--on svg {
    fill: currentColor;
}

@media (prefers-reduced-motion: reduce) {
    button.hzpg__tool[data-hzfav] svg {
        transition: none;
    }
}

/* ------------------------------------------------------- the favourites grid */

/*
 * /account/favorites is a shortlist, and a shortlist is read across rather than
 * down: the reader already knows what each of these is and wants them all in
 * view at once to compare. So a favourite is a compact tile here -- photograph,
 * title, price -- rather than the full search card, which spends most of its
 * height on a description and a set of actions that the reader has already had.
 *
 * The geometry is the car channel's, measured off its own Favorites page rather
 * than guessed: an auto-filled 220px minimum track with a 14px gutter, dropping
 * to a 150px minimum below 768px, which is what keeps it two-up on a phone
 * instead of collapsing to a single column. The palette and the type are not
 * shared -- see .hzfav-tile__price and .hzfav-tile__title below.
 */
.hzfav-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: 14px;
    margin: 0;
    padding: 0;
    list-style: none;
}

@media (max-width: 767.98px) {
    .hzfav-grid {
        grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
    }
}

/*
 * position: relative because the remove control is positioned against it, and
 * overflow: hidden so the photograph takes the tile's corner radius without
 * needing one of its own. The radius is this channel's --hzac-radius, not the
 * car channel's 8px.
 */
.hzfav-tile {
    position: relative;
    display: grid;
    align-content: start;
    overflow: hidden;
    border: 1px solid var(--hzac-line, #e7e9ee);
    border-radius: var(--hzac-radius, 10px);
    background: #ffffff;
    transition: border-color 140ms ease;
}

.hzfav-tile:hover {
    border-color: var(--hzac-line-strong, #d6dae1);
}

/*
 * The whole tile is the link. `.acct a` already sets colour and decoration to
 * inherit at a specificity this cannot reach, and inheriting is what is wanted,
 * so only the layout is set here.
 */
.hzfav-tile__link {
    display: grid;
    align-content: start;
    min-width: 0;
}

/*
 * A fixed band rather than an aspect ratio, which is what the car channel does
 * and is the right call for a grid whose track width changes: every tile in a
 * row lines up on the same two horizontals however wide the column happens to
 * be, and object-fit absorbs the difference in the photographs.
 */
.hzfav-tile__media {
    display: block;
    width: 100%;
    height: 132px;
    background: var(--hzac-fill, #f4f5f7);
    object-fit: cover;
}

.hzfav-tile__body {
    display: grid;
    gap: 3px;
    min-width: 0;
    padding: 12px 13px;
}

/*
 * One line, then an ellipsis. A shortlist is scanned, and a title that wraps to
 * three lines on one tile and one on the next destroys the horizontal rhythm
 * that makes it scannable. The full title is a click away and is also the
 * accessible name of the remove button beside it.
 */
.hzfav-tile__title {
    overflow: hidden;
    color: var(--hzac-ink, #12141a);
    font-size: 13.5px;
    font-weight: 600;
    line-height: 1.45;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/*
 * This channel's purple, and this channel's price idiom: the figure carries the
 * weight and the currency and the rent period follow it a size down, which is
 * how a price is set on a property card and on a listing page here.
 */
.hzfav-tile__price {
    color: var(--hzac-primary, #0745D9);
    font-size: 13.5px;
    font-weight: 700;
    line-height: 1.45;
    white-space: nowrap;
}

.hzfav-tile__price small {
    margin-inline-start: 4px;
    font-size: 12px;
    font-weight: 600;
}

/* ------------------------------------------------------ removing from here */

/*
 * The car channel's tiles have no remove control at all -- no button, no glyph,
 * nothing on hover; the tile is one anchor and the only way to unsave is to go
 * back to the car itself. Copying that would take away something this page
 * already does, so it is not copied.
 *
 * Instead the heart is kept, filled and in the saved red because everything on
 * this page is saved by definition, and held at zero opacity so
 * that a tile at rest is the car tile exactly. It appears on hover, on
 * focus-within -- which is what puts it in reach of a keyboard, since tabbing
 * to it is what reveals it -- and unconditionally wherever hover is not a thing
 * the pointer can do.
 */
.hzfav-tile__remove {
    position: absolute;
    top: 8px;
    inset-inline-end: 8px;
    display: grid;
    place-items: center;
    width: 30px;
    height: 30px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.94);
    box-shadow: 0 1px 3px rgba(18, 20, 26, 0.24);
    /* Server-rendered red rather than waiting for the script: every tile on
       this page is a saved favourite before any JavaScript runs. The
       94%-white disc and the shadow above it are what keep it legible over
       the photograph and are unchanged. */
    color: var(--hzfav-saved, #e11d48);
    font: inherit;
    opacity: 0;
    cursor: pointer;
    transition: opacity 140ms ease, background-color 140ms ease;
    -webkit-appearance: none;
    appearance: none;
}

.hzfav-tile__remove svg {
    width: 17px;
    height: 17px;
    fill: currentColor;
    stroke: currentColor;
    stroke-width: 1.4;
    stroke-linejoin: round;
}

.hzfav-tile:hover .hzfav-tile__remove,
.hzfav-tile:focus-within .hzfav-tile__remove {
    opacity: 1;
}

.hzfav-tile__remove:hover {
    background: #ffffff;
    color: var(--hzfav-saved-strong, #be123c);
}

.hzfav-tile__remove:focus-visible {
    opacity: 1;
    outline: 2px solid var(--hzac-primary, #0745D9);
    outline-offset: 2px;
}

@media (hover: none) {
    .hzfav-tile__remove {
        opacity: 1;
    }
}

@media (prefers-reduced-motion: reduce) {
    .hzfav-tile,
    .hzfav-tile__remove {
        transition: none;
    }
}

/* ------------------------------------------- a favourite that has gone away */

/*
 * Saved here, then unpublished on this channel. It keeps its place on the grid
 * rather than being dropped, because it is still in the customer's list and
 * only they get to decide to drop it -- and because a list that quietly shrinks
 * is the same lie as a stale cache. The tile says what happened in the space
 * the photograph would have taken, keeps the title it was saved under, and puts
 * a plain, always-visible Remove where the price would be. The dashed border is
 * the one thing that marks it out at a glance in a row of live tiles.
 */
.hzfav-tile--gone {
    border-style: dashed;
    border-color: var(--hzac-line-strong, #d6dae1);
}

.hzfav-tile__gone {
    display: grid;
    place-content: center;
    justify-items: center;
    gap: 6px;
    padding: 12px;
    background: var(--hzac-fill-soft, #fafbfc);
    color: var(--hzac-muted, #6b7280);
    text-align: center;
}

.hzfav-tile__gone svg {
    width: 20px;
    height: 20px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.6;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.hzfav-tile__gone-text {
    font-size: 12px;
    line-height: 1.4;
}

.hzfav-tile--gone .hzfav-tile__title {
    color: var(--hzac-muted, #6b7280);
}

.hzfav-tile__drop {
    justify-self: start;
    padding: 0;
    border: 0;
    background: none;
    color: var(--hzac-primary, #0745D9);
    font: inherit;
    font-size: 12.5px;
    font-weight: 600;
    text-align: start;
    text-decoration: underline;
    text-underline-offset: 3px;
    cursor: pointer;
    -webkit-appearance: none;
    appearance: none;
}

.hzfav-tile__drop:hover {
    color: var(--hzac-primary-dark, #0638B0);
}

.hzfav-tile__drop:focus-visible {
    outline: 2px solid var(--hzac-primary, #0745D9);
    outline-offset: 2px;
}

/* ------------------------------------------------ the home page's own heart */

/*
 * The home page's listing cards carry .hz-lcard__fav, which property.css styles
 * as an inert 29px disc -- it was a <span aria-disabled> with a title saying
 * saving was not available, which stopped being true once the rest of this
 * channel could save. It is a <button> now, so it needs the same three things
 * taken off it that .hzp-fav did, and the cursor put back the right way round;
 * property.css sets cursor: not-allowed at (0,1,0) and this reaches it at
 * (0,1,1). The disc, its shadow and the glyph inside it are left exactly as
 * property.css draws them.
 *
 * There is no saved-state colour rule here on purpose: button.hzp-fav--on
 * above already carries it, and it asks only for the modifier the script sets.
 * "On" is one class and one red across this channel rather than one per card.
 * The saved hover is a different matter and is at the foot of this file, since
 * button.hz-lcard__fav:hover below outranks that blanket rule.
 */
button.hz-lcard__fav {
    padding: 0;
    border: 0;
    font: inherit;
    cursor: pointer;
    transition: color 140ms ease, background-color 140ms ease;
    -webkit-appearance: none;
    appearance: none;
}

button.hz-lcard__fav:hover {
    background: #ffffff;
    color: var(--hagzi-primary, #0745D9);
}

button.hz-lcard__fav:focus-visible {
    outline: 2px solid var(--hagzi-primary, #0745D9);
    outline-offset: 2px;
}

@media (prefers-reduced-motion: reduce) {
    button.hz-lcard__fav {
        transition: none;
    }
}

/* ------------------------------------------ saved state, per control surface */

/*
 * button.hzp-fav--on near the top of this file sets the saved colour for every
 * heart on the channel at (0,1,1). What it cannot do alone is survive the
 * hover and neutral rules that sit on the individual controls -- two of them
 * in this file, one in a template another session owns. Each rule below names
 * the surface it corrects and why it is written at the specificity it is.
 *
 * Nothing here touches an unsaved heart: every selector carries .hzp-fav--on,
 * which only the script's saved state puts on the element.
 */

/*
 * Search results card.
 *
 * button.hzp-fav:hover at the top of this file paints the unsaved hover, a
 * purple glyph on the purple wash, and at (0,2,1) it outranks the saved-state
 * rule -- so a saved heart went purple the moment it was pointed at. It
 * deepens now instead, and the wash follows the glyph rather than contradicting
 * it.
 */
button.hzp-fav.hzp-fav--on:hover {
    background: var(--hzfav-saved-wash, #fff1f2);
    color: var(--hzfav-saved-strong, #be123c);
}

/*
 * Home page card rows.
 *
 * The same collision: button.hz-lcard__fav:hover above is (0,2,1) and was
 * repainting a saved heart in --hagzi-primary under the pointer. Only the
 * colour and the backing that hover already changed are set here; the 29px
 * 94%-white disc and its shadow belong to property.css and are what make the
 * glyph legible over a photograph, so they are left where they are.
 */
button.hz-lcard__fav.hzp-fav--on:hover {
    background: #ffffff;
    color: var(--hzfav-saved-strong, #be123c);
}

/*
 * Listing detail, the action bar under the gallery.
 *
 * OVERRIDE OF A DECLARATION THIS SESSION DOES NOT OWN.
 *
 * resources/themes/property/views/products/view.blade.php pushes an inline
 * <style> onto the styles stack containing
 *
 *     .hzd-bar__act.hzp-fav--on { color: var(--hagzi-primary, #0745D9); }
 *
 * at (0,2,0), with a matching svg fill rule. The stack is emitted at line 145
 * of the shop layout and this stylesheet is linked at line 154, so document
 * order alone settles it today -- but that template is open in another session
 * and a block moved earlier or later would silently take the colour back. The
 * element in this selector makes it (0,2,1) and independent of where theirs
 * lands. Their `fill: currentColor` is correct and is left to do its job.
 */
button.hzd-bar__act.hzp-fav--on {
    color: var(--hzfav-saved, #e11d48);
}

/* Their .hzd-bar__act:hover recolours to --hzp-ink. This keeps the red and
   leaves their tint background alone. */
button.hzd-bar__act.hzp-fav--on:hover {
    color: var(--hzfav-saved-strong, #be123c);
}

/*
 * The Remove link on a tile whose listing is no longer published.
 *
 * Held OFF the saved red deliberately. It is a 12.5px underlined text link
 * reading "Remove", not a heart, and it carries [data-hzfav] -- so the script
 * gives it .hzp-fav--on along with everything else, and the blanket rule would
 * have turned the one piece of running text in this file red. Red text beside
 * a dashed "no longer published" tile reads as an error about the tile rather
 * than as affection for it. It keeps the channel's link purple; the heart red
 * is for hearts.
 *
 * (0,2,1) to clear the blanket rule, plus a hover variant, because that
 * specificity would otherwise also swallow .hzfav-tile__drop:hover at (0,2,0).
 */
button.hzfav-tile__drop.hzp-fav--on {
    color: var(--hzac-primary, #0745D9);
}

button.hzfav-tile__drop.hzp-fav--on:hover {
    color: var(--hzac-primary-dark, #0638B0);
}

/* ----------------------------------------------- animated listing-card heart */

/*
 * Search, seller and homepage cards get the animated heart treatment. The
 * detail-page gallery/action controls and the Remove control on /favorites
 * deliberately retain their established geometry.
 */
button.hzp-fav.hzp-like,
button.hz-lcard__fav.hzp-like {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    min-width: 34px;
    height: 34px;
    padding: 0;
    overflow: visible;
    border: 1px solid #e0e3e9;
    border-radius: 999px;
    background: #ffffff;
    color: #171a21;
    box-shadow: 0 2px 7px rgba(16, 20, 28, 0.1);
    line-height: 1;
    transition:
        border-color 150ms ease,
        box-shadow 150ms ease,
        transform 150ms ease;
}

button.hzp-fav.hzp-like {
    position: relative;
}

button.hz-lcard__fav.hzp-like {
    width: 32px;
    min-width: 32px;
    height: 32px;
}

button.hzp-fav.hzp-like:hover,
button.hz-lcard__fav.hzp-like:hover,
button.hzp-fav.hzp-like.hzp-fav--on:hover,
button.hz-lcard__fav.hzp-like.hzp-fav--on:hover {
    border-color: #cfd4dd;
    background: #ffffff;
    color: #171a21;
    box-shadow: 0 4px 12px rgba(16, 20, 28, 0.14);
}

button.hzp-like:active {
    transform: translateY(1px);
}

.hzp-like__icon {
    position: relative;
    display: grid;
    flex: none;
    width: 22px;
    height: 22px;
    place-items: center;
    color: #4b5260;
    transform-origin: center;
}

button.hzp-like .hzp-like__icon svg {
    width: 22px;
    height: 22px;
    overflow: visible;
    fill: transparent;
    stroke: currentColor;
    stroke-width: 1.7;
    stroke-linecap: round;
    stroke-linejoin: round;
}

button.hzp-like .hzp-like__icon svg path {
    fill: transparent;
    transition:
        fill 150ms cubic-bezier(0.22, 1, 0.36, 1),
        stroke 150ms cubic-bezier(0.22, 1, 0.36, 1);
}

button.hzp-like:hover .hzp-like__icon {
    color: var(--hzfav-saved, #f40051);
}

button.hzp-like.hzp-fav--on {
    background: #ffffff;
    color: #171a21;
}

button.hzp-like.hzp-fav--on .hzp-like__icon,
button.hzp-like.hzp-fav--on:hover .hzp-like__icon,
button.hzp-like.hzp-savesearch--on .hzp-like__icon,
button.hzp-like.hzp-savesearch--on:hover .hzp-like__icon {
    color: var(--hzfav-saved, #f40051);
}

button.hzp-like.hzp-fav--on .hzp-like__icon svg path,
button.hzp-like.hzp-savesearch--on .hzp-like__icon svg path {
    fill: currentColor;
}

.hzp-like__particles {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 0;
    height: 0;
    color: var(--hzfav-saved, #f40051);
    pointer-events: none;
}

.hzp-like__particles i {
    position: absolute;
    top: -1.5px;
    left: -1.5px;
    width: 3px;
    height: 3px;
    border-radius: 50%;
    background: currentColor;
    opacity: 0;
}

button.hzp-like--burst .hzp-like__icon {
    animation: hzfav-like-pop 350ms cubic-bezier(0.34, 1.96, 0.64, 1);
}

button.hzp-like--burst .hzp-like__particles i {
    animation: hzfav-like-burst var(--hzfav-pdur, 600ms) ease-out var(--hzfav-pdelay, 0ms) forwards;
}

@keyframes hzfav-like-pop {
    0% { transform: scale(1); }
    30% { transform: scale(0.82); }
    100% { transform: scale(1); }
}

@keyframes hzfav-like-burst {
    0% {
        opacity: 0;
        transform: translate(0, 0) scale(0.4);
    }
    20% {
        opacity: 1;
        transform: translate(
            var(--hzfav-px-quarter),
            var(--hzfav-py-quarter)
        ) scale(var(--hzfav-psize, 1));
    }
    100% {
        opacity: 0;
        transform: translate(var(--hzfav-px), var(--hzfav-py)) scale(var(--hzfav-pend, 0.6));
    }
}

@media (max-width: 640px) {
    button.hzp-fav.hzp-like,
    button.hz-lcard__fav.hzp-like {
        width: 32px;
        min-width: 32px;
        height: 32px;
    }
}

@media (prefers-reduced-motion: reduce) {
    button.hzp-fav.hzp-like,
    button.hz-lcard__fav.hzp-like,
    button.hzp-like .hzp-like__icon svg path,
    button.hzp-like--burst .hzp-like__icon,
    button.hzp-like--burst .hzp-like__particles i {
        transition: none;
        animation: none;
    }
}

/* themes/property/property-compare.css */
/*
 * Hagzi compare: the toggle on cards and the listing page, the "Compare (n)"
 * link, and the /compare table. A stylesheet rather than <style> because the
 * shop app's remount drops <style> inside #app. Logical properties only, so
 * Arabic mirrors without an RTL block.
 */

/* ---------------------------------------------------------------- toggle */

button.hzcmp-toggle {
    position: relative;
    z-index: 2;
    display: inline-grid;
    flex: none;
    place-items: center;
    inline-size: 32px;
    block-size: 32px;
    padding: 0;
    border: 1px solid transparent;
    border-radius: 50%;
    background: none;
    color: var(--hzp-body, #3b4252);
    font: inherit;
    cursor: pointer;
    -webkit-appearance: none;
    appearance: none;
}

button.hzcmp-toggle svg {
    inline-size: 20px;
    block-size: 20px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.7;
    stroke-linecap: round;
}

button.hzcmp-toggle:hover {
    color: var(--hzp-accent, #0745D9);
    background: var(--hzp-accent-wash, #EEF3FF);
}

button.hzcmp-toggle:focus-visible {
    outline: 2px solid var(--hzp-accent, #0745D9);
    outline-offset: 2px;
}

button.hzcmp-toggle.hzcmp-toggle--on {
    color: #fff;
    background: var(--hzp-accent, #0745D9);
    border-color: var(--hzp-accent, #0745D9);
}

.hzp-detail .hzp-dprice__actions > button.hzcmp-toggle {
    inline-size: 36px;
    block-size: 36px;
    background: #fff;
    border-color: #e3e7ee;
}

.hzp-detail .hzp-dprice__actions > button.hzcmp-toggle.hzcmp-toggle--on {
    background: var(--hzp-accent, #0745D9);
    border-color: var(--hzp-accent, #0745D9);
}

/* Same size as the heart and share in the phone gallery header. */
button.hzcmp-toggle.hzp-mobile-gallery-header__button {
    inline-size: 40px;
    block-size: 40px;
}

button.hzcmp-toggle.hzp-mobile-gallery-header__button.hzcmp-toggle--on {
    color: #fff;
    background: var(--hzp-accent, #0745D9);
}

/* The sticky listing bar's button keeps that bar's own shape. */
button.hzcmp-toggle.hzd-bar__act {
    display: inline-flex;
    inline-size: auto;
    block-size: auto;
    border-radius: 999px;
}

button.hzcmp-toggle.hzd-bar__act.hzcmp-toggle--on {
    color: var(--hzp-accent, #0745D9);
    background: var(--hzp-accent-wash, #EEF3FF);
    border-color: transparent;
}

/* ------------------------------------------------------- bar and toast */

.hzcmp-bar,
.hzcmp-toast {
    position: fixed;
    inset-inline-end: 16px;
    inset-block-end: 20px;
    z-index: 60;
    border-radius: 999px;
    box-shadow: 0 6px 20px rgba(18, 20, 26, .18);
    font-size: 15px;
    font-weight: 600;
}

.hzcmp-bar {
    display: inline-flex;
    align-items: center;
    min-block-size: 44px;
    padding-inline: 18px;
    background: var(--hzp-accent, #0745D9);
    color: #fff;
    text-decoration: none;
}

.hzcmp-bar:hover,
.hzcmp-bar:focus-visible {
    background: #0537b0;
    color: #fff;
}

.hzcmp-bar[hidden],
.hzcmp-toast[hidden] {
    display: none;
}

.hzcmp-toast {
    inset-inline-start: 16px;
    inset-block-end: 76px;
    max-inline-size: 420px;
    margin-inline: auto;
    padding: 12px 18px;
    border-radius: 12px;
    background: #12141a;
    color: #fff;
    text-align: center;
}

/* Above the listing page's fixed Call / WhatsApp bar, never over it. */
@media (max-width: 767px) {
    html:has(.hzd-callbar) .hzcmp-bar {
        inset-block-end: 84px;
    }

    html:has(.hzd-callbar) .hzcmp-toast {
        inset-block-end: 140px;
    }
}

/* ------------------------------------------------------------- page */

.hzcmp {
    padding-block: 20px 48px;
}

.hzcmp__crumbs {
    display: flex;
    gap: 8px;
    margin-block-end: 12px;
    font-size: 14px;
    color: var(--hzp-muted, #5f6b7a);
}

.hzcmp__crumbs a {
    color: inherit;
}

.hzcmp__head {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px 20px;
    margin-block-end: 20px;
}

.hzcmp__title {
    margin: 0;
    font-size: 28px;
    line-height: 1.25;
    font-weight: 700;
    color: var(--hz-ink, #12141a);
}

.hzcmp__intro {
    margin: 6px 0 0;
    color: var(--hzp-muted, #5f6b7a);
}

.hzcmp__clear,
.hzcmp__remove,
.hzcmp__browse {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-block-size: 44px;
    padding-inline: 16px;
    border: 1px solid #c9cfdb;
    border-radius: 10px;
    background: #fff;
    color: var(--hz-ink, #12141a);
    font: inherit;
    font-weight: 600;
    text-decoration: none;
    cursor: pointer;
}

.hzcmp__clear {
    color: #b42318;
    border-color: #f1b8b3;
}

.hzcmp__clear[hidden] {
    display: none;
}

.hzcmp__scroll {
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    border: 1px solid #e3e7ee;
    border-radius: 14px;
    background: #fff;
}

.hzcmp__table {
    inline-size: max-content;
    min-inline-size: 100%;
    border-collapse: separate;
    border-spacing: 0;
}

.hzcmp__table th,
.hzcmp__table td {
    padding: 12px 16px;
    border-block-end: 1px solid #edf0f4;
    text-align: start;
    vertical-align: top;
}

.hzcmp__table tbody tr:last-child th,
.hzcmp__table tbody tr:last-child td {
    border-block-end: 0;
}

.hzcmp__rail {
    position: sticky;
    inset-inline-start: 0;
    z-index: 1;
    inline-size: 160px;
    min-inline-size: 160px;
    background: #f7f8fa;
    color: var(--hzp-muted, #5f6b7a);
    font-size: 14px;
    font-weight: 600;
}

.hzcmp__col,
.hzcmp__cell {
    inline-size: 240px;
    min-inline-size: 240px;
    max-inline-size: 280px;
}

.hzcmp__col {
    display: table-cell;
}

.hzcmp__img {
    display: block;
    inline-size: 100%;
    max-inline-size: 240px;
    aspect-ratio: 4 / 3;
    margin-block-end: 10px;
    border-radius: 10px;
    object-fit: cover;
    background: #eef1f5;
}

.hzcmp__name {
    display: block;
    margin-block-end: 10px;
    color: var(--hz-ink, #12141a);
    font-weight: 700;
    line-height: 1.35;
    text-decoration: none;
}

.hzcmp__name:hover {
    text-decoration: underline;
}

.hzcmp__remove {
    min-block-size: 36px;
    padding-inline: 12px;
    font-size: 14px;
}

.hzcmp__cell {
    color: var(--hz-ink, #12141a);
}

.hzcmp__status {
    margin: 14px 0 0;
    color: var(--hzp-muted, #5f6b7a);
}

.hzcmp__empty {
    padding: 32px 20px;
    border: 1px dashed #c9cfdb;
    border-radius: 14px;
    text-align: center;
}

.hzcmp__empty[hidden] {
    display: none;
}

.hzcmp__empty-title {
    margin: 0 0 6px;
    font-size: 18px;
    font-weight: 700;
}

.hzcmp__browse {
    margin-block-start: 12px;
    background: var(--hzp-accent, #0745D9);
    border-color: var(--hzp-accent, #0745D9);
    color: #fff;
}

/* Two listings visible on a phone; the rest a swipe away. */
@media (max-width: 767px) {
    .hzcmp__title {
        font-size: 22px;
    }

    .hzcmp__rail {
        inline-size: 104px;
        min-inline-size: 104px;
        padding-inline: 10px;
        font-size: 13px;
    }

    .hzcmp__col,
    .hzcmp__cell {
        inline-size: calc((100vw - 32px - 106px) / 2);
        min-inline-size: 132px;
        padding-inline: 10px;
    }
}

/* themes/property/property-mobile-navigation.css */
/* Property-only, floating phone navigation. Desktop retains its existing header. */
.hz-mobile-nav,
.hz-mobile-nav-space { display: none; }

@media (max-width: 767.98px) {
    .hz-mobile-nav-space { display: block; height: calc(92px + env(safe-area-inset-bottom, 0px)); }
    .hz-mobile-nav {
        position: fixed;
        z-index: 55;
        left: 50%;
        bottom: max(10px, env(safe-area-inset-bottom, 0px));
        transform: translateX(-50%);
        display: grid;
        grid-template-columns: repeat(5, minmax(0, 1fr));
        width: calc(100% - 24px);
        max-width: 540px;
        min-height: 70px;
        padding: 5px;
        box-sizing: border-box;
        border: 1px solid rgba(255, 255, 255, .95);
        border-radius: 38px;
        background: rgba(250, 251, 255, .96);
        box-shadow: 0 8px 32px rgba(25, 39, 66, .16), inset 0 1px 1px rgba(255, 255, 255, .9), 0 0 0 1px rgba(221, 227, 239, .5);
        color: #171a22;
        font-family: inherit;
    }
    @supports ((backdrop-filter: blur(20px)) or (-webkit-backdrop-filter: blur(20px))) {
        .hz-mobile-nav {
            background: linear-gradient(135deg, rgba(255, 255, 255, .78), rgba(242, 245, 255, .63));
            -webkit-backdrop-filter: blur(22px) saturate(160%);
            backdrop-filter: blur(22px) saturate(160%);
        }
    }
    .hz-mobile-nav__item {
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: 4px;
        min-width: 0;
        min-height: 58px;
        padding: 3px 1px;
        border-radius: 30px;
        color: inherit;
        text-decoration: none;
        -webkit-tap-highlight-color: transparent;
        transition: background-color .15s ease, color .15s ease;
    }
    .hz-mobile-nav__icon { display: grid; place-items: center; width: 29px; height: 29px; flex: 0 0 29px; }
    .hz-mobile-nav__icon svg { display: block; width: 25px; height: 25px; }
    .hz-mobile-nav__label { font-size: 10.5px; line-height: 1.3; font-weight: 600; white-space: nowrap; }
    .hz-mobile-nav__item--add .hz-mobile-nav__icon { border-radius: 50%; background: #0745d9; color: #fff; }
    .hz-mobile-nav__item--add svg { width: 20px; height: 20px; stroke-width: 2; }
    .hz-mobile-nav__item[aria-current="page"] { color: #0745d9; background: rgba(7, 69, 217, .09); box-shadow: inset 0 3px 0 #0745d9; }
    .hz-mobile-nav__item[aria-current="page"] .hz-mobile-nav__label { font-weight: 700; }
    .hz-mobile-nav__item--favorites[aria-current="page"] svg { fill: currentColor; }
    .hz-mobile-nav__item:active { background: rgba(7, 69, 217, .14); }
    .hz-mobile-nav__item:focus-visible { outline: 2px solid #0745d9; outline-offset: -2px; }

    /* An open search dropdown owns the screen: a tap on its last options must
       never land on a tab and leave the search (UX audit D-09). */
    body:has(.hz-chip[open]) .hz-mobile-nav { visibility: hidden; pointer-events: none; }

    /* Contact actions stay above the menu with a clear gap between tap targets. */
    body:has(.hz-mobile-nav) .hzpr-page--detail .hzpr-mobile-contact {
        bottom: calc(86px + env(safe-area-inset-bottom, 0px));
    }
    body:has(.hz-mobile-nav) .hzpr-page--detail .hzpr-mobile-contact {
        padding-bottom: 10px;
    }
    body:has(.hz-mobile-nav) .hzpr-mobile-toast[data-visible] {
        bottom: calc(168px + env(safe-area-inset-bottom, 0px));
    }

    /* Keep full-screen sheets and focused text entry free of navigation chrome. */
    body:has(dialog[open]) .hz-mobile-nav,
    body:has(input:focus:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="file"]), textarea:focus, [contenteditable="true"]:focus) .hz-mobile-nav {
        visibility: hidden;
        pointer-events: none;
    }
}

@media (max-width: 359.98px) {
    .hz-mobile-nav { width: calc(100% - 16px); padding: 4px; }
    .hz-mobile-nav__label { font-size: 9px; }
}
@media (prefers-reduced-motion: reduce) {
    .hz-mobile-nav__item { transition: none; }
}
@media (prefers-reduced-transparency: reduce) {
    .hz-mobile-nav { background: #f8faff; -webkit-backdrop-filter: none; backdrop-filter: none; }
}

/* themes/property/property-header-search.css */
/*
   Header search icon and panel (header_search switch, off by default).
   Loaded only while the switch is on; every selector is .hz-hsearch-dialog* or
   .hz-hsearch, which exist nowhere else. Logical properties throughout, so
   the Arabic (dir="rtl") document mirrors without a separate sheet.
*/

.hz-header .hz-hicon.hz-hsearch svg {
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
}

.hz-hsearch-dialog[hidden] {
    display: none !important;
}

.hz-hsearch-dialog {
    position: fixed;
    inset: 0;
    z-index: 1000;
}

.hz-hsearch-dialog__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(17, 17, 26, 0.45);
}

.hz-hsearch-dialog__panel {
    position: relative;
    box-sizing: border-box;
    width: min(680px, calc(100% - 32px));
    margin: 84px auto 0;
    padding: 16px;
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 18px 48px rgba(17, 17, 26, 0.22);
}

.hz-hsearch-dialog__form {
    display: flex;
    align-items: center;
    gap: 8px;
}

.hz-hsearch-dialog__input {
    flex: 1 1 auto;
    min-width: 0;
    min-height: 48px;
    padding: 0 14px;
    border: 1px solid #d6d3e0;
    border-radius: 10px;
    font: inherit;
    font-size: 16px;
    color: inherit;
    background: #fff;
}

.hz-hsearch-dialog__input:focus-visible {
    outline: 2px solid var(--hagzi-primary, #5b2bd9);
    outline-offset: 1px;
}

.hz-hsearch-dialog__submit {
    min-height: 48px;
    padding: 0 18px;
    border: 0;
    border-radius: 10px;
    font: inherit;
    font-weight: 600;
    color: #fff;
    background: var(--hagzi-primary, #5b2bd9);
    cursor: pointer;
}

.hz-hsearch-dialog__close {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    border: 0;
    border-radius: 10px;
    background: transparent;
    color: inherit;
    cursor: pointer;
}

.hz-hsearch-dialog__close svg {
    width: 22px;
    height: 22px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
}

.hz-hsearch-dialog__submit:focus-visible,
.hz-hsearch-dialog__close:focus-visible {
    outline: 2px solid var(--hagzi-primary, #5b2bd9);
    outline-offset: 2px;
}

.hz-hsearch-dialog__list {
    max-height: min(60vh, 420px);
    margin: 10px 0 0;
    padding: 0;
    overflow-y: auto;
    list-style: none;
}

.hz-hsearch-dialog__option {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
    padding: 11px 12px;
    border-radius: 8px;
    cursor: pointer;
    text-align: start;
}

.hz-hsearch-dialog__option--active {
    background: #f1edfb;
}

.hz-hsearch-dialog__option--keyword .hz-hsearch-dialog__option-label {
    font-weight: 600;
}

.hz-hsearch-dialog__option-meta {
    flex: none;
    font-size: 13px;
    color: #6b6880;
}

.hz-hsearch-dialog__hint {
    margin: 10px 0 0;
    font-size: 13px;
    color: #6b6880;
}

html.hz-hsearch-dialog-open,
html.hz-hsearch-dialog-open body {
    overflow: hidden;
}

@media (max-width: 720px) {
    /* The phone top row hides .hz-hicon; the search icon stays in it. */
    .hz-header .hz-hicon.hz-hsearch {
        display: inline-flex !important;
        align-items: center;
        justify-content: center;
        min-width: 44px;
        min-height: 44px;
    }
}

@media (max-width: 720px) {
    .hz-hsearch-dialog__backdrop {
        display: none;
    }

    .hz-hsearch-dialog__panel {
        width: 100%;
        height: 100%;
        margin: 0;
        border-radius: 0;
        padding: 12px 12px calc(12px + env(safe-area-inset-bottom));
        overflow-y: auto;
    }

    .hz-hsearch-dialog__list {
        max-height: none;
    }

    .hz-hsearch-dialog__submit {
        padding: 0 14px;
    }
}

/* inline */

            
        
/* themes/property/hagzi-mobile-navigation.css */
/* Hagzi mobile navigation (Bayut comparison, 26 Oct 2026).
   Every rule is scoped to the html class its switch sets (hz-mn-<feature>),
   Configure › Hagzi › Mobile navigation. Transforms and opacity only, so
   nothing here can shift layout. */

/* ------------------------------------------------------------ tap_feedback */

.hz-mn-progress {
    position: fixed;
    inset-inline: 0;
    top: 0;
    z-index: 2147483000;
    height: 3px;
    background: var(--hagzi-primary, #0745D9);
    opacity: 0;
    pointer-events: none;
    transform: scaleX(0);
    transform-origin: left center;
}

[dir="rtl"] .hz-mn-progress {
    transform-origin: right center;
}

.hz-mn-progress.is-on {
    opacity: 1;
    transform: scaleX(.86);
    transition: transform 2.4s cubic-bezier(.08, .7, .2, 1), opacity 80ms linear;
}

@media (hover: none) {
    html.hz-mn-tap_feedback a,
    html.hz-mn-tap_feedback button,
    html.hz-mn-tap_feedback summary,
    html.hz-mn-tap_feedback [role="button"] {
        -webkit-tap-highlight-color: rgba(7, 69, 217, .12);
    }

    html.hz-mn-tap_feedback .hzp-serp .hzp-card:active {
        transform: scale(.985);
        transition: transform 90ms ease-out;
    }

    html.hz-mn-tap_feedback .hzp-btn:active,
    html.hz-mn-tap_feedback .hzp-fb__show:active,
    html.hz-mn-tap_feedback .hzp-mf__apply:active,
    html.hz-mn-tap_feedback .hzp-core__opt:active,
    html.hz-mn-tap_feedback .hzp-serp-pagination__button:active,
    html.hz-mn-tap_feedback .hzp-chip-link:active,
    html.hz-mn-tap_feedback .hzp-fb__toggle:active,
    html.hz-mn-tap_feedback .hzd-callbar a:active {
        opacity: .72;
        transform: scale(.97);
        transition: transform 80ms ease-out, opacity 80ms ease-out;
    }
}

/* 44 x 44 touch areas with the same drawn size: the photo arrows become a
   transparent 44px button around their 24px disc, the card heart gets an
   invisible ring. */
@media (max-width: 720px) {
    html.hz-mn-tap_feedback.hzp-js .hzp-serp .hzp-card__gallery-nav {
        width: 44px;
        height: 44px;
        border: 0;
        background: radial-gradient(circle, rgba(255, 255, 255, .72) 0 11.5px, rgba(255, 255, 255, .5) 12px, transparent 12.5px);
        box-shadow: none;
    }

    html.hz-mn-tap_feedback .hzp-card__gallery-nav--prev {
        inset-inline-start: 2px;
    }

    html.hz-mn-tap_feedback .hzp-card__gallery-nav--next {
        inset-inline-end: 2px;
    }

    html.hz-mn-tap_feedback .hzp-card__gallery-nav svg {
        filter: drop-shadow(0 1px 2px rgba(16, 20, 28, .18));
    }

    html.hz-mn-tap_feedback .hzp-serp .hzp-card .hzp-fav::before {
        position: absolute;
        inset: -6px;
        content: '';
    }
}

/* ------------------------------------------------------------ filter_sheet */

@media (max-width: 720px) and (prefers-reduced-motion: no-preference) {
    html.hz-mn-filter_sheet.hzp-js .hzp-serp .hzp-mf.is-open .hzp-mf__body,
    html.hz-mn-filter_sheet.hzp-js .hzp-serp .hzp-fb__more[open] .hzp-fb__panel {
        animation: hz-mn-sheet-in 220ms cubic-bezier(.2, .8, .2, 1) both;
    }

    html.hz-mn-filter_sheet.hzp-js .hzp-serp .hzp-mf.is-open .hzp-mf__backdrop,
    html.hz-mn-filter_sheet.hzp-js .hzp-serp .hzp-fb__more[open] > .hzp-fb__backdrop {
        animation: hz-mn-fade-in 180ms ease-out both;
    }
}

@keyframes hz-mn-sheet-in {
    from { transform: translateY(24px); opacity: .4; }
    to { transform: none; opacity: 1; }
}

@keyframes hz-mn-fade-in {
    from { opacity: 0; }
    to { opacity: 1; }
}

/* --------------------------------------------------------------- image_cls */

/* Photographs already carry width and height (zero layout shift, 26 Oct
   2026); while one loads its box shows a fill rather than a blank. */
html.hz-mn-image_cls .hzp-card__photo,
html.hz-mn-image_cls .hzpg__img,
html.hz-mn-image_cls .hzpg__previewimg,
html.hz-mn-image_cls .hzp-mini__img {
    background-color: var(--hzp-fill, #eef1f5);
}

/* ----------------------------------------------------------- gallery_swipe */

/* Horizontal drags on a results card photograph belong to the card gallery;
   vertical ones still scroll the page. */
html.hz-mn-gallery_swipe.hzp-js .hzp-serp .hzp-card__gallery[data-hzp-card-gallery] {
    touch-action: pan-y pinch-zoom;
}

