/* ============================================================
   TY CAPITAL — homepage concept
   Aesthetic: private-bank editorial. Ink navy, gold hairlines,
   Montserrat throughout — light weights and tight tracking at display sizes.
   ============================================================ */

:root{
  --ink:        #14294A;   /* lifted a notch from #0B1A2F */
  --ink-deep:   #0D1E38;
  --ink-soft:   #1B3457;
  --gold:       #C9A227;
  --gold-lt:    #E3C86B;
  --gold-ink:   #8A6D14;   /* AA-safe gold for small text on paper */
  --paper:      #F6F4EF;
  --paper-warm: #EFEBE2;
  --slate:      #6B7A8D;
  --slate-dk:   #43566B;
  --line-dark:  rgba(255,255,255,.13);
  --line-light: rgba(11,26,47,.13);

  --display: "Montserrat", -apple-system, BlinkMacSystemFont, sans-serif;
  --sans: "Montserrat", -apple-system, BlinkMacSystemFont, sans-serif;

  --ease: cubic-bezier(.22,.61,.36,1);
  --ease-out: cubic-bezier(.16,1,.3,1);

  --gut: clamp(20px, 5vw, 84px);
  --maxw: 1360px;
  --hdr-h: clamp(74px, 6.4vw, 98px);   /* header height; hero offset tracks this */
  --edge: max(calc((100vw - var(--maxw)) / 2), 0px);  /* viewport edge -> container edge */
}

*,*::before,*::after{ box-sizing:border-box; }

html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; }

body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:var(--sans);
  font-weight:400;
  font-size:16px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  overflow-x:hidden;
}

img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
button{ font:inherit; cursor:pointer; }

/* ---------- grain overlay (site-wide atmosphere) ---------- */
body::after{
  content:"";
  position:fixed; inset:0; z-index:9998; pointer-events:none;
  opacity:.16; mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='300' height='300' filter='url(%23n)' opacity='.55'/%3E%3C/svg%3E");
}

/* ---------- shared type ---------- */
.wrap{ width:100%; max-width:var(--maxw); margin:0 auto; padding-inline:var(--gut); }

.eyebrow{
  font-size:11px; font-weight:500; letter-spacing:.22em; text-transform:uppercase;
  color:var(--gold-ink); display:block; margin:0 0 22px;
}
.on-dark .eyebrow{ color:var(--gold-lt); }

h1,h2,h3{ font-family:var(--display); font-weight:300; letter-spacing:-.03em; line-height:1.08; margin:0; }
h2{ font-size:clamp(30px,3.9vw,52px); }
h3{ font-size:clamp(19px,1.7vw,23px); line-height:1.26; font-weight:500; letter-spacing:-.012em; }
p{ margin:0 0 1.1em; }
.lede{ font-size:clamp(16px,1.35vw,19px); line-height:1.68; color:var(--slate-dk); max-width:60ch; }
.on-dark .lede{ color:rgba(255,255,255,.66); }

.num{ font-variant-numeric:tabular-nums lining-nums; }

/* ---------- buttons ---------- */
.btn{
  display:inline-flex; align-items:center; gap:11px;
  padding:15px 28px; border-radius:2px;
  font-size:12.5px; font-weight:500; letter-spacing:.13em; text-transform:uppercase;
  border:1px solid transparent; position:relative; overflow:hidden;
  transition:color .45s var(--ease), border-color .45s var(--ease), background .45s var(--ease);
}
.btn .arw{ transition:transform .45s var(--ease-out); }
.btn:hover .arw{ transform:translateX(5px); }

.btn-gold{ background:var(--gold); color:var(--ink-deep); }
.btn-gold:hover{ background:var(--gold-lt); }

.btn-ghost{ border-color:var(--line-dark); color:#fff; }
.btn-ghost::before{
  content:""; position:absolute; inset:0; background:#fff; z-index:-1;
  transform:scaleY(0); transform-origin:bottom; transition:transform .5s var(--ease-out);
}
.btn-ghost:hover{ color:var(--ink-deep); border-color:#fff; background:#fff; }

.btn-outline{ border-color:rgba(11,26,47,.28); color:var(--ink); }
.btn-outline:hover{ background:var(--ink); color:var(--paper); border-color:var(--ink); }

.txtlink{
  display:inline-flex; align-items:center; gap:9px;
  font-size:12px; font-weight:500; letter-spacing:.15em; text-transform:uppercase;
  padding-bottom:6px; position:relative; color:var(--ink);
}
.txtlink .arw{ transition:transform .45s var(--ease-out); }
.txtlink:hover .arw{ transform:translateX(5px); }
.on-dark .txtlink{ color:var(--gold-lt); }

/* ============================================================
   UTILITY BAR + HEADER
   ============================================================ */
#util{
  background:var(--ink-deep); color:rgba(255,255,255,.44);
  font-size:11px; letter-spacing:.07em;
  border-bottom:1px solid rgba(255,255,255,.06);
  position:relative; z-index:60;
}
#util .wrap{ display:flex; align-items:center; justify-content:space-between; height:52px; gap:24px; }

/* left: quiet regulatory strip */
#util .reg{ display:flex; gap:20px; align-items:center; }
#util .reg span{ white-space:nowrap; }
#util .reg .num{ color:rgba(255,255,255,.56); }

/* right: compact pill controls */
#util .acts{ display:flex; gap:8px; align-items:center; }
#util .tel{
  display:inline-flex; align-items:center; gap:7px; padding-right:8px;
  color:rgba(255,255,255,.62); transition:color .35s var(--ease); white-space:nowrap;
}
#util .tel:hover{ color:#fff; }
#util .tel svg{ opacity:.6; }

.pill{
  display:inline-flex; align-items:center; justify-content:center; gap:7px;
  height:32px; padding:0 14px; border-radius:8px;
  border:1px solid rgba(255,255,255,.14);
  background:rgba(255,255,255,.03);
  color:rgba(255,255,255,.72);
  font-size:11.5px; font-weight:500; letter-spacing:.05em; white-space:nowrap;
  transition:background .35s var(--ease), border-color .35s var(--ease), color .35s var(--ease);
}
.pill:hover{ background:rgba(255,255,255,.09); border-color:rgba(255,255,255,.26); color:#fff; }
.pill.icon-only{ width:32px; padding:0; }
.pill svg{ flex:none; }
.pill.accent{ border-color:rgba(201,162,39,.4); color:var(--gold-lt); }
.pill.accent:hover{ background:rgba(201,162,39,.14); border-color:rgba(201,162,39,.7); color:var(--gold-lt); }

#hdr{
  position:sticky; top:0; z-index:900;
  transition:background .5s var(--ease), border-color .5s, box-shadow .5s;
  border-bottom:1px solid var(--line-dark);
  background:transparent;
}
#hdr .wrap{ display:flex; align-items:center; justify-content:space-between; height:var(--hdr-h); gap:32px; }

.brand{ display:flex; align-items:center; gap:13px; flex:none; }

nav.main{ display:flex; align-items:center; gap:38px; margin-left:auto; }
nav.main > a,
nav.main > .has-sub > a{
  font-size:12.5px; font-weight:500; letter-spacing:.11em; text-transform:uppercase;
  color:rgba(255,255,255,.82); position:relative; padding:8px 0;
  white-space:nowrap;
  transition:color .35s;
}
nav.main > a:hover,
nav.main > .has-sub > a:hover{ color:var(--gold-lt); }

.hdr-cta{
  padding:12px 22px; font-size:11.5px; font-weight:500; letter-spacing:.13em;
  text-transform:uppercase; border:1px solid var(--gold); color:var(--gold-lt);
  border-radius:2px; transition:all .4s var(--ease); white-space:nowrap;
}
.hdr-cta:hover{ background:var(--gold); color:var(--ink-deep); }

