/* Pernas Capital — shared styles
   Committed light identity: white page, black nav. Type: Cinzel (display) + Montserrat (body). */

@font-face{
  font-family:'Cinzel';font-style:normal;font-weight:600;font-display:swap;
  src:url('/assets/fonts/cinzel-600.woff2') format('woff2');
}
@font-face{
  font-family:'Montserrat';font-style:normal;font-weight:500;font-display:swap;
  src:url('/assets/fonts/montserrat-500.woff2') format('woff2');
}

:root{
  --bg:#FFFFFF; --fg:#0B0C0E; --nav:#0B0C0E; --on-nav:#F4F3EF;
  --muted:#63666B; --faint:#9A9DA3; --hair:#E7E5E0; --panel:#F6F5F2;
  --field:#FFFFFF; --field-line:#CFCEC9;
}

*{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;}
body{
  margin:0;background:var(--bg);color:var(--fg);
  font-family:'Montserrat',system-ui,-apple-system,sans-serif;font-weight:500;
  line-height:1.6;font-size:1.0625rem;-webkit-font-smoothing:antialiased;
}
a{color:inherit;text-decoration:none;}
img{max-width:100%;}
.wrap{width:100%;max-width:1160px;margin:0 auto;padding:0 clamp(1.25rem,5vw,3rem);}
.eyebrow{font-size:.7rem;font-weight:600;letter-spacing:.32em;text-transform:uppercase;color:var(--faint);}
.rule{border:0;border-top:1px solid var(--hair);margin:0;}
.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;}

