/* ============================================================
   ark-uniform.css — site-wide consistency + premium polish
   Loaded LAST in <head> on every page so it harmonizes button
   behavior, focus states, and motion everywhere. Behavioral
   only — each button keeps its own brand colors.
   ============================================================ */

/* ---- Unified motion + interaction for every button ---- */
.btn-p, .btn-s, .btn-submit, .wo-submit, .nav-cta, .model-cta, .city-chip {
  cursor: pointer;
  transition:
    transform .28s cubic-bezier(.23, 1, .32, 1),
    box-shadow .28s ease,
    background-color .22s ease,
    border-color .22s ease,
    color .22s ease;
}

/* Consistent hover lift + depth — primary-weight buttons */
.btn-p:hover, .btn-submit:hover, .wo-submit:hover, .nav-cta:hover, .model-cta:hover {
  transform: translateY(-2px);
  box-shadow: 0 12px 26px -10px rgba(58, 139, 212, .55);
}
/* Secondary buttons lift the same amount, neutral shadow */
.btn-s:hover {
  transform: translateY(-2px);
  box-shadow: 0 12px 26px -12px rgba(0, 0, 0, .6);
}

/* Consistent press feedback for every button */
.btn-p:active, .btn-s:active, .btn-submit:active,
.wo-submit:active, .nav-cta:active, .model-cta:active {
  transform: translateY(0);
  box-shadow: 0 4px 12px -8px rgba(58, 139, 212, .5);
}

/* Unified disabled / sending state (forms) */
.btn-submit:disabled, .wo-submit:disabled, .btn-p:disabled {
  opacity: .6;
  cursor: progress;
  transform: none;
  box-shadow: none;
}

