:root{
    --navy:#06233D;
    --navy-deep:#06233D;
    --blue:#1976C9;
    --blue-bright:#3A8FDA;
    --sky:#F5F9FD;
    --sky-2:#E9F1FA;
    --sand:#D89B2B;
    --sand-light:#F5E2BC;
    --white:#FFFFFF;
    --ink:#06233D;
    --muted:#60758A;
    --line:rgba(6,35,61,0.12);
    --shadow: 0 20px 50px -20px rgba(6,35,61,0.28);
    --radius: 16px;
    --maxw: 1180px;
  }
  *{box-sizing:border-box; margin:0; padding:0;}
  html{scroll-behavior:smooth;}
  body{
    font-family:'Manrope', sans-serif;
    color:var(--ink);
    background:var(--sky);
    line-height:1.6;
    -webkit-font-smoothing:antialiased;
    overflow-x:hidden;
  }
  h1,h2,h3,h4{font-family:'Fraunces', serif; font-weight:600; letter-spacing:-0.01em; color:var(--navy-deep);}
  a{text-decoration:none; color:inherit;}
  ul{list-style:none;}
  img{max-width:100%; display:block;}
  .container{max-width:var(--maxw); margin:0 auto; padding:0 24px;}
  .eyebrow{
    display:inline-flex; align-items:center; gap:8px;
    font-size:0.72rem; font-weight:700; letter-spacing:0.14em; text-transform:uppercase;
    color:var(--blue); margin-bottom:14px;
  }
  .eyebrow::before{content:""; width:22px; height:2px; background:var(--sand); display:inline-block;}
  .btn{
    display:inline-flex; align-items:center; justify-content:center; gap:8px;
    padding:14px 28px; border-radius:999px; font-weight:700; font-size:0.95rem;
    cursor:pointer; border:none; white-space:nowrap;
    position:relative; overflow:hidden; isolation:isolate;
    transition:transform .35s cubic-bezier(.2,.8,.2,1), box-shadow .35s cubic-bezier(.2,.8,.2,1), background .25s ease, color .25s ease;
    will-change:transform;
  }
  .btn::before{
    content:""; position:absolute; inset:0; z-index:-1;
    background:linear-gradient(120deg, transparent 30%, rgba(255,255,255,0.35) 50%, transparent 70%);
    transform:translateX(-120%); transition:transform .6s ease;
  }
  .btn:hover::before{transform:translateX(120%);}
  .btn:hover{transform:translateY(-3px) scale(1.02);}
  .btn:active{transform:translateY(-1px) scale(0.96); transition-duration:.1s;}
  .btn-primary{background:var(--navy-deep); color:var(--white); box-shadow:0 12px 30px -10px rgba(6,35,61,0.55);}
  .btn-primary:hover{background:var(--blue); box-shadow:0 18px 40px -10px rgba(25,118,201,0.6);}
  .btn-gold{background:var(--sand); color:var(--navy-deep); box-shadow:0 12px 26px -10px rgba(216,155,43,0.6);}
  .btn-gold:hover{filter:brightness(1.06); box-shadow:0 18px 36px -10px rgba(216,155,43,0.7);}
  .btn-ghost{background:transparent; color:var(--navy-deep); border:1.5px solid var(--line);}
  .btn-ghost:hover{border-color:var(--blue); color:var(--blue); box-shadow:0 10px 24px -14px rgba(25,118,201,0.45);}
  .btn-sm{padding:9px 18px; font-size:0.82rem;}
  .btn-block{width:100%;}

  /* ===== HEADER ===== */
  header{
    position:sticky; top:0; z-index:200; background:rgba(255,255,255,0.9);
    backdrop-filter:blur(10px); border-bottom:1px solid var(--line);
  }
  .nav{display:flex; align-items:center; justify-content:space-between; padding:16px 24px; max-width:var(--maxw); margin:0 auto;}
  .logo{display:flex; align-items:center; gap:10px; font-family:'Fraunces',serif; font-weight:700; font-size:1.25rem; color:var(--navy-deep);}
  .logo-mark{
    width:38px; height:38px; border-radius:10px;
    background:linear-gradient(145deg, var(--navy) 0%, var(--blue) 100%);
    display:flex; align-items:center; justify-content:center; flex-shrink:0;
    transition:transform .4s cubic-bezier(.2,.8,.2,1), box-shadow .4s ease;
    overflow:hidden;
  }
  .logo-mark .logo-img{
    width:100%; height:100%; object-fit:cover; border-radius:10px; display:block;
  }
  .logo-mark .logo-fallback{display:none; align-items:center; justify-content:center;}
  .logo:hover .logo-mark{transform:rotate(-8deg) scale(1.08); box-shadow:0 8px 18px -6px rgba(25,118,201,0.6);}
  .nav-links{display:flex; gap:30px; align-items:center;}
  .nav-links a{font-size:0.92rem; font-weight:600; color:var(--muted); transition:color .2s ease; position:relative; padding-bottom:2px;}
  .nav-links a::after{
    content:""; position:absolute; left:0; bottom:-2px; width:100%; height:2px; background:var(--sand);
    transform:scaleX(0); transform-origin:right; transition:transform .3s cubic-bezier(.2,.8,.2,1);
  }
  .nav-links a:hover{color:var(--navy-deep);}
  .nav-links a:hover::after{transform:scaleX(1); transform-origin:left;}
  .nav-cta{display:flex; gap:10px; align-items:center;}
  .burger{display:none; flex-direction:column; gap:5px; background:none; border:none; cursor:pointer; padding:6px;}
  .burger span{width:24px; height:2px; background:var(--navy-deep); display:block; border-radius:2px;}
  .mobile-menu{display:none; flex-direction:column; padding:8px 24px 20px; gap:4px; border-top:1px solid var(--line);}
  .mobile-menu a{padding:12px 4px; font-weight:600; color:var(--navy-deep); border-bottom:1px solid var(--line);}
  .mobile-menu.open{display:flex;}

  /* ===== HERO ===== */
  .hero{position:relative; background:linear-gradient(180deg, var(--sky) 0%, var(--white) 100%); overflow:hidden; padding:64px 0 0;}
  .hero-grid{display:grid; grid-template-columns:1.1fr 0.9fr; gap:50px; align-items:center; padding-bottom:60px;}
  .hero h1{font-size:clamp(2.3rem, 4.2vw, 3.5rem); line-height:1.08; margin-bottom:20px;}
  .hero h1 .hl{color:var(--blue); font-style:italic;}
  .hero p.lead{font-size:1.08rem; color:var(--muted); max-width:480px; margin-bottom:30px;}
  .hero-actions{display:flex; gap:14px; flex-wrap:wrap; margin-bottom:38px;}
  .hero-trust-row{display:flex; gap:28px; flex-wrap:wrap;}
  .trust-item{display:flex; flex-direction:column;}
  .trust-item b{font-family:'Fraunces',serif; font-size:1.5rem; color:var(--navy-deep);}
  .trust-item span{font-size:0.78rem; color:var(--muted); font-weight:600;}

  .hero-visual{position:relative; height:440px; border-radius:24px; overflow:hidden; box-shadow:var(--shadow); transition:box-shadow .4s ease;}
  .hero-visual::before{
    content:""; position:absolute; z-index:2; pointer-events:none; inset:0;
    background:radial-gradient(220px circle at var(--mx,50%) var(--my,50%), rgba(255,255,255,0.16), transparent 60%);
    opacity:0; transition:opacity .3s ease;
  }
  .hero-visual:hover::before{opacity:1;}
  .skyline-svg{position:absolute; inset:0; width:100%; height:100%;}
  .hero-card{
    position:absolute; bottom:20px; left:20px; right:20px; z-index:3;
    background:rgba(255,255,255,0.94); backdrop-filter:blur(6px);
    border-radius:14px; padding:16px 18px; display:flex; align-items:center; justify-content:space-between;
    box-shadow:0 10px 30px rgba(6,35,61,0.2);
    transition:transform .4s cubic-bezier(.2,.8,.2,1), box-shadow .4s ease;
  }
  .hero-visual:hover .hero-card{transform:translateY(-4px); box-shadow:0 16px 38px rgba(6,35,61,0.3);}
  .hero-card .hc-label{font-size:0.72rem; color:var(--muted); font-weight:700; text-transform:uppercase; letter-spacing:0.06em;}
  .hero-card .hc-value{font-family:'Fraunces',serif; font-size:1.15rem; color:var(--navy-deep);}

  .wave-divider{display:block; width:100%; height:70px;}

  /* ===== SECTION SHARED ===== */
  section{padding:80px 0;}
  .section-head{max-width:640px; margin-bottom:48px;}
  .section-head h2{font-size:clamp(1.7rem, 3vw, 2.4rem); line-height:1.15;}
  .section-head p{color:var(--muted); margin-top:14px; font-size:1.02rem;}
  .section-head.center{margin-left:auto; margin-right:auto; text-align:center;}

  /* ===== VENTURE STRIP ===== */
  .venture-strip{background:var(--navy-deep); padding:34px 0;}
  .venture-strip .container{display:flex; align-items:center; gap:34px; flex-wrap:wrap; justify-content:space-between;}
  .venture-strip p{color:rgba(255,255,255,0.55); font-size:0.78rem; font-weight:700; text-transform:uppercase; letter-spacing:0.1em; flex-shrink:0;}
  .venture-logos{display:flex; gap:30px; flex-wrap:wrap;}
  .venture-logos span{color:rgba(255,255,255,0.9); font-family:'Fraunces',serif; font-size:1.05rem; font-weight:600; opacity:0.75; transition:opacity .3s ease, transform .3s ease; display:inline-block;}
  .venture-logos span:hover{opacity:1; transform:translateY(-2px); color:var(--sand);}

  /* ===== PROPERTIES ===== */
  /* Property card layout is defined in the PREMIUM PROPERTY CARDS section below. */

  /* ===== WHY US ===== */
  .why-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:22px;}
  .why-card{
    padding:28px 22px; border-radius:16px; background:var(--sky); border:1px solid transparent;
    transition:transform .4s cubic-bezier(.2,.8,.2,1), box-shadow .4s ease, background .4s ease;
  }
  .why-card:hover{transform:translateY(-6px); background:var(--white); box-shadow:0 24px 40px -22px rgba(6,35,61,0.35); border-color:rgba(25,118,201,0.2);}
  .why-icon{
    width:44px; height:44px; border-radius:12px; background:var(--white); display:flex; align-items:center; justify-content:center;
    margin-bottom:16px; box-shadow:0 6px 14px rgba(6,35,61,0.1);
    transition:transform .4s cubic-bezier(.34,1.56,.64,1), box-shadow .4s ease;
  }
  .why-card:hover .why-icon{transform:scale(1.12) rotate(-6deg); box-shadow:0 10px 20px -6px rgba(25,118,201,0.35);}
  .why-card h4{font-size:1.05rem; margin-bottom:8px;}
  .why-card p{font-size:0.9rem; color:var(--muted);}

  /* ===== PROCESS ===== */
  .process-section{background:var(--navy-deep); color:white;}
  .process-section .section-head h2, .process-section .section-head p{color:white;}
  .process-section .section-head p{color:rgba(255,255,255,0.65);}
  .process-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:0; position:relative;}
  .process-step{padding:0 20px; position:relative;}
  .process-step:not(:last-child)::after{
    content:""; position:absolute; top:26px; right:-10px; width:20px; height:1px; background:rgba(255,255,255,0.25);
  }
  .process-num{font-family:'Fraunces',serif; font-size:0.95rem; color:var(--sand); font-weight:700; margin-bottom:14px; transition:transform .35s cubic-bezier(.2,.8,.2,1), color .35s ease; display:inline-block;}
  .process-step h4{color:white; font-size:1.05rem; margin-bottom:10px;}
  .process-step p{color:rgba(255,255,255,0.6); font-size:0.88rem;}
  .process-step{transition:transform .35s ease;}
  .process-step:hover{transform:translateY(-4px);}
  .process-step:hover .process-num{transform:scale(1.15); color:white;}

  /* ===== AREAS ===== */
  .area-chips{display:flex; flex-wrap:wrap; gap:12px;}
  .area-chip{
    padding:12px 20px; border-radius:12px; background:var(--white); border:1px solid var(--line);
    font-weight:700; font-size:0.9rem; color:var(--navy-deep); display:flex; align-items:center; gap:8px;
    transition:transform .3s cubic-bezier(.2,.8,.2,1), box-shadow .3s ease, border-color .3s ease, background .3s ease;
  }
  .area-chip:hover{transform:translateY(-4px) scale(1.03); border-color:var(--blue); background:var(--sky); box-shadow:0 14px 24px -14px rgba(25,118,201,0.5);}

  /* ===== TESTIMONIALS ===== */
  .test-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:24px;}
  .test-card{
    background:var(--white); border:1px solid var(--line); border-radius:16px; padding:26px;
    box-shadow:0 10px 24px -18px rgba(6,35,61,0.3);
    transition:transform .4s cubic-bezier(.2,.8,.2,1), box-shadow .4s ease, border-color .4s ease;
  }
  .test-card:hover{transform:translateY(-6px); box-shadow:0 26px 42px -20px rgba(6,35,61,0.32); border-color:rgba(216,155,43,0.4);}
  .stars{color:var(--sand); font-size:0.9rem; margin-bottom:14px; letter-spacing:2px; transition:letter-spacing .3s ease;}
  .test-card:hover .stars{letter-spacing:4px;}
  .test-card p.quote{font-size:0.95rem; color:var(--ink); margin-bottom:18px;}
  .test-who{display:flex; align-items:center; gap:12px;}
  .test-avatar{width:40px; height:40px; border-radius:50%; background:linear-gradient(135deg,var(--blue),var(--navy)); flex-shrink:0;}
  .test-who b{font-size:0.9rem; display:block;}
  .test-who span{font-size:0.78rem; color:var(--muted);}

  /* ===== CONTACT ===== */
  .contact-section{background:var(--sky);}
  .contact-grid{display:grid; grid-template-columns:1fr 1fr; gap:50px; align-items:start;}
  .contact-info-card{background:var(--navy-deep); color:white; padding:36px; border-radius:20px;}
  .contact-info-card h3{color:white; margin-bottom:10px;}
  .contact-info-card p{color:rgba(255,255,255,0.65); margin-bottom:26px; font-size:0.94rem;}
  .contact-row{display:flex; gap:14px; align-items:flex-start; margin-bottom:20px;}
  .contact-row .ci-icon{width:38px; height:38px; border-radius:10px; background:rgba(255,255,255,0.1); display:flex; align-items:center; justify-content:center; flex-shrink:0;}
  .contact-row b{display:block; font-size:0.95rem;}
  .contact-row span{font-size:0.85rem; color:rgba(255,255,255,0.6);}
  .form-card{background:white; border-radius:20px; padding:34px; box-shadow:var(--shadow); border:1px solid var(--line);}
  .form-row{display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-bottom:14px;}
  .field{display:flex; flex-direction:column; gap:6px; margin-bottom:14px;}
  .field label{font-size:0.8rem; font-weight:700; color:var(--navy-deep);}
  .field input, .field select, .field textarea{
    padding:12px 14px; border-radius:10px; border:1.5px solid var(--line); font-family:inherit; font-size:0.92rem; color:var(--ink); background:var(--white);
    transition:border-color .25s ease, box-shadow .25s ease, transform .25s ease;
  }
  .field input:focus, .field select:focus, .field textarea:focus{outline:none; border-color:var(--blue); box-shadow:0 0 0 4px rgba(25,118,201,0.14); transform:translateY(-1px);}
  .form-card{transition:box-shadow .4s ease, transform .4s ease;}
  .form-card:hover{box-shadow:0 30px 60px -24px rgba(6,35,61,0.35);}
  .form-msg{margin-top:14px; font-size:0.88rem; font-weight:700; display:none;}
  .form-msg.show{display:block;}
  .form-msg.ok{color:#1a8a4c;}
  .form-msg.err{color:#c0392b;}

  /* ===== FOOTER ===== */
  footer{background:var(--navy-deep); color:rgba(255,255,255,0.7); padding:60px 0 26px;}
  .footer-grid{display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:36px; margin-bottom:40px;}
  .footer-grid h4{color:white; font-size:0.95rem; margin-bottom:16px;}
  .footer-grid ul li{margin-bottom:10px; font-size:0.88rem;}
  .footer-grid ul li a:hover{color:var(--sand);}
  .footer-brand p{margin-top:14px; font-size:0.88rem; color:rgba(255,255,255,0.5); max-width:280px;}
  .footer-bottom{border-top:1px solid rgba(255,255,255,0.12); padding-top:22px; display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:12px; font-size:0.8rem; color:rgba(255,255,255,0.45);}
  .footer-bottom a{color:rgba(255,255,255,0.5);}
  .footer-bottom a:hover{color:var(--sand);}

  /* ===== WHATSAPP FLOAT ===== */
  .wa-float{
    position:fixed; bottom:22px; right:22px; z-index:300; width:58px; height:58px; border-radius:50%;
    background:#25D366; display:flex; align-items:center; justify-content:center; box-shadow:0 10px 24px rgba(0,0,0,0.25);
    transition:transform .3s cubic-bezier(.34,1.56,.64,1), box-shadow .3s ease;
    animation:waPulse 2.6s ease-in-out infinite;
  }
  .wa-float:hover{transform:scale(1.12) rotate(8deg); box-shadow:0 14px 30px rgba(0,0,0,0.32); animation-play-state:paused;}
  @keyframes waPulse{
    0%,100%{box-shadow:0 10px 24px rgba(0,0,0,0.25), 0 0 0 0 rgba(37,211,102,0.5);}
    50%{box-shadow:0 10px 24px rgba(0,0,0,0.25), 0 0 0 10px rgba(37,211,102,0);}
  }

  /* ===== MODAL (enquiry + admin) ===== */
  .modal-overlay{
    position:fixed; inset:0; background:rgba(6,35,61,0.6); backdrop-filter:blur(3px); z-index:500;
    display:none; align-items:center; justify-content:center; padding:20px;
  }
  .modal-overlay.open{display:flex;}
  .modal{background:white; border-radius:18px; max-width:520px; width:100%; max-height:88vh; overflow-y:auto; padding:30px; position:relative;}
  .modal-close{position:absolute; top:16px; right:16px; background:var(--sky); border:none; width:34px; height:34px; border-radius:50%; cursor:pointer; font-size:1.1rem; color:var(--navy-deep);}
  .modal h3{margin-bottom:6px;}
  .modal p.sub{color:var(--muted); font-size:0.9rem; margin-bottom:22px;}

  /* ===== REVEAL ANIM ===== */
  .reveal{opacity:0; transform:translateY(18px); transition:opacity .6s ease, transform .6s ease;}
  .reveal.in{opacity:1; transform:translateY(0);}

  @media (prefers-reduced-motion: reduce){
    *{animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important; scroll-behavior:auto !important;}
  }

  /* ===== RESPONSIVE ===== */
  @media (max-width:980px){
    .hero-grid{grid-template-columns:1fr;}
    .hero-visual{height:320px; order:-1;}
    .prop-grid{grid-template-columns:repeat(2,1fr);}
    .why-grid{grid-template-columns:repeat(2,1fr);}
    .process-grid{grid-template-columns:repeat(2,1fr); gap:30px;}
    .process-step:not(:last-child)::after{display:none;}
    .test-grid{grid-template-columns:1fr;}
    .contact-grid{grid-template-columns:1fr;}
    .footer-grid{grid-template-columns:1fr 1fr;}
    .admin-grid{grid-template-columns:1fr;}
  }
  @media (max-width:680px){
    .nav-links{display:none;}
    .burger{display:flex;}
    .nav-cta .btn-ghost{display:none;}
    .prop-grid{grid-template-columns:1fr;}
    .why-grid{grid-template-columns:1fr;}
    .process-grid{grid-template-columns:1fr;}
    .form-row{grid-template-columns:1fr;}
    .footer-grid{grid-template-columns:1fr;}
    .hero-trust-row{gap:18px;}
  }


  /* ===========================================================
     PREMIUM PROPERTY CARDS
  =========================================================== */

  .prop-grid{
    display:grid;
    grid-template-columns:repeat(4, minmax(0, 1fr));
    gap:22px;
    margin-top:50px;
    align-items:start;
  }

  .prop-card{
    width:100%;
    min-width:0;
    background:var(--white);
    border:1px solid rgba(0,0,0,.05);
    border-radius:18px;
    overflow:hidden;
    position:relative;
    box-shadow:0 10px 25px rgba(0,0,0,.08);
    transform-style:preserve-3d;
    will-change:transform;
    opacity:0;
    transform:translateY(50px);
    transition:
      opacity .8s ease,
      transform .45s cubic-bezier(.2,.8,.2,1),
      box-shadow .4s ease,
      border-color .3s ease;
  }

  .prop-card.show-card,
  .prop-card.reveal.in{
    opacity:1;
    transform:translateY(0);
  }

  .prop-card:hover{
    transform:translateY(-8px) rotateX(1deg) rotateY(-1deg);
    box-shadow:0 24px 45px rgba(6,35,61,.16);
    border-color:rgba(25,118,201,.25);
  }

  .prop-card::before{
    content:"";
    position:absolute;
    left:0;
    top:0;
    width:100%;
    height:4px;
    background:linear-gradient(90deg,#d4af37,#ffd95b);
    opacity:0;
    transition:opacity .4s ease;
    z-index:4;
  }

  .prop-card:hover::before{
    opacity:1;
  }

  .prop-card::after{
    content:"";
    position:absolute;
    top:-100%;
    left:-60%;
    width:40%;
    height:300%;
    background:linear-gradient(
      90deg,
      transparent,
      rgba(255,255,255,.35),
      transparent
    );
    transform:rotate(25deg);
    transition:left 1s ease;
    pointer-events:none;
    z-index:3;
  }

  .prop-card:hover::after{
    left:140%;
  }

  /* Property image */
  .prop-image{
    position:relative;
    overflow:hidden;
    height:120px;
    background:#000;
  }

  .prop-image img{
    width:100%;
    height:100%;
    object-fit:cover;
    filter:brightness(.95);
    transition:transform .8s ease, filter .5s ease;
  }

  .prop-card:hover .prop-image img{
    transform:scale(1.07);
    filter:brightness(1);
  }

  /* Approval badges */
  .project-badges{
    position:absolute;
    top:12px;
    left:12px;
    right:12px;
    display:flex;
    flex-wrap:wrap;
    gap:6px;
    z-index:2;
  }

  .project-badges span{
    background:rgba(255,255,255,.9);
    backdrop-filter:blur(12px);
    -webkit-backdrop-filter:blur(12px);
    padding:4px 8px;
    border-radius:50px;
    font-size:9px;
    line-height:1.2;
    font-weight:800;
    color:var(--navy-deep);
    transition:transform .3s ease, background .3s ease, color .3s ease;
  }

  .project-badges span:hover{
    transform:translateY(-2px);
    background:var(--sand);
    color:var(--white);
  }

  /* Card content */
  .prop-content{
    padding:12px;
  }

  .location{
    font-size:11px;
    color:var(--muted);
    margin-bottom:5px;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
  }

  .prop-content h3{
    font-size:17px;
    line-height:1.25;
    margin-bottom:6px;
    color:var(--navy-deep);
  }

  .developer{
    color:#666;
    margin-bottom:8px;
    font-size:11px;
    line-height:1.4;
  }

  .divider{
    height:1px;
    background:#ececec;
    margin:9px 0;
  }

  /* Price and plot sizes */
  .property-info{
    display:grid;
    grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);
    gap:10px;
    margin-bottom:10px;
  }

  .property-info > div{
    min-width:0;
  }

  .property-info small{
    display:block;
    font-size:10px;
    color:#888;
    margin-bottom:3px;
  }

  .property-info strong{
    display:block;
    font-size:13px;
    line-height:1.35;
    color:var(--navy-deep);
    overflow-wrap:anywhere;
  }

  .property-info .call-price{
    color:var(--navy-deep);
    font-size:14px;
  }

  /* Feature chips */
  .features{
    display:grid;
    grid-template-columns:repeat(2, minmax(0,1fr));
    gap:6px;
    margin-bottom:12px;
  }

  .features span{
    min-width:0;
    background:#f8f8f8;
    padding:5px 6px;
    border-radius:10px;
    font-size:10px;
    line-height:1.3;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
    transition:background .3s ease, color .3s ease, transform .3s ease;
  }

  .features span:hover{
    background:var(--sand);
    color:var(--white);
    transform:translateY(-1px);
  }

  .features i{
    margin-right:3px;
  }

  /* Card actions */
  .card-buttons{
    display:grid;
    grid-template-columns:repeat(2, minmax(0,1fr));
    gap:8px;
    margin-top:10px;
  }

  .card-buttons .btn{
    width:100%;
    min-width:0;
    min-height:36px;
    padding:8px 6px;
    border-radius:12px;
    font-size:11px;
    line-height:1.15;
    display:flex;
    justify-content:center;
    align-items:center;
    text-align:center;
    box-sizing:border-box;
    white-space:nowrap;
    position:relative;
    overflow:hidden;
  }

  .btn-outline{
    border:1.5px solid var(--sand);
    color:var(--sand);
    background:var(--white);
  }

  .btn-outline:hover{
    background:var(--sand);
    color:var(--white);
  }

  .card-buttons .btn-primary{
    background:var(--navy-deep);
    color:var(--white);
    box-shadow:0 8px 18px rgba(12,47,93,.20);
  }

  .card-buttons .btn-primary:hover{
    background:var(--blue);
    box-shadow:0 12px 24px rgba(25,118,201,.25);
  }

  .card-buttons .btn::after{
    content:"";
    position:absolute;
    width:18px;
    height:18px;
    background:rgba(255,255,255,.25);
    border-radius:50%;
    left:50%;
    top:50%;
    transform:translate(-50%,-50%) scale(0);
    transition:transform .6s ease, opacity .6s ease;
    pointer-events:none;
  }

  .card-buttons .btn:hover::after{
    transform:translate(-50%,-50%) scale(12);
    opacity:0;
  }

  /* ===== PROPERTY GRID RESPONSIVE ===== */

  /* Desktop: 4 cards */
  @media (min-width:1201px){
    .prop-grid{
      grid-template-columns:repeat(4, minmax(0,1fr));
    }
  }

  /* Tablet / smaller laptops: 3 cards */
  @media (min-width:769px) and (max-width:1200px){
    .prop-grid{
      grid-template-columns:repeat(3, minmax(0,1fr));
      gap:18px;
    }
  }

  /* Phones and narrow tablets: 2 cards */
  @media (min-width:431px) and (max-width:768px){
    .container{
      padding-left:14px;
      padding-right:14px;
    }

    .prop-grid{
      grid-template-columns:repeat(2, minmax(0,1fr));
      gap:12px;
      margin-top:36px;
    }

    .prop-image{
      height:105px;
    }

    .prop-content{
      padding:10px;
    }

    .prop-content h3{
      font-size:15px;
    }

    .developer{
      font-size:10px;
    }

    .property-info{
      grid-template-columns:1fr;
      gap:6px;
    }

    .features{
      grid-template-columns:1fr;
    }

    .card-buttons{
      grid-template-columns:1fr;
      gap:6px;
    }

    .card-buttons .btn{
      font-size:10px;
      min-height:34px;
    }
  }

  /* Very small phones: 1 card */
  @media (max-width:430px){
    .prop-grid{
      grid-template-columns:1fr;
      gap:16px;
      margin-top:32px;
    }

    .prop-card{
      max-width:330px;
      margin-inline:auto;
    }

    .prop-image{
      height:125px;
    }
  }

  /* ============================================================
   PROJECT DETAILS MODAL
   Srujan Estates
============================================================ */


/* ============================================================
   1. PAGE LOCK WHEN MODAL IS OPEN
============================================================ */

body.modal-open {
    overflow: hidden;
}


/* ============================================================
   2. MODAL BACKDROP
============================================================ */

.project-modal-overlay {
    position: fixed;
    inset: 0;

    width: 100%;
    height: 100vh;
    height: 100dvh;

    background: rgba(8, 20, 35, 0.72);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);

    display: flex;
    align-items: center;
    justify-content: center;

    padding: 24px;

    opacity: 0;
    visibility: hidden;
    pointer-events: none;

    transition:
        opacity 0.3s ease,
        visibility 0.3s ease;

    z-index: 99999;
}


/* MODAL OPEN STATE */

.project-modal-overlay.open {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
}


/* ============================================================
   3. MAIN MODAL CONTAINER
============================================================ */

.project-modal {
    position: relative;

    width: min(1100px, 100%);
    max-height: calc(100vh - 48px);
    max-height: calc(100dvh - 48px);

    overflow-y: auto;
    overflow-x: hidden;

    background: #ffffff;

    border-radius: 24px;

    box-shadow:
        0 30px 80px rgba(0, 0, 0, 0.28),
        0 5px 20px rgba(0, 0, 0, 0.12);

    transform:
        translateY(25px)
        scale(0.97);

    opacity: 0;

    transition:
        transform 0.35s cubic-bezier(0.22, 1, 0.36, 1),
        opacity 0.3s ease;

    scrollbar-width: thin;
    scrollbar-color: #b8c6d3 transparent;
}


/* OPEN ANIMATION */

.project-modal-overlay.open .project-modal {
    transform:
        translateY(0)
        scale(1);

    opacity: 1;
}


/* CUSTOM SCROLLBAR */

.project-modal::-webkit-scrollbar {
    width: 7px;
}

.project-modal::-webkit-scrollbar-track {
    background: transparent;
}

.project-modal::-webkit-scrollbar-thumb {
    background: #b8c6d3;
    border-radius: 20px;
}


/* ============================================================
   4. CLOSE BUTTON
============================================================ */

.project-modal-close {
    position: absolute;

    top: 18px;
    right: 18px;

    width: 42px;
    height: 42px;

    border: none;
    border-radius: 50%;

    display: flex;
    align-items: center;
    justify-content: center;

    background: #f1f5f9;
    color: #18324b;

    font-size: 19px;

    cursor: pointer;

    z-index: 20;

    transition:
        background 0.2s ease,
        transform 0.2s ease,
        color 0.2s ease;
}


.project-modal-close:hover {
    background: #e2eaf1;
    color: #0f69b4;

    transform: rotate(90deg);
}


/* ============================================================
   5. PROJECT HEADER
============================================================ */

.project-modal-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;

    gap: 30px;

    padding:
        34px
        85px
        28px
        34px;

    border-bottom: 1px solid #e8eef3;

    background:
        linear-gradient(
            135deg,
            #ffffff 0%,
            #f7fbff 100%
        );
}


