/* EDITORIAL LUXURY MAGAZINE HOME */

:root{
  --elm-dark:#070706;
  --elm-text:#17130b;
  --elm-muted:#71675b;
  --elm-cream:#fbfaf6;
  --elm-gold:#f3d98d;
  --elm-gold2:#c8a45d;
  --elm-gold3:#8f6b2b;
  --elm-line:rgba(24,20,14,.12);
}

.elm{
  color:var(--elm-text);
  background:
    radial-gradient(circle at 8% 6%,rgba(243,217,141,.22),transparent 30%),
    radial-gradient(circle at 92% 18%,rgba(16,72,63,.13),transparent 32%),
    linear-gradient(180deg,#fbfaf6,#eee1cf 48%,#fbfaf6);
  overflow:hidden;
  isolation:isolate;
  position:relative;
}

.elm:before{
  content:"";
  position:fixed;
  inset:0;
  z-index:-2;
  background-image:
    linear-gradient(rgba(24,20,14,.04) 1px, transparent 1px),
    linear-gradient(90deg, rgba(24,20,14,.04) 1px, transparent 1px);
  background-size:86px 86px;
  animation:elmGrid 28s linear infinite;
  pointer-events:none;
  mask-image:linear-gradient(180deg,transparent,#000 14%,#000 82%,transparent);
}

@keyframes elmGrid{
  from{background-position:0 0}
  to{background-position:86px 86px}
}

.elm-hero{
  position:relative;
  min-height:900px;
  background:#050505;
  overflow:hidden;
}

.elm-bg,
.elm-bg img{
  position:absolute;
  inset:0;
}

.elm-bg img{
  width:100%;
  height:100%;
  object-fit:cover;
  filter:saturate(1.08) contrast(1.07);
  transform:scale(1.07);
  animation:elmHeroMove 18s ease-in-out infinite alternate;
}

@keyframes elmHeroMove{
  from{transform:scale(1.04)}
  to{transform:scale(1.13)}
}

.elm-hero:after{
  content:"";
  position:absolute;
  inset:0;
  background:
    radial-gradient(circle at 82% 15%,rgba(243,217,141,.32),transparent 30%),
    linear-gradient(90deg,rgba(0,0,0,.88),rgba(0,0,0,.58),rgba(0,0,0,.22)),
    linear-gradient(180deg,rgba(0,0,0,.08),rgba(0,0,0,.78));
}

.elm-hero-grid{
  position:relative;
  z-index:2;
  max-width:1240px;
  margin:0 auto;
  min-height:900px;
  padding:145px 20px 90px;
  display:grid;
  grid-template-columns:minmax(0,1fr) 500px;
  gap:42px;
  align-items:center;
}

.elm-copy{
  color:#fff;
}

.elm-copy > span,
.elm-editorial-text span,
.elm-map span,
.elm-final span{
  display:inline-flex;
  border-radius:999px;
  padding:8px 12px;
  background:rgba(255,255,255,.12);
  border:1px solid rgba(243,217,141,.28);
  color:#f3d98d;
  font-size:13px;
  font-weight:950;
  backdrop-filter:blur(12px);
}

.elm-copy h1{
  max-width:880px;
  margin:22px 0 0;
  font-size:clamp(54px,7.6vw,104px);
  line-height:.84;
  letter-spacing:-.09em;
  text-shadow:0 28px 88px rgba(0,0,0,.48);
}

.elm-copy p{
  max-width:720px;
  margin:28px 0 0;
  color:rgba(255,255,255,.80);
  font-size:18px;
  line-height:1.75;
}

.elm-search{
  max-width:850px;
  margin-top:34px;
  padding:12px;
  display:grid;
  grid-template-columns:1.8fr .75fr .75fr auto;
  gap:8px;
  border-radius:999px;
  background:rgba(255,255,255,.13);
  border:1px solid rgba(255,255,255,.20);
  backdrop-filter:blur(16px);
  box-shadow:0 26px 90px rgba(0,0,0,.32);
}

.elm-search input{
  min-height:52px;
  width:100%;
  border:0;
  border-radius:999px;
  background:rgba(255,255,255,.94);
  color:#151515;
  padding:0 16px;
  outline:none;
  font-weight:750;
}

.elm-search button{
  min-height:52px;
  border:0;
  border-radius:999px;
  padding:0 22px;
  background:linear-gradient(135deg,var(--elm-gold),var(--elm-gold2),var(--elm-gold3));
  color:#17130b;
  font-weight:950;
  cursor:pointer;
}

.elm-hero-cards{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:14px;
}

.elm-hero-card{
  position:relative;
  min-height:230px;
  overflow:hidden;
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
  padding:20px;
  color:#fff;
  text-decoration:none;
  border:1px solid rgba(243,217,141,.28);
  box-shadow:14px 14px 0 rgba(0,0,0,.22);
  isolation:isolate;
  transition:.28s ease;
}

.elm-hero-card.big{
  grid-column:span 2;
  min-height:330px;
}

.elm-hero-card:hover{
  transform:translate(-5px,-8px);
  box-shadow:24px 24px 0 rgba(0,0,0,.30);
}

.elm-hero-card img{
  position:absolute;
  inset:0;
  z-index:-2;
  width:100%;
  height:100%;
  object-fit:cover;
  transition:.55s ease;
}

.elm-hero-card:hover img{
  transform:scale(1.08);
}

.elm-hero-card:after{
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  background:linear-gradient(180deg,rgba(0,0,0,.05),rgba(0,0,0,.82));
}

.elm-hero-card b{
  font-size:30px;
  line-height:1;
  letter-spacing:-.065em;
}

.elm-hero-card small{
  margin-top:8px;
  color:rgba(255,255,255,.78);
  font-weight:900;
}

.elm-strip{
  max-width:1180px;
  margin:-42px auto 74px;
  position:relative;
  z-index:4;
  padding:0 20px;
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:14px;
}

.elm-strip div{
  position:relative;
  overflow:hidden;
  padding:24px;
  background:#fff;
  border:1px solid rgba(200,164,93,.22);
  box-shadow:12px 12px 0 rgba(20,16,10,.055),0 20px 70px rgba(20,16,10,.11);
}

.elm-strip b{
  display:block;
  font-size:38px;
  line-height:1;
  letter-spacing:-.055em;
}

.elm-strip span{
  display:block;
  margin-top:8px;
  color:var(--elm-muted);
  font-weight:850;
}

.elm-section{
  max-width:1180px;
  margin:82px auto;
  padding:0 20px;
}

.elm-title{
  max-width:860px;
  margin:0 auto 28px;
  text-align:center;
}

.elm-title span,
.elm-head span{
  display:inline-flex;
  border-radius:999px;
  padding:8px 12px;
  background:#fff8e7;
  border:1px solid rgba(200,164,93,.28);
  color:#6d5420;
  font-size:13px;
  font-weight:950;
}

.elm-title h2,
.elm-head h2,
.elm-editorial-text h2,
.elm-map h2,
.elm-final h2{
  margin:12px 0 0;
  font-size:clamp(36px,5vw,70px);
  line-height:.92;
  letter-spacing:-.08em;
}

.elm-inspire-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:16px;
}

.elm-inspire-grid button{
  min-height:210px;
  position:relative;
  overflow:hidden;
  padding:22px;
  text-align:left;
  border:1px solid rgba(200,164,93,.24);
  background:linear-gradient(135deg,#fff,#fff8e7);
  box-shadow:12px 12px 0 rgba(20,16,10,.055),0 20px 70px rgba(20,16,10,.08);
  cursor:pointer;
  transition:.28s ease;
}

.elm-inspire-grid button:hover{
  transform:translate(-5px,-8px);
  box-shadow:22px 22px 0 rgba(20,16,10,.09),0 34px 100px rgba(20,16,10,.15);
}

.elm-inspire-grid button:before{
  content:"";
  position:absolute;
  inset:12px;
  border:1px solid rgba(200,164,93,.20);
}

.elm-inspire-grid em{
  position:relative;
  display:inline-flex;
  border-radius:999px;
  padding:7px 10px;
  background:#151515;
  color:#fff;
  font-style:normal;
  font-weight:950;
  margin-bottom:54px;
}

.elm-inspire-grid strong{
  position:relative;
  display:block;
  font-size:26px;
  line-height:1;
  letter-spacing:-.06em;
}

.elm-inspire-grid small{
  position:relative;
  display:block;
  margin-top:8px;
  color:var(--elm-muted);
  font-weight:800;
}

.elm-editorial{
  max-width:1180px;
  margin:92px auto;
  padding:0 20px;
  display:grid;
  grid-template-columns:1.05fr .95fr;
  gap:24px;
  align-items:stretch;
}

.elm-editorial-photo{
  min-height:520px;
  overflow:hidden;
  border:1px solid rgba(200,164,93,.25);
  box-shadow:18px 18px 0 rgba(20,16,10,.08);
}

.elm-editorial-photo img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  transition:.6s ease;
}

.elm-editorial-photo:hover img{
  transform:scale(1.06);
}

.elm-editorial-text{
  padding:46px;
  background:
    radial-gradient(circle at 88% 10%,rgba(243,217,141,.26),transparent 34%),
    linear-gradient(135deg,#05070c,#171717 55%,#2b2116);
  color:#fff;
  display:flex;
  flex-direction:column;
  justify-content:center;
  box-shadow:18px 18px 0 rgba(20,16,10,.08);
}

.elm-editorial-text p,
.elm-map p{
  color:rgba(255,255,255,.76);
  line-height:1.75;
}

.elm-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:24px;
  margin-bottom:28px;
}

.elm-head a{
  white-space:nowrap;
  color:#151515;
  text-decoration:none;
  background:#fff;
  border:1px solid var(--elm-line);
  padding:12px 15px;
  font-weight:950;
  box-shadow:7px 7px 0 rgba(20,16,10,.06);
}

.elm-properties{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:20px;
}

.elm-property{
  background:#fff;
  border:1px solid rgba(200,164,93,.22);
  overflow:hidden;
  box-shadow:12px 12px 0 rgba(20,16,10,.055),0 22px 80px rgba(20,16,10,.10);
  transition:.28s ease;
}

.elm-property:hover{
  transform:translate(-5px,-8px);
  box-shadow:22px 22px 0 rgba(20,16,10,.09),0 40px 115px rgba(20,16,10,.20);
}

.elm-property.feature{
  grid-column:span 2;
  display:grid;
  grid-template-columns:1.1fr .9fr;
}

.elm-property-img{
  position:relative;
  min-height:280px;
  display:block;
  overflow:hidden;
}

.elm-property.feature .elm-property-img{
  min-height:430px;
}

.elm-property-img img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  transition:.6s ease;
}