/* scrolled state */
#hdr.stuck{ background:rgba(246,244,239,.94); backdrop-filter:blur(14px) saturate(1.4); border-color:var(--line-light); box-shadow:0 1px 30px rgba(11,26,47,.07); }
#hdr.stuck nav.main > a,
#hdr.stuck nav.main > .has-sub > a{ color:var(--slate-dk); }
#hdr.stuck nav.main > a:hover,
#hdr.stuck nav.main > .has-sub > a:hover{ color:var(--gold-ink); }
#hdr.stuck .hdr-cta{ border-color:var(--ink); color:var(--ink); }
#hdr.stuck .hdr-cta:hover{ background:var(--ink); color:var(--paper); }
#hdr.stuck .burger span{ background:var(--ink); }

.burger{
  display:none; background:none; border:0; padding:15px 10px; margin:-8px -6px;
  flex-direction:column; gap:5px; /* padding + margin trade keeps a 44px touch target
  without inflating the header row */
}
.burger span{ display:block; width:24px; height:1.5px; background:#fff; transition:.35s var(--ease); }

/* ============================================================
   HERO
   ============================================================ */
#hero{
  position:relative; margin-top:calc((var(--hdr-h) + 1px) * -1); padding-top:calc(var(--hdr-h) + 1px);
  background:var(--ink);
  color:#fff; overflow:hidden;
  min-height:min(94vh,940px); display:flex; flex-direction:column;
}
.on-dark{ color:#fff; }

/* layered atmosphere */
#hero .atmos{ position:absolute; inset:0; pointer-events:none; }
#hero .atmos::before{
  content:""; position:absolute; inset:0;
  background:
    radial-gradient(120% 78% at 78% 8%, rgba(201,162,39,.19) 0%, transparent 58%),
    radial-gradient(95% 70% at 8% 92%, rgba(46,106,168,.44) 0%, transparent 62%),
    linear-gradient(168deg,#172E52 0%,#14294A 46%,#0F2039 100%);
}

#hero > .wrap{ position:relative; z-index:2; flex:1; display:flex; flex-direction:column; justify-content:center; padding-top:clamp(70px,10vh,120px); padding-bottom:clamp(48px,7vh,90px); }

h1{
  font-size:clamp(30px,4.3vw,64px); font-weight:200;
  line-height:1.12; letter-spacing:-.032em; margin:0 0 28px; max-width:30ch;
}
h1 em{ font-style:normal; font-weight:500; color:var(--gold-lt); }
/* mask + reveal; padding-bottom keeps descenders from being clipped */
h1 .ln{ display:block; overflow:hidden; padding-bottom:.18em; margin-bottom:-.18em; }
h1 .ln > span{ display:block; transform:translateY(135%); }

.hero-sub{ font-size:clamp(16px,1.45vw,20px); line-height:1.62; color:rgba(255,255,255,.7); max-width:54ch; margin-bottom:0; }

.hero-grid{
  display:grid; grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);
  gap:clamp(30px,5vw,80px); align-items:center;
}
.hero-lead{ max-width:none; }

/* credibility stack — type only, no containers */
/* right-aligned so the stack hugs the container edge and frames the composition */
.proof{ display:flex; flex-direction:column; align-items:flex-end; text-align:right;
        gap:clamp(20px,2.6vh,34px); padding-top:6px; }
.proof-row{ display:flex; flex-direction:column; align-items:flex-end; gap:5px; }
.proof-fig{
  font-family:var(--display); font-weight:200;
  font-size:clamp(38px,3.9vw,58px); line-height:1; letter-spacing:-.035em;
  color:var(--gold-lt);
}
.proof-fig i{ font-style:normal; font-size:.52em; letter-spacing:-.01em; }
.proof-lbl{
  font-size:11px; font-weight:500; letter-spacing:.19em; text-transform:uppercase;
  color:rgba(255,255,255,.46);
}

.hero-foot{
  margin-top:clamp(46px,6vh,78px);
  display:flex; align-items:center; gap:20px;
}
.hero-foot .cue{
  font-size:10.5px; letter-spacing:.24em; text-transform:uppercase;
  color:rgba(255,255,255,.42);
}
.cue-arrow{
  width:44px; height:44px; border-radius:50%;
  border:1px solid rgba(255,255,255,.18);
  display:inline-flex; align-items:center; justify-content:center;
  color:var(--gold-lt);
  transition:border-color .4s var(--ease), background .4s var(--ease);
}
.cue-arrow svg{ animation:nudge 2.6s var(--ease) infinite; }
.cue-arrow:hover{ border-color:var(--gold); background:rgba(201,162,39,.12); }
@keyframes nudge{ 0%,100%{ transform:translateY(-2px); } 50%{ transform:translateY(3px); } }

/* ============================================================
   INVEST / BORROW GATEWAY
   ============================================================ */
.split-intro{ padding-block:clamp(64px,8vw,110px) clamp(34px,4vw,56px); }
.split-intro h2{ max-width:20ch; }

.gateway{
  display:grid; grid-template-columns:1fr 1fr;
  gap:1px; background:var(--line-light);
  border-block:1px solid var(--line-light);
}

.gate{
  position:relative; overflow:hidden; display:block;
  background:var(--paper);
  transition:background .6s var(--ease), color .6s var(--ease);
}
/* the fill that sweeps up on hover */
.gate::before{
  content:""; position:absolute; inset:0; background:var(--ink);
  transform:translateY(101%); transition:transform .7s var(--ease-out);
}
.gate:hover::before{ transform:translateY(0); }
.gate-inner{
  position:relative; z-index:1;
  padding-block:clamp(40px,4vw,66px) clamp(36px,3.4vw,56px);
  display:flex; flex-direction:column; height:100%;
  min-height:clamp(440px,40vw,560px);
}
.gate-invest .gate-inner{
  padding-left:calc(var(--edge) + var(--gut));
  padding-right:clamp(28px,3vw,64px);
}
.gate-borrow .gate-inner{
  padding-left:clamp(28px,3vw,64px);
  padding-right:calc(var(--edge) + var(--gut));
}

.gate-top{ display:flex; align-items:center; gap:12px; margin-bottom:clamp(26px,3vw,44px); }
.gate-idx{
  font-size:11px; font-weight:600; letter-spacing:.16em; color:var(--gold-ink);
  transition:color .6s var(--ease);
}
.gate-for{
  font-size:10.5px; letter-spacing:.2em; text-transform:uppercase; color:var(--slate);
  transition:color .6s var(--ease);
}

.gate-h{
  font-size:clamp(44px,5.4vw,76px); font-weight:200; letter-spacing:-.04em;
  line-height:1; margin:0 0 20px; color:var(--ink);
  transition:color .6s var(--ease);
}
.gate-p{
  font-size:15px; line-height:1.7; color:var(--slate-dk); max-width:42ch; margin:0 0 30px;
  transition:color .6s var(--ease);
}

.gate-list{ list-style:none; margin:0 0 34px; padding:0; border-top:1px solid var(--line-light); transition:border-color .6s var(--ease); }
.gate-list li{
  display:flex; justify-content:space-between; align-items:baseline; gap:16px;
  padding:13px 0; border-bottom:1px solid var(--line-light);
  font-size:13.5px; color:var(--slate-dk);
  transition:color .6s var(--ease), border-color .6s var(--ease);
}
.gate-list b{ font-weight:300; font-size:23px; letter-spacing:-.02em; color:var(--ink); transition:color .6s var(--ease); }
.gate-list b small{ font-size:11px; letter-spacing:.05em; margin-left:2px; opacity:.7; }
.gate-list b.tail{ font-size:13px; font-weight:500; letter-spacing:0; }

.gate-cta{
  margin-top:auto; display:inline-flex; align-items:center; gap:11px;
  font-size:12px; font-weight:500; letter-spacing:.14em; text-transform:uppercase;
  color:var(--ink); padding-top:8px;
  transition:color .6s var(--ease);
}
.gate-cta .arw{ transition:transform .5s var(--ease-out); }
.gate:hover .gate-cta .arw{ transform:translateX(6px); }