.project-modal-location {
    display: inline-flex;
    align-items: center;

    margin-bottom: 8px;

    font-size: 0.85rem;
    font-weight: 700;

    color: #1976c9;

    letter-spacing: 0.02em;
}


.project-modal-location::before {
    content: "📍";

    margin-right: 5px;

    font-size: 0.9rem;
}


.project-modal-header h2 {
    margin: 0;

    font-size: clamp(
        1.55rem,
        3vw,
        2.25rem
    );

    line-height: 1.15;

    color: #102a43;
}


.project-modal-header p {
    margin:
        9px
        0
        0;

    color: #65798c;

    font-size: 0.95rem;
}


/* ============================================================
   6. PRICE BOX
============================================================ */

.modal-price-box {
    min-width: 155px;

    padding: 13px 18px;

    background: #eef7ff;

    border: 1px solid #d9ebfb;
    border-radius: 14px;

    text-align: right;
}


.modal-price-box small {
    display: block;

    margin-bottom: 3px;

    color: #71869a;

    font-size: 0.75rem;
}


.modal-price-box strong {
    display: block;

    color: #1267ad;

    font-size: 1rem;
}


/* ============================================================
   7. PROJECT GALLERY
============================================================ */

.project-gallery {
    padding: 30px 34px 20px;
}


