/* ==========================================================================
   Queen's Tower Advisory — theme layer
   Loaded after Crafto's vendors/style/responsive. Defines the QT brand
   palette, Roboto typography, and the custom components used across the site.
   Light theme.
   ========================================================================== */

:root {
    /* Primary */
    --qt-navy: #061F32;
    --qt-white: #FFFFFF;
    /* Accent — blue family */
    --qt-mid-blue: #3478AB;
    --qt-deep-blue: #1D4769;
    --qt-sky: #7AAFD6;
    --qt-indigo: #0C236D;
    /* Signal */
    --qt-gold: #F8BC3B;
    /* Neutrals */
    --qt-body: #061F32;
    --qt-muted: #475764;
    --qt-rule: #D9E0E6;
    --qt-mist: #F4F7FA;   /* very light sky-tinted background */
    --qt-mist-2: #EAF1F7;

    --qt-sans: 'Roboto', 'Helvetica Neue', Arial, sans-serif;
    --qt-shadow: 0 18px 50px -20px rgba(6, 31, 50, .28);
    --qt-shadow-sm: 0 10px 30px -16px rgba(6, 31, 50, .25);
    --qt-radius: 6px;
    --qt-maxw: 1290px;
}

/* ---- Minimal reset (Crafto's reset is no longer loaded) ---- */
*, *::before, *::after { box-sizing: border-box; }
body.qt, body.qt h1, body.qt h2, body.qt h3, body.qt h4, body.qt h5, body.qt h6,
body.qt p, body.qt ul, body.qt ol, body.qt figure, body.qt blockquote { margin: 0; padding: 0; }
body.qt img, body.qt video, body.qt svg, body.qt iframe { max-width: 100%; }
body.qt button { font-family: inherit; }
body.qt ul, body.qt ol { list-style: none; }

/* ---- Base typography ---- */
html { scroll-behavior: smooth; }

body.qt {
    font-family: var(--qt-sans);
    color: var(--qt-body);
    background: var(--qt-white);
    font-size: 17px;
    line-height: 1.7;
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}

/* Base heading + paragraph colour kept at single-class specificity (.qt hX)
   so section-level overrides such as .qt-bg-navy h2 win by source order. */
.qt h1, .qt h2, .qt h3, .qt h4, .qt h5, .qt h6 {
    font-family: var(--qt-sans);
    color: var(--qt-navy);
    font-weight: 700;
    letter-spacing: -.01em;
    line-height: 1.18;
}

