/* Fundacja Dyplomacji i Biznesu — site styles
   Palette: deep navy ground, engraved gold. Gold is a hairline, never a field. */

:root{
  --navy-900:#071A33;
  --navy-700:#0E2C52;
  --gold-400:#C9A24E;   /* kit gold #B89040, lifted for legibility on navy */
  --gold-600:#B89040;   /* brand kit gold, as supplied */
  --gold-ink:#7C5F1E;   /* kit gold darkened to reach 4.5:1 on white */
  --paper:#EEF1F5;
  --ink:#122033;
  --muted:#41506A;
  --rule:rgba(18,32,51,.16);
  --rule-gold:rgba(201,162,78,.45);
  --measure:66ch;
  --wrap:1120px;
}

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

body{
  margin:0;background:#fff;color:var(--ink);
  font-family:"IBM Plex Sans",system-ui,-apple-system,"Segoe UI",sans-serif;
  font-size:17px;line-height:1.62;
}
h1,h2,h3,h4.display{font-family:"Bodoni Moda",Georgia,"Times New Roman",serif;font-weight:500;letter-spacing:-.01em;margin:0;line-height:1.16}
p{margin:0 0 1.05em}
a{color:inherit}
img{max-width:100%;height:auto}
hr{border:0;border-top:1px solid var(--rule);margin:0}
:focus-visible{outline:2px solid var(--gold-400);outline-offset:3px}

.wrap{max-width:var(--wrap);margin:0 auto;padding:0 28px}
.narrow{max-width:var(--measure)}
.skip{position:absolute;left:-9999px;top:0;background:var(--gold-400);color:var(--navy-900);padding:10px 16px;z-index:99}
.skip:focus{left:8px;top:8px}

.label{font-size:13px;letter-spacing:.06em;font-variant:small-caps;color:var(--gold-ink);font-weight:600;display:block}
.on-dark .label{color:var(--gold-400)}

