/*
Theme Name: JVS Investment Fund
Theme URI: https://jvsfund.com
Author: JVS Investment Fund
Description: Bespoke single-page theme for JVS Investment Fund. Ink and mineral-paper palette, trig-station mark, Newsreader / IBM Plex typography. All homepage copy is editable under Appearance > Customize > JVS Content.
Version: 1.6.0
Requires at least: 6.0
Tested up to: 6.6
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: jvs
*/

:root{
  --ink:#0C1614;
  --ink-2:#122220;
  --paper:#EDF0EE;
  --paper-2:#E4E9E6;
  --rule:#C9D2CE;
  --rule-ink:rgba(190,216,208,.15);
  --text:#14201E;
  --text-muted:#5B6A66;
  --on-ink:#E9EFEC;
  --muted-ink:#8FA69F;
  --patina:#3C8770;
  --patina-deep:#1E6351;
  --patina-bright:#74BFA5;

  --serif:"Newsreader",Georgia,"Times New Roman",serif;
  --sans:"IBM Plex Sans","Helvetica Neue",Arial,sans-serif;
  --mono:"IBM Plex Mono","SFMono-Regular",Consolas,monospace;

  --maxw:1180px;
  --pad:48px;
  --rail:220px;      /* label column in two-column rows */
  --rail-gap:48px;
  --sec-y:128px;     /* vertical rhythm */
  --head-h:74px;     /* sticky masthead height */
}
@media(max-width:900px){:root{--pad:32px;--sec-y:84px;--rail-gap:32px}}
@media(max-width:560px){:root{--pad:22px;--sec-y:68px}}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important;animation:none!important}}

body{
  margin:0;
  background:var(--paper);
  color:var(--text);
  font-family:var(--sans);
  font-weight:300;
  font-size:16.5px;
  line-height:1.66;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
h1,h2,h3{font-family:var(--serif);font-weight:300;text-wrap:balance;margin:0;letter-spacing:-.012em}
p{margin:0}
a{color:inherit}
:focus-visible{outline:2px solid var(--patina-bright);outline-offset:4px}

/* One left edge for everything on the page. */
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 var(--pad)}

.label{
  display:block;
  font-family:var(--mono);
  font-size:10.5px;
  font-weight:500;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--patina-deep);
}
.label-ink{color:var(--patina-bright)}

/* ---------- masthead ---------- */
.masthead{
  position:sticky;top:0;z-index:50;
  background:var(--ink);
  border-bottom:1px solid var(--rule-ink);
}
.masthead .wrap{
  min-height:var(--head-h);
  display:flex;align-items:center;justify-content:space-between;gap:28px;
}
.lockup{display:flex;align-items:center;gap:14px;text-decoration:none;flex:none}
.lockup .mark{width:36px;height:36px;flex:none;display:block}
.lockup .names{display:flex;flex-direction:column;line-height:1.05}
.lockup .wordmark{
  font-family:var(--serif);font-size:19px;font-weight:300;
  letter-spacing:.36em;color:var(--on-ink);text-indent:.36em;
}
.lockup .sub{
  font-family:var(--mono);font-size:9px;font-weight:400;
  letter-spacing:.28em;text-transform:uppercase;color:var(--muted-ink);
  margin-top:6px;text-indent:.28em;
}
.masthead nav{
  display:flex;gap:32px;align-items:center;
  overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none;
  margin:0;padding:0;
}
.masthead nav::-webkit-scrollbar{display:none}
.masthead nav ul{display:flex;gap:32px;margin:0;padding:0;list-style:none}
.masthead nav li{list-style:none}
.masthead nav a{
  font-family:var(--mono);font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;
  color:var(--muted-ink);text-decoration:none;white-space:nowrap;
  padding:6px 0;border-bottom:1px solid transparent;
  transition:color .2s ease,border-color .2s ease;
}
.masthead nav a:hover,.masthead nav a:focus-visible{color:var(--on-ink);border-bottom-color:var(--patina-bright)}
@media(max-width:760px){
  .masthead .wrap{gap:18px}
  .masthead nav{gap:22px}
  .masthead nav ul{gap:22px}
  .lockup .sub{display:none}
}

/* ---------- hero ---------- */
.hero{position:relative;background:var(--ink);color:var(--on-ink);overflow:hidden}
#strata{position:absolute;inset:0;width:100%;height:100%;display:block;opacity:.5}
.hero .wrap{position:relative;z-index:2;padding-top:clamp(96px,13vh,168px);padding-bottom:clamp(84px,11vh,140px)}
.hero .label{margin-bottom:28px}
.hero h1{
  font-size:clamp(2.6rem,6.2vw,5.1rem);
  line-height:1.02;letter-spacing:-.022em;color:#fff;max-width:15ch;
}
.hero .lede{
  margin-top:34px;max-width:58ch;
  font-size:clamp(1.02rem,1.45vw,1.2rem);line-height:1.64;color:var(--muted-ink);
}
.hero .lede strong{color:var(--on-ink);font-weight:400}
.meta{
  display:flex;flex-wrap:wrap;gap:10px 48px;
  margin-top:60px;padding-top:24px;border-top:1px solid var(--rule-ink);
}
.meta span{
  font-family:var(--mono);font-size:10.5px;letter-spacing:.2em;
  text-transform:uppercase;color:var(--muted-ink);
}