/* MAIN IMAGE */

.gallery-main {
    width: 100%;
    height: 440px;

    overflow: hidden;

    border-radius: 18px;

    background: #edf2f6;
}


.gallery-main img {
    display: block;

    width: 100%;
    height: 100%;

    object-fit: cover;

    transition: transform 0.5s ease;
}


.gallery-main:hover img {
    transform: scale(1.025);
}


/* ============================================================
   8. GALLERY THUMBNAILS
============================================================ */

.gallery-thumbs {
    display: flex;

    gap: 12px;

    margin-top: 14px;

    overflow-x: auto;

    padding:
        2px
        2px
        7px;

    scrollbar-width: thin;
}


.gallery-thumb {
    flex: 0 0 105px;

    width: 105px;
    height: 72px;

    padding: 3px;

    border: 2px solid transparent;
    border-radius: 11px;

    background: #ffffff;

    cursor: pointer;

    overflow: hidden;

    transition:
        border-color 0.2s ease,
        transform 0.2s ease,
        box-shadow 0.2s ease;
}


.gallery-thumb img {
    display: block;

    width: 100%;
    height: 100%;

    object-fit: cover;

    border-radius: 7px;
}


.gallery-thumb:hover {
    transform: translateY(-2px);

    border-color: #9bc9ef;
}


