/*
 Theme Name:   GeneratePress Child
 Theme URI:    https://generatepress.com
 Description:  Default GeneratePress child theme
 Author:       Tom Usborne
 Author URI:   https://tomusborne.com
 Template:     generatepress
 Version:      0.1
*/

/* ============================================================
   QLD Immigration -- consolidated design-system stylesheet
   Auto-merged from the 17 provided page files.
   Paste into the GeneratePress child theme's style.css
   (below the existing header comment block).

   This covers 14 of the 17 pages with zero changes needed.
   Homepage, FAQ, and the Australian Citizenship page each need
   one extra wrapper <div> class -- see the override blocks and
   instructions at the bottom of this file.
   ============================================================ */

:root {
    --ink:#1a1a1a;
    --teal:#256059;
    --teal-deep:#15332e;
    --sand:#f1e9da;
    --paper:#fbfaf6;
    --coral:#e2361c;
    --sage:#8fa89b;
    --teal-bright:#0abab5;
    --line:rgba(26,26,26,0.16);
  }
* { box-sizing:border-box; }
body {
    margin:0;
    background:var(--paper);
    color:var(--ink);
    font-family:'Inter',sans-serif;
    -webkit-font-smoothing:antialiased;
  }
.display { font-family:'Fraunces',serif; }
.mono { font-family:'IBM Plex Mono',monospace; }
a { color:inherit; }
.wrap { max-width:900px;margin:0 auto;padding:0 24px; }
header {
    position:sticky;top:0;z-index:50;
    background:rgba(251,250,246,0.92);
    backdrop-filter:blur(6px);
    border-bottom:1px solid var(--line);
  }
.nav {
    display:flex;align-items:center;justify-content:space-between;
    padding:16px 24px;max-width:1180px;margin:0 auto;
  }
.logo-lockup { display:flex;align-items:center;gap:9px;text-decoration:none; }
.logo-mark { width:34px;height:34px;flex-shrink:0; }
.logo { font-family:'Fraunces',serif;font-weight:600;font-size:22px; }
.logo span { color:var(--coral); }
.nav-links { display:none;gap:28px;font-size:14px;font-weight:500; }
.nav-links a { text-decoration:none;opacity:0.75; }
.nav-links a:hover { opacity:1; }
.nav-cta {
    font-size:13px;font-weight:600;background:var(--teal);color:#fff;
    padding:10px 16px;border-radius:2px;text-decoration:none;white-space:nowrap;
  }