/* ---- Accessible, on-brand focus ring across all controls ---- */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
.btn-p:focus-visible, .btn-s:focus-visible,
.btn-submit:focus-visible, .wo-submit:focus-visible,
.nav-cta:focus-visible, .model-cta:focus-visible {
  outline: 2px solid var(--blue-lt, #3A8BD4);
  outline-offset: 3px;
  border-radius: 5px;
}

/* ---- Premium polish ---- */
.nav-links a,
.footer-links a,
.footer-email { transition: color .2s ease; }

::selection { background: rgba(58, 139, 212, .30); color: #fff; }

/* Respect users who prefer reduced motion */
@media (prefers-reduced-motion: reduce) {
  .btn-p, .btn-s, .btn-submit, .wo-submit, .nav-cta, .model-cta, .city-chip {
    transition: none;
  }
  .btn-p:hover, .btn-s:hover, .btn-submit:hover,
  .wo-submit:hover, .nav-cta:hover, .model-cta:hover { transform: none; }
}

/* ---- Mobile navigation: force-collapse into the hamburger ----
   Loaded last with !important so the menu reliably hides behind the
   ☰ button on every browser — including iOS Safari, which mishandles
   the page's inline media query and leaves the links showing. */
/* Desktop nav phone number — readable text, not a button */
.nav-phone {
  font-family: 'Manrope', sans-serif;
  font-size: 0.9rem;
  font-weight: 500;
  color: var(--silver, #8A9BB0);
  text-decoration: none;
  letter-spacing: 0.02em;
  white-space: nowrap;
  transition: color .2s;
}
.nav-phone:hover { color: var(--white, #EDF1F7); }

@media (max-width: 860px) {
  nav .nav-links  { display: none !important; }
  nav .nav-cta    { display: none !important; }
  nav .nav-phone  { display: none !important; }
  nav #nav-toggle:checked ~ .nav-links,
  nav #nav-toggle:checked ~ .nav-cta { display: flex !important; }
  nav .nav-burger { display: block !important; }
}

/* ============================================================
   PREMIUM MOBILE NAVIGATION  (ark-mobile-nav.js builds the markup)
   ------------------------------------------------------------
   Desktop is untouched: every .amn-* piece is display:none by
   default and only switches on under the mobile media query (or
   the html.is-phone fallback for iOS Safari width mis-reports).
   The desktop horizontal nav bar is fully removed on mobile —
   replaced by a floating logo (top-left) + hamburger (top-right),
   a full-width dropdown, and a sticky Call Now bar.
   ============================================================ */

/* Each page's generic `nav { position: fixed; top:0 }` rule also catches the
   footer's <nav class="footer-links">, pinning a stray copy of the links to
   the top of every page. Keep the footer nav in normal document flow. */
footer .footer-links { position: static !important; top: auto; z-index: auto; }

/* ---- Hidden on desktop by default ---- */
.amn-bar, .amn-backdrop, .amn-menu, .amn-call { display: none; }

/* ---- Footer phone tel: link ---- */
.footer-phone {
  font-size: 12.5px; color: var(--blue-lt, #3A8BD4);
  text-decoration: none; transition: color .2s ease;
}
.footer-phone:hover { color: var(--white, #EDF1F7); }

/* ---- Floating top bar (transparent scrim — not a solid nav bar) ---- */
.amn-bar {
  position: fixed; top: 0; left: 0; right: 0; z-index: 1000;
  align-items: center; justify-content: space-between;
  padding: 34px 24px calc(20px + 24px);
  pointer-events: none;
  background: linear-gradient(to bottom,
    rgba(9,9,13,.94) 0%, rgba(9,9,13,.62) 48%, rgba(9,9,13,0) 100%);
}
.amn-logo { pointer-events: auto; display: inline-flex; line-height: 0;
  animation: fadeUp .5s ease both; }
.amn-logo img { height: 46px; width: auto; display: block; }

.amn-burger {
  pointer-events: auto;
  width: 48px; height: 48px; flex: none;
  display: inline-flex; flex-direction: column;
  align-items: center; justify-content: center; gap: 5px;
  background: rgba(13,16,24,.66);
  border: 1px solid var(--border-blue, rgba(58,139,212,.28));
  border-radius: 13px; cursor: pointer;
  -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
}
.amn-burger span {
  display: block; width: 22px; height: 2px; border-radius: 2px;
  background: var(--white, #EDF1F7);
  transition: transform .3s cubic-bezier(.2,.8,.2,1), opacity .2s ease;
}
html.amn-open .amn-burger span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
html.amn-open .amn-burger span:nth-child(2) { opacity: 0; }
html.amn-open .amn-burger span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* ---- Backdrop ---- */
.amn-backdrop {
  position: fixed; inset: 0; z-index: 1001;
  background: rgba(5,6,10,.62);
  -webkit-backdrop-filter: blur(2px); backdrop-filter: blur(2px);
  opacity: 0; visibility: hidden;
  transition: opacity .35s ease, visibility .35s ease;
}
html.amn-open .amn-backdrop { opacity: 1; visibility: visible; }

/* ---- Dropdown menu ---- */
.amn-menu {
  position: fixed; top: 0; left: 0; right: 0; z-index: 1002;
  max-height: 94vh; overflow-y: auto; -webkit-overflow-scrolling: touch;
  padding: 18px 20px calc(26px + env(safe-area-inset-bottom, 0px));
  background: linear-gradient(180deg, #0D1018 0%, #09090D 100%);
  border-bottom: 1px solid var(--border-blue, rgba(58,139,212,.28));
  border-radius: 0 0 22px 22px;
  box-shadow: 0 34px 64px -22px rgba(0,0,0,.8);
  transform: translateY(-103%); visibility: hidden;
  transition: transform .44s cubic-bezier(.16,1,.3,1), visibility .44s linear;
}
html.amn-open .amn-menu { transform: translateY(0); visibility: visible; }

.amn-menu-head {
  display: flex; align-items: center; justify-content: space-between;
  margin: 4px 0 10px;
}
.amn-menu-eyebrow {
  font-family: 'Manrope', sans-serif; font-size: 10px;
  letter-spacing: .3em; text-transform: uppercase;
  color: var(--blue-lt, #3A8BD4);
}
.amn-close {
  width: 46px; height: 46px; flex: none;
  display: inline-flex; align-items: center; justify-content: center;
  background: rgba(255,255,255,.04);
  border: 1px solid var(--border, rgba(255,255,255,.07));
  border-radius: 13px; color: var(--silver-lt, #C2CDD8);
  font-size: 30px; line-height: 1; cursor: pointer;
  transition: background .2s ease, color .2s ease;
}
.amn-close:hover { background: rgba(255,255,255,.08); color: #fff; }

.amn-list { list-style: none; margin: 0; padding: 0; }
.amn-list li { position: relative; border-bottom: 1px solid var(--border, rgba(255,255,255,.07)); }
.amn-link {
  display: flex; align-items: center; min-height: 58px; padding: 6px 4px;
  font-family: 'Manrope', sans-serif; font-weight: 600;
  font-size: 1.42rem; letter-spacing: .01em;
  color: var(--silver-lt, #C2CDD8); text-decoration: none;
  transition: color .2s ease, padding-left .25s ease;
}
.amn-link:hover { color: var(--white, #EDF1F7); }
.amn-link.is-active, .amn-link.is-tapped {
  color: var(--blue-lt, #3A8BD4); padding-left: 14px;
}
.amn-link.is-active::before, .amn-link.is-tapped::before {
  content: ''; position: absolute; left: -20px; top: 50%;
  transform: translateY(-50%);
  width: 4px; height: 30px; border-radius: 0 4px 4px 0;
  background: var(--blue-lt, #3A8BD4);
}

.amn-actions { display: flex; flex-direction: column; gap: 12px; margin-top: 22px; }
.amn-action {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  min-height: 56px; border-radius: 13px; text-decoration: none;
  font-family: 'Manrope', sans-serif; font-weight: 600; font-size: 1.02rem;
  letter-spacing: .07em; text-transform: uppercase;
}
.amn-action-quote {
  background: var(--blue-mid, #1860A8);
  border: 1px solid var(--blue-lt, #3A8BD4); color: #fff;
}
.amn-action-call {
  background: transparent;
  border: 1px solid var(--border-blue, rgba(58,139,212,.28));
  color: var(--blue-lt, #3A8BD4);
}

/* ---- Sticky Call Now bar ---- */
.amn-call {
  position: fixed; left: 16px; right: 16px; z-index: 999;
  bottom: calc(16px + env(safe-area-inset-bottom, 0px));
  align-items: center; justify-content: center; gap: 10px;
  min-height: 56px; border-radius: 15px; text-decoration: none;
  font-family: 'Manrope', sans-serif; font-weight: 700;
  font-size: 1.12rem; letter-spacing: .09em; text-transform: uppercase;
  color: #fff;
  background: linear-gradient(135deg, var(--blue-mid, #1860A8), var(--blue-lt, #3A8BD4));
  box-shadow: 0 14px 30px -8px rgba(58,139,212,.6), 0 0 0 1px rgba(58,139,212,.4);
  transition: transform .2s ease, box-shadow .2s ease;
}
.amn-call:active { transform: translateY(1px); box-shadow: 0 8px 18px -8px rgba(58,139,212,.6); }
.amn-call svg { flex: none; }

/* ---- Activate the mobile system ---- */
@media (max-width: 860px), (hover: none) and (pointer: coarse) {
  nav[aria-label="Main navigation"] { display: none !important; }
  .hero-logo-link, .nav-logo { display: none !important; }
  .amn-bar  { display: flex; }
  .amn-call { display: flex; }
  .amn-backdrop, .amn-menu { display: block; }
  body { padding-bottom: calc(86px + env(safe-area-inset-bottom, 0px)); }
}
/* iOS Safari sometimes mis-reports width — force via device class too */
html.is-phone nav[aria-label="Main navigation"] { display: none !important; }
html.is-phone .hero-logo-link, html.is-phone .nav-logo { display: none !important; }
html.is-phone .amn-bar  { display: flex !important; }
html.is-phone .amn-call { display: flex !important; }
html.is-phone .amn-backdrop, html.is-phone .amn-menu { display: block !important; }
html.is-phone body { padding-bottom: calc(86px + env(safe-area-inset-bottom, 0px)); }

/* Lock background scroll while the menu is open */
html.amn-open, html.amn-open body { overflow: hidden !important; }

@media (prefers-reduced-motion: reduce) {
  .amn-menu, .amn-backdrop, .amn-burger span { transition: none; }
}

/* ============================================================
   PREMIUM TYPE TUNING (Manrope) + COLOR RESTRAINT
   Loaded last so these win over each page's inline styles.
   Restraint rule: blue is the SINGLE accent — kept only on
   headline emphasis words, primary CTAs/buttons, links, and the
   active nav state. Every decorative blue is neutralized to
   silver/white so the palette reads calm and high-end.
   ============================================================ */

/* -- Manrope tracks a touch tighter than most geometric sans.
      Keep the big hero headline from getting oversized on phones. -- */
.hero-title, .sec-title, .cta-title, .ark-journey__title, .stat-n,
.partner-name, .svc-name, .why-head { letter-spacing: -0.02em; }
.hero-title { line-height: 1.05; }
.ark-journey__title { line-height: 1.07; }
body { letter-spacing: -0.004em; }

@media (max-width: 860px), (hover: none) and (pointer: coarse) {
  .hero-title { font-size: clamp(2.3rem, 8vw, 3rem); line-height: 1.07; }
  .cta-title  { font-size: clamp(1.85rem, 6.5vw, 2.25rem); }
}

/* -- Decorative eyebrows / kickers / small labels -> muted silver -- */
.hero-eyebrow, .sec-label, .partner-type,
.ark-journey__eyebrow, .ark-step__kicker, .amn-menu-eyebrow {
  color: var(--silver, #8A9BB0) !important;
}
.hero-eyebrow::before,
.ark-journey__eyebrow::before, .ark-journey__eyebrow::after {
  background: var(--silver, #8A9BB0) !important; opacity: .5;
}

/* -- Stat "+ / % / /7" marks -> white, not blue -- */
.stat-n em { color: var(--white, #EDF1F7) !important; }

/* -- Service icon tiles -> quiet monochrome chips -- */
.svc-icon {
  color: var(--silver-lt, #C2CDD8) !important;
  border-color: var(--border, rgba(255,255,255,.10)) !important;
  background: rgba(255,255,255,.03) !important;
}

/* -- "Why Ark" oversized numerals -> ghosted silver -- */
.why-num { color: var(--silver, #8A9BB0) !important; opacity: .30; }

/* -- "How We Work" step nodes -> outlined monochrome instead of solid blue -- */
.ark-step__num {
  background: var(--bg-3, #121622) !important;
  color: var(--white, #EDF1F7) !important;
  box-shadow: 0 0 0 6px var(--bg, #09090D),
              0 0 0 7px rgba(255,255,255,.08),
              0 10px 24px -10px rgba(0,0,0,.6) !important;
}

/* -- Footer phone/email links -> silver; blue reserved for real CTAs -- */
.footer-email, .footer-phone { color: var(--silver, #8A9BB0) !important; }
.footer-email:hover, .footer-phone:hover { color: var(--white, #EDF1F7) !important; }

/* -- Promo banner -> neutral hairline instead of a blue wash -- */
.promo-banner {
  border-color: var(--border, rgba(255,255,255,.08)) !important;
  background: rgba(255,255,255,.02) !important;
}

/* ============================================================
   NO ICONS — remove every decorative line-icon site-wide.
   The Tabler icon-font <link> is also removed from each page, so
   these <i class="ti …"> glyphs render nothing; we hide them (and
   their styled tiles) so no empty boxes or stray gaps remain.
   Functional gallery controls were converted to plain text chars
   (not .ti) so they are unaffected by this rule.
   ============================================================ */
.ti { display: none !important; }

/* Icon "tile" wrappers that boxed an icon (border/background, no text) —
   collapse them so cards reflow cleanly with no empty squares.
   NOTE: .svc-card-icon / .value-icon / .pillar-icon are NOT listed here —
   those are thin gradient accent bars (their <i> was already hidden), so
   they stay as a tasteful, icon-free design accent. */
.svc-icon,
.contact-card-icon,
.success-icon { display: none !important; }

/* ============================================================
   NAV LINK COLORS — white by default, blue on hover, and the
   current page's link stays blue. Overrides each page's inline
   nav rules (silver default / white hover); this file loads last.
   ============================================================ */
.nav-links a { color: var(--white, #EDF1F7); }
.nav-links a:hover { color: var(--blue-lt, #3A8BD4); }
.nav-links a.active-link { color: var(--blue-lt, #3A8BD4); }

/* Active nav link — subtle underline so the current page reads
   distinctly from hover (both are blue). */
.nav-links a.active-link {
  text-decoration: underline;
  text-decoration-color: var(--blue-lt, #3A8BD4);
  text-decoration-thickness: 1.5px;
  text-underline-offset: 7px;
}