/* hover: whole panel inverts to ink */
.gate:hover .gate-h,
.gate:hover .gate-list b,
.gate:hover .gate-cta{ color:#fff; }
.gate:hover .gate-p,
.gate:hover .gate-list li{ color:rgba(255,255,255,.62); }
.gate:hover .gate-idx,
.gate:hover .gate-cta{ color:var(--gold-lt); }
.gate:hover .gate-for{ color:rgba(255,255,255,.5); }
.gate:hover .gate-list,
.gate:hover .gate-list li{ border-color:var(--line-dark); }

.gateway-note{
  display:block; padding-block:clamp(34px,4vw,56px) clamp(64px,8vw,110px);
  font-size:clamp(15px,1.25vw,17px); line-height:1.7; color:var(--slate-dk);
  max-width:76ch; margin:0 auto;
}

/* ============================================================
   SECTION SCAFFOLD
   ============================================================ */
section{ position:relative; }
.pad{ padding-block:clamp(76px,10vw,140px); }
.dark{ background:var(--ink); color:#fff; }
.warm{ background:var(--paper-warm); }

.sec-head{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,.85fr); gap:clamp(28px,5vw,80px); align-items:end; margin-bottom:clamp(44px,5vw,70px); }
.sec-head h2{ max-width:19ch; }

/* reveal */
.rv{ opacity:0; transform:translateY(28px); transition:opacity .9s var(--ease-out), transform .9s var(--ease-out); }
.rv.in{ opacity:1; transform:none; }

/* ============================================================
   FUNDS
   ============================================================ */
.funds{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:clamp(16px,1.6vw,24px); }
.fund{
  border:1px solid var(--line-dark); padding:clamp(28px,2.6vw,38px);
  display:flex; flex-direction:column;
  background:linear-gradient(160deg, rgba(255,255,255,.045), rgba(255,255,255,.008));
  transition:transform .6s var(--ease-out), border-color .5s, background .5s;
}
.fund:hover{ transform:translateY(-6px); border-color:rgba(201,162,39,.45); }
.fund.feature{ border-color:rgba(201,162,39,.42); background:linear-gradient(160deg, rgba(201,162,39,.10), rgba(255,255,255,.012)); }
.fund .kicker{ font-size:10.5px; letter-spacing:.2em; text-transform:uppercase; color:var(--gold-lt); margin-bottom:18px; display:flex; justify-content:space-between; align-items:center; }
.fund .kicker .pill{ border:1px solid rgba(201,162,39,.5); padding:4px 9px; border-radius:2px; letter-spacing:.12em; }
.fund h3{ font-size:clamp(20px,1.8vw,25px); font-weight:500; margin-bottom:24px; min-height:2.6em; }
.fund .ret{ display:flex; align-items:baseline; flex-wrap:wrap; gap:4px 10px; padding-bottom:24px; border-bottom:1px solid var(--line-dark); }
.fund .ret b{ font-family:var(--display); font-weight:200; font-size:clamp(40px,4.2vw,56px); letter-spacing:-.04em; line-height:.95; color:var(--gold-lt); }
.fund .ret i{ font-style:normal; font-size:12px; letter-spacing:.13em; text-transform:uppercase; color:rgba(255,255,255,.5); }
.fund dl{ margin:0; padding:22px 0 26px; display:grid; gap:13px; }
.fund .row{ display:flex; justify-content:space-between; gap:14px; font-size:13.5px; }
.fund dt{ color:rgba(255,255,255,.5); }
.fund dd{ margin:0; color:#fff; text-align:right; }
.fund .go{ margin-top:auto; }

.disc{ margin-top:34px; font-size:11.5px; line-height:1.65; color:rgba(255,255,255,.42); max-width:92ch; border-top:1px solid var(--line-dark); padding-top:22px; }

/* ============================================================
   CAPABILITIES
   ============================================================ */
.caps{ display:grid; grid-template-columns:repeat(auto-fit,minmax(250px,1fr)); gap:1px; background:var(--line-light); border-block:1px solid var(--line-light); }
.cap{ background:var(--paper-warm); padding:clamp(30px,2.6vw,42px); transition:background .5s var(--ease); }
.cap:hover{ background:#fff; }
.cap .no{ font-size:11px; letter-spacing:.18em; color:var(--gold-ink); margin-bottom:30px; }
.cap h3{ font-size:18px; font-weight:500; margin-bottom:12px; }
.cap p{ font-size:14px; color:var(--slate-dk); margin:0; }

/* ============================================================
   APPROACH (split)
   ============================================================ */
.split{ display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); gap:clamp(36px,6vw,90px); align-items:start; }
.steps{ counter-reset:s; }
.step{ display:grid; grid-template-columns:auto 1fr; gap:clamp(20px,2.4vw,34px); padding:30px 0; border-top:1px solid var(--line-light); }
.step:last-child{ border-bottom:1px solid var(--line-light); }
.step .n{ font-family:var(--display); font-size:clamp(24px,2.4vw,34px); font-weight:200; letter-spacing:-.03em; color:var(--gold-ink); line-height:1; opacity:.7; }
.step h3{ font-size:19px; font-weight:500; margin-bottom:9px; }
.step p{ font-size:14.5px; color:var(--slate-dk); margin:0; max-width:52ch; }

.quotecard{
  border:1px solid var(--line-light); padding:clamp(30px,3vw,46px);
  background:#fff; position:relative;
}
.quotecard blockquote{ margin:0; font-family:var(--display); font-weight:300; font-size:clamp(19px,1.9vw,25px); letter-spacing:-.022em; line-height:1.42; position:relative; z-index:1; }
.quotecard .by{ margin-top:26px; padding-top:20px; border-top:1px solid var(--line-light); font-size:12px; letter-spacing:.13em; text-transform:uppercase; color:var(--slate); }

/* ============================================================
   INSIGHTS
   ============================================================ */
.posts{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(20px,2.4vw,36px); }
.post{ border-top:1px solid var(--line-light); padding-top:24px; transition:border-color .5s; }
.post:hover{ border-color:var(--gold); }
.post .meta{ font-size:11px; letter-spacing:.16em; text-transform:uppercase; color:var(--gold-ink); margin-bottom:16px; }
.post h3{ font-size:clamp(17px,1.5vw,21px); font-weight:500; margin-bottom:12px; }
.post p{ font-size:14px; color:var(--slate-dk); }
.post .rd{ font-size:11.5px; letter-spacing:.14em; text-transform:uppercase; color:var(--ink); display:inline-flex; gap:8px; align-items:center; }
.post:hover .rd .arw{ transform:translateX(5px); }
.post .rd .arw{ transition:transform .45s var(--ease-out); }

/* ============================================================
   CTA / ENQUIRY
   ============================================================ */
#enquire{ background:var(--ink-deep); color:#fff; position:relative; overflow:hidden; }
#enquire .glow{
  position:absolute; inset:0; pointer-events:none;
  background:radial-gradient(70% 100% at 84% 50%, rgba(201,162,39,.16) 0%, transparent 62%);
}
#enquire .wrap{ position:relative; z-index:1; }
.enq-grid{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,.95fr); gap:clamp(38px,6vw,90px); align-items:start; }

