/*
Theme Name: Quantum Construction
Text Domain: quantum-construction
Version: 1.0
*/
/* Base typography */
body {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI",
               Roboto, "Helvetica Neue", Arial, sans-serif;
  line-height: 1.6;
  color: #1f2937;
  background: #ffffff;
}
/* Override legacy global container rules (prevents double-indents) */
body .site,
body .site-content,
body #page,
body #content,
body .wp-site-blocks {
  max-width: none !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

}

/* Vertical rhythm */
.wp-block { margin-bottom: 1.75rem; }

/* Headings */
h1 {
  font-size: clamp(2.5rem, 5vw, 3.5rem);
  font-weight: 700;
  line-height: 1.1;
  margin-bottom: 1.25rem;
}
h2 {
  font-size: 2rem;
  font-weight: 600;
  margin-top: 3rem;
  margin-bottom: 1.5rem;
}

/* Links */
a {
  color: #1f6fb2;
  text-decoration: none;
  border-bottom: 1px solid rgba(31, 111, 178, 0.3);
  transition: all 0.2s ease;
}
a:hover { border-bottom-color: rgba(31, 111, 178, 0.8); }

/* Buttons (WP Button block) */
.wp-block-button__link {
  background-color: #1f6fb2;
  color: #ffffff !important;
  padding: 0.9rem 1.75rem;
  border-radius: 10px;
  font-weight: 600;
  letter-spacing: 0.01em;
  border: none;
  transition: all 0.2s ease;
  text-decoration: none;
}
.wp-block-button__link:hover {
  background-color: #185a8f;
  transform: translateY(-1px);
}
/* --- Layout: consistent page gutters + max width --- */
:root{
  --qc-max: 1200px;
  --qc-gutter: clamp(16px, 4vw, 28px);
}

/* Block editor front-end wrapper (common across WP) */
.wp-site-blocks,
.entry-content,
.site-main,
#content,
main {
  padding-left: var(--qc-gutter);
  padding-right: var(--qc-gutter);
}

/* Keep content centred */
.wp-site-blocks > *,
.entry-content > *,
.site-main > * {
  max-width: var(--qc-max);
  margin-left: auto;
  margin-right: auto;
}

/* Let full-width blocks actually go full width */
.wp-site-blocks > .alignfull,
.entry-content > .alignfull {
  max-width: none;
  margin-left: calc(var(--qc-gutter) * -1);
  margin-right: calc(var(--qc-gutter) * -1);
}
/* --- Hero --- */
.qc-hero{
  padding: clamp(48px, 7vw, 88px) 0;
  border-bottom: 1px solid rgba(17,24,39,0.10);
}

.qc-hero h1{
  max-width: 22ch;
  letter-spacing: -0.02em;
  line-height: 1.05;
  margin-bottom: 16px;
}

.qc-hero-intro{
  font-size: clamp(18px, 1.2vw, 20px);
  max-width: 60ch;
  color: #374151;
  margin-bottom: 22px;
}

.qc-hero-actions{
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
  align-items: center;
}
.qc-hero-note{
  margin-top: 14px;
  color: #6b7280;
  font-size: 0.95rem;
}
/* ===== Quantum Construction – Global Design Layer ===== */

:root{
  --qc-dark:#0b1f3a;
  --qc-accent:#1f6fb2;
  --qc-ink:#111827;
  --qc-muted:#6b7280;
  --qc-border:rgba(17,24,39,.12);
  --qc-max:1200px;
  --qc-gutter:clamp(16px,4vw,28px);
}

/* Base */
body{
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  color:var(--qc-ink);
  background:#fff;
  line-height:1.6;
}

/* WordPress block page layout */
.wp-site-blocks,
.entry-content,
.site-main,
main{
  padding-left:var(--qc-gutter);
  padding-right:var(--qc-gutter);
}

.entry-content > *,
.wp-site-blocks > *,
.site-main > *{
  max-width:var(--qc-max);
  margin-left:auto;
  margin-right:auto;
}

