/* =========================================================
   Danube Capital R&A Zrt. — design tokens
   Navy + gold pulled from the brand mark; paper background;
   serif display / sans body / mono for data & wayfinding.
   ========================================================= */

:root{
  --navy:        #1A213E;
  --navy-soft:   #232C52;
  --navy-tint:   #2E3868;
  --gold:        #A88454;
  --gold-light:  #C9A876;
  --gold-tint:   #EFE6D6;
  --paper:       #F5F2EA;
  --paper-alt:   #ECE6D8;
  --white:       #FFFDF9;
  --ink:         #1E2233;
  --slate:       #5B6472;
  --line:        rgba(26,33,62,.14);
  --line-gold:   rgba(168,132,84,.35);

  --serif: "Source Serif 4", Georgia, serif;
  --sans:  "Inter", -apple-system, "Segoe UI", sans-serif;
  --mono:  "IBM Plex Mono", ui-monospace, monospace;

  --maxw: 1160px;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;overflow-x:hidden;}
body{
  margin:0;
  overflow-x:hidden;
  background:var(--paper);
  color:var(--ink);
  font-family:var(--sans);
  font-size:16px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
h1,h2,h3,h4{
  font-family:var(--serif);
  font-weight:600;
  color:var(--navy);
  margin:0 0 .5em;
  letter-spacing:-.01em;
}
p{margin:0 0 1em;}
ul{margin:0;padding:0;}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 32px;}

@media (max-width:640px){
  .wrap{padding:0 20px;}
}

:focus-visible{outline:2px solid var(--gold);outline-offset:3px;}
@media (prefers-reduced-motion: reduce){
  *{animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important; scroll-behavior:auto !important;}
}

/* ---------- eyebrow / wayfinding ---------- */
.eyebrow{
  font-family:var(--mono);
  font-size:12.5px;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--gold);
  display:flex;
  align-items:center;
  gap:10px;
  margin-bottom:14px;
}
.eyebrow .n{
  color:var(--navy);
  background:var(--gold-tint);
  border:1px solid var(--line-gold);
  border-radius:3px;
  padding:2px 7px;
  font-weight:600;
}
.eyebrow::after{
  content:"";
  flex:1;
  height:1px;
  background:var(--line-gold);
}

/* ---------- header ---------- */
header.site{
  position:sticky;top:0;z-index:50;
  background:rgba(245,242,234,.92);
  backdrop-filter:blur(8px);
  border-bottom:1px solid var(--line);
}
.nav-row{
  display:flex;align-items:center;justify-content:space-between;
  height:76px;
}
.brand{display:flex;align-items:center;gap:12px;}
.brand img{height:30px;width:auto;}
nav.main{display:flex;align-items:center;gap:30px;}
nav.main a{
  font-size:14px;font-weight:500;color:var(--navy-soft);
  position:relative;padding:6px 0;
}
nav.main a:hover{color:var(--navy);}
nav.main a::after{
  content:"";position:absolute;left:0;right:0;bottom:0;height:1px;
  background:var(--gold);transform:scaleX(0);transform-origin:left;
  transition:transform .25s ease;
}
nav.main a:hover::after{transform:scaleX(1);}
.nav-cta{
  font-family:var(--mono);font-size:12.5px;letter-spacing:.06em;
  color:var(--white);background:var(--navy);
  padding:10px 18px;border-radius:2px;border:1px solid var(--navy);
  transition:background .2s ease, color .2s ease;
}
.nav-cta:hover{background:var(--gold);border-color:var(--gold);color:var(--navy);}
.menu-toggle{display:none;background:none;border:0;cursor:pointer;padding:8px;}
.menu-toggle span{display:block;width:22px;height:1.5px;background:var(--navy);margin:5px 0;}