.gallery-thumb.active {
    border-color: #1976c9;

    box-shadow:
        0 3px 12px
        rgba(25, 118, 201, 0.22);
}


/* ============================================================
   9. QUICK INFORMATION
============================================================ */

.project-quick-info {
    display: grid;

    grid-template-columns:
        repeat(4, 1fr);

    gap: 12px;

    padding:
        10px
        34px
        30px;
}


.project-quick-info > div {
    min-height: 86px;

    display: flex;
    align-items: center;

    gap: 12px;

    padding: 15px;

    background: #f7fafc;

    border: 1px solid #e5edf3;
    border-radius: 14px;
}


.project-quick-info i {
    width: 38px;
    height: 38px;

    flex-shrink: 0;

    display: flex;
    align-items: center;
    justify-content: center;

    border-radius: 10px;

    background: #e8f4fd;

    color: #1976c9;

    font-size: 17px;
}


.project-quick-info span {
    display: block;

    color: #7a8c9c;

    font-size: 0.75rem;
}


.project-quick-info strong {
    display: block;

    margin-top: 3px;

    color: #18324b;

    font-size: 0.87rem;
    line-height: 1.35;
}


/* ============================================================
   10. PROJECT DETAIL GRID
============================================================ */

.project-details-grid {
    display: grid;

    grid-template-columns:
        repeat(2, minmax(0, 1fr));

    gap: 18px;

    padding:
        5px
        34px
        32px;
}


