/* ═══════════════════════════════════════════════════════════
   UPSURGE AGENCY — brand layer for Elementor
   Design tokens + signature components Elementor can't express.
   Structure, spacing and layout stay native Elementor.
   ═══════════════════════════════════════════════════════════ */

:root {
  --us-ivory: #F3EEE4;
  --us-ivory-deep: #EAE3D4;
  --us-espresso: #2A2118;
  --us-espresso-2: #3B3126;
  --us-dark: #211A12;
  --us-grey: #8C8375;
  --us-gold: #B29157;
  --us-gold-soft: #D6BE8E;
  --us-crimson: #8C030C;
  --us-crimson-2: #6E0209;
  --us-serif: "Italiana", "Bodoni Moda", Didot, serif;
  --us-sans: "Jost", "Futura", sans-serif;
  --us-ease: cubic-bezier(0.23, 1, 0.32, 1);
}

body {
  background: var(--us-ivory);
  color: var(--us-espresso);
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}

::selection { background: var(--us-espresso); color: var(--us-ivory); }

/* ── Typography helpers ─────────────────────────────────── */

.us-display .elementor-heading-title,
.us-display {
  font-family: var(--us-serif);
  font-weight: 400;
  line-height: 0.98;
  text-transform: uppercase;
  -webkit-text-stroke: 0.022em currentColor;
  paint-order: stroke fill;
}

.us-display-md .elementor-heading-title,
.us-display-md {
  font-family: var(--us-serif);
  font-weight: 400;
  letter-spacing: 0.012em;
  -webkit-text-stroke: 0.012em currentColor;
  paint-order: stroke fill;
  line-height: 1.02;
  text-transform: uppercase;
}

.us-kicker .elementor-heading-title,
.us-kicker {
  font-family: var(--us-sans);
  font-size: 11px;
  font-weight: 400;
  letter-spacing: 0.32em;
  text-transform: uppercase;
  color: var(--us-gold);
}

.us-eyebrow .elementor-heading-title,
.us-eyebrow {
  font-family: var(--us-sans);
  font-size: 12px;
  letter-spacing: 0.34em;
  text-transform: uppercase;
  color: var(--us-gold);
}

.us-label .elementor-heading-title,
.us-label {
  font-size: 10px;
  letter-spacing: 0.26em;
  text-transform: uppercase;
  color: var(--us-gold);
}

h1, h2, h3, h4, h5, h6,
.elementor-heading-title,
.us-acc .elementor-accordion-title,
.elementor-counter-number-wrapper,
.elementor-icon-box-title {
  font-family: var(--us-serif) !important;
  font-weight: 400 !important;
}

/* ── Hero headline: masked line rise ────────────────────── */

.us-hero-title .elementor-heading-title {
  display: block;
  width: max-content;
  max-width: none;
  animation: us-tracking 1.6s var(--us-ease) both;
}

@media (max-width: 1100px) {
  .us-hero-title .elementor-heading-title { width: auto; }
  .us-hero-title .us-line i { white-space: normal; }
}

.us-hero-title .us-line {
  display: block;
  overflow: hidden;
  padding-bottom: 0.06em;
  margin-bottom: -0.06em;
}

.us-hero-title .us-line i {
  display: inline-block;
  font-style: normal;
  white-space: nowrap;
  transform: translateY(120%) skewY(5deg);
  animation: us-line-rise 1.05s var(--us-ease) forwards;
}

.us-hero-title .us-line:nth-child(1) i { animation-delay: 0.30s; }
.us-hero-title .us-line:nth-child(2) i { animation-delay: 0.48s; }

@keyframes us-line-rise {
  from { transform: translateY(120%) skewY(5deg); }
  to   { transform: translateY(0) skewY(0); }
}

@keyframes us-tracking {
  from { letter-spacing: 0.09em; }
  to   { letter-spacing: 0.005em; }
}

/* ── Glass card ─────────────────────────────────────────── */

.us-glass {
  position: relative;
  overflow: hidden;
  background: rgba(255, 253, 248, 0.22) !important;
  backdrop-filter: blur(10px) saturate(1.25);
  -webkit-backdrop-filter: blur(10px) saturate(1.25);
  border: 1px solid rgba(255, 255, 255, 0.45) !important;
  box-shadow: 0 30px 60px -25px rgba(42, 33, 24, 0.35),
              inset 0 1px 0 rgba(255, 255, 255, 0.7);
}

