*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
:root {
  --white:#ffffff; --off:#f5f7fa; --light:#e8eef5;
  --teal:#0d9488; --teal-lt:#14b8a6;
  --blue:#1e4d8c; --blue-lt:#2563eb;
  --ink:#111827; --muted:#6b7280; --border:#dde3ed;
  --radius:14px;
  --shadow:0 4px 32px rgba(30,77,140,.10);
  --shadow-lg:0 16px 64px rgba(30,77,140,.16);
}
html { scroll-behavior: smooth; }
body { font-family:'DM Sans',sans-serif; color:var(--ink); background:var(--white); overflow-x:hidden; }

/* NAV */
nav {
  position:fixed; top:0; left:0; right:0; z-index:200;
  display:flex; align-items:center; justify-content:space-between;
  padding:0 5vw; height:68px;
  background:rgba(255,255,255,.92); backdrop-filter:blur(14px);
  border-bottom:1px solid rgba(221,227,237,.6); transition:box-shadow .3s;
}
nav.scrolled { box-shadow:var(--shadow); }
.nav-logo { cursor:pointer; display:flex; align-items:center; text-decoration:none; }
.nav-logo img { height:40px; width:auto; object-fit:contain; }
.nav-links { display:flex; gap:2rem; list-style:none; }
.nav-links a { text-decoration:none; color:var(--muted); font-size:.9rem; font-weight:500; letter-spacing:.02em; text-transform:uppercase; transition:color .2s; cursor:pointer; }
.nav-links a:hover { color:var(--blue); }
.nav-cta { background:var(--blue); color:var(--white)!important; padding:.5rem 1.25rem; border-radius:8px; transition:background .2s!important; }
.nav-cta:hover { background:var(--blue-lt)!important; }
.hamburger { display:none; flex-direction:column; gap:5px; cursor:pointer; border:none; background:none; padding:4px; }
.hamburger span { display:block; width:24px; height:2px; background:var(--ink); border-radius:2px; transition:all .3s; }

/* HERO */
#hero { min-height:100vh; display:flex; align-items:center; padding:100px 5vw 60px; position:relative; overflow:hidden; background:var(--white); }
.hero-bg { position:absolute; inset:0; z-index:0; background:radial-gradient(ellipse 70% 60% at 80% 50%,rgba(13,148,136,.09) 0%,transparent 70%),radial-gradient(ellipse 50% 50% at 10% 80%,rgba(30,77,140,.07) 0%,transparent 70%); }
.hero-grid { position:absolute; inset:0; z-index:0; background-image:linear-gradient(rgba(30,77,140,.055) 1px,transparent 1px),linear-gradient(90deg,rgba(30,77,140,.055) 1px,transparent 1px); background-size:60px 60px; mask-image:radial-gradient(ellipse 80% 80% at 60% 40%,black 10%,transparent 80%); }
.hero-inner { position:relative; z-index:1; max-width:1200px; margin:0 auto; width:100%; display:grid; grid-template-columns:1fr 1fr; align-items:center; gap:4rem; }
.hero-badge { display:inline-flex; align-items:center; gap:.5rem; background:rgba(13,148,136,.1); color:var(--teal); font-size:.78rem; font-weight:600; letter-spacing:.08em; text-transform:uppercase; padding:.35rem .85rem; border-radius:100px; border:1px solid rgba(13,148,136,.2); margin-bottom:1.5rem; opacity:0; animation:fadeUp .6s .1s forwards; }
.hero-badge::before { content:''; width:6px; height:6px; border-radius:50%; background:var(--teal); animation:pulse 2s infinite; }
@keyframes pulse { 0%,100%{opacity:1;transform:scale(1)} 50%{opacity:.5;transform:scale(1.4)} }
.hero-title { font-family:'Sora',sans-serif; font-size:clamp(2.8rem,5vw,4.2rem); font-weight:800; line-height:1.05; letter-spacing:-.05em; color:var(--ink); margin-bottom:1.25rem; opacity:0; animation:fadeUp .7s .2s forwards; }
.hero-title .accent { color:var(--teal); }
.hero-sub { font-size:1.1rem; line-height:1.7; color:var(--muted); font-weight:300; max-width:480px; margin-bottom:2rem; opacity:0; animation:fadeUp .7s .35s forwards; }
.hero-actions { display:flex; gap:1rem; flex-wrap:wrap; opacity:0; animation:fadeUp .7s .5s forwards; }
.btn-primary { display:inline-flex; align-items:center; gap:.5rem; background:var(--blue); color:var(--white); padding:.85rem 1.8rem; border-radius:10px; font-weight:600; font-size:.95rem; text-decoration:none; transition:background .2s,transform .2s,box-shadow .2s; box-shadow:0 4px 20px rgba(30,77,140,.25); cursor:pointer; border:none; font-family:inherit; }
.btn-primary:hover { background:var(--blue-lt); transform:translateY(-2px); box-shadow:0 8px 28px rgba(30,77,140,.3); }
.btn-ghost { display:inline-flex; align-items:center; gap:.5rem; border:1.5px solid var(--border); color:var(--ink); padding:.85rem 1.8rem; border-radius:10px; font-weight:500; font-size:.95rem; text-decoration:none; transition:border-color .2s,color .2s,transform .2s; }
.btn-ghost:hover { border-color:var(--blue); color:var(--blue); transform:translateY(-2px); }
.hero-visual { display:flex; justify-content:flex-end; opacity:0; animation:fadeIn .9s .4s forwards; }
.hero-card-stack { position:relative; width:420px; height:380px; }
.hcard { position:absolute; border-radius:var(--radius); background:var(--white); box-shadow:var(--shadow-lg); border:1px solid var(--border); padding:1.4rem; }
.hcard-main { width:340px; top:30px; right:-30px; background:linear-gradient(135deg,var(--blue) 0%,#163f74 100%); color:var(--white); border:none; }
.hcard-main h4 { font-size:.8rem; font-weight:500; opacity:.7; text-transform:uppercase; letter-spacing:.08em; margin-bottom:.8rem; }
.hcard-main .big-num { font-family:'Sora',sans-serif; font-size:3rem; font-weight:800; line-height:1; letter-spacing:-.04em; }
.hcard-main p { font-size:.85rem; opacity:.8; margin-top:.4rem; }
.hcard-main .bar-row { margin-top:1.2rem; display:flex; flex-direction:column; gap:.5rem; }
.bar-item label { font-size:.75rem; opacity:.7; display:block; margin-bottom:.2rem; }
.bar-track { height:5px; background:rgba(255,255,255,.2); border-radius:99px; overflow:hidden; }
.bar-fill { height:100%; border-radius:99px; background:var(--teal-lt); animation:growBar 1.5s 1s both; }
@keyframes growBar { from{width:0} }
.hcard-stat { width:160px; top:0; left:0; background:var(--white); display:flex; flex-direction:column; gap:.3rem; animation:float 4s ease-in-out infinite; }
.hcard-stat .label { font-size:.72rem; font-weight:600; color:var(--muted); text-transform:uppercase; letter-spacing:.07em; }
.hcard-stat .val { font-family:'Sora',sans-serif; font-size:1.8rem; font-weight:800; color:var(--blue); letter-spacing:-.04em; }
.hcard-stat .sub { font-size:.75rem; color:var(--teal); font-weight:500; }
.hcard-tag { width:180px; bottom:20px; left:20px; background:rgba(13,148,136,.95); color:var(--white); border:none; font-size:.8rem; font-weight:500; display:flex; align-items:center; gap:.5rem; padding:.85rem 1.2rem; animation:float 5s ease-in-out infinite 1s; }
@keyframes float { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-8px)} }
@keyframes fadeUp { from{opacity:0;transform:translateY(20px)} to{opacity:1;transform:translateY(0)} }
@keyframes fadeIn { from{opacity:0} to{opacity:1} }

