/* ============================================================
   CFA Auditors — Cyprus Tax Gateway
   Design system: typographic, restrained, hairline-ruled.
   ============================================================ */
:root{
  --ink:#0E1621;
  --body:#39424F;
  --muted:#6E7684;
  --faint:#9AA1AC;
  --line:#E2E6EC;
  --line-strong:#C9D0DA;
  --bg:#FFFFFF;
  --bg-alt:#F6F7F9;
  --navy:#0F2340;
  --navy-soft:#1B3860;
  --accent:#1C6E8C;
  --accent-soft:#E8F0F4;
  --gold:#8A6A2F;
  --max:1180px;
  --gutter:32px;
  --font:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,'Helvetica Neue',Arial,sans-serif;
  --mono:'IBM Plex Mono',ui-monospace,SFMono-Regular,Menlo,monospace;
}
*{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;}
body{
  margin:0;background:var(--bg);color:var(--body);
  font-family:var(--font);font-size:16px;line-height:1.62;
  font-feature-settings:"kern" 1,"liga" 1,"cv05" 1;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block;}
a{color:inherit;}
h1,h2,h3,h4{color:var(--ink);font-weight:600;margin:0;letter-spacing:-0.018em;line-height:1.16;}
p{margin:0;}
.container{width:100%;max-width:var(--max);margin:0 auto;padding:0 var(--gutter);}
@media (max-width:640px){:root{--gutter:20px;}}

/* ---------- type utilities ---------- */
.label{
  font-family:var(--mono);font-size:0.68rem;font-weight:500;
  letter-spacing:0.14em;text-transform:uppercase;color:var(--accent);
}
.label-muted{color:var(--faint);}
.lede{font-size:1.14rem;line-height:1.58;color:var(--body);}
.small{font-size:0.86rem;color:var(--muted);}
.num{font-family:var(--mono);font-variant-numeric:tabular-nums;}
.rule{height:1px;background:var(--line);border:0;margin:0;}

/* ---------- header ---------- */
header{
  position:sticky;top:0;z-index:60;background:rgba(255,255,255,0.94);
  backdrop-filter:saturate(180%) blur(10px);border-bottom:1px solid var(--line);
}
.nav{display:flex;align-items:center;gap:34px;height:74px;}
.brand{display:flex;align-items:center;flex:none;text-decoration:none;}
.brand img{height:30px;width:auto;}
.brand .logo-dark{display:none;}
nav.main{display:flex;gap:28px;margin-left:auto;}
nav.main a{
  text-decoration:none;color:var(--body);font-size:0.92rem;font-weight:500;
  padding:6px 0;border-bottom:2px solid transparent;white-space:nowrap;
}
nav.main a:hover{color:var(--ink);}
nav.main a.on{color:var(--ink);border-bottom-color:var(--accent);}
.nav-right{display:flex;align-items:center;gap:20px;flex:none;}
.langs{display:flex;gap:10px;font-family:var(--mono);font-size:0.72rem;letter-spacing:0.06em;}
.langs a{text-decoration:none;color:var(--faint);padding:3px 2px;}
.langs a:hover{color:var(--body);}
.langs a.on{color:var(--ink);border-bottom:1px solid var(--accent);}
.langs span{color:var(--line-strong);}
@media (max-width:1000px){
  .nav{height:auto;flex-wrap:wrap;padding-top:14px;gap:14px;}
  nav.main{order:3;width:100%;margin-left:0;gap:22px;overflow-x:auto;
           border-top:1px solid var(--line);padding-top:2px;-webkit-overflow-scrolling:touch;}
  nav.main::-webkit-scrollbar{display:none;}
  nav.main a{padding:12px 0;font-size:0.87rem;}
  .nav-right{margin-left:auto;}
  .brand img{height:26px;}
}
@media (max-width:430px){
  .nav{gap:10px;}
  .brand img{height:22px;}
  .langs{font-size:0.66rem;gap:7px;}
  .btn-sm{padding:7px 12px;font-size:0.8rem;}
  nav.main{gap:18px;}
}

