/* =========================================================
   ATC NEWS — dual mode styles
   • Laptop/big screens: docked right panel (vertical scroll)
   • Phone/tablet: inline "Blog & News" section (horizontal
     marquee, same movement as the client-logo carousel)
   Scoped with .atcnews-*.
========================================================= */
.atcnews-root, .atcnews-section, .atcnews-modal-overlay{
  --nx-accent:      var(--sky, #10B3E6);
  --nx-accent-deep: var(--sky-deep, #0B8FBB);
  --nx-accent-pale: var(--sky-pale, #E4F7FD);
  --nx-ink:         var(--ink, #14181D);
  --nx-text:        var(--text, #1A222B);
  --nx-text-soft:   var(--text-soft, #57636E);
  --nx-paper:       var(--paper, #FFFFFF);
  --nx-paper-2:     var(--paper-2, #F3F6F8);
  --nx-line:        var(--line, rgba(20,24,29,0.12));
  --nx-font-display: var(--font-display, "Poppins","Inter",sans-serif);
  --nx-font-body:    var(--font-body, "Inter",system-ui,sans-serif);
  --nx-radius:      10px;
  --nx-dock:        320px;
  --nx-ease:        cubic-bezier(.22,.61,.36,1);
  --nx-urgent:      #E5484D;
  --nx-important:   #E0930A;
}

/* ─────────── shared card ─────────── */
.atcnews-card{
  border: 1px solid var(--nx-line);
  border-radius: var(--nx-radius);
  background: var(--nx-paper);
  padding: 16px 16px 14px;
  cursor: pointer;
  display: flex; flex-direction: column;
  transition: transform .28s var(--nx-ease), box-shadow .28s ease, border-color .28s ease;
  font-family: var(--nx-font-body); color: var(--nx-text);
}
.atcnews-card:hover{ transform: translateY(-3px); box-shadow: 0 12px 28px rgba(20,24,29,0.10); border-color: rgba(16,179,230,0.5); }
.atcnews-card:focus-visible{ outline: 3px solid var(--nx-accent-pale); outline-offset: 2px; }
.atcnews-card-top{ display:flex; align-items:center; justify-content:space-between; gap:8px; margin-bottom:9px; }
.atcnews-country{ display:flex; align-items:center; gap:7px; font-size:.77rem; font-weight:700; color:var(--nx-text-soft); }
.atcnews-country .atcnews-flag{ width:20px; height:14px; border-radius:3px; overflow:hidden; box-shadow:0 0 0 1px var(--nx-line); display:inline-block; }
.atcnews-country .atcnews-flag svg{ width:100%; height:100%; display:block; }
.atcnews-badge{ font-size:.62rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase; padding:3px 8px; border-radius:999px; white-space:nowrap; }
.atcnews-badge.u-normal{ background: var(--nx-accent-pale); color: var(--nx-accent-deep); }
.atcnews-badge.u-important{ background: #FDF1DC; color: var(--nx-important); }
.atcnews-badge.u-urgent{ background: #FCE5E6; color: var(--nx-urgent); }
.atcnews-card h4{ font-family: var(--nx-font-display); font-size: 1.02rem; font-weight: 700; line-height: 1.3; color: var(--nx-ink); margin: 0 0 7px;
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.atcnews-excerpt{ font-size:.87rem; line-height:1.55; color:var(--nx-text-soft); margin:0 0 12px; flex:1 1 auto;
  display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }
.atcnews-card-foot{ display:flex; align-items:center; justify-content:space-between; gap:8px; }
.atcnews-date{ display:flex; align-items:center; gap:5px; font-size:.74rem; color:var(--nx-text-soft); }
.atcnews-date svg{ width:13px; height:13px; opacity:.8; }
.atcnews-readmore{ display:inline-flex; align-items:center; gap:4px; font-family:var(--nx-font-display); font-size:.77rem; font-weight:700; color:var(--nx-accent-deep); }
.atcnews-readmore svg{ width:13px; height:13px; transition: transform .2s ease; }
.atcnews-card:hover .atcnews-readmore svg{ transform: translateX(3px); }

/* states / spinner (shared) */
.atcnews-state{ padding: 34px 16px; text-align:center; color: var(--nx-text-soft); font-size:.9rem; font-family:var(--nx-font-body); }
.atcnews-spinner{ width:30px; height:30px; margin:0 auto 14px; border:3px solid var(--nx-line); border-top-color:var(--nx-accent); border-radius:50%; animation: atcnews-spin .8s linear infinite; }
@keyframes atcnews-spin{ to{ transform: rotate(360deg); } }

/* ═════════ INLINE MODE (phone / tablet) ═════════ */
.atcnews-marquee{
  overflow-x: auto; overflow-y: hidden;
  padding: 16px 0 18px;                      /* vertical room so cards fully appear, not clipped (mirrors the logo marquee) */
  -webkit-overflow-scrolling: touch;        /* momentum swipe on iOS */
  scrollbar-width: none;                     /* hide scrollbar (Firefox) */
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent);
  mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent);
}
.atcnews-marquee::-webkit-scrollbar{ display: none; }   /* hide scrollbar (WebKit) */
.atcnews-track{ display:flex; align-items:stretch; gap:18px; width:max-content; }
.atcnews-marquee.is-state{ overflow:hidden; -webkit-mask-image:none; mask-image:none; }
.atcnews-marquee.is-state .atcnews-track{ width:100%; }
.atcnews-track .atcnews-card{ flex:0 0 auto; width: 320px; min-height: 232px; }
@media (max-width: 640px){ .atcnews-track .atcnews-card{ width: 260px; } }

/* ═════════ DOCK MODE (laptop / big screens) ═════════ */
.atcnews-tab{
  position: fixed; top: 50%; right: 0; transform: translateY(-50%);
  z-index: 940; display:flex; flex-direction:column; align-items:center; gap:12px;
  padding: 22px 14px; border:none; border-radius: 14px 0 0 14px;
  background: linear-gradient(160deg, var(--nx-accent), var(--nx-accent-deep)); color:#fff; cursor:pointer;
  box-shadow: -4px 8px 26px rgba(11,143,187,0.42); font-family: var(--nx-font-display);
  transition: transform .35s var(--nx-ease), opacity .3s ease, box-shadow .3s ease, padding .2s ease;
}
.atcnews-tab:hover{ box-shadow: -6px 12px 34px rgba(11,143,187,0.55); padding-right: 18px; }
.atcnews-tab:focus-visible{ outline: 3px solid var(--nx-accent-pale); outline-offset: 2px; }
.atcnews-tab-icon svg{ width:22px; height:22px; display:block; }
.atcnews-tab-label{ writing-mode: vertical-rl; text-orientation: mixed; font-weight:800; font-size:.82rem; letter-spacing:.2em; text-transform:uppercase; }
.atcnews-dot{ width:8px; height:8px; border-radius:50%; background:#fff; animation: atcnews-pulse 2.4s ease-out infinite; }
@keyframes atcnews-pulse{ 0%{ box-shadow:0 0 0 0 rgba(255,255,255,.6);} 70%{ box-shadow:0 0 0 9px rgba(255,255,255,0);} 100%{ box-shadow:0 0 0 0 rgba(255,255,255,0);} }
.atcnews-root.is-open .atcnews-tab{ transform: translateY(-50%) translateX(120%); opacity:0; pointer-events:none; }

.atcnews-panel{
  position: fixed; top:0; right:0; height:100%; width: var(--nx-dock); max-width: 94vw;
  z-index: 950; background: var(--nx-paper); border-left:1px solid var(--nx-line);
  box-shadow: -12px 0 40px rgba(10,14,20,0.12);
  display:flex; flex-direction:column; transform: translateX(105%); transition: transform .42s var(--nx-ease);
  font-family: var(--nx-font-body); color: var(--nx-text);
}
.atcnews-root.is-open .atcnews-panel{ transform: translateX(0); }
.atcnews-head{ flex:0 0 auto; padding:18px 18px 14px; border-bottom:1px solid var(--nx-line); }
.atcnews-head-row{ display:flex; align-items:center; justify-content:space-between; gap:12px; }
.atcnews-eyebrow{ font-family:var(--nx-font-display); font-size:.66rem; font-weight:700; letter-spacing:.16em; text-transform:uppercase; color:var(--nx-accent-deep); display:flex; align-items:center; gap:7px; }
.atcnews-eyebrow::before{ content:""; width:16px; height:2px; background:var(--nx-accent); border-radius:2px; }
.atcnews-title{ font-family:var(--nx-font-display); font-size:1.26rem; font-weight:700; color:var(--nx-ink); margin:4px 0 0; }
.atcnews-collapse{ flex:0 0 auto; width:38px; height:38px; display:grid; place-items:center; border:1px solid var(--nx-line); border-radius:9px; background:var(--nx-paper-2); color:var(--nx-ink); cursor:pointer; transition: background .2s ease, color .2s ease, transform .2s ease; }
.atcnews-collapse:hover{ background:var(--nx-accent); color:#fff; transform: translateX(2px); }
.atcnews-collapse svg{ width:18px; height:18px; }

.atcnews-filters{ flex:0 0 auto; display:flex; gap:7px; flex-wrap:nowrap; padding:12px 18px; overflow-x:auto; border-bottom:1px solid var(--nx-line); scrollbar-width:thin; }
.atcnews-chip{ flex:0 0 auto; display:inline-flex; align-items:center; gap:6px; padding:6px 12px; border:1px solid var(--nx-line); border-radius:999px; background:var(--nx-paper); color:var(--nx-text-soft); font-family:var(--nx-font-body); font-size:.8rem; font-weight:600; cursor:pointer; white-space:nowrap; transition: all .2s ease; }
.atcnews-chip .atcnews-flag{ width:16px; height:11px; border-radius:2px; overflow:hidden; display:inline-block; }
.atcnews-chip .atcnews-flag svg{ width:100%; height:100%; display:block; }
.atcnews-chip:hover{ border-color:var(--nx-accent); color:var(--nx-ink); }
.atcnews-chip.active{ background:var(--nx-accent); border-color:var(--nx-accent); color:#fff; }

.atcnews-list{ flex:1 1 auto; padding:16px 18px 26px; min-height:0; }
.atcnews-list.is-static{ overflow-y:auto; display:flex; flex-direction:column; gap:14px; scrollbar-width:thin; }
.atcnews-list.is-marquee{ overflow:hidden; position:relative; cursor:grab;
  -webkit-mask-image: linear-gradient(to bottom, transparent 0, #000 26px, #000 calc(100% - 26px), transparent 100%);
  mask-image: linear-gradient(to bottom, transparent 0, #000 26px, #000 calc(100% - 26px), transparent 100%); }
.atcnews-list.is-marquee.is-grabbing{ cursor:grabbing; }
.atcnews-vtrack{ will-change: transform; transform: translateZ(0); }
.atcnews-vtrack .atcnews-card{ margin-bottom: 14px; }

/* page inset so docked panel never covers content (literal — body can't read the scoped var) */
body.atcnews-docked{ box-sizing: border-box; padding-right: 320px; }
/* keep page content balanced (centred with gutters) in the space beside the docked panel */
body.atcnews-docked .container{ max-width: 1040px; }

/* ═════════ full-post modal (with prev / next) ═════════ */
.atcnews-modal-overlay{
  position: fixed; inset: 0; z-index: 970; display:flex; align-items:center; justify-content:center; padding:20px;
  background: rgba(10,14,20,0.6); backdrop-filter: blur(3px);
  opacity:0; visibility:hidden; transition: opacity .3s ease, visibility .3s ease;
}
.atcnews-modal-overlay.open{ opacity:1; visibility:visible; }
.atcnews-modal{ width:min(720px,100%); max-height:88vh; background:var(--nx-paper); border-radius:16px; box-shadow:0 30px 80px rgba(10,14,20,0.4); display:flex; flex-direction:column; overflow:hidden; transform:translateY(16px) scale(.98); transition: transform .35s var(--nx-ease); font-family:var(--nx-font-body); }
.atcnews-modal-overlay.open .atcnews-modal{ transform: translateY(0) scale(1); }
.atcnews-modal-head{ flex:0 0 auto; padding:20px 24px 16px; border-bottom:1px solid var(--nx-line); position:relative; }
.atcnews-modal-meta{ display:flex; align-items:center; gap:10px; margin-bottom:10px; flex-wrap:wrap; }
.atcnews-modal h3{ font-family:var(--nx-font-display); font-size:clamp(1.25rem,2.4vw,1.7rem); font-weight:700; line-height:1.25; color:var(--nx-ink); margin:0; padding-right:40px; }
.atcnews-modal-date{ display:flex; align-items:center; gap:6px; font-size:.8rem; color:var(--nx-text-soft); margin-top:9px; }
.atcnews-modal-date svg{ width:14px; height:14px; }
.atcnews-modal-close{ position:absolute; top:16px; right:18px; width:36px; height:36px; display:grid; place-items:center; border:1px solid var(--nx-line); border-radius:9px; background:var(--nx-paper-2); color:var(--nx-ink); cursor:pointer; font-size:1.1rem; line-height:1; transition: background .2s ease, color .2s ease; }
.atcnews-modal-close:hover{ background:var(--nx-urgent); color:#fff; border-color:var(--nx-urgent); }
.atcnews-modal-body{ flex:1 1 auto; overflow-y:auto; padding:20px 24px 24px; font-size:.97rem; line-height:1.72; color:var(--nx-text); }
.atcnews-modal-body p{ margin:0 0 1em; }
.atcnews-modal-body h1,.atcnews-modal-body h2,.atcnews-modal-body h3,.atcnews-modal-body h4{ font-family:var(--nx-font-display); color:var(--nx-ink); line-height:1.3; margin:1.2em 0 .5em; }
.atcnews-modal-body a{ color:var(--nx-accent-deep); text-decoration:underline; }
.atcnews-modal-body ul,.atcnews-modal-body ol{ margin:0 0 1em; padding-inline-start:1.4em; }
.atcnews-modal-body img{ max-width:100%; height:auto; }

/* prev / next navigation */
.atcnews-modal-nav{ flex:0 0 auto; display:flex; align-items:center; justify-content:space-between; gap:12px; padding:12px 20px; border-top:1px solid var(--nx-line); background:var(--nx-paper-2); }
.atcnews-nav-btn{ display:inline-flex; align-items:center; gap:6px; padding:9px 16px; border:1px solid var(--nx-line); border-radius:999px; background:var(--nx-paper); color:var(--nx-ink); font-family:var(--nx-font-display); font-weight:700; font-size:.82rem; cursor:pointer; transition: background .2s ease, color .2s ease, border-color .2s ease; }
.atcnews-nav-btn:hover{ background:var(--nx-accent); color:#fff; border-color:var(--nx-accent); }
.atcnews-nav-btn:focus-visible{ outline:3px solid var(--nx-accent-pale); outline-offset:2px; }
.atcnews-nav-btn svg{ width:16px; height:16px; }
.atcnews-modal-count{ font-family:var(--nx-font-mono, monospace); font-size:.78rem; font-weight:600; color:var(--nx-text-soft); }

/* ═════════ reduced motion ═════════ */
@media (prefers-reduced-motion: reduce){
  .atcnews-track{ animation:none; }
  .atcnews-marquee{ overflow-x:auto; }
  .atcnews-panel, .atcnews-tab, .atcnews-card, .atcnews-modal, .atcnews-modal-overlay, .atcnews-readmore svg, .atcnews-vtrack{ transition:none !important; }
  .atcnews-dot{ animation:none; }
  .atcnews-spinner{ animation-duration:1.6s; }
}