/* SECTIONS */
section { padding:100px 5vw; }
.section-inner { max-width:1200px; margin:0 auto; }
.section-label { display:inline-block; font-size:.75rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--teal); margin-bottom:.75rem; }
.section-title { font-family:'Sora',sans-serif; font-size:clamp(1.9rem,3.5vw,2.8rem); font-weight:800; color:var(--ink); line-height:1.1; letter-spacing:-.04em; }
.section-sub { color:var(--muted); font-size:1.05rem; line-height:1.7; max-width:600px; margin-top:.75rem; }

/* ABOUT */
#about { background:var(--off); }
.about-grid { display:grid; grid-template-columns:1fr 1fr; gap:5rem; align-items:center; margin-top:3.5rem; }
.about-pills { display:flex; flex-wrap:wrap; gap:.6rem; margin-top:1.5rem; }
.pill { background:var(--white); border:1px solid var(--border); padding:.45rem .9rem; border-radius:100px; font-size:.82rem; font-weight:500; color:var(--blue); }
.about-values { display:flex; flex-direction:column; gap:1.5rem; }
.value-item { display:flex; gap:1rem; background:var(--white); border:1px solid var(--border); border-radius:var(--radius); padding:1.4rem; transition:box-shadow .2s,transform .2s; }
.value-item:hover { box-shadow:var(--shadow); transform:translateY(-2px); }
.value-icon { width:44px; height:44px; flex-shrink:0; border-radius:10px; display:flex; align-items:center; justify-content:center; font-size:1.3rem; }
.vi-blue{background:rgba(30,77,140,.1);} .vi-teal{background:rgba(13,148,136,.1);} .vi-gold{background:rgba(245,158,11,.1);}
.value-item h5 { font-size:.95rem; font-weight:600; margin-bottom:.25rem; }
.value-item p { font-size:.88rem; color:var(--muted); line-height:1.55; }

/* SERVICES */
#services { background:var(--white); }
.services-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1.5rem; margin-top:3.5rem; }
.service-card { background:var(--white); border:1px solid var(--border); border-radius:var(--radius); padding:2rem; transition:box-shadow .25s,transform .25s,border-color .25s; position:relative; overflow:hidden; }
.service-card::before { content:''; position:absolute; top:0; left:0; right:0; height:3px; background:linear-gradient(90deg,var(--blue),var(--teal)); opacity:0; transition:opacity .25s; }
.service-card:hover { box-shadow:var(--shadow-lg); transform:translateY(-4px); border-color:transparent; }
.service-card:hover::before { opacity:1; }
.service-icon { width:52px; height:52px; background:rgba(30,77,140,.08); border-radius:12px; display:flex; align-items:center; justify-content:center; font-size:1.5rem; margin-bottom:1.2rem; }
.service-card h3 { font-size:1.05rem; font-weight:700; margin-bottom:.65rem; }
.service-card p { font-size:.88rem; color:var(--muted); line-height:1.65; }
.service-tags { display:flex; flex-wrap:wrap; gap:.4rem; margin-top:1.1rem; }
.tag { font-size:.72rem; font-weight:600; text-transform:uppercase; letter-spacing:.06em; padding:.25rem .65rem; border-radius:100px; background:rgba(30,77,140,.07); color:var(--blue); }
.tag.teal { background:rgba(13,148,136,.08); color:var(--teal); }