/* ---------- buttons ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:9px;
  font-size:0.9rem;font-weight:600;text-decoration:none;border-radius:3px;
  padding:11px 20px;border:1px solid transparent;transition:background .15s,border-color .15s,color .15s;
  white-space:nowrap;
}
.btn-solid{background:var(--navy);color:#fff;}
.btn-solid:hover{background:var(--navy-soft);}
.btn-line{border-color:var(--line-strong);color:var(--ink);background:#fff;}
.btn-line:hover{border-color:var(--ink);}
.btn-sm{padding:8px 15px;font-size:0.84rem;}
.arrow{text-decoration:none;color:var(--accent);font-weight:600;font-size:0.9rem;display:inline-flex;gap:7px;align-items:center;}
.arrow::after{content:"→";transition:transform .15s;}
.arrow:hover::after{transform:translateX(3px);}

/* ---------- section scaffolding ---------- */
section{padding:88px 0;}
section.tight{padding:64px 0;}
section.alt{background:var(--bg-alt);border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
.sec-head{max-width:660px;margin-bottom:44px;}
.sec-head h2{font-size:clamp(1.55rem,2.5vw,2.05rem);margin-top:14px;}
.sec-head .dek{margin-top:14px;color:var(--muted);font-size:1.02rem;}
.sec-head.wide{max-width:820px;}

/* ---------- hero ---------- */
.hero{padding:82px 0 0;border-bottom:1px solid var(--line);}
.hero-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:64px;align-items:end;}
@media (max-width:920px){.hero-grid{grid-template-columns:1fr;gap:36px;}}
.hero h1{font-size:clamp(2.1rem,4.3vw,3.3rem);letter-spacing:-0.03em;line-height:1.07;margin-top:18px;}
.hero .lede{margin-top:22px;max-width:52ch;}
.hero-actions{display:flex;gap:12px;margin-top:30px;flex-wrap:wrap;}
.hero-aside{border-left:1px solid var(--line);padding-left:32px;}
@media (max-width:920px){.hero-aside{border-left:0;padding-left:0;border-top:1px solid var(--line);padding-top:26px;}}
.hero-aside dl{margin:0;display:grid;gap:18px;}
.hero-aside .k{font-family:var(--mono);font-size:0.66rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--faint);}
.hero-aside .v{font-size:0.95rem;color:var(--ink);margin-top:3px;}
.factbar{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);margin-top:64px;}
@media (max-width:820px){.factbar{grid-template-columns:repeat(2,1fr);}}
.fact{padding:26px 26px 30px;border-right:1px solid var(--line);}
.fact:last-child{border-right:0;}
@media (max-width:820px){.fact:nth-child(2n){border-right:0;} .fact{border-bottom:1px solid var(--line);}}
.fact .n{font-family:var(--mono);font-size:1.9rem;font-weight:500;color:var(--navy);letter-spacing:-0.02em;font-variant-numeric:tabular-nums;}
.fact .l{font-size:0.82rem;color:var(--muted);margin-top:7px;line-height:1.45;}
@media (max-width:820px){.fact{padding:20px 18px 22px;} .fact .n{font-size:1.5rem;}}

