/* =====================================================================
   Footer – colours sampled from the reference footer screenshot
   ===================================================================== */
:root{
  --ft-bg-a:#001935;      /* darkest corner (bottom-left)  */
  --ft-bg-b:#011d3b;      /* left                           */
  --ft-bg-c:#053158;      /* middle                         */
  --ft-bg-d:#094c7f;      /* lightest (right)               */
  --ft-line:#506c86;      /* divider line                   */
  --ft-bar:#4b6c88;       /* short bar under headings       */
  --ft-brand:#4ea5ff;     /* highlighted brand name         */
}
.site-footer{
  position:relative;width:100%;color:#fff;
  background:linear-gradient(115deg,var(--ft-bg-b) 0%,var(--ft-bg-c) 55%,var(--ft-bg-d) 100%);
  padding-bottom:env(safe-area-inset-bottom,0);
}
.site-footer::before{content:"";position:absolute;left:0;right:0;top:0;height:3px;
  background:linear-gradient(90deg,var(--gold),#ffd54a 50%,var(--gold))}
.ft-inner{max-width:1480px;margin:0 auto;padding:0 clamp(16px,4vw,64px)}

/* ---------- main grid ---------- */
.ft-grid{
  display:grid;gap:40px clamp(24px,3vw,48px);
  grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr) minmax(0,1.1fr);
  padding:clamp(40px,6vw,76px) 0 clamp(36px,5vw,64px);
}
.ft-brand,.ft-col{min-width:0}
.ft-brand a.ft-logo{display:inline-flex;align-items:center;gap:14px}
.ft-logo .logo-img{width:80px;height:80px;object-fit:contain;border-radius:6px;flex:0 0 auto}
.ft-logo .logo-text{font-size:22px}
.ft-about{margin:18px 0 0;max-width:38ch;font-size:15.5px;line-height:1.65;color:#dbe7f3}

.ft-col h3{
  position:relative;margin:0 0 22px;padding-bottom:12px;font-size:clamp(19px,1.5vw,24px);font-weight:700;letter-spacing:.1px;
  display:inline-block;
}
.ft-col h3::after{content:"";position:absolute;left:0;bottom:0;width:calc(100% + 40px);max-width:180px;min-width:100%;height:4px;background:var(--ft-bar);border-radius:2px;
  transition:background .3s}
.ft-col:hover h3::after{background:var(--gold)}
.ft-col ul{display:grid;gap:14px}
.ft-col a{position:relative;display:inline-block;font-size:17px;line-height:1.35;color:#fff;opacity:.94;transition:color .2s,transform .25s var(--ease),opacity .2s}
.ft-col ul a:hover,.ft-col ul a:focus-visible{color:var(--gold);transform:translateX(5px);opacity:1;outline:0}
.ft-col a:focus-visible{outline:2px solid var(--gold);outline-offset:3px;border-radius:3px}

/* contact */
.ft-contact li{display:flex;gap:12px;align-items:flex-start;font-size:17px;line-height:1.5}
.ft-ico{flex:0 0 18px;width:18px;height:18px;margin-top:4px;fill:#dbe7f3}
.ft-contact a{font-size:inherit}
.ft-contact a:hover{color:var(--gold);transform:none}
.ft-contact-col p{overflow-wrap:anywhere;font-size:16px;line-height:1.6}
.ft-contact-col p a{overflow-wrap:anywhere}
.ft-contact-col p a.ft-location-link{display:inline-flex;align-items:center;gap:12px;color:inherit;text-decoration:none}
.ft-contact-col p a.ft-location-link:hover{color:var(--gold)}
.ft-contact-col p a.ft-contact-link{transition:color .2s}
.ft-contact-col p a.ft-contact-link:hover,.ft-contact-col p a.ft-contact-link:focus-visible{color:var(--gold)!important}
.ft-location-badge{display:grid;place-items:center;width:44px;height:44px;flex:0 0 44px;border-radius:50%;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.18);transition:background .25s,transform .25s var(--ease),border-color .25s}
.ft-location-badge svg{width:20px;height:20px;fill:none;stroke:#fff;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;transition:stroke .25s}
.ft-location-link:hover .ft-location-badge,.ft-location-link:focus-visible .ft-location-badge{background:var(--gold);border-color:var(--gold);transform:translateY(-3px)}
.ft-location-link:hover .ft-location-badge svg,.ft-location-link:focus-visible .ft-location-badge svg{stroke:var(--navy-900)}

/* social */
.ft-social{display:flex;flex-wrap:wrap;gap:12px;margin-top:26px}
.ft-social a,.ft-social-icon{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;
  background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.18);
  transition:background .25s,transform .25s var(--ease),border-color .25s;flex:0 0 44px}
.ft-social a:hover,.ft-social a:focus-visible,.ft-social-icon:hover{background:var(--gold);border-color:var(--gold);transform:translateY(-3px);outline:0}
.ft-social svg{width:20px;height:20px;fill:#fff;transition:fill .25s}
.ft-social-icon svg{fill:none;stroke:#fff;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;transition:fill .25s,stroke .25s}
.ft-social-icon .ft-social-dot{fill:#fff;stroke:none}
.ft-social-icon[aria-label="X"] svg{fill:#fff;stroke:none}
.ft-social-icon[aria-label="Instagram"]:hover svg{stroke:var(--navy-900)}
.ft-social-icon[aria-label="Instagram"]:hover .ft-social-dot{fill:var(--navy-900)}
.ft-social-icon[aria-label="X"]:hover svg{fill:var(--navy-900)}
.ft-social a:hover svg,.ft-social a:focus-visible svg{fill:var(--navy-900)}
.ft-social a:hover svg path,.ft-social a:focus-visible svg path{stroke:var(--navy-900)}
.ft-social a:focus-visible{box-shadow:0 0 0 3px rgba(238,182,0,.5)}
.ft-social-icon--instagram svg{fill:none}
.ft-social a.ft-social-icon--instagram:hover svg,.ft-social a.ft-social-icon--instagram:focus-visible svg{fill:none;stroke:var(--navy-900)}
.ft-social-icon--instagram:hover .ft-social-dot,.ft-social-icon--instagram:focus-visible .ft-social-dot{fill:var(--navy-900)}
.ft-social-icon--youtube svg{fill:#fff;stroke:none}
.ft-social a.ft-social-icon--youtube:hover svg,.ft-social a.ft-social-icon--youtube:focus-visible svg{fill:var(--navy-900);stroke:none}
.ft-social a.ft-social-icon--youtube:hover svg path,.ft-social a.ft-social-icon--youtube:focus-visible svg path{stroke:none}

/* email directory */
.ft-email-heading{margin:20px 0 10px;font-size:14px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#dbe7f3}
.ft-email-list{list-style:none;margin:0;padding:0;gap:8px!important}
.ft-email-list a{
  display:flex;flex-direction:column;gap:3px;width:100%;padding:9px 11px;
  border:1px solid rgba(255,255,255,.14);border-radius:8px;
  background:rgba(255,255,255,.055);text-decoration:none;
  transition:background .2s,border-color .2s,transform .2s;
}
.ft-email-list a span:first-child{font-size:11px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:#f2cb53}
.ft-email-list a span:last-child{font-size:14px;line-height:1.35;overflow-wrap:anywhere;color:#fff}
.ft-col ul.ft-email-list a:hover,.ft-col ul.ft-email-list a:focus-visible{
  background:rgba(255,255,255,.12);border-color:rgba(255,213,74,.65);
  transform:translateY(-1px);outline:0
}

/* ---------- bottom bar ---------- */
.ft-bottom{border-top:1px solid var(--ft-line);padding:26px 0 30px;
  display:flex;flex-wrap:wrap;gap:12px 24px;justify-content:space-between;align-items:center;font-size:18px}
.ft-bottom b{font-weight:700;color:var(--ft-brand)}
.ft-legal{display:flex;gap:26px;flex-wrap:wrap}
.ft-legal a{transition:color .2s}
.ft-legal a:hover,.ft-legal a:focus-visible{color:var(--gold);outline:0}

/* ---------- responsive ---------- */
@media (max-width:899px){
  .ft-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:36px 28px}
  .ft-brand{grid-column:1 / -1}
  .ft-about{max-width:60ch}
}
@media (max-width:767px){
  .ft-grid{gap:32px 22px}
  .ft-col a,.ft-contact li{font-size:16px}
  .ft-contact-col p{font-size:15px}
  .ft-bottom{flex-direction:column;align-items:flex-start;font-size:15px}
}
@media (max-width:560px){
  .ft-inner{padding-right:20px;padding-left:20px}
  .ft-grid{grid-template-columns:minmax(0,1fr);gap:28px;padding-top:40px;padding-bottom:34px}
  .ft-brand{grid-column:auto}
  .ft-logo .logo-img{width:64px;height:64px}
  .ft-logo .logo-text{font-size:19px}
  .ft-col h3{margin-bottom:18px}
  .ft-col ul{gap:12px}
  .ft-social{margin-top:20px}
  .ft-email-heading{margin-top:16px}
  .ft-bottom{padding:20px 0 24px}
}