.elm-property:hover .elm-property-img img{
  transform:scale(1.08);
}

.elm-property-img:after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,rgba(0,0,0,.04),rgba(0,0,0,.62));
}

.elm-property-img span{
  position:absolute;
  z-index:2;
  left:16px;
  top:16px;
  padding:9px 13px;
  background:linear-gradient(135deg,var(--elm-gold),var(--elm-gold2));
  color:#17130b;
  font-weight:950;
  box-shadow:7px 7px 0 rgba(0,0,0,.28);
}

.elm-property-body{
  padding:24px;
}

.elm-property.feature .elm-property-body{
  padding:34px;
  display:flex;
  flex-direction:column;
  justify-content:center;
}

.elm-meta,
.elm-tags{
  display:flex;
  flex-wrap:wrap;
  gap:7px;
}

.elm-meta small,
.elm-tags em{
  display:inline-flex;
  border-radius:999px;
  padding:7px 9px;
  background:#fff8e7;
  border:1px solid rgba(200,164,93,.24);
  color:#6d5420;
  font-size:12px;
  font-weight:850;
  font-style:normal;
}

.elm-property h3{
  margin:14px 0;
  font-size:clamp(24px,2.8vw,42px);
  line-height:1;
  letter-spacing:-.065em;
}

.elm-property h3 a{
  color:#151515;
  text-decoration:none;
}

