/* J58 footer — shared design-system component (see design-system page, "Footer") */
.ds-footer { background:#0B1D35; color:#c9d3df; padding:clamp(48px,6vw,80px) 0 28px; font-family:"Montserrat",system-ui,sans-serif; }
.ds-footer a { text-decoration:none; }
.ds-footer__wrap { width:min(1240px,100% - 40px); margin-inline:auto; }
.ds-footer__title { font-family:"Playfair Display",Georgia,serif; font-weight:700; font-size:clamp(1.9rem,3.6vw,3rem); line-height:1.1; letter-spacing:-.02em; color:#fff; margin:0 0 clamp(32px,4vw,56px); max-width:16em; }
.ds-footer__title .dot { color:#12aaba; }
.ds-footer__grid { display:grid; grid-template-columns:1.7fr repeat(3,1fr); gap:40px; padding-bottom:40px; }
.ds-footer__logo img { display:block; height:48px; width:auto; }
.ds-footer__brand p { margin:16px 0 0; max-width:340px; color:#9fb0c3; font-size:.95rem; line-height:1.6; }
.ds-footer__brand p a { color:#c9d3df; }
.ds-footer__brand p a:hover { color:#12aaba; }
.ds-footer__social { display:flex; flex-wrap:wrap; gap:10px; margin-top:20px; }
.ds-footer__social a { width:40px; height:40px; border-radius:10px; background:#12aaba; color:#F6F1E6; display:grid; place-items:center; transition:transform .2s ease, background .2s ease, box-shadow .25s ease; }
.ds-footer__social a:hover { background:#0B1D35; color:#fff; transform:translateY(-2px); box-shadow:0 0 0 2px #2bc4e0, 0 0 0 5px rgba(43,196,224,.28), 0 0 22px rgba(43,196,224,.35); }
.ds-footer__social svg { width:22px; height:22px; }
.ds-footer__col h4 { margin:0 0 16px; color:#fff; font-size:.8rem; font-weight:700; text-transform:uppercase; letter-spacing:.1em; }
.ds-footer__col a { display:block; padding:6px 0; color:#c9d3df; font-size:.95rem; transition:color .2s; }
.ds-footer__col a:hover { color:#12aaba; }
.ds-footer__bottom { border-top:1px solid rgba(255,255,255,.12); padding-top:22px; display:flex; flex-wrap:wrap; justify-content:space-between; gap:12px; font-size:.82rem; color:#8fa1b6; }
.ds-footer__bottom a { color:#8fa1b6; }
.ds-footer__bottom a:hover { color:#12aaba; }
@media (max-width:820px){ .ds-footer__grid { grid-template-columns:1fr 1fr; gap:32px; } .ds-footer__brand { grid-column:1/-1; } }
@media (max-width:520px){
  .ds-footer { padding:32px 0 20px; }
  .ds-footer__title { font-size:1.6rem; margin-bottom:22px; }
  .ds-footer__grid { grid-template-columns:1fr 1fr; gap:22px 16px; padding-bottom:22px; }
  .ds-footer__brand { grid-column:1/-1; }
  .ds-footer__logo img { height:36px; }
  .ds-footer__brand p { margin-top:10px; font-size:.85rem; line-height:1.5; }
  .ds-footer__social { margin-top:14px; gap:8px; }
  .ds-footer__social a { width:36px; height:36px; }
  .ds-footer__col:last-child { grid-column:1/-1; }
  .ds-footer__col h4 { margin-bottom:6px; font-size:.72rem; }
  .ds-footer__col a { padding:4px 0; font-size:.88rem; }
  .ds-footer__bottom { flex-direction:column; gap:6px; padding-top:16px; font-size:.78rem; }
  /* everything centred on phones */
  .ds-footer, .ds-footer__title, .ds-footer__brand, .ds-footer__col, .ds-footer__bottom { text-align:center; }
  .ds-footer__title { margin-inline:auto; }
  .ds-footer__logo img, .ds-footer__brand p { margin-inline:auto; }
  .ds-footer__social { justify-content:center; }
  .ds-footer__bottom { align-items:center; justify-content:center; }
}