/* INDIVIDUAL DETAIL CARD */

.project-detail-box {
    padding: 22px;

    border: 1px solid #e3ebf1;
    border-radius: 16px;

    background: #ffffff;

    box-shadow:
        0 5px 18px
        rgba(23, 54, 78, 0.045);
}


.project-detail-box h3 {
    display: flex;
    align-items: center;

    gap: 9px;

    margin:
        0
        0
        16px;

    color: #173b5d;

    font-size: 1rem;
}


.project-detail-box h3 i {
    color: #1976c9;
}


/* ============================================================
   11. DETAIL LISTS
============================================================ */

.project-detail-box ul {
    list-style: none;

    padding: 0;
    margin: 0;

    display: grid;

    gap: 11px;
}


.project-detail-box li {
    display: flex;
    align-items: flex-start;

    gap: 9px;

    color: #52697d;

    font-size: 0.9rem;

    line-height: 1.45;
}


.project-detail-box li i {
    flex-shrink: 0;

    margin-top: 3px;

    color: #22a06b;

    font-size: 0.82rem;
}


/* ============================================================
   12. YOUTUBE WALKTHROUGH SECTION
============================================================ */

.project-video-section {
    margin:
        0
        34px
        32px;

    padding: 24px;

    background:
        linear-gradient(
            135deg,
            #f8fafc,
            #f2f7fb
        );

    border: 1px solid #e1eaf1;
    border-radius: 18px;
}


.project-video-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 20px;

    margin-bottom: 18px;
}


.video-eyebrow {
    display: block;

    margin-bottom: 4px;

    color: #1976c9;

    font-size: 0.68rem;
    font-weight: 800;

    letter-spacing: 0.12em;
}


.project-video-heading h3 {
    margin: 0;

    color: #173b5d;

    font-size: 1.15rem;
}


.project-video-heading > i {
    color: #e53935;

    font-size: 2rem;
}


/* RESPONSIVE VIDEO */

.youtube-wrapper {
    position: relative;

    width: 100%;

    aspect-ratio: 16 / 9;

    overflow: hidden;

    border-radius: 14px;

    background: #111;
}


.youtube-wrapper iframe {
    position: absolute;

    inset: 0;

    width: 100%;
    height: 100%;

    border: 0;
}


/* ============================================================
   13. MODAL BOTTOM CTA
============================================================ */

.project-modal-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 20px;

    padding:
        22px
        34px;

    background: #f7fafc;

    border-top: 1px solid #e1e9ef;
}


.project-modal-footer-info small {
    display: block;

    margin-bottom: 3px;

    color: #71869a;

    font-size: 0.75rem;
}


.project-modal-footer-info strong {
    display: block;

    color: #173b5d;

    font-size: 1.1rem;
}


/* ============================================================
   14. WHATSAPP BUTTON
============================================================ */

.project-whatsapp-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    gap: 9px;

    min-height: 48px;

    padding:
        12px
        22px;

    border-radius: 10px;

    background: #20a85a;
    color: #ffffff;

    text-decoration: none;

    font-size: 0.92rem;
    font-weight: 700;

    box-shadow:
        0 5px 15px
        rgba(32, 168, 90, 0.22);

    transition:
        transform 0.2s ease,
        box-shadow 0.2s ease,
        background 0.2s ease;
}


.project-whatsapp-btn:hover {
    background: #188d4a;

    transform: translateY(-2px);

    box-shadow:
        0 8px 20px
        rgba(32, 168, 90, 0.3);

    color: #ffffff;
}


.project-whatsapp-btn i {
    font-size: 1.15rem;
}


/* ============================================================
   15. TABLET RESPONSIVE
============================================================ */

@media (max-width: 900px) {

    .project-modal-overlay {
        padding: 16px;
    }


    .project-modal {
        max-height:
            calc(100dvh - 32px);

        border-radius: 20px;
    }


    .project-quick-info {
        grid-template-columns:
            repeat(2, 1fr);
    }


    .gallery-main {
        height: 360px;
    }

}


/* ============================================================
   16. MOBILE RESPONSIVE
============================================================ */

