:root {
  --erp-sidebar: #172033;
  --erp-sidebar-text: #d8e2f0;
  --erp-accent: #0f8b8d;
  --erp-bg: #f5f7fb;
  --erp-card: #ffffff;
  --erp-text: #1f2937;
  --erp-border: #d9e0ea;
}

[data-theme="dark"] {
  --erp-sidebar: #101827;
  --erp-sidebar-text: #e5ecf7;
  --erp-accent: #2db3ad;
  --erp-bg: #111827;
  --erp-card: #1f2937;
  --erp-text: #e5e7eb;
  --erp-border: #374151;
}

body {
  background: var(--erp-bg);
  color: var(--erp-text);
  font-family: "Inter", "Noto Sans Bengali", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

.auth-page {
  min-height: 100vh;
  display: grid;
  place-items: center;
  background: linear-gradient(135deg, #ecf7f6 0%, #eef2f7 60%, #fff 100%);
}

.auth-box {
  width: min(440px, calc(100vw - 32px));
  background: #fff;
  border: 1px solid var(--erp-border);
  border-radius: 8px;
  padding: 28px;
  box-shadow: 0 20px 55px rgba(20, 35, 60, 0.12);
}

.app-shell {
  display: grid;
  grid-template-columns: 270px 1fr;
  min-height: 100vh;
}

.sidebar {
  background: var(--erp-sidebar);
  color: var(--erp-sidebar-text);
  padding: 18px 14px;
  position: sticky;
  top: 0;
  height: 100vh;
  overflow-y: auto;
}

.brand {
  display: flex;
  align-items: center;
  gap: 10px;
  font-weight: 700;
  color: #fff;
  margin-bottom: 18px;
}

.brand-mark {
  width: 36px;
  height: 36px;
  border-radius: 8px;
  display: grid;
  place-items: center;
  background: var(--erp-accent);
}

.brand-mark img,
.topbar-logo,
.login-logo {
  width: 34px;
  height: 34px;
  object-fit: contain;
}

.login-logo {
  width: 52px;
  height: 52px;
  margin-bottom: 12px;
}

.nav-section {
  color: #9fb0c7;
  font-size: 0.75rem;
  text-transform: uppercase;
  margin: 18px 10px 8px;
}

.sidebar a {
  color: var(--erp-sidebar-text);
  text-decoration: none;
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 9px 10px;
  border-radius: 6px;
  font-size: 0.94rem;
}

.sidebar a:hover,
.sidebar a.active {
  background: rgba(255, 255, 255, 0.09);
  color: #fff;
}

.topbar {
  background: var(--erp-card);
  border-bottom: 1px solid var(--erp-border);
  padding: 12px 20px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  position: sticky;
  top: 0;
  z-index: 10;
}

.content {
  padding: 22px;
}

.panel {
  background: var(--erp-card);
  border: 1px solid var(--erp-border);
  border-radius: 8px;
  padding: 18px;
}

.metric {
  min-height: 112px;
  border-left: 4px solid var(--erp-accent);
}

.table {
  color: var(--erp-text);
}

.form-control,
.form-select {
  border-radius: 6px;
}

.btn {
  border-radius: 6px;
}

.dataTables_wrapper .dataTables_filter input,
.dataTables_wrapper .dataTables_length select {
  border: 1px solid var(--erp-border);
  border-radius: 6px;
  padding: 4px 8px;
}

.mobile-nav-toggle {
  display: none;
}

@media (max-width: 991px) {
  .app-shell {
    grid-template-columns: 1fr;
  }
  .sidebar {
    position: fixed;
    inset: 0 auto 0 0;
    width: 280px;
    transform: translateX(-100%);
    transition: transform 0.2s ease;
    z-index: 30;
  }
  .sidebar.open {
    transform: translateX(0);
  }
  .mobile-nav-toggle {
    display: inline-flex;
  }
  .content {
    padding: 16px;
  }
}

.public-page {
  background: #f6faf9;
}

.public-nav {
  min-height: 70px;
  padding: 12px clamp(16px, 4vw, 54px);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  background: #ffffff;
  border-bottom: 1px solid var(--erp-border);
  position: sticky;
  top: 0;
  z-index: 20;
}

.public-brand {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-weight: 800;
  color: #122033;
  text-decoration: none;
}

.public-brand img,
.home-logo {
  width: 58px;
  height: 58px;
  object-fit: contain;
}

.public-links {
  display: flex;
  align-items: center;
  gap: 14px;
  flex-wrap: wrap;
}

.public-links a {
  color: #213547;
  text-decoration: none;
  font-weight: 600;
}

.home-hero {
  min-height: min(680px, calc(100vh - 70px));
  display: flex;
  align-items: center;
  padding: clamp(36px, 7vw, 92px);
  color: #fff;
  background:
    linear-gradient(90deg, rgba(15, 139, 141, 0.95), rgba(24, 48, 71, 0.84)),
    url("../images/nousin-logo.svg") right 8vw center / min(360px, 38vw) no-repeat;
}

.home-hero-copy {
  max-width: 760px;
}

.home-hero h1 {
  font-size: clamp(2.4rem, 6vw, 5.5rem);
  font-weight: 800;
  line-height: 1;
}

.home-hero p,
.split-section p,
.contact-band p {
  font-size: clamp(1rem, 2vw, 1.25rem);
  max-width: 800px;
}

.home-section {
  padding: clamp(34px, 6vw, 76px) clamp(16px, 5vw, 72px);
}

.section-title {
  margin-bottom: 20px;
}

.home-grid,
.gallery-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
  gap: 16px;
}

.home-card,
.gallery-item {
  background: #fff;
  border: 1px solid var(--erp-border);
  border-radius: 8px;
  padding: 18px;
  min-height: 150px;
}

.home-card img,
.gallery-item img,
.gallery-item video {
  width: 100%;
  max-height: 220px;
  object-fit: contain;
  border-radius: 8px;
  background: #eef6f5;
}

.home-card i {
  font-size: 1.8rem;
  color: var(--erp-accent);
  margin-bottom: 10px;
}

.split-section {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(220px, 0.8fr);
  align-items: center;
  gap: 28px;
  background: #fff;
}

.split-section img {
  width: min(280px, 100%);
  justify-self: center;
}

.contact-band {
  background: var(--erp-accent);
  color: #fff;
  text-align: center;
}

.avatar-sm {
  width: 42px;
  height: 42px;
  border-radius: 50%;
  object-fit: cover;
  border: 2px solid #fff;
  box-shadow: 0 0 0 1px var(--erp-border);
}

.attachment-actions {
  display: inline-flex;
  gap: 6px;
  flex-wrap: wrap;
}

.resource-card-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 14px;
}