/* ===== nav ===== */
.nav{position:sticky;top:0;z-index:50;background:var(--nav);color:var(--on-nav);}
.nav-inner{display:flex;align-items:center;justify-content:space-between;height:74px;gap:1.5rem;}
.brand{display:flex;align-items:center;gap:.72rem;}
.brand img{height:46px;width:auto;filter:invert(1);display:block;}
.brand .wm{font-family:'Cinzel',serif;font-weight:600;font-size:1.18rem;letter-spacing:.2em;color:var(--on-nav);white-space:nowrap;}
.brand .wm span{opacity:.62;}
.nav-links{display:flex;align-items:center;gap:2.1rem;}
.nav-links a.link{font-size:.8rem;letter-spacing:.05em;color:#B9BBBF;transition:color .2s;}
.nav-links a.link:hover,.nav-links a.link[aria-current]{color:#fff;}
.btn{
  display:inline-flex;align-items:center;justify-content:center;font-family:'Montserrat';font-weight:500;
  font-size:.76rem;letter-spacing:.12em;text-transform:uppercase;cursor:pointer;border-radius:2px;
  padding:.7rem 1.3rem;transition:background .2s,color .2s,border-color .2s;border:1px solid transparent;
}
.btn-nav{border-color:rgba(255,255,255,.5);background:transparent;color:#fff;}
.btn-nav:hover{background:#fff;color:var(--nav);border-color:#fff;}
.btn-dark{border-color:var(--fg);background:var(--fg);color:#fff;}
.btn-dark:hover{background:#fff;color:var(--fg);}
/* mobile menu toggle (checkbox hack) — hidden on desktop */
.nav-cb{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none;}
.nav-burger{display:none;flex-direction:column;justify-content:center;gap:5px;width:42px;height:42px;cursor:pointer;margin:-6px;padding:6px;}
.nav-burger span{display:block;height:2px;width:22px;background:var(--on-nav);border-radius:2px;transition:transform .25s ease,opacity .2s ease;}

/* ===== hero (home) ===== */
.hero{position:relative;min-height:clamp(440px,76vh,720px);display:flex;align-items:flex-end;overflow:hidden;background:#0B0C0E;}
.hero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:grayscale(1) contrast(1.05);}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(11,12,14,.28) 0%,rgba(11,12,14,0) 34%,rgba(11,12,14,.72) 100%);}
.hero .wrap{position:relative;z-index:2;padding-bottom:clamp(2.4rem,6vw,4.2rem);padding-top:3rem;}
.hero .eyebrow{color:rgba(255,255,255,.72);}
.hero h1{font-family:'Cinzel',serif;font-weight:600;color:#fff;font-size:clamp(2rem,5.2vw,4rem);line-height:1.12;letter-spacing:.01em;margin:.9rem 0 0;max-width:none;}

/* ===== compact page hero (approach) ===== */
.phero{position:relative;min-height:clamp(300px,44vh,440px);display:flex;align-items:flex-end;overflow:hidden;background:#0B0C0E;}
.phero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 60%;filter:grayscale(1) contrast(1.05);}
.phero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(11,12,14,.35),rgba(11,12,14,0) 40%,rgba(11,12,14,.7));}
.phero .wrap{position:relative;z-index:2;padding-bottom:clamp(2rem,4vw,3rem);padding-top:3rem;}
.phero .eyebrow{color:rgba(255,255,255,.72);}
.phero h1{font-family:'Cinzel',serif;font-weight:600;color:#fff;font-size:clamp(2rem,5vw,3.4rem);line-height:1.1;letter-spacing:.01em;margin:.8rem 0 0;text-wrap:balance;}

/* ===== plain page header (about) ===== */
.pagehead{padding:clamp(3rem,7vw,5.5rem) 0 clamp(1.5rem,3vw,2.5rem);}
.pagehead h1{font-family:'Cinzel',serif;font-weight:600;font-size:clamp(2.1rem,5vw,3.4rem);line-height:1.1;letter-spacing:.01em;margin:.8rem 0 0;text-wrap:balance;max-width:16ch;}
.pagehead .lede{max-width:56ch;margin:1.4rem 0 0;color:var(--muted);font-size:clamp(1.02rem,1.5vw,1.18rem);line-height:1.5;}

/* ===== intro line (approach) ===== */
.intro{padding:clamp(2.4rem,5vw,3.4rem) 0 0;}
.intro p{max-width:60ch;margin:0;font-size:clamp(1.05rem,1.6vw,1.22rem);color:var(--fg);line-height:1.5;text-wrap:pretty;}
.intro .lead{font-family:'Cinzel',serif;font-weight:600;}

/* ===== section + principles (home) ===== */
.section{padding:clamp(3.4rem,6vw,5rem) 0;}
.section .eyebrow{margin-bottom:.9rem;}
.section h2{font-family:'Cinzel',serif;font-weight:600;font-size:clamp(1.5rem,3vw,2.1rem);margin:0;letter-spacing:.01em;text-wrap:balance;max-width:20ch;}
.principles{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(1.5rem,3vw,3rem);margin-top:2.8rem;}
.principle{border-top:1px solid var(--fg);padding-top:1.1rem;}
.principle h3{font-family:'Cinzel',serif;font-weight:600;font-size:1.15rem;margin:0 0 .5rem;letter-spacing:.01em;}
.principle p{margin:0;color:var(--muted);font-size:.92rem;}

/* ===== beliefs (approach) ===== */
.beliefs{padding:clamp(2.4rem,5vw,3.6rem) 0 clamp(1rem,3vw,2rem);}
.bgroup{display:grid;grid-template-columns:minmax(0,240px) minmax(0,1fr);gap:clamp(1.25rem,5vw,4rem);}
.bgroup + .bgroup{margin-top:clamp(2.2rem,4vw,3.4rem);padding-top:clamp(2.2rem,4vw,3.4rem);border-top:1px solid var(--hair);}
.ghead h2{font-family:'Cinzel',serif;font-weight:600;font-size:clamp(1.35rem,2.3vw,1.85rem);letter-spacing:.01em;margin:0;position:sticky;top:98px;text-wrap:balance;}
.blist{list-style:none;margin:0;padding:0;}
.blist li{padding:1.15rem 0;border-top:1px solid var(--hair);max-width:66ch;font-size:1.02rem;line-height:1.55;color:#26282C;}
.blist li:first-child{border-top:0;padding-top:0;}

/* ===== team (about) ===== */
.team{padding:clamp(2.4rem,5vw,3.6rem) 0 clamp(2rem,4vw,3rem);}
.member{display:grid;grid-template-columns:minmax(0,320px) minmax(0,1fr);gap:clamp(1.5rem,4vw,3.6rem);align-items:start;}
.member + .member{margin-top:clamp(2.4rem,5vw,4rem);padding-top:clamp(2.4rem,5vw,4rem);border-top:1px solid var(--hair);}
.member:nth-child(even){grid-template-columns:minmax(0,1fr) minmax(0,320px);}
.member:nth-child(even) .portrait{grid-column:2;grid-row:1;}
.member:nth-child(even) .bio{grid-column:1;grid-row:1;}
.portrait{aspect-ratio:1;overflow:hidden;border-radius:2px;background:var(--panel);}
.portrait img{width:100%;height:100%;object-fit:cover;display:block;filter:grayscale(1) contrast(1.04);}
.bio h2{font-family:'Cinzel',serif;font-weight:600;font-size:clamp(1.4rem,2.4vw,1.9rem);margin:0;letter-spacing:.01em;}
.bio .role{margin:.5rem 0 1.1rem;font-size:.72rem;font-weight:600;letter-spacing:.24em;text-transform:uppercase;color:var(--faint);}
.bio p{margin:0;color:#26282C;max-width:64ch;line-height:1.6;}
.bio .edu{margin-top:1.2rem;font-size:.85rem;color:var(--muted);}
.bio .edu span{display:block;font-size:.66rem;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--faint);margin-bottom:.25rem;}

/* ===== signup band (home/approach/about) ===== */
.signup-band{background:var(--panel);border-top:1px solid var(--hair);}
.signup{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1.6rem;padding-top:clamp(2.2rem,4vw,3rem);padding-bottom:clamp(2.2rem,4vw,3rem);}
.signup .intro2 .eyebrow{margin-bottom:.5rem;}
.signup .intro2 h2{font-family:'Cinzel',serif;font-weight:600;font-size:clamp(1.35rem,2.4vw,1.8rem);margin:0;letter-spacing:.01em;}
.form-inline{min-width:min(420px,100%);}
.form-inline .row{display:flex;gap:.6rem;}
.form-inline input[type=email]{flex:1;min-width:0;background:var(--field);color:var(--fg);border:1px solid var(--field-line);border-radius:2px;padding:.92rem 1rem;font:inherit;font-size:.95rem;}
.form-inline input[type=email]::placeholder{color:var(--faint);}
.form-inline input[type=email]:focus{outline:none;border-color:var(--fg);}
.form-inline .btn{padding:.92rem 1.5rem;white-space:nowrap;}
.accredited-inline{display:flex;gap:.55rem;align-items:flex-start;margin-top:.85rem;cursor:pointer;max-width:440px;}
.accredited-inline input{margin-top:.15rem;width:15px;height:15px;flex:none;accent-color:#0B0C0E;cursor:pointer;}
.accredited-inline span{font-size:.76rem;color:var(--muted);line-height:1.4;}
.accredited-inline.error input{outline:2px solid #0B0C0E;outline-offset:2px;}
.accredited-inline.error span{color:var(--fg);}

/* ===== signup split (sign-up page) ===== */
.split{display:grid;grid-template-columns:1.05fr .95fr;min-height:calc(100vh - 74px);}
.promo{position:relative;overflow:hidden;background:#0B0C0E;display:flex;align-items:flex-end;}
.promo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:grayscale(1) contrast(1.05);}
.promo::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(11,12,14,.35),rgba(11,12,14,.1) 40%,rgba(11,12,14,.82));}
.promo .inner{position:relative;z-index:2;padding:clamp(2rem,4vw,3.4rem);color:#fff;max-width:34rem;}
.promo .eyebrow{color:rgba(255,255,255,.72);}
.promo h1{font-family:'Cinzel',serif;font-weight:600;font-size:clamp(2rem,3.4vw,3rem);line-height:1.12;margin:.8rem 0 0;text-wrap:balance;}
.promo p{color:rgba(255,255,255,.82);margin:1.1rem 0 0;font-size:1rem;max-width:32ch;}
.formpanel{display:grid;place-items:center;padding:clamp(2rem,5vw,4rem) clamp(1.25rem,4vw,3rem);background:var(--bg);}
.card{width:100%;max-width:400px;}
.card h2{font-family:'Cinzel',serif;font-weight:600;font-size:clamp(1.5rem,2.6vw,2rem);margin:0;letter-spacing:.01em;}
.card .sub{color:var(--muted);margin:.6rem 0 1.9rem;font-size:.95rem;}
.field{margin-bottom:1rem;}
.field label{display:block;font-size:.68rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--faint);margin-bottom:.45rem;}
.field input{width:100%;background:var(--field);color:var(--fg);border:1px solid var(--field-line);border-radius:2px;padding:.85rem .95rem;font:inherit;font-size:.95rem;transition:border-color .2s;}
.field input::placeholder{color:var(--faint);}
.field input:focus{outline:none;border-color:var(--fg);}
/* per-field validation: the offending input is outlined and named, so it is obvious
   which of First/Last/Email is missing rather than one generic message below the form. */
.field-msg{display:none;margin:.4rem 0 0;font-size:.78rem;color:#9B1C1C;}
.field.error label{color:#9B1C1C;}
.field.error input{border-color:#9B1C1C;box-shadow:0 0 0 2px rgba(155,28,28,.16);}
.field.error input:focus{border-color:#9B1C1C;}
.field.error .field-msg{display:block;}
.accredited{display:flex;gap:.65rem;align-items:flex-start;margin:.1rem 0 1.3rem;cursor:pointer;}
.accredited input{margin-top:.2rem;width:16px;height:16px;flex:none;accent-color:#0B0C0E;cursor:pointer;}
.accredited span{font-size:.82rem;color:var(--muted);line-height:1.45;}
.accredited.error span{color:#0B0C0E;}
.accredited.error input{outline:2px solid #0B0C0E;outline-offset:2px;}
.cf-turnstile{margin:.3rem 0 1.3rem;min-height:65px;}
.cf-turnstile[data-size="invisible"]{min-height:0;margin:0;}
.submit{width:100%;background:var(--fg);color:#fff;border:1px solid var(--fg);border-radius:2px;padding:.95rem;font-family:'Montserrat';font-weight:500;font-size:.8rem;letter-spacing:.12em;text-transform:uppercase;cursor:pointer;transition:background .2s,color .2s;}
.submit:hover{background:#fff;color:var(--fg);}
.submit:disabled{opacity:.5;cursor:not-allowed;}
.fine{margin:1.1rem 0 0;font-size:.78rem;color:var(--faint);line-height:1.5;}
.form-error{margin:.9rem 0 0;font-size:.85rem;color:#9B1C1C;display:none;}
.form-error.show{display:block;}

/* confirmation state (shared) */
.confirm{display:none;}
.confirm.center{text-align:center;padding:.5rem 0;}
.confirm .mark{width:54px;height:54px;border:1.5px solid var(--fg);border-radius:50%;display:grid;place-items:center;margin:0 auto 1.2rem;}
.confirm .mark svg{width:24px;height:24px;}
.confirm h2{margin-bottom:.6rem;}
.confirm p{color:var(--muted);font-size:.95rem;margin:0 auto;max-width:40ch;}
.confirm-box{padding:1.15rem 1.35rem;border:1px solid var(--hair);border-radius:2px;background:#fff;}
.confirm-box strong{font-family:'Cinzel',serif;font-weight:600;display:block;margin-bottom:.25rem;}
.confirm-box span{color:var(--muted);font-size:.9rem;}
/* on success the whole form block goes away — heading, sub-line and form — leaving
   only the confirmation message. */
.is-done .form-body{display:none;}
.is-done .confirm{display:block;}

/* ===== footer ===== */
.footer{background:var(--nav);color:var(--on-nav);}
.foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1.25rem;padding:2.4rem 0 1rem;}
.foot .brand img{height:30px;}
.foot nav{display:flex;flex-wrap:wrap;gap:1.6rem;}
.foot nav a{font-size:.8rem;color:#B9BBBF;}
.foot nav a:hover{color:#fff;}
/* contact block sits between the footer nav row and the legal line */
.foot-contact{padding:1.3rem 0 1.5rem;border-top:1px solid rgba(255,255,255,.12);}
.foot-contact .chead{margin:0 0 .4rem;font-size:.68rem;font-weight:600;letter-spacing:.24em;text-transform:uppercase;color:#75787D;}
.foot-contact a{font-size:.92rem;color:#B9BBBF;transition:color .2s;}
.foot-contact a:hover{color:#fff;}
/* margin:0 is load-bearing — a <p>'s default bottom margin collapses out through the
   footer's bottom edge and shows as a white strip under the black footer. */
.legal{margin:0;color:#75787D;font-size:.7rem;letter-spacing:.02em;padding:0 0 2.2rem;max-width:70ch;}

/* ===== responsive ===== */
@media (max-width:820px){
  .split{grid-template-columns:1fr;min-height:0;}
  .promo{min-height:300px;}
}
@media (max-width:760px){
  /* mobile nav: hamburger reveals a dropdown panel */
  .nav-inner{position:relative;}
  .nav-burger{display:flex;}
  .nav-links{
    position:absolute;top:100%;left:0;right:0;flex-direction:column;align-items:stretch;gap:0;
    background:var(--nav);padding:0 clamp(1.25rem,5vw,3rem);
    max-height:0;overflow:hidden;transition:max-height .3s ease;
  }
  .nav-cb:checked ~ .nav-links{max-height:70vh;border-top:1px solid rgba(255,255,255,.12);padding-bottom:.6rem;}
  .nav-links a.link{padding:1.05rem 0;font-size:.95rem;color:#EDEDEA;border-bottom:1px solid rgba(255,255,255,.08);}
  .nav-links .btn{width:100%;margin-top:1rem;}
  .nav-cb:checked ~ .nav-burger span:nth-child(1){transform:translateY(7px) rotate(45deg);}
  .nav-cb:checked ~ .nav-burger span:nth-child(2){opacity:0;}
  .nav-cb:checked ~ .nav-burger span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}

  .principles{grid-template-columns:1fr;gap:1.8rem;}
  .bgroup{grid-template-columns:1fr;gap:.5rem;}
  .ghead h2{position:static;}
  .member,.member:nth-child(even){grid-template-columns:1fr;gap:1.1rem;}
  .member:nth-child(even) .portrait,.member:nth-child(even) .bio{grid-column:1;grid-row:auto;}
  .portrait{max-width:300px;}
  .signup{flex-direction:column;align-items:stretch;}
  .form-inline{min-width:0;}
  .form-inline .row{flex-direction:column;}
  .form-inline .btn{width:100%;}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important;}}
:focus-visible{outline:2px solid currentColor;outline-offset:3px;}