@media (max-width: 650px) {

    .project-modal-overlay {
        padding: 0;

        align-items: flex-end;
    }


    .project-modal {
        width: 100%;

        max-height: 94vh;
        max-height: 94dvh;

        border-radius:
            20px
            20px
            0
            0;

        transform:
            translateY(40px);
    }


    .project-modal-overlay.open .project-modal {
        transform:
            translateY(0);
    }


    /* CLOSE BUTTON */

    .project-modal-close {
        position: sticky;

        float: right;

        top: 12px;
        right: 12px;

        margin:
            12px
            12px
            -54px
            0;

        width: 39px;
        height: 39px;

        background:
            rgba(255,255,255,0.94);

        box-shadow:
            0 3px 12px
            rgba(0,0,0,0.12);
    }


    /* HEADER */

    .project-modal-header {
        display: block;

        padding:
            25px
            58px
            22px
            20px;
    }


    .project-modal-header h2 {
        font-size: 1.55rem;
    }


    .modal-price-box {
        width: fit-content;
        min-width: 0;

        margin-top: 16px;

        text-align: left;
    }


    /* GALLERY */

    .project-gallery {
        padding:
            20px
            20px
            15px;
    }


    .gallery-main {
        height: 260px;

        border-radius: 14px;
    }


    .gallery-thumb {
        flex-basis: 85px;

        width: 85px;
        height: 60px;
    }


    /* QUICK INFO */

    .project-quick-info {
        grid-template-columns:
            1fr 1fr;

        gap: 9px;

        padding:
            5px
            20px
            25px;
    }


    .project-quick-info > div {
        min-height: 78px;

        padding: 11px;

        gap: 9px;
    }


    .project-quick-info i {
        width: 32px;
        height: 32px;

        font-size: 14px;
    }


    .project-quick-info strong {
        font-size: 0.78rem;
    }


    /* DETAIL CARDS */

    .project-details-grid {
        grid-template-columns: 1fr;

        gap: 12px;

        padding:
            0
            20px
            25px;
    }


    .project-detail-box {
        padding: 18px;
    }


    /* YOUTUBE */

    .project-video-section {
        margin:
            0
            20px
            25px;

        padding: 18px;
    }


    /* FOOTER */

    .project-modal-footer {
        flex-direction: column;

        align-items: stretch;

        padding:
            18px
            20px
            22px;
    }


    .project-whatsapp-btn {
        width: 100%;
    }

}


/* ============================================================
   17. VERY SMALL PHONES
============================================================ */

@media (max-width: 400px) {

    .project-quick-info {
        grid-template-columns: 1fr;
    }


    .gallery-main {
        height: 220px;
    }


    .project-modal-header h2 {
        font-size: 1.35rem;
    }

}


/* ============================================================
   18. REDUCED MOTION ACCESSIBILITY
============================================================ */

@media (prefers-reduced-motion: reduce) {

    .project-modal,
    .project-modal-overlay,
    .gallery-main img,
    .gallery-thumb,
    .project-modal-close,
    .project-whatsapp-btn {
        transition: none;
    }

}


/* ============================================================
   SRUJAN ESTATES - HERO PROJECT CAROUSEL
============================================================ */


/* ============================================================
   1. MAIN CAROUSEL CONTAINER
============================================================ */

.hero-carousel {
    position: relative;

    width: 100%;
    height: 520px;

    overflow: hidden;

    border-radius: 28px;

    background: #071a2b;

    box-shadow:
        0 28px 65px rgba(5, 27, 47, 0.18);

    isolation: isolate;
}


/* ============================================================
   2. INDIVIDUAL SLIDES
============================================================ */

.hero-carousel .hero-slide {
    position: absolute;
    inset: 0;

    width: 100%;
    height: 100%;

    opacity: 0;
    visibility: hidden;

    transform: scale(1.03);

    transition:
        opacity 0.75s ease,
        visibility 0.75s ease,
        transform 5.5s ease;

    z-index: 1;
}


/* ACTIVE SLIDE */

.hero-carousel .hero-slide.active {
    opacity: 1;
    visibility: visible;

    transform: scale(1);

    z-index: 2;
}


/* ============================================================
   3. PROJECT IMAGE
============================================================ */

.hero-slide-image {
    position: absolute;
    inset: 0;

    width: 100%;
    height: 100%;

    display: block;

    object-fit: cover;
    object-position: center;

    transform: scale(1);

    transition:
        transform 6s ease;

    user-select: none;

    pointer-events: none;
}


/* SLOW CINEMATIC ZOOM */

.hero-slide.active .hero-slide-image {
    transform: scale(1.06);
}


/* ============================================================
   4. IMAGE OVERLAY
============================================================ */

.hero-image-overlay {
    position: absolute;
    inset: 0;

    background:
        linear-gradient(
            to bottom,
            rgba(4, 20, 34, 0.04) 20%,
            rgba(4, 20, 34, 0.12) 55%,
            rgba(4, 20, 34, 0.55) 100%
        );

    z-index: 1;

    pointer-events: none;
}


/* ============================================================
   5. PROJECT INFORMATION CARD
============================================================ */

.hero-carousel .hero-card {
    position: absolute;

    left: 22px;
    right: 22px;
    bottom: 22px;

    width: auto;

    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 18px;

    padding: 17px 18px;

    background:
        rgba(255, 255, 255, 0.94);

    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);

    border:
        1px solid rgba(255, 255, 255, 0.65);

    border-radius: 17px;

    box-shadow:
        0 12px 32px rgba(0, 0, 0, 0.16);

    z-index: 5;

    transform: translateY(15px);

    opacity: 0;

    transition:
        transform 0.65s ease 0.15s,
        opacity 0.65s ease 0.15s;
}


/* INFORMATION CARD ENTERS WITH ACTIVE SLIDE */

.hero-slide.active .hero-card {
    transform: translateY(0);

    opacity: 1;
}


/* ============================================================
   6. PROJECT TEXT
============================================================ */

.hero-card-text {
    min-width: 0;

    flex: 1;
}


.hero-carousel .hc-label {
    margin-bottom: 4px;

    color: #1976c9;

    font-size: 10px;
    font-weight: 800;

    text-transform: uppercase;

    letter-spacing: 0.12em;
}


.hero-carousel .hc-value {
    color: #09253d;

    font-size: 18px;
    font-weight: 800;

    line-height: 1.25;
}


.hero-carousel .hc-location {
    display: flex;
    align-items: center;

    gap: 5px;

    margin-top: 5px;

    color: #65798c;

    font-size: 12px;
    font-weight: 600;
}


.hero-carousel .hc-location i {
    color: #1976c9;

    font-size: 11px;
}


/* ============================================================
   7. EXPLORE BUTTON
============================================================ */

.hero-carousel .hero-explore-btn {
    flex-shrink: 0;

    min-width: 92px;

    padding: 10px 15px;

    border: 0;

    border-radius: 11px;

    background:
        linear-gradient(
            135deg,
            #f0c96b,
            #d7aa42
        );

    color: #09253d;

    font-size: 12px;
    font-weight: 800;

    cursor: pointer;

    box-shadow:
        0 7px 18px
        rgba(190, 145, 42, 0.25);

    transition:
        transform 0.25s ease,
        box-shadow 0.25s ease,
        filter 0.25s ease;
}


.hero-carousel .hero-explore-btn:hover {
    transform: translateY(-2px);

    box-shadow:
        0 10px 24px
        rgba(190, 145, 42, 0.34);

    filter: brightness(1.04);
}


/* ============================================================
   8. PREVIOUS / NEXT ARROWS
============================================================ */

.hero-carousel-arrow {
    position: absolute;

    top: 50%;

    width: 42px;
    height: 42px;

    display: flex;
    align-items: center;
    justify-content: center;

    padding: 0;

    border:
        1px solid rgba(255, 255, 255, 0.38);

    border-radius: 50%;

    background:
        rgba(7, 26, 43, 0.42);

    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);

    color: #ffffff;

    font-size: 14px;

    cursor: pointer;

    transform:
        translateY(-50%)
        scale(0.9);

    opacity: 0;

    z-index: 10;

    transition:
        opacity 0.25s ease,
        transform 0.25s ease,
        background 0.25s ease;
}


/* LEFT ARROW */

.hero-carousel-prev {
    left: 16px;
}


/* RIGHT ARROW */

.hero-carousel-next {
    right: 16px;
}


/* SHOW ARROWS ON HOVER */

.hero-carousel:hover .hero-carousel-arrow {
    opacity: 1;

    transform:
        translateY(-50%)
        scale(1);
}


.hero-carousel-arrow:hover {
    background:
        rgba(25, 118, 201, 0.9);

    border-color:
        rgba(255, 255, 255, 0.75);
}


/* ============================================================
   9. CAROUSEL DOTS
============================================================ */

.hero-carousel-dots {
    position: absolute;

    left: 50%;
    bottom: 132px;

    display: flex;
    align-items: center;

    gap: 7px;

    transform: translateX(-50%);

    padding: 6px 9px;

    background:
        rgba(5, 24, 40, 0.32);

    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);

    border-radius: 30px;

    z-index: 10;
}


