/* ==========================================================================
   Queens 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: #5A6B7A;
    --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.3rem, 4.6vw, 3.7rem); }
.qt h2 { font-size: clamp(1.9rem, 3.4vw, 2.8rem); }
.qt h3 { font-size: clamp(1.4rem, 2.2vw, 1.9rem); }
.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: 230px; height: 34px; 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: 6px;
    padding: 12px 16px; font-size: 15px; font-weight: 500;
    color: var(--qt-navy);
}
.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: 14px; }
.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: 1100px) {
    .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: center; 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: linear-gradient(110deg, rgba(6,31,50,.92) 0%, rgba(6,31,50,.72) 45%, rgba(12,35,109,.45) 100%);
}
.qt-hero-inner { position: relative; z-index: 3; padding: 120px 0; }
.qt-hero h1 { color: #fff; max-width: 16ch; }
.qt-hero .qt-tagline {
    font-size: clamp(1.1rem, 2vw, 1.5rem); font-weight: 300; letter-spacing: .04em;
    color: var(--qt-gold); margin-bottom: 26px;
}
.qt-hero .qt-lead { color: #d5e0e9; max-width: 60ch; margin: 24px 0 36px; }
.qt-hero-actions { display: flex; flex-wrap: wrap; gap: 14px; }

/* 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; }
.qt-card p { font-size: .98rem; margin-bottom: 18px; }
.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-sky); 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); }

/* 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); }

/* 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; }