/* Headings */
h1{
  font-size:clamp(2.4rem,5vw,3.4rem);
  line-height:1.05;
  letter-spacing:-.02em;
  margin:0 0 14px;
}
h2{
  font-size:clamp(1.6rem,2.4vw,2.1rem);
  line-height:1.2;
  margin:0 0 18px;
}
p{ margin:0 0 1rem; color:#1f2937; }
.is-style-lead, .qc-lead{ font-size:1.15rem; color:#374151; max-width:62ch; }

/* Links */
a{
  color:var(--qc-accent);
  text-decoration:none;
  border-bottom:1px solid rgba(31,111,178,.25);
  transition:.2s ease;
}
a:hover{ border-bottom-color:rgba(31,111,178,.8); }

/* Buttons (Block Editor button) */
.wp-block-button__link{
  background:var(--qc-accent);
  color:#fff !important;
  padding:.95rem 1.5rem;
  border-radius:12px;
  font-weight:600;
  border:none;
  text-decoration:none;
  display:inline-block;
  transition:.2s ease;
}
.wp-block-button__link:hover{ filter:brightness(.92); transform:translateY(-1px); }

.wp-block-button.is-style-outline .wp-block-button__link{
  background:transparent;
  color:var(--qc-accent) !important;
  border:2px solid rgba(31,111,178,.35);
}
.wp-block-button.is-style-outline .wp-block-button__link:hover{
  background:rgba(31,111,178,.06);
  border-color:rgba(31,111,178,.7);
}

/* Sections */
.qc-section{
  padding:clamp(40px,6vw,80px) 0;
  border-top:1px solid var(--qc-border);
}
.qc-section:first-child{ border-top:none; }

/* Hero */
.qc-hero{
  padding:clamp(52px,7vw,92px) 0;
}
.qc-hero .qc-lead{ margin-bottom:20px; }
.qc-hero-actions{ display:flex; gap:12px; flex-wrap:wrap; align-items:center; }
.qc-hero-note{ color:var(--qc-muted); font-size:.95rem; margin-top:14px; }

/* Simple “card” look for service blocks if you use Groups/Columns */
.qc-card{
  border:1px solid var(--qc-border);
  border-radius:18px;
  padding:22px;
  background:#fff;
  box-shadow:0 1px 0 rgba(17,24,39,.04);
}
/* Consistent site container */
:root{
  --qc-max: 1200px;
  --qc-pad: 24px;
}

/* Header container uses same rules */
.header-inner{
  max-width: var(--qc-max);
  padding-left: var(--qc-pad);
  padding-right: var(--qc-pad);
}

/* Main content container */
.qc-container{
  max-width: var(--qc-max);
  margin: 0 auto;
  padding-left: var(--qc-pad);
  padding-right: var(--qc-pad);
}
/* Prevent first block from pushing in / drifting */
.qc-container > .wp-block-group,
.qc-container > .wp-block {
  margin-left: 0 !important;
  margin-right: 0 !important;
}

/* Remove odd top margin on first block */
.qc-container > :first-child {
  margin-top: 0;
}
/* Support Gutenberg wide/full alignment */
.alignwide{
  max-width: calc(var(--qc-max) + 200px);
  margin-left: auto;
  margin-right: auto;
}

.alignfull{
  width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
}
.qc-container{
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 1.5rem;
}
/* =========================
   Quantum Construction – Polish Pack
   ========================= */

:root{
  --qc-dark:#0b1f3a;
  --qc-accent:#1f6fb2;
  --qc-accent-dark:#165a8f;
  --qc-ink:#0f172a;
  --qc-muted:#475569;
  --qc-border:#e2e8f0;
  --qc-bg:#ffffff;
  --qc-soft:#f8fafc;
}

/* Base typography + smoother rendering */
html{ -webkit-text-size-adjust:100%; }
body{
  color: var(--qc-ink);
  background: var(--qc-bg);
  font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, "Apple Color Emoji","Segoe UI Emoji";
  line-height: 1.6;
  letter-spacing: -0.01em;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* Better global content rhythm */
.wp-site-blocks > * { margin-block: 0; }
.wp-block{ margin-bottom: 1.6rem; }
h1,h2,h3{ letter-spacing: -0.02em; }
h1{ font-size: clamp(2rem, 3vw, 3rem); line-height: 1.1; }
h2{ font-size: clamp(1.5rem, 2vw, 2rem); line-height: 1.2; }
p{ color: var(--qc-muted); }

/* Links */
a{ color: var(--qc-accent); text-decoration: none; }
a:hover{ text-decoration: underline; }

/* Constrain main content nicely (keeps “architectural” whitespace) */
.wp-site-blocks,
#page, #content, main{
  max-width: 1200px;
  margin-left: auto;
  margin-right: auto;
  padding-left: 24px;
  padding-right: 24px;
}

/* Header: crisp and aligned */
header{
  background: #fff;
  border-bottom: 1px solid var(--qc-border);
}
header .max-w-7xl, header .max-w-\[1200px\]{
  padding-top: 18px;
  padding-bottom: 18px;
}

/* =========================
   Buttons: consistent system
   ========================= */

/* Default Gutenberg button */
.wp-block-button__link{
  background: var(--qc-accent);
  color: #fff;
  border-radius: 14px;
  padding: 0.9rem 1.25rem;
  font-weight: 650;
  border: 1px solid transparent;
  box-shadow: 0 8px 22px rgba(15, 23, 42, 0.08);
  transition: transform .12s ease, box-shadow .12s ease, opacity .12s ease, background .12s ease;
}
.wp-block-button__link:hover{
  background: var(--qc-accent-dark);
  text-decoration: none;
  transform: translateY(-1px);
  box-shadow: 0 12px 28px rgba(15, 23, 42, 0.12);
}

/* Outline / secondary button style using Gutenberg “Outline” option */
.wp-block-button.is-style-outline .wp-block-button__link{
  background: transparent;
  color: var(--qc-accent);
  border-color: var(--qc-accent);
  box-shadow: none;
}
.wp-block-button.is-style-outline .wp-block-button__link:hover{
  background: var(--qc-accent);
  color: #fff;
  border-color: var(--qc-accent);
  transform: translateY(-1px);
}

/* Make plain “Submit” inputs match */
input[type="submit"], button[type="submit"]{
  background: var(--qc-accent);
  color: #fff;
  border: 1px solid transparent;
  border-radius: 14px;
  padding: 0.9rem 1.25rem;
  font-weight: 650;
  cursor: pointer;
}
input[type="submit"]:hover, button[type="submit"]:hover{
  background: var(--qc-accent-dark);
}

/* =========================
   Forms (CF7) – cleaner fields
   ========================= */
.wpcf7 form{
  background: var(--qc-soft);
  border: 1px solid var(--qc-border);
  border-radius: 18px;
  padding: 18px;
}
.wpcf7 input[type="text"],
.wpcf7 input[type="email"],
.wpcf7 input[type="tel"],
.wpcf7 textarea,
.wpcf7 select{
  width: 100%;
  background: #fff;
  border: 1px solid var(--qc-border);
  border-radius: 14px;
  padding: 12px 14px;
  outline: none;
  box-shadow: none;
}
.wpcf7 textarea{ min-height: 120px; }
.wpcf7 input:focus,
.wpcf7 textarea:focus,
.wpcf7 select:focus{
  border-color: rgba(31,111,178,.55);
  box-shadow: 0 0 0 4px rgba(31,111,178,.12);
}

/* CF7 messages */
.wpcf7-response-output{
  border-radius: 14px;
  padding: 12px 14px;
  border: 1px solid var(--qc-border);
  background: #fff;
}
/* ==================================
   Hero + Content Alignment Fix
   ================================== */

/* Ensure Gutenberg content and hero align */
.wp-site-blocks,
.wp-site-blocks > * {
  box-sizing: border-box;
}

/* Constrain ALL main page content consistently */
.wp-site-blocks > *:not(.alignfull) {
  max-width: 1200px;
  margin-left: auto;
  margin-right: auto;
  padding-left: 24px;
  padding-right: 24px;
}

/* Allow hero/header sections to go full width */
.alignfull {
  max-width: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}
/* Navigation */
.qc-nav{
  display: flex;
  align-items: center;
}
.qc-menu{
  list-style: none;
  display: flex;
  gap: 28px;
  margin: 0;
  padding: 0;
}
.qc-menu a{
  font-weight: 600;
  color: #0b1f3a;
}
.qc-menu a:hover{
  color: #1f6fb2;
  text-decoration: none;
}
/* =========================
   Header Buttons
========================= */

.qc-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 10px 18px;
  border-radius: 12px;
  font-weight: 600;
  font-size: 0.95rem;
  line-height: 1;
  text-decoration: none;
  white-space: nowrap;
  transition: all 0.2s ease;
}

/* Primary CTA */
.qc-btn--primary {
  background-color: #1f6fb2;
  color: #ffffff;
}

.qc-btn--primary:hover {
  background-color: #155a92;
}

/* Secondary / Ghost button */
.qc-btn--ghost {
  border: 1px solid #1f6fb2;
  color: #1f6fb2;
  background: transparent;
}

.qc-btn--ghost:hover {
  background-color: #1f6fb2;
  color: #ffffff;
}
.qc-menu .current-menu-item > a{
  color: #1f6fb2;
  position: relative;
}

.qc-menu .current-menu-item > a::after{
  content: '';
  position: absolute;
  left: 0;
  bottom: -6px;
  width: 100%;
  height: 2px;
  background: #1f6fb2;
}
/* =========================
   Mobile polish
   ========================= */

@media (max-width: 768px){

  /* Reduce horizontal squeeze */
  body{
    font-size: 16px;
  }

  /* Better rhythm for blocks */
  .wp-block{
    margin-bottom: 1.25rem;
  }

  /* Headings scale nicely */
  h1{
    font-size: clamp(1.75rem, 6vw, 2.25rem);
  }
  h2{
    font-size: clamp(1.4rem, 5vw, 1.75rem);
  }

  /* Buttons: easier thumbs */
  .wp-block-button__link,
  button,
  input[type="submit"]{
    width: 100%;
    text-align: center;
    padding: 1rem 1.25rem;
  }

  /* Button groups stack cleanly */
  .wp-block-buttons{
    display: flex;
    flex-direction: column;
    gap: 12px;
  }

  /* Forms: more breathing room */
  .wpcf7 form{
    padding: 16px;
  }

  .wpcf7 input,
  .wpcf7 textarea{
    font-size: 16px;
  }

}
/* --- Responsive safety net --- */
html { box-sizing: border-box; }
*, *::before, *::after { box-sizing: inherit; }

body { max-width: 100%; overflow-x: hidden; }

img, video, iframe { max-width: 100%; height: auto; }

/* Gutenberg blocks sometimes create wide layouts */
.wp-site-blocks,
#page, #content, main { width: 100%; max-width: 100%; }
/* Mobile nav layout */
.qc-menu--mobile {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 14px;
}

.qc-menu--mobile a {
  display: block;
  padding: 10px 12px;
  border-radius: 12px;
  text-decoration: none;
}

.qc-menu--mobile a:hover {
  background: rgba(31, 111, 178, 0.08);
}
