/* Middlebridge Partners — site stylesheet
   Palette: Midnight & Cobalt. Type: Libre Caslon Text / Hanken Grotesk / IBM Plex Mono (self-hosted). */

/* ---------- Fonts ---------- */
@font-face{font-family:"Libre Caslon Text";font-style:normal;font-weight:400;font-display:swap;src:url("/assets/fonts/libre-caslon-text-400.woff2") format("woff2")}
@font-face{font-family:"Libre Caslon Text";font-style:italic;font-weight:400;font-display:swap;src:url("/assets/fonts/libre-caslon-text-400-italic.woff2") format("woff2")}
@font-face{font-family:"Hanken Grotesk";font-style:normal;font-weight:400;font-display:swap;src:url("/assets/fonts/hanken-grotesk-400.woff2") format("woff2")}
@font-face{font-family:"Hanken Grotesk";font-style:normal;font-weight:500;font-display:swap;src:url("/assets/fonts/hanken-grotesk-500.woff2") format("woff2")}
@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:400;font-display:swap;src:url("/assets/fonts/ibm-plex-mono-400.woff2") format("woff2")}
@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:500;font-display:swap;src:url("/assets/fonts/ibm-plex-mono-500.woff2") format("woff2")}

/* ---------- Tokens ---------- */
:root{
  --ink:#0B1426;
  --accent:#3A58B0;
  --paper:#F5F3EE;
  --panel:#EFECE5;
  --line:#DAD5CB;
  --line-soft:#ECE8E0;
  --chip-line:#C9C3B7;
  --text-2:#2C2E32;
  --text-3:#45474B;
  --muted:#5B5D61;
  --footer-text:#BDB8AE;
  --serif:"Libre Caslon Text",Georgia,"Times New Roman",serif;
  --sans:"Hanken Grotesk",system-ui,-apple-system,"Segoe UI",Arial,sans-serif;
  --mono:"IBM Plex Mono",ui-monospace,"SFMono-Regular",Menlo,Consolas,monospace;
  --gutter:64px;
  --header-h:88px;
  --footer-h:56px;
  color-scheme:light;
}
@media (max-width:1024px){:root{--gutter:40px}}
@media (max-width:640px){:root{--gutter:20px}}

/* ---------- Base ---------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{margin:0;min-height:100vh;min-height:100svh;display:flex;flex-direction:column;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;overflow-x:hidden}
h1,h2,h3,p,ol,ul,dl,dd,figure{margin:0}
ol,ul{padding:0;list-style:none}
img,svg{display:block}
a{color:var(--ink)}
a:hover{color:var(--accent)}
button{font:inherit;color:inherit}
a,button,summary{-webkit-tap-highlight-color:rgba(11,20,38,.08)}
:focus-visible{outline:2px solid var(--ink);outline-offset:2px}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip{position:absolute;left:12px;top:-60px;z-index:10;padding:10px 16px;background:var(--ink);color:var(--paper);font-size:14px;font-weight:500;text-decoration:none}
.skip:focus{top:12px;color:var(--paper)}
.wrap{width:100%;max-width:1440px;margin:0 auto;padding-inline:var(--gutter)}
main{flex:1 0 auto;width:100%}
.g12{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:24px}
.eyebrow{font-family:var(--mono);font-size:12px;line-height:1.4;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.eyebrow--lg{font-size:13px}
.serif{font-family:var(--serif);font-weight:400}
.accent-em{font-style:italic;color:var(--accent)}
.icon{display:inline-block;width:1em;height:1em;flex:0 0 auto;vertical-align:-0.125em}

/* ---------- Header ---------- */
.site-header{flex:0 0 auto;border-bottom:1px solid var(--line)}
.header-inner{min-height:var(--header-h);display:flex;align-items:center;justify-content:space-between;gap:24px}
.brand{display:inline-flex;align-items:center;gap:14px;text-decoration:none;color:var(--ink)}
.brand:hover{color:var(--ink)}
.brand-mark{width:42px;height:42px;overflow:visible}
.wordmark{display:flex;flex-direction:column;gap:6px}
.wordmark-main{font-family:var(--serif);font-size:20px;line-height:1;letter-spacing:.12em;color:var(--ink)}
.wordmark-sub{font-family:var(--sans);font-weight:500;font-size:9.5px;line-height:1;letter-spacing:.42em;color:var(--ink);opacity:.75}
.nav ul{display:flex;align-items:center;gap:36px}
.nav a{display:block;padding:10px 0;font-size:13px;font-weight:500;line-height:1.2;letter-spacing:.1em;text-transform:uppercase;color:var(--ink);text-decoration:none}
.nav a:hover{color:var(--accent)}
.nav a[aria-current="page"]{text-decoration:underline;text-decoration-color:var(--accent);text-decoration-thickness:2px;text-underline-offset:3px}
@media (max-width:640px){
  .header-inner{flex-direction:column;align-items:stretch;gap:10px;padding-block:18px 6px}
  .nav ul{justify-content:space-between;gap:12px}
}
@media (max-width:360px){.nav a{font-size:12px;letter-spacing:.06em}}

