/*
Theme Name: VoxQI — Fieldnotes
Theme URI: https://voxqi.com
Author: holMedia × VoxQI
Description: An editorial, intelligence-first VoxQI website. WordPress-native page editing and private lead capture.
Version: 1.5.0
Requires at least: 6.2
Requires PHP: 7.4
Text Domain: voxqi-fieldnotes
*/
:root{--ink:#20152b;--aubergine:#2b1050;--violet:#461783;--acid:#d9f65e;--paper:#f8f5f0;--cream:#fffdf8;--coral:#ff8c78;--muted:#655d6e;--line:#d9d1de;--wide:1260px;--body:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;--serif:Georgia,"Times New Roman",serif}
*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);background:var(--paper);font:16px/1.62 var(--body);-webkit-font-smoothing:antialiased}body.admin-bar .q-site-header{top:32px}a{color:inherit}img{max-width:100%;height:auto}button,input,select,textarea{font:inherit}h1,h2,h3,h4,p{margin-top:0}h1,h2,h3{line-height:1.07;letter-spacing:-.055em}h1{font-size:clamp(3.9rem,9vw,9.6rem);font-weight:830}h2{font-size:clamp(2.8rem,5.5vw,6.3rem);font-weight:800}h3{font-size:clamp(1.4rem,2.4vw,2.4rem);font-weight:740}p{max-width:76ch}.q-wrap{width:min(calc(100% - 64px),var(--wide));margin:auto}.q-site-header{z-index:200;position:sticky;top:0;background:rgba(248,245,240,.96);backdrop-filter:blur(22px);border-bottom:1px solid rgba(32,21,43,.14)}.q-header-inner{min-height:84px;display:flex;align-items:center;gap:35px}.q-brand{text-decoration:none;display:flex;align-items:baseline;gap:10px;white-space:nowrap}.q-logo{font-weight:950;font-size:2.2rem;letter-spacing:-.14em;line-height:1;color:var(--violet)}.q-logo:after{content:".";color:var(--coral)}.q-brand-small{font-size:.62rem;letter-spacing:.21em;font-weight:850;text-transform:uppercase;color:var(--muted)}.q-nav{display:flex;align-items:center;gap:24px;margin-left:auto}.q-nav a{text-decoration:none;font-size:.77rem;font-weight:790;letter-spacing:.015em}.q-nav a:hover{text-decoration:underline;text-underline-offset:5px}.q-header-cta{padding:12px 15px;border-radius:100px;background:var(--aubergine);color:white;text-decoration:none;font-size:.78rem;font-weight:850;white-space:nowrap}.q-nav-toggle{display:none;background:transparent;border:1px solid var(--line);border-radius:30px;padding:7px 13px;color:var(--ink);margin-left:auto}.q-main{min-height:65vh}.q-main>.q-wrap{padding:0 0 80px}.q-section{margin:0;padding:112px max(32px,calc((100vw - var(--wide))/2));max-width:none!important}.q-section>*{max-width:var(--wide);margin-left:auto!important;margin-right:auto!important}.q-kicker{font-weight:900;font-size:.78rem;letter-spacing:.16em;text-transform:uppercase;line-height:1.4;margin-bottom:22px}.q-intro{font-size:clamp(1.1rem,1.55vw,1.5rem);line-height:1.5;font-weight:470;max-width:780px}.q-dim{color:var(--muted)}.q-pillline{padding:20px max(32px,calc((100vw - var(--wide))/2));background:var(--acid);font-weight:900;letter-spacing:.11em;text-transform:uppercase;line-height:1.4;font-size:.7rem}.q-pillline p{margin:0;max-width:none}.q-hero{background:var(--aubergine);color:var(--cream);position:relative;overflow:hidden;min-height:680px;padding-top:130px;padding-bottom:132px}.q-hero:before{content:"";width:min(65vw,870px);height:min(65vw,870px);border-radius:50%;position:absolute;right:-19%;top:-32%;background:repeating-radial-gradient(circle at center,transparent 0 49px,rgba(217,246,94,.22) 50px 51px,transparent 52px 85px);transform:rotate(-16deg);pointer-events:none}.q-hero:after{content:"SIGNAL / HUMAN / CULTURE / MARKET";position:absolute;right:16px;bottom:26px;color:var(--acid);font-size:.6rem;font-weight:800;letter-spacing:.2em;writing-mode:vertical-rl;white-space:nowrap}.q-hero .q-kicker{color:var(--acid)}.q-hero h1{max-width:1160px;position:relative;z-index:1;margin-bottom:28px}.q-hero h1 em,.q-reframe h2 em,.q-creators h2 em{font-weight:500;font-family:var(--serif);letter-spacing:-.068em}.q-hero .q-intro{position:relative;z-index:1;max-width:630px;color:#efe6f9}.q-actions{display:flex;gap:13px;flex-wrap:wrap;margin-top:36px}.q-btn,.wp-block-button__link{display:inline-flex;justify-content:center;align-items:center;border-radius:100px;padding:15px 23px;text-decoration:none;font-weight:850;font-size:.88rem;line-height:1.2;transition:transform .2s,background .2s}.q-btn:hover,.wp-block-button__link:hover{transform:translateY(-2px)}.q-btn-main,.q-hero .wp-block-button__link{background:var(--acid);color:var(--ink)}.q-btn-outline{border:1px solid currentColor;color:inherit;background:transparent}.q-hero .wp-block-button:not(:first-child) .wp-block-button__link{background:transparent;color:white;border:1px solid rgba(255,255,255,.6)}.q-section.q-reframe{background:var(--paper)}.q-reframe h2{max-width:1200px}.q-reframe .q-intro{margin-top:30px;color:var(--muted)}.q-statement{background:var(--acid);color:var(--ink)}.q-statement h2{max-width:1000px}.q-statement .q-kicker{color:#4d4d22}.q-grid{display:grid!important;grid-template-columns:repeat(3,1fr);gap:18px;max-width:var(--wide)}.q-four{grid-template-columns:repeat(4,1fr)}.q-grid>*{min-width:0}.q-tile{border:1px solid var(--line);padding:30px;min-height:260px;background:#fffdf9;display:flex;flex-direction:column;justify-content:space-between}.q-tile h3{max-width:350px;letter-spacing:-.04em}.q-tile p{font-size:.95rem;line-height:1.55;color:var(--muted)}.q-index{font-size:.8rem;color:var(--violet);letter-spacing:.16em;font-weight:850}.q-services{background:#fffdf9}.q-services h2{margin-bottom:55px}.q-services .q-tile:nth-child(2){background:var(--aubergine);color:var(--cream);border-color:var(--aubergine)}.q-services .q-tile:nth-child(2) p,.q-services .q-tile:nth-child(2) .q-index{color:#e1d2fa}.q-creators{background:var(--coral)}.q-creators .q-intro{font-size:clamp(1.2rem,2vw,1.75rem);color:#3f2433}.q-creators .q-tile{background:rgba(255,255,255,.75);border-color:rgba(32,21,43,.25);min-height:225px}.q-creators .q-actions{margin-top:42px}.q-creators .q-btn-main{background:var(--aubergine);color:white}.q-dark{background:var(--aubergine);color:var(--cream)}.q-dark .q-kicker{color:var(--acid)}.q-dark .q-tile{background:#392054;color:var(--cream);border-color:#62467c;min-height:220px}.q-dark .q-tile p{color:#e7d9f1}.q-method{counter-reset:step}.q-method .q-tile{counter-increment:step;min-height:180px}.q-method .q-tile:before{content:"0" counter(step);font-size:.75rem;font-weight:900;letter-spacing:.08em;color:var(--violet)}.q-proof{background:var(--paper)}.q-proof .q-tile{min-height:225px}.q-note{border-top:1px solid var(--line);padding-top:25px;font-size:.93rem;color:var(--muted)}.q-quote{font-family:var(--serif);font-style:italic;font-size:clamp(2rem,4vw,4rem);letter-spacing:-.045em;line-height:1.2;max-width:1100px}.q-last{background:var(--acid)}.q-last h2{max-width:1000px}.q-last .wp-block-button__link{background:var(--aubergine);color:white}.q-page-hero{background:var(--aubergine);color:white;padding-top:115px;padding-bottom:100px}.q-page-hero .q-kicker{color:var(--acid)}.q-page-hero h1{font-size:clamp(3.5rem,7.3vw,7.6rem);max-width:1080px}.q-page-hero .q-intro{color:#eadff4}.q-copy{background:var(--paper)}.q-copy h2{max-width:1000px}.q-copy p{max-width:840px}.q-copy ul{max-width:840px}.q-two{display:grid!important;grid-template-columns:1fr 1fr;gap:22px}.q-two>*{min-width:0}.q-contact-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);gap:65px}.q-form{background:#fffdf9;border:1px solid var(--line);padding:35px}.q-form-label{display:block;font-size:.77rem;letter-spacing:.08em;text-transform:uppercase;font-weight:850;margin-bottom:6px}.q-form-row{margin-bottom:18px}.q-form input:not([type="checkbox"]),.q-form select,.q-form textarea{width:100%;background:var(--paper);border:1px solid #c3b9ca;border-radius:3px;min-height:45px;padding:10px 12px;color:var(--ink)}.q-form textarea{min-height:140px;resize:vertical}.q-form input:focus,.q-form select:focus,.q-form textarea:focus{outline:2px solid var(--violet);outline-offset:1px}.q-form button{border:0;background:var(--aubergine);color:white;padding:16px 25px;border-radius:100px;font-size:.88rem;font-weight:850;cursor:pointer}.q-form .q-form-check{font-size:.83rem;display:flex;gap:9px;align-items:flex-start}.q-form-check input{margin-top:5px}.q-form-note{font-size:.83rem;color:var(--muted)}.q-feedback{padding:14px 18px;border-left:4px solid var(--violet);background:#ece4f5;margin-bottom:22px}.q-site-footer{background:#190e2a;color:#fffaf3;padding:75px 0 32px}.q-footer-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:40px}.q-footer-grid h3{font-size:1.1rem;letter-spacing:-.02em}.q-footer-grid a{display:block;margin:8px 0;color:#e6dced;text-decoration:none;font-size:.9rem}.q-footer-grid a:hover{text-decoration:underline}.q-footer-grid p{max-width:410px;color:#d6c8e0}.q-footer-bottom{border-top:1px solid #503d63;margin-top:72px;padding-top:22px;display:flex;justify-content:space-between;font-size:.78rem;color:#bdaec9;gap:20px}.q-footer-brand{font-weight:900;font-size:4rem;line-height:1;letter-spacing:-.09em;margin-bottom:20px}.q-post-content{min-height:45vh}.q-spacer{height:36px}.q-site-footer strong{color:var(--acid)}.q-legal-copy{padding:70px 0;max-width:850px}.q-legal-copy p{max-width:850px}.screen-reader-text{clip:rect(1px,1px,1px,1px);position:absolute;height:1px;width:1px;overflow:hidden}.screen-reader-text:focus{clip:auto;position:static;height:auto;width:auto}.q-404{padding:130px 0}
@media(max-width:1150px){.q-nav{gap:14px}.q-nav a{font-size:.72rem}.q-header-inner{gap:15px}.q-grid.q-four{grid-template-columns:repeat(2,1fr)}}
@media(max-width:940px){body.admin-bar .q-site-header{top:46px}.q-wrap{width:min(calc(100% - 38px),var(--wide))}.q-header-inner{min-height:70px}.q-nav-toggle{display:block}.q-nav{display:none;position:absolute;top:70px;left:0;right:0;flex-direction:column;align-items:stretch;gap:0;background:var(--paper);padding:10px 22px 25px;box-shadow:0 15px 30px rgba(32,21,43,.18)}.q-nav.open{display:flex}.q-nav a{padding:11px 0;font-size:.93rem}.q-header-cta{margin-left:0}.q-section{padding:83px 25px}.q-hero{padding-top:100px;min-height:570px}.q-grid{grid-template-columns:1fr 1fr}.q-contact-grid{grid-template-columns:1fr;gap:35px}.q-footer-grid{grid-template-columns:1.25fr 1fr 1fr}}@media(max-width:660px){h1{font-size:clamp(3.5rem,15vw,5.6rem)}h2{font-size:clamp(2.6rem,10vw,4.2rem)}.q-section{padding:74px 20px}.q-hero{padding-top:80px;padding-bottom:100px}.q-hero:before{width:610px;height:610px;right:-260px;top:-210px}.q-grid,.q-grid.q-four,.q-two{grid-template-columns:1fr}.q-tile{min-height:205px}.q-hero h1{font-size:clamp(3.3rem,13.8vw,6rem)}.q-page-hero h1{font-size:clamp(3.2rem,12vw,5.2rem)}.q-form{padding:22px}.q-footer-grid{grid-template-columns:1fr}.q-footer-bottom{flex-direction:column;gap:4px}.q-footer-brand{font-size:3.5rem}.q-header-cta{display:none}}
.q-honey{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;overflow:hidden!important}

.q-nav-list{display:flex;gap:24px;align-items:center;list-style:none;padding:0;margin:0}.q-nav-list li{margin:0;padding:0}.q-nav-list a{display:inline-block}@media(max-width:1150px){.q-nav-list{gap:14px}}@media(max-width:940px){.q-nav-list{display:flex;flex-direction:column;align-items:stretch;gap:0}.q-nav-list a{display:block}}

@media(min-width:1160px){.q-dark .q-grid.q-four{grid-template-columns:repeat(5,minmax(0,1fr))}.q-dark .q-grid.q-four .q-tile{min-height:230px;padding:25px}}



/* Q-017 V1.4: typography resilient to Gutenberg edits and page size.
   Heading selectors deliberately do not require Gutenberg's .wp-block-heading.
   Paragraph selectors also catch the immediate paragraph after the heading
   when an editor replaces a paragraph and drops the original q-intro class. */
.q-section { min-width:0; }
.q-hero, .q-page-hero { isolation:isolate; }
.q-hero > *, .q-page-hero > * { min-width:0; }
.q-hero :is(h1, h2.wp-block-heading),
.q-page-hero :is(h1, h2.wp-block-heading) {
  box-sizing:border-box;
  display:block;
  width:100%;
  max-width:min(100%, 1160px);
  min-width:0;
  margin-bottom:clamp(17px,2.25vw,32px);
  font-size:var(--q-fit-heading,clamp(2.15rem,7.85vw,7.65rem)) !important;
  line-height:1.055 !important;
  letter-spacing:-.052em;
  overflow-wrap:normal !important;
  word-wrap:normal !important;
  word-break:normal !important;
  hyphens:none !important;
  -webkit-hyphens:none !important;
  white-space:normal !important;
  text-wrap:balance;
}
.q-page-hero :is(h1,h2.wp-block-heading){max-width:min(100%,1080px)}
.q-hero :is(h1,h2.wp-block-heading) *,
.q-page-hero :is(h1,h2.wp-block-heading) * {
  overflow-wrap:normal !important;
  word-wrap:normal !important;
  word-break:normal !important;
  hyphens:none !important;
  -webkit-hyphens:none !important;
  white-space:normal !important;
}
/* Gutenberg class name is editable. If removed, the paragraph after a heading
   remains the subtitle. Editing a paragraph's font size should not break layout. */
.q-hero :is(p.q-intro, h1 + p, h2.wp-block-heading + p),
.q-page-hero :is(p.q-intro, h1 + p, h2.wp-block-heading + p){
  box-sizing:border-box;
  display:block;
  width:100%;
  max-width:min(100%, 58ch);
  min-width:0;
  margin-top:0;
  margin-bottom:clamp(18px,2vw,30px);
  font-size:clamp(1.06rem, .78rem + 1.10vw, 1.48rem) !important;
  line-height:1.51 !important;
  letter-spacing:-.006em;
  overflow-wrap:normal !important;
  word-break:normal !important;
  hyphens:none !important;
  white-space:normal !important;
  text-wrap:pretty;
}
.q-hero :is(p.q-intro, h1 + p, h2.wp-block-heading + p) *,
.q-page-hero :is(p.q-intro, h1 + p, h2.wp-block-heading + p) *{
  overflow-wrap:normal !important;
  word-break:normal !important;
  white-space:normal !important;
}
.q-hero .q-kicker, .q-page-hero .q-kicker{
  max-width:100%;min-width:0;
  font-size:clamp(.63rem,.82vw,.78rem)!important;
  line-height:1.5;
  letter-spacing:.12em;
  overflow-wrap:normal;
  word-break:normal;
}
/* The base section centers each direct child via !important auto margins.
   Override only hero headings/subtitles so they share the kicker's left edge. */
.q-hero > :is(h1,h2.wp-block-heading,p.q-intro),
.q-page-hero > :is(h1,h2.wp-block-heading,p.q-intro),
.q-hero > :is(h1,h2.wp-block-heading) + p,
.q-page-hero > :is(h1,h2.wp-block-heading) + p{
  margin-left:0!important;
  margin-right:0!important;
}
/* Logo is the approved QI image, unchanged from V1.3. */
.q-brand{align-items:center;gap:12px;min-width:0}
.q-brand-logo-link{display:inline-flex;align-items:center;flex:none;line-height:0}
.q-brand-logo-img{display:block;width:auto;height:47px;max-width:96px;object-fit:contain}
.q-footer-logo-img{display:block;width:118px;max-width:100%;height:auto}
.q-footer-logo-background{display:inline-flex;align-items:center;justify-content:center;padding:9px 12px;border-radius:12px;background:var(--paper);margin-bottom:24px}
.q-site-header .custom-logo-link{display:inline-flex;line-height:0;align-items:center;flex-shrink:0}
.q-site-header .custom-logo{width:auto;height:47px;max-width:110px;object-fit:contain}
@media(max-width:940px){
  .q-hero :is(h1,h2.wp-block-heading),.q-page-hero :is(h1,h2.wp-block-heading){
    font-size:var(--q-fit-heading,clamp(2.05rem,8.1vw,5.6rem))!important;
  }
}
@media(max-width:660px){
  .q-hero,.q-page-hero{padding-inline:clamp(16px,5.1vw,22px)}
  .q-hero :is(h1,h2.wp-block-heading),.q-page-hero :is(h1,h2.wp-block-heading){
    font-size:var(--q-fit-heading,clamp(1.95rem,9.15vw,3.7rem))!important;
    line-height:1.09!important;
    letter-spacing:-.044em;
    text-wrap:wrap;
  }
  .q-hero :is(p.q-intro,h1 + p,h2.wp-block-heading + p),
  .q-page-hero :is(p.q-intro,h1 + p,h2.wp-block-heading + p){
    font-size:clamp(1.05rem,3.9vw,1.22rem)!important;
    line-height:1.48!important;
    max-width:100%;
  }
  .q-hero .q-kicker,.q-page-hero .q-kicker{font-size:.66rem!important;letter-spacing:.1em}
  .q-hero:after{display:none}
  .q-brand-logo-img,.q-site-header .custom-logo{height:39px;max-width:82px}
  .q-brand{gap:9px}
  .q-brand-small{font-size:.55rem;letter-spacing:.1em;white-space:normal;line-height:1.3}
}
@media(max-width:360px){
  .q-hero :is(h1,h2.wp-block-heading),.q-page-hero :is(h1,h2.wp-block-heading){
    font-size:var(--q-fit-heading,clamp(1.75rem,9vw,2.25rem))!important;
  }
}


/* Q-017 V1.5 — word-safe sizing on the ACTUAL editable Gutenberg blocks.
   This supersedes V1.4 and stops fixed font-size/nowrap span descendants
   making a changed title behave like one long, overflowing word. */
.q-hero, .q-page-hero,
.q-hero :is(.wp-block-group,.wp-block-columns,.wp-block-column),
.q-page-hero :is(.wp-block-group,.wp-block-columns,.wp-block-column) {
  min-inline-size:0;
  max-inline-size:100%;
}
.q-hero :is(h1,h2.wp-block-heading),
.q-page-hero :is(h1,h2.wp-block-heading) {
  inline-size:100% !important;
  max-inline-size:100% !important;
  min-inline-size:0 !important;
  font-size:var(--q-fit-heading,clamp(1.8rem,7.6vw,7.6rem)) !important;
  line-height:1.06 !important;
  letter-spacing:-.044em !important;
  white-space:normal !important;
  overflow-wrap:normal !important;
  word-break:normal !important;
  hyphens:none !important;
  text-wrap:wrap !important;
}
.q-hero :is(h1,h2.wp-block-heading) *,
.q-page-hero :is(h1,h2.wp-block-heading) * {
  font-size:inherit !important;
  line-height:inherit !important;
  white-space:normal !important;
  overflow-wrap:normal !important;
  word-break:normal !important;
  hyphens:none !important;
  text-wrap:wrap !important;
}
.q-hero :is(p.q-intro,h1 + p,h2.wp-block-heading + p),
.q-page-hero :is(p.q-intro,h1 + p,h2.wp-block-heading + p) {
  max-inline-size:min(100%,58ch) !important;
  inline-size:100% !important;
  min-inline-size:0 !important;
  font-size:var(--q-fit-subtitle,clamp(1.06rem,.77rem + 1.12vw,1.5rem)) !important;
  line-height:1.5 !important;
  text-wrap:pretty !important;
  white-space:normal !important;
  overflow-wrap:normal !important;
  word-break:normal !important;
  hyphens:none !important;
}
.q-hero :is(p.q-intro,h1 + p,h2.wp-block-heading + p) *,
.q-page-hero :is(p.q-intro,h1 + p,h2.wp-block-heading + p) * {
  font-size:inherit !important;
  white-space:normal !important;
  overflow-wrap:normal !important;
  word-break:normal !important;
  hyphens:none !important;
}
@media(max-width:660px) {
  .q-hero :is(h1,h2.wp-block-heading),
  .q-page-hero :is(h1,h2.wp-block-heading) {
    font-size:var(--q-fit-heading,clamp(1.9rem,9.9vw,3.75rem)) !important;
    letter-spacing:-.032em !important;
    line-height:1.09 !important;
  }
  .q-hero :is(p.q-intro,h1 + p,h2.wp-block-heading + p),
  .q-page-hero :is(p.q-intro,h1 + p,h2.wp-block-heading + p) {
    font-size:var(--q-fit-subtitle,clamp(1rem,3.7vw,1.2rem)) !important;
    line-height:1.48 !important;
  }
}
@media(max-width:350px) {
  .q-hero :is(h1,h2.wp-block-heading),
  .q-page-hero :is(h1,h2.wp-block-heading) {
    font-size:var(--q-fit-heading,clamp(1.7rem,9.8vw,2.3rem)) !important;
  }
}
