

.asa{
  /* ---- brand tokens (edit gold here to retheme the whole block) ---- */
  --asa-gold:#c8a24a;
  --asa-gold-soft:#e6cd8f;
  --asa-gold-deep:#9c7a32;
  --asa-ink:#14161a;
  --asa-ink-2:#20242b;
  --asa-text:#2c313a;
  --asa-muted:#737a87;
  --asa-line:#ece6d8;
  --asa-line-2:#e2d8bf;
  --asa-card:#ffffff;
  --asa-bg:#faf8f3;
  --asa-serif:"Montserrat", sans-serif;
  --asa-sans:"Montserrat", sans-serif;
  --asa-radius:14px;
  --asa-sh:0 1px 2px rgba(20,22,26,.05),0 10px 26px rgba(20,22,26,.06);
  --asa-sh-h:0 8px 18px rgba(20,22,26,.10),0 22px 48px rgba(20,22,26,.14);

  max-width:1180px;
  margin:0 auto;
  padding:6px 14px 10px;
  color:var(--asa-text);
  font-family:var(--asa-sans);
  font-size:16px;
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
.asa,.asa *,.asa *::before,.asa *::after{box-sizing:border-box;}
.asa h2,.asa h3,.asa p{margin:0;}

/* ---------------------------------- HERO ---------------------------------- */
.asa__hero{
  position:relative;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
  overflow:hidden;
  border-radius:20px;
  padding:clamp(34px,4.8vw,52px) clamp(20px,4vw,36px);
  background:
    radial-gradient(640px 280px at 50% -10%,rgba(200,162,74,.30),transparent 64%),
    linear-gradient(135deg,#14161a 0%,#1d212b 52%,#121317 100%);
  color:#fff;
  box-shadow:0 20px 54px rgba(20,22,26,.20);
  animation:asa-rise .7s ease both;
}
.asa__hero::after{
  content:"";position:absolute;left:0;right:0;bottom:0;height:3px;
  background:linear-gradient(90deg,transparent,var(--asa-gold) 35%,var(--asa-gold-soft) 50%,var(--asa-gold) 65%,transparent);
}
.asa__hero-body{
  position:relative;z-index:2;
  width:100%;max-width:680px;
  display:flex;flex-direction:column;align-items:center; 
  justify-content: center;
  gap: 15px;
}
.asa__eyebrow{
  display:inline-block;font-size:11.5px;font-weight:700;letter-spacing:.26em;
  text-transform:uppercase;color:var(--asa-gold-soft);
}
.asa__htitle{
  font-family:var(--asa-serif);font-weight:500;letter-spacing:.3px;
  font-size:clamp(26px,4.6vw,42px);line-height:1.15;margin-top:12px;color:#fff;
}
.asa__accent{color:var(--asa-gold-soft);font-style:italic;font-weight:400;}
.asa__hsub{
  margin-top:14px;max-width:520px;color:#cfd2d9;
  font-size:clamp(14px,1.55vw,16px);line-height:1.65;
}
.asa__stats{
  display:flex;align-items:center;justify-content:center;
  gap:22px;margin-top:22px;flex-wrap:wrap;
}
.asa__stat{font-size:14px;color:#b8bcc6;letter-spacing:.02em;}
.asa__stat b{
  font-family:var(--asa-serif);font-weight:600;font-size:24px;color:#fff;margin-right:7px;
  vertical-align:-2px;
}
.asa__statdiv{width:1px;height:22px;background:rgba(230,205,143,.35);}
.asa__emblem{
  position:absolute;top:50%;left:50%;
  transform:translate(-50%,-50%);
  width:clamp(260px,38vw,400px);height:clamp(260px,38vw,400px);
  color:var(--asa-gold);opacity:.07;z-index:1;pointer-events:none;
  animation:asa-spin 60s linear infinite;
}

/* -------------------------------- REGIONS --------------------------------- */
.asa__region{margin-top:clamp(36px,4.5vw,52px);animation:asa-rise .6s ease both;}
.asa__region:nth-of-type(1){animation-delay:.05s}
.asa__region:nth-of-type(2){animation-delay:.11s}
.asa__region:nth-of-type(3){animation-delay:.17s}
.asa__region:nth-of-type(4){animation-delay:.23s}
.asa__region:nth-of-type(5){animation-delay:.29s}
.asa__region:nth-of-type(6){animation-delay:.34s}
.asa__region:nth-of-type(7){animation-delay:.39s}
.asa__region:nth-of-type(8){animation-delay:.44s}
.asa__rhead{
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;
  position:relative;text-align:center;
  padding-bottom:20px;margin-bottom:26px;
}
.asa__rhead::after{
  content:"";position:absolute;bottom:0;left:50%;transform:translateX(-50%);
  width:56px;height:2px;
  background:linear-gradient(90deg,transparent,var(--asa-gold) 50%,transparent);
}
.asa__rtitle{
  font-family:var(--asa-serif);font-weight:600;letter-spacing:.3px;
  font-size:clamp(22px,2.6vw,28px);color:var(--asa-ink);
  padding-left:0;text-align:center;
}
.asa__rtitle::before{display:none;}
.asa__rcount{
  margin-left:0;font-size:11px;font-weight:700;letter-spacing:.22em;text-transform:uppercase;
  color:var(--asa-gold-deep);white-space:nowrap;
}

/* --------------------------------- GRID ----------------------------------- */
.asa__grid{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(256px,1fr));gap:16px;
  justify-content:center;
}

.asa__card{
  display:flex;flex-direction:column;position:relative;overflow:hidden;
  background:var(--asa-card);border:1px solid var(--asa-line);
  border-radius:var(--asa-radius);padding:18px 18px 15px;
  box-shadow:var(--asa-sh);
  transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease;
}
.asa__card::before{
  content:"";position:absolute;left:0;top:0;bottom:0;width:3px;
  background:linear-gradient(var(--asa-gold-soft),var(--asa-gold));
  transform:scaleY(0);transform-origin:top;transition:transform .22s ease;
}
.asa__card:hover{transform:translateY(-4px);box-shadow:var(--asa-sh-h);border-color:var(--asa-line-2);}
.asa__card:hover::before{transform:scaleY(1);}

.asa__top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:13px;}
.asa__iata{
  display:inline-flex;align-items:center;gap:7px;
  font-weight:700;font-size:15px;letter-spacing:.07em;color:var(--asa-gold-soft);
  background:linear-gradient(135deg,#1c212a,#14161a);
  border:1px solid rgba(200,162,74,.38);
  padding:7px 12px;border-radius:9px;
}
.asa__iata::before{
  content:"";width:13px;height:13px;flex:0 0 13px;background:no-repeat center/contain;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23e6cd8f'%3E%3Cpath d='M21 16v-2l-8-5V3.5a1.5 1.5 0 0 0-3 0V9l-8 5v2l8-2.5V19l-2 1.5V22l3-1 3 1v-1.5L13 19v-5.5z'/%3E%3C/svg%3E");
}
.asa__icao{
  font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  font-size:12px;letter-spacing:.04em;color:var(--asa-muted);
  background:var(--asa-bg);border:1px solid var(--asa-line);
  padding:5px 9px;border-radius:7px;
}
.asa__name{
  font-size:15.5px;font-weight:700;line-height:1.32;color:var(--asa-ink);
}
.asa__loc{
  display:flex;align-items:center;gap:7px;margin-top:auto;padding-top:13px;
  border-top:1px dashed var(--asa-line-2);
  font-size:13.5px;color:var(--asa-muted);
}
.asa__loc::before{
  content:"";width:13px;height:13px;flex:0 0 13px;background:no-repeat center/contain;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23bca25c'%3E%3Cpath d='M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5A2.5 2.5 0 1 1 12 6a2.5 2.5 0 0 1 0 5.5z'/%3E%3C/svg%3E");
}
.asa__city{color:var(--asa-text);font-weight:600;}
.asa__sep{width:3px;height:3px;border-radius:50%;background:var(--asa-line-2);flex:0 0 auto;}

/* ---------------------------------- NOTE ---------------------------------- */
.asa__note{
  display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;
  gap:12px;margin-top:clamp(36px,4.5vw,52px);
  padding:28px clamp(20px,4vw,36px);border-radius:16px;color:#e9e5db;
  background:
    radial-gradient(520px 200px at 50% 0,rgba(200,162,74,.22),transparent 65%),
    linear-gradient(135deg,#14161a,#20242b);
}
.asa__note-ic{width:30px;height:30px;flex:0 0 30px;color:var(--asa-gold-soft);}
.asa__note-h{font-family:var(--asa-serif);font-weight:600;font-size:19px;color:#fff;letter-spacing:.4px;}
.asa__note-p{margin:4px auto 0;font-size:14px;line-height:1.65;color:#c7cad2;max-width:640px;}

@media (max-width:520px){
  .asa__grid{grid-template-columns:1fr;}
}

@keyframes asa-rise{from{opacity:0;transform:translateY(12px);}to{opacity:1;transform:none;}}
@keyframes asa-spin{to{transform:translate(-50%,-50%) rotate(360deg);}}
@media (prefers-reduced-motion:reduce){
  .asa__hero,.asa__region{animation:none!important;}
  .asa__emblem{animation:none!important;}
  .asa__card{transition:none!important;}
}


/* ==========================================================================
   ALL AIRPORTS HUB PAGE  -  region link cards
   ========================================================================== */
.asa a{text-decoration:none;color:inherit;}

.asa__dest-grid{
  display:flex;flex-wrap:wrap;justify-content:center;
  gap:18px;margin-top:clamp(28px,4vw,40px);
}
.asa__dest{
  flex:1 1 290px;max-width:340px;
  display:flex;flex-direction:column;position:relative;overflow:hidden;
  background:var(--asa-card);border:1px solid var(--asa-line);border-radius:16px;
  padding:24px 22px 20px;box-shadow:var(--asa-sh);
  transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease;
  animation:asa-rise .6s ease both;
}
.asa__dest::before{
  content:"";position:absolute;left:0;top:0;right:0;height:3px;
  background:linear-gradient(90deg,var(--asa-gold-soft),var(--asa-gold));
  transform:scaleX(0);transform-origin:left;transition:transform .25s ease;
}
.asa__dest:hover{transform:translateY(-5px);box-shadow:var(--asa-sh-h);border-color:var(--asa-line-2);}
.asa__dest:hover::before{transform:scaleX(1);}
.asa__dest:nth-child(1){animation-delay:.04s}
.asa__dest:nth-child(2){animation-delay:.10s}
.asa__dest:nth-child(3){animation-delay:.16s}
.asa__dest:nth-child(4){animation-delay:.22s}
.asa__dest:nth-child(5){animation-delay:.28s}

.asa__dest-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;}
.asa__dest-name{
  font-family:var(--asa-serif);font-weight:600;font-size:21px;color:var(--asa-ink);
  letter-spacing:.3px;line-height:1.2;
}
.asa__dest-count{
  flex:0 0 auto;font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;
  color:var(--asa-gold-deep);background:var(--asa-bg);border:1px solid var(--asa-line-2);
  padding:6px 10px;border-radius:999px;white-space:nowrap;
}
.asa__dest-sub{margin-top:10px;font-size:14px;color:var(--asa-muted);line-height:1.55;}
.asa__codes{display:flex;flex-wrap:wrap;gap:7px;margin-top:16px;}
.asa__code{
  font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  font-size:11.5px;font-weight:600;letter-spacing:.05em;color:var(--asa-gold-soft);
  background:linear-gradient(135deg,#1c212a,#14161a);
  border:1px solid rgba(200,162,74,.32);padding:5px 9px;border-radius:7px;
}
.asa__dest-cta{
  display:inline-flex;align-items:center;gap:8px;margin-top:auto;padding-top:18px;
  font-size:13.5px;font-weight:700;letter-spacing:.04em;color:var(--asa-gold-deep);
}
.asa__dest-cta::after{
  content:"";width:16px;height:16px;background:no-repeat center/contain;transition:transform .2s ease;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%239c7a32' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E");
}
.asa__dest:hover .asa__dest-cta::after{transform:translateX(4px);}

@media (max-width:520px){
  .asa__dest{max-width:none;flex-basis:100%;}
}
@media (prefers-reduced-motion:reduce){.asa__dest{animation:none!important;transition:none!important;}}