.us-glass::before {
  content: "";
  position: absolute;
  inset: -20%;
  z-index: 0;
  pointer-events: none;
  background:
    radial-gradient(55% 45% at 18% 12%, rgba(255, 190, 140, 0.32), transparent 62%),
    radial-gradient(50% 55% at 88% 28%, rgba(150, 205, 255, 0.28), transparent 65%),
    radial-gradient(55% 50% at 72% 88%, rgba(255, 150, 215, 0.26), transparent 62%),
    radial-gradient(45% 45% at 26% 74%, rgba(175, 255, 195, 0.24), transparent 65%);
  filter: blur(20px) saturate(1.5);
  animation: us-marble 14s ease-in-out infinite alternate;
}

.us-glass::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background: repeating-linear-gradient(100deg,
    transparent 0 8px,
    rgba(255, 110, 110, 0.10) 9px, rgba(255, 225, 130, 0.11) 11px,
    rgba(130, 255, 185, 0.10) 13px, rgba(130, 185, 255, 0.13) 15px,
    rgba(255, 135, 255, 0.10) 17px, transparent 19px 30px);
  filter: blur(1.2px) saturate(1.6);
  mix-blend-mode: overlay;
}

.us-glass > * { position: relative; z-index: 2; }

@keyframes us-marble {
  from { transform: translate(0,0) rotate(0); filter: blur(20px) saturate(1.5) hue-rotate(0deg); }
  to   { transform: translate(4%,6%) rotate(6deg); filter: blur(22px) saturate(1.6) hue-rotate(50deg); }
}