.resource-card {
  background: #fff;
  border: 1px solid var(--erp-border);
  border-radius: 8px;
  overflow: hidden;
  box-shadow: 0 10px 24px rgba(10, 25, 40, 0.06);
}

.resource-card-button {
  width: 100%;
  border: 0;
  background: transparent;
  color: var(--erp-text);
  padding: 18px;
  text-align: left;
  display: grid;
  gap: 8px;
}

.resource-card-button:hover {
  background: rgba(15, 139, 141, 0.06);
}

.resource-card-title {
  font-weight: 800;
  font-size: 1.05rem;
}

.resource-card-meta {
  color: #64748b;
  font-size: 0.92rem;
}

.resource-card-amount {
  font-weight: 700;
  color: var(--erp-accent);
}

.resource-card-details {
  border-top: 1px solid var(--erp-border);
  padding: 14px 18px 18px;
  background: #f8fafc;
}

.id-card-stage {
  display: flex;
  justify-content: center;
  align-items: flex-start;
  flex-wrap: wrap;
  gap: 22px;
}

.id-card {
  width: min(390px, 100%);
  min-height: 246px;
  background: #fff;
  border: 1px solid var(--erp-border);
  border-radius: 8px;
  padding: 18px;
  box-shadow: 0 12px 30px rgba(10, 25, 40, 0.12);
  position: relative;
  overflow: hidden;
}