@media (max-width:900px){
  nav.main{
    position:fixed;top:76px;left:0;right:0;height:calc(100vh - 76px);
    background:var(--paper);
    flex-direction:column;align-items:flex-start;
    padding:28px 24px;gap:22px;
    transform:translateX(100%);
    transition:transform .3s ease;
    overflow-y:auto;
  }
  nav.main.open{transform:translateX(0);}
  .menu-toggle{display:block;}
  .nav-cta{order:99;}
}

/* ---------- hero ---------- */
.hero{padding:64px 0 44px;}
.hero .eyebrow{margin-bottom:20px;}
.hero h1{
  font-size:clamp(21px,2.1vw,25px);
  font-weight:500;
  line-height:1.45;
  max-width:600px;
  color:var(--navy);
}
.hero h1 em{
  font-style:italic;color:var(--gold);
}
.hero .lede{
  max-width:560px;font-size:15px;line-height:1.65;color:var(--slate);margin-top:14px;
}
.hero .lede:first-of-type{margin-top:16px;}
.hero .cta-row{display:flex;gap:16px;margin-top:28px;flex-wrap:wrap;}
.btn{
  font-family:var(--mono);font-size:13px;letter-spacing:.05em;
  padding:13px 22px;border-radius:2px;display:inline-block;
  border:1px solid var(--navy);transition:all .2s ease;
}
.btn.primary{background:var(--navy);color:var(--white);}
.btn.primary:hover{background:var(--gold);border-color:var(--gold);color:var(--navy);}
.btn.ghost{background:transparent;color:var(--navy);}
.btn.ghost:hover{background:var(--navy);color:var(--white);}

/* ---------- framework triptych ---------- */
.triptych{
  display:grid;grid-template-columns:repeat(3,1fr);
  border:1px solid var(--line);border-radius:3px;overflow:hidden;
  margin-top:26px;background:var(--white);
}
.triptych .cell{
  padding:28px 26px;border-left:1px solid var(--line);
}
.triptych .cell:first-child{border-left:none;}
.triptych .cell h4{
  font-family:var(--mono);font-size:12.5px;letter-spacing:.1em;
  text-transform:uppercase;color:var(--gold);margin-bottom:12px;
  font-weight:600;
}
.triptych .cell p{font-size:14.5px;color:var(--slate);margin:0;}
@media (max-width:760px){
  .triptych{grid-template-columns:1fr;}
  .triptych .cell{border-left:none;border-top:1px solid var(--line);}
  .triptych .cell:first-child{border-top:none;}
}

/* ---------- generic section ---------- */
section{padding:56px 0;}
section.alt{background:var(--paper-alt);}
.section-head{max-width:680px;margin-bottom:32px;}
.section-head h2{font-size:clamp(21px,2.2vw,27px);font-weight:500;}
.section-head .lede{color:var(--slate);font-size:15px;}

/* ---------- promid strip ---------- */
.strip{
  border-top:1px solid var(--line);border-bottom:1px solid var(--line);
  padding:34px 0;
}
.strip .wrap{display:flex;align-items:center;gap:28px;justify-content:space-between;flex-wrap:wrap;}
.strip p{margin:0;font-size:15px;color:var(--navy-soft);max-width:760px;}

/* ---------- services grid ---------- */
.svc-grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:1px;
  background:var(--line);border:1px solid var(--line);
}
.svc-card{
  background:var(--white);padding:30px 28px;min-height:220px;
  display:flex;flex-direction:column;
}
.svc-card .num{font-family:var(--mono);color:var(--gold-light);font-size:13px;}
.svc-card h3{font-size:19px;margin:10px 0 10px;}
.svc-card p{font-size:14px;color:var(--slate);flex:1;}
.svc-card a.more{
  font-family:var(--mono);font-size:12px;letter-spacing:.06em;
  color:var(--navy);border-top:1px solid var(--line);padding-top:14px;margin-top:10px;
}
.svc-card a.more:hover{color:var(--gold);}
@media (max-width:900px){.svc-grid{grid-template-columns:repeat(2,1fr);}}
@media (max-width:640px){.svc-grid{grid-template-columns:1fr;}}