.contact-list{ margin-top:40px; display:grid; gap:1px; background:var(--line-dark); border-block:1px solid var(--line-dark); }
.contact-list .ci{ background:var(--ink-deep); padding:20px 0; display:flex; gap:18px; align-items:baseline; }
.contact-list .k{ font-size:11px; letter-spacing:.16em; text-transform:uppercase; color:rgba(255,255,255,.42); width:92px; flex:none; }
.contact-list .v{ font-size:15px; color:#fff; }
.contact-list a.v:hover{ color:var(--gold-lt); }

form{ border:1px solid var(--line-dark); padding:clamp(28px,3vw,42px); background:rgba(255,255,255,.03); }
.f2{ display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.field{ margin-bottom:18px; }
label{ display:block; font-size:10.5px; letter-spacing:.17em; text-transform:uppercase; color:rgba(255,255,255,.5); margin-bottom:9px; }
/* 16px keeps iOS Safari from auto-zooming the page when a field gets focus */
input,select,textarea{
  width:100%; background:transparent; border:0; border-bottom:1px solid var(--line-dark);
  color:#fff; font-family:var(--sans); font-size:16px; padding:11px 0; border-radius:0;
  transition:border-color .4s var(--ease);
}
input:focus,select:focus,textarea:focus{ outline:none; border-color:var(--gold); }
input::placeholder,textarea::placeholder{ color:rgba(255,255,255,.28); }
select{ appearance:none; cursor:pointer;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' fill='none'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%23C9A227' stroke-width='1.2'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 2px center; }
select option{ background:var(--ink-deep); color:#fff; }
textarea{ resize:vertical; min-height:76px; }
.consent{ display:flex; gap:11px; align-items:flex-start; margin:24px 0 26px; font-size:11.5px; line-height:1.55; color:rgba(255,255,255,.5); }
.consent input{ width:15px; height:15px; flex:none; margin-top:2px; accent-color:var(--gold); border-bottom:0; }
form button[type=submit]{ width:100%; justify-content:center; border:0; }
.formnote{ margin-top:16px; font-size:11px; color:rgba(255,255,255,.36); text-align:center; }
.ok{ display:none; text-align:center; padding:26px 0; }
.ok.show{ display:block; }
.ok .tick{ font-size:38px; font-weight:300; color:var(--gold-lt); }
form.sent .fields{ display:none; }

/* ============================================================
   FOOTER
   ============================================================ */
footer{ background:var(--ink); color:rgba(255,255,255,.6); font-size:13.5px; }
.f-top{ display:grid; grid-template-columns:minmax(0,1.5fr) repeat(3,minmax(0,1fr)); gap:clamp(28px,4vw,56px); padding-block:clamp(56px,6vw,84px); }
.f-blurb{ margin-top:24px; font-size:13.5px; line-height:1.7; max-width:38ch; color:rgba(255,255,255,.52); }
.f-col h4{ font-family:var(--sans); font-size:11px; font-weight:500; letter-spacing:.18em; text-transform:uppercase; color:var(--gold-lt); margin:0 0 20px; }
.f-col ul{ list-style:none; margin:0; padding:0; display:grid; gap:12px; }
.f-col a{ color:rgba(255,255,255,.6); transition:color .3s; }
.f-col a:hover{ color:#fff; }

.f-legal{ border-top:1px solid var(--line-dark); padding-block:32px 44px; font-size:11.5px; line-height:1.7; color:rgba(255,255,255,.38); }
.f-legal p{ max-width:none; margin-bottom:1em; }
.f-bar{ border-top:1px solid var(--line-dark); padding-block:22px; display:flex; flex-wrap:wrap; justify-content:space-between; gap:16px; font-size:11.5px; color:rgba(255,255,255,.38); }
.f-bar .lks{ display:flex; gap:24px; flex-wrap:wrap; }

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width:1080px){
  .hero-grid{ grid-template-columns:1fr; gap:clamp(40px,6vh,64px); align-items:start; }
  .proof{
    display:grid; grid-template-columns:1fr 1fr; gap:clamp(22px,3vw,34px);
    max-width:560px; padding-top:0; align-items:start; text-align:left;
  }
  .proof-row{ align-items:flex-start; }
  .gateway{ grid-template-columns:1fr; }
  .gate-inner{ min-height:0; }
  .gate-invest .gate-inner,
  .gate-borrow .gate-inner{
    padding-left:calc(var(--edge) + var(--gut));
    padding-right:calc(var(--edge) + var(--gut));
  }
  .funds{ grid-template-columns:1fr; }
  .posts{ grid-template-columns:1fr 1fr; }
  .split,.enq-grid,.sec-head{ grid-template-columns:1fr; }
  .sec-head{ gap:22px; }
  .f-top{ grid-template-columns:1fr 1fr; }
}
/* nav links never wrap mid-label, so the moment the full nav row stops
   fitting (seven items + language toggle + login) it hands over to the
   burger drawer rather than squeezing */
@media (max-width:1260px){
  nav.main{ display:none; }
  .burger{ display:flex; }
}
@media (max-width:860px){
  #util .reg span:nth-child(n+2){ display:none; }
  #util .wrap{ height:48px; }
  #util .tel span{ display:none; }
  #util .tel{
    padding:0; width:32px; height:32px; border-radius:8px;
    border:1px solid rgba(255,255,255,.14); background:rgba(255,255,255,.03);
    justify-content:center;
  }
  #util .tel svg{ opacity:.8; }
  .hdr-cta{ display:none; }
  .posts{ grid-template-columns:1fr; }
  .f2{ grid-template-columns:1fr; }
  .step{ grid-template-columns:1fr; gap:10px; }
}
@media (max-width:560px){
  #util .reg{ display:none; }
  #util .wrap{ justify-content:flex-end; }
  .f-top{ grid-template-columns:1fr; }
  h1{ max-width:none; }
  #gate, .modal{ padding:12px; }
  .btn{ padding:14px 22px; }
  .strip .acts .btn, .hero-actions .btn, .banner-acts .btn{ width:100%; justify-content:center; }
}

/* finger-sized targets for the dense footer link lists */
.f-col a{ display:inline-block; padding:3px 0; }
.f-bar .lks a{ display:inline-block; padding:5px 0; }

/* mobile drawer.
   Fixed (not absolute) brand and close so they stay put while the link list
   scrolls: the drawer's own transform makes it their containing block, so
   they still slide in and out with it. The list top-aligns under the header
   band and scrolls, so every item stays reachable on short screens. */
#drawer .brand{ position:fixed; top:calc((var(--hdr-h) - 46px) / 2 + 52px); left:var(--gut); }
#drawer{
  position:fixed; inset:0; z-index:950; background:var(--ink-deep);
  transform:translateY(-100%);
  transition:transform .6s var(--ease-out), visibility .6s;
  visibility:hidden; pointer-events:none;
  display:flex; flex-direction:column;
  overflow-y:auto; -webkit-overflow-scrolling:touch; overscroll-behavior:contain;
  padding:calc(var(--hdr-h) + 64px) calc(var(--gut) + env(safe-area-inset-right, 0px))
          calc(30px + env(safe-area-inset-bottom, 0px)) calc(var(--gut) + env(safe-area-inset-left, 0px));
}
#drawer.open{ transform:translateY(0); visibility:visible; pointer-events:auto; }
#drawer > a:not(.brand){ font-family:var(--display); font-weight:300; letter-spacing:-.03em; font-size:clamp(23px,5.8vw,34px); color:#fff; padding:12px 0; border-bottom:1px solid var(--line-dark); flex:none; }
#drawer > a:not(.brand):last-of-type{ border-bottom:0; }
#drawer > a.here{ color:var(--gold-lt); }
#drawer .close{
  position:fixed; top:calc((var(--hdr-h) - 46px) / 2 + 46px); right:calc(var(--gut) - 12px);
  min-width:46px; min-height:46px; display:flex; align-items:center; justify-content:center;
  background:none; border:0; color:#fff; font-size:34px; line-height:1;
}
/* language toggle inside the drawer (site.js clones it from the header,
   which is hidden on phones) with finger-sized targets */
#drawer .lang-tog{
  margin-top:26px; align-self:flex-start; flex:none;
  border-color:rgba(255,255,255,.25); border-radius:10px;
}
#drawer .lang-tog a{ padding:13px 24px; font-size:14px; }

@media (prefers-reduced-motion:reduce){
  *{ animation:none !important; transition-duration:.01ms !important; }
  .rv{ opacity:1; transform:none; }
  h1 .ln > span{ transform:none !important; }
}

/* ============================================================
   INTERIOR PAGES
   ============================================================ */

