:root{
  --ink:#20201e;
  --muted:#77756e;
  --cream:#f3f1eb;
  --paper:#faf9f6;
  --line:rgba(32,32,30,.14);
  --white:#fff;
  --radius:22px;
  --serif:"Playfair Display",serif;
  --sans:"Sono",monospace,sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;overscroll-behavior-y:none}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:14px;line-height:1.55}

/* Brand & Logo Typography */
.logo, 
.brand-kairox, 
[class*="kairox"],
h1.brand {
  font-family: 'Playfair Display', serif;
  font-weight: 700;
  letter-spacing: 0.05em;
}

/* Custom Scrollbar Styling */
::-webkit-scrollbar {
  width: 8px;
  height: 8px;
}

::-webkit-scrollbar-track {
  background: #f5f5f5;
}

::-webkit-scrollbar-thumb {
  background: #faf9f9;
  border-radius: 4px;
}

::-webkit-scrollbar-thumb:hover {
  background: #0e0e0e;
}

/* Firefox Support */
* {
  scrollbar-width: thick;
  scrollbar-color: #050505 #ffffff;
}


/* About section feature list. */
.features-container{display:flex;flex-direction:column;gap:10px}
.feature-item{min-width:0}

body.modal-open{overflow:hidden}
a{text-decoration:none;color:inherit}
button,input,select{font:inherit}
button{cursor:pointer}
:where(a,button,input,select,textarea,[tabindex]):focus-visible{outline:2px solid currentColor;outline-offset:3px}
img{display:block;width:100%;height:100%;object-fit:cover}
.progress{position:fixed;z-index:1000;top:0;left:0;height:3px;background:#fff;width:0;mix-blend-mode:difference}
.site-header{position:absolute;z-index:20;top:0;left:0;right:0;height:76px;display:flex;align-items:center;justify-content:space-between;padding:0 5.2%;color:#fff}
.logo{font:800 23px/1 var(--serif);letter-spacing:-1.5px}
.logo span{font-weight:400}
.desktop-nav{display:flex;gap:28px;padding:10px 22px;border:1px solid rgba(255,255,255,.24);border-radius:999px;background:rgba(0,0,0,.12);backdrop-filter:blur(14px)}
.desktop-nav a{font-size:11px;color:rgba(255,255,255,.82);transition:.25s}
.desktop-nav a:hover{color:#fff}
.header-actions{display:flex;align-items:center;gap:22px}
.phone{font-size:11px;color:rgba(255,255,255,.82)}
.pill-button{border:0;border-radius:999px;padding:13px 18px;display:inline-flex;align-items:center;justify-content:center;gap:18px;transition:.25s}
.pill-button span{font-size:15px}
.pill-button.light{background:#f5f4f0;color:#222}
.pill-button.dark{background:#252522;color:#fff}
@media (hover:hover) and (pointer:fine){.pill-button:not(.btn-3):not(.btn-5):hover{transform:translateY(-2px)}}
.menu-toggle{display:none;background:none;border:0;padding:8px;min-width:44px;min-height:44px}
.menu-toggle span{display:block;width:25px;height:1px;background:#fff;margin:6px}
.mobile-menu{display:none}

.hero{height:690px;min-height:650px;position:relative;overflow:hidden;border-radius:0 0 28px 28px;background:#111;color:#fff}
.hero-media{position:absolute;inset:-2.5%;overflow:hidden;background:#101312;will-change:transform}
.hero-slide{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;opacity:0;transform:scale(1.04);transition:opacity 1.15s cubic-bezier(.22,.61,.36,1);will-change:opacity,transform}
.hero-slide.is-active{opacity:1;animation:heroSlideZoom 7s cubic-bezier(.45,0,.55,1) both}
@keyframes heroSlideZoom{0%{transform:scale(1.055)}50%{transform:scale(1)}100%{transform:scale(1.055)}}
.hero-overlay{position:absolute;z-index:1;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.74) 0%,rgba(0,0,0,.28) 48%,rgba(0,0,0,.48) 100%),linear-gradient(0deg,rgba(0,0,0,.62),transparent 55%)}
.hero-word{position:absolute;z-index:2;left:3.5%;top:75px;font:800 clamp(140px,22vw,340px)/.8 var(--serif);letter-spacing:-.075em;color:#fff;opacity:.78;white-space:nowrap;pointer-events:none;user-select:none;-webkit-mask-image:linear-gradient(90deg,transparent 0%,transparent 27%,rgba(0,0,0,.55) 39%,#000 55%);mask-image:linear-gradient(90deg,transparent 0%,transparent 27%,rgba(0,0,0,.55) 39%,#000 55%)}
.hero-content{position:absolute;z-index:4;left:5.2%;bottom:125px;max-width:520px}
.eyebrow,.section-kicker{font-size:.80rem;letter-spacing:.16em;font-weight:600}
.hero-content h1{font:700 clamp(48px,5vw,76px)/.96 var(--serif);letter-spacing:-.035em;margin:18px 0}
.hero-copy{font-size:15px;max-width:430px;color:rgba(255,255,255,.75)}
.hero-actions{display:flex;align-items:center;gap:25px;margin-top:28px}
.text-button{border:0;background:none;color:#fff;padding:8px 0}
.text-button span{margin-left:10px}
.scroll-cue{position:absolute;z-index:4;right:5.2%;bottom:122px;font-size:10px;color:rgba(255,255,255,.75);writing-mode:vertical-rl;display:flex;gap:8px}

.section{padding:110px 5.2%}
.section-kicker{color:#8b887f;margin-bottom:28px}
.intro-grid{display:grid;grid-template-columns:1fr 1.4fr .72fr;gap:30px;align-items:start}
.intro-grid h2,.section-head h2,.services-title h2,.process-head h2,.contact-panel h2{font:700 clamp(38px,4.7vw,68px)/.94 var(--serif);letter-spacing:-.035em;margin:0 0 28px}
.intro-grid .lead{font-size:18px;line-height:1.4;margin-bottom:22px}
.intro-grid>div:first-child>p:not(.lead){color:#32312c;max-width:390px;margin-bottom:30px}
.intro-image{height:510px;position:relative}
.intro-image img{border-radius:var(--radius)}
.fade-carousel-container{position:relative;width:100%;height:100%;border-radius:var(--radius);overflow:hidden;background:#111}
.carousel-slide{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;opacity:0;transition:opacity 1.2s ease-in-out;will-change:opacity}
.carousel-slide.is-active{opacity:1}
.image-label{position:absolute;bottom:15px;left:15px;background:rgba(255,255,255,.88);padding:9px 12px;border-radius:999px;font-size:.75rem;letter-spacing:.1em}
.value-stack{display:flex;flex-direction:column;gap:10px}
.value-stack article{border:1px solid var(--line);border-radius:17px;padding:20px;display:flex;gap:15px}
.value-stack .icon{width:31px;height:31px;border:1px solid var(--line);border-radius:50%;display:grid;place-items:center;flex:none}
.value-stack h3{font-size:.85rem;margin:0 0 4px}
.value-stack p{font-size:.75rem;color:#4a4945;margin:0}

.properties{background:var(--cream)}
.section-head{display:flex;justify-content:space-between;align-items:end;gap:50px;margin-bottom:38px}
.section-head h2{margin:0}
.head-side{max-width:300px}
.head-side p,.head-copy{color:var(--muted);margin:0 0 18px}
.arrow-link{display:inline-flex;gap:12px;font-size:12px;border-bottom:1px solid var(--ink);padding-bottom:5px}
.property-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:12px;max-width:1150px}
.property-card{min-width:0}
.property-image{height:390px;position:relative;overflow:hidden;border-radius:17px}
.property-card:not(.large) .property-image{height:300px}
.property-image img,.property-image video,.property-image iframe{width:100%;height:100%;object-fit:cover;border:0;transition:transform .7s cubic-bezier(.2,.8,.2,1)}
.property-card:hover .property-image img,.property-card:hover .property-image video,.property-card:hover .property-image iframe{transform:scale(1.045)}
.tag{position:absolute;top:13px;left:13px;background:rgba(255,255,255,.9);padding:7px 10px;border-radius:999px;font-size:9px;letter-spacing:.1em}
.round-button{position:absolute;right:13px;bottom:13px;border:0;background:#fff;width:44px;height:44px;border-radius:50%;font-size:15px}
.property-meta{display:flex;justify-content:space-between;color:#89877f;font-size:9px;letter-spacing:.06em;margin:14px 2px 7px}
.property-card h3{font:600 24px var(--serif);letter-spacing:-.03em;margin:0 0 4px}
.property-card p{font-size:11px;color:var(--muted);margin:0 0 10px}
.property-card>strong{font-size:13px}
.property-heading{
  font-weight: 600;
  font-size: 1.8rem;
  line-height: 1.1;
  margin: 14px 0 4px;
}

.statement{height:520px;background:#232320;color:#fff;position:relative;overflow:hidden;display:grid;place-items:center}
.statement-word{position:absolute;white-space:nowrap;font:800 25vw/.8 var(--serif);letter-spacing:-.08em;color:rgba(255,255,255,.045);left:-2vw}
.statement-inner{position:relative;text-align:center;max-width:920px}
.statement-inner .section-kicker{color:rgba(255,255,255,.5)}
.statement-inner h2{font:700 clamp(40px,5.4vw,78px)/.96 var(--serif);letter-spacing:-.035em;margin:18px 0 30px}
.statement-inner h2 em{font-style:normal;color:#bcb9ae}
.circle-link{width:74px;height:74px;border:1px solid rgba(255,255,255,.3);border-radius:50%;display:inline-flex;align-items:center;justify-content:center;gap:4px;font-size:10px;transition:.3s}
.circle-link:hover{background:#fff;color:#222;transform:rotate(8deg)}

.services{background:#eeeae2}
.services-layout{display:grid;grid-template-columns:.9fr 1.1fr;gap:80px}
.services-title p{max-width:390px;color:var(--muted);font-size:15px}
.service-list{border-top:1px solid var(--line)}
.service-item{position:relative;border-bottom:1px solid var(--line)}
.service-trigger{width:100%;display:grid;grid-template-columns:50px 1fr 30px;gap:15px;text-align:left;background:none;border:0;padding:22px 0;font-size:15px;color:inherit;cursor:pointer}
.service-item span{font-size:10px;color:#929087}
.service-item i{font-style:normal;text-align:right}
.service-detail{margin-left:65px;color:var(--muted);max-width:600px;}
.service-item strong{
  color: #000;
}
.service-item i{
  color: #000;
}


.process{background:var(--paper)}
.process-head{display:flex;justify-content:space-between;align-items:end;margin-bottom:50px}
.process-head p{color:var(--muted)}
.process-grid{display:grid;grid-template-columns:repeat(5,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.process-step{padding:26px 20px 35px;border-right:1px solid var(--line)}
.process-step:last-child{border-right:0}
.process-step span{font-size:10px;color:#9a978e}
.process-step h3{font:600 19px/1.1 var(--serif);letter-spacing:-.03em;margin:50px 0 12px}
.process-step p{font-size:11px;color:var(--muted);margin:0}
.contact{display:grid;grid-template-columns:1.1fr .9fr;padding-top:0;padding-bottom:0}
.contact-image{min-height:620px}
.contact-image img{border-radius:22px 0 0 22px}
.contact-panel{background:#e7e4db;padding:70px 55px;border-radius:0 22px 22px 0}
.contact-panel>p{color:var(--muted);max-width:400px;margin-bottom:28px}
.contact-details{margin-top:55px;display:grid;grid-template-columns:1fr 1fr;gap:30px;border-top:1px solid var(--line);padding-top:25px}
.contact-details div:last-child{grid-column:1/-1}
.contact-details span{display:block;font-size:9px;letter-spacing:.12em;color:#8b887f;margin-bottom:5px}
.contact-details a,.contact-details p{font-size:12px;margin:0}

.footer{background:#20201d;color:#fff;margin:110px 0 0;padding:60px 5.2% 25px;border-radius:28px 28px 0 0}
.footer-top{display:flex;align-items:center;justify-content:space-between;padding-bottom:50px;border-bottom:1px solid rgba(255,255,255,.12)}
.footer-logo {
    font: 800 23px / 1 var(--serif);
    letter-spacing: -1.5px;
}
.footer-top p{color:rgba(255,255,255,.5);
  font-weight: 450;
  font-size:20px}
.back-top{font-size: medium;color:rgba(255,255,255,.7)}
.footer-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:30px;padding:45px 0}
.footer-grid>div{display:flex;flex-direction:column;align-items:flex-start;gap:8px}
.footer-label{font-size:9px;color:rgba(255,255,255,.35);letter-spacing:.15em;margin-bottom:10px}

.footer-grid a,.footer-grid p{font-size:11px;color:rgba(255,255,255,.7);margin:0}

/* Social Links Styling */
.social-links {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 24px;
}

.social-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0;
  font-size: 11px;
  color: rgba(255,255,255,.7);
  text-decoration: none;
  transition: color .25s ease;
}

.social-link:hover {
  color: #c5a880;
}

.social-icon {
  width: 20px;
  height: 20px;
  fill: currentColor;
}

.footer-bottom{border-top:1px solid rgba(255,255,255,.12);padding-top:20px;display:flex;justify-content:space-between;color:rgba(255,255,255,.32);font-size:9px}

.modal{position:fixed;z-index:100;inset:0;display:none;align-items:center;justify-content:center;padding:20px}
.modal.open{display:flex}
.modal-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.68);backdrop-filter:blur(8px)}
.modal-card{position:relative;z-index:1;background:#f5f3ed;width:min(600px,100%);max-height:92vh;overflow:auto;border-radius:24px;padding:42px}
.modal-close{position:absolute;right:18px;top:18px;width:44px;height:44px;border:1px solid var(--line);background:none;border-radius:50%;font-size:23px}
.modal-card h2{font:700 44px/.95 var(--serif);letter-spacing:-.035em;margin:10px 0 12px}
form{display:grid;gap:16px}
label{font-size:10px;letter-spacing:.05em}
input,select,textarea{display:block;width:100%;border:1px solid var(--line);background:#fff;border-radius:11px;padding:13px 14px;margin-top:7px;outline:none}
input:focus,select:focus,textarea:focus{border-color:#555;box-shadow:0 0 0 3px rgba(32,32,30,.08)}
input.field-invalid,select.field-invalid,textarea.field-invalid{border-color:#c4473d;background:#fff8f7;box-shadow:0 0 0 3px rgba(196,71,61,.12)}
input.field-invalid:focus,select.field-invalid:focus,textarea.field-invalid:focus{border-color:#b9362d;box-shadow:0 0 0 3px rgba(196,71,61,.18)}
.message-field textarea{min-height:104px;resize:vertical;line-height:1.5}
.submit{margin-top:5px}
.form-status{margin:0;color:#9b342d;font-size:12px;line-height:1.5}
.form-status:empty{display:none}
.success-message{display:none;background:#252522;color:#fff;border-radius:16px;padding:34px 28px;text-align:center}
.success-message .success-icon{width:52px;height:52px;display:grid;place-items:center;margin:0 auto 22px;border:1px solid rgba(255,255,255,.3);border-radius:50%;font-size:23px}
.success-message .section-kicker{color:rgba(255,255,255,.52)}
.success-message h2{font-size:42px;margin:10px 0 12px}
.success-message p{max-width:320px;margin:0 auto 26px;color:rgba(255,255,255,.68);font-size:12px}
.modal.success .consultation-form-state{display:none}
.modal.success .success-message{display:block}
.submit:disabled{pointer-events:none;opacity:.8}

.js-enabled .reveal{opacity:0;transform:translateY(24px);transition:opacity .7s ease,transform .7s ease}
.js-enabled .reveal.visible{opacity:1;transform:none}

@keyframes heroZoom{
  0%{transform:scale(1)}
  50%{transform:scale(1.055)}
  100%{transform:scale(1.01)}
}

/* Staggered Fade-In Animation */
@keyframes fadeInRight {
  0% {
    opacity: 0;
    transform: translateX(60px);
  }
  100% {
    opacity: 1;
    transform: translateX(0);
  }
}

.js-enabled .animate-stagger-1 {
  animation: fadeInRight 0.8s cubic-bezier(0.16, 1, 0.3, 1) 0.2s forwards;
  opacity: 0;
}

.js-enabled .animate-stagger-2 {
  animation: fadeInRight 0.8s cubic-bezier(0.16, 1, 0.3, 1) 0.5s forwards;
  opacity: 0;
}

.js-enabled .animate-stagger-3 {
  animation: fadeInRight 0.8s cubic-bezier(0.16, 1, 0.3, 1) 0.8s forwards;
  opacity: 0;
}
@media (prefers-reduced-motion: reduce){
  .js-enabled .reveal{opacity:1;transform:none;transition:none}
  .js-enabled .animate-stagger-1,.js-enabled .animate-stagger-2,.js-enabled .animate-stagger-3{animation:none;opacity:1;transform:none}
}

@media (max-width: 980px){
  .desktop-nav,.phone{display:none}
  .menu-toggle{display:block}
  .hero{height:760px}
  .hero-word{top:120px;font-size:25vw;left:10%;-webkit-mask-image:linear-gradient(90deg,transparent 0%,transparent 32%,rgba(0,0,0,.45) 46%,#000 62%);mask-image:linear-gradient(90deg,transparent 0%,transparent 32%,rgba(0,0,0,.45) 46%,#000 62%)}
  .hero-content{bottom:160px}
  .intro-grid{grid-template-columns:1fr 1fr}
  .value-stack{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,1fr)}
  .services-layout{grid-template-columns:1fr;gap:40px}
  .process-grid{grid-template-columns:1fr 1fr}
  .process-step:nth-child(2){border-right:0}
  .contact{grid-template-columns:1fr}
  .contact-image{min-height:430px}
  .contact-image img{border-radius:22px 22px 0 0}
  .contact-panel{border-radius:0 0 22px 22px}
}
@media (max-width: 680px){
  html,body{overscroll-behavior-y:none}
  .footer{margin-bottom:0;padding-bottom:max(22px, env(safe-area-inset-bottom))}
  .site-header{height:65px;padding:0 6%}
  .header-actions .pill-button{display:none}
  .mobile-menu{position:fixed;z-index:19;top:0;left:0;right:0;background:#20201d;color:#fff;padding:90px 7% 30px;display:flex;flex-direction:column;gap:0;transform:translateY(-105%);transition:.45s;box-shadow:0 20px 50px rgba(0,0,0,.25)}
  .mobile-menu.open{transform:none}
  .mobile-menu a{font:600 27px var(--serif);padding:15px 0;border-bottom:1px solid rgba(255,255,255,.12)}
  .mobile-menu .pill-button{margin-top:20px}
  .hero{min-height:760px;height:760px;border-radius:0 0 18px 18px}
  .hero-word{top:100px;left:20%;font-size:27vw;opacity:.52;-webkit-mask-image:none;mask-image:none}
  .hero-content{left:6%;right:6%;bottom:170px}
  .hero-content h1{font-size:48px}
  .hero-copy{font-size:13px}
  .hero-actions{align-items:flex-start;flex-direction:column;gap:15px}
  .scroll-cue{display:none}
  .section{padding:75px 6%}
  .intro-grid{grid-template-columns:1fr}
  .intro-image{height:390px}
  .value-stack{grid-template-columns:1fr}
  .property-image,.property-card:not(.large) .property-image{height:330px}
  .section-head{display:block}
  .head-side{margin-top:25px}
  .statement{height:430px}
  .statement-inner{padding:0 7%}
  .statement-inner h2{font-size:44px}
  .process-head{display:block}
  .process-grid{grid-template-columns:1fr}
  .process-step{border-right:0;border-bottom:1px solid var(--line)}
  .process-step h3{margin-top:28px}
  .contact-image{min-height:320px}
  .contact-panel{padding:45px 25px}
  .contact-details{grid-template-columns:1fr}
  .contact-details div:last-child{grid-column:auto}
  .footer{margin-top:75px;padding:45px 6% 22px}
  .footer-top{display:block}
  .footer-top p{margin:20px 0}
  .footer-grid{grid-template-columns:1fr 1fr}
  .footer-bottom{display:block}
  .footer-bottom span{display:block;}
  .CwB{margin-left: 150px;margin-top: 20px;}
  .modal-card{padding:32px 22px}
  .modal-card h2{font-size:38px}
}

/* Property detail experience */
.property-image{isolation:isolate}
.source-badge{position:absolute;left:13px;bottom:13px;z-index:2;background:rgba(20,20,18,.72);color:#fff;padding:7px 10px;border-radius:999px;font-size:8px;letter-spacing:.1em;backdrop-filter:blur(8px)}
.property-hint{display:flex;justify-content:space-between;align-items:center;margin-top:14px;padding-top:12px;border-top:1px solid var(--line);font-size:10px;color:#77756e;letter-spacing:.03em}
.property-card:hover .property-hint{color:#20201e}
.property-modal{position:fixed;z-index:110;inset:0;display:none;align-items:center;justify-content:center;padding:18px}
.property-modal.open{display:flex}
.property-modal-backdrop{position:absolute;inset:0;background:rgba(8,8,7,.78);backdrop-filter:blur(12px)}
.property-modal-card{position:relative;z-index:1;width:min(1180px,100%);max-height:94vh;overflow:auto;background:#f5f3ed;border-radius:24px;box-shadow:0 30px 100px rgba(0,0,0,.35)}
.property-modal-close{position:absolute;z-index:5;right:18px;top:18px;width:44px;height:44px;border:1px solid rgba(255,255,255,.35);background:rgba(0,0,0,.35);color:#fff;border-radius:50%;font-size:25px;line-height:1;backdrop-filter:blur(8px)}
.property-modal-gallery{height:min(58vh,650px);min-height:420px;position:relative;background:#111;overflow:hidden}
.property-modal-gallery>#propertyMainMedia{width:100%;height:100%}
.gallery-main-media{display:none;width:100%;height:100%;object-fit:cover;background:#111}
.gallery-main-media.is-gallery-active{display:block;animation:gallerySwap .45s ease both}
.gallery-main-media:focus{outline:none}
.gallery-source-note{position:absolute;left:18px;bottom:18px;z-index:3;padding:8px 11px;border:1px solid rgba(255,255,255,.22);border-radius:999px;background:rgba(0,0,0,.42);backdrop-filter:blur(10px);color:#fff;font-size:10px;letter-spacing:.08em;text-transform:uppercase;max-width:72%}
.gallery-count{position:absolute;right:22px;bottom:20px;background:rgba(0,0,0,.45);color:#fff;border-radius:999px;padding:7px 11px;font-size:9px;letter-spacing:.1em;backdrop-filter:blur(8px)}
.gallery-arrow{position:absolute;top:50%;transform:translateY(-50%);width:44px;height:44px;border:1px solid rgba(255,255,255,.35);background:rgba(0,0,0,.35);color:#fff;border-radius:50%;font-size:17px;backdrop-filter:blur(8px)}
.gallery-arrow.prev{left:20px}.gallery-arrow.next{right:20px}
.property-modal-body{display:grid;grid-template-columns:minmax(0,1fr) 240px;gap:45px;padding:40px 42px 44px}
.property-modal-copy h2{font:700 clamp(44px,5vw,72px)/.92 var(--serif);letter-spacing:-.035em;margin:6px 0 10px}
.property-modal-location{font-size:13px;color:var(--muted);margin:0 0 25px}
.property-specs{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-bottom:24px}
.property-spec{padding:16px 12px 16px;border-right:1px solid var(--line)}
.property-spec:last-child{border-right:0;padding-left:12px}
.property-spec strong{display:block;font:600 22px var(--serif);letter-spacing:-.03em}.property-spec span{display:block;font-size:9px;color:#89877f;text-transform:uppercase;letter-spacing:.1em;margin-top:3px}
.property-description{max-width:760px;color:#5f5d57;font-size:14px}
.feature-list{display:grid;grid-template-columns:repeat(2,1fr);gap:10px 30px;margin:25px 0 30px}
.feature-list div{font-size:11px;padding-bottom:9px;border-bottom:1px solid rgba(32,32,30,.08)}
.feature-list div::before{content:'✓';margin-right:8px;color:#77756e}
.property-price-row{display:flex;align-items:end;justify-content:space-between;gap:25px;padding-top:20px;border-top:1px solid var(--line)}
.property-price-row span{display:block;font-size:9px;color:#89877f;letter-spacing:.12em}.property-price-row strong{display:block;font:600 23px var(--serif);margin-top:4px}
.property-source-card{align-self:start;background:#22221f;color:#fff;border-radius:17px;padding:22px;position:sticky;top:0}
.property-source-card .footer-label{color:rgba(255,255,255,.4)}
.property-source-card strong{display:block;font:600 20px var(--serif);margin:10px 0}
.property-source-card p{color:rgba(255,255,255,.58);font-size:10px;line-height:1.55;margin:0}
@media(max-width:680px){
  .property-modal{padding:0}
  .property-modal-card{max-height:100vh;border-radius:0}
  .property-modal-gallery{height:43vh;min-height:300px}
  .gallery-source-note{left:12px;bottom:12px;max-width:calc(100% - 92px);padding:7px 9px;font-size:8px;line-height:1.3}
  .gallery-count{right:12px;bottom:12px;padding:6px 9px;font-size:8px}
  .property-modal-body{grid-template-columns:1fr;gap:28px;padding:30px 22px 35px}
  .property-specs{grid-template-columns:repeat(2,1fr)}
  .property-spec:nth-child(2){border-right:0}.property-spec:nth-child(n+3){border-top:1px solid var(--line)}
  .feature-list{grid-template-columns:1fr}
  .property-price-row{display:block}.property-price-row .pill-button{margin-top:18px}
  .property-source-card{position:static}
}

/* Featured-property layout */
.property-grid{grid-template-columns:minmax(0,1fr);gap:18px;max-width:1150px}
.property-card.large{grid-column:auto;grid-row:auto}
.property-card.large .property-image{height:clamp(360px,50vw,620px);min-height:360px}
.property-card:not(.large) .property-image{height:260px}
.property-card{transition:transform .45s cubic-bezier(.2,.8,.2,1)}
.property-card:hover{transform:translateY(-5px)}
.property-card .property-image::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.08),transparent 55%,rgba(0,0,0,.18));opacity:.65;pointer-events:none}
.property-hint{margin-top:12px;font-size:1.05rem;color:#20201f;display:flex;justify-content:space-between;max-height:none;opacity:1;overflow:visible}
.hero-type{display:inline-flex;align-items:center;gap:7px;height:17px;min-width:170px;margin-top:2px;margin-bottom: 10px;color:rgba(255,255,255,.72);font-size:9px;font-weight:700;letter-spacing:.18em;text-transform:uppercase}
.hero-type span{display:inline-block}
.gallery-thumbs{display:flex;gap:8px;padding:10px 14px;background:#111;overflow-x:auto;scrollbar-width:none}
.gallery-thumbs::-webkit-scrollbar{display:none}
.gallery-thumb{flex:0 0 72px;height:52px;border:1px solid transparent;border-radius:8px;overflow:hidden;padding:0;background:#222;opacity:.58;transition:.25s}
.gallery-thumb:hover,.gallery-thumb.active{opacity:1;border-color:rgba(255,255,255,.8);transform:translateY(-2px)}
.gallery-thumb img{width:100%;height:100%;object-fit:cover}
.gallery-thumb video{width:100%;height:100%;object-fit:cover}
.gallery-video-label{position:absolute;inset:auto 4px 4px auto;padding:3px 5px;background:rgba(0,0,0,.65);color:#fff;font-size:8px;letter-spacing:.08em}
.gallery-thumb{position:relative}
.gallery-swap{animation:gallerySwap .45s ease both}
@keyframes gallerySwap{from{opacity:.25;transform:scale(1.02)}to{opacity:1;transform:scale(1)}}
@media(max-width:1100px){
  .property-grid{grid-template-columns:minmax(0,1fr)}
  .property-card.large{grid-column:auto;grid-row:auto}
  .property-card.large .property-image{min-height:420px;height:420px}
}
@media(max-width:680px){
  .property-grid{grid-template-columns:1fr}
  .property-card.large{grid-column:auto;grid-row:auto}
  .property-card.large .property-image,.property-card:not(.large) .property-image{height:330px;min-height:330px}
  .hero-type{font-size:8px}
}


/* =========================================================
   MOBILE HERO FIX
   Keeps the cinematic desktop composition, but lets every
   hero element breathe on narrow screens.
   ========================================================= */
@media (max-width: 600px) {
  .hero {
    min-height: 100svh;
    height: auto;
    overflow: hidden;
    border-radius: 0 0 24px 24px;
  }

  .hero-media {
    inset: -4%;
    background-position: 62% center;
    animation-duration: 22s;
  }

  .hero-overlay {
    background:
      linear-gradient(180deg, rgba(4,7,7,.72) 0%, rgba(4,7,7,.42) 27%, rgba(4,7,7,.48) 58%, rgba(4,7,7,.88) 100%);
  }

  .hero-word {
    z-index: 2;
    top: 102px;
    left: 7%;
    width: 100%;
    font-size: clamp(76px, 27vw, 122px);
    line-height: .8;
    letter-spacing: -.075em;
    opacity: .36;
    white-space: nowrap;
    -webkit-mask-image: linear-gradient(90deg, #000 0%, #000 58%, transparent 96%);
    mask-image: linear-gradient(90deg, #000 0%, #000 58%, transparent 96%);
  }

  .hero-content {
    position: relative;
    inset: auto;
    z-index: 5;
    width: auto;
    margin: 0;
    padding: 115px 24px 190px;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
  }

  .hero-content .eyebrow {
    margin-bottom: 24px;
    font-size: 10px;
    letter-spacing: .14em;
  }

  .hero-content h1 {
    max-width: 350px;
    margin: 0 0 20px;
    font-size: clamp(43px, 12.2vw, 62px);
    line-height: .96;
    letter-spacing: -.055em;
    text-wrap: balance;
  }

  .hero-content p {
    max-width: 350px;
    margin: 0 0 28px;
    font-size: 15px;
    line-height: 1.55;
  }

  .scroll-cue {
    display: none;
  }
}

/* Very small phones */
@media (max-width: 380px) {
  .hero-content {
    padding: 190px 20px 188px;
  }

  .hero-content h1 {
    font-size: 40px;
  }

  .hero-content p {
    font-size: 14px;
  }

  .hero-word {
    top: 98px;
    left: 4%;
    font-size: 25vw;
  }

}


/* Property-card circular ↗ button */
.property-image .round-button {
  appearance: none;
  -webkit-appearance: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #242420 !important;
  background: #fff !important;
  border: 1px solid rgba(36,36,32,.10) !important;
  box-shadow: 0 4px 18px rgba(0,0,0,.12);
  font-family: inherit;
  font-size: 15px;
  line-height: 1;
  text-decoration: none;
  -webkit-tap-highlight-color: transparent;
}

.property-image .round-button:hover,
.property-image .round-button:focus-visible {
  color: #fff !important;
  background: #242420 !important;
  border-color: #242420 !important;
}

/* Mobile: explicitly override browser button defaults. */
@media (max-width: 600px) {
  .property-image .round-button {
    color: #242420 !important;
    background: #fff !important;
    border-color: rgba(36,36,32,.10) !important;
  }
}

/* Remix Icon controls — KAIROX */
.pill-button i, .text-button i, .arrow-link i, .circle-link i, .round-button i, .property-hint i, .gallery-arrow i {
  display:inline-flex; align-items:center; justify-content:center; line-height:1;
  font-size:1em;
}
.pill-button i { margin-left:8px; }
.text-button i, .arrow-link i, .circle-link i { margin-left:7px; }
.gallery-arrow i { font-size:18px; }
.round-button i { font-size:17px; }


/* =========================================================
   CTA BUTTON MOTION
   .btn-3 uses the supplied icon-swap animation.
   Desktop: hover.
   Mobile: explicit tap/click only.
   Button dimensions remain inherited from .pill-button.
   ========================================================= */
.pill-button.btn-3{
  position:relative;
  overflow:hidden;
  transform:none;
  transition:background-color .3s ease, color .3s ease;
}
.pill-button.btn-3 .button__icon-wrapper{
  position:relative;
  flex:0 0 1em;
  width:1em;
  height:1em;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
  line-height:1;
}
.pill-button.btn-3 .button__icon-svg{
  position:absolute;
  inset:0;
  width:1em;
  height:1em;
  display:flex;
  align-items:center;
  justify-content:center;
  margin:0;
  line-height:1;
  transition:transform .3s ease-in-out;
  will-change:transform;
}
.pill-button.btn-3 .button__icon-svg--copy{
  transform:translate(-150%,150%);
}

@media (hover:hover) and (pointer:fine){
  .pill-button.btn-3:hover{
    background-color:#02A2F8;
  }
  .pill-button.btn-3:hover .button__icon-wrapper{
    color:#02A2F8;
  }
  .pill-button.btn-3:hover .button__icon-svg:first-child{
    transform:translate(150%,-150%);
  }
  .pill-button.btn-3:hover .button__icon-svg--copy{
    transition:transform .3s ease-in-out .1s;
    transform:translate(0);
  }
}

/* Mobile: no hover animation; JavaScript adds .is-pressed on tap. */
@media (hover:none), (pointer:coarse){
  .pill-button.btn-3:hover{
    transform:none;
  }
  .pill-button.btn-3.is-pressed{
    background-color:#02A2F8;
  }
  .pill-button.btn-3.is-pressed .button__icon-wrapper{
    color:#02A2F8;
  }
  .pill-button.btn-3.is-pressed .button__icon-svg:first-child{
    transform:translate(150%,-150%);
  }
  .pill-button.btn-3.is-pressed .button__icon-svg--copy{
    transition:transform .3s ease-in-out .1s;
    transform:translate(0);
  }
}

/* =========================================================
   SEND ENQUIRY — .btn-5
   Supplied outline / wave / flight / sent-state motion,
   adapted to the existing KAIROX button dimensions.
   Desktop: hover motion.
   Mobile: submit/click motion only.
   ========================================================= */
.btn-5{
  --primary:#252522;
  position:relative;
  overflow:hidden;
  isolation:isolate;
  transform:none;
}
.btn-5:active{transform:scale(1)}
.btn-5:after{
  content:"";
  position:absolute;
  inset:0;
  border-radius:999px;
  background:#fff;
  border:2.5px solid transparent;
  z-index:0;
  transition:all .4s ease;
  pointer-events:none;
}
.btn-5::before{
  content:"";
  position:absolute;
  inset:7px 6px 6px 6px;
  border-radius:30px;
  filter:blur(.5px);
  z-index:2;
  pointer-events:none;
}
.btn-5 .state{
  position:relative;
  z-index:3;
  display:flex;
  align-items:center;
}
.btn-5 .submit-label{
  display:flex;
  align-items:center;
  justify-content:center;
  padding-left:29px;
  position:relative;
}
.btn-5 .submit-label > span:not(.icon){
  display:block;
  opacity:1;
}
.btn-5 .state .icon{
  position:relative;
  width:1em;
  height:1em;
  margin-left:8px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  line-height:1;
  transition:all .3s ease;
  flex:0 0 auto;
}
.btn-5 .state .icon i{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-size:1em;
  line-height:1;
}
.btn-5 .state--sent{display:none}
.btn-5 .state--sent .icon{transform:scale(1.25)}

/* Outline */
.btn-5 .outline{
  position:absolute;
  inset:-2px -3.5px;
  border-radius:inherit;
  overflow:hidden;
  z-index:1;
  opacity:0;
  transition:opacity .4s ease;
  pointer-events:none;
}
.btn-5 .outline::before{
  content:"";
  position:absolute;
  inset:-100%;
  background:conic-gradient(from 180deg,transparent 60%,white 80%,transparent 100%);
  animation:btn5Spin 2s linear infinite;
  animation-play-state:paused;
}
@keyframes btn5Spin{
  0%{transform:rotate(0)}
  100%{transform:rotate(360deg)}
}

/* Letters */
.btn-5 .state--default .submit-label > span:not(.icon){
  opacity:0;
  animation:btn5SlideDown .8s ease forwards calc(var(--i) * .03s);
}
@keyframes btn5Wave{
  30%{opacity:1;transform:translateY(4px)}
  50%{opacity:1;transform:translateY(-3px);color:var(--primary)}
  100%{opacity:1;transform:translateY(0)}
}
@keyframes btn5SlideDown{
  0%{opacity:0;transform:translateY(-20px) translateX(5px) rotate(-90deg);color:var(--primary);filter:blur(5px)}
  30%{opacity:1;transform:translateY(4px) translateX(0) rotate(0);filter:blur(0)}
  50%{opacity:1;transform:translateY(-3px)}
  100%{opacity:1;transform:translateY(0) translateX(0) rotate(0)}
}

/* Plane / arrow */
.btn-5 .state--default .icon i{
  animation:btn5Land .6s ease forwards;
}
@keyframes btn5Land{
  0%{transform:translateX(-60px) translateY(30px) rotate(-50deg) scale(2);opacity:0;filter:blur(3px)}
  100%{transform:translateX(0) translateY(0) rotate(0) scale(1);opacity:1;filter:blur(0)}
}

/* Contrail */
.btn-5 .state--default .icon:before{
  content:"";
  position:absolute;
  top:50%;
  height:2px;
  width:0;
  left:-5px;
  background:linear-gradient(to right,transparent,rgba(0,0,0,.5));
}
@keyframes btn5Contrail{
  0%{width:0;opacity:1}
  8%{width:15px}
  60%{opacity:.7;width:80px}
  100%{opacity:0;width:160px}
}

/* Sent state */
.btn-5.is-sending .state--default{display:none}
.btn-5.is-sending .state--sent{display:flex}
.btn-5.is-sending .state--sent .submit-label > span:not(.icon){
  opacity:0;
  animation:btn5SlideDown .8s ease forwards calc(var(--i) * .12s);
}
.btn-5.is-sending .state--sent .icon i{
  opacity:0;
  animation:btn5Appear 1.2s ease forwards .45s;
}
@keyframes btn5Appear{
  0%{opacity:0;transform:scale(4) rotate(-40deg);color:var(--primary);filter:blur(4px)}
  30%{opacity:1;transform:scale(.6);filter:blur(1px)}
  50%{opacity:1;transform:scale(1.2);filter:blur(0)}
  100%{opacity:1;transform:scale(1)}
}

@media (hover:hover) and (pointer:fine){
  .btn-5:hover{transform:scale(1.02)}
  .btn-5:hover::after{transform:scale(1.05,1.1)}
  .btn-5:hover .outline{opacity:1}
  .btn-5:hover .outline::before{animation-play-state:running}
  .btn-5:hover .state--default .submit-label > span:not(.icon){
    animation:btn5Wave .5s ease forwards calc(var(--i) * .02s);
  }
  .btn-5:hover .state--default .icon{transform:rotate(45deg) scale(1.25)}
  .btn-5:hover .state--default .icon:before{animation:btn5Contrail .8s linear forwards}
}

/* Mobile uses only the submitted/clicked state, never :hover. */
@media (hover:none), (pointer:coarse){
  .btn-5:hover{transform:none}
  .btn-5:hover::after{transform:none}
  .btn-5:hover .outline{opacity:0}
  .btn-5:hover .outline::before{animation-play-state:paused}
  .btn-5:hover .state--default .icon{transform:none}
  .btn-5.is-launching{transform:scale(1.02)}
  .btn-5.is-launching::after{transform:scale(1.05,1.1)}
  .btn-5.is-launching .outline{opacity:1}
  .btn-5.is-launching .outline::before{animation-play-state:running}
  .btn-5.is-launching .state--default .submit-label > span:not(.icon){
    animation:btn5Wave .5s ease forwards calc(var(--i) * .02s);
  }
  .btn-5.is-launching .state--default .icon{transform:rotate(45deg) scale(1.25)}
  .btn-5.is-launching .state--default .icon:before{animation:btn5Contrail .8s linear forwards}
}

/* Service accordion readability + smooth close/open */
.service-detail{
  font-size:14px;
  line-height:1.65;
  max-height:none;
  overflow:visible;
  opacity:1;
  margin-top:6px;
}
.js-enabled .service-detail{
  max-height:0;
  overflow:hidden;
  opacity:0;
  margin-top:0;
  transition:max-height .4s ease, opacity .3s ease, margin-top .4s ease;
}
.js-enabled .service-item.active .service-detail{
  max-height:180px;
  opacity:1;
  margin-top:6px;
}
@media (prefers-reduced-motion: reduce){
  .js-enabled .service-detail{transition:none}
}

/* Property-grid overlap fix: each grid row must contain the complete
   featured card, including its metadata and price, before the next row starts. */
.property-grid{
  align-items:start;
  grid-auto-flow:row;
}
.property-card.large{
  grid-row:auto !important;
  align-self:start;
}
@media (min-width:1101px){
  .property-card.large{grid-column:auto}
  .property-card.large .property-image{height:clamp(360px,50vw,620px);min-height:360px}
}
@media (min-width:681px) and (max-width:1100px){
  .property-card.large{grid-column:auto}
  .property-card.large .property-image{height:420px;min-height:420px}
}
@media (max-width:680px){
  .property-card.large{grid-column:auto}
  .property-card.large .property-image{height:330px;min-height:330px}
}


/* =========================================================
   KAIROX POLISH PASS — v2
   ========================================================= */

/* Desktop navigation: higher contrast, fixed presence, subtle active/hover motion. */
@media (min-width: 901px){
  .site-header{
    position:fixed;
    top:0;
    transition:background .35s ease, box-shadow .35s ease, color .35s ease, padding .35s ease;
  }
  .site-header.scrolled{
    background:rgba(243,241,235,.94);
    color:var(--ink);
    box-shadow:0 12px 35px rgba(20,20,18,.10);
    backdrop-filter:blur(18px);
  }
  .site-header.scrolled .logo{color:var(--ink)}
  .site-header.scrolled .phone{color:rgba(32,32,30,.72)}
  .site-header.scrolled .pill-button.light{background:#252522;color:#fff}
  .desktop-nav{
    gap:4px;
    padding:6px;
    background:rgba(10,12,11,.48);
    border-color:rgba(255,255,255,.34);
    box-shadow:0 8px 28px rgba(0,0,0,.16);
  }
  .site-header.scrolled .desktop-nav{
    background:rgba(255,255,255,.76);
    border-color:rgba(32,32,30,.12);
  }
  .desktop-nav a{
    position:relative;
    display:inline-flex;
    align-items:center;
    min-height:34px;
    padding:0 13px;
    border-radius:999px;
    color:rgba(255,255,255,.86);
    transition:color .25s ease, background .25s ease, transform .25s ease;
  }
  .desktop-nav a::after{
    content:"";
    position:absolute;
    left:13px;right:13px;bottom:6px;
    height:1px;
    background:currentColor;
    transform:scaleX(0);
    transform-origin:right;
    transition:transform .3s cubic-bezier(.22,.61,.36,1);
  }
  .desktop-nav a:hover,
  .desktop-nav a.is-current{
    color:#fff;
    background:rgba(255,255,255,.12);
    transform:translateY(-1px);
  }
  .desktop-nav a:hover::after,
  .desktop-nav a.is-current::after{transform:scaleX(1);transform-origin:left}
  .site-header.scrolled .desktop-nav a{color:rgba(32,32,30,.70)}
  .site-header.scrolled .desktop-nav a:hover,
  .site-header.scrolled .desktop-nav a.is-current{color:var(--ink);background:rgba(32,32,30,.07)}
}

/* Button 3: restore the white circular arrow and use the supplied swap motion. */
.pill-button.btn-3{
  position:relative;
  overflow:hidden;
  isolation:isolate;
  min-height:46px;
  transform:none;
  transition:background-color .3s ease, color .3s ease;
}
.pill-button.btn-3 .button__icon-wrapper{
  position:relative;
  flex:0 0 28px;
  width:28px !important;
  height:28px !important;
  margin:0;
  padding:0;
  display:grid !important;
  place-items:center;
  overflow:hidden;
  border-radius:50%;
  background:#fff;
  color:#252522;
  line-height:1;
  transition:color .3s ease, background-color .3s ease;
}
.pill-button.btn-3 .button__icon-svg,
.pill-button.btn-3 .button__icon-svg--copy{
  position:absolute;
  inset:0;
  width:14px !important;
  height:14px !important;
  margin:auto !important;
  display:grid;
  place-items:center;
  font-size:14px;
  line-height:1;
  transform:translate(0,0);
  transition:transform .3s ease-in-out;
}
.pill-button.btn-3 .button__icon-svg--copy{transform:translate(-150%,150%)}
@media (hover:hover) and (pointer:fine){
  .pill-button.btn-3:hover{background:#02A2F8;color:#fff}
  .pill-button.btn-3:hover .button__icon-wrapper{background:#fff;color:#02A2F8}
  .pill-button.btn-3:hover .button__icon-svg:first-child{transform:translate(150%,-150%)}
  .pill-button.btn-3:hover .button__icon-svg--copy{transition-delay:.1s;transform:translate(0,0)}
}
@media (hover:none), (pointer:coarse){
  .pill-button.btn-3:hover{background:inherit;color:inherit}
  .pill-button.btn-3.is-pressed{background:#02A2F8;color:#fff}
  .pill-button.btn-3.is-pressed .button__icon-wrapper{background:#fff;color:#02A2F8}
  .pill-button.btn-3.is-pressed .button__icon-svg:first-child{transform:translate(150%,-150%)}
  .pill-button.btn-3.is-pressed .button__icon-svg--copy{transition-delay:.1s;transform:translate(0,0)}
}

/* Send enquiry: keep the original dimensions but make the supplied states visible and reliable. */
.btn-5{
  position:relative;
  overflow:hidden;
  isolation:isolate;
  min-height:62px;
  width:100%;
  border-radius:999px;
  border:0;
  background:transparent;
  color:#20201e;
  transform:none;
  transition:transform .3s ease;
}
.btn-5::after{content:"";position:absolute;inset:0;border-radius:inherit;background:#fff;border:2.5px solid transparent;z-index:0;transition:transform .4s ease;pointer-events:none}
.btn-5 .state{position:relative;z-index:3;display:flex;align-items:center;justify-content:center;width:100%;height:100%;padding:0}
.btn-5 .submit-label{position:relative;display:flex;align-items:center;justify-content:center;padding:0;min-height:30px}
.btn-5 .submit-label > span:not(.icon){display:block;opacity:1;transform:none;filter:none;color:#20201e}
.btn-5 .state .icon{position:relative;left:auto;top:auto;bottom:auto;width:28px;height:28px;margin-left:9px;display:grid;place-items:center;transform:none;color:#20201e;flex:0 0 28px;transition:transform .3s ease}
.btn-5 .state .icon i{display:grid;place-items:center;margin:0;font-size:15px;line-height:1}
.btn-5 .outline{position:absolute;inset:-2px -3.5px;border-radius:inherit;overflow:hidden;z-index:1;opacity:0;transition:opacity .4s ease;pointer-events:none}
.btn-5 .outline::before{content:"";position:absolute;inset:-100%;background:conic-gradient(from 180deg,transparent 60%,#fff 80%,transparent 100%);animation:btn5Spin 2s linear infinite;animation-play-state:paused}
.btn-5 .state--sent{display:none}
.btn-5 .state--sent .icon{transform:scale(1.1)}
.btn-5 .state--sent .icon i{font-size:18px}
.btn-5 .state--default .icon i{animation:none;opacity:1}
.btn-5 .state--default .icon::before{content:"";position:absolute;top:50%;left:-5px;width:0;height:2px;background:linear-gradient(to right,transparent,rgba(0,0,0,.5));pointer-events:none}
.btn-5.is-launching{transform:scale(1.02)}
.btn-5.is-launching::after{transform:scale(1.05,1.1)}
.btn-5.is-launching .outline{opacity:1}
.btn-5.is-launching .outline::before{animation-play-state:running}
.btn-5.is-launching .state--default .submit-label > span:not(.icon){animation:btn5Wave .5s ease forwards calc(var(--i) * .02s)}
.btn-5.is-launching .state--default .icon{transform:rotate(45deg) scale(1.18)}
.btn-5.is-launching .state--default .icon::before{animation:btn5Contrail .8s linear forwards}
.btn-5.is-sending .state--default{display:none}
.btn-5.is-sending .state--sent{display:flex}
.btn-5.is-sending .state--sent .submit-label > span:not(.icon){opacity:0;animation:btn5SlideDown .7s ease forwards calc(var(--i) * .12s)}
.btn-5.is-sending .state--sent .icon i{opacity:0;animation:btn5Appear .9s ease forwards .35s}
@media (hover:hover) and (pointer:fine){
  .btn-5:hover{transform:scale(1.02)}
  .btn-5:hover::after{transform:scale(1.05,1.1)}
  .btn-5:hover .outline{opacity:1}
  .btn-5:hover .outline::before{animation-play-state:running}
  .btn-5:hover .state--default .submit-label > span:not(.icon){animation:btn5Wave .5s ease forwards calc(var(--i) * .02s)}
  .btn-5:hover .state--default .icon{transform:rotate(45deg) scale(1.18)}
}
@media (hover:none), (pointer:coarse){.btn-5:hover{transform:none}.btn-5:hover::after{transform:none}.btn-5:hover .outline{opacity:0}.btn-5:hover .outline::before{animation-play-state:paused}.btn-5:hover .state--default .icon{transform:none}}

/* 08 / contact image uses the same fade + scale language as 01. */
.contact-image .fade-carousel-container{height:100%;min-height:620px}
.contact-image .carousel-slide{transform:scale(1.055);transition:opacity 1.15s cubic-bezier(.22,.61,.36,1),transform 5.6s cubic-bezier(.45,0,.55,1)}
.contact-image .carousel-slide.is-active{opacity:1;transform:scale(1)}
.intro-image .carousel-slide{transform:scale(1.045);transition:opacity 1.15s cubic-bezier(.22,.61,.36,1),transform 5.2s cubic-bezier(.45,0,.55,1)}
.intro-image .carousel-slide.is-active{opacity:1;transform:scale(1)}

/* Floating cues. */
.float-cue{animation:kairoxFloat 2.8s ease-in-out infinite;will-change:transform}
@keyframes kairoxFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-7px)}}
.back-top{display:inline-flex;align-items:center;gap:7px;transition:color .25s ease}
.back-top:hover{color:#fff;animation-play-state:paused}

/* Footer readability. */
.footer-grid a,.footer-grid p{font-size:13px;line-height:1.55;color:rgba(255,255,255,.78)}
.footer-label{font-size:10px;color:rgba(255,255,255,.48)}
.footer-top p{font-size:13px}
.footer-bottom{font-size:10px;color:rgba(255,255,255,.48)}

/* Service details — readable and closing animation remains smooth. */
.service-detail{font-size:14px;line-height:1.7;max-width:620px}

@media (max-width: 900px){
  .contact-image .fade-carousel-container{min-height:430px}
}
@media (max-width: 600px){
  .footer-grid a,.footer-grid p{font-size:13px}
  .footer-label{font-size:10px}
  .scroll-cue{animation-duration:2.2s}
}

/* Respect reduced-motion preferences without breaking functionality. */
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{scroll-behavior:auto !important;animation-duration:.001ms !important;animation-iteration-count:1 !important;transition-duration:.001ms !important}
}
@media (max-width: 600px){
  .scroll-cue{
    display:flex;
    left:auto;
    right:6%;
    bottom:112px;
    flex-direction:row;
    align-items:center;
    gap:9px;
    padding:8px 12px;
    border:1px solid rgba(255,255,255,.22);
    border-radius:999px;
    background:rgba(8,10,9,.35);
    backdrop-filter:blur(10px);
  }
}


@media (max-width: 680px){
  .social-links{gap:18px}
}


/* =========================================================
   Featured listing and floor-plan presentation
   ========================================================= */
.property-card-body{
  display:grid;
  grid-template-columns:minmax(0,1fr) 154px;
  gap:18px;
  align-items:start;
  margin-top:12px;
}
.property-card-copy{min-width:0}
.property-card-copy .property-meta{margin-top:0}
.property-card-copy h3{margin-top:0}
.property-plan{
  min-width:0;
  padding:10px;
  border:1px solid var(--line);
  background:rgba(255,255,255,.42);
  border-radius:14px;
  align-self:start;
}
.property-plan-label{
  display:block;
  font-size:8px;
  letter-spacing:.13em;
  text-transform:uppercase;
  color:#8a887f;
  margin-bottom:7px;
}
.property-plan-image{
  display:block;
  width:100%;
  height:104px;
  object-fit:contain;
  background:#fff;
  border:1px solid rgba(32,32,30,.08);
  border-radius:8px;
}
.property-plan-spec{
  display:block;
  margin-top:7px;
  font-size:8px;
  line-height:1.35;
  color:#77746d;
}
.property-image .source-badge{
  position:absolute;
  left:12px;
  bottom:12px;
  z-index:2;
  padding:7px 9px;
  border-radius:999px;
  background:rgba(20,20,18,.76);
  color:rgba(255,255,255,.88);
  backdrop-filter:blur(8px);
  font-size:7px;
  letter-spacing:.1em;
  text-transform:uppercase;
}
.property-card.large .property-card-body{
  grid-template-columns:minmax(0,1fr) 178px;
}
.property-card.large .property-plan-image{height:128px}

@media (max-width:760px){
  .property-card-body,
  .property-card.large .property-card-body{
    grid-template-columns:1fr;
  }
  .property-plan{
    display:grid;
    grid-template-columns:96px 1fr;
    grid-template-rows:auto auto;
    column-gap:10px;
    align-items:center;
  }
  .property-plan-label{grid-column:2;grid-row:1;margin:0}
  .property-plan-image{grid-column:1;grid-row:1 / span 2;height:76px}
  .property-plan-spec{grid-column:2;grid-row:2;margin:4px 0 0}
}

/* =========================================================
   FINAL FIX — property modal floor plan under listing source
   ========================================================= */
.property-source-card{overflow:hidden}
.modal-floorplan{
  margin-top:22px;
  padding-top:18px;
  border-top:1px solid rgba(255,255,255,.13);
}
.modal-floorplan-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:9px;font-size:8px;letter-spacing:.13em;text-transform:uppercase;color:rgba(255,255,255,.62)}
.modal-floorplan-ref{color:rgba(255,255,255,.35)}
.modal-floorplan-frame{background:#f7f6f1;border-radius:10px;padding:7px;border:1px solid rgba(255,255,255,.12)}
.modal-floorplan-frame{position:relative;height:145px;overflow:hidden}
.modal-floorplan-frame img{position:absolute;inset:7px;width:calc(100% - 14px);height:calc(100% - 14px);object-fit:contain;background:#fff;border-radius:6px;opacity:0;transition:opacity .9s ease-in-out}
.modal-floorplan-frame img.is-active{opacity:1}
.modal-floorplan-caption{display:block;margin-top:8px;font-size:8px;line-height:1.45;color:rgba(255,255,255,.45)}

@media (max-width:600px){
  .modal-floorplan-frame img{height:125px}
}

/* Mobile property-media reliability */
.property-image video{background:#111;object-fit:cover}
.property-image video.video-play-blocked{cursor:pointer}
.modal-floorplan-slide{display:none;width:100%;height:100%;object-fit:contain;background:#111}
.modal-floorplan-slide.is-active{display:block}
@media(max-width:680px){
  .property-modal-gallery{height:46svh;min-height:300px}
  .gallery-main-media{object-fit:cover}
  .gallery-thumb{flex-basis:68px;height:50px}
}