/* ---------- practice cards (the two audiences) ---------- */
.practice{display:grid;grid-template-columns:1fr 1fr;gap:0;border:1px solid var(--line);}
@media (max-width:860px){.practice{grid-template-columns:1fr;}}
.pr{padding:42px 40px 38px;border-right:1px solid var(--line);text-decoration:none;display:block;background:#fff;transition:background .18s;}
.pr:last-child{border-right:0;}
@media (max-width:860px){.pr{border-right:0;border-bottom:1px solid var(--line);} .pr:last-child{border-bottom:0;}}
@media (max-width:620px){.pr{padding:32px 24px 30px;}}
.pr:hover{background:var(--bg-alt);}
.pr .idx{font-family:var(--mono);font-size:0.72rem;color:var(--faint);letter-spacing:0.1em;}
.pr h3{font-size:1.4rem;margin-top:14px;letter-spacing:-0.02em;}
.pr p{margin-top:12px;color:var(--muted);font-size:0.96rem;max-width:42ch;}
.pr ul{margin:22px 0 0;padding:0;list-style:none;border-top:1px solid var(--line);}
.pr li{font-size:0.9rem;color:var(--body);padding:10px 0;border-bottom:1px solid var(--line);}
.pr .arrow{margin-top:22px;}

/* ---------- service list ---------- */
.services{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border-top:1px solid var(--line);}
@media (max-width:900px){.services{grid-template-columns:repeat(2,1fr);}}
@media (max-width:560px){.services{grid-template-columns:1fr;}}
.svc{padding:30px 28px 34px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);}
.svc:last-child{border-right:0;}
@media (max-width:900px){.svc:nth-child(2n){border-right:0;}}
@media (max-width:560px){.svc{border-right:0;}}
.svc .idx{font-family:var(--mono);font-size:0.7rem;color:var(--accent);letter-spacing:0.1em;}
.svc h3{font-size:1.02rem;margin-top:12px;}
.svc p{margin-top:9px;font-size:0.89rem;color:var(--muted);}

/* ---------- data table ---------- */
.tbl-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;}
table.data{width:100%;border-collapse:collapse;font-size:0.93rem;min-width:520px;}
table.data thead th{
  font-family:var(--mono);font-size:0.66rem;letter-spacing:0.12em;text-transform:uppercase;
  color:var(--faint);font-weight:500;text-align:left;padding:0 16px 12px;
  border-bottom:1px solid var(--ink);
}
table.data td{padding:15px 16px;border-bottom:1px solid var(--line);color:var(--body);vertical-align:top;}
table.data tbody tr:last-child td{border-bottom:1px solid var(--line-strong);}
table.data td:first-child,table.data th:first-child{padding-left:0;color:var(--ink);}
table.data td:last-child,table.data th:last-child{padding-right:0;text-align:right;font-family:var(--mono);font-variant-numeric:tabular-nums;color:var(--ink);font-weight:500;}
.tbl-note{margin-top:16px;font-size:0.84rem;color:var(--muted);max-width:74ch;}

/* ---------- publications ---------- */
.pubs{border-top:1px solid var(--line);}
.pub{display:grid;grid-template-columns:64px 1fr auto;gap:26px;align-items:start;padding:26px 0;border-bottom:1px solid var(--line);}
@media (max-width:700px){.pub{grid-template-columns:52px 1fr;gap:18px;} .pub .pub-act{grid-column:2;}}
.pub img{width:64px;height:auto;border:1px solid var(--line);}
@media (max-width:700px){.pub img{width:52px;}}
.pub h3{font-size:1.04rem;}
.pub .k{font-family:var(--mono);font-size:0.64rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--faint);margin-bottom:6px;}
.pub p{font-size:0.9rem;color:var(--muted);margin-top:8px;max-width:62ch;}
.pub .meta{font-family:var(--mono);font-size:0.72rem;color:var(--faint);margin-top:10px;}
.pub .pub-act{padding-top:4px;}

/* ---------- adviser band ---------- */
.adviser{display:grid;grid-template-columns:200px 1fr;gap:44px;align-items:start;}
@media (max-width:760px){.adviser{grid-template-columns:1fr;gap:26px;}}
.adviser img{width:200px;height:200px;object-fit:cover;border:1px solid var(--line);filter:grayscale(1);}
@media (max-width:760px){.adviser img{width:150px;height:150px;}}
.adviser h3{font-size:1.35rem;}
.adviser .role{color:var(--muted);font-size:0.94rem;margin-top:5px;}
.adviser p{margin-top:18px;max-width:64ch;}
.adviser .links{display:flex;gap:22px;margin-top:22px;flex-wrap:wrap;}
.adviser .links a{font-size:0.88rem;color:var(--accent);text-decoration:none;font-weight:500;border-bottom:1px solid var(--accent-soft);padding-bottom:2px;}
.adviser .links a:hover{border-bottom-color:var(--accent);}