/* ---------- about ---------- */
.about-layout{display:grid;grid-template-columns:1.1fr .9fr;gap:56px;align-items:start;}
.about-layout .lede{font-size:16px;color:var(--navy-soft);font-family:var(--serif);font-weight:500;}
.about-layout p{color:var(--slate);font-size:15px;}
.about-facts{border-left:1px solid var(--line-gold);padding-left:28px;}
.about-facts dl{display:grid;grid-template-columns:auto 1fr;gap:10px 18px;}
.about-facts dt{font-family:var(--mono);font-size:12px;color:var(--gold);letter-spacing:.06em;text-transform:uppercase;padding-top:2px;}
.about-facts dd{margin:0;font-size:14.5px;color:var(--navy-soft);}
@media (max-width:820px){.about-layout{grid-template-columns:1fr;}.about-facts{border-left:none;border-top:1px solid var(--line-gold);padding-left:0;padding-top:24px;}}

/* ---------- service detail sections ---------- */
.svc-detail{border-top:1px solid var(--line);}
.svc-detail:last-of-type{border-bottom:1px solid var(--line);}
.svc-detail-inner{padding:56px 0;}
.svc-detail h2{font-size:clamp(19px,2vw,23px);font-weight:500;max-width:820px;}
.svc-detail .intro{font-size:15px;color:var(--slate);max-width:740px;margin-top:12px;}
.svc-detail .sub{
  font-family:var(--mono);font-size:12.5px;letter-spacing:.1em;
  text-transform:uppercase;color:var(--navy);margin:40px 0 16px;
}
.stack-list{display:flex;flex-direction:column;gap:0;border-top:1px solid var(--line);}
.stack-list li{
  list-style:none;padding:16px 0;border-bottom:1px solid var(--line);
  display:grid;grid-template-columns:170px 1fr;gap:20px;font-size:14.5px;color:var(--slate);
}
.stack-list li b{color:var(--navy);font-weight:600;}
.stack-list.plain li{grid-template-columns:1fr;}
.stack-list.plain li::before{content:"— ";color:var(--gold);}
@media (max-width:640px){.stack-list li{grid-template-columns:1fr;}}

.pkg-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--line);border:1px solid var(--line);margin-top:8px;}
.pkg-card{background:var(--white);padding:26px;}
.pkg-card .time{font-family:var(--mono);color:var(--gold);font-size:12.5px;letter-spacing:.05em;}
.pkg-card h4{font-size:16px;margin:8px 0;}
.pkg-card p{font-size:14px;color:var(--slate);margin:0;}
@media (max-width:640px){.pkg-grid{grid-template-columns:1fr;}}

.tag-cloud{display:flex;flex-wrap:wrap;gap:8px;margin-top:6px;}
.tag-cloud span{
  font-size:13px;color:var(--navy-soft);background:var(--paper-alt);
  border:1px solid var(--line);border-radius:2px;padding:6px 12px;
}

/* ---------- ESG benefit list ---------- */
.benefit-list{display:grid;grid-template-columns:1fr 1fr;gap:0 40px;margin-top:8px;}
.benefit-list li{
  list-style:none;padding:12px 0;border-bottom:1px solid var(--line);
  font-size:14.5px;color:var(--slate);
}
.benefit-list li::before{content:"↳ ";color:var(--gold);}
@media (max-width:760px){.benefit-list{grid-template-columns:1fr;}}

.esg-steps{counter-reset:esg;margin-top:10px;}
.esg-steps .step{
  display:grid;grid-template-columns:56px 1fr;gap:20px;
  padding:22px 0;border-top:1px solid var(--line);
}
.esg-steps .step:last-child{border-bottom:1px solid var(--line);}
.esg-steps .step .idx{
  font-family:var(--mono);font-size:20px;color:var(--gold-light);
}
.esg-steps .step h4{font-size:16px;margin:0 0 8px;}
.esg-steps .step p{font-size:14px;color:var(--slate);margin:0;}
.esg-steps .step p.small{font-size:12.5px;color:var(--slate);font-style:italic;margin-top:8px;}