.us-holo {
  width: 44px; height: 44px; border-radius: 50%;
  display: grid; place-items: center;
  background: conic-gradient(from 210deg,#f6d8c3,#e9c9f2,#c9e4f2,#d6f2d9,#f2ecc9,#f6d8c3);
  animation: us-holo 9s linear infinite;
  box-shadow: 0 6px 18px -6px rgba(180,140,190,.55);
}
.us-holo span { width:14px; height:14px; border-radius:50%; background: var(--us-espresso); }
@keyframes us-holo { to { filter: hue-rotate(360deg); } }

/* ── Buttons: solid crimson, hollow on hover ────────────── */

.us-btn .elementor-button,
a.us-btn {
  border: 1px solid var(--us-crimson) !important;
  background: var(--us-crimson) !important;
  color: var(--us-ivory) !important;
  border-radius: 999px !important;
  font-family: var(--us-sans);
  font-size: 11px !important;
  font-weight: 500;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  transition: background .3s, color .3s, border-color .3s, box-shadow .3s;
}

.us-btn .elementor-button:hover,
a.us-btn:hover {
  background: transparent !important;
  color: var(--us-crimson) !important;
  box-shadow: 0 12px 24px -10px rgba(140,3,12,.35);
}

.us-btn-light .elementor-button:hover,
a.us-btn-light:hover {
  color: var(--us-gold-soft) !important;
  border-color: var(--us-gold-soft) !important;
}

/* ── Marquees (press logos, client sites) ───────────────── */

.us-marquee { overflow: hidden; width: 100%;
  -webkit-mask-image: linear-gradient(to right, transparent, #000 6%, #000 94%, transparent);
          mask-image: linear-gradient(to right, transparent, #000 6%, #000 94%, transparent); }

.us-marquee-track {
  display: flex; align-items: center; width: max-content;
  gap: clamp(40px, 6vw, 100px); padding-right: clamp(40px, 6vw, 100px);
  animation: us-scroll 40s linear infinite;
}
.us-marquee-track.us-rev { animation: us-scroll-rev 48s linear infinite; }
.us-marquee:hover .us-marquee-track { animation-play-state: paused; }

@keyframes us-scroll { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@keyframes us-scroll-rev { from { transform: translateX(-50%); } to { transform: translateX(0); } }

.us-press-logo { height: clamp(52px, 6.5vw, 90px) !important; width: auto !important;
  flex-shrink: 0; filter: brightness(0) invert(1); opacity: .92; }

.us-site-card {
  position: relative; overflow: hidden; flex-shrink: 0;
  width: clamp(210px, 23vw, 300px); min-height: 165px;
  display: flex; align-items: center; justify-content: center;
  border-radius: 16px; padding: 26px 18px;
  background-size: cover; background-position: center top;
  border: 1px solid rgba(243,238,228,.12);
  transition: transform .4s var(--us-ease);
}
.us-site-card::before { content:""; position:absolute; inset:0;
  background: rgba(28,21,14,.76); transition: background .4s; }
.us-site-card:hover { transform: scale(1.03); }
.us-site-card:hover::before { background: rgba(28,21,14,.5); }
.us-site-card img { position: relative; z-index:1; max-width: 66%; max-height: 64px !important;
  height: auto !important; width: auto !important; object-fit: contain; }
.us-site-card .us-white-logo { filter: brightness(0) invert(1); }

/* ── Gold brick pyramid ─────────────────────────────────── */

.us-bricks { display: flex; flex-direction: column; align-items: center; gap: 10px; }
.us-brick-row { display: flex; justify-content: center; gap: 12px; }

.us-brick {
  position: relative; overflow: hidden;
  padding: 20px clamp(20px, 2.4vw, 34px);
  clip-path: polygon(7% 0, 93% 0, 100% 100%, 0 100%);
  background: linear-gradient(165deg,#EFD9A0 0%,#D9B96E 38%,#B8924A 72%,#9C7838 100%);
  box-shadow: inset 0 2px 3px rgba(255,252,240,.65),
              inset 0 -4px 6px rgba(90,60,15,.45),
              0 10px 20px -10px rgba(42,33,24,.5);
  font-family: var(--us-sans);
  font-size: clamp(10.5px, 1vw, 12.5px); font-weight: 500;
  letter-spacing: .16em; text-transform: uppercase; white-space: nowrap;
  color: #4F3A12; text-shadow: 0 1px 0 rgba(255,250,235,.5);
  text-decoration: none;
  transition: transform .4s var(--us-ease), filter .4s;
  opacity: 0;
}
.us-brick::after { content:""; position:absolute; inset:0; pointer-events:none;
  background: linear-gradient(115deg, transparent 30%, rgba(255,253,245,.55) 50%, transparent 70%);
  transform: translateX(-110%); transition: transform .7s ease; }
.us-brick:hover { transform: translateY(-5px) scale(1.04); filter: brightness(1.08); z-index: 2; }
.us-brick:hover::after { transform: translateX(110%); }

.us-brick.us-in { opacity: 1; animation: us-brick-drop .95s var(--d,0s) backwards; }
.us-brick:nth-child(odd) { --r: -7deg; }
.us-brick:nth-child(even) { --r: 6deg; }

@keyframes us-brick-drop {
  0%   { opacity:0; transform: translateY(-360px) rotate(var(--r,-6deg));
         animation-timing-function: cubic-bezier(.5,0,.85,.4); }
  55%  { opacity:1; transform: translateY(0) rotate(calc(var(--r,-6deg) * -.18));
         animation-timing-function: cubic-bezier(.2,.7,.35,1); }
  72%  { transform: translateY(-14px) rotate(calc(var(--r,-6deg) * .1)); }
  86%  { transform: translateY(0) rotate(.3deg); }
  100% { transform: translateY(0) rotate(0); opacity:1; }
}

/* ── Section heading with seal ──────────────────────────── */
.us-headseal { justify-content: flex-start !important; }
.us-headcol { flex: 0 1 auto !important; max-width: 660px; }
.us-headseal > .elementor-widget-image { flex: 0 0 auto; }
@media (min-width: 1025px) { .us-headseal { flex-wrap: nowrap !important; } }

/* wider partner in a two-column split */
.us-col-wide { flex: 1.6 1 0 !important; }

/* ── Wax seal ───────────────────────────────────────────── */

.us-seal img {
  transform: rotate(-8deg);
  filter: drop-shadow(0 14px 24px rgba(90,20,25,.35));
  transition: transform .6s var(--us-ease);
}
.us-seal img:hover { transform: rotate(0) scale(1.05); }

/* ── Section divider ────────────────────────────────────── */

.us-divider { position: relative; height: 2px; opacity: .75;
  background: linear-gradient(to right, transparent, var(--us-gold) 18%, var(--us-gold) 82%, transparent); }
.us-divider::after { content:""; position:absolute; left:50%; top:50%;
  width:16px; height:16px; transform: translate(-50%,-50%) rotate(45deg);
  background: var(--us-ivory); border: 2px solid var(--us-gold);
  box-shadow: 0 0 0 6px var(--us-ivory); }

/* ── Trust bar ──────────────────────────────────────────── */

.us-trust { background: var(--us-espresso); overflow: hidden; padding: 16px 0; }
.us-trust .us-marquee-track { gap: clamp(22px,2.6vw,40px); animation-duration: 36s; }
.us-trust span { font-family: var(--us-serif); font-weight: 600;
  font-size: clamp(15px,1.5vw,20px); letter-spacing:.06em; text-transform: uppercase;
  color: var(--us-ivory); white-space: nowrap; }
.us-trust .us-dot { color: var(--us-gold-soft); font-family: var(--us-sans); font-size: 12px; }

/* three feature cards per row, wrapping to two then one */
.us-featcell { flex: 0 1 calc(33.333% - 18px) !important; min-width: 260px; }
@media (max-width: 1024px) { .us-featcell { flex: 0 1 calc(50% - 12px) !important; } }
@media (max-width: 767px)  { .us-featcell { flex: 1 1 100% !important; min-width: 0; } }

/* ── Feature icon boxes ─────────────────────────────────── */
.us-feat .elementor-icon,
.us-feat .elementor-icon i,
.us-feat .elementor-icon svg {
  color: var(--us-gold) !important;
  fill: var(--us-gold) !important;
}
.us-feat .elementor-icon-box-title,
.us-feat .elementor-icon-box-title a { color: var(--us-ivory) !important; }
.us-feat .elementor-icon-box-description { color: rgba(243, 238, 228, 0.62) !important; }
.us-feat .elementor-icon-box-wrapper { text-align: center; }

/* ── Flex column helper: share a row evenly ─────────────── */
.us-col { flex: 1 1 0 !important; min-width: 240px; }
@media (max-width: 767px) { .us-col { flex: 1 1 100% !important; min-width: 0; } }

/* ── Cards ──────────────────────────────────────────────── */

.us-card {
  border: 1px solid rgba(42,33,24,.12); border-radius: 16px;
  background: rgba(255,253,248,.4);
  transition: transform .5s var(--us-ease), box-shadow .5s, border-color .3s;
}
.us-card:hover { transform: translateY(-5px); box-shadow: 0 24px 44px -22px rgba(42,33,24,.28); }

.us-dark .us-card,
.us-dark .elementor-widget-container > .us-card {
  background: rgba(255,253,248,.05); border-color: rgba(243,238,228,.12);
}
.us-dark .us-card:hover { border-color: rgba(214,190,142,.55);
  box-shadow: 0 24px 44px -24px rgba(0,0,0,.65); }

/* dark sections: invert type */
.us-dark, .us-dark p, .us-dark li { color: rgba(243,238,228,.68); }
.us-dark h1, .us-dark h2, .us-dark h3, .us-dark h4,
.us-dark .elementor-heading-title { color: var(--us-ivory); }
.us-dark .us-kicker, .us-dark .us-kicker .elementor-heading-title,
.us-dark .us-label { color: var(--us-gold-soft); }
.us-dark .elementor-counter-number-wrapper { color: var(--us-ivory); }
.us-dark .elementor-counter-title { color: var(--us-gold-soft); }

/* ── Counters (stats) ───────────────────────────────────── */

.us-stat .elementor-counter-number-wrapper {
  font-family: var(--us-serif); font-weight: 800;
  font-size: clamp(34px,3.6vw,54px); line-height: 1; color: var(--us-espresso);
}
.us-stat .elementor-counter-title {
  font-family: var(--us-sans); font-size: 11px; letter-spacing: .22em;
  text-transform: uppercase; color: var(--us-gold); margin-top: 6px;
}

/* ── Reviews ────────────────────────────────────────────── */

.us-stars { color: var(--us-gold); font-size: 15px; letter-spacing: .24em; }
.us-quote p { font-size: 13.5px; line-height: 1.75; color: var(--us-espresso-2); }
.us-dark .us-quote p { color: rgba(243,238,228,.75); }
.us-pfp img { width: 46px !important; height: 46px !important; border-radius: 50%;
  object-fit: cover; border: 1px solid rgba(42,33,24,.15); }

/* ── Chips ──────────────────────────────────────────────── */

.us-chip {
  display:inline-block; padding: 7px 15px; border-radius: 999px;
  border: 1px solid rgba(178,145,87,.5); color: var(--us-gold);
  font-family: var(--us-sans); font-size: 10px; font-weight: 500;
  letter-spacing: .18em; text-transform: uppercase; margin: 0 6px 8px 0;
}

/* ── Accordion (process, FAQ) ───────────────────────────── */

.us-acc .elementor-accordion-item { border: 0; border-top: 1px solid rgba(42,33,24,.14); }
.us-acc .elementor-accordion-item:last-child { border-bottom: 1px solid rgba(42,33,24,.14); }
.us-acc .elementor-tab-title { padding: 26px 4px; background: transparent; }
.us-acc .elementor-tab-title a,
.us-acc .elementor-accordion-title {
  font-family: var(--us-serif); font-weight: 600;
  font-size: clamp(19px,2vw,26px); text-transform: uppercase; color: var(--us-espresso);
  transition: color .3s;
}
.us-acc .elementor-tab-title:hover .elementor-accordion-title { color: var(--us-crimson); }
.us-acc .elementor-tab-content { border: 0; padding: 0 4px 28px; }
.us-acc .elementor-tab-content p { font-size: 14px; line-height: 1.8; color: var(--us-grey); max-width: 640px; }
.us-acc .elementor-accordion-icon { color: var(--us-gold); }

/* ── Vertical testimonial videos ──────────────────────── */
.us-vt .elementor-wrapper { aspect-ratio: 9 / 16; }
.us-vt .elementor-wrapper video,
.us-vt video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 12px;
  background: #211A12;
}

/* ── Team ───────────────────────────────────────────────── */

.us-team img {
  width: 100%;
  aspect-ratio: 3 / 4;
  object-fit: cover;
  filter: grayscale(1);
  transition: filter .6s ease, transform .6s var(--us-ease);
}
.us-team:hover img { filter: grayscale(0); transform: scale(1.04); }

/* ── Media plates ───────────────────────────────────────── */

.us-plate { position: relative; overflow: hidden; border-radius: 16px; aspect-ratio: 32 / 15; }
.us-plate video { position:absolute; inset:0; width:100%; height:100%; object-fit: cover; }
.us-plate .us-num { position:absolute; top:12px; left:18px; z-index:1;
  font-family: var(--us-serif); font-size: 30px; color: rgba(255,253,248,.85);
  text-shadow: 0 2px 12px rgba(42,33,24,.5); }

.us-videoplate video { width:100%; display:block; border-radius: 16px; }

/* ── Page banner ────────────────────────────────────────── */

.us-banner { position: relative; }

/* Elementor already paints the background overlay; this is only a soft scrim
   directly behind the copy so the headline stays legible over bright artwork. */
.us-banner::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: radial-gradient(58% 62% at 50% 52%,
              rgba(18, 13, 8, 0.62), rgba(18, 13, 8, 0.22) 62%, transparent 82%);
}
.us-banner > .e-con-inner,
.us-banner > .elementor-container { position: relative; z-index: 1; }

.us-banner .elementor-heading-title,
.us-banner p { text-shadow: 0 2px 24px rgba(12, 8, 5, 0.85), 0 1px 3px rgba(12, 8, 5, 0.6); }

/* banner headline reads white and solid over the artwork */
.us-banner-title .elementor-heading-title { color: #fff !important; }
.us-dark.us-banner p,
.us-banner .elementor-widget-text-editor p { color: #fff !important; }
.us-banner .us-eyebrow .elementor-heading-title,
.us-banner .elementor-widget-heading:first-child .elementor-heading-title { color: #E9D9B4 !important; }

/* ── Hero: keep copy clear of the figure, add the lens ──── */

/* push the knight right so the headline never sits on top of him */
.us-hero .elementor-background-video-container video,
.us-hero .elementor-background-video-container iframe {
  object-fit: cover;
  object-position: 78% center;
}

.us-hero { position: relative; overflow: hidden; }

/* cursor-following desaturation lens */
.us-lens {
  position: absolute;
  top: 0; left: 0;
  z-index: 5;
  width: 150px; height: 150px;
  border-radius: 50%;
  pointer-events: none;
  backdrop-filter: grayscale(1);
  -webkit-backdrop-filter: grayscale(1);
  -webkit-mask-image: radial-gradient(circle, #000 45%, transparent 95%);
          mask-image: radial-gradient(circle, #000 45%, transparent 95%);
  opacity: 0;
  transition: opacity .35s ease;
}
.us-lens.us-lens-on { opacity: 1; }

@media (max-width: 1024px) {
  .us-hero .elementor-background-video-container video { object-position: 68% center; }
}

/* ── Custom cursor ──────────────────────────────────────── */

.us-cursor-on, .us-cursor-on * { cursor: none !important; }
.us-cursor-dot, .us-cursor-ring {
  position: fixed; top:0; left:0; z-index: 99999; pointer-events:none;
  border-radius: 50%; transition: opacity .3s;
}
.us-cursor-dot { width:7px; height:7px; margin:-3.5px 0 0 -3.5px; background: var(--us-gold); z-index:100000; }
.us-cursor-ring { width:36px; height:36px; margin:-18px 0 0 -18px;
  border: 1.5px solid rgba(42,33,24,.75);
  box-shadow: 0 0 0 1px rgba(243,238,228,.55);
  transition: opacity .3s, scale .35s var(--us-ease), border-color .3s; }
.us-hot .us-cursor-ring { scale: 1.6; border-color: var(--us-gold); }
.us-cursor-off .us-cursor-dot, .us-cursor-off .us-cursor-ring { opacity: 0 !important; }
img, video { -webkit-user-drag: none; }

/* ── Footer ─────────────────────────────────────────────── */

.us-footer-social .elementor-social-icon {
  background: transparent !important;
  border: 1px solid rgba(214,190,142,.4);
  border-radius: 10px !important;
  color: var(--us-gold-soft) !important;
  transition: background .3s, color .3s, transform .3s var(--us-ease);
}
.us-footer-social .elementor-social-icon:hover {
  background: var(--us-gold-soft) !important; color: #211A12 !important;
  transform: translateY(-3px);
}

.us-footer-links a { color: rgba(243,238,228,.65) !important; transition: color .3s; }
.us-footer-links a:hover { color: var(--us-gold-soft) !important; }

/* ── Nav ────────────────────────────────────────────────── */

.us-nav .elementor-item {
  font-family: var(--us-sans); font-size: 11px !important; font-weight: 400;
  letter-spacing: .26em; text-transform: uppercase; color: var(--us-espresso-2) !important;
}
.us-nav .elementor-item:hover,
.us-nav .elementor-item.elementor-item-active { color: var(--us-gold) !important; }

.us-header { flex-wrap: nowrap !important; }
/* side groups hug their content; the menu takes the space between */
.us-header > .e-con { flex: 0 0 auto !important; width: auto !important; }
.us-header > .us-nav { flex: 1 1 auto !important; min-width: 0; }
.us-header .us-nav .elementor-nav-menu { flex-wrap: nowrap; justify-content: center; }
.us-header .us-nav .elementor-nav-menu li { white-space: nowrap; }
.us-header .elementor-nav-menu--main .elementor-item { padding: 8px 14px; }

.us-header {
  background: rgba(248,244,236,.82);
  backdrop-filter: blur(18px) saturate(1.15);
  -webkit-backdrop-filter: blur(18px) saturate(1.15);
  border-bottom: 1px solid rgba(42,33,24,.08);
  box-shadow: 0 12px 30px -20px rgba(42,33,24,.18);
}

/* ── Reduced motion ─────────────────────────────────────── */

@media (prefers-reduced-motion: reduce) {
  /* Elementor hides animated elements until they enter the viewport */
  .elementor-invisible { opacity: 1 !important; animation: none !important; }
  .elementor-element { animation-name: none !important; }
  .us-hero-title .elementor-heading-title,
  .us-hero-title .us-line i,
  .us-glass::before,
  .us-marquee-track,
  .us-brick { animation: none !important; }
  .us-hero-title .us-line i { transform: none; }
  .us-brick { opacity: 1; }
}


/* ═══════════════════════════════════════════════════════════
   Pinned scroll timeline (Process page)
   The track supplies the scroll distance; the stage pins while
   the steps advance, so the reader moves through every step
   before the page continues.
   ═══════════════════════════════════════════════════════════ */

.us-timeline { position: relative; }
.us-tl-track { position: relative; }

.us-tl-stage {
  position: sticky;
  top: 0;
  min-height: 100vh;
  display: flex;
  align-items: center;
  gap: clamp(28px, 5vw, 80px);
  padding: 90px 0 60px;
}

/* rail + numbered markers */
.us-tl-rail {
  position: relative;
  flex: 0 0 auto;
  width: 64px;
  align-self: stretch;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.us-tl-line {
  position: absolute;
  left: 50%;
  top: 6%;
  bottom: 6%;
  width: 2px;
  transform: translateX(-50%);
  background: rgba(42, 33, 24, 0.14);
  border-radius: 2px;
  overflow: hidden;
}
.us-dark .us-tl-line { background: rgba(243, 238, 228, 0.16); }

.us-tl-fill {
  position: absolute;
  inset: 0 0 auto 0;
  height: 0%;
  background: linear-gradient(180deg, var(--us-gold-soft), var(--us-gold));
  transition: height .35s var(--us-ease);
}

.us-tl-dots {
  position: relative;
  z-index: 1;
  list-style: none;
  margin: 0; padding: 0;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  height: 88%;
  align-self: center;
}

.us-tl-dot {
  width: 46px; height: 46px;
  border-radius: 50%;
  display: grid; place-items: center;
  background: var(--us-ivory);
  border: 1px solid rgba(42, 33, 24, 0.2);
  color: var(--us-grey);
  font-family: var(--us-sans);
  font-size: 12px; letter-spacing: .1em;
  cursor: pointer;
  transition: transform .45s var(--us-ease), background .35s, color .35s, border-color .35s;
}
.us-dark .us-tl-dot { background: #211A12; border-color: rgba(243,238,228,.2);
  color: rgba(243,238,228,.55); }

.us-tl-dot.is-done { border-color: var(--us-gold); color: var(--us-gold); }
.us-tl-dot.is-active {
  background: var(--us-gold);
  border-color: var(--us-gold);
  color: #241a08;
  transform: scale(1.18);
  box-shadow: 0 10px 26px -10px rgba(178, 145, 87, .8);
}

/* panels cross-fade in place */
.us-tl-panels { position: relative; flex: 1 1 auto; min-height: 340px; }

.us-tl-panel {
  position: absolute;
  inset: 0;
  opacity: 0;
  transform: translateY(34px);
  transition: opacity .55s var(--us-ease), transform .55s var(--us-ease);
  pointer-events: none;
}
.us-tl-panel.is-active { opacity: 1; transform: none; pointer-events: auto; }

.us-tl-step {
  display: block;
  font-family: var(--us-sans);
  font-size: 11px; letter-spacing: .26em; text-transform: uppercase;
  color: var(--us-gold); margin-bottom: 14px;
}
.us-tl-panel h3 {
  font-family: var(--us-serif);
  font-weight: 400;
  font-size: clamp(28px, 3.4vw, 46px);
  line-height: 1.06;
  text-transform: uppercase;
  margin: 0 0 16px;
}
.us-tl-panel p {
  font-size: 15px; line-height: 1.85; color: var(--us-grey); max-width: 620px; margin: 0;
}
.us-dark .us-tl-panel p { color: rgba(243,238,228,.68); }

.us-tl-count {
  position: absolute;
  left: 0; bottom: 0;
  font-family: var(--us-sans);
  font-size: 11px; letter-spacing: .22em; text-transform: uppercase;
  color: rgba(42,33,24,.4);
}
.us-dark .us-tl-count { color: rgba(243,238,228,.4); }

/* no pinning on touch / small screens: plain stacked timeline */
@media (max-width: 900px) {
  .us-tl-track { height: auto !important; }
  .us-tl-stage { position: static; min-height: 0; display: block; padding: 0; }
  .us-tl-rail { display: none; }
  .us-tl-panels { min-height: 0; }
  .us-tl-panel {
    position: relative; inset: auto; opacity: 1; transform: none; pointer-events: auto;
    padding: 26px 0 26px 26px;
    border-left: 2px solid rgba(42,33,24,.14);
  }
  .us-dark .us-tl-panel { border-left-color: rgba(243,238,228,.18); }
  .us-tl-panel::before {
    content: ""; position: absolute; left: -7px; top: 32px;
    width: 12px; height: 12px; border-radius: 50%; background: var(--us-gold);
  }
  .us-tl-count { display: none; }
}

@media (prefers-reduced-motion: reduce) {
  .us-tl-track { height: auto !important; }
  .us-tl-stage { position: static; min-height: 0; display: block; }
  .us-tl-rail { display: none; }
  .us-tl-panels { min-height: 0; }
  .us-tl-panel { position: relative; inset: auto; opacity: 1; transform: none; }
}

/* ── Scroll progress bar ────────────────────────────────── */
.us-progress {
  position: fixed; top: 0; left: 0; height: 3px; width: 0;
  background: linear-gradient(90deg, var(--us-gold-soft), var(--us-crimson));
  z-index: 100001; pointer-events: none;
  transition: width .1s linear;
}

/* ═══════════════ Mobile hardening ═══════════════ */

/* gold bricks: never overflow, shrink gracefully */
.us-brick-row { flex-wrap: wrap; }
@media (max-width: 900px) {
  .us-bricks { gap: 8px; }
  .us-brick-row { gap: 8px; }
  .us-brick { padding: 15px 16px; font-size: 10px; letter-spacing: .1em; }
}
@media (max-width: 600px) {
  .us-brick-row { gap: 6px; }
  .us-bricks { gap: 6px; }
  .us-brick {
    padding: 13px 12px;
    font-size: 9px;
    letter-spacing: .06em;
    clip-path: polygon(5% 0, 95% 0, 100% 100%, 0 100%);
  }
}

/* Mobile hardening for the pages this agent built. The homepage is excluded:
   its responsive behaviour is managed directly in Elementor and these
   overrides must not fight those settings. */
@media (max-width: 767px) {
  body:not(.home) .us-col,
  body:not(.home) .us-headcol,
  body:not(.home) .us-featcell { flex: 1 1 100% !important; min-width: 0 !important; }
  body:not(.home) .us-headcol { max-width: 100%; }
  body:not(.home) .us-headseal { justify-content: center !important; }
  body:not(.home) .us-seal img { width: 68px !important; }
  body:not(.home) .us-press-logo { height: 40px !important; }
  body:not(.home) .us-site-card { width: 74vw; min-height: 140px; }
  body:not(.home) .us-marquee-track { gap: 30px; padding-right: 30px; }
  body:not(.home) .us-trust span { font-size: 13px; }
  body:not(.home) .us-vt .elementor-wrapper { aspect-ratio: 9 / 14; }

  /* pointer-only effect, safe to drop on touch everywhere */
  .us-lens { display: none; }
}

/* nothing may cause a sideways scroll */
html, body { max-width: 100%; overflow-x: hidden; }


/* ── Header on small screens ────────────────────────────────
   The row must stay on one line, so the wordmark gives way and
   the CTA tightens; the logo mark plus menu plus button all fit. */
@media (max-width: 900px) {
  .us-header { gap: 10px !important; padding-left: 18px !important; padding-right: 18px !important; }
  .us-header .us-brandword { display: none !important; }
  .us-header > .us-nav { flex: 0 0 auto !important; }
  .us-header .us-btn .elementor-button {
    padding: 10px 16px !important;
    font-size: 9.5px !important;
    letter-spacing: 0.12em !important;
    white-space: nowrap;
  }
}
@media (max-width: 480px) {
  .us-header { padding-left: 12px !important; padding-right: 12px !important; gap: 6px !important; }
  .us-header .elementor-widget-theme-site-logo img { width: 36px !important; }
  .us-header .us-btn .elementor-button { padding: 9px 12px !important; font-size: 8.5px !important; }
}