/* ---------- CTA band ---------- */
.cta{background:var(--navy);color:#fff;}
.cta h2{color:#fff;font-size:clamp(1.5rem,2.4vw,2rem);}
.cta .label{color:#7FB3C6;}
.cta p{color:#B7C2D2;margin-top:14px;max-width:56ch;}
.cta-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:56px;align-items:start;}
@media (max-width:860px){.cta-grid{grid-template-columns:1fr;gap:34px;}}
.cta .btn-solid{background:#fff;color:var(--navy);}
.cta .btn-solid:hover{background:#E8EDF4;}
.cta .btn-line{background:transparent;border-color:rgba(255,255,255,0.32);color:#fff;}
.cta .btn-line:hover{border-color:#fff;}
.cta-actions{display:flex;gap:12px;margin-top:28px;flex-wrap:wrap;}
.card-contact{border:1px solid rgba(255,255,255,0.18);}
.card-contact .row{display:flex;justify-content:space-between;gap:20px;padding:14px 20px;border-bottom:1px solid rgba(255,255,255,0.12);font-size:0.88rem;}
.card-contact .row:last-child{border-bottom:0;}
.card-contact .row .k{color:#8B99AE;font-family:var(--mono);font-size:0.68rem;letter-spacing:0.1em;text-transform:uppercase;padding-top:3px;}
.card-contact .row .v{color:#fff;text-align:right;}
.card-contact a{color:#fff;text-decoration:none;border-bottom:1px solid rgba(255,255,255,0.3);}

/* ---------- footer ---------- */
footer{background:#0A1727;color:#94A0B3;padding:56px 0 34px;font-size:0.86rem;}
.foot-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:44px;}
@media (max-width:760px){.foot-grid{grid-template-columns:1fr;gap:30px;}}
footer .flogo img{height:42px;width:auto;opacity:.92;}
footer h4{color:#fff;font-size:0.72rem;font-family:var(--mono);letter-spacing:0.12em;text-transform:uppercase;font-weight:500;margin-bottom:14px;}
footer a{color:#B9C4D4;text-decoration:none;}
footer a:hover{color:#fff;}
footer ul{list-style:none;margin:0;padding:0;display:grid;gap:9px;}
.foot-base{margin-top:42px;padding-top:22px;border-top:1px solid rgba(255,255,255,0.1);display:flex;justify-content:space-between;gap:24px;flex-wrap:wrap;font-size:0.78rem;color:#6F7C90;}
.foot-note{margin-top:20px;font-size:0.76rem;color:#66718A;max-width:92ch;line-height:1.6;}

/* ---------- reveal ---------- */
.rv{opacity:0;transform:translateY(12px);transition:opacity .5s ease,transform .5s ease;}
.rv.in{opacity:1;transform:none;}
@media (prefers-reduced-motion:reduce){.rv{opacity:1;transform:none;transition:none;}}

/* ============ STRUCTURE DIAGRAM ============ */
.diagram{margin:0;width:100%;}
.diagram svg{width:100%;height:auto;display:block;}
.dg-box{fill:#fff;stroke:var(--line-strong);stroke-width:1;}
.dg-box-main{fill:#0F2340;stroke:#0F2340;}
.dg-box-sub{fill:var(--bg-alt);stroke:var(--line-strong);}
.dg-t{font-family:var(--font);font-size:16px;font-weight:600;fill:var(--ink);}
.dg-t-light{fill:#fff;}
.dg-s{font-family:var(--font);font-size:13.5px;fill:var(--muted);}
.dg-s-light{fill:#9FB3CC;}
.dg-line{stroke:var(--line-strong);stroke-width:1.4;fill:none;}
.dg-flow{stroke:var(--accent);stroke-width:1.6;fill:none;}
.dg-lab{font-family:var(--mono);font-size:12px;fill:var(--accent);letter-spacing:0.02em;}
.dg-lab-d{font-family:var(--font);font-size:13px;fill:var(--muted);}
.dg-cap{margin-top:18px;font-size:0.84rem;color:var(--muted);max-width:76ch;}
@media (max-width:620px){.dg-t{font-size:19px;} .dg-s{font-size:16px;} .dg-lab{font-size:15px;} .dg-lab-d{font-size:15.5px;}}

/* ============ COMPARISON ============ */
table.cmp td:nth-child(2),table.cmp th:nth-child(2){text-align:right;font-family:var(--mono);white-space:nowrap;}
table.cmp td:last-child,table.cmp th:last-child{text-align:left;font-family:var(--font);font-weight:400;color:var(--muted);}
table.cmp tr.hi td{background:#F3F8FA;}
table.cmp tr.hi td:first-child{font-weight:600;color:var(--ink);}
table.cmp tr.hi td:nth-child(2){color:var(--accent);font-weight:600;}

/* ============ USE CASES ============ */
.uses{display:grid;grid-template-columns:repeat(2,1fr);gap:0;border-top:1px solid var(--line);}
@media (max-width:760px){.uses{grid-template-columns:1fr;}}
.use{padding:32px 34px 36px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);}
.use:nth-child(2n){border-right:0;}
@media (max-width:760px){.use{border-right:0;padding:26px 0 28px;}}
.use .idx{font-family:var(--mono);font-size:0.7rem;color:var(--accent);letter-spacing:0.1em;}
.use h3{font-size:1.1rem;margin-top:12px;}
.use p{margin-top:10px;font-size:0.93rem;color:var(--muted);}
.use .fig{font-family:var(--mono);font-size:1.55rem;color:var(--navy);margin-top:16px;font-variant-numeric:tabular-nums;}
.use .fig span{font-size:0.78rem;color:var(--faint);letter-spacing:0.08em;text-transform:uppercase;display:block;margin-top:4px;font-family:var(--font);}

/* ============ CHECK LIST ============ */
.reqs{display:grid;grid-template-columns:1fr 1fr;gap:0 48px;border-top:1px solid var(--line);}
@media (max-width:760px){.reqs{grid-template-columns:1fr;}}
.req{padding:18px 0;border-bottom:1px solid var(--line);display:grid;grid-template-columns:24px 1fr;gap:14px;align-items:start;}
.req .tick{font-family:var(--mono);color:var(--accent);font-size:0.8rem;padding-top:2px;}
.req h4{font-size:0.97rem;color:var(--ink);font-weight:600;margin:0;}
.req p{font-size:0.88rem;color:var(--muted);margin-top:5px;}

/* ============ STEPS ============ */
.steps{counter-reset:s;border-top:1px solid var(--line);}
.step{display:grid;grid-template-columns:70px 1fr;gap:26px;padding:26px 0;border-bottom:1px solid var(--line);}
@media (max-width:620px){.step{grid-template-columns:48px 1fr;gap:16px;}}
.step .n{font-family:var(--mono);font-size:0.92rem;color:var(--accent);padding-top:3px;}
.step h3{font-size:1.04rem;}
.step p{margin-top:8px;font-size:0.92rem;color:var(--muted);max-width:66ch;}

/* ============ EVENT / INSIGHT ============ */
.event{display:grid;grid-template-columns:300px 1fr;gap:48px;align-items:start;}
@media (max-width:820px){.event{grid-template-columns:1fr;gap:28px;}}
.event figure{margin:0;}
.event img{width:100%;height:auto;border:1px solid var(--line);display:block;}
.event figcaption{margin-top:12px;font-size:0.8rem;line-height:1.5;color:var(--muted);}
@media (max-width:820px){.event img{max-width:320px;}}
.event .body p{max-width:70ch;}
.event .body p + p{margin-top:16px;}
.event .meta-line{font-family:var(--mono);font-size:0.72rem;letter-spacing:0.1em;text-transform:uppercase;color:var(--faint);margin-bottom:16px;}
