/* Clarity Lanes marketing sites: what every page shares (reset, screenshot frames, motion, the shared pieces'
   bones). Each site's own stylesheet (gate.css, politics.css, business.css, agency.css) gives it its look.
   Class names never say "ad"/"banner"/"sponsor": ad blockers hide elements named so. */

* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 84px; overflow-x: clip; -webkit-text-size-adjust: 100%; }
body { margin: 0; overflow-x: clip; -webkit-font-smoothing: antialiased; }
img { display: block; max-width: 100%; height: auto; }
a { color: inherit; }
h1, h2, h3, h4, p, figure, blockquote { margin: 0; }
ul, ol { margin: 0; padding: 0; list-style: none; }
button { font: inherit; color: inherit; }
[hidden] { display: none !important; }
.cl-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.cl-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* ---------- Screenshot frames ---------- */
.cl-frame { overflow: hidden; }
.cl-bar { display: flex; align-items: center; gap: 7px; height: 30px; padding: 0 12px; }
.cl-bar i { width: 11px; height: 11px; border-radius: 50%; flex-shrink: 0; }
.cl-bar span { margin-left: 10px; padding: 2px 12px; border-radius: 999px; font: 600 11px/1.5 ui-monospace, SFMono-Regular, Menlo, monospace; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cl-pic { overflow: hidden; }
.cl-pic img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; object-position: top left; }
.cl-pic img[style*="--zoom"] { transform: scale(var(--zoom)); transform-origin: var(--zx) var(--zy); }
/* Phones: a whole desktop screen is unreadable at this size, so every screenshot is shown closer. */
@media (max-width: 600px) {
  .cl-pic img:not([style*="--zoom"]) { transform: scale(1.75); transform-origin: var(--fx, 50%) var(--fy, 40%); }
  .cl-pic img[style*="--zoom"] { transform: scale(calc(var(--zoom) * 1.2)); }
}
.cl-phone { overflow: hidden; }
.cl-phone img { width: 100%; aspect-ratio: 390 / 844; object-fit: cover; }
.cl-arrow { width: 1.1em; height: 1.1em; flex-shrink: 0; }

/* ---------- Shared pieces: structure only ---------- */
.cl-top { position: sticky; top: 0; z-index: 100; display: flex; align-items: center; gap: 24px; }
.cl-brand { display: flex; align-items: center; gap: 10px; text-decoration: none; flex-shrink: 0; }
.cl-brand img { width: 48px; height: auto; }
.cl-links { display: flex; gap: 26px; margin-left: 10px; }
.cl-links a { text-decoration: none; }
.cl-right { display: flex; align-items: center; gap: 14px; margin-left: auto; }
.cl-langs { display: inline-flex; overflow: hidden; }
.cl-langs button { border: 0; background: transparent; padding: 7px 12px; cursor: pointer; }
.cl-signin { text-decoration: none; white-space: nowrap; }
.cl-signin:hover { text-decoration: underline; text-underline-offset: 4px; }
.cl-btn { display: inline-flex; align-items: center; justify-content: center; gap: 10px; text-decoration: none; cursor: pointer; white-space: nowrap; }

.cl-stats ul { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.cl-stat b { display: block; font-variant-numeric: tabular-nums; }
.cl-stat span { display: block; }

.cl-svc-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.cl-continent-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.cl-continent li { display: flex; align-items: center; gap: 12px; }
.cl-continent .fi { width: 34px; height: 25px; flex-shrink: 0; background-size: cover; }

.cl-foot-main { display: grid; grid-template-columns: minmax(0, 1.5fr) repeat(3, minmax(0, 1fr)); gap: 32px clamp(24px, 3vw, 48px); }
.cl-foot-col { display: grid; gap: 10px; align-content: start; }
.cl-foot-col a { text-decoration: none; }
.cl-foot-col a:hover { text-decoration: underline; }
.cl-foot address { display: grid; gap: 2px; font-style: normal; }
.cl-foot-bottom { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px 24px; }
.cl-legal { display: flex; gap: 20px; }
.cl-quote { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); align-items: start; }
.cl-form { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.cl-form label { display: grid; gap: 7px; }
.cl-form .wide { grid-column: 1 / -1; }
.cl-form input, .cl-form select, .cl-form textarea { width: 100%; padding: 13px 14px; font-size: 17px; }
.cl-form select { appearance: none; -webkit-appearance: none; padding-right: 38px; background-repeat: no-repeat; background-position: right 14px center; }
.cl-form textarea { resize: vertical; min-height: 110px; }

.cl-others a { text-decoration: none; }

/* ---------- Motion ---------- */
.js .reveal { opacity: 0; translate: 0 26px; transition: opacity .7s ease, translate .7s cubic-bezier(.2, .8, .2, 1); transition-delay: var(--d, 0ms); }
.js .reveal.in { opacity: 1; translate: 0 0; }
@keyframes cl-slide { to { transform: translateX(-50%); } }
@keyframes cl-bob { 50% { translate: 0 -8px; } }
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; }
  html { scroll-behavior: auto; }
  .js .reveal { opacity: 1; translate: none; }
}

@media (max-width: 1180px) {
  .cl-continent-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 1000px) {
  .cl-foot-main { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .cl-foot-brand { grid-column: 1 / -1; }
}
@media (max-width: 900px) {
  .cl-links { display: none; }
  .cl-quote { grid-template-columns: 1fr; }
  .cl-stats ul { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cl-svc-grid { grid-template-columns: 1fr; }
}
@media (max-width: 600px) {
  .cl-signin { display: none; }
  .cl-continent-grid { grid-template-columns: 1fr; }
  .cl-stats ul { grid-template-columns: 1fr; }
  .cl-form { grid-template-columns: 1fr; }
  .cl-foot-main { grid-template-columns: 1fr; }
}

/* The strip above every industry site's header: this site, and the two others. */
.cl-switch { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 0 18px; padding: 2px clamp(16px, 4.5vw, 72px); font-size: 13px; }
.cl-switch-here { display: inline-flex; align-items: center; gap: 8px; padding: 6px 0; font-weight: 700; text-decoration: none; }
.cl-switch .fi { width: 18px; height: 13px; background-size: cover; border-radius: 2px; }
.cl-switch .cl-others { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0 16px; }
.cl-switch .cl-others span { opacity: .7; }
.cl-switch .cl-others a { display: inline-block; padding: 6px 0; font-weight: 700; text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1px; }
@media (max-width: 600px) { .cl-switch-here, .cl-switch .cl-others > span { display: none; } }
