/* =====================================================================
   2040 Ventures · Direction D (Ink & Warm), shared stylesheet
   Dark immersive hero + warm tinted, scannable body. Headings upright,
   italic only as a rare accent (.ac). Fraunces (display) + Inter (body).
   Palette: Ink Blue #1B2745 / #0F1830, Teal #42DBB2, Sky #73D0F1, Peach #FFA07D.
   ===================================================================== */
:root{
  --ink:#0F1830; --ink-2:#1B2745; --teal:#42DBB2; --sky:#73D0F1; --peach:#FFA07D; --grey:#D5E6E8;
  --bg:#FBFCFC; --soft:#EFF8F6; --soft-sky:#EAF6FD; --soft-peach:#FFF2EB;
  --line:#E5ECEE; --muted:#5A6470; --text:#222B36;
  --serif:'Fraunces',Georgia,serif; --sans:'Inter','Helvetica Neue',Arial,sans-serif;
}
*{box-sizing:border-box;}
body{margin:0;font-family:var(--sans);color:var(--text);background:var(--bg);line-height:1.65;-webkit-font-smoothing:antialiased;}
.wrap{max-width:1180px;margin:0 auto;padding:0 30px;}
a{color:inherit;text-decoration:none;}
h1,h2,h3{font-family:var(--serif);font-weight:500;font-style:normal;color:var(--ink-2);line-height:1.08;margin:0;letter-spacing:-.01em;}
/* Accent = highlighted text (Tom preference over italics). Same colour text, teal wash behind the lower half. */
.mark{background:linear-gradient(180deg,transparent 55%,rgba(66,219,178,.5) 55%,rgba(66,219,178,.5) 86%,transparent 86%);padding:0 .06em;border-radius:2px;}
.on-dark .mark{background:linear-gradient(180deg,transparent 55%,rgba(66,219,178,.34) 55%,rgba(66,219,178,.34) 86%,transparent 86%);}
.ac{font-style:italic;font-weight:500;color:#0d7a68;}  /* legacy accent, avoid in new copy */
.on-dark h1,.on-dark h2,.on-dark h3{color:#fff;}
.on-dark .ac{color:var(--teal);}
.eyebrow{font-size:12px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:#0d7a68;}
.on-dark .eyebrow{color:var(--teal);}
.lead{font-size:19px;color:var(--muted);}
.btn{display:inline-flex;align-items:center;gap:.5em;font-family:var(--sans);font-weight:600;font-size:15.5px;padding:14px 26px;border-radius:99px;transition:.15s;border:2px solid transparent;cursor:pointer;}
.btn-teal{background:var(--teal);color:#06231d;}.btn-teal:hover{background:#5fe7c8;transform:translateY(-1px);}
.btn-ink{background:var(--ink-2);color:#fff;}.btn-ink:hover{background:#2c3a60;}
.btn-out{background:transparent;color:var(--ink-2);border-color:var(--ink-2);}.btn-out:hover{background:var(--ink-2);color:#fff;}
.btn-glass{background:rgba(255,255,255,.08);color:#fff;border-color:rgba(255,255,255,.25);}.btn-glass:hover{background:rgba(255,255,255,.16);}
.sec{padding:80px 0;}
.center{text-align:center;max-width:680px;margin:0 auto 46px;}
.center h2{font-size:clamp(30px,3.8vw,46px);}.center p{color:var(--muted);font-size:18px;margin-top:12px;}
.two{display:grid;grid-template-columns:1.05fr .95fr;gap:50px;align-items:center;}
.two.start{align-items:start;}
.measure{max-width:720px;}
.band-sky{background:var(--soft-sky);}.band-peach{background:var(--soft-peach);}.band-soft{background:var(--soft);}
/* nav */
.nav{display:flex;align-items:center;justify-content:space-between;padding:22px 0;}
.brand{display:flex;align-items:center;gap:11px;}
.brand img{height:34px;width:auto;display:block;}
.brand .n{font-weight:700;letter-spacing:.16em;font-size:21px;color:#fff;}
.brand .bar{width:1.5px;height:22px;background:var(--teal);}
.brand .w{font-weight:400;letter-spacing:.34em;font-size:12px;color:#fff;}
/* photography */
.photo{border-radius:22px;overflow:hidden;border:1px solid var(--line);}
.photo img{display:block;width:100%;height:100%;object-fit:cover;}
.photo-band{display:grid;grid-template-columns:1.25fr .75fr;gap:20px;align-items:stretch;}
.photo-band .photo.tall img{min-height:100%;}
@media(max-width:860px){.photo-band{grid-template-columns:1fr;}}
.member .avatar.img{background:none;overflow:hidden;padding:0;}
.member .avatar.img img{width:100%;height:100%;object-fit:cover;display:block;}
.menu{display:flex;gap:28px;align-items:center;font-size:15px;font-weight:500;}
.menu a{color:#aeb9c6;}.menu a:hover{color:#fff;}.menu a.active{color:#fff;}
/* hero (dark) */
.hero{position:relative;overflow:hidden;background:var(--ink);color:#dfe6ee;padding-bottom:96px;}
.hero.compact{padding-bottom:64px;}
.hero .mesh{position:absolute;inset:0;z-index:0;pointer-events:none;background:
  radial-gradient(38% 50% at 16% 16%,rgba(66,219,178,.34),transparent 60%),
  radial-gradient(36% 46% at 84% 26%,rgba(115,208,241,.28),transparent 62%),
  radial-gradient(55% 60% at 70% 100%,rgba(255,160,125,.18),transparent 60%);}
.hero .gl{position:absolute;inset:0;z-index:0;opacity:.5;pointer-events:none;
  background-image:linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px);
  background-size:62px 62px;mask-image:radial-gradient(70% 75% at 50% 36%,#000,transparent 82%);}
/* Geo-landscape hero: the brand's wireframe-terrain imagery as the hero canvas.
   Hero bg matches the artwork's Ink Blue so the image sits seamlessly. */
.hero.geo{background:#1B2745;}
.hero.geo .mesh,.hero.geo .gl{display:none;}
/* Bottom band: only the ridge crest rises into the hero (v1.0.3). */
.hero.geo .geo-img{position:absolute;left:0;right:0;bottom:0;top:auto;height:56%;z-index:0;pointer-events:none;opacity:.85;
  background:url('../img/geo-blue-3.jpg') center 34%/cover no-repeat;
  -webkit-mask-image:linear-gradient(180deg,transparent 0,#000 45%);
          mask-image:linear-gradient(180deg,transparent 0,#000 45%);}
.hero.geo.quiet .geo-img{height:48%;opacity:.75;background-image:url('../img/geo-blue-5.jpg');background-position:center 30%;}
.hero.geo .shade{position:absolute;inset:0;z-index:0;pointer-events:none;
  background:linear-gradient(90deg,rgba(27,39,69,.55) 0%,rgba(27,39,69,.22) 52%,rgba(27,39,69,0) 78%);}
.hero .top{position:relative;z-index:2;}
.hero .inner{position:relative;z-index:1;max-width:900px;padding-top:64px;}
.hero.compact .inner{padding-top:40px;max-width:820px;}
.hero h1{color:#fff;font-weight:500;font-size:clamp(42px,5.6vw,76px);letter-spacing:-.02em;max-width:16ch;}
.hero.compact h1{font-size:clamp(32px,3.8vw,52px);max-width:22ch;}
.hero p{font-size:21px;color:#cfd9e2;max-width:620px;margin:22px 0 30px;}
.hero.compact p{font-size:19px;}
.hero .row{display:flex;gap:14px;flex-wrap:wrap;}
.hero .pills{display:flex;gap:10px;flex-wrap:wrap;margin-top:40px;}
.pill{font-size:13px;color:#aeb9c6;border:1px solid rgba(255,255,255,.16);border-radius:99px;padding:8px 16px;}
.pill b{color:#fff;font-weight:600;}
/* AIP / stat grids */
.aip-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
.aip-grid .b{background:#fff;border:1px solid var(--line);border-radius:16px;padding:22px;}
.aip-grid .n{font-family:var(--serif);font-size:30px;color:var(--ink-2);}
.aip-grid .l{font-size:13px;color:var(--muted);margin-top:4px;}
/* funds cards */
.funds{display:grid;grid-template-columns:1fr 1fr;gap:22px;}
.fund{border-radius:22px;padding:38px;border:1px solid var(--line);position:relative;overflow:hidden;}
.fund.pfl{background:linear-gradient(180deg,#fff,var(--soft-sky));}
.fund.cvcf{background:linear-gradient(180deg,#fff,var(--soft));}
.fund .tag{display:inline-block;font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;padding:6px 13px;border-radius:99px;background:#fff;border:1px solid var(--line);margin-bottom:18px;}
.fund.pfl .tag{color:#1a5b73;}.fund.cvcf .tag{color:#0d7a68;}
.fund h3{font-size:24px;margin-bottom:12px;}
.fund p{color:#46525d;font-size:16px;}
.fund .go{margin-top:20px;display:inline-flex;gap:.4em;font-weight:600;color:var(--ink-2);}.fund .go:hover{color:#0d7a68;}
.card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:30px;}
.card h3{font-size:20px;margin-bottom:8px;}.card p{color:var(--muted);font-size:15.5px;}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:18px;}
.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;}
/* dark stat band */
.statband{background:var(--ink);color:#dfe6ee;position:relative;overflow:hidden;}
.statband .glow{position:absolute;inset:0;background:radial-gradient(40% 120% at 80% 50%,rgba(66,219,178,.18),transparent 60%);}
.statband .wrap{position:relative;z-index:1;}
.statgrid{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
.statgrid .s{border:1px solid rgba(255,255,255,.14);border-radius:16px;padding:22px;background:rgba(255,255,255,.04);}
.statgrid .n{font-family:var(--serif);font-size:36px;color:#fff;}
.statgrid .l{font-size:13px;color:#aeb9c6;margin-top:6px;}
.panel{border:1px solid var(--line);border-radius:22px;padding:30px;background:#fff;}
.panel .statgrid .s{border-color:var(--line);background:var(--soft-sky);}
.panel .statgrid .n{color:var(--ink-2);}.panel .statgrid .l{color:var(--muted);}
/* steps */
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
.step{background:#fff;border:1px solid var(--line);border-radius:20px;padding:28px;}
.step .b{width:42px;height:42px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-family:var(--serif);font-size:20px;color:#06231d;background:var(--teal);margin-bottom:16px;}
.step h3{font-size:18px;margin-bottom:8px;}.step p{font-size:15px;color:var(--muted);}
/* team */
.teamgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;}
.member{background:#fff;border:1px solid var(--line);border-radius:18px;padding:24px;}
.member .avatar{width:88px;height:88px;border-radius:50%;background:var(--soft-sky);color:var(--ink-2);display:flex;align-items:center;justify-content:center;font-family:var(--serif);font-size:22px;margin-bottom:14px;}
.member .name{font-family:var(--serif);font-weight:500;color:var(--ink-2);font-size:18px;}
.member .role{font-size:14px;color:var(--muted);margin-top:2px;}
.member .fund{display:inline-block;margin-top:10px;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:4px 10px;border-radius:99px;}
.member .fund.pfl{background:rgba(115,208,241,.2);color:#1a5b73;}
.member .fund.cvcf{background:rgba(66,219,178,.2);color:#0d7a68;}
.member .fund.v2040{background:rgba(27,39,69,.08);color:var(--ink-2);}
/* faq */
.faq details{border-bottom:1px solid var(--line);padding:18px 0;}
.faq summary{font-family:var(--serif);font-weight:500;color:var(--ink-2);font-size:19px;cursor:pointer;list-style:none;}
.faq summary::-webkit-details-marker{display:none;}
.faq summary::after{content:"+";float:right;color:#0d7a68;font-weight:700;font-family:var(--sans);}
.faq details[open] summary::after{content:"–";}
.faq .answer{padding-top:10px;color:var(--text);}
/* trust + team teaser */
.team-teaser{text-align:center;max-width:620px;margin:0 auto;}
.team-teaser p{color:var(--muted);font-size:18px;margin:14px 0 26px;}
.trust{display:flex;flex-wrap:wrap;gap:13px;justify-content:center;}
.chip{border:1px solid var(--line);border-radius:99px;padding:11px 20px;font-weight:600;color:var(--ink-2);background:#fff;font-size:14px;}
/* contact form */
.contact{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:start;}
.form{border:1px solid var(--line);border-radius:22px;background:#fff;padding:32px;box-shadow:0 26px 60px -36px rgba(15,24,48,.3);}
.field{margin-bottom:16px;}
.field label{display:block;font-size:13px;font-weight:600;color:var(--ink-2);margin-bottom:6px;}
.field input,.field select,.field textarea{width:100%;padding:13px 15px;border:1px solid #d9e3e6;border-radius:12px;font-family:var(--sans);font-size:15px;background:#fff;}
.note-s{font-size:12px;color:var(--muted);margin-top:8px;}
/* cta box */
.ctabox{background:var(--ink);color:#fff;border-radius:32px;padding:72px 40px;text-align:center;position:relative;overflow:hidden;}
.ctabox::after{content:"";position:absolute;inset:0;background:radial-gradient(50% 130% at 50% 120%,rgba(66,219,178,.3),transparent 60%);}
.ctabox>*{position:relative;z-index:1;}
.ctabox h2{color:#fff;font-size:clamp(30px,4.4vw,52px);}
.ctabox p{color:#c2ccd6;max-width:500px;margin:14px auto 28px;}
/* footer */
footer{background:var(--ink);color:#aeb9c6;padding:58px 0 32px;font-size:15px;}
footer .grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:30px;}
footer h4{color:#fff;font-family:var(--sans);font-size:12px;letter-spacing:.12em;text-transform:uppercase;margin:0 0 14px;}
footer a{display:block;margin-bottom:9px;color:#aeb9c6;}footer a:hover{color:var(--teal);}
.fbrand{color:#fff;}.fbrand .n{font-weight:700;letter-spacing:.16em;}
.note{font-size:12px;color:#6f7d8a;border-top:1px solid rgba(255,255,255,.12);margin-top:28px;padding-top:18px;}
.flag{background:#FFF6E9;border:1px dashed var(--peach);color:#7a4a2a;font-size:12.5px;border-radius:8px;padding:8px 12px;margin:14px 0;}
@media(max-width:860px){.menu{display:none;}.two,.aip-grid,.funds,.statgrid,.steps,.contact,.grid-2,.grid-4,footer .grid{grid-template-columns:1fr;}.teamgrid{grid-template-columns:1fr 1fr;}}
@media(max-width:520px){.teamgrid{grid-template-columns:1fr;}}


/* ===== Theme-only additions (not in the mockup) ===== */

/* HubSpot embed, scoped to our form card (HubSpot ships light-bg defaults). */
.tf2040-hsform .hs-form-field label{font-family:var(--sans);font-size:13px;font-weight:600;color:var(--ink-2);margin-bottom:6px;display:block;}
.tf2040-hsform input[type=text],.tf2040-hsform input[type=email],.tf2040-hsform input[type=tel],
.tf2040-hsform select,.tf2040-hsform textarea{width:100%;padding:13px 15px;border:1px solid #d9e3e6;border-radius:12px;font-family:var(--sans);font-size:15px;background:#fff;color:var(--text);}
.tf2040-hsform .hs-button{display:inline-flex;justify-content:center;width:100%;font-family:var(--sans);font-weight:600;font-size:15.5px;padding:15px 28px;border-radius:99px;border:0;background:var(--teal);color:#06231d;cursor:pointer;}
.tf2040-hsform .hs-button:hover{background:#5fe7c8;}
.tf2040-hsform .hs-error-msgs label{color:#b3402a;font-weight:500;}
.tf2040-hsform .hs-form-field{margin-bottom:16px;}

/* Defensive rules for legacy Elementor-era post content (CVCF lesson). */
.article-body img,.article-body iframe,.article-body table,
.article-body .elementor-widget-container{max-width:100%;height:auto;}
.article-body iframe{aspect-ratio:16/9;width:100%;height:auto;}
.article-body .alignleft{float:left;margin:0 18px 12px 0;}
.article-body .alignright{float:right;margin:0 0 12px 18px;}
.article-body .aligncenter{display:block;margin:0 auto;}

/* ===== Hard overrides vs the plugin stack (v1.0.1) =====
   Elementor's kit, Hello Plus, and WP global styles set a { color } and
   heading styles that beat our component colours during Path B preview.
   These pin the vulnerable selectors regardless of stylesheet order. */

/* Buttons: never inherit link blue, never underline */
.btn, .btn:visited { text-decoration: none !important; }
.btn.btn-teal, .btn.btn-teal:visited { background: var(--teal) !important; color: #06231d !important; border-color: transparent !important; }
.btn.btn-teal:hover, .btn.btn-teal:focus { background: #5fe7c8 !important; color: #06231d !important; }
.btn.btn-glass, .btn.btn-glass:visited { background: rgba(255,255,255,.08) !important; color: #fff !important; border-color: rgba(255,255,255,.25) !important; }
.btn.btn-glass:hover, .btn.btn-glass:focus { background: rgba(255,255,255,.16) !important; color: #fff !important; }
.btn.btn-out, .btn.btn-out:visited { background: transparent !important; color: var(--ink-2) !important; border-color: var(--ink-2) !important; }
.btn.btn-out:hover, .btn.btn-out:focus { background: var(--ink-2) !important; color: #fff !important; }
.btn.btn-ink, .btn.btn-ink:visited { background: var(--ink-2) !important; color: #fff !important; }
.btn.btn-ink:hover, .btn.btn-ink:focus { background: #2c3a60 !important; color: #fff !important; }

/* Nav */
.menu a, .menu a:visited { color: #aeb9c6 !important; text-decoration: none !important; }
.menu a:hover, .menu a.active { color: #fff !important; }

/* Footer: links and column headings */
footer.on-dark a, footer.on-dark a:visited { color: #aeb9c6 !important; text-decoration: none !important; }
footer.on-dark a:hover { color: var(--teal) !important; }
footer.on-dark h4 { font-family: var(--sans) !important; font-style: normal !important; font-weight: 600 !important;
  font-size: 12px !important; letter-spacing: .12em !important; text-transform: uppercase !important;
  color: #fff !important; opacity: 1 !important; margin: 0 0 14px !important; }

/* In-component links */
.fund .go, .fund .go:visited { color: var(--ink-2) !important; text-decoration: none !important; }
.fund .go:hover { color: #0d7a68 !important; }
.card, .card:visited { text-decoration: none !important; color: inherit !important; }

/* Body-copy links inside our sections keep the brand deep teal */
.sec p a:not(.btn):not(.go) { color: #0d7a68 !important; text-decoration: underline; text-underline-offset: 3px; }
.sec.statband p a:not(.btn), .on-dark p a:not(.btn) { color: var(--teal) !important; }

/* Blog archive cards (v1.0.3) */
.post-card{padding:0;overflow:hidden;display:flex;flex-direction:column;}
.post-card .post-thumb{aspect-ratio:16/9;overflow:hidden;}
.post-card .post-thumb img{width:100%;height:100%;object-fit:cover;display:block;}
.post-card .eyebrow{padding:22px 26px 0;}
.post-card h3{padding:0 26px;}
.post-card p{padding:0 26px 22px;margin-bottom:0;}

/* Quiet secondary link (v1.0.5): keeps a pathway without button weight */
.link-quiet{display:inline-flex;align-items:center;font-weight:600;font-size:15.5px;color:#cfd9e2 !important;text-decoration:none !important;padding:14px 6px;border-bottom:2px solid rgba(66,219,178,.55);}
.link-quiet:hover{color:#fff !important;border-bottom-color:var(--teal);}

/* Breadcrumbs (v1.0.7) */
.crumbs{margin-bottom:14px;font-size:13.5px;}
.crumbs ol{list-style:none;display:flex;flex-wrap:wrap;gap:6px;margin:0;padding:0;align-items:center;}
.crumbs li{display:flex;align-items:center;gap:6px;}
.crumbs li+li::before{content:"/";color:rgba(255,255,255,.35);}
.crumbs a{color:#aeb9c6 !important;text-decoration:none !important;}
.crumbs a:hover{color:var(--teal) !important;}
.crumbs span{color:#e6ecf2;max-width:46ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:inline-block;vertical-align:bottom;}