/* --- logo lockup ---
   The supplied artwork is white + gold, drawn for dark grounds: on the light
   stuck header the white "TY" and the monogram inside the square would drop
   out entirely. logo-ink.png is the same artwork with the white recoloured to
   --ink, and the header swaps to it when it turns light. Set as a background
   rather than an <img> so the swap is a CSS concern.
   Sized by aspect-ratio off the artwork's own 697x146. */
.brand .lockup{
  display:block;
  height:clamp(38px, 3.2vw, 52px);
  aspect-ratio:697 / 146;
  background:url(/assets/img/logo.png) center/contain no-repeat;
}
#hdr.stuck .brand .lockup{ background-image:url(/assets/img/logo-ink.png); }
.f-top .brand .lockup{ height:clamp(42px, 3.6vw, 56px); }
#drawer .brand .lockup{ height:40px; }

/* --- nav dropdowns --- */
.has-sub{ position:relative; }
.subnav{
  position:absolute; top:100%; left:-20px; min-width:270px;
  background:var(--ink-deep); border:1px solid var(--line-dark);
  padding:10px 0; opacity:0; visibility:hidden; transform:translateY(8px);
  transition:opacity .3s var(--ease), transform .3s var(--ease), visibility .3s;
  box-shadow:0 24px 60px rgba(4,12,24,.4);
}
.has-sub:hover .subnav,
.has-sub:focus-within .subnav{ opacity:1; visibility:visible; transform:translateY(0); }
.subnav a{
  display:block; padding:11px 22px; font-size:12.5px; letter-spacing:.05em;
  color:rgba(255,255,255,.72); text-transform:none; font-weight:400;
  transition:color .3s var(--ease), background .3s var(--ease);
}
.subnav a:hover{ color:var(--gold-lt); background:rgba(255,255,255,.04); }
nav.main > .has-sub > a[aria-current="true"],
nav.main > a[aria-current="true"]{ color:var(--gold-lt); }
#hdr.stuck nav.main > .has-sub > a[aria-current="true"],
#hdr.stuck nav.main > a[aria-current="true"]{ color:var(--gold-ink); }

/* --- page banner --- */
.banner{
  position:relative; background:var(--ink); color:#fff; overflow:hidden;
  margin-top:calc((var(--hdr-h) + 1px) * -1); padding-top:calc(var(--hdr-h) + 1px);
}
.banner .atmos{ position:absolute; inset:0; pointer-events:none; }
.banner .atmos::before{
  content:""; position:absolute; inset:0;
  background:
    radial-gradient(110% 80% at 80% 4%, rgba(201,162,39,.15) 0%, transparent 58%),
    radial-gradient(90% 70% at 4% 96%, rgba(46,106,168,.40) 0%, transparent 62%),
    linear-gradient(168deg,#172E52 0%,#14294A 52%,#0F2039 100%);
}
.banner .wrap{ position:relative; z-index:1; padding-block:clamp(64px,9vw,132px) clamp(56px,7vw,104px); }
.banner h1{
  font-size:clamp(34px,4.6vw,66px); font-weight:200; line-height:1.08;
  letter-spacing:-.035em; margin:0 0 22px; max-width:20ch;
}
.banner .lede{ color:rgba(255,255,255,.68); max-width:62ch; margin:0; }
.banner-grid{ display:grid; grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr); gap:clamp(28px,5vw,80px); align-items:end; }
.banner-meta{ display:flex; flex-direction:column; align-items:flex-end; text-align:right; gap:18px; }
.banner-meta .bm-fig{
  font-family:var(--display); font-weight:200; font-size:clamp(34px,3.4vw,50px);
  line-height:1; letter-spacing:-.035em; color:var(--gold-lt);
}
.banner-meta .bm-lbl{ font-size:10.5px; letter-spacing:.19em; text-transform:uppercase; color:rgba(255,255,255,.46); margin-top:5px; }

/* --- breadcrumb --- */
.crumb{ font-size:11px; letter-spacing:.16em; text-transform:uppercase; color:rgba(255,255,255,.42); margin:0 0 26px; }
.crumb a{ color:rgba(255,255,255,.6); transition:color .3s; }
.crumb a:hover{ color:var(--gold-lt); }
.crumb span{ margin:0 9px; opacity:.5; }

/* --- prose (about, legal, articles) --- */
.prose{ max-width:74ch; }
.prose > * + *{ margin-top:1.15em; }
.prose h2{ font-size:clamp(24px,2.4vw,34px); margin-top:2em; }
.prose h3{ font-size:clamp(18px,1.6vw,21px); margin-top:1.8em; }
.prose p, .prose li{ font-size:16px; line-height:1.75; color:var(--slate-dk); }
.prose ul, .prose ol{ padding-left:1.15em; }
.prose li + li{ margin-top:.5em; }
.prose strong{ color:var(--ink); font-weight:500; }
.prose a{ color:var(--gold-ink); text-decoration:underline; text-underline-offset:3px; }
.prose .small{ font-size:12.5px; line-height:1.6; color:var(--slate); }

