/* ==========================================================
   تقنية ليبيا للأعمال الهندسية - Taknia Libya Engineering
   Industrial / oil & gas — modern, balanced green × maroon
   ========================================================== */

:root {
  /* Brand */
  --green-900: #0e1a3d;
  --green-800: #16265a;
  --green-700: #22367a;
  --green-600: #2e4a9e;
  --green-500: #4a64b8;
  --green-100: #d3daf0;
  --green-50:  #edf0f9;

  --maroon-900: #7d121c;
  --maroon-800: #9e1826;
  --maroon-700: #cf2030;
  --maroon-600: #b81c2a;
  --maroon-500: #e04a55;
  --maroon-100: #f8d5d8;

  /* Neutrals */
  --bg:        #f4f5f8;   /* warm off-white */
  --paper:     #ffffff;
  --ink:       #121a2e;
  --ink-2:     #2b3448;
  --muted:     #666e80;
  --muted-2:   #9aa1b0;
  --line:      #e2e5ec;
  --line-2:    #cfd4df;

  /* Type */
  --font-ar: "IBM Plex Sans", "Segoe UI", system-ui, sans-serif;
  --font-en: "IBM Plex Sans", "Inter", system-ui, sans-serif;

  /* Radius / shadow */
  --r-sm: 4px;
  --r-md: 8px;
  --r-lg: 14px;
  --shadow-sm: 0 1px 2px rgba(14, 26, 61, 0.06), 0 0 0 1px rgba(14, 26, 61, 0.04);
  --shadow-md: 0 8px 24px -10px rgba(14, 26, 61, 0.18), 0 2px 6px rgba(14, 26, 61, 0.06);
  --shadow-lg: 0 24px 60px -20px rgba(14, 26, 61, 0.30);
}

* { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
body {
  font-family: var(--font-ar);
  background: var(--bg);
  color: var(--ink);
  line-height: 1.55;
  font-size: 16px;
  direction: ltr;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
button { font-family: inherit; cursor: pointer; border: 0; background: none; color: inherit; }

/* ============= TOP BAR ============= */
.topbar {
  background: var(--green-900);
  color: #dde3f2;
  font-size: 13px;
}
.topbar-inner {
  max-width: 1320px; margin: 0 auto;
  display: flex; align-items: center; justify-content: space-between;
  padding: 8px 32px; gap: 16px;
}
.topbar a { color: inherit; opacity: .85; }
.topbar a:hover { opacity: 1; }
.topbar-contact { display: flex; gap: 22px; align-items: center; }
.topbar-contact .item { display: inline-flex; align-items: center; gap: 6px; }
.topbar-social { display: flex; gap: 14px; align-items: center; }
.topbar-social a { width: 24px; height: 24px; display: inline-grid; place-items: center; }

/* ============= NAV ============= */
.nav {
  background: var(--paper);
  border-bottom: 1px solid var(--line);
  position: sticky; top: 0; z-index: 50;
}
.nav-inner {
  max-width: 1320px; margin: 0 auto;
  display: flex; align-items: center; justify-content: space-between;
  padding: 14px 32px; gap: 24px;
}
.nav-logo { display: flex; align-items: center; gap: 10px; height: 56px; }
.nav-logo img { height: 100%; width: auto; }
.nav-menu { display: flex; gap: 4px; align-items: center; }
.nav-link {
  padding: 10px 14px; border-radius: var(--r-sm);
  font-size: 15px; font-weight: 500;
  color: var(--ink-2);
  position: relative;
  transition: color .15s;
}
.nav-link:hover { color: var(--green-700); }
.nav-link.active {
  color: var(--green-800);
}
.nav-link.active::after {
  content: ""; position: absolute; right: 14px; left: 14px; bottom: 2px;
  height: 2px; background: var(--maroon-700);
}
.nav-cta {
  background: var(--green-800); color: #fff;
  padding: 11px 20px; border-radius: var(--r-sm);
  font-weight: 600; font-size: 14.5px;
  transition: background .15s, transform .1s;
}
.nav-cta:hover { background: var(--green-700); }
.nav-cta:active { transform: translateY(1px); }

/* ============= HERO ============= */
.hero {
  position: relative;
  min-height: 640px;
  height: calc(100vh - 130px);
  max-height: 820px;
  overflow: hidden;
  background: var(--green-900);
  color: #fff;
  display: flex; align-items: center;
}
.hero-media {
  position: absolute; inset: 0;
  z-index: 0;
}
.hero-media video, .hero-media img {
  width: 100%; height: 100%; object-fit: cover;
}
.hero-overlay {
  position: absolute; inset: 0; z-index: 1;
  background:
    linear-gradient(90deg, rgba(14, 26, 61, 0.75) 0%, rgba(14, 26, 61, 0.55) 50%, rgba(14, 26, 61, 0.78) 100%),
    linear-gradient(180deg, rgba(0,0,0,0.10) 0%, rgba(0,0,0,0.45) 100%);
}
.hero-grid {
  position: absolute; inset: 0; z-index: 1;
  background-image:
    linear-gradient(rgba(255,255,255,0.05) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,0.05) 1px, transparent 1px);
  background-size: 80px 80px;
  mix-blend-mode: overlay;
  opacity: .6;
}
.hero-inner {
  position: relative; z-index: 2;
  max-width: 1320px; width: 100%;
  margin: 0 auto; padding: 32px;
}
.hero-eyebrow {
  display: inline-flex; align-items: center; gap: 10px;
  padding: 6px 14px; border-radius: 99px;
  background: rgba(255,255,255,0.08);
  border: 1px solid rgba(255,255,255,0.18);
  font-size: 13px; letter-spacing: 0.5px;
  margin-bottom: 24px;
  backdrop-filter: blur(6px);
}
.hero-eyebrow .dot { width: 6px; height: 6px; border-radius: 99px; background: #ff6b75; box-shadow: 0 0 0 4px rgba(255,107,117,0.25); }
.hero-title {
  font-size: clamp(36px, 5.4vw, 76px);
  line-height: 1.08;
  font-weight: 700;
  margin: 0 0 24px;
  letter-spacing: -0.5px;
  max-width: 18ch;
  text-wrap: balance;
}
.hero-title .accent { color: #ffb3b9; }
.hero-sub {
  font-size: clamp(16px, 1.4vw, 19px);
  font-weight: 400;
  color: rgba(255,255,255,0.85);
  max-width: 56ch;
  margin: 0 0 36px;
  line-height: 1.7;
}
.hero-actions { display: flex; gap: 14px; flex-wrap: wrap; align-items: center; }
.btn {
  display: inline-flex; align-items: center; gap: 10px;
  padding: 14px 26px; border-radius: var(--r-sm);
  font-weight: 600; font-size: 15px;
  transition: all .15s;
}
.btn-primary { background: var(--maroon-700); color: #fff; }
.btn-primary:hover { background: var(--maroon-600); }
.btn-ghost {
  background: transparent; color: #fff;
  border: 1px solid rgba(255,255,255,0.35);
}
.btn-ghost:hover { background: rgba(255,255,255,0.1); border-color: rgba(255,255,255,0.6); }
.btn-arrow { transition: transform .2s; }
.btn:hover .btn-arrow { transform: translateX(-4px); }

/* Hero meta strip on bottom */
.hero-meta {
  position: absolute; left: 0; right: 0; bottom: 0; z-index: 2;
  background: linear-gradient(180deg, transparent, rgba(14,26,61,0.92));
  padding: 24px 32px;
  border-top: 1px solid rgba(255,255,255,0.12);
}
.hero-meta-inner {
  max-width: 1320px; margin: 0 auto;
  display: grid; grid-template-columns: repeat(4, 1fr);
  gap: 32px;
}
.hero-meta-item {
  display: flex; flex-direction: column; gap: 2px;
  border-right: 2px solid var(--maroon-700);
  padding-right: 16px;
}
.hero-meta-item:first-child { border-right: 2px solid var(--maroon-700); }
.hero-meta-num {
  font-family: var(--font-en);
  font-size: 28px; font-weight: 600;
  color: #fff; letter-spacing: -0.5px;
}
.hero-meta-label {
  font-size: 13px; color: rgba(255,255,255,0.7);
}

/* ============= ABSTRACT HERO VARIANT ============= */
.hero.hero-abstract { background: var(--bg); color: var(--ink); }
.hero.hero-abstract .hero-overlay,
.hero.hero-abstract .hero-grid,
.hero.hero-abstract .hero-media { display: none; }
.hero-abstract .hero-meta { background: var(--green-900); position: static; padding: 32px; }
.hero-abstract-shapes {
  position: absolute; inset: 0; z-index: 0;
  overflow: hidden;
}
.hero-abstract-shapes .blob {
  position: absolute; border-radius: 50%;
  filter: blur(60px); opacity: .25;
}
.hero-abstract-shapes .blob-1 { width: 500px; height: 500px; background: var(--green-700); top: -100px; right: -100px; }
.hero-abstract-shapes .blob-2 { width: 400px; height: 400px; background: var(--maroon-700); bottom: -100px; left: -100px; }
.hero-abstract .hero-eyebrow { background: rgba(14,26,61,0.05); border-color: rgba(14,26,61,0.12); color: var(--green-800); }
.hero-abstract .hero-eyebrow .dot { background: var(--green-700); box-shadow: 0 0 0 4px rgba(34,54,122,.15); }
.hero-abstract .hero-title { color: var(--ink); }
.hero-abstract .hero-title .accent { color: var(--maroon-700); }
.hero-abstract .hero-sub { color: var(--muted); }
.hero-abstract .btn-ghost { color: var(--ink); border-color: var(--line-2); }
.hero-abstract .btn-ghost:hover { background: var(--paper); }

/* ============= SECTION ============= */
.section { padding: 96px 32px; }
.section-inner { max-width: 1320px; margin: 0 auto; }
.section-hd { display: flex; align-items: end; justify-content: space-between; gap: 24px; margin-bottom: 48px; }
.section-hd-left { max-width: 720px; }
.section-eyebrow {
  display: inline-flex; align-items: center; gap: 10px;
  font-size: 13px; font-weight: 600;
  color: var(--maroon-700);
  letter-spacing: 1.5px;
  margin-bottom: 16px;
}
.section-eyebrow::before {
  content: ""; width: 32px; height: 2px; background: var(--maroon-700);
}
.section-title {
  font-size: clamp(28px, 3.4vw, 44px);
  line-height: 1.15;
  font-weight: 700;
  letter-spacing: -0.5px;
  margin: 0 0 12px;
  color: var(--ink);
}
.section-desc { color: var(--muted); font-size: 17px; margin: 0; max-width: 60ch; line-height: 1.7; }
.section-link {
  display: inline-flex; align-items: center; gap: 8px;
  color: var(--green-800); font-weight: 600; font-size: 15px;
  border-bottom: 1px solid transparent;
  transition: border-color .15s;
}
.section-link:hover { border-bottom-color: var(--green-800); }

/* ============= ABOUT ============= */
.about-grid {
  display: grid; grid-template-columns: 5fr 6fr; gap: 64px; align-items: center;
}
.about-img {
  position: relative; aspect-ratio: 4/5;
  border-radius: var(--r-md);
  overflow: hidden;
  box-shadow: var(--shadow-lg);
}
.about-img img { width: 100%; height: 100%; object-fit: cover; }
.about-img::after {
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(180deg, transparent 50%, rgba(14,26,61,0.4));
}
.about-img-tag {
  position: absolute; bottom: 24px; right: 24px; left: 24px;
  z-index: 2; color: #fff;
  display: flex; align-items: center; gap: 12px;
}
.about-img-tag-bar { width: 4px; align-self: stretch; background: var(--maroon-500); }
.about-img-tag-num { font-family: var(--font-en); font-size: 56px; font-weight: 600; line-height: 1; letter-spacing: -1px; }
.about-img-tag-text { font-size: 14px; opacity: .9; max-width: 18ch; }

.about-body p { font-size: 17px; color: var(--ink-2); line-height: 1.85; margin: 0 0 20px; }
.about-body p:first-of-type { font-size: 19px; color: var(--ink); font-weight: 500; }

.about-features { display: grid; grid-template-columns: 1fr 1fr; gap: 20px 32px; margin-top: 32px; padding-top: 32px; border-top: 1px solid var(--line); }
.about-feature { display: flex; gap: 14px; }
.about-feature-icon {
  flex-shrink: 0; width: 40px; height: 40px;
  background: var(--green-50); color: var(--green-800);
  display: grid; place-items: center;
  border-radius: var(--r-sm);
}
.about-feature-title { font-weight: 600; font-size: 15px; margin: 0 0 4px; }
.about-feature-desc { font-size: 13.5px; color: var(--muted); margin: 0; line-height: 1.6; }

/* ============= STATS ============= */
.stats {
  background: var(--green-900);
  color: #fff;
  padding: 72px 32px;
  position: relative; overflow: hidden;
}
.stats::before {
  content: ""; position: absolute; inset: 0;
  background-image:
    linear-gradient(rgba(255,255,255,0.04) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,0.04) 1px, transparent 1px);
  background-size: 60px 60px;
  pointer-events: none;
}
.stats-inner {
  max-width: 1320px; margin: 0 auto; position: relative;
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 0;
}
.stat-cell {
  padding: 16px 32px;
  border-right: 1px solid rgba(255,255,255,0.12);
}
.stat-cell:first-child { padding-right: 0; }
.stat-cell:last-child { border-left: 1px solid rgba(255,255,255,0.12); }
.stat-num {
  font-family: var(--font-en);
  font-size: clamp(48px, 5vw, 72px);
  font-weight: 600;
  line-height: 1;
  letter-spacing: -2px;
  display: flex; align-items: baseline;
}
.stat-num .plus { color: var(--maroon-500); margin-right: 4px; font-weight: 500; }
.stat-label { font-size: 15px; color: rgba(255,255,255,0.75); margin-top: 12px; }

/* ============= SERVICES ============= */
.services-grid {
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 1px;
  background: var(--line); border: 1px solid var(--line);
  border-radius: var(--r-md); overflow: hidden;
}
.service-card {
  background: var(--paper);
  padding: 36px 28px;
  display: flex; flex-direction: column; gap: 16px;
  transition: background .2s, transform .2s;
  cursor: pointer; position: relative;
  min-height: 240px;
}
.service-card:hover { background: var(--green-900); color: #fff; }
.service-card:hover .service-icon { background: rgba(255,255,255,0.1); color: #fff; }
.service-card:hover .service-num { color: rgba(255,255,255,0.4); }
.service-card:hover .service-desc { color: rgba(255,255,255,0.75); }
.service-card:hover .service-arrow { color: var(--maroon-500); transform: translateX(-6px); }
.service-num {
  position: absolute; top: 20px; left: 24px;
  font-family: var(--font-en); font-size: 13px;
  color: var(--muted-2); font-weight: 500;
  transition: color .2s;
}
.service-icon {
  width: 56px; height: 56px;
  background: var(--green-50); color: var(--green-800);
  border-radius: var(--r-sm);
  display: grid; place-items: center;
  transition: background .2s, color .2s;
}
.service-title { font-size: 19px; font-weight: 600; margin: 0; line-height: 1.3; }
.service-desc { font-size: 14px; color: var(--muted); margin: 0; line-height: 1.65; flex: 1; transition: color .2s; }
.service-arrow {
  display: inline-flex; align-items: center; gap: 6px;
  font-size: 13px; font-weight: 600; color: var(--green-700);
  margin-top: auto; transition: color .2s, transform .2s;
}

/* ============= PROJECTS / SHOWCASE ============= */
.projects { background: var(--paper); }
.projects-grid {
  display: grid; grid-template-columns: 2fr 1fr 1fr; grid-template-rows: 1fr 1fr;
  gap: 16px; height: 640px;
}
.project-card {
  position: relative; overflow: hidden;
  border-radius: var(--r-md);
  cursor: pointer;
  background: var(--ink);
}
.project-card:nth-child(1) { grid-row: span 2; }
.project-card img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s; }
.project-card:hover img { transform: scale(1.04); }
.project-card::after {
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(180deg, transparent 30%, rgba(14,26,61,0.92));
}
.project-meta {
  position: absolute; bottom: 0; right: 0; left: 0; z-index: 2;
  padding: 24px 28px; color: #fff;
}
.project-tag {
  display: inline-block; font-size: 12px; font-weight: 600;
  color: #ffb3b9; letter-spacing: 1.2px; margin-bottom: 8px;
}
.project-title { font-size: 22px; font-weight: 600; margin: 0; line-height: 1.3; }
.project-card:nth-child(1) .project-title { font-size: 32px; }
.project-loc { font-size: 13px; opacity: .8; margin-top: 6px; }

/* ============= PARTNERS ============= */
.partners { background: var(--bg); }
.partners-grid {
  display: grid; grid-template-columns: repeat(5, 1fr); gap: 0;
  background: var(--paper); border: 1px solid var(--line);
  border-radius: var(--r-md); overflow: hidden;
}
.partner-cell {
  aspect-ratio: 16/9;
  border-left: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  display: grid; place-items: center;
  padding: 32px;
  transition: background .2s;
}
.partner-cell:hover { background: var(--bg); }
.partner-cell:nth-child(5n) { border-left: 0; }
.partner-cell:nth-last-child(-n+5) { border-bottom: 0; }
.partner-logo {
  font-family: var(--font-en);
  font-weight: 700; font-size: 22px;
  color: var(--ink-2); letter-spacing: -0.5px;
  text-align: center; line-height: 1.1;
  filter: grayscale(100%); opacity: .7;
  transition: opacity .2s, filter .2s;
}
.partner-cell:hover .partner-logo { filter: grayscale(0); opacity: 1; color: var(--green-800); }
.partner-logo small { display: block; font-size: 10px; font-weight: 500; opacity: .7; margin-top: 2px; }

/* ============= NEWS ============= */
.news-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.news-card {
  background: var(--paper);
  border-radius: var(--r-md);
  overflow: hidden;
  border: 1px solid var(--line);
  transition: transform .2s, box-shadow .2s;
  cursor: pointer;
}
.news-card:hover { transform: translateY(-3px); box-shadow: var(--shadow-md); }
.news-img { aspect-ratio: 16/10; overflow: hidden; }
.news-img img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s; }
.news-card:hover .news-img img { transform: scale(1.04); }
.news-body { padding: 24px; }
.news-meta { display: flex; gap: 16px; font-size: 12px; color: var(--muted); margin-bottom: 12px; }
.news-cat { color: var(--maroon-700); font-weight: 600; letter-spacing: 1px; }
.news-title { font-size: 19px; font-weight: 600; margin: 0 0 12px; line-height: 1.4; }
.news-card:hover .news-title { color: var(--green-800); }
.news-excerpt { font-size: 14px; color: var(--muted); margin: 0; line-height: 1.6; }

/* ============= CTA ============= */
.cta {
  background: var(--paper);
  padding: 0 32px 96px;
}
.cta-inner {
  max-width: 1320px; margin: 0 auto;
  background: var(--maroon-800); color: #fff;
  border-radius: var(--r-lg);
  padding: 64px 56px;
  display: grid; grid-template-columns: 1.5fr 1fr; gap: 48px;
  align-items: center;
  position: relative; overflow: hidden;
}
.cta-inner::before {
  content: ""; position: absolute; top: -50%; left: -10%;
  width: 500px; height: 500px; border-radius: 50%;
  background: radial-gradient(circle, rgba(255,255,255,0.08), transparent 70%);
}
.cta-title { font-size: clamp(28px, 3vw, 38px); margin: 0 0 12px; line-height: 1.2; font-weight: 700; }
.cta-desc { color: rgba(255,255,255,0.85); font-size: 16px; margin: 0; line-height: 1.7; max-width: 50ch; }
.cta-actions { display: flex; flex-direction: column; gap: 12px; align-items: stretch; }
.cta .btn-primary { background: #fff; color: var(--maroon-800); }
.cta .btn-primary:hover { background: var(--bg); }
.cta .btn-ghost { color: #fff; border-color: rgba(255,255,255,0.4); }
.cta .btn-ghost:hover { background: rgba(255,255,255,0.1); }

/* ============= FOOTER ============= */
.footer {
  background: var(--green-900);
  color: rgba(255,255,255,0.7);
  padding: 72px 32px 0;
}
.footer-inner { max-width: 1320px; margin: 0 auto; }
.footer-top {
  display: grid; grid-template-columns: 2fr 1fr 1fr 1.5fr; gap: 56px;
  padding-bottom: 56px; border-bottom: 1px solid rgba(255,255,255,0.1);
}
.footer-brand .logo {
  background: rgba(255,255,255,0.95); padding: 14px 18px; border-radius: var(--r-sm);
  display: inline-block; margin-bottom: 20px;
}
.footer-brand .logo img { height: 48px; }
.footer-about { font-size: 14px; line-height: 1.8; color: rgba(255,255,255,0.65); }
.footer-col h4 {
  color: #fff; font-size: 14px; font-weight: 600;
  letter-spacing: 1.5px; margin: 0 0 20px;
}
.footer-col ul { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 12px; }
.footer-col a { font-size: 14px; transition: color .15s; }
.footer-col a:hover { color: #fff; }
.footer-contact-item { display: flex; gap: 12px; font-size: 14px; align-items: start; line-height: 1.6; }
.footer-contact-item svg { flex-shrink: 0; margin-top: 2px; color: var(--maroon-500); }
.footer-bottom {
  padding: 24px 0;
  display: flex; justify-content: space-between; align-items: center; gap: 16px;
  font-size: 13px; color: rgba(255,255,255,0.5);
}
.footer-noc { display: flex; align-items: center; gap: 12px; font-size: 13px; }
.footer-noc-badge {
  background: rgba(255,255,255,0.95); border-radius: var(--r-sm);
  padding: 6px 10px; color: var(--green-900); font-weight: 700; font-size: 12px;
}
.footer-social { display: flex; gap: 12px; }
.footer-social a {
  width: 36px; height: 36px; border-radius: 50%;
  background: rgba(255,255,255,0.08);
  display: grid; place-items: center;
  transition: background .15s;
}
.footer-social a:hover { background: var(--maroon-700); color: #fff; }

/* ============= INNER PAGE HEADER ============= */
.page-header {
  background: var(--green-900); color: #fff;
  padding: 72px 32px 64px;
  position: relative; overflow: hidden;
}
.page-header::before {
  content: ""; position: absolute; inset: 0;
  background-image:
    linear-gradient(rgba(255,255,255,0.04) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,0.04) 1px, transparent 1px);
  background-size: 60px 60px;
}
.page-header-inner {
  max-width: 1320px; margin: 0 auto; position: relative;
}
.page-breadcrumbs {
  font-size: 13px; color: rgba(255,255,255,0.6);
  margin-bottom: 16px; display: flex; gap: 8px; align-items: center;
}
.page-breadcrumbs a:hover { color: #fff; }
.page-breadcrumbs .sep { opacity: .5; }
.page-header h1 {
  font-size: clamp(36px, 4.5vw, 56px);
  margin: 0 0 12px; line-height: 1.1;
  font-weight: 700; letter-spacing: -0.8px;
  max-width: 22ch;
}
.page-header p {
  font-size: 17px; color: rgba(255,255,255,0.75);
  max-width: 60ch; margin: 0; line-height: 1.7;
}

/* ============= FORMS ============= */
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.field { display: flex; flex-direction: column; gap: 6px; }
.field.full { grid-column: 1 / -1; }
.field label { font-size: 13.5px; font-weight: 500; color: var(--ink-2); }
.field label .req { color: var(--maroon-700); margin-right: 2px; }
.field input, .field select, .field textarea {
  font: inherit; padding: 12px 14px;
  border: 1px solid var(--line-2); border-radius: var(--r-sm);
  background: var(--paper); color: var(--ink);
  outline: none; transition: border-color .15s, box-shadow .15s;
}
.field input:focus, .field select:focus, .field textarea:focus {
  border-color: var(--green-700);
  box-shadow: 0 0 0 3px rgba(34,54,122,0.12);
}
.field textarea { resize: vertical; min-height: 120px; }
.field-help { font-size: 12px; color: var(--muted); }
.field-error { font-size: 12px; color: var(--maroon-700); }
.field input.invalid, .field select.invalid, .field textarea.invalid { border-color: var(--maroon-700); }

/* ============= TENDERS LIST ============= */
.tender-row {
  display: grid; grid-template-columns: 80px 1fr 160px 140px 140px 120px;
  gap: 16px; align-items: center;
  padding: 20px 24px;
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: var(--r-md);
  margin-bottom: 12px;
  transition: border-color .15s, box-shadow .15s;
}
.tender-row:hover { border-color: var(--green-700); box-shadow: var(--shadow-sm); }
.tender-num { font-family: var(--font-en); font-weight: 600; color: var(--maroon-700); }
.tender-title { font-weight: 600; font-size: 16px; margin: 0 0 4px; }
.tender-desc { font-size: 13px; color: var(--muted); margin: 0; }
.tender-meta { font-size: 13px; color: var(--ink-2); }
.tender-meta .lbl { display: block; font-size: 11px; color: var(--muted); letter-spacing: 1px; margin-bottom: 2px; }
.badge {
  display: inline-flex; padding: 4px 10px; font-size: 12px; font-weight: 600;
  border-radius: 99px; align-items: center; gap: 6px;
}
.badge-open { background: var(--green-50); color: var(--green-800); }
.badge-closing { background: #fef3e6; color: #b95d10; }
.badge-closed { background: #f0eee9; color: var(--muted); }

/* ============= MAP ============= */
.map-block {
  display: grid; grid-template-columns: 1fr 1fr; gap: 0;
  border-radius: var(--r-md); overflow: hidden;
  background: var(--paper); border: 1px solid var(--line);
}
.map-info { padding: 48px; display: flex; flex-direction: column; gap: 24px; }
.map-info h3 { font-size: 24px; margin: 0 0 8px; }
.map-info-item { display: flex; gap: 14px; align-items: start; padding-bottom: 20px; border-bottom: 1px solid var(--line); }
.map-info-item:last-child { border-bottom: 0; padding-bottom: 0; }
.map-info-item-icon {
  width: 40px; height: 40px; flex-shrink: 0;
  background: var(--green-50); color: var(--green-800);
  border-radius: var(--r-sm);
  display: grid; place-items: center;
}
.map-info-item h4 { font-size: 13px; color: var(--muted); font-weight: 500; margin: 0 0 4px; letter-spacing: 0.5px; }
.map-info-item p { margin: 0; font-size: 15.5px; line-height: 1.6; }
.map-iframe { background: #dde3f2; min-height: 460px; position: relative; }

/* ============= MISC ============= */
.bg-paper { background: var(--paper); }
.divider {
  height: 1px; background: var(--line); margin: 0 32px; max-width: 1320px;
  margin-left: auto; margin-right: auto;
}

/* Scroll fade-in */
.fade-in { opacity: 0; transform: translateY(16px); transition: opacity .8s, transform .8s; }
.fade-in.in { opacity: 1; transform: none; }

/* Scrollbar (subtle) */
::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-track { background: var(--bg); }
::-webkit-scrollbar-thumb { background: var(--line-2); border-radius: 5px; }
::-webkit-scrollbar-thumb:hover { background: var(--muted-2); }

/* Smaller widths */
@media (max-width: 1100px) {
  .about-grid { grid-template-columns: 1fr; gap: 40px; }
  .services-grid { grid-template-columns: repeat(2, 1fr); }
  .projects-grid { grid-template-columns: 1fr 1fr; grid-template-rows: auto; height: auto; }
  .projects-grid .project-card { aspect-ratio: 4/3; }
  .projects-grid .project-card:nth-child(1) { grid-row: auto; grid-column: span 2; aspect-ratio: 16/9; }
  .partners-grid { grid-template-columns: repeat(3, 1fr); }
  .partner-cell { border-left: 1px solid var(--line); border-bottom: 1px solid var(--line); }
  .news-grid { grid-template-columns: 1fr 1fr; }
  .news-grid .news-card:nth-child(3) { display: none; }
  .footer-top { grid-template-columns: 1fr 1fr; gap: 32px; }
  .stats-inner { grid-template-columns: repeat(2, 1fr); }
  .stat-cell:nth-child(2) { border-left: 0; }
  .map-block { grid-template-columns: 1fr; }
  .form-grid { grid-template-columns: 1fr; }
  .cta-inner { grid-template-columns: 1fr; }
  .hero-meta-inner { grid-template-columns: repeat(2, 1fr); gap: 16px; }
}
@media (max-width: 720px) {
  .nav-menu { display: none; }
  .topbar-contact .item:not(:first-child) { display: none; }
  .section { padding: 64px 20px; }
  .services-grid { grid-template-columns: 1fr; }
  .partners-grid { grid-template-columns: repeat(2, 1fr); }
  .partner-cell { border-left: 1px solid var(--line); }
  .news-grid { grid-template-columns: 1fr; }
  .news-grid .news-card:nth-child(3) { display: block; }
  .footer-top { grid-template-columns: 1fr; }
  .tender-row { grid-template-columns: 1fr; gap: 8px; padding: 16px; }
  .map-info { padding: 32px 24px; }
  .cta-inner { padding: 36px 28px; }
}

.nav-link{white-space:nowrap;padding:10px 10px}.nav-cta{white-space:nowrap}
.hero-title{line-height:1.25}
@media (max-width:1180px){.nav-menu{display:none}}
.nav-burger{display:none;width:44px;height:44px;border:1px solid var(--line-2);border-radius:var(--r-sm);place-items:center;color:var(--ink)}
.nav-drawer{display:none}
@media (max-width:1180px){.nav-burger{display:grid}.nav-drawer{display:flex;flex-direction:column;gap:2px;padding:8px 32px 16px;border-top:1px solid var(--line);background:var(--paper)}.nav-drawer .nav-link{cursor:pointer;padding:12px 4px}.nav-drawer .nav-link.active::after{display:none}.nav-drawer .nav-link.active{color:var(--maroon-700)}}
@media (max-width:520px){.nav-cta{display:none}.nav-logo{height:44px}}
@media (max-width:1100px){.hero{height:auto;min-height:0;max-height:none;flex-direction:column;align-items:stretch}.hero-inner{padding-top:64px;padding-bottom:40px}.hero-meta{position:relative}}

/* LTR overrides */
.nav-link.active::after{left:10px;right:10px}
.hero-title{line-height:1.1;letter-spacing:-1px;max-width:20ch}
.hero-meta-item,.hero-meta-item:first-child{border-right:0;padding-right:0;border-left:2px solid var(--maroon-700);padding-left:16px}
.btn:hover .btn-arrow{transform:translateX(4px)}
.service-num{left:auto;right:24px}
.service-card:hover .service-arrow{transform:translateX(6px)}
.stat-cell{border-right:0;border-left:1px solid rgba(255,255,255,0.12)}
.stat-cell:first-child{padding-right:32px;padding-left:0;border-left:0}
.stat-cell:last-child{border-left:1px solid rgba(255,255,255,0.12)}
.stat-num .plus{margin-right:0;margin-left:2px}
.partner-cell{border-left:0;border-right:1px solid var(--line)}
.partner-cell:nth-child(5n){border-right:0}
.section-eyebrow,.footer-col h4,.tender-meta .lbl,.news-cat,.project-tag{text-transform:uppercase}
.section-title,.page-header h1{letter-spacing:-1px}

/* Typography: Source Serif 4 headings + Source Sans 3 body */
:root{--font-ar:"Source Sans 3",system-ui,sans-serif;--font-en:"Source Sans 3",system-ui,sans-serif;--font-display:"Source Serif 4",Georgia,serif}
body{font-size:17px}
.hero-title,.section-title,.page-header h1,.cta-title,.project-title,.about-img-tag-num,.map-info h3{font-family:var(--font-display);font-weight:600;letter-spacing:-0.5px}
.hero-title{line-height:1.08}
.stat-num,.hero-meta-num{font-family:var(--font-display);font-weight:600;letter-spacing:-1px}
.service-title,.news-title,.tender-title{font-weight:600;letter-spacing:-0.1px}
.section-eyebrow,.footer-col h4{letter-spacing:2px;font-size:12.5px}

/* Refined nav */
.nav{background:rgba(255,255,255,0.97);backdrop-filter:saturate(1.4) blur(10px);border-bottom:1px solid var(--line);transition:box-shadow .2s}
.nav.is-scrolled{box-shadow:0 6px 24px -12px rgba(14,26,61,0.25)}
.nav-inner{padding:0 32px;height:84px;gap:32px}
.nav-logo{height:50px;flex-shrink:0}
.nav-menu{gap:2px;height:100%;align-items:stretch}
.nav-menu .nav-link{display:flex;align-items:center;padding:0 14px;font-size:15px;font-weight:500;color:var(--ink-2);border-radius:0}
.nav-menu .nav-link:hover{color:var(--green-800)}
.nav-menu .nav-link.active{color:var(--green-900);font-weight:600}
.nav-menu .nav-link.active::after{left:14px;right:14px;bottom:0;height:3px;background:var(--maroon-700);border-radius:3px 3px 0 0}
.nav-actions{display:flex;align-items:center;gap:14px;flex-shrink:0}
.nav-icon-btn{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;color:var(--ink-2);transition:background .15s,color .15s}
.nav-icon-btn:hover{background:var(--green-50);color:var(--green-800)}
.nav-sep{width:1px;height:28px;background:var(--line)}
.nav-cta{display:inline-flex;align-items:center;gap:8px;background:var(--green-900);padding:12px 20px;font-size:14.5px;font-weight:600;border-radius:999px}
.nav-cta:hover{background:var(--maroon-700)}
.nav-cta svg{transition:transform .2s}.nav-cta:hover svg{transform:translateX(3px)}
@media (max-width:1180px){.nav-inner{height:72px}.nav-sep,.nav-icon-btn{display:none}.nav-burger{border-radius:50%}}

/* Dropdown nav */
.nav-item{position:relative;display:flex;align-items:stretch}
.nav-caret{margin-left:6px;opacity:.6;transition:transform .2s}
.nav-item:hover .nav-caret{transform:rotate(180deg)}
.nav-dd{position:absolute;top:100%;left:0;padding-top:0;opacity:0;visibility:hidden;transform:translateY(6px);transition:opacity .18s,transform .18s,visibility .18s;z-index:60}
.nav-item:hover .nav-dd{opacity:1;visibility:visible;transform:none}
.nav-dd-inner{min-width:260px;background:#fff;border:1px solid var(--line);border-top:3px solid var(--maroon-700);border-radius:0 0 10px 10px;box-shadow:0 18px 40px -16px rgba(14,26,61,.3);padding:8px}
.nav-dd-inner a{display:block;padding:10px 14px;border-radius:6px;font-size:14.5px;color:var(--ink-2);cursor:pointer;white-space:nowrap}
.nav-dd-inner a:hover{background:var(--green-50);color:var(--green-800)}
.nav-drawer-sub{display:flex;flex-direction:column;padding:0 0 8px 14px;border-left:2px solid var(--line);margin-left:4px}
.nav-drawer-sub a{padding:8px 4px;font-size:14px;color:var(--muted);cursor:pointer}
/* Departments */
.dept-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:20px}
.dept-card{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-md);padding:32px 28px;display:flex;flex-direction:column;gap:14px;cursor:pointer;transition:border-color .2s,box-shadow .2s,transform .2s}
.dept-card:hover{border-color:var(--green-600);box-shadow:var(--shadow-md);transform:translateY(-3px)}
.dept-top{display:flex;justify-content:space-between;align-items:flex-start}
.dept-top .service-num{position:static}
.dept-list{list-style:none;margin:4px 0 8px;padding:14px 0 0;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:8px;font-size:14px;color:var(--ink-2)}
.dept-list li{display:flex;gap:10px;align-items:baseline}
.dept-list li::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--maroon-700);flex-shrink:0;transform:translateY(-1px)}
.dept-card .service-arrow{margin-top:auto}
/* Quality */
.quality{background:var(--bg);padding:0 32px 96px}
.quality-inner{max-width:1320px;margin:0 auto;background:var(--paper);border:1px solid var(--line);border-radius:var(--r-lg);padding:40px 48px;display:grid;grid-template-columns:auto 1fr;gap:48px;align-items:center}
.quality-badges{display:flex;gap:16px}
.q-badge{width:120px;height:120px;border-radius:50%;border:2px solid var(--green-800);display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--green-900)}
.q-badge span{font-size:12px;font-weight:600;letter-spacing:1.5px;color:var(--maroon-700)}
.q-badge strong{font-family:var(--font-display);font-size:30px;line-height:1.1}
.quality-text{margin:0;font-size:18px;line-height:1.7;color:var(--ink-2);max-width:70ch}
/* Publications */
.pub-list{display:flex;flex-direction:column;border-top:1px solid var(--line)}
.pub-row{display:grid;grid-template-columns:90px minmax(0,1fr) auto;gap:24px;align-items:center;padding:22px 0;border-bottom:1px solid var(--line)}
.pub-year{font-family:var(--font-display);font-size:26px;font-weight:600;color:var(--green-800)}
.pub-meta{display:flex;gap:14px;flex-wrap:wrap;font-size:13px;color:var(--muted);margin-bottom:6px}
.pub-title{margin:0;font-size:18px;font-weight:600;line-height:1.4;text-wrap:pretty}
.pub-dl{display:inline-flex;align-items:center;gap:8px;padding:10px 16px;border:1px solid var(--line-2);border-radius:999px;font-size:13.5px;font-weight:600;color:var(--green-800);transition:all .15s}
.pub-dl:hover{background:var(--green-900);color:#fff;border-color:var(--green-900)}
/* Courses */
.course-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:20px}
.course-card{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-md);padding:28px;display:flex;flex-direction:column;gap:14px}
.course-date{display:inline-flex;gap:8px;align-items:center;font-size:13px;font-weight:600;color:var(--maroon-700)}
.course-title{margin:0;font-size:20px;font-weight:600;line-height:1.35}
.course-meta{display:flex;flex-wrap:wrap;gap:8px}
.course-meta span{font-size:12.5px;padding:4px 10px;border-radius:999px;background:var(--green-50);color:var(--green-800)}
.course-foot{margin-top:auto;padding-top:16px;border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:12px;font-size:13px;color:var(--muted);flex-wrap:wrap}
/* Sub-nav on inner pages */
.subnav{position:sticky;top:84px;z-index:40;background:#fff;border-bottom:1px solid var(--line)}
.subnav-inner{max-width:1320px;margin:0 auto;padding:0 32px;display:flex;gap:28px;overflow-x:auto}
.subnav a{padding:16px 0;font-size:14.5px;font-weight:500;color:var(--muted);white-space:nowrap;cursor:pointer;border-bottom:2px solid transparent}
.subnav a:hover{color:var(--green-800);border-bottom-color:var(--maroon-700)}
.anchor{scroll-margin-top:150px}
/* Data table */
.table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--r-md);background:var(--paper)}
.dtable{width:100%;border-collapse:collapse;font-size:14.5px}
.dtable th{text-align:left;font-size:12px;letter-spacing:1.2px;text-transform:uppercase;color:var(--muted);font-weight:600;padding:14px 20px;background:var(--bg);border-bottom:1px solid var(--line)}
.dtable td{padding:16px 20px;border-bottom:1px solid var(--line)}
.dtable tr:last-child td{border-bottom:0}
/* Org chart */
.org{display:flex;flex-direction:column;align-items:center;gap:0}
.org-node{background:var(--green-900);color:#fff;padding:16px 28px;border-radius:8px;font-weight:600;text-align:center}
.org-line{width:2px;height:28px;background:var(--line-2)}
.org-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;width:100%;position:relative;padding-top:28px;border-top:2px solid var(--line-2)}
.org-leaf{background:var(--paper);border:1px solid var(--line);border-top:3px solid var(--maroon-700);border-radius:8px;padding:18px;font-size:14.5px;font-weight:600;text-align:center}
.org-leaf.support{border-top-color:var(--green-600);color:var(--ink-2)}
@media (max-width:1180px){.subnav{top:72px}}
@media (max-width:720px){.quality-inner{grid-template-columns:1fr;padding:32px 24px}.pub-row{grid-template-columns:1fr;gap:8px}.q-badge{width:96px;height:96px}}

.footer-social{display:flex;gap:10px}
.footer-social a{width:40px;height:40px;border-radius:10px;background:transparent;border:1px solid rgba(255,255,255,0.16);color:rgba(255,255,255,0.78);display:grid;place-items:center;transition:background .2s,border-color .2s,color .2s,transform .2s}
.footer-social a:hover{background:#fff;border-color:#fff;color:var(--green-900);transform:translateY(-2px)}

.footer-brand .logo{background:transparent;padding:0;border-radius:0}
.footer-brand .logo img{height:72px;filter:brightness(0) invert(1)}

/* Font themes */
html[data-font="archivo"]{--font-ar:"Archivo",system-ui,sans-serif;--font-en:"Archivo",system-ui,sans-serif;--font-display:"Archivo",system-ui,sans-serif}
html[data-font="archivo"] .hero-title,html[data-font="archivo"] .section-title,html[data-font="archivo"] .page-header h1,html[data-font="archivo"] .cta-title{font-weight:700;letter-spacing:-1.2px}
html[data-font="manrope"]{--font-ar:"Manrope",system-ui,sans-serif;--font-en:"Manrope",system-ui,sans-serif;--font-display:"Manrope",system-ui,sans-serif}
html[data-font="manrope"] .hero-title,html[data-font="manrope"] .section-title,html[data-font="manrope"] .page-header h1,html[data-font="manrope"] .cta-title{font-weight:700;letter-spacing:-1.4px}
html[data-font="newsreader"]{--font-ar:"Public Sans",system-ui,sans-serif;--font-en:"Public Sans",system-ui,sans-serif;--font-display:"Newsreader",Georgia,serif}
html[data-font="newsreader"] .hero-title,html[data-font="newsreader"] .section-title,html[data-font="newsreader"] .page-header h1,html[data-font="newsreader"] .cta-title{font-weight:500;letter-spacing:-0.8px}
html[data-font="source"]{--font-ar:"Source Sans 3",system-ui,sans-serif;--font-en:"Source Sans 3",system-ui,sans-serif;--font-display:"Source Serif 4",Georgia,serif}
body,input,select,textarea,button{font-family:var(--font-ar)}
.footer-brand .logo{margin-bottom:10px;line-height:0}.footer-brand .footer-about{margin-top:0}
.topbar-social{display:flex;gap:8px}
.topbar-social a{width:28px;height:28px;border-radius:7px;border:1px solid rgba(255,255,255,0.16);color:rgba(255,255,255,0.78);display:grid;place-items:center;opacity:1;transition:background .2s,border-color .2s,color .2s}
.topbar-social a:hover{background:#fff;border-color:#fff;color:var(--green-900)}
.nav-logo{height:62px}@media (max-width:1180px){.nav-logo{height:54px}}@media (max-width:520px){.nav-logo{height:46px}}

.hero-slide{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:70% center;opacity:0;transform:scale(1.08);transition:opacity 1.4s ease,transform 7s ease-out}
.hero-slide.on{opacity:1;transform:scale(1)}
.hero-overlay-photos{background:linear-gradient(90deg,rgba(10,20,48,0.92) 0%,rgba(10,20,48,0.75) 38%,rgba(10,20,48,0.2) 75%,rgba(10,20,48,0.1) 100%),linear-gradient(180deg,rgba(0,0,0,0) 55%,rgba(0,0,0,0.45) 100%)!important}
.hero-dots{position:absolute;right:32px;bottom:130px;z-index:3;display:flex;gap:8px}
.hero-dots button{width:28px;height:4px;border-radius:2px;background:rgba(255,255,255,0.35);transition:background .3s,width .3s}
.hero-dots button.on{width:44px;background:#fff}
@media (max-width:1100px){.hero-dots{bottom:auto;top:24px}}

/* Department cards v2 */
.dept-grid{grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:24px}
.dept-card{position:relative;overflow:hidden;background:#fff;border:1px solid var(--line);border-radius:14px;padding:32px 28px 28px;gap:0;transition:transform .25s,box-shadow .25s,border-color .25s}
.dept-card::before{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:var(--maroon-700);transform:scaleX(0);transform-origin:left;transition:transform .35s}
.dept-card:hover{transform:translateY(-4px);border-color:transparent;box-shadow:0 22px 48px -22px rgba(14,26,61,.35)}
.dept-card:hover::before{transform:scaleX(1)}
.dept-watermark{position:absolute;right:-34px;bottom:-30px;color:var(--green-900);opacity:.045;pointer-events:none;transition:opacity .3s,transform .5s}
.dept-card:hover .dept-watermark{opacity:.08;transform:rotate(-6deg) scale(1.05)}
.dept-top{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:26px}
.dept-icon{width:64px;height:64px;border-radius:14px;background:var(--green-900);color:#fff;display:grid;place-items:center;box-shadow:0 10px 22px -12px rgba(14,26,61,.6);transition:background .25s}
.dept-card:hover .dept-icon{background:var(--maroon-700)}
.dept-num{font-family:var(--font-display);font-size:15px;font-weight:600;color:var(--muted-2);letter-spacing:1px}
.dept-title{margin:0;font-family:var(--font-display);font-size:22px;font-weight:700;line-height:1.2;letter-spacing:-.4px;color:var(--ink)}
.dept-kicker{font-size:12px;font-weight:600;letter-spacing:2px;text-transform:uppercase;color:var(--maroon-700);margin:6px 0 14px}
.dept-desc{margin:0 0 20px;font-size:14.5px;line-height:1.65;color:var(--muted)}
.dept-list{list-style:none;margin:0 0 24px;padding:18px 0 0;border-top:1px solid var(--line);gap:10px;font-size:14px;color:var(--ink-2);position:relative}
.dept-list li::before{display:none}
.dept-list li{align-items:center;gap:10px}
.dept-list li svg{flex-shrink:0;width:20px;height:20px;padding:3px;border-radius:50%;background:var(--green-50);color:var(--green-800)}
.dept-link{margin-top:auto;display:inline-flex;align-items:center;gap:8px;font-size:14px;font-weight:600;color:var(--green-800);position:relative}
.dept-link svg{transition:transform .2s}
.dept-card:hover .dept-link{color:var(--maroon-700)}
.dept-card:hover .dept-link svg{transform:translateX(4px)}

/* Quality v2 */
.quality2{padding:0 32px 96px;background:var(--bg)}
.quality2-inner{max-width:1320px;margin:0 auto;position:relative;overflow:hidden;background:var(--green-900);color:#fff;border-radius:18px;padding:64px 56px;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:56px;align-items:center}
.quality2-inner::before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.04) 1px,transparent 1px);background-size:56px 56px;pointer-events:none}
.quality2-inner::after{content:"";position:absolute;width:420px;height:420px;right:-140px;top:-160px;border-radius:50%;border:1px solid rgba(255,255,255,.08);box-shadow:0 0 0 60px rgba(255,255,255,.02),0 0 0 120px rgba(255,255,255,.015);pointer-events:none}
.quality2-copy,.quality2-certs{position:relative;z-index:1}
.quality2 .section-eyebrow{color:#f0b8ae}.quality2 .section-eyebrow::before{background:#f0b8ae}
.quality2-title{font-family:var(--font-display);font-size:clamp(26px,2.8vw,38px);line-height:1.15;font-weight:700;letter-spacing:-1px;margin:0 0 18px;text-wrap:balance}
.quality2-text{margin:0;font-size:16px;line-height:1.75;color:rgba(255,255,255,.78);max-width:62ch}
.quality2-certs{display:flex;flex-direction:column;gap:16px}
.cert{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:20px;align-items:center;padding:24px;border-radius:14px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.14);backdrop-filter:blur(4px);transition:background .2s,border-color .2s}
.cert:hover{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.28)}
.cert-seal{width:60px;height:60px;border-radius:50%;background:#fff;color:var(--green-900);display:grid;place-items:center;box-shadow:0 0 0 5px rgba(255,255,255,.12)}
.cert-std{font-family:var(--font-display);font-size:22px;font-weight:700;letter-spacing:-.3px}
.cert-t{font-size:14px;font-weight:600;color:#f0b8ae;margin-top:2px}
.cert-d{font-size:13px;color:rgba(255,255,255,.65);margin-top:4px;line-height:1.5}
.cert-check{width:28px;height:28px;border-radius:50%;background:var(--maroon-700);display:grid;place-items:center}
@media (max-width:1000px){.quality2-inner{grid-template-columns:1fr;padding:44px 28px;gap:36px}}
@media (max-width:720px){.quality2{padding:0 20px 64px}}

/* Footer v2 */
.ft{position:relative;background:var(--green-900);color:rgba(255,255,255,.72);padding:80px 32px 0;overflow:hidden}
.ft::before{content:"";position:absolute;left:0;right:0;top:0;height:4px;background:linear-gradient(90deg,var(--maroon-700) 0 30%,rgba(255,255,255,.12) 30%)}
.ft::after{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);background-size:64px 64px;mask-image:linear-gradient(180deg,#000,transparent 70%);pointer-events:none}
.ft-inner{max-width:1320px;margin:0 auto;position:relative;z-index:1}
.ft-main{display:grid;grid-template-columns:minmax(0,1.6fr) repeat(3,minmax(0,.8fr)) minmax(0,1.3fr);gap:48px;padding-bottom:64px}
.ft-logo{height:72px;width:auto;filter:brightness(0) invert(1);margin-bottom:22px}
.ft-about{margin:0 0 28px;font-size:14.5px;line-height:1.8;color:rgba(255,255,255,.66);max-width:44ch}
.ft-social{display:flex;gap:10px}
.ft-social a{width:40px;height:40px;border-radius:10px;border:1px solid rgba(255,255,255,.16);color:rgba(255,255,255,.8);display:grid;place-items:center;transition:all .2s}
.ft-social a:hover{background:#fff;border-color:#fff;color:var(--green-900);transform:translateY(-2px)}
.ft h4{margin:0 0 22px;color:#fff;font-size:13px;font-weight:700;letter-spacing:2px;text-transform:uppercase;position:relative;padding-bottom:14px}
.ft h4::after{content:"";position:absolute;left:0;bottom:0;width:24px;height:2px;background:var(--maroon-500)}
.ft-col ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:13px}
.ft-col a{font-size:14.5px;cursor:pointer;color:rgba(255,255,255,.7);display:inline-flex;align-items:center;gap:0;transition:color .15s,gap .2s}
.ft-col a::before{content:"";width:0;height:1px;background:var(--maroon-500);transition:width .2s}
.ft-col a:hover{color:#fff;gap:8px}.ft-col a:hover::before{width:10px}
.ft-contact{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);border-radius:14px;padding:28px}
.ft-ci{display:flex;gap:14px;align-items:flex-start;font-size:14.5px;color:#fff;padding:12px 0;border-top:1px solid rgba(255,255,255,.08)}
.ft-contact h4+.ft-ci{border-top:0;padding-top:0}
.ft-ci>span{width:34px;height:34px;flex-shrink:0;border-radius:8px;background:rgba(255,255,255,.08);color:#f0b8ae;display:grid;place-items:center}
.ft-ci small{display:block;font-size:11.5px;letter-spacing:1px;text-transform:uppercase;color:rgba(255,255,255,.5);margin-bottom:2px}
.ft-bottom{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap;padding:24px 0;border-top:1px solid rgba(255,255,255,.1);font-size:13.5px;color:rgba(255,255,255,.55)}
.ft-legal{display:flex;gap:24px}
.ft-legal a:hover{color:#fff}
.ft-top{display:inline-flex;align-items:center;gap:10px;font-size:13.5px;font-weight:600;color:rgba(255,255,255,.8)}
.ft-top span{width:34px;height:34px;border-radius:50%;border:1px solid rgba(255,255,255,.2);display:grid;place-items:center;transition:all .2s}
.ft-top:hover span{background:var(--maroon-700);border-color:var(--maroon-700);color:#fff;transform:translateY(-2px)}
@media (max-width:1200px){.ft-main{grid-template-columns:repeat(3,minmax(0,1fr))}.ft-brand{grid-column:1/-1}.ft-contact{grid-column:1/-1;display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:0 24px}.ft-contact h4{grid-column:1/-1}.ft-ci{border-top:0}}
@media (max-width:640px){.ft{padding:56px 20px 0}.ft-main{grid-template-columns:1fr 1fr;gap:36px}.ft-bottom{flex-direction:column;align-items:flex-start}}
.ft-top{white-space:nowrap;flex-shrink:0}
@media (max-width:1200px){.ft-contact .ft-ci,.ft-contact h4+.ft-ci{padding:10px 0}}

/* News v2 */
.news2{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:28px}
.nf,.ni{background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden;cursor:pointer;transition:box-shadow .25s,transform .25s,border-color .25s}
.nf:hover,.ni:hover{transform:translateY(-3px);border-color:transparent;box-shadow:0 22px 48px -24px rgba(14,26,61,.35)}
.nf-img{position:relative;aspect-ratio:16/9;overflow:hidden}
.nf-img img,.ni-img img{width:100%;height:100%;object-fit:cover;transition:transform .6s}
.nf:hover .nf-img img,.ni:hover .ni-img img{transform:scale(1.05)}
.nf-cat{position:absolute;left:20px;top:20px;background:var(--maroon-700);color:#fff;font-size:12px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;padding:6px 12px;border-radius:999px}
.nf-body{padding:28px 32px 32px}
.nf-date{display:inline-flex;align-items:center;gap:8px;font-size:13.5px;color:var(--muted);margin-bottom:12px}
.nf-title{margin:0 0 12px;font-family:var(--font-display);font-size:26px;font-weight:700;line-height:1.25;letter-spacing:-.5px;text-wrap:pretty}
.nf-excerpt{margin:0 0 22px;font-size:15.5px;line-height:1.7;color:var(--muted)}
.nf-link{display:inline-flex;align-items:center;gap:8px;font-size:14px;font-weight:600;color:var(--green-800)}
.nf-link svg{transition:transform .2s}
.nf:hover .nf-link,.ni:hover .nf-link{color:var(--maroon-700)}
.nf:hover .nf-link svg,.ni:hover .nf-link svg{transform:translateX(4px)}
.news2-side{display:flex;flex-direction:column;gap:28px}
.ni{display:grid;grid-template-columns:42% minmax(0,1fr);flex:1}
.ni-img{overflow:hidden;min-height:180px}
.ni-body{padding:24px;display:flex;flex-direction:column;gap:10px}
.ni-meta{display:flex;align-items:center;gap:12px;flex-wrap:wrap;font-size:13px}
.ni-cat{color:var(--maroon-700);font-weight:700;letter-spacing:1.5px;text-transform:uppercase;font-size:12px}
.ni-date{color:var(--muted);padding-left:12px;border-left:1px solid var(--line-2)}
.ni-title{margin:0;font-size:18px;font-weight:700;line-height:1.35;letter-spacing:-.2px;text-wrap:pretty}
.ni .nf-link{margin-top:auto}
@media (max-width:1000px){.news2{grid-template-columns:1fr}}
@media (max-width:560px){.ni{grid-template-columns:1fr}.ni-img{aspect-ratio:16/9;min-height:0}.nf-body{padding:22px}}

/* News v3 — editorial */
.news3{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:40px;align-items:stretch}
.nf3{position:relative;min-height:540px;border-radius:16px;overflow:hidden;cursor:pointer;background:var(--green-900);isolation:isolate}
.nf3 img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1s ease}
.nf3:hover img{transform:scale(1.05)}
.nf3-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,20,48,0) 25%,rgba(10,20,48,.55) 55%,rgba(10,20,48,.95) 100%)}
.nf3-body{position:absolute;left:0;right:0;bottom:0;padding:40px;color:#fff}
.nf3-meta{display:flex;align-items:center;gap:14px;font-size:13.5px;color:rgba(255,255,255,.8);margin-bottom:16px}
.nf3-cat{background:var(--maroon-700);color:#fff;font-size:11.5px;font-weight:700;letter-spacing:1.6px;text-transform:uppercase;padding:6px 12px;border-radius:999px}
.nf3-title{margin:0 0 14px;font-family:var(--font-display);font-size:clamp(24px,2.4vw,34px);font-weight:700;line-height:1.18;letter-spacing:-.8px;max-width:24ch;text-wrap:balance}
.nf3-excerpt{margin:0 0 26px;font-size:15.5px;line-height:1.7;color:rgba(255,255,255,.78);max-width:56ch}
.nf3-link{display:inline-flex;align-items:center;gap:12px;font-size:14.5px;font-weight:600}
.nf3-arrow{width:38px;height:38px;border-radius:50%;border:1px solid rgba(255,255,255,.4);display:grid;place-items:center;transition:all .25s}
.nf3:hover .nf3-arrow{background:#fff;color:var(--green-900);border-color:#fff;transform:translateX(4px)}
.news3-side{display:flex;flex-direction:column}
.news3-label{font-size:12px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--muted);padding-bottom:14px;border-bottom:2px solid var(--ink)}
.news3-list{display:flex;flex-direction:column;flex:1}
.ni3{display:grid;grid-template-columns:64px minmax(0,1fr) 96px;gap:20px;align-items:center;padding:24px 0;border-bottom:1px solid var(--line);cursor:pointer}
.ni3-date{text-align:left}
.ni3-date strong{display:block;font-family:var(--font-display);font-size:34px;font-weight:700;line-height:1;color:var(--green-900);letter-spacing:-1px}
.ni3-date span{display:block;font-size:12px;color:var(--muted);letter-spacing:1px;text-transform:uppercase;margin-top:4px}
.ni3-cat{font-size:11.5px;font-weight:700;letter-spacing:1.6px;text-transform:uppercase;color:var(--maroon-700);margin-bottom:6px}
.ni3-title{margin:0;font-size:17px;font-weight:700;line-height:1.4;letter-spacing:-.2px;text-wrap:pretty;transition:color .2s}
.ni3:hover .ni3-title{color:var(--maroon-700)}
.ni3-thumb{width:96px;height:72px;border-radius:10px;overflow:hidden}
.ni3-thumb img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.ni3:hover .ni3-thumb img{transform:scale(1.08)}
.ev3{margin-top:24px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:18px;align-items:center;padding:20px;border-radius:14px;background:var(--green-900);color:#fff;cursor:pointer}
.ev3-cal{width:62px;border-radius:10px;overflow:hidden;background:#fff;text-align:center}
.ev3-cal span{display:block;background:var(--maroon-700);color:#fff;font-size:11px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;padding:4px 0}
.ev3-cal strong{display:block;font-family:var(--font-display);font-size:26px;font-weight:700;color:var(--green-900);padding:6px 0 8px;line-height:1}
.ev3-tag{font-size:11px;font-weight:700;letter-spacing:1.6px;text-transform:uppercase;color:#f0b8ae;margin-bottom:4px}
.ev3-title{font-size:15.5px;font-weight:600;line-height:1.35}
.ev3-place{font-size:12.5px;color:rgba(255,255,255,.65);margin-top:6px;display:flex;align-items:center;gap:6px}
.ev3-go{width:38px;height:38px;border-radius:50%;border:1px solid rgba(255,255,255,.3);display:grid;place-items:center;transition:all .25s}
.ev3:hover .ev3-go{background:#fff;color:var(--green-900);transform:translateX(3px)}
@media (max-width:1000px){.news3{grid-template-columns:1fr}.nf3{min-height:460px}}
@media (max-width:560px){.nf3-body{padding:24px}.ni3{grid-template-columns:52px minmax(0,1fr)}.ni3-thumb{display:none}}
.nav-dd-inner a,.nav-drawer-sub a{cursor:default}

/* Journal publications */
.pj-wrap{display:grid;grid-template-columns:340px minmax(0,1fr);gap:48px;align-items:start}
.pj-card{position:sticky;top:110px;background:var(--green-900);color:#fff;border-radius:16px;overflow:hidden}
.pj-cover{display:block;padding:28px 28px 0}
.pj-cover img{width:100%;aspect-ratio:3/4;object-fit:cover;border-radius:6px;box-shadow:0 24px 40px -18px rgba(0,0,0,.6);transition:transform .4s}
.pj-cover:hover img{transform:translateY(-4px) rotate(-1deg)}
.pj-card-body{padding:24px 28px 28px}
.pj-card-tag{font-size:11.5px;font-weight:700;letter-spacing:1.6px;text-transform:uppercase;color:#f0b8ae;margin-bottom:8px}
.pj-card-title{margin:0 0 18px;font-family:var(--font-display);font-size:22px;font-weight:700;line-height:1.2;letter-spacing:-.4px}
.pj-issn{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.12);border-radius:10px;overflow:hidden;margin-bottom:14px}
.pj-issn>div{background:var(--green-900);padding:10px 12px;font-size:14px;font-weight:600}
.pj-issn small,.pj-issue small{display:block;font-size:10.5px;letter-spacing:1.2px;text-transform:uppercase;color:rgba(255,255,255,.55);font-weight:600;margin-bottom:2px}
.pj-issue{font-size:16px;font-weight:700;margin-bottom:20px}
.pj-issue span{display:block;font-size:12.5px;font-weight:400;color:rgba(255,255,255,.6);margin-top:2px}
.pj-actions .btn{width:100%;justify-content:center;background:#fff;color:var(--green-900)}
.pj-actions .btn:hover{background:var(--maroon-700);color:#fff}
.pj-links{display:flex;justify-content:space-between;margin-top:14px;font-size:13.5px}
.pj-links a{color:rgba(255,255,255,.75);border-bottom:1px solid rgba(255,255,255,.25);padding-bottom:1px}
.pj-links a:hover{color:#fff;border-color:#fff}
.pj-list-hd{display:flex;justify-content:space-between;align-items:center;padding-bottom:14px;border-bottom:2px solid var(--ink);font-size:12px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--muted)}
.pj-list-hd a{display:inline-flex;gap:6px;align-items:center;letter-spacing:.5px;text-transform:none;font-size:14px;color:var(--green-800)}
.pj-row{display:grid;grid-template-columns:44px minmax(0,1fr) auto;gap:20px;padding:24px 0;border-bottom:1px solid var(--line);align-items:start}
.pj-idx{font-family:var(--font-display);font-size:15px;font-weight:700;color:var(--muted-2);padding-top:2px}
.pj-meta{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:12.5px;color:var(--muted);margin-bottom:8px}
.pj-sec{font-weight:700;letter-spacing:1.4px;text-transform:uppercase;color:var(--maroon-700);font-size:11.5px}
.pj-title{display:block;font-size:15.5px;font-weight:700;line-height:1.45;letter-spacing:.2px;color:var(--ink);text-wrap:pretty;transition:color .2s}
.pj-title:hover{color:var(--maroon-700)}
.pj-authors{margin-top:8px;font-size:13.5px;color:var(--ink-2)}
.pj-side{display:flex;flex-direction:column;align-items:flex-end;gap:10px}
.pj-stat{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;color:var(--muted);white-space:nowrap}
.pj-pdf{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border-radius:999px;border:1px solid var(--line-2);font-size:13px;font-weight:600;color:var(--green-800);white-space:nowrap;transition:all .2s}
.pj-pdf:hover{background:var(--green-900);border-color:var(--green-900);color:#fff}
@media (max-width:1000px){.pj-wrap{grid-template-columns:1fr}.pj-card{position:static;display:grid;grid-template-columns:200px minmax(0,1fr)}.pj-cover{padding:24px 0 24px 24px}}
@media (max-width:600px){.pj-card{grid-template-columns:1fr}.pj-cover{padding:24px 24px 0}.pj-cover img{max-width:200px}.pj-row{grid-template-columns:minmax(0,1fr)}.pj-idx{display:none}.pj-side{flex-direction:row;align-items:center}}
.nf3-excerpt{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.news-excerpt{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}

/* ===== Mobile polish ===== */
html,body{overflow-x:hidden}
@media (max-width:1180px){
  .nav-drawer{position:absolute;left:0;right:0;top:100%;max-height:calc(100vh - 72px);overflow-y:auto;box-shadow:0 20px 40px -20px rgba(14,26,61,.35);padding:8px 24px 24px}
  .nav-drawer>div{border-bottom:1px solid var(--line)}
  .nav-drawer .nav-link{display:block;padding:16px 0;font-size:16px;font-weight:600;color:var(--ink)}
  .nav-drawer-sub{margin:0 0 12px;padding-left:14px}
  .nav-drawer>a.nav-link{margin-top:16px;text-align:center;background:var(--green-900);color:#fff;border-radius:999px;padding:14px}
}
@media (max-width:720px){
  body{font-size:16px}
  .topbar-inner{padding:8px 20px}
  .topbar-contact{gap:0}
  .topbar-contact .item:not(:first-child){display:none}
  .nav-inner{padding:0 20px;height:68px;gap:12px}
  .nav-logo{height:44px}
  .nav-cta{display:none}
  .nav-burger{width:44px;height:44px}
  .subnav{top:68px}.subnav-inner{padding:0 20px;gap:22px}
  .hero-inner{padding:48px 20px 32px}
  .hero-eyebrow{font-size:11.5px;padding:6px 12px;margin-bottom:18px;max-width:100%}
  .hero-eyebrow span:last-child{white-space:normal}
  .hero-title{font-size:34px;line-height:1.12;letter-spacing:-.8px;margin-bottom:16px}
  .hero-sub{font-size:15.5px;margin-bottom:26px}
  .hero-actions{flex-direction:column;align-items:stretch;gap:10px}
  .hero-actions .btn{justify-content:center;padding:15px 20px}
  .hero-meta{padding:20px}
  .hero-meta-inner{grid-template-columns:1fr 1fr;gap:18px 16px}
  .hero-meta-num{font-size:24px}
  .hero-meta-label{font-size:12px}
  .hero-dots{top:16px;right:20px}
  .section{padding:64px 20px}
  .section-hd{flex-direction:column;align-items:flex-start;gap:14px;margin-bottom:32px}
  .section-title{font-size:28px;line-height:1.18}
  .section-desc{font-size:15.5px}
  .about-grid{gap:32px}
  .about-img{aspect-ratio:4/3}
  .about-img-tag-num{font-size:42px}
  .about-body p{font-size:15.5px;line-height:1.75}
  .about-body p:first-of-type{font-size:16.5px}
  .about-body .btn{width:100%;justify-content:center}
  .stats{padding:48px 20px}
  .stats-inner{grid-template-columns:1fr 1fr;gap:0}
  .stat-cell,.stat-cell:first-child{padding:20px 12px;border-left:0;border-bottom:1px solid rgba(255,255,255,.12)}
  .stat-cell:nth-child(odd){border-right:1px solid rgba(255,255,255,.12)}
  .stat-cell:nth-last-child(-n+2){border-bottom:0}
  .stat-cell:last-child{border-left:0}
  .stat-num{font-size:40px}
  .stat-label{font-size:13px;margin-top:8px}
  .dept-grid{grid-template-columns:1fr;gap:16px}
  .dept-card{padding:26px 22px}
  .dept-icon{width:56px;height:56px}
  .dept-title{font-size:20px}
  .quality2{padding:0 20px 64px}
  .quality2-inner{padding:36px 22px;border-radius:14px;gap:28px}
  .quality2-title{font-size:25px}
  .quality2-text{font-size:15px}
  .cert{grid-template-columns:auto minmax(0,1fr);padding:18px;gap:14px}
  .cert-check{display:none}
  .cert-seal{width:48px;height:48px}
  .cert-std{font-size:19px}
  .pj-card{grid-template-columns:1fr}
  .pj-cover{padding:22px 22px 0;display:flex;justify-content:center}
  .pj-cover img{max-width:180px}
  .pj-card-body{padding:20px 22px 24px}
  .pj-row{grid-template-columns:minmax(0,1fr);gap:10px;padding:20px 0}
  .pj-idx{display:none}
  .pj-title{font-size:14.5px}
  .pj-side{flex-direction:row;justify-content:space-between;align-items:center}
  .news3{gap:28px}
  .nf3{min-height:440px;border-radius:14px}
  .nf3-body{padding:22px}
  .nf3-title{font-size:22px}
  .nf3-excerpt{font-size:14.5px;margin-bottom:18px}
  .ni3{grid-template-columns:52px minmax(0,1fr) 72px;gap:14px;padding:18px 0}
  .ni3-thumb{display:block;width:72px;height:56px}
  .ni3-date strong{font-size:28px}
  .ni3-title{font-size:15px}
  .ev3{grid-template-columns:auto minmax(0,1fr);padding:16px}
  .ev3-go{display:none}
  .partners-grid{grid-template-columns:1fr 1fr}
  .partner-cell{padding:20px;aspect-ratio:auto;min-height:96px;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}
  .partner-cell:nth-child(2n){border-right:0}
  .partner-cell:nth-last-child(-n+2){border-bottom:0}
  .partner-logo{font-size:17px}
  .cta{padding:0 20px 64px}
  .cta-inner{padding:32px 22px;gap:24px;border-radius:14px}
  .cta-title{font-size:24px}
  .cta-actions .btn{justify-content:center}
  .page-header{padding:48px 20px 40px}
  .page-header h1{font-size:32px}
  .page-header p{font-size:15.5px}
  .ft{padding:56px 20px 0}
  .ft-main{grid-template-columns:1fr 1fr;gap:36px 20px;padding-bottom:40px}
  .ft-brand,.ft-contact{grid-column:1/-1}
  .ft-contact{display:block;padding:22px}
  .ft-contact .ft-ci,.ft-contact h4+.ft-ci{padding:12px 0;border-top:1px solid rgba(255,255,255,.08)}
  .ft-contact h4+.ft-ci{border-top:0;padding-top:0}
  .ft-logo{height:60px}
  .ft-bottom{flex-direction:column;align-items:flex-start;gap:14px;padding:22px 0 28px}
  .ft-legal{gap:18px;flex-wrap:wrap}
  .form-grid{grid-template-columns:1fr}
  .map-info{padding:28px 22px}
  .map-iframe{min-height:280px}
  .dtable th,.dtable td{padding:12px 14px;white-space:nowrap}
}
@media (max-width:380px){
  .hero-title{font-size:30px}
  .ft-main{grid-template-columns:1fr}
  .ni3{grid-template-columns:48px minmax(0,1fr)}.ni3-thumb{display:none}
}
.nav-cta{border-radius:var(--r-sm);background:var(--maroon-700);padding:13px 22px;font-size:15px}.nav-cta:hover{background:var(--maroon-600)}

/* Unified button hover */
.btn,.nav-cta{transition:background .25s,color .25s,border-color .25s,box-shadow .25s,transform .25s}
.btn-primary:hover,.nav-cta:hover{background:var(--green-900);color:#fff;transform:translateY(-2px);box-shadow:0 12px 24px -12px rgba(14,26,61,.55)}
.btn-primary:active,.nav-cta:active,.btn-ghost:active{transform:translateY(0);box-shadow:none}
.hero .btn-primary:hover,.cta .btn-primary:hover,.quality2 .btn-primary:hover{background:#fff;color:var(--green-900);box-shadow:0 12px 24px -12px rgba(0,0,0,.45)}
.btn-ghost:hover{background:#fff;color:var(--green-900);border-color:#fff;transform:translateY(-2px)}
.hero-abstract .btn-ghost:hover,.section .btn-ghost:hover{background:var(--green-900);color:#fff;border-color:var(--green-900)}
.pj-actions .btn:hover{background:var(--maroon-700);color:#fff}
.btn:hover .btn-arrow,.nav-cta:hover svg{transform:translateX(4px)}