/* ---------- contact ---------- */
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:56px;}
.contact-card{border:1px solid var(--line);background:var(--white);padding:30px;}
.contact-card h3{font-size:15px;font-family:var(--mono);text-transform:uppercase;letter-spacing:.08em;margin-bottom:18px;}
.contact-line{display:flex;justify-content:space-between;padding:12px 0;border-top:1px solid var(--line);font-size:14.5px;}
.contact-line:first-of-type{border-top:none;}
.contact-line span:first-child{color:var(--slate);}
.contact-line span:last-child{color:var(--navy);font-weight:500;}
.links-list li{list-style:none;padding:10px 0;border-top:1px solid var(--line);font-size:14.5px;}
.links-list li:first-child{border-top:none;}
.links-list a:hover{color:var(--gold);}
@media (max-width:760px){.contact-grid{grid-template-columns:1fr;}}

/* ---------- footer ---------- */
footer.site{background:var(--navy);color:var(--paper);padding:52px 0 28px;margin-top:20px;}
footer.site .foot-top{display:flex;justify-content:space-between;gap:40px;flex-wrap:wrap;padding-bottom:32px;border-bottom:1px solid rgba(255,255,255,.14);}
footer.site .brand-mark{font-family:var(--serif);font-size:20px;color:var(--white);}
footer.site .foot-cols{display:flex;gap:60px;flex-wrap:wrap;}
footer.site h5{font-family:var(--mono);font-size:11.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--gold-light);margin:0 0 14px;}
footer.site ul{display:flex;flex-direction:column;gap:9px;}
footer.site a{font-size:13.5px;color:rgba(255,253,249,.78);}
footer.site a:hover{color:var(--gold-light);}
.foot-bottom{display:flex;justify-content:space-between;padding-top:22px;font-size:12.5px;color:rgba(255,253,249,.5);flex-wrap:wrap;gap:10px;}

/* ---------- legal pages ---------- */
.legal-hero{padding:56px 0 20px;border-bottom:1px solid var(--line);}
.legal-hero .eyebrow{margin-bottom:14px;}
.legal-hero h1{font-size:clamp(26px,3.6vw,38px);}
.legal-hero .lede{color:var(--slate);max-width:640px;}
.legal-body{padding:48px 0 80px;}
.legal-layout{display:grid;grid-template-columns:240px 1fr;gap:56px;align-items:start;}
.legal-toc{position:sticky;top:100px;border-left:2px solid var(--line-gold);padding-left:18px;}
.legal-toc a{display:block;font-size:13px;color:var(--slate);padding:6px 0;}
.legal-toc a:hover{color:var(--navy);}
.legal-content h2{font-size:19px;margin-top:40px;padding-top:14px;border-top:1px solid var(--line);}
.legal-content h2:first-child{margin-top:0;border-top:none;padding-top:0;}
.legal-content h3{font-size:15.5px;color:var(--navy-soft);margin-top:22px;}
.legal-content p, .legal-content li{font-size:14.5px;color:var(--slate);}
.legal-content ul{padding-left:20px;margin-bottom:1em;}
.legal-content li{margin-bottom:6px;}
.legal-content table{width:100%;border-collapse:collapse;margin:18px 0;}
.legal-content td{padding:10px 14px;border:1px solid var(--line);font-size:14px;vertical-align:top;}
.legal-content td:first-child{font-family:var(--mono);font-size:12px;color:var(--gold);text-transform:uppercase;letter-spacing:.04em;width:220px;background:var(--paper-alt);}
@media (max-width:900px){.legal-layout{grid-template-columns:1fr;}.legal-toc{position:static;border-left:none;padding-left:0;border-top:1px solid var(--line-gold);padding-top:16px;display:flex;flex-wrap:wrap;gap:4px 18px;}}
