/* Moved out of views/layouts/footer.php so browsers can cache it. */
/* ===== footer (ft-) ===== */
.ft{--ft-ink:#0b1e3f;--ft-link:#b4c2dc;--ft-mute:#8c9db9;--ft-line:rgba(255,255,255,.11);--ft-orange:#f5a623;position:relative;background:var(--ft-ink);color:var(--ft-link);font-family:'Hanken Grotesk',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;font-size:15px;line-height:1.5;border-top:1px solid rgba(255,255,255,.07)}
.ft *{box-sizing:border-box}
.ft p,.ft h3,.ft ul,.ft address{margin:0;padding:0}
.ft ul{list-style:none}
.ft :focus-visible{outline:3px solid #8ebcff;outline-offset:3px;border-radius:6px}
.ft-wrap{max-width:var(--max-w,1200px);margin:0 auto;padding:0 24px}

/* brand and tagline */
.ft-top{position:relative;padding:68px 0 48px;border-bottom:1px solid var(--ft-line)}
.ft-brand{display:flex;flex-direction:column;align-items:flex-start;gap:26px;max-width:660px}
.ft-home{display:inline-flex;align-items:center;gap:12px;max-width:100%;color:#fff;text-decoration:none}
.ft-logo{display:grid;place-items:center;flex:none;width:46px;height:46px;border-radius:14px;background:#fff}
.ft-logo img{display:block;width:30px;height:30px;object-fit:contain}
.ft-logo.is-empty img{display:none}
.ft-logo.is-empty::after{content:"I";font:800 20px/1 'Sora',system-ui,sans-serif;color:#1a3f7c}
.ft-name{min-width:0;overflow-wrap:anywhere;font:700 19px/1.1 'Sora',system-ui,sans-serif;letter-spacing:-.01em;color:#fff}
.ft .ft-tag{max-width:21em;overflow-wrap:anywhere;font:700 clamp(1.5rem,2.7vw,2.1rem)/1.2 'Sora',system-ui,sans-serif;letter-spacing:-.025em;color:#fff;text-wrap:balance}
.ft-social{display:flex;flex-wrap:wrap;gap:10px}
.ft-social a{display:grid;place-items:center;width:42px;height:42px;border:1px solid rgba(255,255,255,.22);border-radius:50%;color:#d6e0f2;transition:background .2s ease,color .2s ease,border-color .2s ease,transform .2s ease}
.ft-social a:hover{background:#fff;border-color:#fff;color:var(--ft-ink);transform:translateY(-3px)}
.ft-social svg{display:block;width:18px;height:18px}
.ft-fly{position:absolute;right:0;bottom:56px;width:min(340px,32vw);height:auto;pointer-events:none}

/* link columns and contact */
.ft-cols{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,1.25fr);gap:48px 56px;padding:48px 0 52px}
.ft-links{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:36px 40px}
.ft-stack{display:flex;flex-direction:column;gap:36px;min-width:0}
.ft .ft-h{margin-bottom:12px;font:700 15px/1.2 'Sora',system-ui,sans-serif;letter-spacing:0;color:#fff}
.ft-list li{margin:0}
.ft-link{display:inline-block;max-width:100%;padding:6px 0;font-size:15px;line-height:1.35;color:var(--ft-link);text-decoration:underline;text-decoration-color:transparent;text-decoration-thickness:2px;text-underline-offset:5px;transition:color .15s ease,text-decoration-color .15s ease}
.ft-link:hover{color:#fff;text-decoration-color:var(--ft-orange)}
.ft-link.is-clip{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:bottom}
.ft-addr{display:flex;flex-direction:column;gap:14px;font-style:normal}
.ft-grp{display:flex;flex-direction:column;gap:2px}
.ft-row{display:flex;align-items:flex-start;gap:12px;padding:6px 0;font-size:15px;line-height:1.4;color:var(--ft-link);text-decoration:none}
.ft-row svg{flex:none;width:18px;height:18px;margin-top:1px;color:var(--ft-orange)}
.ft-row>span{min-width:0;overflow-wrap:anywhere}
.ft-row b{display:block;font-weight:600;color:#fff}
a.ft-row{transition:color .15s ease}
a.ft-row:hover{color:#fff}
.ft-msg{display:inline-flex;align-items:center;gap:9px;align-self:flex-start;margin-top:2px;padding:12px 18px;border-radius:12px;background:#fff;color:var(--ft-ink);font:700 14.5px/1 'Hanken Grotesk',system-ui,sans-serif;text-decoration:none;transition:transform .15s ease,background .15s ease}
.ft-msg:hover{background:#eef3fb;transform:translateY(-2px)}
.ft-msg svg{width:17px;height:17px}

/* bottom bar */
.ft-bottom{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 28px;padding:22px 0 26px;border-top:1px solid var(--ft-line);font-size:13.5px;color:var(--ft-mute)}
.ft .ft-copy{min-width:0;overflow-wrap:anywhere;color:var(--ft-mute)}
.ft-legal{display:flex;flex-wrap:wrap;gap:6px 22px}
.ft-legal a{color:var(--ft-mute);text-decoration:none;transition:color .15s ease}
.ft-legal a:hover{color:#fff}

/* back to top, with a ring that fills as you scroll */
.ft-up{position:fixed;left:24px;bottom:24px;z-index:999;display:grid;place-items:center;width:48px;height:48px;padding:0;border:0;border-radius:50%;background:#fff;color:#0b1e3f;cursor:pointer;box-shadow:0 12px 28px -10px rgba(11,30,63,.5),0 0 0 1px rgba(11,30,63,.08);opacity:0;visibility:hidden;transform:translateY(10px);transition:opacity .25s ease,transform .25s ease,visibility 0s linear .25s}
.ft-up.is-on{opacity:1;visibility:visible;transform:none;transition-delay:0s}
.ft-up:hover{background:#f3f7ff}
.ft-up:focus-visible{outline:3px solid #2d7dd2;outline-offset:3px}
.ft-up-ring{position:absolute;inset:0;width:100%;height:100%;transform:rotate(-90deg)}
.ft-up-ring circle{fill:none;stroke-width:2.5}
.ft-up-track{stroke:#e1e8f3}
.ft-up-bar{stroke:#1a3f7c;stroke-linecap:round}
.ft-up-ico{position:relative;width:20px;height:20px}

/* live chat: Tawk.to's own round button is about 60px and covered buttons on phones. Under 1000px wide the script at the bottom hides it and
   shows this small one instead, which opens the same chat window. It stays hidden until the chat has loaded. */
.ft-chat{position:fixed;right:16px;bottom:calc(24px + env(safe-area-inset-bottom,0px));z-index:998;display:none;place-items:center;width:44px;height:44px;padding:0;border:0;border-radius:50%;background:#1a3f7c;color:#fff;cursor:pointer;box-shadow:0 12px 28px -10px rgba(11,30,63,.55),0 0 0 1px rgba(11,30,63,.08);-webkit-tap-highlight-color:transparent;transition:background .15s ease,opacity .25s ease}
.ft-chat.is-on{display:grid}
.ft-chat:hover{background:#14336a}
.ft-chat:focus-visible{outline:3px solid #2d7dd2;outline-offset:3px}
.ft-chat svg{width:20px;height:20px}
.ft-chat-n{position:absolute;top:-5px;right:-5px;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:#e11d48;color:#fff;font:700 11px/18px 'Hanken Grotesk',system-ui,sans-serif;text-align:center;box-shadow:0 0 0 2px #fff}
.ft-chat-n[hidden]{display:none}

/* tablet */
@media (max-width:1024px){
  .ft-cols{grid-template-columns:1fr;gap:44px}
  .ft-contact .ft-addr{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 32px}
  .ft-contact .ft-msg{grid-column:1 / -1;justify-self:start}
  .ft-fly{width:min(280px,30vw)}
}
/* leave room under the last line so the back-to-top button never sits on the copyright text */
@media (max-width:1300px){.ft-bottom{padding-bottom:88px}}
@media (max-width:900px){.ft-fly{display:none}}

/* phone: the link groups fold up (the script adds the buttons) */
@media (max-width:720px){
  .ft-wrap{padding:0 20px}
  .ft-top{padding:54px 0 36px}
  .ft-brand{gap:22px}
  .ft-cols{gap:0;padding:0 0 22px}
  .ft-contact{order:-1;padding:30px 0 26px}
  .ft-contact .ft-addr{display:flex;gap:14px}
  .ft-links{grid-template-columns:1fr;gap:0;border-top:1px solid var(--ft-line)}
  .ft-stack{display:contents}
  .ft-bottom{flex-direction:column;align-items:flex-start}
  .ft-link{display:block;padding:12px 0}
  a.ft-row{padding:11px 0}
  .ft-legal{gap:0 22px}
  .ft-legal a{display:inline-block;padding:11px 0}
}
.ft-hb{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;min-height:54px;padding:0;border:0;background:none;font:inherit;color:inherit;text-align:left;cursor:pointer}
.ft-chev{flex:none;width:20px;height:20px;color:var(--ft-mute);transition:transform .25s ease}
.ft-col.is-collapsible{border-bottom:1px solid var(--ft-line)}
.ft-col.is-collapsible .ft-h{margin:0}
.ft-col.is-collapsible .ft-panel{display:grid;grid-template-rows:0fr;transition:grid-template-rows .26s ease}
.ft-col.is-collapsible .ft-panel-in{min-height:0;overflow:hidden;visibility:hidden;transition:visibility 0s linear .26s}
.ft-col.is-collapsible.is-open .ft-panel{grid-template-rows:1fr}
.ft-col.is-collapsible.is-open .ft-panel-in{visibility:visible;transition-delay:0s}
.ft-col.is-collapsible.is-open .ft-chev{transform:rotate(180deg)}
.ft-col.is-collapsible .ft-list{padding-bottom:14px}

@media (prefers-reduced-motion:reduce){.ft *,.ft-up,.ft-chat{transition-duration:.01ms!important;transition-delay:0s!important}}
@media print{.ft,.ft-up,.ft-chat{display:none!important}}

/* ===== button spinner used by every form on the site ===== */
.btn-loading { position: relative; pointer-events: none; opacity: .85; }
.btn-loading .btn-text { visibility: hidden; }
.btn-loading::after {
  content: '';
  position: absolute;
  width: 18px;
  height: 18px;
  top: 50%;
  left: 50%;
  margin: -9px 0 0 -9px;
  border: 2.5px solid rgba(255,255,255,.35);
  border-top-color: #fff;
  border-radius: 50%;
  animation: btn-spin .7s linear infinite;
}
/* ghost and outline buttons get a dark spinner */
.btn-ghost.btn-loading::after,
.btn-outline.btn-loading::after {
  border-color: rgba(0,0,0,.2);
  border-top-color: #1a3f7c;
}
@keyframes btn-spin { to { transform: rotate(360deg); } }
/* floating WhatsApp button (bottom left, above the back-to-top button; the live chat sits bottom right) */
.ft-wa{position:fixed;left:24px;bottom:calc(84px + env(safe-area-inset-bottom,0px));z-index:999;display:grid;place-items:center;width:52px;height:52px;border-radius:50%;background:#25d366;color:#fff;box-shadow:0 8px 24px rgba(11,30,63,.22);text-decoration:none;transition:transform .2s ease,box-shadow .2s ease}
.ft-wa:hover,.ft-wa:focus-visible{transform:translateY(-2px);box-shadow:0 12px 28px rgba(11,30,63,.28);color:#fff}
.ft-wa:focus-visible{outline:3px solid #0b1e3f;outline-offset:3px}
.ft-wa svg{width:26px;height:26px}
.ft-wa-tip{position:absolute;left:62px;top:50%;transform:translateY(-50%);white-space:nowrap;padding:6px 10px;border-radius:8px;background:#0b1e3f;color:#fff;font:600 13px/1.2 'Hanken Grotesk',system-ui,sans-serif;opacity:0;pointer-events:none;transition:opacity .15s ease}
.ft-wa:hover .ft-wa-tip,.ft-wa:focus-visible .ft-wa-tip{opacity:1}
@media (max-width:720px){.ft-wa{left:16px;bottom:calc(76px + env(safe-area-inset-bottom,0px));width:48px;height:48px}.ft-wa-tip{display:none}}
@media (prefers-reduced-motion:reduce){.ft-wa{transition:none}}
@media print{.ft-wa{display:none!important}}