/* ── masthead ───────────────────────────────────────────── */
.masthead{background:var(--navy-900);color:#fff;position:relative;z-index:20}
.masthead .wrap{display:flex;align-items:center;gap:26px;min-height:72px}
.mark{display:flex;align-items:center;gap:11px;font-family:"Bodoni Moda",serif;font-size:18px;text-decoration:none;padding:14px 0}
.mark svg{width:26px;height:26px;flex:none}
/* A supplied logo is capped by height so any aspect ratio fits the bar. */
.marklogo{height:34px;width:auto;max-width:230px;flex:none;display:block;color:var(--gold-400)}
.mark-abbr{display:none;letter-spacing:.06em}
.nav{margin-left:auto;display:flex;gap:24px;align-items:center;font-size:15px}
.nav a{text-decoration:none;opacity:.86;padding-bottom:2px;border-bottom:1px solid transparent}
.nav a:hover,.nav a:focus-visible{opacity:1;border-bottom-color:var(--gold-400)}
.nav a[aria-current="page"]{opacity:1;border-bottom-color:var(--gold-400)}
.langs{display:flex;border:1px solid rgba(255,255,255,.3)}
.langs a{font-size:13px;font-weight:600;letter-spacing:.04em;padding:5px 11px;text-decoration:none;color:#fff}
.langs a[aria-current]{background:var(--gold-400);color:var(--navy-900)}
.burger{display:none;margin-left:auto;background:none;border:1px solid rgba(255,255,255,.3);color:#fff;font:inherit;font-size:14px;padding:7px 13px;cursor:pointer}

/* ── hero ───────────────────────────────────────────────── */
.hero{background:var(--navy-900);color:#fff;padding-bottom:92px}
.hero.compact{padding-bottom:56px}
.hero.compact + .sec{padding-top:46px}
.frame{border:1px solid var(--rule-gold);padding:74px 7% 66px;text-align:center;position:relative}
.frame::before,.frame::after{content:"";position:absolute;width:9px;height:9px;border:1px solid var(--gold-400)}
.frame::before{top:-5px;left:-5px}
.frame::after{bottom:-5px;right:-5px}
.hero h1{font-size:clamp(32px,5.2vw,60px);max-width:20ch;margin:0 auto}
.hero.compact h1{font-size:clamp(29px,4.2vw,46px);max-width:24ch}
.hero .standfirst{margin:28px auto 0;max-width:56ch;font-size:18px;color:rgba(255,255,255,.78)}
.hero .kicker{color:var(--gold-400);font-size:13px;letter-spacing:.08em;font-variant:small-caps;font-weight:600;display:block;margin-bottom:18px}
.rule-gold{width:54px;height:1px;background:var(--gold-400);margin:32px auto 0}
.cta-row{margin-top:36px;display:flex;gap:13px;justify-content:center;flex-wrap:wrap}

.btn{display:inline-block;text-decoration:none;font-size:15px;font-weight:500;padding:13px 26px;border-radius:2px;border:1px solid var(--gold-400);background:none;cursor:pointer;font-family:inherit}
.btn-solid{background:var(--gold-400);color:var(--navy-900)}
.btn-ghost{color:#fff}
.btn-dark{border-color:var(--navy-700);background:var(--navy-700);color:#fff}
.btn-line{color:var(--gold-ink);border-color:var(--gold-600)}
.btn:hover{background:#fff;border-color:#fff;color:var(--navy-900)}
.btn-line:hover,.btn-dark:hover{background:var(--navy-900);border-color:var(--navy-900);color:#fff}

/* ── sections ───────────────────────────────────────────── */
.sec{padding:82px 0}
.sec-tight{padding:56px 0}
.sec-paper{background:var(--paper)}
.sec-navy{background:var(--navy-900);color:#fff}
.sec-navy p{color:rgba(255,255,255,.8)}
.sec-head{max-width:var(--measure);margin-bottom:42px}
.sec-head h2{font-size:clamp(26px,3.3vw,41px);margin-top:9px}
.sec-head p{margin:15px 0 0;color:var(--muted)}
.sec-navy .sec-head p{color:rgba(255,255,255,.76)}

.prose{max-width:var(--measure)}
.prose h3{font-size:26px;margin:34px 0 12px}
.prose ul{padding-left:20px;margin:0 0 1.1em}
.prose li{margin-bottom:9px}
.prose ol{padding-left:22px}
.lead{font-size:20px;line-height:1.55;color:var(--navy-700)}

/* ── the register ───────────────────────────────────────── */
.register{border-top:1px solid var(--rule)}
.entry{display:grid;grid-template-columns:250px 1fr;gap:34px;padding:26px 0;border-bottom:1px solid var(--rule);align-items:start;text-decoration:none}
.entry:hover .entry-title,.entry:focus-visible .entry-title{color:var(--gold-ink)}
.meta{font-size:14px;line-height:1.5;color:var(--muted)}
.meta .jur{font-weight:600;color:var(--navy-700);display:block;margin-bottom:3px}
.stage{display:inline-block;margin-top:8px;font-size:12.5px;letter-spacing:.04em;font-variant:small-caps;color:var(--gold-ink);border:1px solid var(--rule-gold);padding:1px 8px}
.entry-title{font-family:"Bodoni Moda",serif;font-size:25px;line-height:1.24;margin:0}
.entry-desc{margin:9px 0 0;color:var(--muted);max-width:58ch;font-size:16px}
.entry.flagship{background:linear-gradient(90deg,rgba(216,174,82,.10),transparent 62%)}

/* record strip on a detail page */
.record{display:flex;flex-wrap:wrap;gap:34px;padding:20px 0;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);margin-bottom:42px;font-size:15px}
.record div{min-width:150px}
.record dt{font-size:12.5px;letter-spacing:.05em;font-variant:small-caps;color:var(--gold-ink);font-weight:600;margin-bottom:2px}
.record dd{margin:0;color:var(--navy-700)}

/* ── people ─────────────────────────────────────────────── */
.people{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1px;background:var(--rule);border:1px solid var(--rule)}
.person{background:#fff;padding:26px 24px 28px}
/* Portrait: fixed 5:6 frame so mixed source sizes still line up in a row.
   object-position favours the upper part of the frame, where faces sit. */
.portrait{display:block;width:100%;max-width:220px;aspect-ratio:5/6;height:auto;
  object-fit:cover;object-position:50% 22%;margin:0 0 18px;background:var(--paper);
  border-bottom:2px solid var(--gold-600)}
.sec-paper .person{background:var(--paper)}
.person h3{font-size:21px;margin-bottom:3px}
.person .role{font-size:14px;color:var(--gold-ink);font-weight:600}
.person p{font-size:15px;color:var(--muted);margin:12px 0 0}

/* partner logos */
.plogo{max-height:46px;width:auto;margin-bottom:8px;display:block}

/* event image */
.eventimg{width:100%;height:auto;display:block;margin:0 0 30px;border-bottom:2px solid var(--gold-600)}

/* ── generic lists ──────────────────────────────────────── */
.stack{border-top:1px solid var(--rule)}
.stack .row{display:grid;grid-template-columns:180px 1fr;gap:30px;padding:22px 0;border-bottom:1px solid var(--rule);text-decoration:none;align-items:baseline}
.stack .row h3{font-size:22px}
.stack .row p{margin:7px 0 0;color:var(--muted);font-size:16px;max-width:60ch}
.stack .when{font-size:14px;color:var(--gold-ink);font-weight:600}

.cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:34px}
.cols h3{font-size:20px;margin-bottom:7px}
.cols p{font-size:16px;color:var(--muted);margin:0}
.sec-navy .cols p{color:rgba(255,255,255,.74)}
.cols .num{font-family:"Bodoni Moda",serif;font-size:15px;color:var(--gold-600);display:block;margin-bottom:6px}

.tracks{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1px;background:var(--rule);border:1px solid var(--rule)}
.track{background:#fff;padding:22px 22px 24px}
.sec-paper .track{background:var(--paper)}
.track h3{font-size:19px;margin-bottom:5px}
.track p{margin:0;font-size:15.5px;color:var(--muted)}

.note{border-left:2px solid var(--gold-600);padding:2px 0 2px 18px;color:var(--muted);font-size:15.5px;max-width:var(--measure);margin:30px 0}

/* ── forms ──────────────────────────────────────────────── */
.form{max-width:620px}
.field{margin-bottom:20px}
.field label{display:block;font-size:14.5px;font-weight:500;margin-bottom:6px}
.field input,.field textarea,.field select{
  width:100%;font:inherit;font-size:16px;padding:11px 13px;border:1px solid var(--rule);
  border-radius:2px;background:#fff;color:var(--ink);
}
.field textarea{min-height:150px;resize:vertical}
.field input:focus,.field textarea:focus{border-color:var(--gold-600);outline:none;box-shadow:0 0 0 3px rgba(201,162,78,.24)}
.check{display:flex;gap:11px;align-items:flex-start;font-size:14.5px;color:var(--muted);margin-bottom:22px}
.check input{margin-top:4px;flex:none;width:16px;height:16px}
.hp{position:absolute;left:-9999px}
.msg{padding:14px 18px;border-radius:2px;margin-bottom:26px;font-size:15.5px}
.msg-ok{background:#EAF3EC;border-left:3px solid #2C6E49}
.msg-err{background:#FBEEEE;border-left:3px solid #9B2C2C}

/* ── footer ─────────────────────────────────────────────── */
footer{background:var(--navy-900);color:rgba(255,255,255,.74);padding:64px 0 38px;font-size:14.5px;margin-top:0}
.foot-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:36px}
footer h4{font-size:13px;font-variant:small-caps;letter-spacing:.06em;color:var(--gold-400);margin:0 0 14px;font-weight:600;font-family:inherit}
footer ul{list-style:none;margin:0;padding:0}
footer li{margin-bottom:8px}
footer a{text-decoration:none;border-bottom:1px solid transparent}
footer a:hover{border-bottom-color:var(--gold-400)}
.legal{margin-top:44px;padding-top:22px;border-top:1px solid rgba(255,255,255,.16);font-size:13px;color:rgba(255,255,255,.56);line-height:1.7}

/* ── cookie bar ─────────────────────────────────────────── */
.cookiebar{position:fixed;left:0;right:0;bottom:0;background:var(--navy-700);color:#fff;padding:16px 0;z-index:50;font-size:14.5px;box-shadow:0 -6px 22px rgba(7,26,51,.25)}
.cookiebar .wrap{display:flex;gap:20px;align-items:center;flex-wrap:wrap}
.cookiebar p{margin:0;flex:1;min-width:240px;color:rgba(255,255,255,.86)}
.cookiebar .btn{padding:9px 18px;font-size:14px}

/* ── responsive ─────────────────────────────────────────── */
@media (max-width:900px){
  .foot-grid{grid-template-columns:1fr 1fr}
}
@media (max-width:600px){
  .marklogo{height:30px;max-width:150px}
  .mark-full{display:none}
  /* With a real logo present the abbreviation is redundant; without one
     (drawn seal fallback) it is the only wordmark, so it stays. */
  .marklogo ~ .mark-abbr{display:none}
  .mark-abbr{display:inline}
  .mark{font-size:20px}
}
@media (max-width:820px){
  .burger{display:block}
  .nav{display:none;position:absolute;top:100%;left:0;right:0;background:var(--navy-700);flex-direction:column;align-items:flex-start;gap:0;padding:8px 28px 18px}
  .nav.open{display:flex}
  .nav a{padding:11px 0;width:100%;border-bottom:1px solid rgba(255,255,255,.12)}
  .langs{margin-left:12px}
  .entry,.stack .row{grid-template-columns:1fr;gap:11px}
  .frame{padding:50px 20px 44px}
  .sec{padding:58px 0}
  .foot-grid{grid-template-columns:1fr}
}