@media(min-width:860px) { .nav-links { display:flex; } }
.breadcrumb { font-family:'IBM Plex Mono',monospace;font-size:11.5px;color:#6b7a76;padding:22px 0 0; }
.breadcrumb a { text-decoration:none;opacity:0.8; }
.breadcrumb a:hover { text-decoration:underline; }
.page-head { padding:20px 0 32px;border-bottom:1px solid var(--line); }
.path-code { font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:0.06em;text-transform:uppercase;color:var(--coral);display:block;margin-bottom:12px; }
h1 { font-family:'Fraunces',serif;font-size:clamp(28px,4.4vw,42px);font-weight:600;margin:0 0 16px;line-height:1.08;letter-spacing:-0.01em; }
.page-intro { font-size:16.5px;line-height:1.65;color:#3c4a4e;max-width:62ch;margin:0; }
.facts-strip { display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line);margin:32px 0; }
.fact { background:var(--sand);padding:18px 16px; }
.fact-label { font-family:'IBM Plex Mono',monospace;font-size:10.5px;text-transform:uppercase;letter-spacing:0.05em;color:#5c6a66;margin-bottom:6px; }
.fact-value { font-family:'Fraunces',serif;font-size:17px;font-weight:600; }
.fact-note { font-size:10.5px;color:#8a6d3b;margin-top:4px; }
.content-section { padding:44px 0;border-bottom:1px solid var(--line); }
.content-section:last-of-type { border-bottom:none; }
.kicker { font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:0.07em;text-transform:uppercase;color:var(--coral);margin-bottom:14px;display:block; }
h2 { font-family:'Fraunces',serif;font-size:24px;font-weight:600;margin:0 0 18px; }
ul.check-list { list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:14px; }
ul.check-list li { padding-left:28px;position:relative;font-size:15px;line-height:1.6;color:#2c3a3e; }
ul.check-list li::before { content:"\2713 ";position:absolute;left:0;top:0;color:var(--teal);font-weight:700;font-family:'IBM Plex Mono',monospace; }
.callout-box { background:var(--sand);border-left:3px solid var(--teal-bright);padding:20px 22px;border-radius:2px;margin-bottom:18px; }
.callout-box p { margin:0;font-size:14.5px;line-height:1.65;color:#3c4a4e; }
.callout-box strong { color:var(--ink); }
.pitfall-box { background:var(--sand);border-left:3px solid var(--coral);padding:20px 22px;border-radius:2px;margin-bottom:18px; }
.pitfall-box p { margin:0;font-size:14.5px;line-height:1.65;color:#3c4a4e; }
.pitfall-box strong { color:var(--ink); }
.cta-block { background:var(--teal-deep);color:#f1ede2;border-radius:8px;padding:36px 30px;text-align:center;margin:44px 0; }
.cta-block h3 { font-family:'Fraunces',serif;font-size:22px;margin:0 0 18px;font-weight:600; }
.btn { font-size:14px;font-weight:600;padding:14px 24px;text-decoration:none;border-radius:2px;display:inline-block; }
.btn-primary { background:var(--coral);color:#fff; }
.related { display:flex;gap:12px;flex-wrap:wrap;margin-top:8px; }
.related a { font-size:13px;font-weight:600;color:var(--teal);text-decoration:none;border:1px solid var(--line);padding:8px 14px;border-radius:20px; }
.related a:hover { border-color:var(--teal); }
.path-grid { display:grid;gap:14px;margin:32px 0; }
@media(min-width:700px) { .path-grid { grid-template-columns:repeat(2,1fr); } }
.path-card { border:1.5px solid var(--ink);border-radius:4px;padding:20px 20px 18px;background:var(--paper);position:relative; }
.path-card .path-code { font-size:10.5px;margin-bottom:8px; }
.path-card h3 { font-family:'Fraunces',serif;font-size:18px;margin:0 0 8px;font-weight:600; }
.path-card p { font-size:13.5px;color:#4a5b57;line-height:1.55;margin:0 0 12px; }
.path-card .path-link { font-size:13px;font-weight:600;color:var(--teal);text-decoration:none; }
.path-card .path-link::after { content:" \2192 "; }
.badge { display:inline-block;font-size:9.5px;font-weight:700;letter-spacing:0.04em;text-transform:uppercase;padding:3px 8px;border-radius:20px;margin-bottom:10px; }
.badge-perm { background:rgba(37,96,89,0.14);color:var(--teal); }
.badge-temp { background:rgba(226,54,28,0.12);color:var(--coral); }
footer { background:var(--sand);border-top:1px solid var(--line);padding:36px 0 26px; }
.footer-disclaimer { font-size:11.5px;color:#5c6a66;line-height:1.65;max-width:760px;margin:0 auto;padding:0 24px; }
.footer-links { display:flex;gap:18px;flex-wrap:wrap;justify-content:center;font-size:12.5px;margin-bottom:18px; }
.footer-links a { text-decoration:none;opacity:0.8; }
.footer-contact { display:flex;gap:18px;flex-wrap:wrap;justify-content:center;font-size:12.5px;margin-bottom:14px; }
.footer-contact a { text-decoration:none;color:var(--teal);font-weight:600; }
.steps { list-style:none;padding:0;margin:0;counter-reset:step; }
.steps li {
    padding-left:44px;position:relative;font-size:15px;line-height:1.6;color:#2c3a3e;
    margin-bottom:20px;counter-increment:step;
  }
.steps li::before {
    content:counter(step);position:absolute;left:0;top:-2px;
    width:28px;height:28px;border-radius:50%;background:var(--teal-deep);color:#fff;
    display:flex;align-items:center;justify-content:center;font-family:'IBM Plex Mono',monospace;font-size:12px;
  }
.steps li b { color:var(--ink); }
.booking-modes { display:grid;gap:14px;margin:20px 0; }
@media(min-width:700px) { .booking-modes { grid-template-columns:repeat(3,1fr); } }
.mode-card { border:1.5px solid var(--ink);border-radius:4px;padding:18px;background:var(--paper);text-align:center; }
.mode-card.preferred { border-color:var(--teal);background:rgba(37,96,89,0.05); }
.mode-card .rank { font-family:'IBM Plex Mono',monospace;font-size:10px;text-transform:uppercase;letter-spacing:0.06em;color:var(--teal);margin-bottom:8px;display:block; }
.mode-card h3 { font-family:'Fraunces',serif;font-size:16px;margin:0 0 6px; }
.mode-card p { font-size:12.5px;color:#4a5b57;margin:0;line-height:1.5; }
.consent-box {
    border:1.5px solid var(--ink); border-radius:6px; padding:24px 24px 20px; background:#fff; margin:20px 0;
  }
.consent-box h3 { font-family:'Fraunces',serif;font-size:17px;margin:0 0 14px;color:var(--teal-deep); }
.consent-item { display:flex;gap:12px;align-items:flex-start;margin-bottom:16px;font-size:14px;line-height:1.6;color:#2c3a3e; }
.consent-item .box {
    flex-shrink:0; width:18px; height:18px; border:1.5px solid var(--ink); border-radius:3px; margin-top:2px;
  }
.cta-block p { font-size:14px;opacity:0.85;margin:0 0 20px; }
.search-box { position:relative;margin-bottom:12px; }
.search-box input {
    width:100%;padding:13px 16px 13px 40px;border:1.5px solid var(--line);border-radius:4px;
    font-family:'Inter',sans-serif;font-size:14px;background:#fff;color:var(--ink);
  }
.search-box input:focus { outline:none;border-color:var(--teal); }
.search-box::before {
    content:"\2315 ";position:absolute;left:14px;top:50%;transform:translateY(-50%);
    color:var(--teal-bright);font-size:16px;
  }
.faq-list { border-top:1px solid var(--line);margin:20px 0 40px; }
.faq-item { border-bottom:1px solid var(--line); }
.faq-q {
    width:100%;text-align:left;background:none;border:none;cursor:pointer;
    padding:20px 4px;display:flex;justify-content:space-between;align-items:center;gap:16px;
    font-family:'Fraunces',serif;font-size:16.5px;font-weight:600;color:var(--ink);
  }
.faq-q .icon {
    font-family:'IBM Plex Mono',monospace;font-size:16px;color:var(--coral);
    flex-shrink:0;transition:transform .2s;
  }
.faq-item.open .faq-q .icon { transform:rotate(45deg); }
.faq-a {
    max-height:0;overflow:hidden;transition:max-height .25s ease;
  }
.faq-a-inner { padding:0 4px 22px;font-size:14.5px;line-height:1.7;color:#3c4a4e;max-width:64ch; }
.faq-item.hidden { display:none; }
html { scroll-behavior:smooth; }
.hero {
    padding:56px 0 40px;
    display:grid;gap:36px;
  }
@media(min-width:900px) { .hero { grid-template-columns:1.15fr 0.85fr;align-items:center;padding:80px 0 64px; } }
.eyebrow {
    font-family:'IBM Plex Mono',monospace;
    font-size:12px;letter-spacing:0.08em;text-transform:uppercase;
    color:var(--teal);display:flex;align-items:center;gap:8px;margin-bottom:18px;
  }
.eyebrow::before { content:"";width:18px;height:1px;background:var(--coral);display:inline-block; }
h1.hero-title {
    font-size:clamp(34px,5.4vw,54px);
    line-height:1.04;font-weight:600;margin:0 0 20px;letter-spacing:-0.01em;
  }
h1.hero-title em {
    font-style:italic;color:var(--teal);
  }
.hero-sub {
    font-size:17px;line-height:1.6;color:#3c4a4e;max-width:46ch;margin:0 0 28px;
  }
.hero-ctas { display:flex;gap:14px;flex-wrap:wrap; }
.btn-primary:hover { transform:translateY(-2px);box-shadow:0 8px 20px rgba(226,104,63,0.3); }
.btn-secondary { background:transparent;color:var(--ink);border:1.5px solid var(--ink); }
.btn-secondary:hover { background:var(--ink);color:#fff; }
.reg-card {
    background:var(--teal-deep);
    color:#f1ede2;
    border-radius:6px;
    padding:26px 24px 22px;
    position:relative;
    box-shadow:0 24px 50px -20px rgba(25,53,49,0.55);
  }
.reg-card::before,.reg-card::after {
    content:"";position:absolute;top:50%;transform:translateY(-50%);
    width:22px;height:22px;background:var(--paper);border-radius:50%;
  }
.reg-card::before { left:-11px; }
.reg-card::after { right:-11px; }
.reg-perf {
    border-top:1.5px dashed rgba(241,237,226,0.35);
    margin:18px 0;
  }
.reg-top { display:flex;justify-content:space-between;align-items:flex-start;font-size:11px;letter-spacing:0.06em;text-transform:uppercase;opacity:0.7; }
.reg-status {
    background:rgba(10,186,181,0.16);color:#5fd9d3;
    padding:3px 9px;border-radius:20px;font-size:10px;font-weight:600;letter-spacing:0.05em;
  }
.reg-marn {
    font-family:'IBM Plex Mono',monospace;font-size:26px;letter-spacing:0.02em;margin:14px 0 2px;
  }
.reg-label { font-size:11px;opacity:0.6;letter-spacing:0.04em;text-transform:uppercase; }
.reg-name { font-family:'Fraunces',serif;font-size:17px;margin-top:16px; }
.reg-meta { font-size:12px;opacity:0.75;margin-top:4px;line-height:1.6; }
.reg-verify {
    display:inline-flex;align-items:center;gap:6px;margin-top:18px;
    font-size:11.5px;color:#cfe0da;text-decoration:none;border-bottom:1px solid rgba(207,224,218,0.4);
  }
.trust-strip {
    background:var(--sand);border-top:1px solid var(--line);border-bottom:1px solid var(--line);
    padding:16px 0;
  }
.trust-row {
    display:flex;gap:28px;flex-wrap:wrap;align-items:center;justify-content:center;
    font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:0.02em;color:#4a5b57;
  }
.trust-row b { color:var(--ink); }
.dot { width:4px;height:4px;background:var(--coral);border-radius:50%;display:inline-block; }
.section { padding:72px 0; }
.section-head { max-width:640px;margin:0 0 40px; }
.section-head h2 {
    font-family:'Fraunces',serif;font-size:clamp(26px,3.4vw,36px);font-weight:600;
    margin:0;line-height:1.15;letter-spacing:-0.01em;
  }
.why-grid { display:grid;gap:1px;background:var(--line);border:1px solid var(--line); }
@media(min-width:760px) { .why-grid { grid-template-columns:repeat(4,1fr); } }
.why-card { background:var(--paper);padding:28px 22px; }
.why-num { font-family:'IBM Plex Mono',monospace;font-size:12px;color:var(--sage);margin-bottom:14px; }
.why-card h3 { font-family:'Fraunces',serif;font-size:18px;margin:0 0 10px;font-weight:600; }
.why-card p { font-size:13.5px;line-height:1.55;color:#4a5b57;margin:0; }
@media(min-width:760px) { .path-grid { grid-template-columns:repeat(2,1fr); } }
.path-card:hover { transform:translateY(-3px); }
.path-link { font-size:13px;font-weight:600;color:var(--teal);text-decoration:none; }
.path-link::after { content:" \2192 "; }
.stamp {
    position:absolute;top:16px;right:16px;
    width:44px;height:44px;border:1.5px solid var(--coral);border-radius:50%;
    display:flex;align-items:center;justify-content:center;
    font-family:'IBM Plex Mono',monospace;font-size:9px;color:var(--coral);
    transform:rotate(8deg);letter-spacing:0.02em;text-align:center;
    opacity:0.85;
  }
.quiz-band {
    background:var(--teal);color:#f1ede2;border-radius:8px;
    padding:36px 30px;display:flex;flex-direction:column;gap:18px;align-items:flex-start;
  }
@media(min-width:760px) { .quiz-band { flex-direction:row;align-items:center;justify-content:space-between; } }
.quiz-band h3 { font-family:'Fraunces',serif;font-size:22px;margin:0 0 6px;font-weight:600; }
.quiz-band p { margin:0;font-size:14px;opacity:0.85;max-width:44ch; }
.quiz-band .btn-primary { flex-shrink:0; }
.testimonial {
    border-left:3px solid var(--coral);padding:6px 0 6px 24px;max-width:640px;
  }
.testimonial p { font-family:'Fraunces',serif;font-size:21px;line-height:1.5;font-style:italic;margin:0 0 14px; }
.testimonial cite { font-style:normal;font-size:13px;color:#4a5b57; }
.cta-band {
    background:var(--teal-deep);color:#f1ede2;padding:64px 0;text-align:center;
  }
.cta-band h2 { font-family:'Fraunces',serif;font-size:clamp(24px,4vw,34px);margin:0 0 20px; }
.footer-grid { display:grid;gap:28px;margin-bottom:28px; }
@media(min-width:760px) { .footer-grid { grid-template-columns:2fr 1fr 1fr; } }
.footer-grid h4 { font-size:12px;text-transform:uppercase;letter-spacing:0.06em;margin:0 0 12px;color:#4a5b57; }
.footer-grid ul { list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px;font-size:13.5px; }
.footer-grid a { text-decoration:none;opacity:0.8; }
.footer-grid a:hover { opacity:1;text-decoration:underline; }
.reveal { opacity:0;transform:translateY(14px);transition:opacity .6s ease,transform .6s ease; }
.reveal.in { opacity:1;transform:none; }
@media(prefers-reduced-motion:reduce) { .reveal { opacity:1;transform:none;transition:none; } }
h2 .q { color:var(--teal); }
h3.sub { font-family:'Fraunces',serif;font-size:17px;font-weight:600;margin:22px 0 8px;color:var(--teal-deep); }
ul.flag-list { list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:12px; }
ul.flag-list li { padding-left:28px;position:relative;font-size:14.5px;line-height:1.6;color:#2c3a3e; }
ul.flag-list li::before { content:"!";position:absolute;left:2px;top:0;color:var(--coral);font-weight:700;font-family:'IBM Plex Mono',monospace; }
.badge-elec { background:rgba(10,186,181,0.14);color:var(--teal); }
.badge-full { background:rgba(226,54,28,0.12);color:var(--coral); }

/* ============================================================
   PAGE-SPECIFIC OVERRIDES (3 pages only -- see notes above each)
   ============================================================ */

/* ---------------------------------------------------------
   HOMEPAGE overrides (wider layout, its own hero/card styling)
   Wrap the pasted HTML for this page in:
   <div class="qi-page--home"> ...paste page HTML here... </div>
   --------------------------------------------------------- */
.qi-page--home .wrap { max-width:1180px;margin:0 auto;padding:0 24px; }
.qi-page--home .path-code {
    font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:0.05em;
    color:var(--teal-bright);text-transform:uppercase;
  }
.qi-page--home .path-grid { display:grid;gap:16px; }
.qi-page--home .path-card {
    border:1.5px solid var(--ink);border-radius:4px;padding:22px 22px 20px;
    background:var(--paper);position:relative;transition:transform .15s;
    display:flex;flex-direction:column;gap:6px;
  }
.qi-page--home .path-card h3 { font-family:'Fraunces',serif;font-size:20px;margin:2px 0 8px;font-weight:600; }
.qi-page--home .path-card p { font-size:13.5px;color:#4a5b57;line-height:1.55;margin:0 0 14px; }
.qi-page--home footer { background:var(--sand);border-top:1px solid var(--line);padding:44px 0 28px; }
.qi-page--home .footer-disclaimer {
    font-size:11.5px;color:#5c6a66;line-height:1.6;border-top:1px solid var(--line);
    padding-top:20px;max-width:760px;
  }
.qi-page--home .logo {
    font-family:'Fraunces',serif;font-weight:600;font-size:22px;letter-spacing:0.01em;
  }
.qi-page--home .nav-links a { text-decoration:none;opacity:0.75;transition:opacity .15s; }
.qi-page--home .btn {
    font-size:14px;font-weight:600;padding:14px 22px;text-decoration:none;
    border-radius:2px;display:inline-block;transition:transform .15s,box-shadow .15s;
  }

/* ---------------------------------------------------------
   FAQ PAGE overrides (narrower reading column, taller header)
   Wrap the pasted HTML for this page in:
   <div class="qi-page--faq"> ...paste page HTML here... </div>
   --------------------------------------------------------- */
.qi-page--faq .wrap { max-width:800px;margin:0 auto;padding:0 24px; }
.qi-page--faq .page-head { padding:44px 0 28px; }
.qi-page--faq .page-intro { font-size:15.5px;color:#3c4a4e;max-width:60ch;margin:0 0 24px; }
.qi-page--faq .cta-block { background:var(--teal-deep);color:#f1ede2;border-radius:8px;padding:36px 30px;text-align:center;margin-bottom:44px; }

/* ---------------------------------------------------------
   AUSTRALIAN CITIZENSHIP overrides (3-column pathway cards instead of 2)
   Wrap the pasted HTML for this page in:
   <div class="qi-page--citizenship"> ...paste page HTML here... </div>
   --------------------------------------------------------- */
@media(min-width:700px) { .qi-page--citizenship .path-grid { grid-template-columns:repeat(3,1fr); } }
.qi-page--citizenship .path-card { border:1.5px solid var(--ink);border-radius:4px;padding:18px 18px 16px;background:var(--paper); }
.qi-page--citizenship .path-card h3 { font-family:'Fraunces',serif;font-size:16px;margin:0 0 8px;font-weight:600; }
.qi-page--citizenship .path-card p { font-size:13px;color:#4a5b57;line-height:1.5;margin:0; }

/* ============================================================
   Hide GeneratePress's own default header, page title, and footer
   site-wide -- every page in this project supplies its own custom
   header and footer inside the pasted HTML, so the theme defaults
   would otherwise show up ABOVE and BELOW them on every single page.
   ============================================================ */
.site-header,
.entry-header,
.site-footer {
  display: none;
}

/* ============================================================
   Spacing tweaks (requested after first live preview)
   ============================================================ */
.hero-ctas {
  margin-bottom: 8px;
}
.hero {
  padding-bottom: 64px; /* was 40px -- more breathing room before the trust strip */
}
/* Remove any leftover top padding GeneratePress adds above the main content area,
   now that its own header/page-title are hidden. */
.site-content,
#content,
.inside-article {
  padding-top: 0 !important;
  margin-top: 0 !important;
}

/* ============================================================
   "Visas" nav dropdown (hover / keyboard-focus reveal)
   Applies site-wide -- every page's header uses the same markup:
   <div class="nav-dropdown"><a class="nav-dropdown-toggle">Visas</a>
     <div class="nav-dropdown-menu">...links...</div></div>
   ============================================================ */
.nav-dropdown {
  position: relative;
  display: flex;
  align-items: center;
}
.nav-dropdown-toggle {
  display: inline-flex;
  align-items: center;
  gap: 4px;
}
.nav-dropdown-toggle::after {
  content: "\25BE";
  font-size: 10px;
  opacity: 0.7;
}
.nav-dropdown-menu {
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-50%) translateY(6px);
  background: #fbfaf6;
  border: 1px solid rgba(26, 26, 26, 0.16);
  border-radius: 6px;
  box-shadow: 0 12px 28px rgba(21, 51, 46, 0.14);
  padding: 10px;
  min-width: 240px;
  display: flex;
  flex-direction: column;
  gap: 2px;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.15s ease, transform 0.15s ease;
  z-index: 60;
}
.nav-dropdown:hover .nav-dropdown-menu,
.nav-dropdown:focus-within .nav-dropdown-menu {
  opacity: 1;
  visibility: visible;
  transform: translateX(-50%) translateY(0);
}
.nav-dropdown-menu a {
  display: block;
  padding: 9px 12px;
  border-radius: 4px;
  font-size: 13.5px;
  color: #1a1a1a;
  opacity: 1 !important;
  text-decoration: none;
  white-space: nowrap;
}
.nav-dropdown-menu a:hover {
  background: #f1e9da;
  color: #256059;
}