/* PROJECTS */
#projects { background:var(--off); }
.filter-bar { display:flex; flex-wrap:wrap; gap:.6rem; margin-top:2.5rem; margin-bottom:3rem; }
.filter-btn { border:1.5px solid var(--border); background:var(--white); color:var(--muted); padding:.45rem 1.1rem; border-radius:100px; font-size:.82rem; font-weight:600; cursor:pointer; transition:all .2s; }
.filter-btn:hover,.filter-btn.active { background:var(--blue); color:var(--white); border-color:var(--blue); }
.projects-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(340px,1fr)); gap:1.75rem; }
.project-card { background:var(--white); border:1px solid var(--border); border-radius:var(--radius); overflow:hidden; transition:box-shadow .25s,transform .25s; cursor:pointer; }
.project-card:hover { box-shadow:var(--shadow-lg); transform:translateY(-5px); }
.project-thumb { height:200px; display:flex; align-items:center; justify-content:center; position:relative; overflow:hidden; }
.g1{background:linear-gradient(135deg,#1e4d8c 0%,#0d9488 100%);}
.g2{background:linear-gradient(135deg,#1e40af 0%,#7c3aed 100%);}
.g3{background:linear-gradient(135deg,#0d9488 0%,#059669 100%);}
.g4{background:linear-gradient(135deg,#b45309 0%,#d97706 100%);}
.g5{background:linear-gradient(135deg,#0369a1 0%,#0e7490 100%);}
.g6{background:linear-gradient(135deg,#1e4d8c 0%,#1d4ed8 100%);}
.g7{background:linear-gradient(135deg,#7c3aed 0%,#db2777 100%);}
.g8{background:linear-gradient(135deg,#065f46 0%,#0d9488 100%);}
.project-thumb-img { position:relative; overflow:hidden; background:var(--white); min-height:200px; display:flex; align-items:center; justify-content:center; }
.project-thumb-img img { padding:10px; width:100%; object-fit:cover; display:block; transition:transform .4s; }
.project-thumb .industry-badge { position:absolute; top:14px; left:14px; background:rgba(30,77,140,.09); backdrop-filter:blur(8px); color:var(--blue); font-size:.7rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; padding:.3rem .8rem; border-radius:100px; border:1px solid rgba(255,255,255,.3); }
.project-body { padding:1.5rem; }
.project-client { font-size:.72rem; font-weight:700; text-transform:uppercase; letter-spacing:.1em; color:var(--teal); margin-bottom:.4rem; }
.project-body h3 { font-size:1rem; font-weight:700; margin-bottom:.6rem; }
.project-body p { font-size:.85rem; color:var(--muted); line-height:1.6; }
.project-tags { display:flex; flex-wrap:wrap; gap:.4rem; margin-top:1rem; }
.ptag { font-size:.7rem; font-weight:600; text-transform:uppercase; letter-spacing:.05em; padding:.22rem .65rem; border-radius:100px; background:var(--light); color:var(--blue); }
.project-card.hidden { display:none; }
.project-link { display:inline-flex; align-items:center; gap:.4rem; margin-top:1rem; font-size:.82rem; font-weight:600; color:var(--blue); }

/* CLIENTS */
#clients { background:var(--white); }
.clients-intro { display:flex; align-items:flex-end; justify-content:space-between; flex-wrap:wrap; gap:1rem; margin-bottom:3rem; }
.client-logos { display:grid; grid-template-columns:repeat(5,1fr); gap:1.5rem; }
.client-logo-card { background:var(--off); border:1px solid var(--border); border-radius:var(--radius); height:90px; display:flex; align-items:center; justify-content:center; font-family:'Sora',sans-serif; font-weight:700; font-size:1.1rem; color:var(--muted); letter-spacing:-.02em; transition:border-color .2s,color .2s,background .2s; }
.client-logo-card:hover { border-color:var(--blue); color:var(--blue); background:rgba(30,77,140,.04); }

/* CTA */
#cta { background:linear-gradient(135deg,var(--blue) 0%,#163f74 100%); padding:80px 5vw; }
.cta-inner { max-width:1200px; margin:0 auto; display:flex; align-items:center; justify-content:space-between; gap:2rem; flex-wrap:wrap; }
.cta-inner h2 { font-family:'Sora',sans-serif; font-size:clamp(1.6rem,3vw,2.2rem); font-weight:800; letter-spacing:-.04em; color:var(--white); line-height:1.1; }
.cta-inner p { color:rgba(255,255,255,.7); margin-top:.5rem; font-size:.95rem; }
.btn-white { display:inline-flex; align-items:center; gap:.5rem; background:var(--white); color:var(--blue); padding:.9rem 2rem; border-radius:10px; font-weight:700; font-size:.95rem; text-decoration:none; white-space:nowrap; transition:background .2s,transform .2s; box-shadow:0 4px 20px rgba(0,0,0,.2); }
.btn-white:hover { background:var(--light); transform:translateY(-2px); }

/* CONTACT */
#contact { background:var(--off); }
.contact-grid { display:grid; grid-template-columns:1fr 1.4fr; gap:5rem; margin-top:3rem; }
.contact-info { display:flex; flex-direction:column; gap:1.5rem; }
.info-block { display:flex; gap:.85rem; align-items:flex-start; }
.info-icon { width:40px; height:40px; flex-shrink:0; background:var(--white); border:1px solid var(--border); border-radius:10px; display:flex; align-items:center; justify-content:center; font-size:1.1rem; }
.info-block h5 { font-size:.85rem; font-weight:700; color:var(--ink); margin-bottom:.15rem; }
.info-block p { font-size:.85rem; color:var(--muted); line-height:1.5; }
.contact-form { background:var(--white); border:1px solid var(--border); border-radius:var(--radius); padding:2.5rem; }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
.field { display:flex; flex-direction:column; gap:.45rem; margin-bottom:1.1rem; }
.field label { font-size:.82rem; font-weight:600; color:var(--ink); }
.field input,.field textarea,.field select { font-family:inherit; border:1.5px solid var(--border); border-radius:8px; padding:.75rem 1rem; font-size:.9rem; color:var(--ink); background:var(--white); transition:border-color .2s; outline:none; resize:vertical; }
.field input:focus,.field textarea:focus,.field select:focus { border-color:var(--blue); }
.field textarea { min-height:120px; }
.submit-btn { width:100%; background:var(--blue); color:var(--white); border:none; border-radius:10px; padding:.9rem; font-size:.95rem; font-weight:700; font-family:inherit; cursor:pointer; transition:background .2s,transform .2s; }
.submit-btn:hover { background:var(--blue-lt); transform:translateY(-1px); }

/* FOOTER */
footer { background:var(--ink); color:rgba(255,255,255,.55); padding:0; }
.footer-inner { max-width:1200px; margin:0 auto; padding:0 5vw; }
.footer-top { display:grid; grid-template-columns:1.6fr 1fr 1.2fr; gap:3rem; padding:60px 0 40px; border-bottom:1px solid rgba(255,255,255,.08); }
.footer-logo { cursor:pointer; display:flex; align-items:center; margin-bottom:.9rem; text-decoration:none; }
.footer-logo img { height:40px; width:auto; object-fit:contain; }
.footer-tagline { font-size:.88rem; line-height:1.6; color:rgba(255,255,255,.55); margin-bottom:1rem; }
.footer-industries { font-size:.78rem; line-height:1.65; color:rgba(255,255,255,.35); }
.footer-industries strong { color:rgba(255,255,255,.5); }
.footer-nav-title { font-size:.7rem; font-weight:700; text-transform:uppercase; letter-spacing:.14em; color:rgba(255,255,255,.35); margin-bottom:1.1rem; }
.footer-links { display:flex; flex-direction:column; gap:.65rem; }
.footer-links a { color:rgba(255,255,255,.5); text-decoration:none; font-size:.88rem; font-weight:500; transition:color .2s; cursor:pointer; }
.footer-links a:hover { color:var(--teal-lt); }
.footer-contact-block p { font-size:.82rem; line-height:1.5; color:rgba(255,255,255,.45); margin-bottom:.55rem; }
.footer-contact-block p:last-child { margin-bottom:0; }
.footer-bottom { padding:20px 0 28px; display:flex; gap:1rem; flex-direction:column; }
.footer-bottom p { font-size:.75rem; color:rgba(255,255,255,.28); }

/* REVEAL */
.reveal { opacity:0; transform:translateY(28px); transition:opacity .65s ease,transform .65s ease; }
.reveal.visible { opacity:1; transform:translateY(0); }
.reveal-sp { opacity:0; transform:translateY(24px); transition:opacity .6s,transform .6s; }
.reveal-sp.visible { opacity:1; transform:translateY(0); }

/* PROJECT DETAIL PAGE */
.pd-hero { position:relative; overflow:hidden; padding:90px 5vw 75px; display:flex; align-items:flex-end; min-height:440px; margin-top:68px; }
.pd-hero-bg { position:absolute; inset:0; z-index:0; }
.pd-hero-pattern { position:absolute; inset:0; z-index:1; background-image:radial-gradient(rgba(255,255,255,.12) 1px,transparent 1px); background-size:24px 24px; }
.pd-hero-overlay { position:absolute; inset:0; z-index:2; background:linear-gradient(to top,rgba(0,0,0,.58) 0%,rgba(0,0,0,.1) 55%,transparent 100%); }
.pd-hero-content { position:relative; z-index:3; max-width:1200px; margin:0 auto; width:100%; }
.pd-breadcrumb { display:flex; align-items:center; gap:.5rem; font-size:.78rem; font-weight:600; color:rgba(255,255,255,.75); text-transform:uppercase; letter-spacing:.08em; margin-bottom:1.5rem; }
.pd-breadcrumb a { color:rgba(255,255,255,.75); text-decoration:none; cursor:pointer; transition:color .2s; }
.pd-breadcrumb a:hover { color:var(--white); }
.pd-breadcrumb span { opacity:.45; }
.pd-hero-tags { display:flex; flex-wrap:wrap; gap:.5rem; margin-bottom:1.2rem; }
.pd-hero-tag { background:rgba(255,255,255,.15); backdrop-filter:blur(8px); border:1px solid rgba(255,255,255,.25); color:var(--white); font-size:.72rem; font-weight:700; text-transform:uppercase; letter-spacing:.07em; padding:.3rem .85rem; border-radius:100px; }
.pd-hero-title { font-family:'Sora',sans-serif; font-size:clamp(2rem,4vw,3.2rem); font-weight:800; letter-spacing:-.04em; color:var(--white); line-height:1.1; max-width:820px; }
.pd-hero-client { margin-top:1.2rem; }
.client-chip { background:rgba(255,255,255,.2); backdrop-filter:blur(8px); border:1px solid rgba(255,255,255,.3); color:var(--white); font-size:.82rem; font-weight:600; padding:.4rem 1rem; border-radius:100px; }
.pd-body { max-width:1200px; margin:0 auto; padding:0 5vw; }
.pd-layout { display:grid; grid-template-columns:280px 1fr; gap:4rem; padding:60px 0 80px; align-items:start; }
.pd-sidebar { position:sticky; top:90px; display:flex; flex-direction:column; gap:1.5rem; }
.pd-meta-card { background:var(--off); border:1px solid var(--border); border-radius:var(--radius); padding:1.4rem; }
.pd-meta-card h6 { font-size:.68rem; font-weight:700; text-transform:uppercase; letter-spacing:.12em; color:var(--muted); margin-bottom:1rem; padding-bottom:.6rem; border-bottom:1px solid var(--border); }
.pd-meta-row { display:flex; flex-direction:column; gap:.9rem; }
.pd-meta-item label { font-size:.72rem; font-weight:700; color:var(--muted); text-transform:uppercase; letter-spacing:.06em; display:block; margin-bottom:.15rem; }
.pd-meta-item p { font-size:.88rem; font-weight:500; color:var(--ink); line-height:1.4; }
.pd-back-btn { display:inline-flex; align-items:center; gap:.5rem; border:1.5px solid var(--border); background:var(--white); color:var(--ink); padding:.7rem 1.2rem; border-radius:10px; font-size:.85rem; font-weight:600; cursor:pointer; transition:border-color .2s,color .2s; font-family:inherit; width:100%; justify-content:center; }
.pd-back-btn:hover { border-color:var(--blue); color:var(--blue); }
.pd-cta-card { background:linear-gradient(135deg,var(--blue) 0%,#163f74 100%); border-radius:var(--radius); padding:1.6rem; color:var(--white); }
.pd-cta-card h5 { font-family:'Sora',sans-serif; font-size:1rem; font-weight:800; letter-spacing:-.02em; margin-bottom:.5rem; }
.pd-cta-card p { font-size:.82rem; opacity:.8; line-height:1.5; margin-bottom:1rem; }
.pd-cta-card a { display:block; text-align:center; background:rgba(255,255,255,.15); color:var(--white); border:1px solid rgba(255,255,255,.3); padding:.65rem 1rem; border-radius:8px; font-size:.82rem; font-weight:700; text-decoration:none; transition:background .2s; cursor:pointer; }
.pd-cta-card a:hover { background:rgba(255,255,255,.25); }
.pd-content { min-width:0; }
.pd-section { margin-bottom:3rem; }
.pd-section-title { font-family:'Sora',sans-serif; font-size:1.35rem; font-weight:800; letter-spacing:-.03em; color:var(--ink); margin-bottom:1rem; padding-bottom:.75rem; border-bottom:2px solid var(--light); }
.pd-content p { font-size:.97rem; line-height:1.8; color:#374151; margin-bottom:1rem; }
.pd-highlight-box { background:rgba(13,148,136,.07); border-left:4px solid var(--teal); border-radius:0 var(--radius) var(--radius) 0; padding:1.2rem 1.5rem; margin:1.5rem 0; }
.pd-highlight-box p { margin:0; font-style:italic; color:var(--ink); font-size:.95rem; }
.pd-banner { background:rgba(30,77,140,.06); border:1px solid rgba(30,77,140,.15); border-radius:var(--radius); padding:1rem 1.25rem; font-size:.83rem; color:var(--muted); line-height:1.6; margin-top:2rem; display:flex; gap:1rem; align-items:center; }
.pd-banner img { width:10%; vertical-align:middle; }
.pd-bullets { list-style:none; display:flex; flex-direction:column; gap:.85rem; margin-top:1rem; }
.pd-bullets li { display:flex; gap:.9rem; align-items:flex-start; font-size:.93rem; line-height:1.65; color:#374151; }
.pd-bullets li::before { content:''; width:8px; height:8px; border-radius:50%; background:var(--teal); flex-shrink:0; margin-top:.45rem; }
.pd-outcomes { display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; margin-top:1.5rem; }
.pd-outcome-card { background:var(--off); border:1px solid var(--border); border-radius:var(--radius); padding:1.25rem; text-align:center; }
.pd-outcome-card .num { font-family:'Sora',sans-serif; font-size:1.8rem; font-weight:800; letter-spacing:-.04em; color:var(--blue); line-height:1; }
.pd-outcome-card .lbl { font-size:.78rem; font-weight:600; color:var(--muted); margin-top:.3rem; text-transform:uppercase; letter-spacing:.05em; }

/* SHARED SUB-PAGE LAYOUT */
.sp-hero { position:relative; overflow:hidden; padding:90px 5vw 75px; display:flex; align-items:flex-end; min-height:360px; padding-top:120px; margin-top:68px; }
.sp-hero-content { position:relative; z-index:3; max-width:1200px; margin:0 auto; width:100%; }
.sp-breadcrumb { display:flex; align-items:center; gap:.5rem; font-size:.78rem; font-weight:600; color:rgba(255,255,255,.75); text-transform:uppercase; letter-spacing:.08em; margin-bottom:1rem; }
.sp-breadcrumb a { color:rgba(255,255,255,.75); text-decoration:none; cursor:pointer; transition:color .2s; }
.sp-breadcrumb a:hover { color:var(--white); }
.sp-breadcrumb span { opacity:.45; }
.sp-hero-title { font-family:'Sora',sans-serif; font-size:clamp(2rem,4vw,3rem); font-weight:800; letter-spacing:-.04em; color:var(--white); line-height:1.1; margin:1rem 0 .75rem; }
.sp-hero-sub { font-size:1rem; color:rgba(255,255,255,.75); line-height:1.65; max-width:620px; font-weight:300; }
.sp-body { max-width:1200px; margin:0 auto; padding:60px 5vw 80px; }

/* NEWS PAGE */
.news-list { display:flex; flex-direction:column; gap:2rem; }
.news-card { background:var(--white); border:1px solid var(--border); border-radius:var(--radius); overflow:hidden; display:grid; grid-template-columns:280px 1fr; transition:box-shadow .25s,transform .25s; }
.news-card:hover { box-shadow:var(--shadow-lg); transform:translateY(-3px); }
.news-card-img { position:relative; overflow:hidden; background:var(--white); min-height:200px; display:flex; align-items:center; justify-content:center; }
.news-card-img img { width:100%; object-fit:cover; display:block; transition:transform .4s; }
.news-card:hover .news-card-img img { transform:scale(1.04); }
.news-card-img-placeholder { width:100%; height:100%; display:flex; align-items:center; justify-content:center; font-size:3rem; background:linear-gradient(135deg,var(--blue),var(--teal)); min-height:200px; }
.news-card-body { padding:2rem; display:flex; flex-direction:column; gap:.75rem; justify-content:center; }
.news-card-meta { display:flex; align-items:center; gap:.75rem; flex-wrap:wrap; }
.news-date { font-size:.75rem; font-weight:600; color:var(--muted); text-transform:uppercase; letter-spacing:.08em; }
.news-tag { display:inline-block; font-size:.68rem; font-weight:700; text-transform:uppercase; letter-spacing:.08em; color:var(--teal); background:rgba(13,148,136,.08); padding:.2rem .65rem; border-radius:100px; }
.news-card h3 { font-size:1.05rem; font-weight:700; line-height:1.4; color:var(--ink); margin:0; }
.news-card p { font-size:.88rem; color:var(--muted); line-height:1.65; flex:1; margin:0; }
.news-tags-row { display:flex; flex-wrap:wrap; gap:.4rem; }
.news-read-more { display:inline-flex; align-items:center; gap:.4rem; font-size:.82rem; font-weight:700; color:var(--blue); text-decoration:none; margin-top:.25rem; transition:gap .2s; width:fit-content; background:none; border:none; cursor:pointer; font-family:inherit; padding:0; }
.news-read-more:hover { gap:.7rem; color:var(--blue-lt); }

/* NEWS DETAIL */
.nd-layout { max-width:1200px; margin:0 auto; padding:60px 5vw 80px; display:grid; grid-template-columns:1fr 300px; gap:4rem; align-items:start; }

/* CONSULTANCY PAGE */
.cons-intro { display:grid; grid-template-columns:1fr 1fr; gap:5rem; align-items:center; margin-bottom:5rem; }
.cons-intro-text .section-sub { margin-top:.75rem; }
.cons-stat-grid { display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
.cons-stat { background:var(--off); border:1px solid var(--border); border-radius:var(--radius); padding:1.5rem; text-align:center; transition:box-shadow .2s,transform .2s; }
.cons-stat:hover { box-shadow:var(--shadow); transform:translateY(-2px); }
.cons-stat-num { font-family:'Sora',sans-serif; font-size:2.2rem; font-weight:800; letter-spacing:-.04em; color:var(--blue); line-height:1; }
.cons-stat-lbl { font-size:.75rem; color:var(--muted); margin-top:.4rem; font-weight:500; text-transform:uppercase; letter-spacing:.05em; }
.cons-pillars { margin-bottom:5rem; }
.cons-pillar-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1.5rem; }
.cons-pillar-card { background:var(--white); border:1px solid var(--border); border-radius:var(--radius); padding:2rem; transition:box-shadow .25s,transform .25s; position:relative; overflow:hidden; }
.cons-pillar-card::before { content:''; position:absolute; top:0; left:0; right:0; height:3px; background:linear-gradient(90deg,var(--blue),var(--teal)); opacity:0; transition:opacity .25s; }
.cons-pillar-card:hover { box-shadow:var(--shadow-lg); transform:translateY(-4px); }
.cons-pillar-card:hover::before { opacity:1; }
.cons-pillar-icon { width:52px; height:52px; border-radius:12px; display:flex; align-items:center; justify-content:center; font-size:1.5rem; margin-bottom:1.2rem; }
.cons-pillar-card h3 { font-size:1.05rem; font-weight:700; margin-bottom:.65rem; }
.cons-pillar-card p { font-size:.88rem; color:var(--muted); line-height:1.65; }
.cons-process { margin-bottom:4rem; }
.cons-steps { display:flex; flex-direction:column; gap:0; }
.cons-step { display:flex; gap:2rem; padding:2rem 0; border-bottom:1px solid var(--border); align-items:flex-start; }
.cons-step:last-child { border-bottom:none; }
.cons-step-num { font-family:'Sora',sans-serif; font-size:2rem; font-weight:800; letter-spacing:-.04em; color:var(--light); line-height:1; flex-shrink:0; width:60px; text-align:center; }
.cons-step-body h4 { font-size:1rem; font-weight:700; margin-bottom:.5rem; color:var(--ink); }
.cons-step-body p { font-size:.9rem; color:var(--muted); line-height:1.7; }

/* GENDER EQUALITY PAGE */
.ge-intro { font-size:.97rem; line-height:1.8; color:#374151; margin-bottom:4rem; max-width:820px; }
.ge-intro p { margin-bottom:1rem; }
.ge-intro strong { color:var(--ink); }
.ge-pillars { margin-bottom:4rem; }
.ge-pillar-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:1.5rem; }
.ge-pillar-card { background:var(--white); border:1px solid var(--border); border-radius:var(--radius); padding:2rem; transition:box-shadow .25s,transform .25s; }
.ge-pillar-card:hover { box-shadow:var(--shadow-lg); transform:translateY(-3px); }
.ge-pillar-icon { width:52px; height:52px; border-radius:12px; display:flex; align-items:center; justify-content:center; margin-bottom:1.2rem; }
.ge-pillar-card h3 { font-size:1.05rem; font-weight:700; margin-bottom:.25rem; }
.ge-pillar-sub { font-size:.78rem; font-weight:600; color:var(--teal); text-transform:uppercase; letter-spacing:.06em; margin-bottom:.75rem; display:block; }
.ge-pillar-card p { font-size:.88rem; color:var(--muted); line-height:1.65; }
.ge-commitment { background:rgba(30,77,140,.05); border:1px solid rgba(30,77,140,.12); border-radius:var(--radius); padding:1.5rem 2rem; }
.ge-commitment-inner { display:flex; gap:2rem; align-items:center; }
.ge-commitment-inner img { width:10%; object-fit:cover; display:block; }
.ge-commitment h4 { font-size:.95rem; font-weight:700; margin-bottom:.4rem; }
.ge-commitment p { font-size:.88rem; color:var(--muted); line-height:1.65; }

/* SUPPORTED BY */
.supported-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:1.5rem; }
.supported-card { background:var(--off); border:1px solid var(--border); border-radius:var(--radius); padding:1.75rem 1.5rem; display:flex; flex-direction:column; gap:.6rem; transition:box-shadow .2s,transform .2s; align-items:center; justify-content:center; height:240px; }
.supported-card:hover { box-shadow:var(--shadow); transform:translateY(-3px); }
.supported-card img { max-width:100%; }

/* COOKIE BANNER */
.cookie-banner { position:fixed; bottom:0; left:0; right:0; z-index:500; background:var(--white); border-top:1px solid var(--border); box-shadow:0 -8px 40px rgba(30,77,140,.12); padding:1.25rem 5vw; transform:translateY(100%); transition:transform .4s cubic-bezier(.4,0,.2,1); }
.cookie-banner.visible { transform:translateY(0); }
.cookie-content { max-width:1200px; margin:0 auto; display:flex; align-items:center; justify-content:space-between; gap:2rem; flex-wrap:wrap; }
.cookie-text p { font-size:.85rem; line-height:1.6; color:var(--muted); max-width:580px; }
.cookie-text strong { color:var(--ink); }
.cookie-actions { display:flex; gap:.75rem; flex-wrap:wrap; flex-shrink:0; }
.cookie-btn { border-radius:8px; font-size:.82rem; font-weight:600; padding:.55rem 1.1rem; cursor:pointer; font-family:inherit; transition:all .2s; border:1.5px solid transparent; }
.cookie-btn-primary { background:var(--blue); color:var(--white); border-color:var(--blue); }
.cookie-btn-primary:hover { background:var(--blue-lt); border-color:var(--blue-lt); }
.cookie-btn-secondary { background:var(--white); color:var(--blue); border-color:var(--border); }
.cookie-btn-secondary:hover { border-color:var(--blue); }
.cookie-btn-ghost { background:transparent; color:var(--muted); border-color:var(--border); }
.cookie-btn-ghost:hover { color:var(--ink); border-color:var(--muted); }

/* COOKIE MODAL */
.modal-overlay { position:fixed; inset:0; z-index:600; background:rgba(17,24,39,.55); backdrop-filter:blur(6px); display:flex; align-items:center; justify-content:center; opacity:0; pointer-events:none; transition:opacity .3s; }
.modal-overlay.open { opacity:1; pointer-events:all; }
.modal-box { background:var(--white); border-radius:20px; padding:2.5rem; width:100%; max-width:500px; position:relative; margin:1rem; box-shadow:0 24px 80px rgba(30,77,140,.2); transform:translateY(20px); transition:transform .3s; }
.modal-overlay.open .modal-box { transform:translateY(0); }
.modal-close { position:absolute; top:1.2rem; right:1.2rem; background:var(--off); border:none; border-radius:50%; width:32px; height:32px; cursor:pointer; font-size:.9rem; color:var(--muted); transition:background .2s,color .2s; }
.modal-close:hover { background:var(--light); color:var(--ink); }
.modal-title { font-family:'Sora',sans-serif; font-size:1.3rem; font-weight:800; letter-spacing:-.03em; margin-bottom:.5rem; }
.modal-desc { font-size:.85rem; color:var(--muted); line-height:1.6; margin-bottom:1.5rem; }
.cookie-option { padding:1rem 0; border-bottom:1px solid var(--border); }
.cookie-option:last-of-type { border-bottom:none; }
.cookie-option p { font-size:.82rem; color:var(--muted); line-height:1.5; margin-top:.3rem; padding-left:52px; }
.cookie-option-header { display:flex; align-items:center; justify-content:space-between; }
.cookie-toggle-label { display:flex; align-items:center; gap:.9rem; cursor:pointer; }
.cookie-toggle-label strong { font-size:.88rem; }
.cookie-toggle { width:40px; height:22px; border-radius:99px; background:var(--border); position:relative; cursor:pointer; transition:background .25s; flex-shrink:0; }
.cookie-toggle.on { background:var(--teal); }
.cookie-toggle.disabled { background:var(--teal); opacity:.6; cursor:not-allowed; }
.cookie-toggle-knob { width:16px; height:16px; border-radius:50%; background:var(--white); position:absolute; top:3px; left:3px; transition:transform .25s; box-shadow:0 1px 4px rgba(0,0,0,.2); }
.cookie-toggle.on .cookie-toggle-knob, .cookie-toggle.disabled .cookie-toggle-knob { transform:translateX(18px); }
.modal-actions { display:flex; gap:.75rem; margin-top:1.5rem; flex-wrap:wrap; }

/* SCROLL TO TOP */
.scroll-top-btn { position:fixed; bottom:2rem; right:2rem; z-index:300; width:44px; height:44px; border-radius:12px; background:var(--blue); color:var(--white); border:none; cursor:pointer; display:flex; align-items:center; justify-content:center; box-shadow:0 4px 20px rgba(30,77,140,.3); opacity:0; transform:translateY(10px); transition:opacity .3s,transform .3s,background .2s; pointer-events:none; }
.scroll-top-btn.visible { opacity:1; transform:translateY(0); pointer-events:all; }
.scroll-top-btn:hover { background:var(--blue-lt); }

/* CONTACT SECTION (sub-page) */
.contact-section { background:var(--off); padding:80px 5vw 100px; border-top:1px solid var(--border); }
.contact-section-inner { max-width:1200px; margin:0 auto; }
.contact-section-inner .section-title { margin-bottom:2.5rem; }

/* RESPONSIVE */
@media(max-width:900px){
  .footer-top { grid-template-columns:1fr 1fr; }
  .footer-brand { grid-column:1/-1; }
  .hero-inner,.about-grid,.contact-grid { grid-template-columns:1fr; gap:3rem; }
  .hero-visual { justify-content:center; } .hero-card-stack { width:340px; }
  .services-grid { grid-template-columns:1fr 1fr; }
  .client-logos { grid-template-columns:repeat(3,1fr); }
  .cta-inner { flex-direction:column; text-align:center; }
  .pd-layout { grid-template-columns:1fr; }
  .pd-sidebar { position:static; }
  .pd-outcomes { grid-template-columns:1fr 1fr; }
  .cons-intro { grid-template-columns:1fr; gap:3rem; }
  .cons-pillar-grid { grid-template-columns:1fr 1fr; }
  .ge-pillar-grid { grid-template-columns:1fr; }
  .supported-grid { grid-template-columns:1fr 1fr; }
  .nd-layout { grid-template-columns:1fr; }
}
@media(max-width:700px){
  .news-card { grid-template-columns:1fr; }
  .news-card-img { min-height:180px; }
}
@media(max-width:600px){
  .footer-top { grid-template-columns:1fr; gap:2rem; padding:40px 0 30px; }
  .footer-brand { grid-column:auto; }
  .nav-links { display:none; flex-direction:column; position:fixed; top:68px; left:0; right:0; background:var(--white); padding:1.5rem; border-bottom:1px solid var(--border); gap:1.2rem; }
  .nav-links.open { display:flex; }
  .hamburger { display:flex; }
  .services-grid { grid-template-columns:1fr; }
  .client-logos { grid-template-columns:repeat(2,1fr); }
  .form-row { grid-template-columns:1fr; }
  .hcard-main { width:280px; } .hero-card-stack { width:280px; height:320px; }
  .pd-outcomes { grid-template-columns:1fr; }
  .cons-pillar-grid { grid-template-columns:1fr; }
  .cons-stat-grid { grid-template-columns:1fr 1fr; }
  .cons-step { flex-direction:column; gap:.75rem; }
  .cons-step-num { width:auto; text-align:left; }
  .cookie-content { flex-direction:column; align-items:flex-start; }
  .cookie-actions { width:100%; }
  .cookie-btn { flex:1; text-align:center; }
  .supported-grid { grid-template-columns:1fr; }
}