/* --- article layout with sticky sidebar --- */
.article{ display:grid; grid-template-columns:minmax(0,1fr) 280px; gap:clamp(36px,5vw,80px); align-items:start; }
.aside-card{ position:sticky; top:calc(var(--hdr-h) + 28px); border:1px solid var(--line-light); padding:26px 24px; background:#fff; }
.aside-card h4{ font-size:11px; font-weight:600; letter-spacing:.18em; text-transform:uppercase; color:var(--gold-ink); margin:0 0 16px; }
.aside-card ul{ list-style:none; margin:0; padding:0; display:grid; gap:11px; }
.aside-card li{ font-size:13.5px; color:var(--slate-dk); }
.aside-card a{ color:var(--ink); transition:color .3s; }
.aside-card a:hover{ color:var(--gold-ink); }

/* --- key facts table --- */
.facts{ border-top:1px solid var(--line-light); }
.facts .fr{
  display:grid; grid-template-columns:minmax(0,.44fr) minmax(0,.56fr); gap:20px;
  padding:17px 0; border-bottom:1px solid var(--line-light);
}
.facts dt{ font-size:12px; letter-spacing:.14em; text-transform:uppercase; color:var(--slate); }
.facts dd{ margin:0; font-size:15.5px; color:var(--ink); }
.facts dd b{ font-weight:500; }

/* --- team --- */
.team{ display:grid; grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); gap:1px; background:var(--line-light); border:1px solid var(--line-light); }
.member{ background:var(--paper); padding:clamp(26px,2.4vw,36px); transition:background .5s var(--ease); }
.member:hover{ background:#fff; }
.member .initials{
  width:52px; height:52px; border:1px solid var(--line-light); border-radius:50%;
  display:flex; align-items:center; justify-content:center; margin-bottom:22px;
  font-size:14px; font-weight:500; letter-spacing:.06em; color:var(--gold-ink);
}
.member h3{ font-size:18px; font-weight:500; margin:0 0 5px; }
.member p{ margin:0; font-size:12.5px; letter-spacing:.1em; text-transform:uppercase; color:var(--slate); }

/* --- values --- */
.values{ display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:clamp(24px,3vw,48px); }
.value h3{ font-size:20px; font-weight:500; margin:0 0 10px; }
.value p{ margin:0; font-size:14.5px; color:var(--slate-dk); }
.value .vno{ font-size:11px; font-weight:600; letter-spacing:.18em; color:var(--gold-ink); margin-bottom:18px; }

/* --- FAQ --- */
.faq{ border-top:1px solid var(--line-light); max-width:82ch; }
.faq details{ border-bottom:1px solid var(--line-light); }
.faq summary{
  cursor:pointer; list-style:none; padding:22px 40px 22px 0; position:relative;
  font-size:16.5px; font-weight:500; color:var(--ink);
}
.faq summary::-webkit-details-marker{ display:none; }
.faq summary::after{
  content:"+"; position:absolute; right:6px; top:50%; transform:translateY(-50%);
  font-size:22px; font-weight:300; color:var(--gold-ink); transition:transform .3s var(--ease);
}
.faq details[open] summary::after{ content:"–"; }
.faq .ans{ padding:0 40px 24px 0; font-size:15px; line-height:1.72; color:var(--slate-dk); }
.faq .ans p{ margin:0 0 .9em; }
.faq .ans p:last-child{ margin:0; }

/* --- simple CTA strip --- */
.strip{ background:var(--ink); color:#fff; }
.strip .wrap{ padding-block:clamp(56px,7vw,96px); display:grid; grid-template-columns:minmax(0,1fr) auto; gap:clamp(26px,4vw,60px); align-items:center; }
.strip h2{ font-size:clamp(26px,3.2vw,44px); font-weight:200; letter-spacing:-.03em; margin:0; max-width:24ch; }
.strip .acts{ display:flex; flex-wrap:wrap; gap:14px; }

/* --- login card --- */
.login-wrap{ display:grid; place-items:center; padding-block:clamp(60px,8vw,120px); }
.login-card{ width:100%; max-width:460px; border:1px solid var(--line-light); background:#fff; padding:clamp(30px,3.4vw,48px); }
.login-card h1{ font-size:clamp(26px,2.6vw,34px); font-weight:300; letter-spacing:-.025em; margin:0 0 10px; }
.login-card .sub{ font-size:14.5px; color:var(--slate-dk); margin:0 0 28px; }
.login-card label{ color:var(--slate); }
.login-card input{ color:var(--ink); border-bottom-color:var(--line-light); }
.login-card input::placeholder{ color:rgba(11,26,47,.3); }
.login-card input:focus{ border-color:var(--gold); }

/* --- 404 --- */
.nf{ text-align:center; padding-block:clamp(80px,12vw,180px); }
.nf .code{ font-size:clamp(70px,11vw,150px); font-weight:200; letter-spacing:-.05em; line-height:1; color:var(--gold-lt); }
.nf h1{ font-size:clamp(24px,2.6vw,36px); font-weight:300; margin:18px 0 14px; }
.nf p{ color:var(--slate-dk); max-width:46ch; margin:0 auto 32px; }

@media (max-width:1080px){
  .banner-grid{ grid-template-columns:1fr; gap:38px; align-items:start; }
  .banner-meta{ align-items:flex-start; text-align:left; flex-direction:row; flex-wrap:wrap; gap:32px; }
  .article{ grid-template-columns:1fr; }
  .aside-card{ position:static; }
  .strip .wrap{ grid-template-columns:1fr; }
}
@media (max-width:860px){
  .facts .fr{ grid-template-columns:1fr; gap:5px; }
  .subnav{ display:none; }
}

/* --- drawer sub-items ---
   #drawer > a.sub outweighs the generic #drawer > a:not(.brand) sizing above,
   so the fund links actually render as the compact indented list intended */
#drawer > a.sub{
  font-family:var(--sans); font-size:15px; font-weight:400; letter-spacing:.04em;
  color:rgba(255,255,255,.55); padding:11px 0 11px 18px; border-bottom:0;
}
#drawer > a.sub:hover{ color:var(--gold-lt); }
#drawer > a.sub.here{ color:var(--gold-lt); }

/* ============================================================
   HEADER RIGHT: LANGUAGE TOGGLE + LOGIN
   ============================================================ */
.hdr-right{ display:flex; align-items:center; gap:12px; flex:none; }
.lang-tog{
  display:inline-flex; align-items:center; border:1px solid rgba(255,255,255,.16);
  border-radius:8px; overflow:hidden; transition:border-color .4s var(--ease);
}
.lang-tog a{
  padding:7px 11px; font-size:11px; font-weight:500; letter-spacing:.08em;
  color:rgba(255,255,255,.6); transition:background .3s var(--ease), color .3s var(--ease);
}
.lang-tog a[aria-current="true"]{ background:rgba(255,255,255,.12); color:#fff; }
.lang-tog a:hover{ color:#fff; }
#hdr.stuck .lang-tog{ border-color:rgba(11,26,47,.18); }
#hdr.stuck .lang-tog a{ color:var(--slate); }
#hdr.stuck .lang-tog a[aria-current="true"]{ background:rgba(11,26,47,.08); color:var(--ink); }
#hdr.stuck .lang-tog a:hover{ color:var(--ink); }

.login-btn{
  display:inline-flex; align-items:center; gap:8px;
  padding:11px 20px; border-radius:8px; white-space:nowrap;
  border:1px solid rgba(201,162,39,.45); color:var(--gold-lt);
  font-size:11.5px; font-weight:500; letter-spacing:.11em; text-transform:uppercase;
  transition:background .4s var(--ease), border-color .4s var(--ease), color .4s var(--ease);
}
.login-btn:hover{ background:var(--gold); border-color:var(--gold); color:var(--ink-deep); }
#hdr.stuck .login-btn{ border-color:var(--gold-ink); color:var(--gold-ink); }
#hdr.stuck .login-btn:hover{ background:var(--ink); border-color:var(--ink); color:#fff; }

/* ============================================================
   TY AT A GLANCE
   ============================================================ */
.glance{ border-top:1px solid var(--line-light); border-bottom:1px solid var(--line-light); }
.glance .wrap{ display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line-light); padding-inline:0; }
.glance .g{ background:var(--paper); padding:clamp(34px,3.6vw,56px) clamp(24px,2.6vw,44px); }
.glance .g:first-child{ padding-left:calc(var(--edge) + var(--gut)); }
.glance .g:last-child{ padding-right:calc(var(--edge) + var(--gut)); }
.g-fig{
  font-family:var(--display); font-weight:200; letter-spacing:-.04em; line-height:1;
  font-size:clamp(34px,3.8vw,58px); color:var(--ink);
}
.g-fig sup{ font-size:.3em; font-weight:400; color:var(--gold-ink); top:-1.2em; margin-left:3px; }
.g-lbl{ margin-top:14px; font-size:13.5px; line-height:1.55; color:var(--slate-dk); max-width:26ch; }
.glance-notes{ padding-block:22px 30px; }
.glance-notes p{ font-size:11.5px; line-height:1.6; color:var(--slate); margin:0 0 .5em; }
.glance-notes b{ color:var(--gold-ink); font-weight:500; }

/* ============================================================
   RETAIL NOTICE / WHOLESALE GATE
   ============================================================ */
.notice{
  background:var(--paper-warm); border-bottom:1px solid var(--line-light);
}
.notice .wrap{ padding-block:20px; display:flex; gap:14px; align-items:flex-start; }
.notice .ico{ color:var(--gold-ink); flex:none; margin-top:1px; }
.notice p{ margin:0; font-size:13.5px; line-height:1.65; color:var(--slate-dk); max-width:110ch; }
.notice strong{ color:var(--ink); font-weight:500; }

#gate{
  position:fixed; inset:0; z-index:1200; display:none;
  align-items:center; justify-content:center; padding:20px;
  background:rgba(6,15,29,.82); backdrop-filter:blur(6px);
}
#gate.show{ display:flex; }
.gate-box{
  width:100%; max-width:620px; background:var(--paper); border:1px solid var(--line-light);
  padding:clamp(28px,3.4vw,48px); max-height:90vh; overflow-y:auto;
}
.gate-box h2{ font-size:clamp(22px,2.4vw,30px); font-weight:300; margin:0 0 18px; }
.gate-box p{ font-size:14.5px; line-height:1.7; color:var(--slate-dk); }
.gate-acts{ display:flex; flex-wrap:wrap; gap:12px; margin-top:26px; }

/* ============================================================
   COMPARE TABLE / GOVERNANCE TABLE
   ============================================================ */
.tbl-scroll{ overflow-x:auto; -webkit-overflow-scrolling:touch; }
table.cmp{ width:100%; border-collapse:collapse; min-width:640px; font-size:14px; }
table.cmp th, table.cmp td{
  text-align:left; padding:15px 18px; border-bottom:1px solid var(--line-light);
  vertical-align:top;
}
table.cmp thead th{
  font-size:11px; font-weight:600; letter-spacing:.14em; text-transform:uppercase;
  color:var(--gold-ink); border-bottom:1px solid var(--line-light); white-space:nowrap;
}
/* small view-fund buttons under the column titles in the compare table */
table.cmp thead th .cmp-view{
  display:inline-flex; align-items:center; gap:6px; margin-top:9px; padding:7px 13px;
  border:1px solid rgba(201,162,39,.55); border-radius:2px;
  font-size:10px; font-weight:600; letter-spacing:.12em; color:var(--gold-ink);
  transition:background .3s var(--ease), color .3s var(--ease), border-color .3s var(--ease);
}
table.cmp thead th .cmp-view .arw{ transition:transform .35s var(--ease-out); }
table.cmp thead th .cmp-view:hover{ background:var(--ink); border-color:var(--ink); color:#fff; }
table.cmp thead th .cmp-view:hover .arw{ transform:translateX(4px); }
table.cmp tbody th{
  font-size:12px; font-weight:500; letter-spacing:.08em; text-transform:uppercase;
  color:var(--slate); white-space:nowrap; width:1%;
}
table.cmp td{ color:var(--ink); }
table.cmp tbody tr:hover{ background:rgba(255,255,255,.55); }
.on-dark table.cmp th, .on-dark table.cmp td{ border-color:var(--line-dark); color:#fff; }
.on-dark table.cmp tbody th{ color:rgba(255,255,255,.5); }

/* ============================================================
   FUND PANELS (investment opportunities page)
   ============================================================ */
.panel{
  border:1px solid var(--line-light); background:#fff; padding:clamp(28px,3vw,46px);
  display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.25fr); gap:clamp(24px,3vw,52px);
  margin-bottom:clamp(18px,2vw,28px); transition:border-color .5s var(--ease);
}
.panel:hover{ border-color:rgba(201,162,39,.5); }
.panel .pfig{
  font-family:var(--display); font-weight:200; letter-spacing:-.035em; line-height:1.02;
  font-size:clamp(28px,3vw,42px); color:var(--gold-ink); margin-bottom:14px;
}
.panel .pdesc{ font-size:11.5px; letter-spacing:.13em; text-transform:uppercase; color:var(--slate); }
.panel .ptag{
  display:inline-block; margin-bottom:16px; font-size:10.5px; font-weight:600;
  letter-spacing:.16em; text-transform:uppercase; padding:5px 10px; border-radius:3px;
}
.ptag.retail{ background:rgba(46,106,168,.12); color:#2A5D91; }
.ptag.wholesale{ background:rgba(201,162,39,.15); color:var(--gold-ink); }
.panel h3{ font-size:clamp(21px,2vw,27px); font-weight:400; letter-spacing:-.02em; margin-bottom:14px; }
.panel .phi{ font-size:15px; line-height:1.7; color:var(--slate-dk); margin-bottom:22px; }
.panel dl{ margin:0 0 24px; }
.panel .prow{ display:grid; grid-template-columns:minmax(0,.38fr) minmax(0,.62fr); gap:16px; padding:11px 0; border-top:1px solid var(--line-light); font-size:13.5px; }
.panel dt{ color:var(--slate); }
.panel dd{ margin:0; color:var(--ink); }

/* ============================================================
   DOCUMENT LIBRARY
   ============================================================ */
.docgroup{ margin-bottom:clamp(34px,4vw,56px); }
.docgroup h3{ font-size:20px; font-weight:500; margin-bottom:6px; }
.docgroup .gmeta{ font-size:11.5px; letter-spacing:.14em; text-transform:uppercase; color:var(--gold-ink); margin-bottom:18px; }
.doclist{ border-top:1px solid var(--line-light); }
.doc{
  display:flex; align-items:center; justify-content:space-between; gap:20px;
  padding:16px 0; border-bottom:1px solid var(--line-light);
  transition:padding-left .35s var(--ease);
}
.doc:hover{ padding-left:8px; }
.doc .dn{ font-size:15px; color:var(--ink); }
.doc .dd{ font-size:12.5px; color:var(--slate); white-space:nowrap; }
.doc .dl{ font-size:11.5px; font-weight:500; letter-spacing:.13em; text-transform:uppercase; color:var(--gold-ink); white-space:nowrap; }

/* ============================================================
   BIOS
   ============================================================ */
.bios{ display:grid; grid-template-columns:repeat(auto-fit,minmax(300px,1fr)); gap:1px; background:var(--line-light); border:1px solid var(--line-light); }
.bio{ background:var(--paper); padding:clamp(28px,2.8vw,40px); }
.bio .initials{
  width:56px; height:56px; border:1px solid var(--line-light); border-radius:50%;
  display:flex; align-items:center; justify-content:center; margin-bottom:22px;
  font-size:15px; font-weight:500; letter-spacing:.06em; color:var(--gold-ink);
}
.bio h3{ font-size:19px; font-weight:500; margin:0 0 4px; }
.bio .role{ font-size:11.5px; letter-spacing:.14em; text-transform:uppercase; color:var(--gold-ink); margin:0 0 6px; }
.bio .quals{ font-size:12px; color:var(--slate); margin:0 0 16px; }
.bio p.b{ font-size:14px; line-height:1.7; color:var(--slate-dk); margin:0; }

/* ============================================================
   PLACEHOLDER FLAG (visible in build, remove before launch)
   ============================================================ */
.ph{
  display:block; border-left:2px solid var(--gold); background:rgba(201,162,39,.09);
  padding:14px 18px; margin:18px 0; font-size:12.5px; line-height:1.6; color:var(--slate-dk);
}
.ph b{ color:var(--gold-ink); font-weight:600; letter-spacing:.04em; }
.on-dark .ph{ background:rgba(201,162,39,.14); color:rgba(255,255,255,.72); }
.on-dark .ph b{ color:var(--gold-lt); }

@media (max-width:1080px){
  .panel{ grid-template-columns:1fr; gap:26px; }
  .glance .wrap{ grid-template-columns:1fr; }
  .glance .g{ padding-inline:calc(var(--edge) + var(--gut)) !important; }
}
@media (max-width:860px){
  .hdr-right .lang-tog{ display:none; }
  .login-btn{ display:none; }
  .doc{ flex-direction:column; align-items:flex-start; gap:5px; }
}

/* ============================================================
   HOME HERO — larger headline + background video
   ============================================================ */
#hero h1.xl{ font-size:clamp(38px,5.6vw,86px); max-width:16ch; }

/* The Sydney Harbour footage sits under the .atmos gradient. Only when the
   file is present and playable does site.js add .has-video to #hero, which
   fades the video in and thins the gradient to a readable scrim. With no
   file at /assets/video/ the hero keeps today's gradient — nothing breaks. */
.hero-video{
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
  opacity:0; transition:opacity 1.4s var(--ease);
}
#hero.has-video .hero-video{ opacity:1; }
#hero.has-video .atmos::before{
  background:linear-gradient(168deg, rgba(13,30,56,.84) 0%, rgba(20,41,74,.62) 46%, rgba(15,32,57,.86) 100%);
}

/* ============================================================
   SERVICES TILES (home block + services page) — Medallion-style
   ============================================================ */
.svcs{ display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line-light); border:1px solid var(--line-light); }
.svc{ background:var(--paper); padding:clamp(28px,2.8vw,44px); display:flex; flex-direction:column; transition:background .5s var(--ease); }
.svc:hover{ background:#fff; }
.svc .ic{ width:44px; height:44px; color:var(--gold-ink); margin-bottom:22px; }
.svc .ic svg{ width:100%; height:100%; display:block; }
.svc h3{ font-size:19px; font-weight:500; margin:0 0 10px; }
.svc p{ font-size:14px; line-height:1.7; color:var(--slate-dk); margin:0 0 22px; }
.svc .rd{
  margin-top:auto; font-size:11.5px; font-weight:500; letter-spacing:.14em;
  text-transform:uppercase; color:var(--gold-ink);
  display:inline-flex; gap:8px; align-items:center;
}
.svc .rd .arw{ transition:transform .45s var(--ease-out); }
.svc:hover .rd .arw{ transform:translateX(5px); }

/* ============================================================
   AUDIENCE ROW (about) — who we work with
   ============================================================ */
.aud{ display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--line-light); border-block:1px solid var(--line-light); }
.aud .a{ background:var(--paper); padding:clamp(28px,2.8vw,44px) clamp(18px,2vw,30px); text-align:center; }
.aud .ic{ width:38px; height:38px; margin:0 auto 16px; color:var(--gold-ink); }
.aud .ic svg{ width:100%; height:100%; display:block; }
.aud h3{ font-size:13px; font-weight:500; letter-spacing:.12em; text-transform:uppercase; margin:0; }

/* ============================================================
   TEAM PROFILES (about) — photo + long-form biography rows
   ============================================================ */
.profile{
  display:grid; grid-template-columns:minmax(210px,290px) minmax(0,1fr);
  gap:clamp(26px,4vw,64px); padding-block:clamp(34px,4vw,56px);
  border-top:1px solid var(--line-light); align-items:start;
}
.profile:last-of-type{ border-bottom:1px solid var(--line-light); }
.profile-photo{
  aspect-ratio:3/4; overflow:hidden;
  background:linear-gradient(165deg,var(--ink-soft),var(--ink-deep));
  display:flex; align-items:center; justify-content:center;
  color:var(--gold-lt); font-family:var(--display); font-weight:200;
  font-size:clamp(40px,4vw,60px); letter-spacing:.05em;
}
.profile-photo img{ width:100%; height:100%; object-fit:cover; }
.profile h3{ font-size:clamp(21px,2vw,27px); font-weight:500; margin:0 0 5px; }
.profile .role{ font-size:11.5px; letter-spacing:.14em; text-transform:uppercase; color:var(--gold-ink); margin:0 0 6px; }
.profile .quals{ font-size:12.5px; color:var(--slate); margin:0 0 18px; }
.profile p.b{ font-size:15px; line-height:1.75; color:var(--slate-dk); margin:0 0 1em; }
.profile p.b:last-child{ margin-bottom:0; }

/* ============================================================
   MODAL (monthly report subscribe) — shares the gate box styling,
   but the form inside sits on paper so the dark-form fields invert
   ============================================================ */
.modal{
  position:fixed; inset:0; z-index:1200; display:none;
  align-items:center; justify-content:center; padding:20px;
  background:rgba(6,15,29,.82); backdrop-filter:blur(6px);
}
.modal.show{ display:flex; }
.modal .gate-box{ position:relative; }
.modal .mclose{
  position:absolute; top:12px; right:16px; background:none; border:0;
  font-size:30px; line-height:1; color:var(--slate); padding:6px;
}
.modal .mclose:hover{ color:var(--ink); }
.gate-box form{ border:0; padding:0; background:transparent; }
.gate-box form label{ color:var(--slate); }
.gate-box form input{ color:var(--ink); border-bottom-color:var(--line-light); }
.gate-box form input::placeholder{ color:rgba(11,26,47,.3); }
.gate-box form input:focus{ border-color:var(--gold); }
.gate-box form .consent{ color:var(--slate-dk); }
.gate-box form .formnote{ color:var(--slate); }
.gate-box form .ok h3{ color:var(--ink); }
.gate-box form .ok p{ color:var(--slate-dk); }
.gate-box form .ok .tick{ color:var(--gold-ink); }

/* ============================================================
   CONTACT — channel cards + office
   ============================================================ */
.chans{ display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line-light); border:1px solid var(--line-light); }
.chan{ background:var(--paper); padding:clamp(26px,2.6vw,38px); }
.chan h3{ font-size:12px; font-weight:600; letter-spacing:.16em; text-transform:uppercase; color:var(--gold-ink); margin:0 0 16px; }
.chan a{ display:block; font-size:15.5px; color:var(--ink); margin-bottom:7px; transition:color .3s; }
.chan a:hover{ color:var(--gold-ink); }
.chan .note{ font-size:12.5px; line-height:1.6; color:var(--slate); margin:10px 0 0; }

.office{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.05fr); gap:clamp(28px,4vw,70px); align-items:center; }
.office-photo{
  aspect-ratio:16/10; overflow:hidden;
  background:linear-gradient(165deg,var(--ink-soft),var(--ink-deep));
  display:flex; align-items:center; justify-content:center;
  color:rgba(255,255,255,.42); font-size:11px; letter-spacing:.2em; text-transform:uppercase;
}
.office-photo img{ width:100%; height:100%; object-fit:cover; }