/* ---------- Footer ---------- */
.site-footer{flex:0 0 auto;background:var(--ink);color:var(--footer-text);font-size:13px}
.site-footer .wrap{min-height:var(--footer-h);display:flex;align-items:center;justify-content:space-between;gap:16px}

/* ---------- Buttons & links ---------- */
.btn{display:inline-flex;align-items:center;gap:10px;height:52px;padding:0 26px;background:var(--ink);color:var(--paper);text-decoration:none;font-size:15px;font-weight:500;border-radius:2px;transition:background-color .15s ease}
.btn:hover{background:var(--accent);color:var(--paper)}
.btn .icon{width:16px;height:16px}
.text-link{display:inline-block;padding-block:10px;font-size:15px;font-weight:500;text-underline-offset:5px}

/* ---------- Home ---------- */
.home{display:flex;flex-direction:column;justify-content:space-between;gap:64px;padding-block:56px 48px;min-height:calc(100vh - var(--header-h) - var(--footer-h) - 1px);min-height:calc(100svh - var(--header-h) - var(--footer-h) - 1px)}
.hero{display:flex;flex-direction:column;align-items:flex-start;gap:24px}
.hero-title{font-family:var(--serif);font-weight:400;font-size:clamp(36px,calc(2.9vw + 11px),53px);line-height:1.04;letter-spacing:-.025em}
.hero-lead{max-width:620px;font-size:17px;line-height:1.6;color:var(--text-3)}
.hero-actions{display:flex;flex-wrap:wrap;align-items:center;gap:20px 28px}
.criteria{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:32px 24px}
.criterion{border-top:1px solid var(--ink);padding-top:20px;display:flex;flex-direction:column;gap:10px}
.num{font-family:var(--mono);font-size:12px;line-height:1.4;color:var(--accent)}
.criterion h2{font-family:var(--serif);font-weight:400;font-size:30px;line-height:1.1}
.criterion p{font-size:15px;line-height:1.55;color:var(--text-3)}
@media (max-width:1024px){.criteria{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){
  .home{gap:48px;padding-block:40px;min-height:0}
  .hero-title br{display:none}
  .hero-lead{font-size:16.5px}
  .criteria{gap:28px 20px}
  .criterion{padding-top:16px;gap:8px}
  .criterion h2{font-size:24px}
  .criterion p{font-size:14px;line-height:1.5}
}
@media (max-width:340px){.criteria{grid-template-columns:minmax(0,1fr)}}

/* ---------- About ---------- */
.section{padding-block:56px 72px;border-top:1px solid var(--line);row-gap:32px}
.section:first-child{border-top:0}
.section-label{grid-column:span 5;display:flex;flex-direction:column;gap:14px}
.section-body{grid-column:7 / span 6}
.section-title{font-family:var(--serif);font-weight:400;font-size:32px;line-height:1.2;letter-spacing:-.01em}
.about-intro{padding-block:72px 64px;row-gap:32px}
.about-intro .section-label{gap:20px;padding-right:24px}
.about-title{font-family:var(--serif);font-weight:400;font-size:clamp(30px,calc(1.4vw + 19px),39px);line-height:1.12;letter-spacing:-.015em;text-wrap:balance}
.prose{display:flex;flex-direction:column;gap:20px;font-size:18px;line-height:1.65;color:var(--text-2)}
.prose .lead{font-family:var(--serif);font-size:25px;line-height:1.4;color:var(--ink)}
.prose .note{font-size:15px;line-height:1.6;color:var(--muted)}
.approach{padding-block:56px 64px;display:flex;flex-direction:column;gap:40px}
.approach-head{align-items:baseline;row-gap:14px}
.approach-head .eyebrow{grid-column:span 5}
.approach-head h2{grid-column:7 / span 6}
.pillars{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:40px 24px}
.pillar{border-top:1px solid var(--ink);padding-top:18px;display:flex;flex-direction:column;gap:12px}
.pillar h3{font-family:var(--serif);font-weight:400;font-size:24px;line-height:1.15}
.pillar p{font-size:15px;line-height:1.6;color:var(--text-3)}
.people{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:40px}
.person{border-top:1px solid var(--ink);padding-top:20px;display:flex;flex-direction:column;gap:12px}
.person h3{font-family:var(--serif);font-weight:400;font-size:30px;line-height:1.2}
.person .role{font-family:var(--mono);font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.person p{font-size:15px;line-height:1.6;color:var(--text-3)}
.partners{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--line);border-left:1px solid var(--line)}
.partners li{height:150px;padding:0 16px;display:flex;align-items:center;justify-content:center;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}
.partners img{width:auto;height:auto;max-width:100%;opacity:.85;transition:opacity .2s ease}
.partners li:hover img{opacity:1}
.partners .logo-hsbc{max-width:min(156px,100%);max-height:56px}
.partners .logo-ancala{width:min(160px,100%)}
.partners .logo-procuritas{max-width:min(164px,100%);max-height:40px}
.partners .logo-fp{height:72px}
.partners .logo-itago{width:min(150px,100%)}
.partners .logo-prime{max-width:min(138px,100%);max-height:60px}
@media (max-width:1200px){.pillars{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:1024px){
  .section-label,.section-body,.approach-head .eyebrow,.approach-head h2{grid-column:1 / -1}
  .about-intro .section-label{padding-right:0}
}
@media (max-width:760px){.pillars{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:600px){
  .people{grid-template-columns:minmax(0,1fr)}
  .partners{grid-template-columns:repeat(2,minmax(0,1fr))}
  .partners li{height:120px}
  .partners .logo-ancala,.partners .logo-itago{width:min(128px,100%)}
  .partners .logo-fp{height:60px}
}
@media (max-width:520px){.pillars{grid-template-columns:minmax(0,1fr)}}

/* ---------- Investments ---------- */
.inv{padding-block:56px;row-gap:40px;align-items:start}
.inv-title{grid-column:span 4}
.inv-intro{grid-column:5 / span 8;font-size:18px;line-height:1.6;color:var(--text-2)}
.inv-mapcol{grid-column:span 4}
.inv-listcol{grid-column:5 / span 8;min-width:0;display:flex;flex-direction:column;gap:24px}
.page-title{font-family:var(--serif);font-weight:400;font-size:clamp(38px,calc(1.8vw + 23px),49px);line-height:1.05;letter-spacing:-.02em}
.map{position:relative;width:100%;max-width:421px;aspect-ratio:421 / 398;background:var(--panel)}
.map svg{position:absolute;inset:0;width:100%;height:100%}
.marker{position:absolute;width:36px;height:36px;margin:-18px 0 0 -18px;padding:0;border:0;border-radius:50%;background:var(--accent);color:#fff;font-family:var(--mono);font-size:13px;font-weight:500;line-height:1;display:flex;align-items:center;justify-content:center;box-shadow:0 0 0 4px var(--panel);cursor:pointer;z-index:1}
.marker[hidden]{display:none}
.marker::after{content:"";position:absolute;inset:-7px;border-radius:50%;border:1.5px solid transparent;pointer-events:none}
.marker:hover::after,.marker.is-active::after,.marker:focus-visible::after{border-color:var(--accent)}
.marker:focus-visible{outline:none}
[data-r="UK"]{left:16.865%;top:27.889%}
[data-r="SE"]{left:59.145%;top:12.060%}
[data-r="FI"]{left:78.385%;top:7.035%}
[data-r="IT"]{left:48.456%;top:67.337%}
[data-r="TR"]{left:91.211%;top:92.211%}
.tip{position:absolute;width:300px;padding:16px 18px;background:#fff;border:1px solid var(--line);box-shadow:0 12px 32px rgba(21,23,26,.10);display:flex;flex-direction:column;gap:10px;pointer-events:none;z-index:3}
.tip[hidden]{display:none}
.tip.tip--UK{transform:translate(30px,-50%)}
.tip.tip--SE{transform:translate(-50%,30px)}
.tip.tip--FI{transform:translate(-70%,30px)}
.tip.tip--IT{transform:translate(-50%,calc(-100% - 30px))}
.tip.tip--TR{transform:translate(calc(-100% + 20px),calc(-100% - 30px))}
.tip-row{display:flex;justify-content:space-between;align-items:baseline;gap:12px;border-top:1px solid var(--line-soft);padding-top:8px}
.tip-name{font-family:var(--serif);font-size:19px;line-height:1.25}
.tip-status{font-family:var(--mono);font-size:12px;text-align:right;color:var(--accent)}
.tip-status.is-exited{color:var(--ink)}
.chips{display:flex;flex-wrap:wrap;gap:10px}
.chips[hidden]{display:none}
.chip{height:40px;padding:0 18px;border-radius:20px;border:1px solid var(--chip-line);background:transparent;color:var(--ink);font-size:14px;font-weight:500;cursor:pointer}
.chip:hover{border-color:var(--ink)}
.chip[aria-pressed="true"]{background:var(--ink);border-color:var(--ink);color:var(--paper)}
.inv-head{display:flex;gap:16px;padding:0 10px 10px;border-bottom:1px solid var(--ink);font-family:var(--mono);font-size:11px;line-height:1.4;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.c-name{flex:0 0 200px}
.c-sector{flex:1 1 0;min-width:0}
.c-type{flex:0 0 200px}
.c-loc{flex:0 0 130px}
.c-sign{flex:0 0 16px;text-align:right}
.inv-list>li{border-bottom:1px solid var(--line)}
.inv-list>li[hidden]{display:none}
.inv-list>li:has(details[open]),.inv-list>li.is-hl{background:var(--panel)}
.inv-row{display:flex;gap:16px;align-items:baseline;padding:10px;cursor:pointer;list-style:none}
.inv-row::-webkit-details-marker{display:none}
.inv-row::marker{content:""}
.inv-row:hover .c-name{color:var(--accent)}
.inv-row .c-name{font-family:var(--serif);font-size:19px;line-height:1.25}
.inv-row .c-sector,.inv-row .c-loc{font-size:14px;color:var(--text-2)}
.inv-row .c-type{font-family:var(--mono);font-size:12px;color:var(--text-3)}
.inv-row .c-sign{font-size:17px;line-height:1}
summary .c-sign::before{content:"+"}
details[open]>summary .c-sign::before{content:"\2212"}
.inv-body{padding:2px 10px 20px 226px;display:flex;flex-direction:column;gap:10px}
.inv-body p{max-width:520px;font-size:15px;line-height:1.6;color:var(--text-2)}
.inv-outcome{font-family:var(--mono);font-size:12px;color:var(--ink)}
.inv-note{margin-top:20px;font-size:14px;line-height:1.55;color:var(--muted)}
.inv-empty{padding:20px 10px;font-size:15px;color:var(--muted)}
.inv-empty[hidden]{display:none}
@media (max-width:1100px){
  .inv-title,.inv-intro,.inv-mapcol,.inv-listcol{grid-column:1 / -1}
  .inv{row-gap:32px}
}
@media (max-width:960px){
  .inv-head{display:none}
  .inv-list{border-top:1px solid var(--ink)}
  .inv-row{flex-wrap:wrap;row-gap:4px;column-gap:12px}
  .inv-row .c-name{flex:1 1 calc(100% - 28px);order:1}
  .inv-row .c-sign{order:2}
  .inv-row .c-sector{order:3;flex:0 0 100%}
  .inv-row .c-type{order:4;flex:0 0 auto}
  .inv-row .c-loc{order:5;flex:1 1 auto}
  .inv-row .c-loc::before{content:"\00B7";margin-right:10px;color:var(--muted)}
  .inv-body{padding-left:10px}
}
@media (max-width:600px){
  .tip,.tip.tip--UK,.tip.tip--SE,.tip.tip--FI,.tip.tip--IT,.tip.tip--TR{left:0;right:0;top:calc(100% + 12px);width:auto;transform:none}
}

/* ---------- News ---------- */
.news{padding-block:56px;display:flex;flex-direction:column;gap:40px}
.news-head{display:flex;flex-direction:column;gap:14px}
.press{border-top:1px solid var(--ink)}
.press>li{border-bottom:1px solid var(--line)}
.press>li:has(details[open]){background:var(--panel)}
.press-row{display:grid;grid-template-columns:130px minmax(0,1fr) 220px 24px;column-gap:24px;align-items:baseline;padding:22px 12px;cursor:pointer;list-style:none}
.press-row::-webkit-details-marker{display:none}
.press-row::marker{content:""}
.press-date{font-family:var(--mono);font-size:13px;color:var(--accent)}
.press-head{font-family:var(--serif);font-size:24px;line-height:1.25}
.press-row:hover .press-head{color:var(--accent)}
.press-co{font-family:var(--mono);font-size:12px;color:var(--text-3)}
.press-row .c-sign{font-size:20px;line-height:1;justify-self:end}
.press-body{padding:0 12px 28px 166px;display:grid;grid-template-columns:minmax(0,1fr) 360px;column-gap:56px;row-gap:20px}
.press-body p{max-width:620px;font-size:16px;line-height:1.65;color:var(--text-2)}
.sources{border-top:1px solid var(--line);align-self:start}
.sources li{border-bottom:1px solid var(--line)}
.src{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 0;font-size:14px;line-height:1.4;color:var(--ink);text-decoration:none}
.src:hover{color:var(--ink)}
.src:hover .src-t{color:var(--accent)}
.src .icon{width:14px;height:14px}
@media (max-width:1024px){
  .press-row{grid-template-columns:90px minmax(0,1fr) 24px;grid-template-areas:"date head sign" ". co .";row-gap:6px}
  .press-date{grid-area:date}.press-head{grid-area:head}.press-co{grid-area:co}.press-row .c-sign{grid-area:sign}
  .press-body{grid-template-columns:minmax(0,1fr);padding-left:126px}
}
@media (max-width:640px){
  .press-row{grid-template-columns:minmax(0,1fr) 24px;grid-template-areas:"date sign" "head head" "co co";padding:18px 10px}
  .press-head{font-size:21px}
  .press-body{padding:0 10px 24px}
}

/* ---------- Contact / 404 ---------- */
.contact{padding-block:88px 64px;align-items:start;row-gap:48px}
.contact-intro{grid-column:span 5;display:flex;flex-direction:column;gap:20px}
.contact-title{font-family:var(--serif);font-weight:400;font-size:clamp(42px,calc(2.4vw + 28px),63px);line-height:1.02;letter-spacing:-.025em}
.contact-intro p:not(.eyebrow){max-width:420px;font-size:17px;line-height:1.6;color:var(--text-3)}
.contact-list{grid-column:6 / span 7;border-top:1px solid var(--ink)}
.contact-row{display:grid;grid-template-columns:180px minmax(0,1fr);column-gap:24px;row-gap:8px;padding:24px 0;border-bottom:1px solid var(--line);align-items:baseline}
.contact-row dt{font-family:var(--mono);font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.contact-email{font-family:var(--serif);font-size:28px;line-height:1.3;text-underline-offset:6px;overflow-wrap:break-word}
.contact-row address{font-style:normal;font-size:17px;line-height:1.6}
@media (max-width:1200px){.contact-intro,.contact-list{grid-column:1 / -1}}
@media (max-width:640px){
  .contact{padding-block:48px}
  .contact-row{grid-template-columns:minmax(0,1fr)}
  .contact-email{font-size:20px}
}

/* ---------- Phone refinements ---------- */
@media (max-width:640px){
  .about-intro{padding-block:40px 48px}
  .section,.approach{padding-block:40px 48px}
  .approach{gap:28px}
  .prose{font-size:17px;gap:18px}
  .prose .lead{font-size:21px}
  .section-title{font-size:28px}
  .person h3{font-size:26px}
  .inv,.news{padding-block:40px}
  .news{gap:28px}
  .inv-intro{font-size:16.5px}
  .chips{gap:8px}
  .chip{height:36px;padding:0 14px}
  .inv-row{padding:12px 10px}
  .inv-row .c-name{font-size:18px}
}

@media (prefers-reduced-motion:reduce){*{transition:none!important}}
@media print{.site-header nav,.skip,.chips{display:none}.site-footer{background:none;color:var(--ink)}}