.elm-bottom{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:14px;
  margin-top:22px;
  padding-top:18px;
  border-top:1px solid rgba(24,20,14,.08);
}

.elm-bottom strong{
  font-size:21px;
  letter-spacing:-.04em;
}

.elm-bottom a{
  display:inline-flex;
  color:#fff;
  background:#151515;
  text-decoration:none;
  padding:11px 14px;
  font-weight:950;
  box-shadow:7px 7px 0 rgba(0,0,0,.10);
}

.elm-no-results{
  display:none;
  margin-top:18px;
  padding:18px;
  text-align:center;
  background:#fff8e7;
  color:#6d5420;
  font-weight:950;
  border:1px solid rgba(200,164,93,.28);
}

.elm-map{
  max-width:1180px;
  margin:92px auto;
  padding:48px;
  display:grid;
  grid-template-columns:minmax(0,1fr) 380px;
  gap:30px;
  align-items:center;
  background:
    radial-gradient(circle at 86% 10%,rgba(243,217,141,.30),transparent 34%),
    linear-gradient(135deg,#05070c,#171717 55%,#2b2116);
  color:#fff;
  box-shadow:18px 18px 0 rgba(20,16,10,.08),0 40px 120px rgba(20,16,10,.22);
}

.elm-map a{
  display:inline-flex;
  margin-top:18px;
  color:#17130b;
  background:linear-gradient(135deg,var(--elm-gold),var(--elm-gold2));
  text-decoration:none;
  padding:14px 20px;
  font-weight:950;
}

.elm-map-box{
  position:relative;
  min-height:310px;
  border:1px solid rgba(255,255,255,.16);
  background:rgba(255,255,255,.07);
  overflow:hidden;
}

.elm-map-box b{
  position:absolute;
  left:50%;
  top:50%;
  transform:translate(-50%,-50%);
  font-size:42px;
  letter-spacing:-.06em;
}

.elm-map-box i{
  position:absolute;
  left:var(--x);
  top:var(--y);
  width:16px;
  height:16px;
  border-radius:50%;
  background:linear-gradient(135deg,var(--elm-gold),var(--elm-gold2));
  box-shadow:0 0 0 10px rgba(243,217,141,.14);
  animation:elmPulse 1.8s ease-in-out infinite;
}

@keyframes elmPulse{
  0%,100%{transform:scale(1)}
  50%{transform:scale(1.25)}
}

.elm-cities{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:16px;
}

.elm-city{
  min-height:260px;
  position:relative;
  overflow:hidden;
  display:flex;
  align-items:flex-end;
  padding:20px;
  color:#fff;
  text-decoration:none;
  border:1px solid rgba(243,217,141,.28);
  box-shadow:12px 12px 0 rgba(20,16,10,.08),0 24px 76px rgba(20,16,10,.16);
  isolation:isolate;
  transition:.28s ease;
}

.elm-city:hover{
  transform:translate(-5px,-8px);
  box-shadow:22px 22px 0 rgba(20,16,10,.12),0 40px 115px rgba(20,16,10,.24);
}

.elm-city img{
  position:absolute;
  inset:0;
  z-index:-2;
  width:100%;
  height:100%;
  object-fit:cover;
  transition:.55s ease;
}

.elm-city:hover img{
  transform:scale(1.08);
}

.elm-city:after{
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  background:linear-gradient(180deg,rgba(0,0,0,.05),rgba(0,0,0,.84));
}

.elm-city span{
  display:inline-flex;
  padding:7px 9px;
  background:linear-gradient(135deg,var(--elm-gold),var(--elm-gold2));
  color:#17130b;
  font-size:11px;
  font-weight:950;
  margin-bottom:72px;
}

.elm-city strong{
  display:block;
  font-size:26px;
  line-height:1;
  letter-spacing:-.06em;
}

.elm-city small{
  display:block;
  margin-top:9px;
  color:rgba(255,255,255,.82);
  font-weight:950;
}

.elm-final{
  max-width:980px;
  margin:92px auto 44px;
  padding:0 20px 68px;
  text-align:center;
}

.elm-final span{
  color:#6d5420;
  background:#fff8e7;
  border:1px solid rgba(200,164,93,.28);
}

.elm-final a{
  display:inline-flex;
  margin-top:18px;
  color:#17130b;
  background:linear-gradient(135deg,var(--elm-gold),var(--elm-gold2));
  text-decoration:none;
  padding:14px 20px;
  font-weight:950;
}

.elm-reveal{
  opacity:0;
  transform:translateY(44px);
  transition:.85s cubic-bezier(.2,.8,.2,1);
}

.elm-reveal.show{
  opacity:1;
  transform:translateY(0);
}

@media(max-width:1050px){
  .elm-hero-grid,
  .elm-editorial,
  .elm-map{
    grid-template-columns:1fr;
  }

  .elm-strip,
  .elm-cities{
    grid-template-columns:repeat(2,1fr);
  }

  .elm-properties,
  .elm-inspire-grid{
    grid-template-columns:repeat(2,1fr);
  }

  .elm-property.feature{
    grid-column:span 2;
    grid-template-columns:1fr;
  }
}

@media(max-width:700px){
  .elm-hero,
  .elm-hero-grid{
    min-height:auto;
  }

  .elm-hero-grid{
    padding:110px 14px 70px;
  }

  .elm-copy h1{
    font-size:46px;
  }

  .elm-search,
  .elm-strip,
  .elm-cities,
  .elm-properties,
  .elm-inspire-grid{
    grid-template-columns:1fr;
  }

  .elm-hero-cards{
    grid-template-columns:1fr;
  }

  .elm-hero-card.big,
  .elm-property.feature{
    grid-column:span 1;
  }

  .elm-head{
    display:block;
  }

  .elm-head a{
    display:inline-flex;
    margin-top:14px;
  }

  .elm-editorial-text,
  .elm-map{
    padding:28px;
  }

  .elm-bottom{
    flex-direction:column;
    align-items:flex-start;
  }

  .elm-bottom a{
    width:100%;
    justify-content:center;
  }
}



/* ============================= */
/* ULTRA LUXURY DEPTH SYSTEM */
/* ============================= */

.elm{
    position:relative;
    overflow:hidden;
    background:
        radial-gradient(circle at 10% 10%,rgba(243,217,141,.08),transparent 30%),
        radial-gradient(circle at 90% 20%,rgba(56,189,248,.07),transparent 32%),
        radial-gradient(circle at 50% 80%,rgba(16,72,63,.12),transparent 34%),
        linear-gradient(180deg,#f8f6f1,#ffffff);
}

/* animated grid */

.elm:before{
    content:"";
    position:fixed;
    inset:0;
    pointer-events:none;
    z-index:0;
    opacity:.18;
    background-image:
        linear-gradient(rgba(0,0,0,.05) 1px, transparent 1px),
        linear-gradient(90deg, rgba(0,0,0,.05) 1px, transparent 1px);
    background-size:60px 60px;
    animation:gridMove 18s linear infinite;
}

@keyframes gridMove{
    from{
        transform:translateY(0);
    }
    to{
        transform:translateY(60px);
    }
}

/* ============================= */
/* HERO CINEMA */
/* ============================= */

.elm-hero{
    position:relative;
    overflow:hidden;
    border-radius:0 0 60px 60px;
    min-height:100vh;
    display:flex;
    align-items:center;
}

.elm-bg:after{
    content:"";
    position:absolute;
    inset:0;
    background:
        linear-gradient(to bottom,rgba(0,0,0,.55),rgba(0,0,0,.65)),
        radial-gradient(circle at center,transparent,rgba(0,0,0,.45));
}

.elm-bg img{
    transform:scale(1.08);
    animation:heroZoom 16s ease-in-out infinite alternate;
}

@keyframes heroZoom{
    from{
        transform:scale(1.08);
    }
    to{
        transform:scale(1.16);
    }
}

/* ============================= */
/* HERO CARDS */
/* ============================= */

.elm-hero-card{
    position:relative;
    overflow:hidden;
    border:1px solid rgba(255,255,255,.18);
    background:rgba(255,255,255,.08);
    backdrop-filter:blur(18px);
    box-shadow:
        0 20px 80px rgba(0,0,0,.30),
        inset 0 1px 0 rgba(255,255,255,.18);
    transition:.45s cubic-bezier(.2,.8,.2,1);
}

.elm-hero-card:before{
    content:"";
    position:absolute;
    inset:0;
    background:
        linear-gradient(135deg,
        rgba(255,255,255,.22),
        transparent 40%);
    opacity:0;
    transition:.4s;
}

.elm-hero-card:hover{
    transform:
        translateY(-12px)
        scale(1.03)
        rotateX(3deg);
    box-shadow:
        0 35px 100px rgba(0,0,0,.42),
        0 0 0 1px rgba(243,217,141,.26);
}

.elm-hero-card:hover:before{
    opacity:1;
}

.elm-hero-card img{
    transition:1.1s ease;
}

.elm-hero-card:hover img{
    transform:scale(1.12);
}

/* ============================= */
/* STRIP */
/* ============================= */

.elm-strip{
    position:relative;
    z-index:2;
    margin-top:-40px;
    backdrop-filter:blur(20px);
    background:rgba(255,255,255,.75);
    border:1px solid rgba(255,255,255,.6);
    box-shadow:0 25px 80px rgba(0,0,0,.08);
}

/* ============================= */
/* INSPIRE BUTTONS */
/* ============================= */

.elm-inspire-grid button{
    position:relative;
    overflow:hidden;
    border:1px solid rgba(0,0,0,.08);
    background:
        linear-gradient(180deg,#fff,#f8f6f1);
    box-shadow:
        0 12px 34px rgba(0,0,0,.05),
        inset 0 1px 0 rgba(255,255,255,.9);
    transition:.35s ease;
}

.elm-inspire-grid button:before{
    content:"";
    position:absolute;
    inset:0;
    background:
        radial-gradient(circle at top left,
        rgba(243,217,141,.30),
        transparent 50%);
    opacity:0;
    transition:.4s;
}

.elm-inspire-grid button:hover{
    transform:
        translateY(-8px)
        scale(1.02);
    box-shadow:
        0 30px 70px rgba(0,0,0,.12);
}

.elm-inspire-grid button:hover:before{
    opacity:1;
}

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

.elm-property{
    position:relative;
    overflow:hidden;
    border-radius:34px;
    background:#fff;
    border:1px solid rgba(0,0,0,.06);
    box-shadow:
        0 18px 60px rgba(0,0,0,.06);
    transition:
        transform .45s cubic-bezier(.2,.8,.2,1),
        box-shadow .45s ease;
}

.elm-property:before{
    content:"";
    position:absolute;
    inset:0;
    background:
        linear-gradient(135deg,
        rgba(243,217,141,.18),
        transparent 30%);
    opacity:0;
    transition:.45s;
}

.elm-property:hover{
    transform:
        translateY(-16px)
        scale(1.02);
    box-shadow:
        0 40px 120px rgba(0,0,0,.16),
        0 0 0 1px rgba(243,217,141,.18);
}

.elm-property:hover:before{
    opacity:1;
}

.elm-property-img{
    overflow:hidden;
}

.elm-property-img img{
    transition:1.2s ease;
}

.elm-property:hover .elm-property-img img{
    transform:scale(1.12);
}

/* floating number */

.elm-property-img span{
    backdrop-filter:blur(14px);
    background:rgba(255,255,255,.14);
    border:1px solid rgba(255,255,255,.24);
    box-shadow:0 12px 40px rgba(0,0,0,.20);
}

/* ============================= */
/* EDITORIAL */
/* ============================= */

.elm-editorial{
    position:relative;
    overflow:hidden;
    border-radius:44px;
    background:
        linear-gradient(135deg,#111827,#1f2937);
    box-shadow:
        0 40px 120px rgba(0,0,0,.20);
}

.elm-editorial:before{
    content:"";
    position:absolute;
    width:600px;
    height:600px;
    border-radius:50%;
    background:
        radial-gradient(circle,
        rgba(243,217,141,.20),
        transparent 70%);
    right:-200px;
    top:-200px;
    animation:orbMove 8s ease-in-out infinite;
}

@keyframes orbMove{
    0%,100%{
        transform:translateY(0);
    }
    50%{
        transform:translateY(30px);
    }
}

/* ============================= */
/* MAP */
/* ============================= */

.elm-map-box{
    position:relative;
    overflow:hidden;
    background:
        linear-gradient(135deg,#0f172a,#111827);
    border:1px solid rgba(255,255,255,.08);
    box-shadow:
        0 35px 120px rgba(0,0,0,.25);
}

.elm-map-box:before{
    content:"";
    position:absolute;
    inset:0;
    background-image:
        linear-gradient(rgba(255,255,255,.03) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,.03) 1px, transparent 1px);
    background-size:40px 40px;
}

/* ============================= */
/* CITY CARDS */
/* ============================= */

.elm-city{
    position:relative;
    overflow:hidden;
    border-radius:30px;
    box-shadow:
        0 18px 60px rgba(0,0,0,.08);
    transition:.45s cubic-bezier(.2,.8,.2,1);
}

.elm-city:hover{
    transform:
        translateY(-10px)
        scale(1.03);
    box-shadow:
        0 40px 100px rgba(0,0,0,.18);
}

.elm-city img{
    transition:1.1s ease;
}

.elm-city:hover img{
    transform:scale(1.14);
}

/* ============================= */
/* FINAL CTA */
/* ============================= */

.elm-final{
    position:relative;
    overflow:hidden;
    background:
        linear-gradient(135deg,#111827,#05070c);
    box-shadow:
        0 40px 140px rgba(0,0,0,.22);
}

.elm-final:before{
    content:"";
    position:absolute;
    inset:0;
    background:
        radial-gradient(circle at center,
        rgba(243,217,141,.16),
        transparent 60%);
    animation:pulseGlow 4s ease-in-out infinite;
}

@keyframes pulseGlow{
    0%,100%{
        opacity:.4;
    }
    50%{
        opacity:1;
    }
}
