/* Shared navigation and meeting enquiries. */
.back-to-top{position:fixed;right:26px;bottom:26px;z-index:90;width:48px;height:48px;display:grid;place-items:center;border:1px solid #7bc8d1;border-radius:50%;background:#0b526e;color:#fff;box-shadow:0 5px 20px #06233e30;cursor:pointer;transition:background .2s,transform .2s}
.back-to-top[hidden]{display:none}
.back-to-top:hover{background:#137f96;transform:translateY(-3px)}
.back-to-top svg{width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}
.back-to-top:focus-visible{outline:3px solid #26bcb6;outline-offset:4px}

/* The About image extends to the edge and blends into the copy. */
.about-page .about-hero{position:relative;isolation:isolate;overflow:hidden;min-height:680px;background:#082640}
.about-page .about-hero-grid{display:block}
.about-page .about-hero-grid>div:first-child{position:relative;z-index:2;width:49%;max-width:650px}
.about-page .about-hero-visual{position:absolute;z-index:0;top:0;bottom:0;right:0;width:59%;max-width:none;height:100%;border:0;border-radius:0;box-shadow:none;background:transparent;overflow:hidden}
.about-page .about-hero-visual img{width:100%;height:100%;object-fit:cover;object-position:60% center}
.about-page .about-hero-visual:after{content:'';display:block;position:absolute;inset:0;background:linear-gradient(90deg,#082640 0%,#082640b3 12%,#08264018 30%,transparent 48%);pointer-events:none}

/* A welcoming team fills the Contact hero, with space for readable copy. */
.contact-page .contact-hero{position:relative;isolation:isolate;overflow:hidden;min-height:660px;background:#061e35;display:flex;align-items:center}
.contact-hero-visual{position:absolute;z-index:-1;inset:0 0 0 auto;width:76%;height:100%;overflow:hidden}
.contact-hero-visual img{display:block;width:100%;height:100%;object-fit:cover;object-position:right center}
.contact-hero-visual:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#061e35 0%,#061e35c9 19%,#061e3530 38%,transparent 58%);pointer-events:none}
.contact-page .contact-hero-inner h1{max-width:56%;font-size:clamp(48px,5.5vw,78px)}
.contact-page .contact-hero-inner p{max-width:43%}

.meeting-dialog{width:min(700px,calc(100% - 32px));max-height:calc(100dvh - 40px);margin:auto;padding:0;border:1px solid #d3e4e8;border-radius:22px;background:#f8fbfc;color:#15344a;box-shadow:0 24px 90px #001a3c55;overscroll-behavior:contain}
.meeting-dialog::backdrop{background:#061b32b8;backdrop-filter:blur(5px)}
.meeting-dialog[open]{display:block}
.meeting-dialog header{padding:27px 30px 22px;background:linear-gradient(120deg,#0b2c47,#13566a);color:#fff;position:relative}
.meeting-dialog h2{margin:0 36px 7px 0;font:800 29px/1.2 Manrope,sans-serif;letter-spacing:-.03em}
.meeting-dialog header p{margin:0;max-width:540px;font-size:14px;line-height:1.6;color:#c6e5ed}
.meeting-close{position:absolute;right:18px;top:18px;border:1px solid #8cb2c4;border-radius:50%;width:34px;height:34px;background:transparent;color:#fff;font-size:24px;line-height:1;cursor:pointer}
.meeting-form{padding:24px 30px 28px}
.meeting-fields{display:grid;grid-template-columns:1fr 1fr;gap:16px 18px}
.meeting-fields label{display:flex;flex-direction:column;gap:6px;font:700 12px/1.5 Manrope,sans-serif;color:#23485f}
.meeting-wide{grid-column:1/-1}
.meeting-fields input,.meeting-fields textarea,.meeting-fields select{box-sizing:border-box;width:100%;border:1px solid #b7ced9;border-radius:8px;padding:11px 12px;background:#fff;color:#15344a;font:400 15px/1.4 'DM Sans',sans-serif;min-width:0}
.meeting-fields small{font:400 12px/1.5 'DM Sans',sans-serif;color:#4e6e80}
.meeting-fields textarea{min-height:90px;resize:vertical}
.meeting-fields input:focus,.meeting-fields textarea:focus,.meeting-fields select:focus{outline:2px solid #147f96;outline-offset:2px}
.meeting-honey{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}
.meeting-status{font-size:13px;line-height:1.6;margin:18px 0 0;color:#4e6e80}
.meeting-status.is-error{color:#a53330}
.meeting-status.is-success{color:#146e56;font-weight:700}
.meeting-actions{display:flex;align-items:center;gap:20px;margin-top:18px;flex-wrap:wrap}
.meeting-send{border:0;border-radius:100px;padding:13px 23px;background:#0b526e;color:#fff;font:800 13px/1.5 Manrope,sans-serif;cursor:pointer}
.meeting-send:disabled{opacity:.6;cursor:wait}
.meeting-send:disabled:not([aria-busy=true]){cursor:not-allowed}
.meeting-call{font:700 13px/1.5 Manrope,sans-serif;color:#166d86;text-decoration:underline;text-underline-offset:4px}
.meeting-dialog button:focus-visible,.meeting-dialog a:focus-visible{outline:3px solid #26bcb6;outline-offset:4px}
@media(max-width:850px){
 .about-page .about-hero{padding:70px 0 0;min-height:0}
 .about-page .about-hero-grid>div:first-child{width:100%;max-width:660px}
 .about-page .about-hero-visual{position:relative;inset:auto;width:100vw;height:auto;aspect-ratio:4/3;margin:35px calc((100% - 100vw)/2) 0}
 .about-page .about-hero-visual img{object-position:center}
 .about-page .about-hero-visual:after{background:linear-gradient(180deg,#082640,transparent 24%)}
 .contact-page .contact-hero{display:block;min-height:0;padding:70px 0 0}
 .contact-page .contact-hero-inner h1{max-width:650px}
 .contact-page .contact-hero-inner p{max-width:600px}
 .contact-hero-visual{position:relative;inset:auto;width:100%;height:470px;margin-top:30px;z-index:0;order:2}
 .contact-page .contact-hero{display:flex;flex-direction:column}
 .contact-hero-visual img{object-position:right center}
 .contact-hero-visual:after{background:linear-gradient(180deg,#061e35,transparent 24%)}
}
@media(max-width:550px){
 .back-to-top{right:16px;bottom:calc(16px + env(safe-area-inset-bottom));width:44px;height:44px}
 .contact-hero-visual{height:350px}
 .contact-hero-visual img{object-position:68% center}
 .meeting-dialog{max-height:calc(100dvh - 20px);width:calc(100% - 20px);border-radius:16px}
 .meeting-dialog header{padding:24px 20px 20px}
 .meeting-dialog h2{font-size:25px}
 .meeting-form{padding:20px}
 .meeting-fields{grid-template-columns:1fr;gap:14px}
 .meeting-fields input,.meeting-fields textarea,.meeting-fields select{font-size:16px}
 .meeting-actions{gap:16px}
}
@media(prefers-reduced-motion:reduce){.back-to-top{transition:none}}

/* Social profiles can be linked when their account URLs are supplied. */
.footer-links{display:flex;flex-direction:column;align-items:flex-end}
.footer-socials{display:flex;align-items:center;gap:12px;margin-top:22px}
.social-icon{display:grid;place-items:center;width:40px;height:40px;border:1px solid #42687c;border-radius:12px;background:#13344a;color:#c3dce5}
.social-icon svg{display:block;width:24px;height:24px}
.social-instagram svg{fill:none;stroke:currentColor;stroke-width:1.7}
.social-instagram .social-dot{fill:currentColor;stroke:none}
.social-linkedin svg{fill:currentColor}
.footer-socials a:focus-visible{outline:3px solid #78e4eb;outline-offset:4px}
@media(max-width:650px){.footer-links{align-items:flex-start}}