.hero-dot {
    width: 7px;
    height: 7px;

    padding: 0;

    border: none;

    border-radius: 50%;

    background:
        rgba(255, 255, 255, 0.6);

    cursor: pointer;

    transition:
        width 0.3s ease,
        background 0.3s ease,
        border-radius 0.3s ease;
}


.hero-dot.active {
    width: 22px;

    border-radius: 20px;

    background: #ffffff;
}


/* ============================================================
   10. SUBTLE BORDER / PREMIUM EDGE
============================================================ */

.hero-carousel::after {
    content: "";

    position: absolute;
    inset: 0;

    border:
        1px solid rgba(255, 255, 255, 0.15);

    border-radius: inherit;

    pointer-events: none;

    z-index: 12;
}


/* ============================================================
   11. TABLET
============================================================ */

@media (max-width: 1100px) {

    .hero-carousel {
        height: 470px;
    }


    .hero-carousel .hero-card {
        left: 18px;
        right: 18px;
        bottom: 18px;
    }


    .hero-carousel-dots {
        bottom: 126px;
    }

}


/* ============================================================
   12. SMALL TABLET
============================================================ */

@media (max-width: 850px) {

    .hero-carousel {
        height: 430px;

        border-radius: 22px;
    }


    .hero-carousel .hc-value {
        font-size: 16px;
    }


    .hero-carousel-arrow {
        opacity: 1;

        width: 38px;
        height: 38px;

        transform:
            translateY(-50%)
            scale(1);
    }

}


/* ============================================================
   13. MOBILE
============================================================ */

@media (max-width: 650px) {

    .hero-carousel {
        height: 400px;

        border-radius: 20px;
    }


    .hero-carousel .hero-card {
        left: 12px;
        right: 12px;
        bottom: 12px;

        gap: 10px;

        padding: 13px 13px;

        border-radius: 14px;
    }


    .hero-carousel .hc-label {
        font-size: 8px;
    }


    .hero-carousel .hc-value {
        font-size: 14px;
    }


    .hero-carousel .hc-location {
        font-size: 10px;
    }


    .hero-carousel .hero-explore-btn {
        min-width: 72px;

        padding: 8px 10px;

        font-size: 10px;
    }


    .hero-carousel-dots {
        bottom: 105px;

        gap: 5px;

        padding: 5px 7px;
    }


    .hero-dot {
        width: 6px;
        height: 6px;
    }


    .hero-dot.active {
        width: 18px;
    }


    .hero-carousel-arrow {
        width: 34px;
        height: 34px;

        font-size: 11px;
    }


    .hero-carousel-prev {
        left: 10px;
    }


    .hero-carousel-next {
        right: 10px;
    }

}


/* ============================================================
   14. VERY SMALL MOBILE
============================================================ */

@media (max-width: 420px) {

    .hero-carousel {
        height: 360px;
    }


    .hero-carousel .hero-card {
        align-items: flex-end;
    }


    .hero-carousel .hc-value {
        font-size: 13px;
    }


    .hero-carousel .hc-location {
        margin-top: 3px;
    }

}


/* ============================================================
   15. ACCESSIBILITY
============================================================ */

@media (prefers-reduced-motion: reduce) {

    .hero-carousel .hero-slide,
    .hero-slide-image,
    .hero-carousel .hero-card,
    .hero-carousel-arrow,
    .hero-dot,
    .hero-explore-btn {
        transition: none;
    }

}


/* ============================================================
   SRUJAN ESTATES - PREMIUM ENQUIRY MODAL
============================================================ */


/* ============================================================
   1. ENQUIRY MODAL CONTAINER
============================================================ */

.enquiry-modal {
    position: relative;

    width: min(680px, calc(100% - 32px));
    max-height: 90vh;

    padding: 0;

    overflow-y: auto;
    overflow-x: hidden;

    background: #ffffff;

    border-radius: 24px;

    border: 1px solid rgba(6, 35, 61, 0.10);

    box-shadow:
        0 30px 80px rgba(6, 35, 61, 0.25);

    scrollbar-width: thin;
    scrollbar-color:
        rgba(25, 118, 201, 0.35)
        transparent;
}


/* Custom scrollbar */

.enquiry-modal::-webkit-scrollbar {
    width: 6px;
}

.enquiry-modal::-webkit-scrollbar-track {
    background: transparent;
}

.enquiry-modal::-webkit-scrollbar-thumb {
    background: rgba(25, 118, 201, 0.30);

    border-radius: 20px;
}


/* ============================================================
   2. CLOSE BUTTON
============================================================ */

.enquiry-modal .modal-close {
    position: absolute;

    top: 16px;
    right: 16px;

    width: 38px;
    height: 38px;

    display: flex;
    align-items: center;
    justify-content: center;

    padding: 0;

    border: 1px solid rgba(255, 255, 255, 0.22);

    border-radius: 50%;

    background: rgba(255, 255, 255, 0.12);

    color: #ffffff;

    font-size: 15px;

    cursor: pointer;

    z-index: 20;

    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);

    transition:
        transform 0.25s ease,
        background 0.25s ease,
        color 0.25s ease;
}


.enquiry-modal .modal-close:hover {
    background: #ffffff;

    color: var(--navy-deep);

    transform: rotate(90deg);
}


/* ============================================================
   3. PREMIUM HEADER
============================================================ */

.enquiry-modal-header {
    position: relative;

    display: flex;
    align-items: flex-start;

    gap: 17px;

    padding: 27px 70px 25px 28px;

    background:
        radial-gradient(
            circle at 85% 20%,
            rgba(58, 143, 218, 0.28),
            transparent 35%
        ),
        linear-gradient(
            135deg,
            #06233d 0%,
            #0a3557 60%,
            #0d4876 100%
        );

    color: #ffffff;

    overflow: hidden;
}


/* Decorative glow */

.enquiry-modal-header::after {
    content: "";

    position: absolute;

    width: 160px;
    height: 160px;

    right: -70px;
    bottom: -100px;

    border-radius: 50%;

    background: rgba(216, 155, 43, 0.18);

    pointer-events: none;
}


/* ============================================================
   4. HEADER ICON
============================================================ */

.enquiry-icon {
    width: 48px;
    height: 48px;

    flex: 0 0 48px;

    display: flex;
    align-items: center;
    justify-content: center;

    border-radius: 14px;

    background:
        linear-gradient(
            135deg,
            #f1cc76,
            #d89b2b
        );

    color: #06233d;

    font-size: 19px;

    box-shadow:
        0 10px 24px rgba(216, 155, 43, 0.22);
}


/* ============================================================
   5. HEADER TEXT
============================================================ */

.enquiry-eyebrow {
    display: block;

    margin-bottom: 4px;

    color: #efc768;

    font-family: 'Manrope', sans-serif;

    font-size: 10px;
    font-weight: 800;

    letter-spacing: 0.16em;

    text-transform: uppercase;
}


.enquiry-modal-header h3 {
    margin: 0 0 5px;

    color: #ffffff;

    font-family: 'Fraunces', serif;

    font-size: 24px;
    font-weight: 600;

    line-height: 1.25;
}


.enquiry-modal-header h3 span {
    color: #f1ca70;
}


.enquiry-modal-header p {
    max-width: 470px;

    margin: 0;

    color: rgba(255, 255, 255, 0.70);

    font-size: 12px;

    line-height: 1.6;
}


/* ============================================================
   6. FORM BODY
============================================================ */

.enquiry-modal #enquiryForm {
    padding: 25px 28px 27px;

    background:
        linear-gradient(
            180deg,
            #ffffff 0%,
            #fbfdff 100%
        );
}


/* ============================================================
   7. FORM ROW
============================================================ */

.enquiry-modal .form-row {
    display: grid;

    grid-template-columns:
        repeat(2, minmax(0, 1fr));

    gap: 15px;
}


/* ============================================================
   8. FORM FIELDS
============================================================ */

.enquiry-modal .field {
    margin-bottom: 16px;
}


.enquiry-modal .field label {
    display: flex;
    align-items: center;

    gap: 6px;

    margin-bottom: 7px;

    color: #263f55;

    font-family: 'Manrope', sans-serif;

    font-size: 11px;
    font-weight: 800;

    letter-spacing: 0.01em;
}