.qt h1 { font-size: clamp(2.6rem, 5.2vw, 4.3rem); }
.qt h2 { font-size: clamp(2.15rem, 3.9vw, 3.2rem); }
.qt h3 { font-size: clamp(1.5rem, 2.4vw, 2.05rem); }
.qt p  { color: #36505f; }

body.qt a { color: var(--qt-mid-blue); text-decoration: none; transition: color .2s ease; }
body.qt a:hover { color: var(--qt-deep-blue); }

/* prose flow rhythm */
body.qt h1 + p, body.qt h2 + p, body.qt h3 + p, body.qt h4 + p { margin-top: 16px; }
body.qt p + p { margin-top: 1.05em; }
body.qt .qt-lead + p { margin-top: 18px; }

.qt-container { max-width: var(--qt-maxw); margin: 0 auto; padding: 0 28px; }
.qt-section { padding: 104px 0; }
.qt-section-sm { padding: 72px 0; }
.qt-bg-mist { background: var(--qt-mist); }
.qt-bg-navy { background: var(--qt-navy); }
.qt-bg-navy, .qt-bg-navy p, .qt-bg-navy h1, .qt-bg-navy h2, .qt-bg-navy h3 { color: #fff; }
.qt-bg-navy p { color: #c7d4de; }

/* Eyebrow / kicker */
.qt-eyebrow {
    display: inline-flex; align-items: center; gap: 10px;
    font-size: 13px; font-weight: 600; letter-spacing: .14em;
    text-transform: uppercase; color: var(--qt-mid-blue);
    margin-bottom: 18px;
}
.qt-eyebrow::before { content: ""; width: 28px; height: 2px; background: var(--qt-gold); display: inline-block; }
.qt-bg-navy .qt-eyebrow { color: var(--qt-sky); }

.qt-lead { font-size: 1.22rem; line-height: 1.6; color: #38525f; }
.qt-bg-navy .qt-lead { color: #d3dee7; }
.qt-measure { max-width: 760px; }
.qt-muted { color: var(--qt-muted); }

/* ---- Buttons ---- */
.qt-btn {
    display: inline-flex; align-items: center; gap: 10px;
    font-weight: 600; font-size: 15px; line-height: 1;
    padding: 16px 28px; border-radius: var(--qt-radius);
    border: 2px solid transparent; cursor: pointer;
    transition: all .22s ease; text-decoration: none;
}
.qt-btn i { font-size: 1.05em; transition: transform .22s ease; }
.qt-btn:hover i { transform: translateX(3px); }
/* `.qt` prefix raises specificity above `body.qt a`, since buttons are <a>. */
.qt .qt-btn-primary { background: var(--qt-mid-blue); color: #fff; }
.qt .qt-btn-primary:hover { background: var(--qt-deep-blue); color: #fff; }
.qt .qt-btn-navy { background: var(--qt-navy); color: #fff; }
.qt .qt-btn-navy:hover { background: var(--qt-indigo); color: #fff; }
.qt .qt-btn-outline { border-color: var(--qt-navy); color: var(--qt-navy); }
.qt .qt-btn-outline:hover { background: var(--qt-navy); color: #fff; }
.qt .qt-btn-ghost { border-color: rgba(255,255,255,.5); color: #fff; }
.qt .qt-btn-ghost:hover { background: #fff; color: var(--qt-navy); border-color:#fff; }

/* ==========================================================================
   Header / navigation
   ========================================================================== */
.qt-header {
    position: sticky; top: 0; z-index: 1000;
    background: rgba(255,255,255,.94);
    backdrop-filter: saturate(140%) blur(10px);
    border-bottom: 1px solid var(--qt-rule);
}
.qt-nav { display: flex; align-items: center; justify-content: space-between; height: 84px; }
.qt-brand img { height: 38px; width: auto; display: block; }
.qt-brand .qt-logo-mask {
    display: block; width: 200px; height: 32px; background: var(--qt-navy);
    -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat;
    -webkit-mask-size: contain; mask-size: contain;
    -webkit-mask-position: left center; mask-position: left center;
}
@media (max-width: 480px) { .qt-brand .qt-logo-mask { width: 180px; } }
.qt-menu { display: flex; align-items: center; gap: 4px; list-style: none; margin: 0; padding: 0; }
.qt-menu > li { position: relative; }
.qt-menu > li > a {
    display: inline-flex; align-items: center; gap: 5px;
    padding: 12px 11px; font-size: 14.5px; font-weight: 500;
    color: var(--qt-navy); white-space: nowrap;
}
.qt-menu > li > a:hover { color: var(--qt-mid-blue); }
.qt-menu .qt-caret { font-size: 10px; opacity: .7; }

/* dropdowns */
.qt-dropdown {
    position: absolute; top: calc(100% + 6px); left: 0;
    min-width: 290px; background: #fff;
    border: 1px solid var(--qt-rule); border-radius: 8px;
    box-shadow: var(--qt-shadow); padding: 10px;
    opacity: 0; visibility: hidden; transform: translateY(8px);
    transition: all .2s ease; list-style: none; margin: 0;
}
.qt-has-dropdown:hover > .qt-dropdown { opacity: 1; visibility: visible; transform: translateY(0); }
.qt-dropdown li a {
    display: block; padding: 10px 14px; border-radius: 6px;
    font-size: 14.5px; color: var(--qt-navy); font-weight: 500;
}
.qt-dropdown li a small { display:block; font-weight:400; color: var(--qt-muted); font-size:12.5px; margin-top:2px; }
.qt-dropdown li a:hover { background: var(--qt-mist); color: var(--qt-mid-blue); }
.qt-dropdown.qt-wide { min-width: 560px; column-count: 2; column-gap: 8px; }
.qt-dropdown.qt-wide li { break-inside: avoid; }

.qt-nav-cta { display: flex; align-items: center; gap: 12px; }
.qt-nav-cta .qt-btn { padding: 12px 20px; white-space: nowrap; flex-shrink: 0; }
.qt-burger { display: none; background: none; border: 0; width: 44px; height: 44px; cursor: pointer; }
.qt-burger span { display:block; width: 24px; height: 2px; background: var(--qt-navy); margin: 5px auto; transition: .25s; }

/* mobile nav */
@media (max-width: 1250px) {
    .qt-burger { display: block; }
    .qt-nav-cta .qt-btn { display: none; }
    .qt-menu {
        position: fixed; inset: 84px 0 auto 0; flex-direction: column;
        align-items: stretch; gap: 0; background: #fff; padding: 12px 20px 28px;
        border-bottom: 1px solid var(--qt-rule); box-shadow: var(--qt-shadow);
        max-height: calc(100vh - 84px); overflow-y: auto;
        transform: translateY(-12px); opacity: 0; visibility: hidden; transition: .22s;
    }
    body.qt-nav-open .qt-menu { transform: translateY(0); opacity: 1; visibility: visible; }
    .qt-menu > li > a { padding: 14px 6px; border-bottom: 1px solid var(--qt-rule); justify-content: space-between; }
    .qt-dropdown {
        position: static; opacity: 1; visibility: visible; transform: none;
        box-shadow: none; border: 0; padding: 4px 0 10px 12px; min-width: 0; display: none;
    }
    .qt-dropdown.qt-wide { column-count: 1; }
    .qt-open > .qt-dropdown { display: block; }
}

/* ==========================================================================
   Hero
   ========================================================================== */
.qt-hero { position: relative; min-height: 86vh; display: flex; align-items: flex-end; overflow: hidden; background: var(--qt-navy); }
.qt-hero-media, .qt-hero video, .qt-hero-poster {
    position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover;
}
.qt-hero-poster { z-index: 0; }
.qt-hero video { z-index: 1; }
.qt-hero::after {
    content: ""; position: absolute; inset: 0; z-index: 2;
    background: rgba(6,31,50,.35);
}
.qt-hero-inner { position: relative; z-index: 3; width: 100%; padding: 40px 28px 60px; }
.qt-hero-text { max-width: 100%; margin-left: 0; }
.qt-hero h1 { color: #fff; max-width: 32ch; font-size: clamp(1.9rem, 3vw, 2.8rem); }
.qt-hero .qt-lead { color: #d5e0e9; max-width: 60ch; margin: 24px 0 36px; font-size: calc(1.22rem + 2px); }
.qt-hero-actions { display: flex; flex-wrap: wrap; gap: 14px; }
.qt-hero .qt-tagline {
    font-size: clamp(1.1rem, 2vw, 1.5rem); font-weight: 700; letter-spacing: .04em;
    color: var(--qt-gold); margin-top: 26px; text-align: left;
}

/* scroll cue */
.qt-scrollcue { position:absolute; bottom: 26px; left:50%; transform: translateX(-50%); z-index:3; color:#fff; font-size:12px; letter-spacing:.2em; text-transform:uppercase; opacity:.8; }

/* ==========================================================================
   Generic blocks
   ========================================================================== */
.qt-section-head { max-width: 720px; margin-bottom: 56px; }
.qt-section-head.qt-center { margin-left: auto; margin-right: auto; text-align: center; }

.qt-grid { display: grid; gap: 26px; }
.qt-grid-2 { grid-template-columns: repeat(2, 1fr); }
.qt-grid-3 { grid-template-columns: repeat(3, 1fr); }
.qt-grid-4 { grid-template-columns: repeat(4, 1fr); }
@media (max-width: 992px) { .qt-grid-3, .qt-grid-4 { grid-template-columns: repeat(2,1fr); } }
@media (max-width: 620px) { .qt-grid-2, .qt-grid-3, .qt-grid-4 { grid-template-columns: 1fr; } }

/* Service / generic card */
.qt-card {
    background: #fff; border: 1px solid var(--qt-rule); border-radius: 10px;
    padding: 34px 30px; transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
    display: flex; flex-direction: column; height: 100%;
}
.qt-card:hover { transform: translateY(-6px); box-shadow: var(--qt-shadow); border-color: transparent; }
.qt-card .qt-ico {
    width: 56px; height: 56px; border-radius: 12px; display: grid; place-items: center;
    background: var(--qt-mist-2); color: var(--qt-mid-blue); font-size: 24px; margin-bottom: 22px;
}
.qt-card h3 { font-size: 1.25rem; margin-bottom: 12px; color: var(--qt-navy); }
.qt-card p { font-size: .98rem; margin-bottom: 18px; color: #36505f; }

/* White cards/panels must keep dark text even inside dark (.qt-bg-navy)
   sections — otherwise the section's white-heading / light-paragraph colours
   bleed into the cards and render white-on-white / grey-on-white. */
.qt-bg-navy .qt-card h1, .qt-bg-navy .qt-card h2, .qt-bg-navy .qt-card h3,
.qt-bg-navy .qt-card h4, .qt-bg-navy .qt-quote .qt-q,
.qt-bg-navy .qt-insight h3, .qt-bg-navy .qt-person h4 { color: var(--qt-navy); }
.qt-bg-navy .qt-card p, .qt-bg-navy .qt-insight p,
.qt-bg-navy .qt-quote .qt-cite { color: #36505f; }
.qt-card .qt-more { margin-top: auto; font-weight: 600; font-size: 14px; color: var(--qt-mid-blue); display:inline-flex; align-items:center; gap:7px; }
.qt-card .qt-more i { transition: transform .2s ease; }
.qt-card:hover .qt-more i { transform: translateX(4px); }

/* Two-column media + text */
.qt-split { display: grid; grid-template-columns: 1fr 1fr; gap: 64px; align-items: center; }
.qt-split.qt-reverse .qt-split-media { order: 2; }
@media (max-width: 992px) { .qt-split { grid-template-columns: 1fr; gap: 36px; } .qt-split.qt-reverse .qt-split-media { order: 0; } }
.qt-split-media img { width: 100%; border-radius: 12px; display: block; box-shadow: var(--qt-shadow-sm); }

/* Checklist */
.qt-checklist { list-style: none; margin: 22px 0 0; padding: 0; }
.qt-checklist li { position: relative; padding: 0 0 14px 34px; color: #36505f; }
.qt-checklist li::before {
    content: "\f00c"; font-family: "Font Awesome 7 Free"; font-weight: 900;
    position: absolute; left: 0; top: 1px; color: var(--qt-mid-blue); font-size: 14px;
}

/* Stats strip */
.qt-stats { display: grid; grid-template-columns: repeat(4,1fr); gap: 30px; }
@media (max-width: 768px) { .qt-stats { grid-template-columns: repeat(2,1fr); } }
.qt-stat .qt-stat-num { font-size: clamp(2.2rem, 4vw, 3rem); font-weight: 800; color: #fff; line-height: 1; }
.qt-stat .qt-stat-num span { color: var(--qt-gold); }
.qt-stat .qt-stat-label { color: #aebfcc; font-size: .95rem; margin-top: 10px; }

/* Numbered process */
.qt-steps { counter-reset: step; display: grid; grid-template-columns: repeat(4,1fr); gap: 26px; }
@media (max-width: 992px){ .qt-steps { grid-template-columns: repeat(2,1fr);} }
@media (max-width: 560px){ .qt-steps { grid-template-columns: 1fr;} }
.qt-step { padding-top: 26px; border-top: 2px solid var(--qt-rule); }
.qt-step::before { counter-increment: step; content: counter(step,decimal-leading-zero); display:block; font-weight:800; color: var(--qt-deep-blue); font-size: 1.3rem; margin-bottom: 12px; }
.qt-step h4 { font-size: 1.1rem; margin-bottom: 8px; }
.qt-step p { font-size: .95rem; }

/* Sector tiles */
.qt-sector { position: relative; border-radius: 12px; overflow: hidden; min-height: 240px; display:flex; align-items:flex-end; color:#fff; }
.qt-sector img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.qt-sector::after { content:""; position:absolute; inset:0; background: linear-gradient(0deg, rgba(6,31,50,.9) 0%, rgba(6,31,50,.25) 70%); }
.qt-sector .qt-sector-body { position: relative; z-index:2; padding: 26px; }
.qt-sector h3 { color:#fff; font-size: 1.25rem; margin: 0 0 6px; }
.qt-sector p { color:#cdd9e3; font-size:.9rem; margin:0; }
.qt-sector:hover img { transform: scale(1.06); }
.qt-sector img { transition: transform .5s ease; }

/* Quote / testimonial */
.qt-quote { background:#fff; border:1px solid var(--qt-rule); border-radius:12px; padding: 40px 38px; }
.qt-quote .qt-q { font-size: 1.18rem; line-height:1.6; color: var(--qt-navy); font-weight:500; }
.qt-quote .qt-q::before { content:"\201C"; color: var(--qt-gold); font-size: 2.4rem; line-height:0; vertical-align:-.4em; margin-right:6px; }
.qt-quote .qt-cite { margin-top: 22px; font-size:.92rem; color: var(--qt-muted); }
.qt-quote .qt-cite strong { color: var(--qt-navy); display:block; }

/* Team */
.qt-person { text-align: left; }
.qt-person .qt-person-photo { border-radius: 12px; overflow: hidden; aspect-ratio: 3/3.4; background: var(--qt-mist-2); }
.qt-person .qt-person-photo img { width:100%; height:100%; object-fit:cover; display:block; }
.qt-person h4 { margin: 16px 0 2px; font-size: 1.12rem; }
.qt-person .qt-role { color: var(--qt-mid-blue); font-size: .9rem; font-weight:600; }
.qt-person .qt-contact { margin-top: 8px; font-size:.86rem; color: var(--qt-muted); }
.qt-person .qt-contact a { color: var(--qt-muted); }
.qt-person .qt-contact a:hover { color: var(--qt-mid-blue); }

/* Clickable person card (opens a bio modal) */
.qt-person-btn { appearance: none; background: none; border: 0; padding: 0; margin: 0; width: 100%; font: inherit; color: inherit; text-align: left; cursor: pointer; }
.qt-person-btn .qt-person-photo { transition: box-shadow .25s ease, transform .25s ease; }
.qt-person-btn:hover .qt-person-photo { box-shadow: var(--qt-shadow-sm); transform: translateY(-3px); }
.qt-person-btn:focus-visible { outline: 2px solid var(--qt-mid-blue); outline-offset: 3px; border-radius: 12px; }
.qt-person .qt-person-more { margin-top: 10px; font-weight: 600; font-size: .86rem; color: var(--qt-mid-blue); display: inline-flex; align-items: center; gap: 7px; }
.qt-person-more i { transition: transform .2s ease; }
.qt-person-btn:hover .qt-person-more i { transform: translateX(3px); }

/* Bio modal */
dialog.qt-modal { width: min(720px, 92vw); border: 0; border-radius: 14px; padding: 0; box-shadow: var(--qt-shadow); color: var(--qt-body); }
dialog.qt-modal::backdrop { background: rgba(6,31,50,.55); }
.qt-modal-inner { padding: 34px; max-height: 85vh; overflow-y: auto; }
.qt-modal-x { float: right; appearance: none; background: none; border: 0; font-size: 28px; line-height: 1; color: var(--qt-muted); cursor: pointer; margin: -8px -8px 0 0; }
.qt-modal-x:hover { color: var(--qt-navy); }
.qt-modal-head { display: flex; align-items: center; gap: 18px; margin-bottom: 6px; }
.qt-modal-photo { width: 84px; height: 84px; border-radius: 50%; overflow: hidden; flex: 0 0 auto; background: var(--qt-mist-2); }
.qt-modal-photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.qt-modal-head h3 { margin: 0; font-size: 1.3rem; }
.qt-modal-body p { margin: 14px 0; color: var(--qt-body); }
.qt-modal-body ul { margin: 14px 0; padding-left: 20px; list-style: disc; }
.qt-modal-body li { margin: 4px 0; }
.qt-modal-contact { margin-top: 22px; padding-top: 18px; border-top: 1px solid var(--qt-rule); display: flex; flex-wrap: wrap; gap: 18px; font-size: .92rem; }
.qt-modal-contact a { font-weight: 600; display: inline-flex; align-items: center; gap: 7px; }

/* Insight cards */
.qt-insight { background:#fff; border:1px solid var(--qt-rule); border-radius:12px; overflow:hidden; display:flex; flex-direction:column; transition: box-shadow .25s, transform .25s; height:100%; }
.qt-insight:hover { box-shadow: var(--qt-shadow); transform: translateY(-5px); }
.qt-insight .qt-insight-img { aspect-ratio: 16/9; overflow:hidden; }
.qt-insight .qt-insight-img img { width:100%; height:100%; object-fit:cover; }
.qt-insight .qt-insight-body { padding: 24px 24px 26px; display:flex; flex-direction:column; flex:1; }
.qt-insight .qt-tag { font-size:12px; font-weight:600; letter-spacing:.1em; text-transform:uppercase; color: var(--qt-mid-blue); }
.qt-insight h3 { font-size: 1.16rem; margin: 12px 0 10px; }
.qt-insight .qt-meta { margin-top:auto; font-size:.82rem; color: var(--qt-muted); }

/* Article (insight detail) */
.qt-article-meta { color:#9fb3c2; font-size:.9rem; margin-top:20px; }
.qt-article-figure { max-width: 960px; margin: 0 auto 52px; border-radius:12px; overflow:hidden; box-shadow: var(--qt-shadow-sm); }
.qt-article-figure img { width:100%; display:block; }
.qt-article { max-width: 760px; margin: 0 auto; font-size:1.07rem; }
/* `.qt` prefix raises specificity above the base reset (body.qt h2/p/blockquote{margin:0}) */
.qt .qt-article h2 { font-size: clamp(1.35rem,2.4vw,1.7rem); margin: 44px 0 14px; }
.qt .qt-article h3 { font-size: 1.25rem; margin: 32px 0 10px; }
.qt .qt-article p { color:#2f4654; line-height:1.78; margin: 0 0 1.15em; }
.qt .qt-article ul { list-style: disc; padding-left: 1.35em; margin: 0 0 1.3em; }
.qt .qt-article ul li { color:#2f4654; line-height:1.7; margin-bottom: .55em; padding-left:.2em; }
.qt-article strong { color: var(--qt-navy); font-weight:700; }
.qt .qt-article blockquote {
    border-left: 3px solid var(--qt-gold); margin: 36px 0; padding: 4px 0 4px 26px;
    font-size: clamp(1.2rem,2.2vw,1.5rem); line-height:1.45; font-weight:500; color: var(--qt-navy);
}
.qt-callout { background: var(--qt-mist); border:1px solid var(--qt-rule); border-left:3px solid var(--qt-mid-blue); border-radius:8px; padding: 24px 28px; margin-bottom: 40px; }
.qt-callout h4 { font-size:.78rem; letter-spacing:.14em; text-transform:uppercase; color: var(--qt-mid-blue); margin-bottom:12px; }
.qt-callout ul { list-style:none; padding:0; margin:0; }
.qt-callout li { position:relative; padding-left: 22px; margin-bottom: 9px; color:#36505f; font-size:.98rem; line-height:1.55; }
.qt-callout li:last-child { margin-bottom:0; }
.qt-callout li::before { content:""; position:absolute; left:0; top:.6em; width:9px; height:2px; background: var(--qt-mid-blue); }
.qt-article-share { margin-top: 44px; padding-top: 30px; border-top:1px solid var(--qt-rule); }

/* Accordion (about sections / legal) */
.qt-accordion { border-top: 1px solid var(--qt-rule); }
.qt-accordion details { border-bottom: 1px solid var(--qt-rule); }
.qt-accordion summary { cursor:pointer; list-style:none; padding: 22px 0; font-weight:600; color: var(--qt-navy); font-size:1.1rem; display:flex; justify-content:space-between; align-items:center; }
.qt-accordion summary::-webkit-details-marker { display:none; }
.qt-accordion summary::after { content:"\2b"; color: var(--qt-mid-blue); font-weight:400; }
.qt-accordion details[open] summary::after { content:"\2212"; }
.qt-accordion .qt-acc-body { padding: 0 0 24px; color:#36505f; }

/* CTA band */
.qt-cta { position: relative; background: var(--qt-navy); border-radius: 16px; padding: 64px 56px; overflow:hidden; }
.qt-cta::before { content:""; position:absolute; right:-80px; top:-80px; width: 320px; height:320px; border-radius:50%; background: radial-gradient(circle, rgba(122,175,214,.35), transparent 70%); }
.qt-cta-inner { position:relative; z-index:2; display:flex; flex-wrap:wrap; gap:28px; align-items:center; justify-content:space-between; }
.qt-cta h2 { color:#fff; margin:0 0 8px; }
.qt-cta p { color:#c7d4de; margin:0; max-width: 52ch; }

/* Page hero (interior pages) */
.qt-pagehero { background: var(--qt-navy); position: relative; overflow:hidden; }
.qt-pagehero::before { content:""; position:absolute; inset:0; background:
    radial-gradient(900px 400px at 85% -10%, rgba(52,120,171,.45), transparent 60%); }
.qt-pagehero-inner { position: relative; z-index:2; padding: 96px 0 80px; }
.qt-pagehero h1 { color:#fff; max-width: 20ch; }
.qt-pagehero .qt-lead { color:#cdd9e3; max-width: 64ch; margin-top: 18px; }
.qt-breadcrumb { font-size: 13px; color:#9fb3c2; margin-bottom: 22px; letter-spacing:.02em; }
.qt-breadcrumb a { color:#9fb3c2; }
.qt-breadcrumb a:hover { color:#fff; }
.qt-breadcrumb span { color: var(--qt-sky); }

/* Forms */
.qt-form { display:grid; gap:18px; }
.qt-form .qt-row2 { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
@media (max-width:600px){ .qt-form .qt-row2 { grid-template-columns:1fr; } }
.qt-form label { font-size:13px; font-weight:600; color: var(--qt-navy); display:block; margin-bottom:6px; }
.qt-form input, .qt-form textarea, .qt-form select {
    width:100%; padding:13px 15px; border:1px solid var(--qt-rule); border-radius:6px;
    font: inherit; font-size:15px; color: var(--qt-navy); background:#fff;
}
.qt-form input:focus, .qt-form textarea:focus, .qt-form select:focus { outline:none; border-color: var(--qt-mid-blue); box-shadow:0 0 0 3px rgba(52,120,171,.15); }

/* Contact info list */
.qt-info { list-style:none; padding:0; margin:0; }
.qt-info li { display:flex; gap:16px; padding: 18px 0; border-bottom:1px solid var(--qt-rule); }
.qt-info li i { color: var(--qt-mid-blue); font-size:18px; margin-top:3px; }
.qt-info li span { display:block; }
.qt-info li b { color: var(--qt-navy); display:block; margin-bottom:2px; }
.qt-info li a { color:#36505f; }

/* ==========================================================================
   Footer
   ========================================================================== */
.qt-footer { background: var(--qt-navy); color:#aebfcc; padding-top: 76px; }
.qt-footer h5 { color:#fff; font-size:15px; letter-spacing:.04em; margin-bottom:18px; }
.qt-footer a { color:#aebfcc; }
.qt-footer a:hover { color:#fff; }
.qt-footer .qt-foot-grid { display:grid; grid-template-columns: 1.6fr 1fr 1fr 1fr; gap: 40px; padding-bottom: 56px; }
@media (max-width: 900px){ .qt-footer .qt-foot-grid { grid-template-columns: 1fr 1fr; gap:34px; } }
@media (max-width: 560px){ .qt-footer .qt-foot-grid { grid-template-columns: 1fr; } }
.qt-footer ul { list-style:none; padding:0; margin:0; }
.qt-footer ul li { margin-bottom: 11px; font-size:14.5px; }
.qt-footer .qt-foot-brand img { height: 40px; margin-bottom: 20px; filter: brightness(0) invert(1); }
.qt-footer .qt-foot-brand p { color:#9fb3c2; font-size:14.5px; max-width: 34ch; }
.qt-foot-social { display:flex; gap:12px; margin-top:20px; }
.qt-foot-social a { width:40px; height:40px; border:1px solid rgba(255,255,255,.2); border-radius:50%; display:grid; place-items:center; color:#cdd9e3; }
.qt-foot-social a:hover { background: var(--qt-mid-blue); border-color: var(--qt-mid-blue); color:#fff; }
.qt-footer .qt-foot-bottom { border-top:1px solid rgba(255,255,255,.12); padding: 24px 0; display:flex; flex-wrap:wrap; gap:14px; justify-content:space-between; font-size:13px; color:#8ba0b0; }
.qt-footer .qt-foot-bottom a { margin-left: 18px; }

/* Utilities */
.qt-mt-0 { margin-top:0; } .qt-mb-0 { margin-bottom:0; }
.qt-text-center { text-align:center; }
[data-reveal] { opacity:0; transform: translateY(24px); transition: opacity .6s ease, transform .6s ease; }
[data-reveal].qt-in { opacity:1; transform:none; }

/* ==========================================================================
   Credentials — sector filter + cards
   ========================================================================== */
.qt-visually-hidden { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0; }

.qt-filters { display:flex; flex-wrap:wrap; gap:10px; margin-bottom:40px; }
.qt-filter {
    appearance:none; cursor:pointer; font:inherit; font-size:14px; font-weight:600;
    padding:9px 18px; border-radius:999px; border:1px solid var(--qt-rule);
    background:#fff; color:var(--qt-navy);
    transition:background .2s ease, color .2s ease, border-color .2s ease;
}
.qt-filter:hover { border-color:var(--qt-mid-blue); color:var(--qt-mid-blue); }
.qt-filter.is-active { background:var(--qt-navy); border-color:var(--qt-navy); color:#fff; }
.qt-filter:focus-visible { outline:2px solid var(--qt-mid-blue); outline-offset:2px; }

.qt-cred-grid { display:grid; grid-template-columns:repeat(auto-fit, minmax(240px,1fr)); gap:22px; }
.qt-cred {
    display:flex; flex-direction:column; background:var(--qt-white);
    border:1px solid var(--qt-rule); border-radius:12px; padding:22px 22px 18px;
}
.qt-cred[hidden] { display:none; }
.qt-cred-meta { display:flex; align-items:center; justify-content:space-between; gap:10px; }
.qt-cred-sector { font-size:11.5px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--qt-mid-blue); }
.qt-cred-loc { display:inline-flex; align-items:center; gap:8px; color:var(--qt-muted); font-size:13px; }
.qt-cred-flag { font-size:11px; font-weight:700; letter-spacing:.04em; color:var(--qt-navy); background:var(--qt-mist-2); border-radius:3px; padding:2px 5px; line-height:1; }
.qt-cred-year { font-variant-numeric:tabular-nums; }
.qt-cred .qt-cred-target { font-size:1.1rem; line-height:1.3; margin:14px 0 8px; color:var(--qt-navy); }
.qt-cred-advice { color:var(--qt-muted); font-size:.95rem; line-height:1.55; margin:0; }
.qt-cred-foot { margin-top:auto; padding-top:16px; border-top:1px solid var(--qt-rule); font-size:13px; color:var(--qt-navy); font-weight:600; }
@media (prefers-reduced-motion: reduce) { .qt-filter { transition:none; } }

/* Careers — role list rows (reuses existing tokens only) */
.qt-roles { max-width: 820px; }
.qt-role { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 24px 0; border-bottom: 1px solid var(--qt-rule); }
.qt-role-main { flex: 1; display: block; }
.qt-role .qt-role-title { font-size: 1.12rem; margin: 0 0 4px; color: var(--qt-navy); }
.qt-role-main:hover .qt-role-title { color: var(--qt-mid-blue); }
.qt-role-meta { font-size: .9rem; color: var(--qt-mid-blue); font-weight: 600; }
.qt-role-summary { margin: 8px 0 0; color: var(--qt-muted); font-size: .95rem; max-width: 60ch; }
.qt-role-apply { flex: 0 0 auto; }
@media (max-width: 640px) { .qt-role { flex-direction: column; align-items: flex-start; gap: 16px; } }