/* banner action buttons (insights subscribe row) */
.banner-acts{ display:flex; flex-wrap:wrap; gap:14px; margin-top:32px; }

/* ============================================================
   LOAN PRODUCT CARDS (borrowers page, Pallas-style rows)
   ============================================================ */
.loans{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:clamp(16px,1.8vw,26px); }
.loan{
  display:flex; flex-direction:column;
  background:linear-gradient(160deg,var(--ink-soft),var(--ink-deep) 70%);
  border:1px solid rgba(255,255,255,.09);
  padding:clamp(26px,2.4vw,38px) clamp(22px,2vw,32px);
  color:#fff;
  transition:border-color .5s var(--ease), transform .5s var(--ease), box-shadow .5s var(--ease);
}
.loan:hover{
  border-color:rgba(201,162,39,.55);
  transform:translateY(-4px);
  box-shadow:0 26px 48px -26px rgba(11,26,42,.5);
}
.loan-top{
  display:flex; align-items:flex-start; justify-content:space-between;
  margin-bottom:14px;
}
.loan-idx{
  font-size:12px; font-weight:600; letter-spacing:.22em; color:var(--gold-lt);
  padding-top:8px;
}
.loan-top svg{ width:36px; height:36px; color:var(--gold-lt); opacity:.85; flex:none; }
.loan h3{
  font-size:clamp(21px,1.7vw,25px); font-weight:400; letter-spacing:-.01em;
  color:#fff; margin:0 0 18px;
}
.loan-facts{ margin:0 0 26px; flex:1; }
.loan-facts .lf{ padding:11px 0; border-top:1px solid rgba(255,255,255,.13); }
.loan-facts .lf dt{
  font-size:10.5px; font-weight:600; letter-spacing:.15em; text-transform:uppercase;
  color:var(--gold-lt); margin-bottom:4px;
}
.loan-facts .lf dd{ margin:0; font-size:13.5px; line-height:1.6; color:rgba(255,255,255,.8); }
.loan-cta{
  margin-top:auto; align-self:flex-start;
  display:inline-flex; align-items:center; gap:10px;
  font-size:12.5px; font-weight:600; letter-spacing:.16em; text-transform:uppercase;
  color:var(--gold-lt); text-decoration:none; padding-top:2px;
}
.loan-cta .arw{ transition:transform .4s var(--ease); }
.loan-cta:hover .arw{ transform:translateX(6px); }
@media (max-width:1080px){
  .loans{ grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:640px){
  .loans{ grid-template-columns:1fr; }
}

/* anchored sections (services page) land clear of the sticky header */
section[id]{ scroll-margin-top:calc(var(--hdr-h) + 16px); }

@media (max-width:1080px){
  .svcs{ grid-template-columns:1fr 1fr; }
}
@media (max-width:860px){
  .aud{ grid-template-columns:1fr 1fr; }
  .chans{ grid-template-columns:1fr; }
  .office{ grid-template-columns:1fr; }
  .profile{ grid-template-columns:1fr; }
  .profile-photo{ max-width:290px; }
}
@media (max-width:640px){
  .svcs{ grid-template-columns:1fr; }
}

/* grid and flex children default to min-width:auto, which lets a wide table
   push the page instead of scrolling inside its own container */
.article > *, .split > *, .sec-head > *, .enq-grid > *, .banner-grid > *, .office > *, .profile > *{ min-width:0; }
.tbl-scroll{ max-width:100%; }