.optional-label {
    display: inline-flex;

    padding: 2px 6px;

    border-radius: 20px;

    background: #edf4fa;

    color: #73879a;

    font-size: 8px;
    font-weight: 700;

    text-transform: uppercase;

    letter-spacing: 0.05em;
}


/* ============================================================
   9. INPUT ICON WRAPPER
============================================================ */

.input-icon-wrap {
    position: relative;
}


.input-icon-wrap > i {
    position: absolute;

    left: 14px;
    top: 50%;

    transform: translateY(-50%);

    color: #8ba0b3;

    font-size: 12px;

    pointer-events: none;

    transition:
        color 0.2s ease;
}


.enquiry-modal .input-icon-wrap input {
    padding-left: 38px;
}


/* ============================================================
   10. INPUTS / SELECTS / TEXTAREA
============================================================ */

.enquiry-modal input,
.enquiry-modal select,
.enquiry-modal textarea {
    width: 100%;

    min-height: 44px;

    padding: 11px 13px;

    border:
        1px solid rgba(6, 35, 61, 0.13);

    border-radius: 11px;

    outline: none;

    background: #f8fbfd;

    color: #06233d;

    font-family: 'Manrope', sans-serif;

    font-size: 12px;
    font-weight: 500;

    transition:
        border-color 0.2s ease,
        background 0.2s ease,
        box-shadow 0.2s ease,
        transform 0.2s ease;
}


.enquiry-modal input::placeholder,
.enquiry-modal textarea::placeholder {
    color: #9aaab8;
}


.enquiry-modal textarea {
    min-height: 80px;

    resize: vertical;

    line-height: 1.55;
}


.enquiry-modal select {
    cursor: pointer;

    appearance: auto;
}


/* ============================================================
   11. FOCUS STATE
============================================================ */

.enquiry-modal input:focus,
.enquiry-modal select:focus,
.enquiry-modal textarea:focus {
    border-color: #1976c9;

    background: #ffffff;

    box-shadow:
        0 0 0 3px rgba(25, 118, 201, 0.10);

    transform: translateY(-1px);
}


.input-icon-wrap:focus-within > i {
    color: #1976c9;
}


/* ============================================================
   12. DATE INPUT
============================================================ */

.enquiry-modal input[type="date"] {
    cursor: pointer;

    color: #40596e;
}


.enquiry-modal input[type="date"]::-webkit-calendar-picker-indicator {
    cursor: pointer;

    opacity: 0.65;
}


/* ============================================================
   13. SUBMIT BUTTON
============================================================ */

.enquiry-submit-btn {
    min-height: 48px;

    margin-top: 3px;

    border-radius: 12px;

    font-size: 13px;

    letter-spacing: 0.01em;

    box-shadow:
        0 12px 28px rgba(6, 35, 61, 0.18);
}


.enquiry-submit-btn:hover {
    box-shadow:
        0 15px 32px rgba(25, 118, 201, 0.26);
}


.enquiry-submit-btn:disabled {
    opacity: 0.7;

    cursor: not-allowed;

    transform: none;
}


.submit-normal,
.submit-loading {
    align-items: center;
    justify-content: center;

    gap: 8px;
}


.submit-normal {
    display: inline-flex;
}


.submit-loading:not([hidden]) {
    display: inline-flex;
}


/* ============================================================
   14. PRIVACY NOTE
============================================================ */

.enquiry-privacy {
    display: flex;
    align-items: center;
    justify-content: center;

    gap: 7px;

    margin-top: 11px;

    color: #7a8e9f;

    font-size: 9px;
    font-weight: 500;

    text-align: center;

    line-height: 1.45;
}


.enquiry-privacy i {
    color: #5f9d72;

    font-size: 9px;
}


/* ============================================================
   15. SUCCESS / ERROR MESSAGE
============================================================ */

.enquiry-modal .form-msg {
    display: none;

    margin-top: 13px;

    padding: 11px 13px;

    border-radius: 10px;

    font-size: 11px;
    font-weight: 700;

    text-align: center;
}


.enquiry-modal .form-msg.show {
    display: block;
}


.enquiry-modal .form-msg.ok {
    background: #edf8f0;

    border: 1px solid #c8e8d0;

    color: #28733c;
}


.enquiry-modal .form-msg.error {
    background: #fff1f1;

    border: 1px solid #f1cccc;

    color: #a53b3b;
}


/* ============================================================
   16. OVERLAY IMPROVEMENT
============================================================ */

#enquiryModal {
    padding: 20px;

    backdrop-filter: blur(7px);
    -webkit-backdrop-filter: blur(7px);
}


/* ============================================================
   17. OPEN ANIMATION
============================================================ */

#enquiryModal .enquiry-modal {
    opacity: 0;

    transform:
        translateY(18px)
        scale(0.97);

    transition:
        opacity 0.28s ease,
        transform 0.35s cubic-bezier(.2, .8, .2, 1);
}


#enquiryModal.open .enquiry-modal {
    opacity: 1;

    transform:
        translateY(0)
        scale(1);
}


/* ============================================================
   18. MOBILE - 650PX
============================================================ */

@media (max-width: 650px) {

    #enquiryModal {
        padding: 12px;
    }


    .enquiry-modal {
        width: 100%;

        max-height: 92vh;

        border-radius: 19px;
    }


    .enquiry-modal-header {
        gap: 12px;

        padding:
            22px 52px
            20px 18px;
    }


    .enquiry-icon {
        width: 42px;
        height: 42px;

        flex-basis: 42px;

        border-radius: 12px;

        font-size: 16px;
    }


    .enquiry-modal-header h3 {
        font-size: 20px;
    }


    .enquiry-modal-header p {
        font-size: 10px;
    }


    .enquiry-modal #enquiryForm {
        padding:
            20px 18px
            22px;
    }


    .enquiry-modal .form-row {
        grid-template-columns: 1fr;

        gap: 0;
    }


    .enquiry-modal .field {
        margin-bottom: 13px;
    }


    .enquiry-modal input,
    .enquiry-modal select,
    .enquiry-modal textarea {
        min-height: 45px;

        font-size: 12px;
    }


    .enquiry-modal .modal-close {
        top: 12px;
        right: 12px;

        width: 34px;
        height: 34px;
    }

}


/* ============================================================
   19. VERY SMALL MOBILE
============================================================ */

@media (max-width: 400px) {

    #enquiryModal {
        padding: 8px;
    }


    .enquiry-modal {
        max-height: 94vh;

        border-radius: 17px;
    }


    .enquiry-modal-header {
        padding:
            19px 48px
            18px 15px;
    }


    .enquiry-icon {
        display: none;
    }


    .enquiry-modal-header h3 {
        font-size: 19px;
    }


    .enquiry-modal #enquiryForm {
        padding:
            17px 15px
            20px;
    }

}


/* ============================================================
   20. REDUCED MOTION
============================================================ */

@media (prefers-reduced-motion: reduce) {

    #enquiryModal .enquiry-modal,
    .enquiry-modal input,
    .enquiry-modal select,
    .enquiry-modal textarea,
    .enquiry-modal .modal-close {
        transition: none;
    }

}


/* Hide selected elements only on mobile */
@media (max-width: 600px) {

    .hide-on-mobile {
        display: none !important;
    }

}

/* =========================================================
   FOOTER SOCIAL MEDIA
========================================================= */

.footer-socials {
    display: flex;
    align-items: center;
    gap: 10px;

    margin-top: 18px;
}

.footer-socials a {
    width: 38px;
    height: 38px;

    display: flex;
    align-items: center;
    justify-content: center;

    border-radius: 10px;

    background: rgba(255, 255, 255, 0.08);
    border: 1px solid rgba(255, 255, 255, 0.12);

    color: #ffffff;

    font-size: 16px;
    text-decoration: none;

    transition:
        transform 0.25s ease,
        background 0.25s ease,
        border-color 0.25s ease;
}

.footer-socials a:hover {
    transform: translateY(-4px);

    background: #1976c9;
    border-color: #1976c9;
}
