/* =====================================================================
   NEXT LEVEL SECURITY — Public Site Stylesheet
   Design system tokens per Phase 1 architecture doc.
   ===================================================================== */

:root {
  --primary: #0E7C86;
  --primary-dark: #095A62;
  --primary-light: #E4F4F5;
  --secondary: #0B4F63;
  --accent: #C9A24B;
  --text: #1B2430;
  --text-muted: #5B6774;
  --background: #FFFFFF;
  --surface: #F7FAFA;
  --border: #E3E9EA;
  --success: #1E8F5F;
  --warning: #B98900;
  --danger: #C0392B;

  --font-heading: 'Sora', 'Inter', sans-serif;
  --font-body: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;

  --header-height: 84px;
  --container-width: 1200px;
  --radius-sm: 6px;
  --radius: 12px;
  --radius-lg: 20px;
  --shadow-sm: 0 2px 8px rgba(11, 79, 99, 0.06);
  --shadow-md: 0 12px 32px rgba(11, 79, 99, 0.10);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }

body {
  margin: 0;
  font-family: var(--font-body);
  color: var(--text);
  background: var(--background);
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4, h5 {
  font-family: var(--font-heading);
  color: var(--secondary);
  line-height: 1.25;
  margin: 0 0 0.75rem;
}

h1 { font-size: clamp(2rem, 3.4vw, 3.25rem); }
h2 { font-size: clamp(1.6rem, 2.6vw, 2.35rem); }
h3 { font-size: 1.3rem; }

p { color: var(--text-muted); margin: 0 0 1rem; }
a { color: var(--primary); text-decoration: none; }
img { max-width: 100%; display: block; }

.container { max-width: var(--container-width); margin: 0 auto; padding: 0 1.5rem; }
.site-main { padding-top: var(--header-height); }

/* ---------------------------------------------------------------------
   Accessibility: skip-to-content link, visible only on keyboard focus
   --------------------------------------------------------------------- */
.skip-link {
  position: absolute;
  left: -9999px;
  top: 0;
  background: var(--primary-dark);
  color: #fff;
  padding: 0.75rem 1.25rem;
  z-index: 1000;
  border-radius: 0 0 8px 0;
  font-weight: 600;
}
.skip-link:focus {
  left: 0;
}

section { padding: 4.5rem 0; }
@media (max-width: 768px) { section { padding: 3rem 0; } }

.section-header { max-width: 640px; margin: 0 auto 2.75rem; text-align: center; }
.section-header .eyebrow {
  display: inline-block;
  color: var(--accent);
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  font-size: 0.78rem;
  margin-bottom: 0.6rem;
  border-bottom: 2px solid var(--accent);
  padding-bottom: 0.3rem;
}
.section-header.align-left { margin: 0 0 2.5rem; text-align: left; }

.bg-surface { background: var(--surface); }
.bg-secondary { background: var(--secondary); color: #fff; }
.bg-secondary h2, .bg-secondary h3 { color: #fff; }
.bg-secondary p { color: rgba(255,255,255,0.8); }

/* ---------------------------------------------------------------------
   Buttons
   --------------------------------------------------------------------- */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 0.5rem;
  padding: 0.85rem 1.6rem;
  border-radius: 8px;
  font-weight: 600;
  font-size: 0.95rem;
  border: 1px solid transparent;
  cursor: pointer;
  transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease, transform 0.15s ease;
}
.btn-primary { background: var(--primary); color: #fff; }
.btn-primary:hover { background: var(--primary-dark); transform: translateY(-1px); }
.btn-ghost { background: transparent; color: var(--secondary); border-color: var(--border); }
.btn-ghost:hover { border-color: var(--primary); color: var(--primary); }
.btn-white { background: #fff; color: var(--primary-dark); }
.btn-white:hover { background: var(--primary-light); }
.btn-outline-white { background: transparent; color: #fff; border-color: rgba(255,255,255,0.5); }
.btn-outline-white:hover { border-color: #fff; }

/* ---------------------------------------------------------------------
   Header / Navigation
   --------------------------------------------------------------------- */
.site-header {
  position: fixed; top: 0; left: 0; right: 0;
  height: var(--header-height);
  background: rgba(255,255,255,0.97);
  backdrop-filter: blur(6px);
  border-bottom: 1px solid var(--border);
  z-index: 100;
  transition: height 0.25s ease, box-shadow 0.25s ease;
}
.site-header.is-scrolled { height: 66px; box-shadow: var(--shadow-sm); }

.site-header__inner {
  max-width: var(--container-width);
  margin: 0 auto;
  height: 100%;
  padding: 0 1.5rem;
  display: flex; align-items: center; justify-content: space-between; gap: 1.5rem;
}

.site-header__brand img { height: 48px; width: auto; transition: height 0.25s ease; }
.site-header.is-scrolled .site-header__brand img { height: 38px; }

.site-header__nav ul { list-style: none; display: flex; gap: 1.75rem; margin: 0; padding: 0; }
.site-header__nav a {
  color: var(--text);
  font-weight: 500;
  font-size: 0.92rem;
  padding: 0.4rem 0;
  border-bottom: 2px solid transparent;
}
.site-header__nav a:hover, .site-header__nav a.is-active { color: var(--primary); border-bottom-color: var(--primary); }

.site-header__cta { display: flex; align-items: center; gap: 0.75rem; }
.site-header__toggle { display: none; background: none; border: none; cursor: pointer; padding: 0.5rem; }
.site-header__toggle span {
  display: block; width: 24px; height: 2px; background: var(--secondary); margin: 5px 0; transition: transform 0.2s ease;
}

@media (max-width: 992px) {
  .site-header__nav, .site-header__cta { display: none; }
  .site-header__toggle { display: block; }
}

/* Mobile off-canvas nav */
.mobile-nav { position: fixed; inset: 0; z-index: 200; visibility: hidden; }
.mobile-nav.is-open { visibility: visible; }
.mobile-nav__backdrop {
  position: absolute; inset: 0; background: rgba(11,79,99,0.45);
  opacity: 0; transition: opacity 0.25s ease;
}
.mobile-nav.is-open .mobile-nav__backdrop { opacity: 1; }
.mobile-nav__panel {
  position: absolute; top: 0; right: 0; bottom: 0; width: min(320px, 85%);
  background: #fff; padding: 2rem 1.5rem;
  transform: translateX(100%); transition: transform 0.3s ease;
  overflow-y: auto;
}
.mobile-nav.is-open .mobile-nav__panel { transform: translateX(0); }
.mobile-nav__close { position: absolute; top: 1rem; right: 1.25rem; font-size: 1.75rem; background: none; border: none; cursor: pointer; color: var(--text); }
.mobile-nav__panel ul { list-style: none; padding: 0; margin: 2.5rem 0 2rem; }
.mobile-nav__panel li a { display: block; padding: 0.85rem 0; font-weight: 600; color: var(--secondary); border-bottom: 1px solid var(--border); }
.mobile-nav__cta { display: flex; flex-direction: column; gap: 0.75rem; }

@media (prefers-reduced-motion: reduce) {
  .mobile-nav__backdrop, .mobile-nav__panel, .site-header, .btn { transition: none !important; }
}

/* ---------------------------------------------------------------------
   Hero
   --------------------------------------------------------------------- */
.hero {
  position: relative;
  padding: 4.75rem 0 4.5rem;
  background: linear-gradient(160deg, var(--secondary) 0%, var(--primary-dark) 100%);
  color: #fff;
  overflow: hidden;
}
.hero__inner { max-width: var(--container-width); margin: 0 auto; padding: 0 1.5rem; position: relative; z-index: 2; }
.hero__layout { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(320px, 0.95fr); align-items: center; gap: clamp(2rem, 6vw, 5.5rem); }
.hero__content { max-width: 640px; }
.hero__eyebrow { display: inline-block; margin-bottom: 1rem; color: #8de3e9; font-size: 0.78rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; }
.hero h1 { color: #fff; }
.hero p.hero__subtext { color: rgba(255,255,255,0.85); font-size: 1.1rem; max-width: 560px; }
.hero__actions { display: flex; gap: 1rem; flex-wrap: wrap; margin-top: 1.75rem; }
.hero__visual { position: relative; min-height: 330px; }
.hero__visual::after { content: ''; position: absolute; inset: 1rem -1rem -1rem 1rem; border: 1px solid rgba(141,227,233,0.35); border-radius: var(--radius); pointer-events: none; }
.hero__visual img { position: relative; z-index: 1; display: block; width: 100%; height: 360px; border-radius: var(--radius); object-fit: cover; box-shadow: 0 24px 55px rgba(0,0,0,0.28); }
.hero__announcement {
  display: inline-block; background: rgba(255,255,255,0.12); color: #fff;
  padding: 0.4rem 0.9rem; border-radius: 999px; font-size: 0.8rem; margin-bottom: 1.25rem;
  border: 1px solid rgba(255,255,255,0.25);
}
.card-service__image { display: block; width: calc(100% + 3.5rem); height: 150px; margin: -1.75rem -1.75rem 1.25rem; border-radius: var(--radius) var(--radius) 0 0; object-fit: cover; }
.service-detail-image { display: block; width: 100%; max-height: 32rem; margin: 0 0 2rem; border-radius: var(--radius); object-fit: cover; }

/* ---------------------------------------------------------------------
   Trust strip / Statistics
   --------------------------------------------------------------------- */
.trust-strip { background: var(--surface); border-bottom: 1px solid var(--border); padding: 2.5rem 0; }
.trust-strip__grid {
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.5rem; text-align: center;
}
.trust-strip__item .stat-value { font-family: var(--font-heading); font-size: 2.1rem; font-weight: 700; color: var(--primary); }
.trust-strip__item .stat-label { color: var(--text-muted); font-size: 0.85rem; text-transform: uppercase; letter-spacing: 0.05em; }
@media (max-width: 768px) { .trust-strip__grid { grid-template-columns: repeat(2, 1fr); } }

/* ---------------------------------------------------------------------
   Cards: Service / Industry / Testimonial
   --------------------------------------------------------------------- */
.grid {
  display: grid; gap: 1.75rem;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
}
.grid--3 { grid-template-columns: repeat(3, 1fr); }
.grid--4 { grid-template-columns: repeat(4, 1fr); }
@media (max-width: 992px) { .grid--3, .grid--4 { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 576px) { .grid--3, .grid--4 { grid-template-columns: 1fr; } }
@media (max-width: 576px) {
  .grid--mobile-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.75rem; }
  .grid--mobile-2 .card-service { padding: 1.25rem 1rem; }
  .grid--mobile-2 .card-service__image { width: calc(100% + 2rem); height: 112px; margin: -1.25rem -1rem 1rem; }
  .grid--mobile-2 .card-industry { padding: 1rem 0.75rem; }
  .grid--mobile-2 .card-cert { padding: 1rem 0.75rem; }
  .grid--mobile-2 .card-cert__image { min-height: 6rem; margin: -1rem -0.75rem 0.75rem; padding: 0.5rem; }
  .grid--mobile-2 .card-cert__image img { height: 5rem; }
}

.card-service {
  background: #fff; border: 1px solid var(--border); border-radius: var(--radius);
  padding: 2rem 1.75rem; transition: box-shadow 0.25s ease, transform 0.25s ease;
}
.card-service:hover { box-shadow: var(--shadow-md); transform: translateY(-3px); }
.card-service .icon {
  width: 52px; height: 52px; border-radius: 12px; background: var(--primary-light); color: var(--primary);
  display: flex; align-items: center; justify-content: center; font-size: 1.4rem; margin-bottom: 1.1rem;
}
.service-icon-svg { display: block; width: 1.5rem; height: 1.5rem; fill: currentColor; flex: 0 0 auto; }
.site-icon-svg { display:inline-block; width:1em; height:1em; fill:currentColor; flex:0 0 auto; vertical-align:-.125em; }
.form-hint { display:block; color:var(--text-muted); margin:.3rem 0 .5rem; }
.form-privacy-note { font-size:.85rem; color:var(--text-muted); margin:.5rem 0 1rem; }
.form-privacy-note a { text-decoration:underline; }
.career-detail-layout { display:grid; grid-template-columns:minmax(0,1.3fr) minmax(0,1fr); gap:2.5rem; align-items:start; }
.career-detail-layout > * { min-width:0; }
.card-service h3 { font-size: 1.1rem; margin-bottom: 0.5rem; }
.card-service p { font-size: 0.92rem; margin-bottom: 1rem; }
.card-service a.learn-more { font-weight: 600; font-size: 0.88rem; }

.card-industry {
  background: #fff; border: 1px solid var(--border); border-radius: var(--radius);
  padding: 1.6rem; text-align: center; transition: box-shadow 0.25s ease, transform 0.25s ease;
}
.card-industry:hover { box-shadow: var(--shadow-sm); transform: translateY(-2px); }
.card-industry .icon { font-size: 1.6rem; color: var(--primary); margin-bottom: 0.6rem; }
.card-industry h3 { font-size: 1rem; margin: 0; }

.card-why {
  background: #fff; border: 1px solid var(--border); border-radius: var(--radius);
  padding: 1.75rem;
}
.card-why h3 { font-size: 1.05rem; }
.card-why p { font-size: 0.9rem; margin: 0; }

.card-cert {
  background: #fff; border: 1px solid var(--border); border-radius: var(--radius);
  padding: 1.75rem; text-align: center;
}
.card-cert .badge {
  width: 60px; height: 60px; border-radius: 50%; background: var(--primary-light); color: var(--primary);
  display: flex; align-items: center; justify-content: center; margin: 0 auto 1rem; font-weight: 700;
}
.card-cert h3 { font-size: 1rem; margin-bottom: 0.4rem; }
.card-cert p { font-size: 0.85rem; }
.card-cert .cert-meta { font-size: 0.78rem; color: var(--text-muted); margin-top: 0.5rem; }
.card-cert__image { display: flex; align-items: center; justify-content: center; min-height: 9rem; margin: -1.5rem -1.5rem 1.1rem; padding: 1rem; background: var(--surface, #fff); border-radius: inherit; overflow: hidden; }
.card-cert__image img { display: block; width: 100%; max-width: 15rem; height: 8rem; object-fit: contain; }
.card-cert__document { display: inline-flex; text-decoration: none; }
.card-cert__view { display: inline-block; }

/* ---------------------------------------------------------------------
   Client logo wall
   --------------------------------------------------------------------- */
.logo-wall {
  display: grid; grid-template-columns: repeat(5, 1fr); gap: 1.5rem; align-items: center;
}
.logo-wall__item {
  background: #fff; border: 1px solid var(--border); border-radius: var(--radius-sm);
  padding: 1.25rem; display: flex; align-items: center; justify-content: center; min-height: 90px;
  filter: grayscale(20%); transition: filter 0.25s ease, box-shadow 0.25s ease;
}
.logo-wall__item:hover { filter: none; box-shadow: var(--shadow-sm); }
.logo-wall__item span { font-weight: 700; color: var(--secondary); font-size: 0.95rem; text-align: center; }
@media (max-width: 992px) { .logo-wall { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 576px) { .logo-wall { grid-template-columns: repeat(2, 1fr); } }

/* ---------------------------------------------------------------------
   Why NLS — editorial corporate page
   --------------------------------------------------------------------- */
.why-page { overflow: hidden; }
.why-page .why-section { padding: clamp(4.5rem, 8vw, 7rem) 0; }
.why-hero { position: relative; isolation: isolate; min-height: 610px; padding: clamp(4.25rem, 8vw, 7rem) 0; background: linear-gradient(110deg, #f4faf9 0%, #f4faf9 49%, #eaf5f5 100%); }
.why-hero__inner { position: relative; z-index: 2; display: grid; grid-template-columns: 1.04fr .96fr; align-items: center; gap: clamp(2.5rem, 6vw, 5rem); }
.why-hero__copy { max-width: 610px; }
.why-kicker,.why-eyebrow { display: inline-flex; align-items: center; gap: .65rem; color: var(--primary); font-size: .76rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.why-kicker { padding: .55rem .85rem; border: 1px solid #c8e2e1; border-radius: 99px; background: rgba(255,255,255,.7); }
.why-kicker span { width: 7px; height: 7px; border-radius: 50%; background: var(--accent); }
.why-hero h1 { max-width: 650px; margin: 1.35rem 0 1.2rem; font-size: clamp(2.65rem, 5vw, 4.5rem); letter-spacing: -.055em; line-height: 1.08; }
.why-hero__copy > p { max-width: 590px; font-size: 1.08rem; line-height: 1.8; }
.why-actions { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 1.8rem; }
.why-actions .btn { display: inline-flex; align-items: center; gap: .75rem; }
.why-hero__note { display: flex; align-items: center; gap: .55rem; margin-top: 2rem; color: #536d75; font-size: .84rem; }
.why-hero__note i { color: var(--primary); }
.why-hero__visual { position: relative; min-height: 440px; overflow: hidden; border-radius: 220px 220px 22px 22px; background: linear-gradient(150deg, #d7eded, #eef5ea 55%, #d0e2d9); box-shadow: 0 25px 70px rgba(11,79,99,.14); }
.why-hero__visual:before { position: absolute; content: ''; width: 330px; height: 330px; border-radius: 50%; right: -50px; top: 25px; background: rgba(255,255,255,.33); }
.why-visual__sun { position: absolute; width: 82px; height: 82px; top: 52px; right: 82px; background: #e2c276; border-radius: 50%; opacity: .8; }
.why-visual__tower { position: absolute; bottom: 72px; background: #f7fbf8; box-shadow: 12px 15px 35px rgba(11,79,99,.12); }
.why-visual__tower--back { right: 48px; width: 144px; height: 255px; transform: skewY(-5deg); background: #aacbca; }
.why-visual__tower--front { right: 155px; width: 210px; height: 315px; background: linear-gradient(100deg,#fff,#e7f1ef); }
.why-visual__tower--front:before { content: ''; position: absolute; left: 23px; right: 23px; top: 0; height: 12px; background: var(--primary); opacity: .8; }
.why-visual__windows { position: absolute; inset: 33px 25px 30px; background: repeating-linear-gradient(90deg,transparent 0 31px,rgba(14,124,134,.18) 31px 34px), repeating-linear-gradient(0deg,transparent 0 36px,rgba(14,124,134,.15) 36px 39px); }
.why-visual__canopy { position: absolute; bottom: 70px; left: 7%; right: 7%; height: 17px; border-radius: 50%; background: #86aaa0; box-shadow: 0 20px 0 18px rgba(64,126,104,.12); }
.why-visual__figure { position: absolute; z-index: 2; left: 22%; bottom: 75px; width: 32px; height: 110px; border-radius: 17px 17px 3px 3px; background: #154e5a; }
.why-visual__figure:before { position: absolute; content: ''; top: -23px; left: 5px; width: 22px; height: 22px; border-radius: 50%; background: #bd8d6a; }
.why-visual__figure:after { position: absolute; content: ''; bottom: -40px; left: 2px; width: 11px; height: 43px; background: #213b44; transform: rotate(3deg); box-shadow: 16px 0 #213b44; }
.why-visual__figure span { position: absolute; z-index: 2; width: 14px; height: 19px; top: 29px; left: 9px; border-radius: 2px; background: #e1c166; }
.why-visual__plant { position: absolute; z-index: 1; bottom: 35px; width: 95px; height: 70px; border-radius: 100% 0; background: #5f9280; transform: rotate(-22deg); }
.why-visual__plant:after { content:''; position:absolute; width:75px; height:60px; border-radius:100% 0; left:35px; top:4px; background:#7baa91; transform:rotate(52deg); }
.why-visual__plant--one { left: 3%; }.why-visual__plant--two { right: -10px; transform:scale(.8) rotate(-22deg); }
.why-visual__caption { position: absolute; z-index: 3; left: 8%; bottom: 30px; display:flex; gap:.75rem; align-items:center; padding:.85rem 1.1rem; border:1px solid rgba(255,255,255,.75); border-radius:12px; background:rgba(255,255,255,.88); box-shadow:var(--shadow-md); }
.why-visual__caption-icon { display:grid; place-items:center; width:38px; height:38px; border-radius:10px; background:var(--primary-light); color:var(--primary); }
.why-visual__caption b,.why-visual__caption small { display:block; }.why-visual__caption b { color:var(--secondary); font-size:.85rem; }.why-visual__caption small { margin-top:.1rem; color:var(--text-muted); font-size:.7rem; }
.why-hero__wash { position:absolute; z-index:1; pointer-events:none; width:520px; height:520px; border:1px solid rgba(14,124,134,.07); border-radius:50%; right:-150px; bottom:-350px; box-shadow:0 0 0 55px rgba(14,124,134,.025),0 0 0 110px rgba(14,124,134,.02); }
.why-split { display:grid; grid-template-columns:1fr 1fr; align-items:center; gap:clamp(3rem,8vw,7rem); }
.why-copy h2,.why-heading h2,.why-trust h2 { margin:.8rem 0 1rem; letter-spacing:-.035em; }
.why-copy p { line-height:1.8; }
.why-text-link { display:inline-flex; gap:.55rem; align-items:center; margin-top:.4rem; color:var(--primary-dark); font-weight:700; font-size:.91rem; }
.why-text-link:hover { color:var(--primary); gap:.8rem; }
.why-approach__visual { position:relative; min-height:390px; }
.why-approach__frame { position:absolute; inset:0 8% 0 0; overflow:hidden; border-radius:var(--radius-lg); background:linear-gradient(160deg,#d9edeb,#eff2e6 65%,#d2e3d6); }
.why-approach__frame:before { content:''; position:absolute; inset:auto 0 0; height:31%; background:linear-gradient(170deg,#84a899,#588271); clip-path:polygon(0 48%,100% 0,100% 100%,0 100%); }
.why-approach__building { position:absolute; z-index:1; left:20%; top:13%; width:58%; height:60%; background:#f9fbf8; box-shadow:15px 15px 35px rgba(11,79,99,.12); transform:skewY(-3deg); }
.why-approach__building:before { content:''; position:absolute; top:0; left:0; right:0; height:12px; background:var(--primary); }
.why-approach__building span { display:inline-block; width:19%; height:24%; margin:14% 2% 0 3%; border:5px solid #d5e6e2; background:#b8d6d1; }
.why-approach__path { position:absolute; z-index:2; bottom:0; right:12%; width:40%; height:32%; background:#d9d7c9; clip-path:polygon(25% 0,75% 0,100% 100%,0 100%); }
.why-approach__tree { position:absolute; z-index:3; left:8%; bottom:11%; width:75px; height:160px; border-bottom:92px solid #527e6c; border-left:39px solid transparent; border-right:39px solid transparent; filter:drop-shadow(12px 10px 0 rgba(50,98,79,.25)); }
.why-approach__stamp { position:absolute; z-index:4; right:0; bottom:30px; display:flex; align-items:center; gap:.7rem; padding:.9rem 1rem; border-radius:12px; background:#fff; box-shadow:var(--shadow-md); color:var(--secondary); font-size:.8rem; font-weight:700; }
.why-approach__stamp i { color:var(--primary); font-size:1.3rem; }
.why-heading { max-width:740px; margin:0 auto 2.7rem; text-align:center; }
.why-heading > p { max-width:650px; margin:0 auto; }
.why-heading--row { max-width:none; display:grid; grid-template-columns:1.1fr .9fr; align-items:end; gap:3rem; text-align:left; }
.why-heading--row > p { max-width:540px; margin:0 0 .35rem; }
.why-advantage-grid { display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid var(--border); border-left:1px solid var(--border); }
.why-advantage { position:relative; min-height:225px; padding:1.65rem 1.7rem; border-right:1px solid var(--border); border-bottom:1px solid var(--border); background:rgba(255,255,255,.62); }
.why-advantage__number { color:var(--primary); font-family:var(--font-heading); font-size:.85rem; font-weight:700; }
.why-advantage__rule { display:block; width:40px; height:2px; margin:.85rem 0 1rem; background:var(--accent); }
.why-advantage h3 { font-size:1.08rem; }.why-advantage p { margin:0; font-size:.9rem; line-height:1.7; }
.why-service-grid { display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid var(--border); border-left:1px solid var(--border); }
.why-service { min-height:126px; display:grid; grid-template-columns:44px 1fr 15px; align-items:start; gap:.9rem; padding:1.25rem; border-right:1px solid var(--border); border-bottom:1px solid var(--border); transition:background .2s,transform .2s; }
.why-service:hover { background:#f6fbfa; transform:translateY(-2px); }
.why-service__icon { display:grid; place-items:center; width:42px; height:42px; border-radius:12px; background:var(--primary-light); color:var(--primary); }
.why-service b,.why-service small { display:block; }.why-service b { color:var(--secondary); font-size:.91rem; }.why-service small { margin-top:.38rem; color:var(--text-muted); font-size:.78rem; line-height:1.55; }.why-service__arrow { color:#92a9a9; }
.why-center { display:flex; justify-content:center; margin-top:2rem; }
.why-framework { color:#fff; background:linear-gradient(125deg,#0b4f63,#0b6771); }
.why-framework h2,.why-framework h3 { color:#fff; }.why-framework .why-eyebrow { color:#9fdbd7; }.why-framework .why-heading > p { color:#d1e4e4; }
.why-timeline { display:grid; grid-template-columns:repeat(4,1fr); position:relative; margin-top:3.5rem; }
.why-timeline:before { content:''; position:absolute; left:6%; right:6%; top:25px; height:1px; background:rgba(255,255,255,.3); }
.why-stage { position:relative; padding:0 1.5rem; }.why-stage__number { position:relative; z-index:1; display:grid; place-items:center; width:51px; height:51px; margin:0 auto 1.45rem 0; border:1px solid rgba(255,255,255,.55); border-radius:50%; color:#fff; background:#126571; font-size:.82rem; font-weight:700; }
.why-stage h3 { font-size:1.08rem; }.why-stage p { color:#d1e4e4; font-size:.88rem; line-height:1.7; }
.why-split--standards { align-items:start; }.why-cert-list { border-top:1px solid var(--border); }
.why-cert { display:flex; align-items:center; gap:.9rem; min-height:82px; padding:.9rem .15rem; border-bottom:1px solid var(--border); }
.why-cert__icon { display:grid; place-items:center; flex:0 0 40px; width:40px; height:40px; border-radius:50%; background:#fff; color:var(--primary); box-shadow:var(--shadow-sm); }
.why-cert__preview { flex:0 0 100px; height:68px; display:grid; place-items:center; overflow:hidden; border:1px solid var(--border); border-radius:8px; background:#fff; }.why-cert__preview img { width:100%; height:100%; object-fit:contain; }
.why-cert__body { min-width:0; flex:1; }.why-cert__body b,.why-cert__body small { display:block; }.why-cert__body b { color:var(--secondary); font-size:.92rem; }.why-cert__body small { color:var(--text-muted); font-size:.78rem; }
.why-cert__view { flex:none; color:var(--primary); font-size:.78rem; font-weight:700; }.why-empty { padding:1rem; border:1px dashed #b8cece; border-radius:var(--radius); background:#fff; }
.why-industry-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:1rem; }
.why-industry { position:relative; min-height:195px; overflow:hidden; display:flex; align-items:end; border-radius:14px; background:#e5f0ed; box-shadow:var(--shadow-sm); }
.why-industry img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .35s; }.why-industry:hover img { transform:scale(1.04); }
.why-industry__art { position:absolute; inset:0; display:grid; place-items:center; color:rgba(14,124,134,.28); background:radial-gradient(circle at 75% 18%,#fff 0,transparent 33%),linear-gradient(145deg,#d4e9e5,#eaf0e7); font-size:2.5rem; }
.why-industry__label { position:relative; z-index:1; display:flex; align-items:center; justify-content:space-between; width:100%; gap:.75rem; padding:1rem; color:#fff; background:linear-gradient(0deg,rgba(8,47,57,.9),rgba(8,47,57,.04)); }.why-industry__label b { font-size:.91rem; }.why-industry__label span { font-size:1.1rem; }
.why-trust__inner { display:grid; grid-template-columns:.8fr 1.2fr; gap:4rem; align-items:center; }.why-trust__copy p { line-height:1.8; }
 .why-client-wall { display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; }.why-client-logo { min-height:105px; display:grid; place-items:center; padding:1rem; border:1px solid var(--border); border-radius:12px; background:#fff; }.why-client-logo img { max-width:100%; max-height:64px; width:auto; height:auto; object-fit:contain; }.why-client-empty { display:flex; align-items:center; justify-content:center; gap:.8rem; min-height:150px; border:1px dashed #bfd1d0; border-radius:var(--radius); color:var(--text-muted); }.why-client-empty .site-icon-svg { color:var(--primary); font-size:1.5rem; width:1.5rem; height:1.5rem; }
.why-closing { padding:4.5rem 0; background:#fff; }.why-closing__inner { position:relative; isolation:isolate; display:flex; justify-content:space-between; align-items:center; gap:3rem; overflow:hidden; padding:clamp(2.2rem,5vw,4rem); border-radius:var(--radius-lg); color:#fff; background:linear-gradient(120deg,#0b4f63,#0e7c86); }
.why-closing__inner > div:first-child { position:relative; z-index:2; max-width:650px; }.why-closing h2 { margin:.8rem 0; color:#fff; letter-spacing:-.035em; }.why-closing p { max-width:620px; margin:0; color:#d5e9e9; }.why-closing .why-eyebrow { color:#a6ded9; }.why-closing__inner .why-actions { position:relative; z-index:2; flex:none; margin:0; }.why-closing__contact { border-color:rgba(255,255,255,.55); color:#fff; }.why-closing__contact:hover { background:rgba(255,255,255,.1); }.why-closing__orbit { position:absolute; z-index:0; border:1px solid rgba(255,255,255,.12); border-radius:50%; }.why-closing__orbit--one { width:380px; height:380px; right:3%; top:-68%; }.why-closing__orbit--two { width:520px; height:520px; right:-1%; top:-94%; }
@media (max-width: 980px) { .why-hero__inner { grid-template-columns:1fr 1fr; gap:2rem; }.why-hero__visual { min-height:380px; }.why-service-grid { grid-template-columns:repeat(2,1fr); }.why-industry-grid { grid-template-columns:repeat(3,1fr); }.why-closing__inner { align-items:flex-start; flex-direction:column; }.why-closing__inner .why-actions { margin-top:.3rem; } }
@media (max-width: 720px) { .why-page .why-section { padding:4.25rem 0; }.why-hero { padding:4rem 0 3.5rem; }.why-hero__inner { grid-template-columns:1fr; }.why-hero__visual { min-height:350px; border-radius:160px 160px 18px 18px; max-width:560px; width:100%; margin:0 auto; }.why-split,.why-trust__inner { grid-template-columns:1fr; gap:2.5rem; }.why-approach__visual { min-height:330px; }.why-heading--row { grid-template-columns:1fr; gap:.5rem; }.why-advantage-grid { grid-template-columns:repeat(2,1fr); }.why-timeline { grid-template-columns:1fr; gap:0; margin-top:2rem; }.why-timeline:before { top:22px; bottom:35px; left:25px; right:auto; width:1px; height:auto; }.why-stage { min-height:132px; padding:0 0 1.6rem 4.25rem; }.why-stage__number { position:absolute; left:0; top:0; margin:0; }.why-stage h3 { padding-top:.1rem; }.why-stage p { margin-bottom:0; }.why-industry-grid { grid-template-columns:repeat(2,1fr); }.why-industry { min-height:165px; }.why-client-wall { grid-template-columns:repeat(2,1fr); } }
@media (max-width: 480px) { .why-hero h1 { font-size:2.55rem; }.why-actions { align-items:stretch; flex-direction:column; }.why-actions .btn { justify-content:center; }.why-hero__visual { min-height:310px; }.why-visual__tower--front { right:95px; width:185px; }.why-visual__tower--back { right:15px; }.why-advantage-grid,.why-service-grid { grid-template-columns:1fr; }.why-advantage { min-height:0; }.why-industry-grid { gap:.65rem; }.why-industry { min-height:140px; }.why-industry__label { padding:.75rem; }.why-industry__label b { font-size:.78rem; }.why-client-wall { gap:.65rem; }.why-client-logo { min-height:85px; }.why-closing { padding:3rem 0; } }

/* ---------------------------------------------------------------------
   CTA banner
   --------------------------------------------------------------------- */
.cta-banner {
  background: linear-gradient(135deg, var(--primary) 0%, var(--secondary) 100%);
  color: #fff; border-radius: var(--radius-lg); padding: 3rem 2.5rem;
  display: flex; align-items: center; justify-content: space-between; gap: 2rem; flex-wrap: wrap;
}
.cta-banner h2 { color: #fff; margin: 0; max-width: 480px; font-size: 1.6rem; }
.cta-banner__actions { display: flex; gap: 1rem; flex-wrap: wrap; }

/* ---------------------------------------------------------------------
   Timeline (About milestones)
   --------------------------------------------------------------------- */
.timeline { position: relative; max-width: 760px; margin: 0 auto; padding-left: 2rem; border-left: 2px solid var(--border); }
.timeline__item { position: relative; padding-bottom: 2.25rem; }
.timeline__item::before {
  content: ''; position: absolute; left: -2.4rem; top: 0.3rem; width: 12px; height: 12px;
  border-radius: 50%; background: var(--primary); border: 3px solid var(--primary-light);
}
.timeline__year { color: var(--accent); font-weight: 700; font-size: 0.85rem; letter-spacing: 0.05em; }
.timeline__item h3 { margin: 0.25rem 0 0.4rem; font-size: 1.05rem; }
.timeline__item p { margin: 0; font-size: 0.92rem; }

/* ---------------------------------------------------------------------
   Forms
   --------------------------------------------------------------------- */
.form-card { background: #fff; border: 1px solid var(--border); border-radius: var(--radius); padding: 2rem; }
.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 1.25rem; }
@media (max-width: 640px) { .form-row { grid-template-columns: 1fr; } }
.form-group { margin-bottom: 1.25rem; }
.form-group label { display: block; font-weight: 600; font-size: 0.88rem; margin-bottom: 0.4rem; color: var(--text); }
.form-control {
  width: 100%; padding: 0.75rem 1rem; border: 1px solid var(--border); border-radius: 8px;
  font-size: 0.92rem; font-family: var(--font-body); background: #fff; color: var(--text);
}
.form-control:focus { outline: none; border-color: var(--primary); box-shadow: 0 0 0 3px var(--primary-light); }
textarea.form-control { resize: vertical; min-height: 120px; }
.field-error { color: var(--danger); font-size: 0.8rem; margin-top: 0.3rem; }
.alert { padding: 0.9rem 1.1rem; border-radius: 8px; font-size: 0.9rem; margin-bottom: 1.25rem; }
.alert-success { background: var(--primary-light); color: var(--primary-dark); border: 1px solid var(--primary); }
.alert-danger { background: #FCEBE9; color: var(--danger); border: 1px solid #F3C9C4; }

/* ---------------------------------------------------------------------
   Contact info list + map
   --------------------------------------------------------------------- */
.contact-info-list { list-style: none; padding: 0; margin: 0 0 1.5rem; }
.contact-info-list li { display: flex; gap: 0.85rem; margin-bottom: 1.1rem; align-items: flex-start; }
.contact-info-list .icon { color: var(--primary); font-size: 1.1rem; margin-top: 0.15rem; }
.contact-layout { grid-template-columns:minmax(0,1fr) minmax(0,1.4fr); gap:2.5rem; align-items:start; }
.map-embed { border-radius: var(--radius); overflow: hidden; border: 1px solid var(--border); }
.map-embed iframe { width: 100%; height: 320px; border: 0; display: block; }
.map-embed-placeholder {
  height: 320px; display: flex; align-items: center; justify-content: center;
  background: var(--surface); color: var(--text-muted); font-size: 0.9rem; text-align: center; padding: 1rem;
}

/* ---------------------------------------------------------------------
   Breadcrumb + page header
   --------------------------------------------------------------------- */
.page-header {
  background: var(--surface); border-bottom: 1px solid var(--border);
  padding: 2.75rem 0 2.25rem; text-align: center;
}
.page-header h1 { margin-bottom: 0.4rem; }
.breadcrumb { list-style: none; display: flex; justify-content: center; gap: 0.4rem; padding: 0; margin: 0 0 0.75rem; font-size: 0.85rem; color: var(--text-muted); }
.breadcrumb li:not(:last-child)::after { content: '/'; margin-left: 0.4rem; color: var(--border); }
.breadcrumb a { color: var(--text-muted); }
.breadcrumb a:hover { color: var(--primary); }

/* Contact and Insights layouts adapt to narrow screens. */
.insights-layout { display:grid; grid-template-columns:minmax(0,1fr) 280px; gap:2.5rem; align-items:start; }
.insights-layout > *, .insights-post-grid > *, .contact-layout > * { min-width:0; }
.insights-post-grid { grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr)); }
.insights-article { max-width:760px; }
.insights-article__body { overflow-wrap:anywhere; }
.insights-article__body img, .insights-article__body video, .insights-article__body iframe { max-width:100%; }
.insights-article-header h1, .insights-article-header .breadcrumb { overflow-wrap:anywhere; }
@media (max-width: 760px) {
  .contact-layout, .insights-layout { grid-template-columns:minmax(0,1fr); gap:1.5rem; }
  .contact-layout .form-card { padding:1.25rem; }
  .insights-layout aside { order:-1; }
  .insights-layout aside { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.75rem; }
  .insights-layout aside .form-card { min-width:0; margin:0 !important; padding:1rem; }
  .insights-layout aside .form-card:last-child { grid-column:1 / -1; }
  .insights-post-grid { grid-template-columns:minmax(0,1fr); }
  .insights-article-header { padding:2rem 1rem 1.5rem; }
  .insights-article-header h1 { font-size:clamp(1.8rem,8vw,2.5rem); }
  .insights-article-header .breadcrumb { flex-wrap:wrap; }
}
@media (max-width: 420px) {
  .insights-layout aside { grid-template-columns:minmax(0,1fr); }
  .insights-layout aside .form-card:last-child { grid-column:auto; }
}

/* ---------------------------------------------------------------------
   Footer
   --------------------------------------------------------------------- */
.site-footer {
  background: #f7f8f8;
  border-top: 1px solid var(--border);
  color: var(--text);
}
.site-footer__inner {
  max-width: var(--container-width);
  margin: 0 auto;
  padding: 3rem 1.5rem 1.5rem;
  display: grid;
  grid-template-columns: 1.4fr 1fr 1fr 1fr 1.1fr;
  gap: 2rem;
  align-items: start;
}
.site-footer__brand {
  max-width: 300px;
}
.site-footer__logo {
  height: 52px;
  width: auto;
  margin-bottom: 1rem;
}
.site-footer__tagline {
  color: var(--primary);
  font-size: 0.95rem;
  font-weight: 600;
  margin-bottom: 0.85rem;
}
.site-footer__address {
  color: var(--text-muted);
  font-size: 0.95rem;
  line-height: 1.7;
  margin: 0;
}
.site-footer__col h4 {
  margin: 0 0 1rem;
  font-size: 1.15rem;
  color: var(--secondary);
}
.site-footer__col ul {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  gap: 0.65rem;
}
.site-footer__col a {
  color: var(--primary);
  font-weight: 500;
}
.site-footer__col a:hover {
  color: var(--primary-dark);
}
.site-footer__col--contact li {
  color: var(--text-muted);
}
.site-footer__bottom {
  max-width: var(--container-width);
  margin: 0 auto;
  padding: 1rem 1.5rem 2rem;
  border-top: 1px solid var(--border);
  display: flex; align-items: center; justify-content: space-between; gap: 1rem;
  flex-wrap: wrap;
}
.site-footer__bottom p {
  margin: 0;
  color: var(--text-muted);
  font-size: 0.9rem;
}
.site-footer__bottom ul {
  list-style: none;
  display: flex; align-items: center; gap: 1rem; flex-wrap: wrap;
  padding: 0; margin: 0;
}
.site-footer__bottom a {
  color: var(--primary);
  font-size: 0.9rem;
}

@media (max-width: 980px) {
  .site-footer__inner {
    grid-template-columns: 1fr 1fr 1fr;
  }
  .site-footer__brand {
    grid-column: span 3;
    max-width: 100%;
  }
}

@media (max-width: 640px) {
  .site-footer__inner {
    grid-template-columns: 1fr;
    gap: 1.5rem;
  }
  .site-footer__brand {
    grid-column: auto;
  }
  .site-footer__bottom {
    flex-direction: column;
    align-items: flex-start;
  }
}

/* ---------------------------------------------------------------------
   Floating WhatsApp button
   --------------------------------------------------------------------- */
.whatsapp-fab {
  position: fixed; right: 1.5rem; bottom: 1.5rem; z-index: 150;
  width: 56px; height: 56px; border-radius: 50%; background: #25D366; color: #fff;
  display: flex; align-items: center; justify-content: center;
  box-shadow: 0 8px 20px rgba(0,0,0,0.2);
  transition: transform 0.2s ease;
}
.whatsapp-fab:hover { transform: scale(1.06); }

/* ---------------------------------------------------------------------
   Cookie notice
   --------------------------------------------------------------------- */
.cookie-notice {
  position: fixed; left: 1.5rem; right: 1.5rem; bottom: 1.5rem; z-index: 160;
  max-width: 480px; margin: 0 auto;
  background: var(--secondary); color: #fff; border-radius: var(--radius);
  padding: 1.25rem 1.5rem; display: flex; align-items: center; gap: 1rem; flex-wrap: wrap;
  box-shadow: var(--shadow-md);
}
.cookie-notice p { color: rgba(255,255,255,0.85); font-size: 0.85rem; margin: 0; flex: 1; }
.cookie-notice a { color: #fff; text-decoration: underline; }

/* ---------------------------------------------------------------------
   Scroll-reveal animation hooks
   --------------------------------------------------------------------- */
[data-animate] { opacity: 0; transform: translateY(18px); transition: opacity 0.6s ease, transform 0.6s ease; }
[data-animate].is-visible { opacity: 1; transform: translateY(0); }

@media (prefers-reduced-motion: reduce) {
  [data-animate] { opacity: 1; transform: none; transition: none; }
  html { scroll-behavior: auto; }
}

@media (max-width: 760px) {
  .hero { padding: 3.75rem 0 3.5rem; }
  .hero__layout { grid-template-columns: 1fr; gap: 2.5rem; }
  .hero__visual { min-height: 0; }
  .hero__visual img { height: 260px; }
}

/* Why NLS proof sections: explicit layout rules keep logos and credentials
   contained even when broader component styles are added later. */
.why-page .why-standards .why-split--standards { display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); align-items:center; gap:clamp(2rem,5vw,4.5rem); }
.why-page .why-standards .why-cert-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.85rem; border:0; }
.why-page .why-standards .why-cert { min-width:0; min-height:125px; display:grid; grid-template-columns:96px minmax(0,1fr); grid-template-rows:1fr auto; align-items:center; gap:.35rem .8rem; padding:1rem; border:1px solid var(--border); border-radius:12px; background:#fff; box-shadow:var(--shadow-sm); }
.why-page .why-standards .why-cert__preview { grid-row:1 / span 2; width:96px; height:76px; flex:none; }
.why-page .why-standards .why-cert__icon { grid-row:1 / span 2; }
.why-page .why-standards .why-cert__body { align-self:end; }
.why-page .why-standards .why-cert__body b { line-height:1.35; }
.why-page .why-standards .why-cert__body small { line-height:1.4; margin-top:.18rem; }
.why-page .why-standards .why-cert__view { align-self:start; justify-self:start; }
.why-page .why-trust .why-trust__inner { display:grid; grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr); align-items:center; gap:clamp(2rem,5vw,4.5rem); }
.why-page .why-trust .why-client-wall { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); align-items:stretch; gap:.9rem; }
.why-page .why-trust .why-client-logo { min-width:0; min-height:112px; display:grid; place-items:center; padding:1.1rem; overflow:hidden; border:1px solid var(--border); border-radius:12px; background:#fff; }
.why-page .why-trust .why-client-logo img { display:block; width:auto; height:auto; max-width:100%; max-height:66px; object-fit:contain; }
.why-page .why-page-photo,.about-page .about-page-photo { position:absolute; inset:0; display:block; width:100%; height:100%; object-fit:cover; }
.why-page .why-hero__visual--photo:before,.about-page .about-hero__art--photo:before { display:none; }
.why-page .why-approach__visual { min-height:390px; overflow:hidden; border-radius:var(--radius-lg); }
.why-page .why-approach__visual .why-page-photo { border-radius:var(--radius-lg); }
.about-page .about-hero__art .about-page-photo { object-position:center; }
.about-page .about-overview__art--photo { overflow:hidden; border-radius:var(--radius-lg); }
.about-page .about-overview__art .about-page-photo { border-radius:var(--radius-lg); }
@media (max-width:900px) { .why-page .why-standards .why-split--standards,.why-page .why-trust .why-trust__inner { grid-template-columns:1fr; }.why-page .why-standards .why-cert-list { max-width:720px; width:100%; margin:0 auto; } }
@media (max-width:560px) { .why-page .why-standards .why-cert-list { grid-template-columns:1fr; }.why-page .why-standards .why-cert { min-height:108px; }.why-page .why-trust .why-client-wall { grid-template-columns:repeat(2,minmax(0,1fr)); gap:.65rem; }.why-page .why-trust .why-client-logo { min-height:90px; padding:.75rem; }.why-page .why-trust .why-client-logo img { max-height:56px; } }

/* Full-viewport homepage image carousel */
.hero--full { position:relative; isolation:isolate; display:flex; align-items:center; min-height:620px; height:calc(100svh - var(--header-height)); overflow:hidden; padding:0; color:#fff; background:#123f4a; }
.hero--full .hero__slides,.hero--full .hero__slide { position:absolute; inset:0; }
.hero--full .hero__slide { z-index:0; opacity:0; transition:opacity .9s ease; }
.hero--full .hero__slide.is-active { z-index:1; opacity:1; }
.hero--full .hero__slide[hidden] { display:none; }
.hero--full .hero__slide img { display:block; width:100%; height:100%; object-fit:cover; object-position:center; }
.hero--full .hero__shade { position:absolute; z-index:2; inset:0; background:linear-gradient(90deg,rgba(6,39,48,.84) 0%,rgba(6,39,48,.62) 42%,rgba(6,39,48,.12) 100%),linear-gradient(0deg,rgba(6,39,48,.35),transparent 42%); }
.hero--full .hero__inner { position:relative; z-index:3; width:100%; max-width:var(--container-width); margin:0 auto; padding:2.5rem 1.5rem; }
.hero--full .hero__content { width:min(100%,760px); padding:0; animation:heroCopyIn .65s ease both; }
.hero--full .hero__eyebrow { display:inline-block; color:#d5f1ed; font-size:.78rem; font-weight:700; letter-spacing:.15em; text-transform:uppercase; }
.hero--full h1 { margin:.9rem 0 1.1rem; color:#fff; font-size:clamp(2.8rem,5.6vw,5.35rem); line-height:1.04; letter-spacing:-.055em; text-wrap:balance; }
.hero--full .hero__subtext { max-width:640px; color:rgba(255,255,255,.9); font-size:clamp(1rem,1.35vw,1.16rem); line-height:1.75; }
.hero--full .hero__actions { display:flex; flex-wrap:wrap; gap:.8rem; margin-top:1.7rem; }
.hero--full .hero__controls { position:absolute; z-index:4; right:max(1.5rem,calc((100vw - var(--container-width))/2)); bottom:2rem; display:flex; align-items:center; gap:.65rem; }
.hero--full .hero__arrow,.hero--full .hero__pause { display:grid; place-items:center; min-width:40px; height:40px; border:1px solid rgba(255,255,255,.58); border-radius:50%; color:#fff; background:rgba(9,50,60,.38); cursor:pointer; backdrop-filter:blur(6px); }
.hero--full .hero__arrow { font-size:1.6rem; line-height:1; }.hero--full .hero__arrow:hover,.hero--full .hero__pause:hover { background:rgba(255,255,255,.2); }
.hero--full .hero__dots { display:flex; align-items:center; gap:.45rem; padding:0 .25rem; }.hero--full .hero__dot { width:9px; height:9px; padding:0; border:0; border-radius:99px; background:rgba(255,255,255,.58); cursor:pointer; transition:width .2s,background .2s; }.hero--full .hero__dot.is-active { width:26px; background:#fff; }
.hero--full .hero__pause { width:auto; padding:0 .85rem; border-radius:99px; font:600 .78rem var(--font-body); }
@keyframes heroCopyIn { from { opacity:0; transform:translateY(10px); } to { opacity:1; transform:translateY(0); } }
@media (max-width:700px) { .hero--full { min-height:620px; height:calc(100svh - var(--header-height)); }.hero--full .hero__shade { background:linear-gradient(90deg,rgba(6,39,48,.78),rgba(6,39,48,.42)),linear-gradient(0deg,rgba(6,39,48,.42),transparent 55%); }.hero--full .hero__inner { align-self:center; padding:2rem 1.25rem 5rem; }.hero--full h1 { font-size:clamp(2.65rem,11vw,4rem); }.hero--full .hero__controls { right:1.25rem; bottom:1.25rem; left:1.25rem; justify-content:flex-end; }.hero--full .hero__actions { flex-direction:column; align-items:stretch; max-width:320px; }.hero--full .hero__actions .btn { justify-content:center; } }
@media (prefers-reduced-motion:reduce) { .hero--full .hero__slide { transition:none; }.hero--full .hero__content { animation:none; } }

/* About page — editorial company profile */
.about-page { overflow:hidden; }
.about-page .about-section { padding:clamp(4.25rem,7vw,6.5rem) 0; }
.about-eyebrow { display:block; color:var(--primary); font-size:.74rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase; }
.about-hero { padding:2.1rem 0 clamp(4rem,7vw,6.25rem); background:linear-gradient(120deg,#f4faf9,#edf6f4 68%,#e6f1ee); }
.about-hero__inner { display:grid; grid-template-columns:1.05fr .95fr; align-items:center; gap:clamp(2rem,6vw,5.5rem); }
.about-hero__copy { max-width:620px; }.about-hero .breadcrumb { display:flex; gap:.55rem; list-style:none; margin:0 0 2rem; padding:0; color:#76848b; font-size:.82rem; }.about-hero .breadcrumb li+li:before { content:'/'; margin-right:.55rem; color:#aab7b9; }.about-hero h1 { margin:.85rem 0 1.1rem; font-size:clamp(2.5rem,4.8vw,4.25rem); letter-spacing:-.055em; line-height:1.08; }.about-hero__copy>p { max-width:580px; font-size:1.08rem; line-height:1.8; }.about-hero__copy .btn { display:inline-flex; gap:.65rem; align-items:center; margin-top:.7rem; }
.about-hero__art { position:relative; min-height:410px; overflow:hidden; border-radius:180px 180px 20px 20px; background:linear-gradient(150deg,#d6ebe7 0%,#eef3e9 62%,#c4ddd4); box-shadow:0 24px 65px rgba(11,79,99,.13); }.about-hero__art:before { position:absolute; content:''; width:160px; height:160px; right:13%; top:11%; border-radius:50%; background:rgba(226,194,118,.62); }
.about-art__skyline { position:absolute; z-index:1; right:6%; bottom:0; width:35%; height:68%; display:flex; align-items:end; gap:8px; }.about-art__skyline span { flex:1; background:#a7c7c3; border-top:4px solid #8eb5b0; }.about-art__skyline span:nth-child(1){height:64%}.about-art__skyline span:nth-child(2){height:88%}.about-art__skyline span:nth-child(3){height:74%}.about-art__skyline span:nth-child(4){height:100%}
.about-art__office { position:absolute; z-index:2; left:15%; bottom:12%; width:62%; height:60%; display:grid; grid-template-columns:repeat(4,1fr); grid-template-rows:repeat(3,1fr); gap:10px; padding:28px 24px; border-top:10px solid var(--primary); background:linear-gradient(100deg,#fff,#e8f2ef); box-shadow:15px 18px 35px rgba(11,79,99,.13); transform:skewY(-2deg); }.about-art__office i { background:linear-gradient(135deg,#c4dfda,#e3efeb); border:3px solid #d6e6e2; }.about-art__walk { position:absolute; z-index:3; left:0; right:0; bottom:0; height:20%; background:linear-gradient(170deg,#aec5b5,#6e9a85); clip-path:polygon(0 72%,100% 0,100% 100%,0 100%); }
.about-art__person { position:absolute; z-index:4; left:12%; bottom:12%; width:26px; height:83px; border-radius:14px 14px 2px 2px; background:#164f5c; }.about-art__person:before { content:''; position:absolute; left:4px; top:-20px; width:19px; height:19px; border-radius:50%; background:#bc8c6b; }.about-art__person:after { content:''; position:absolute; left:4px; bottom:-29px; width:8px; height:31px; background:#243b41; box-shadow:12px 0 #243b41; }.about-art__person i { position:absolute; z-index:2; top:22px; left:7px; width:12px; height:15px; background:#dfc26c; }
.about-art__tree { position:absolute; z-index:3; bottom:11%; width:56px; height:105px; border-bottom:60px solid #5f9078; border-left:28px solid transparent; border-right:28px solid transparent; filter:drop-shadow(8px 10px 0 rgba(48,91,72,.15)); }.about-art__tree--left { left:4%; }.about-art__tree--right { right:5%; transform:scale(.78); }.about-art__label { position:absolute; z-index:5; left:7%; bottom:7%; display:flex; align-items:center; gap:.7rem; padding:.75rem 1rem; border:1px solid rgba(255,255,255,.8); border-radius:10px; background:rgba(255,255,255,.9); box-shadow:var(--shadow-md); color:#66757a; font-size:.7rem; }.about-art__label>i { color:var(--primary); font-size:1.3rem; }.about-art__label b { color:var(--secondary); font-size:.78rem; }
.about-overview__inner { display:grid; grid-template-columns:.9fr 1.1fr; align-items:center; gap:clamp(3rem,8vw,7rem); }.about-copy h2,.about-section-heading h2,.about-capabilities h2 { margin:.75rem 0 1rem; letter-spacing:-.04em; }.about-copy p,.about-rich-copy { line-height:1.8; }.about-rich-copy p:last-child { margin-bottom:.6rem; }
.about-overview__art { position:relative; min-height:345px; }.about-overview__panel { position:absolute; inset:0 7% 0 0; display:grid; place-items:center; overflow:hidden; border-radius:18px; background:radial-gradient(circle at 75% 15%,#fff 0,transparent 30%),linear-gradient(150deg,#e1efeb,#f2f3e8 70%,#cee2d8); }.about-overview__panel:after { position:absolute; content:''; inset:auto 0 0; height:24%; background:linear-gradient(165deg,#8bb39f,#5b8a76); clip-path:polygon(0 52%,100% 0,100% 100%,0 100%); }.about-overview__panel-kicker { position:absolute; top:1.5rem; left:1.5rem; color:#647b78; font-size:.73rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; }.about-overview__rings { position:relative; z-index:1; width:170px; height:170px; display:grid; place-items:center; border:1px solid rgba(14,124,134,.24); border-radius:50%; color:var(--primary); background:rgba(255,255,255,.45); }.about-overview__rings:before,.about-overview__rings:after { position:absolute; content:''; border:1px solid rgba(14,124,134,.2); border-radius:50%; }.about-overview__rings:before { inset:18px; }.about-overview__rings:after { inset:38px; }.about-overview__rings i { z-index:2; font-size:2.4rem; }.about-overview__pill { position:absolute; z-index:3; padding:.5rem .8rem; border-radius:99px; color:var(--secondary); background:#fff; box-shadow:var(--shadow-sm); font-size:.75rem; font-weight:700; }.about-overview__pill--one{top:29%;left:17%}.about-overview__pill--two{top:42%;right:12%}.about-overview__pill--three{bottom:26%;left:34%}.about-overview__links { display:flex; flex-wrap:wrap; gap:1.25rem; margin-top:1.3rem; }.about-overview__links a,.about-inline-link { color:var(--primary-dark); font-size:.88rem; font-weight:700; }.about-overview__links a span,.about-inline-link span { margin-left:.35rem; }
.about-principles { background:#f6f9f8; }.about-section-heading { max-width:720px; margin:0 auto 2.4rem; text-align:center; }.about-section-heading>p { margin:0 auto; }.about-section-heading--row { max-width:none; display:flex; align-items:end; justify-content:space-between; gap:2rem; text-align:left; }.about-section-heading--row>p { max-width:480px; margin:0 0 .3rem; }
.about-principle-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; }.about-principle { min-height:260px; padding:1.7rem; border:1px solid #e2e9e8; border-radius:14px; background:#fff; box-shadow:var(--shadow-sm); }.about-principle__icon { display:grid; place-items:center; width:44px; height:44px; margin-bottom:1.15rem; border-radius:12px; color:var(--primary); background:var(--primary-light); }.about-principle__label { display:block; margin-bottom:.55rem; color:#839096; font-size:.72rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; }.about-principle h3 { font-size:1.15rem; }.about-principle p,.about-principle li { color:var(--text-muted); font-size:.91rem; line-height:1.75; }.about-principle ul { margin:.15rem 0 0; padding-left:1.1rem; }.about-principle li+li { margin-top:.35rem; }
.about-timeline { position:relative; max-width:940px; margin:0 auto; padding:0 0 0 4.5rem; }.about-timeline:before { position:absolute; content:''; top:8px; bottom:12px; left:1.35rem; width:1px; background:#cbded9; }.about-milestone { position:relative; display:grid; grid-template-columns:90px 1fr; gap:1.5rem; padding:0 0 2rem; }.about-milestone__year { color:var(--primary); font-family:var(--font-heading); font-size:1.12rem; font-weight:700; }.about-milestone__dot { position:absolute; left:-3.62rem; top:5px; width:14px; height:14px; border:3px solid #fff; border-radius:50%; background:var(--primary); box-shadow:0 0 0 1px #9cc8c3; }.about-milestone__content { padding:0 0 1.4rem; border-bottom:1px solid var(--border); }.about-milestone__content img { width:min(100%,360px); max-height:200px; margin:0 0 1rem; border-radius:10px; object-fit:cover; }.about-milestone h3 { margin:0 0 .35rem; font-size:1.12rem; }.about-milestone p { margin:0; font-size:.9rem; }
.about-credentials { background:#f6f9f8; }.about-credential-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; }.about-credential { min-width:0; display:flex; flex-direction:column; padding:1rem; border:1px solid var(--border); border-radius:14px; background:#fff; box-shadow:var(--shadow-sm); }.about-credential__image { display:grid; place-items:center; width:100%; height:140px; overflow:hidden; border-radius:9px; background:#f7f9f8; }.about-credential__image img { width:100%; height:100%; object-fit:contain; }.about-credential__mark { display:grid; place-items:center; height:140px; border-radius:9px; color:var(--primary); background:linear-gradient(135deg,#eaf5f3,#f8f8f1); font-size:1.8rem; }.about-credential__copy { padding:.9rem .1rem .3rem; }.about-credential__copy h3 { margin:0 0 .35rem; font-size:1rem; }.about-credential__copy p,.about-credential__copy small { margin:0; color:var(--text-muted); font-size:.82rem; line-height:1.55; }.about-credential__link { margin-top:auto; padding:.7rem .1rem .1rem; color:var(--primary); font-size:.82rem; font-weight:700; }.about-credentials__more { margin-top:1.7rem; text-align:center; }
.about-capabilities__inner { display:grid; grid-template-columns:.9fr 1.1fr; align-items:center; gap:4rem; }.about-capabilities__inner>div:first-child>p { max-width:540px; line-height:1.8; }.about-capabilities__links { display:grid; gap:.75rem; }.about-capabilities__links>a { display:grid; grid-template-columns:48px 1fr 20px; align-items:center; gap:1rem; padding:1rem; border:1px solid var(--border); border-radius:12px; color:var(--secondary); background:#fff; transition:transform .2s,border-color .2s; }.about-capabilities__links>a:hover { transform:translateY(-2px); border-color:#a9ceca; }.about-capability-icon { display:grid; place-items:center; width:46px; height:46px; border-radius:12px; color:var(--primary); background:var(--primary-light); }.about-capabilities__links b,.about-capabilities__links small { display:block; }.about-capabilities__links b { font-size:.92rem; }.about-capabilities__links small { margin-top:.15rem; color:var(--text-muted); font-size:.78rem; }
.about-closing { padding:0 0 4.5rem; }.about-closing__inner { display:flex; align-items:center; justify-content:space-between; gap:2.5rem; padding:clamp(2rem,5vw,3.5rem); border-radius:20px; color:#fff; background:linear-gradient(120deg,#0b4f63,#0e7c86); }.about-closing__inner>div:first-child { max-width:700px; }.about-closing .about-eyebrow { color:#a6ded9; }.about-closing h2 { margin:.65rem 0; color:#fff; letter-spacing:-.035em; }.about-closing p { margin:0; color:#d5e9e9; line-height:1.75; }.about-closing__actions { display:flex; flex:none; flex-wrap:wrap; gap:.75rem; }.about-closing__actions .btn { display:inline-flex; align-items:center; gap:.6rem; }.about-closing__secondary { border:1px solid rgba(255,255,255,.6); color:#fff; }.about-closing__secondary:hover { background:rgba(255,255,255,.1); }
@media (max-width:900px) { .about-hero__inner,.about-overview__inner,.about-capabilities__inner { grid-template-columns:1fr; }.about-hero__copy { max-width:740px; }.about-hero__art { width:min(100%,600px); margin:0 auto; }.about-overview__art { min-height:300px; }.about-credential-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }.about-closing__inner { align-items:flex-start; flex-direction:column; }.about-section-heading--row { align-items:flex-start; flex-direction:column; gap:.4rem; } }
@media (max-width:640px) { .about-page .about-section { padding:4rem 0; }.about-hero { padding-top:1.5rem; }.about-hero h1 { font-size:2.55rem; }.about-hero__art { min-height:330px; border-radius:130px 130px 16px 16px; }.about-overview__art { min-height:260px; }.about-principle-grid,.about-credential-grid { grid-template-columns:1fr; }.about-principle { min-height:0; }.about-timeline { padding-left:2.65rem; }.about-timeline:before { left:.55rem; }.about-milestone { grid-template-columns:1fr; gap:.3rem; }.about-milestone__dot { left:-2.5rem; }.about-capabilities__inner { gap:2rem; }.about-closing { padding-bottom:3rem; }.about-closing__actions { width:100%; flex-direction:column; }.about-closing__actions .btn { justify-content:center; } }

@media (max-width:760px) { .career-detail-layout { grid-template-columns:minmax(0,1fr); gap:1.5rem; } }