.id-card-topline {
  position: absolute;
  inset: 0 0 auto;
  height: 8px;
  background: linear-gradient(90deg, var(--erp-accent), #172033);
}

.id-card-header {
  display: flex;
  align-items: center;
  gap: 10px;
  border-bottom: 1px solid var(--erp-border);
  padding-bottom: 10px;
  margin-bottom: 12px;
}

.id-card-header img {
  width: 42px;
  height: 42px;
}

.id-card-body {
  display: flex;
  gap: 14px;
  align-items: center;
}

.id-card-photo {
  width: 98px;
  height: 118px;
  border-radius: 8px;
  object-fit: cover;
  background: #eef6f5;
  border: 1px solid var(--erp-border);
}

.id-card-info {
  min-width: 0;
  flex: 1;
}

.id-card-info h2,
.id-card-back h2 {
  font-size: 1.12rem;
  margin: 0;
  font-weight: 800;
}

.id-card-role {
  color: var(--erp-accent);
  font-weight: 700;
  margin-bottom: 8px;
}

.id-card dl {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  column-gap: 8px;
  row-gap: 3px;
  margin: 0;
  font-size: 0.86rem;
}

.id-card dt {
  color: #64748b;
  font-weight: 700;
}

.id-card dd {
  margin: 0;
  overflow-wrap: anywhere;
}

.id-card-footer {
  margin-top: 12px;
  padding-top: 8px;
  border-top: 1px solid var(--erp-border);
  color: #64748b;
  font-size: 0.78rem;
}

.id-card-back {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  min-height: 246px;
  padding: 22px;
  background: linear-gradient(145deg, #ffffff 0%, #f4f8fb 100%);
}

.id-card-back h2 {
  text-align: center;
  padding-bottom: 10px;
  border-bottom: 1px solid var(--erp-border);
}

.id-card-back-content {
  display: grid;
  grid-template-columns: 1fr 96px;
  gap: 18px;
  align-items: center;
  flex: 1;
}

.id-card-back-details {
  display: grid;
  gap: 12px;
  margin: 0;
}

.id-card-back-item {
  display: grid;
  gap: 3px;
}

.id-card-back-item span {
  color: #64748b;
  font-size: 0.72rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.id-card-back-item strong {
  font-size: 0.88rem;
  line-height: 1.35;
  overflow-wrap: anywhere;
}

.id-card-qr {
  display: flex;
  justify-content: center;
  align-items: center;
}

.id-card-qr img {
  width: 92px;
  height: 92px;
  border: 1px solid var(--erp-border);
  border-radius: 8px;
  background: #fff;
  padding: 3px;
}

@media (max-width: 760px) {
  .public-nav {
    align-items: flex-start;
    flex-direction: column;
  }
  .public-links {
    width: 100%;
    gap: 10px;
  }
  .home-hero {
    background: linear-gradient(160deg, rgba(15, 139, 141, 0.98), rgba(24, 48, 71, 0.9));
  }
  .split-section {
    grid-template-columns: 1fr;
  }
  .table-responsive {
    border: 1px solid var(--erp-border);
    border-radius: 8px;
  }
  .id-card-body {
    align-items: flex-start;
  }
  .id-card-back-content {
    grid-template-columns: 1fr 86px;
    gap: 12px;
  }
  .id-card-qr img {
    width: 82px;
    height: 82px;
  }
}

@media print {
  .sidebar,
  .topbar,
  .no-print,
  .dataTables_filter,
  .dataTables_length,
  .dataTables_paginate,
  .dataTables_info {
    display: none !important;
  }
  .app-shell {
    display: block;
  }
  body {
    background: #fff;
    color: #000;
  }
  .panel {
    border: 0;
    padding: 0;
  }
  .id-card-stage {
    gap: 12mm;
  }
  .id-card {
    box-shadow: none;
    break-inside: avoid;
    page-break-inside: avoid;
  }
}

/* =========================================================
   Modern public landing page — homepage only
   ========================================================= */
.public-page {
  --landing-ink: #102238;
  --landing-muted: #607087;
  --landing-primary: #0f8b8d;
  --landing-primary-dark: #076b70;
  --landing-soft: #edf8f7;
  --landing-line: #dce6eb;
  background: #f7fafc;
  color: var(--landing-ink);
}

.public-nav--modern {
  min-height: 78px;
  padding: 12px clamp(18px, 5vw, 76px);
  background: rgba(255,255,255,.94);
  border-bottom: 1px solid rgba(220,230,235,.85);
  box-shadow: 0 8px 28px rgba(15, 35, 55, .045);
  backdrop-filter: blur(16px);
}
.public-nav--modern .public-brand { gap: 12px; }
.brand-logo-wrap { width: 46px; height: 46px; display:grid; place-items:center; border-radius: 13px; background:#fff; box-shadow:0 7px 20px rgba(15,139,141,.13); overflow:hidden; }
.public-nav--modern .public-brand img { width: 40px; height:40px; }
.brand-copy { display:grid; gap:2px; line-height:1.1; }
.brand-copy strong { font-size: 1rem; letter-spacing:-.02em; }
.brand-copy small { color:#7b8899; font-size:.66rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase; }
.public-nav--modern .public-links { gap: 7px; }
.public-nav--modern .public-links a { padding: 8px 10px; color:#526277; font-size:.86rem; transition:color .2s ease, background .2s ease; }
.public-nav--modern .public-links a:hover { color:var(--landing-primary-dark); }
.public-nav--modern .language-link { font-size:.76rem !important; font-weight:800 !important; }
.public-nav--modern .nav-login { color:#fff !important; padding:10px 15px !important; box-shadow:0 8px 18px rgba(15,139,141,.18); }
.mobile-menu { display:none; position:relative; }
.mobile-menu summary { list-style:none; width:44px; height:44px; border:1px solid var(--landing-line); border-radius:12px; display:grid; place-items:center; cursor:pointer; color:var(--landing-ink); }
.mobile-menu summary::-webkit-details-marker { display:none; }
.mobile-menu-panel { position:absolute; right:0; top:54px; width:min(300px, calc(100vw - 28px)); background:#fff; border:1px solid var(--landing-line); border-radius:18px; padding:10px; box-shadow:0 22px 60px rgba(16,34,56,.16); z-index:50; }
.mobile-menu-panel a { display:block; padding:12px 13px; color:var(--landing-ink); text-decoration:none; border-radius:10px; font-weight:700; }
.mobile-menu-panel a:hover { background:var(--landing-soft); }
.mobile-menu-languages { display:flex; gap:6px; border-top:1px solid var(--landing-line); border-bottom:1px solid var(--landing-line); margin:5px 0; padding:5px 0; }
.mobile-menu-languages a { flex:1; text-align:center; }

.home-hero--modern { position:relative; min-height:calc(100vh - 78px); overflow:hidden; isolation:isolate; background:linear-gradient(118deg,#092a39 0%,#0c5260 46%,#0f8b8d 100%); padding:0 clamp(18px,6vw,88px); }
.home-hero--modern::after { content:""; position:absolute; inset:auto 0 0; height:170px; background:linear-gradient(transparent,rgba(0,0,0,.12)); z-index:-1; }
.home-hero-inner { width:min(1280px,100%); margin:0 auto; min-height:calc(100vh - 78px); display:grid; grid-template-columns:minmax(0,1.08fr) minmax(360px,.92fr); align-items:center; gap:50px; position:relative; z-index:2; }
.hero-grid-pattern { position:absolute; inset:0; opacity:.12; background-image:linear-gradient(rgba(255,255,255,.18) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.18) 1px,transparent 1px); background-size:70px 70px; mask-image:linear-gradient(90deg,#000,transparent 80%); z-index:-1; }
.hero-glow { position:absolute; border-radius:50%; filter:blur(3px); z-index:-1; }
.hero-glow--one { width:460px;height:460px; right:-150px;top:-100px;background:rgba(83,221,211,.18); }
.hero-glow--two { width:340px;height:340px; left:-170px;bottom:-120px;background:rgba(33,126,155,.26); }
.home-hero-copy { max-width:760px; }
.eyebrow,.section-kicker { display:inline-flex; align-items:center; gap:8px; color:#78ddd5; font-size:.72rem; font-weight:900; letter-spacing:.16em; text-transform:uppercase; }
.home-hero h1 { margin:18px 0 20px; font-size:clamp(3rem,6vw,6.6rem); letter-spacing:-.055em; line-height:.93; text-wrap:balance; }
.hero-lead { color:rgba(255,255,255,.78); max-width:670px !important; font-size:clamp(1.03rem,1.7vw,1.28rem) !important; line-height:1.75; }
.hero-actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:30px; }
.hero-actions .btn { border-radius:12px; padding:12px 19px; font-weight:800; }
.hero-actions .btn-light { color:#0a4e5a; box-shadow:0 13px 28px rgba(0,0,0,.14); }
.hero-trust-row { display:flex; flex-wrap:wrap; gap:14px 22px; margin-top:34px; color:rgba(255,255,255,.67); font-size:.78rem; font-weight:700; }
.hero-trust-row i { color:#7ee2d8; margin-right:5px; }
.hero-visual { min-height:520px; display:grid; place-items:center; position:relative; }
.hero-card { position:relative; width:min(380px,80%); padding:23px; border:1px solid rgba(255,255,255,.23); border-radius:28px; color:#fff; background:linear-gradient(145deg,rgba(255,255,255,.16),rgba(255,255,255,.06)); box-shadow:0 40px 80px rgba(0,0,0,.22), inset 0 1px 0 rgba(255,255,255,.14); backdrop-filter:blur(20px); transform:rotate(-4deg); z-index:3; }
.hero-card-top,.hero-card-bottom { display:flex; align-items:center; justify-content:space-between; gap:8px; }
.hero-status { display:inline-flex; align-items:center; gap:7px; font-size:.68rem; font-weight:800; text-transform:uppercase; letter-spacing:.12em; color:#bdeee9; }
.hero-status span { width:7px;height:7px;border-radius:50%;background:#72dfd4;box-shadow:0 0 0 5px rgba(114,223,212,.12); }
.hero-card-top > i { color:#9de8e1; }
.hero-card-logo { width:84px;height:84px;border-radius:22px;background:#fff;display:grid;place-items:center;margin:48px auto 18px;box-shadow:0 15px 30px rgba(0,0,0,.16);overflow:hidden; }
.hero-card-logo img { width:68px;height:68px;object-fit:contain; }
.hero-card strong { display:block; text-align:center; font-size:1.35rem; letter-spacing:-.02em; }
.hero-card > span { display:block; text-align:center; color:rgba(255,255,255,.65); font-size:.78rem; margin-top:6px; }
.hero-card-line { display:grid;grid-template-columns:1.7fr 1fr .6fr 1.3fr .8fr; gap:5px; margin:30px 0 20px; height:5px; }
.hero-card-line i { border-radius:10px; background:rgba(255,255,255,.2); }.hero-card-line i:first-child{background:#76ddd5;}
.hero-card-bottom { border-top:1px solid rgba(255,255,255,.14); padding-top:15px; font-size:.67rem; color:rgba(255,255,255,.58); }.hero-card-bottom b{color:#fff;font-size:.9rem;}
.hero-orbit { position:absolute; border:1px solid rgba(255,255,255,.14); border-radius:50%; }
.hero-orbit--one { width:500px;height:500px; }.hero-orbit--two { width:680px;height:680px; border-color:rgba(255,255,255,.07); }
.floating-card { position:absolute; z-index:4; display:flex;align-items:center;gap:11px;padding:12px 14px;border-radius:15px;background:#fff;color:var(--landing-ink);box-shadow:0 18px 45px rgba(0,0,0,.18); }
.floating-card i { width:38px;height:38px;border-radius:11px;display:grid;place-items:center;background:var(--landing-soft);color:var(--landing-primary); }
.floating-card span { display:grid;gap:2px; }.floating-card small{color:#8190a3;font-size:.63rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em}.floating-card b{font-size:.76rem;}
.floating-card--workers { left:0; top:21%; }.floating-card--quality { right:0; bottom:19%; }

.home-section--modern { padding:clamp(60px,8vw,110px) clamp(18px,6vw,88px); }
.home-section--modern > * { width:min(1280px,100%); margin-left:auto; margin-right:auto; }
.intro-strip { display:grid;grid-template-columns:repeat(3,1fr);gap:20px;max-width:none;padding-top:28px;padding-bottom:28px;background:#fff;border-bottom:1px solid var(--landing-line); }
.intro-item { display:flex;align-items:center;justify-content:center;gap:13px;padding:12px;border-right:1px solid var(--landing-line); }.intro-item:last-child{border-right:0;}
.intro-icon { width:45px;height:45px;display:grid;place-items:center;border-radius:13px;background:var(--landing-soft);color:var(--landing-primary);font-size:1.05rem; }
.intro-item div{display:grid;gap:2px}.intro-item strong{font-size:.88rem}.intro-item small{color:#7a899d;font-size:.72rem;}
.section-heading { margin-bottom:35px; }.section-heading h2 { margin:9px 0 0; font-size:clamp(2rem,3.7vw,3.3rem); letter-spacing:-.045em; line-height:1.05; }.section-heading p{color:var(--landing-muted);max-width:620px;margin:13px auto 0;}.section-heading .section-kicker{color:var(--landing-primary);}.section-heading.centered{text-align:center;}.heading-line{display:block;width:52px;height:4px;background:var(--landing-primary);border-radius:20px;margin-top:18px;}
.about-section { background:#fff; }.about-grid{display:grid;grid-template-columns:1fr .86fr;gap:80px;align-items:center;}.about-copy{max-width:660px;}.about-copy p{color:var(--landing-muted);line-height:1.8;font-size:.98rem;}.about-copy .section-lead{font-size:1.16rem;color:#35465b;}.about-points{display:grid;gap:15px;margin:28px 0;}.about-points>div{display:flex;gap:12px;align-items:flex-start;}.about-points i{width:27px;height:27px;display:grid;place-items:center;border-radius:50%;background:var(--landing-soft);color:var(--landing-primary);font-size:.68rem;margin-top:2px;}.about-points span{display:grid;gap:3px}.about-points strong{font-size:.84rem}.about-points small{color:#7b8899;font-size:.75rem;}.text-link{display:inline-flex;align-items:center;gap:9px;color:var(--landing-primary-dark);text-decoration:none;font-weight:900;font-size:.82rem;}.text-link:hover{color:var(--landing-primary);}.about-visual{position:relative;display:flex;justify-content:center;}.about-image-frame{width:min(430px,100%);min-height:360px;border-radius:28px;background:linear-gradient(145deg,#edf8f7,#dbeff0);display:grid;place-items:center;position:relative;overflow:hidden;box-shadow:0 24px 60px rgba(16,55,68,.1);}.about-image-frame::before{content:"";position:absolute;width:300px;height:300px;border-radius:50%;border:1px solid rgba(15,139,141,.18);}.about-image-frame img{width:65%;height:65%;object-fit:contain;position:relative;z-index:1;filter:drop-shadow(0 18px 24px rgba(15,60,70,.14));}.about-badge{position:absolute;left:22px;bottom:22px;padding:12px 15px;border-radius:13px;background:#fff;box-shadow:0 12px 28px rgba(16,34,56,.13);display:grid;gap:3px;z-index:2;}.about-badge strong{font-size:.78rem}.about-badge span{color:#7b899b;font-size:.66rem;}
.services-section{background:#f7fafc;}.services-grid{grid-template-columns:repeat(3,1fr);}.modern-grid{gap:18px;}.service-card{position:relative;border:1px solid var(--landing-line);border-radius:20px;padding:27px;background:#fff;min-height:245px;box-shadow:0 8px 30px rgba(21,47,67,.035);transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease;overflow:hidden;}.service-card:hover{transform:translateY(-7px);border-color:#b7dcdb;box-shadow:0 20px 45px rgba(21,47,67,.10);}.service-number{position:absolute;right:21px;top:19px;color:#d6e1e8;font-size:.72rem;font-weight:900;letter-spacing:.1em;}.service-icon{width:53px;height:53px;display:grid;place-items:center;border-radius:15px;background:var(--landing-soft);color:var(--landing-primary);font-size:1.18rem;margin-bottom:27px;}.service-card h3{font-size:1.06rem;margin-bottom:10px;}.service-card p{color:var(--landing-muted);font-size:.82rem;line-height:1.7;margin:0;max-width:290px;}.service-card>a{position:absolute;right:22px;bottom:22px;color:#a6b4c2;text-decoration:none;}.service-card:hover>a{color:var(--landing-primary);}
.projects-section{background:#fff;}.section-heading-row{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:30px;}.section-heading-row .section-heading{margin-bottom:0;}.section-count{padding:9px 12px;border:1px solid var(--landing-line);border-radius:99px;color:#718095;font-size:.7rem;font-weight:800;}.project-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;}.project-card{min-height:210px;border-radius:20px;padding:22px;background:linear-gradient(145deg,#112d3c,#173f4d);color:#fff;position:relative;overflow:hidden;box-shadow:0 16px 40px rgba(15,43,57,.11);}.project-card::after{content:"";position:absolute;width:180px;height:180px;border:1px solid rgba(118,221,213,.14);border-radius:50%;right:-70px;bottom:-80px;}.project-card-top{display:flex;justify-content:space-between;align-items:center;color:#7ee0d8;}.project-tag{font-size:.62rem;letter-spacing:.15em;font-weight:900;}.project-card-top i{font-size:.72rem;}.project-card h3{font-size:1.08rem;margin:45px 0 12px;max-width:300px;}.project-card p{color:rgba(255,255,255,.62);font-size:.75rem;margin-bottom:20px;}.project-card p i{color:#7ee0d8;margin-right:4px;}.project-status{display:inline-flex;align-items:center;gap:7px;font-size:.65rem;font-weight:800;color:#9babbc;}.project-status>span{width:6px;height:6px;border-radius:50%;background:#73dfd5;}.project-empty{display:flex;flex-direction:column;justify-content:center;background:#f5faf9;color:var(--landing-ink);border:1px dashed #b9d8d7;box-shadow:none;}.project-empty>i{font-size:1.5rem;color:var(--landing-primary);}.project-empty h3{margin:13px 0 6px}.project-empty p{color:var(--landing-muted);}.running-heading{display:flex;align-items:center;gap:15px;margin:38px 0 13px;color:#607087;font-size:.68rem;font-weight:900;letter-spacing:.14em;text-transform:uppercase;}.running-heading i{height:1px;background:var(--landing-line);flex:1;}.running-list{border:1px solid var(--landing-line);border-radius:16px;overflow:hidden;}.running-item{display:grid;grid-template-columns:12px minmax(160px,1.2fr) minmax(150px,1fr) auto;gap:12px;align-items:center;padding:14px 18px;background:#fff;border-bottom:1px solid #edf1f4;font-size:.76rem;}.running-item:last-child{border-bottom:0}.running-dot{width:7px;height:7px;border-radius:50%;background:#0f8b8d;box-shadow:0 0 0 5px #e4f4f2;}.running-location{color:#8190a2;}.running-location i{color:#0f8b8d;margin-right:3px;}
.updates-section{background:#f7fafc;}.update-card{border-radius:18px;padding:0;overflow:hidden;background:#fff;border:1px solid var(--landing-line);}.update-image{height:170px;background:#edf6f6;overflow:hidden;}.update-image img{width:100%;height:100%;object-fit:cover;}.update-content{padding:21px;}.update-label{color:var(--landing-primary);font-size:.6rem;font-weight:900;letter-spacing:.14em;}.update-card h3{font-size:1rem;margin:9px 0;}.update-card p{color:var(--landing-muted);font-size:.78rem;line-height:1.7;margin:0;}.update-empty{padding:34px;text-align:center;min-height:190px;}.update-empty>i{font-size:1.8rem;color:var(--landing-primary);margin-bottom:12px;}
.gallery-section{background:#fff;}.modern-gallery{grid-template-columns:repeat(3,1fr);}.modern-gallery .gallery-item{margin:0;border:0;padding:0;min-height:230px;border-radius:18px;overflow:hidden;background:#edf6f6;position:relative;}.modern-gallery .gallery-item img,.modern-gallery .gallery-item video{width:100%;height:100%;max-height:none;object-fit:cover;border-radius:0;background:transparent;transition:transform .35s ease;}.modern-gallery .gallery-item:hover img,.modern-gallery .gallery-item:hover video{transform:scale(1.04);}.modern-gallery figcaption{position:absolute;left:12px;right:12px;bottom:12px;padding:10px 12px;border-radius:10px;background:rgba(10,28,40,.72);backdrop-filter:blur(10px);color:#fff;font-size:.72rem;font-weight:700;}.gallery-placeholder{display:grid !important;place-items:center;}.gallery-placeholder img{width:45% !important;height:45% !important;object-fit:contain !important;}
.contact-band--modern{position:relative;overflow:hidden;background:linear-gradient(120deg,#092d3b,#0f8b8d);padding-top:90px;padding-bottom:90px;}.contact-inner{position:relative;z-index:2;text-align:center;}.contact-inner .section-kicker{color:#83e2da;}.contact-inner h2{color:#fff;font-size:clamp(2.2rem,4.5vw,4rem);letter-spacing:-.05em;margin:12px 0 15px;}.contact-inner p{color:rgba(255,255,255,.72);margin:0 auto;max-width:680px;line-height:1.7;}.contact-actions{display:flex;justify-content:center;flex-wrap:wrap;gap:11px;margin-top:28px;}.contact-actions .btn{border-radius:12px;font-weight:800;padding:12px 19px;}.contact-shape{position:absolute;border:1px solid rgba(255,255,255,.1);border-radius:50%;}.contact-shape--one{width:520px;height:520px;left:-260px;top:-230px;}.contact-shape--two{width:620px;height:620px;right:-310px;bottom:-400px;}.public-footer{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:25px clamp(18px,6vw,88px);background:#071d29;color:#90a4b2;font-size:.7rem;}.public-footer>div:first-child{display:grid;gap:3px}.public-footer strong{color:#fff;font-size:.86rem}.public-footer span{color:#718796;}

@media (max-width: 1100px){
  .public-nav--modern .public-links--desktop a:nth-child(-n+2){display:none;}
  .home-hero-inner{grid-template-columns:1fr .75fr;gap:25px}.hero-card{width:320px}.floating-card--workers{left:-10px}.floating-card--quality{right:-8px}.about-grid{gap:45px;}.project-grid,.services-grid{grid-template-columns:repeat(2,1fr);}
}
@media (max-width: 820px){
  .public-links--desktop{display:none !important;}.mobile-menu{display:block;}
  .home-hero--modern{min-height:auto;padding-top:75px;padding-bottom:70px;}.home-hero-inner{min-height:auto;grid-template-columns:1fr;}.home-hero-copy{text-align:center;margin:0 auto;}.eyebrow{justify-content:center}.hero-lead{margin-left:auto;margin-right:auto;}.hero-actions,.hero-trust-row{justify-content:center}.hero-visual{min-height:430px;margin-top:10px}.hero-orbit--one{width:390px;height:390px}.hero-orbit--two{width:510px;height:510px}.hero-card{width:290px}.floating-card--workers{left:2%;}.floating-card--quality{right:2%;}
  .intro-strip{grid-template-columns:1fr;padding-left:18px;padding-right:18px;}.intro-item{justify-content:flex-start;border-right:0;border-bottom:1px solid var(--landing-line);padding:13px 6px;}.intro-item:last-child{border-bottom:0;}
  .about-grid{grid-template-columns:1fr;}.about-copy{max-width:none;}.about-visual{margin-top:5px;}.project-grid{grid-template-columns:1fr;}.modern-gallery{grid-template-columns:1fr 1fr;}.section-heading-row{align-items:flex-start;flex-direction:column;}.section-count{align-self:flex-start;}
  .running-item{grid-template-columns:12px 1fr auto;}.running-location{grid-column:2;}.running-item .project-status{grid-column:3;grid-row:1/3;}.services-grid{grid-template-columns:1fr;}
}
@media (max-width: 520px){
  .brand-copy small{display:none;}.public-nav--modern{min-height:68px;}.home-hero--modern{padding-top:58px;}.home-hero h1{font-size:clamp(2.65rem,13vw,4rem);}.hero-trust-row{display:grid;gap:8px;text-align:left;width:max-content;max-width:100%;margin-left:auto;margin-right:auto;}.hero-visual{min-height:370px;}.hero-card{width:250px;padding:19px}.hero-card-logo{width:70px;height:70px;margin-top:35px}.hero-card-logo img{width:56px;height:56px}.floating-card{padding:9px 10px;}.floating-card i{width:32px;height:32px}.floating-card b{font-size:.67rem}.floating-card small{font-size:.56rem}.floating-card--workers{left:0;top:12%}.floating-card--quality{right:0;bottom:13%}.hero-orbit--one{width:300px;height:300px}.hero-orbit--two{width:390px;height:390px}.home-section--modern{padding-top:55px;padding-bottom:55px}.modern-gallery{grid-template-columns:1fr;}.modern-gallery .gallery-item{min-height:260px}.public-footer{align-items:flex-start;flex-direction:column;}.running-item{grid-template-columns:10px 1fr;}.running-location{grid-column:2;}.running-item .project-status{grid-column:2;grid-row:auto;}.contact-actions{flex-direction:column;align-items:stretch;}.contact-actions .btn{width:100%;}.about-image-frame{min-height:290px;}
}


/* Mobile navigation fix */
.public-nav--modern{
  position:relative;
  z-index:1000;
}
.public-nav--modern .public-brand{
  min-width:0;
}
.mobile-menu{
  margin-left:auto;
  flex:0 0 auto;
  z-index:1001;
}
.mobile-menu summary{
  position:relative;
  z-index:1002;
  -webkit-tap-highlight-color:transparent;
  user-select:none;
}
.mobile-menu summary:focus-visible{
  outline:3px solid rgba(15,139,141,.25);
  outline-offset:2px;
}
.mobile-menu-panel{
  z-index:1003;
  max-height:calc(100vh - 84px);
  overflow-y:auto;
  -webkit-overflow-scrolling:touch;
}
@media (max-width:820px){
  .public-nav--modern{
    display:flex;
    align-items:center;
    justify-content:space-between;
  }
  .public-nav--modern .public-brand{
    flex:1 1 auto;
    min-width:0;
  }
  .public-nav--modern .public-brand .brand-copy{
    min-width:0;
  }
  .public-nav--modern .public-brand .brand-copy strong{
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
  }
  .mobile-menu{
    display:block !important;
  }
}
@media (max-width:520px){
  .public-nav--modern{
    padding:10px 14px;
  }
  .brand-logo-wrap{
    width:42px;
    height:42px;
  }
  .public-nav--modern .public-brand img{
    width:36px;
    height:36px;
  }
  .brand-copy strong{
    font-size:.92rem;
  }
  .mobile-menu-panel{
    right:-2px;
    width:min(310px,calc(100vw - 24px));
  }
}