/* ---------- sections ---------- */
section{padding:var(--sec-y) 0;scroll-margin-top:var(--head-h)}
.tint{background:var(--paper-2)}

/* section head: label, heading, prose — all on the same left edge */
.sec-head{display:flex;flex-direction:column;align-items:flex-start;gap:22px}
.sec-head>div{display:flex;flex-direction:column;align-items:flex-start;gap:22px;width:100%}
.sec-head h2{font-size:clamp(1.85rem,3.3vw,2.65rem);line-height:1.12;max-width:18ch}
.prose{max-width:62ch;display:flex;flex-direction:column;gap:20px;color:var(--text-muted)}
.prose p{font-size:1.02rem}

/* ---------- register rows ---------- */
.register{margin-top:64px;border-top:1px solid var(--rule)}
.row{
  display:grid;grid-template-columns:var(--rail) minmax(0,1fr);gap:var(--rail-gap);
  padding:32px 0;border-bottom:1px solid var(--rule);align-items:baseline;
}
.row .idx{
  font-family:var(--mono);font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;
  color:var(--patina-deep);padding-top:.45em;
}
.row h3{font-size:1.38rem;margin-bottom:8px}
.row p{color:var(--text-muted);max-width:58ch}
@media(max-width:760px){
  .row{grid-template-columns:1fr;gap:10px;padding:26px 0}
  .row .idx{padding-top:0}
}

/* ---------- approach ---------- */
.approach{
  display:grid;grid-template-columns:repeat(2,minmax(0,1fr));
  margin-top:64px;border-top:1px solid var(--rule);
}
.item{padding:34px 0;border-bottom:1px solid var(--rule)}
.item:nth-child(odd){padding-right:56px;border-right:1px solid var(--rule)}
.item:nth-child(even){padding-left:56px}
.item h3{font-size:1.24rem;margin-bottom:10px}
.item p{color:var(--text-muted);font-size:.99rem;max-width:44ch}
.pending{
  font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;
  color:var(--patina-deep);border:1px solid var(--patina);
  padding:3px 8px;display:inline-block;margin-top:14px;
}
@media(max-width:760px){
  .approach{grid-template-columns:1fr}
  .item,.item:nth-child(odd),.item:nth-child(even){padding:26px 0;border-right:none}
}

/* ---------- footprint map ---------- */
.footprint{background:var(--ink);color:var(--on-ink)}
.footprint h2{color:#fff}
.footprint .prose{color:var(--muted-ink)}
.map-figure{margin:64px 0 0}
.jvs-map{width:100%;height:auto;display:block}
.jvs-map .land path{fill:#192523;stroke:none}
.jvs-map .lands-hi path{fill:var(--patina);stroke:none}
.jvs-map .pin-dot{fill:var(--patina)}
.map-legend{
  display:flex;flex-wrap:wrap;gap:12px 36px;
  margin-top:44px;padding-top:24px;border-top:1px solid var(--rule-ink);
}
.map-legend span{
  font-family:var(--mono);font-size:10.5px;letter-spacing:.2em;
  text-transform:uppercase;color:var(--muted-ink);
}

/* ---------- enquiries ---------- */
.enquiries{background:var(--ink);color:var(--on-ink)}
.enquiries h2{color:#fff;font-size:clamp(2rem,4vw,3rem);line-height:1.06;max-width:15ch}
.enquiries .prose{color:var(--muted-ink)}
.contact{
  margin-top:56px;padding-top:28px;border-top:1px solid var(--rule-ink);
  display:flex;flex-wrap:wrap;gap:14px 56px;align-items:baseline;
}
.contact a{
  font-family:var(--serif);font-size:clamp(1.3rem,2.5vw,1.85rem);font-weight:300;
  color:#fff;text-decoration:none;
  border-bottom:1px solid var(--patina);padding-bottom:4px;
  transition:color .2s ease,border-color .2s ease;
}
.contact a:hover,.contact a:focus-visible{color:var(--patina-bright);border-bottom-color:var(--patina-bright)}
.contact .note{
  font-family:var(--mono);font-size:10.5px;letter-spacing:.2em;
  text-transform:uppercase;color:var(--muted-ink);
}

/* ---------- footer ---------- */
footer{background:var(--ink);color:var(--muted-ink);border-top:1px solid var(--rule-ink)}
footer .wrap{
  display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px 48px;
  padding-top:30px;padding-bottom:38px;
  font-family:var(--mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;
}

/* ---------- WordPress bits ---------- */
.custom-logo-link{display:block;line-height:0}
.custom-logo{max-height:42px;width:auto}
img{max-width:100%;height:auto}
