/* =====================================================================
   Web Offset — v3 additions
   Loads AFTER weboffset-v2.css. Adds: hero slider (Newslight / Sonic),
   entrance choreography, live odometer, 4-Hi tower diagram, speed
   ladder, compare-panel transitions, registration-mark detailing.
   ===================================================================== */

.visually-hidden {
  position: absolute !important; width: 1px; height: 1px;
  padding: 0; margin: -1px; overflow: hidden;
  clip: rect(0,0,0,0); white-space: nowrap; border: 0;
}

/* ============================================================
   HERO SLIDER
   ============================================================ */
.wov3-slides {
  display: grid; width: 100%; flex: 1;
}
.wov3-slide {
  grid-area: 1 / 1;
  display: flex; flex-direction: column; align-items: center;
  width: 100%;
  opacity: 0; pointer-events: none; z-index: 1;
  transition: opacity .7s var(--ease-pmpl);
}
.wov3-slide.is-active { opacity: 1; pointer-events: auto; z-index: 2; }

/* entrance choreography — replays on every slide switch */
@keyframes wov3Up { from { opacity: 0; transform: translateY(26px); } to { opacity: 1; transform: none; } }
@keyframes wov3Stage { from { opacity: 0; transform: scale(1.025) translateY(12px); } to { opacity: 1; transform: none; } }
.wov3-slide.is-active .wov2-hero-eyebrow { animation: wov3Up .7s .05s var(--ease-pmpl) both; }
.wov3-slide.is-active .wov2-hero-title   { animation: wov3Up .8s .14s var(--ease-pmpl) both; }
.wov3-slide.is-active .wov2-hero-tag     { animation: wov3Up .8s .24s var(--ease-pmpl) both; }
.wov3-slide.is-active .wov2-hero-links   { animation: wov3Up .8s .32s var(--ease-pmpl) both; }
.wov3-slide.is-active .wov2-hero-stage   { animation: wov3Stage 1s .34s var(--ease-pmpl) backwards; }

/* dots */
.wov3-dots {
  position: absolute; bottom: 16px; left: 50%; transform: translateX(-50%);
  display: flex; gap: 9px; z-index: 6;
}
.wov3-dots button {
  width: 8px; height: 8px; border-radius: 980px;
  border: none; padding: 0; cursor: pointer;
  background: rgba(0,0,0,0.22);
  transition: width .35s var(--ease-pmpl), background .35s var(--ease-pmpl);
}
.wov3-dots button.active { width: 24px; background: #1d1d1f; }
.wov3-dots button:focus-visible { outline: 2px solid var(--prakash-amber-deep); outline-offset: 3px; }

/* per-slide hero accent tint — (removed: keep brand amber only) */

@media (prefers-reduced-motion: reduce) {
  .wov3-slide, .wov3-slide.is-active .wov2-hero-eyebrow,
  .wov3-slide.is-active .wov2-hero-title, .wov3-slide.is-active .wov2-hero-tag,
  .wov3-slide.is-active .wov2-hero-links, .wov3-slide.is-active .wov2-hero-stage {
    animation: none; transition: none;
  }
}

/* ============================================================
   LIVE ODOMETER (numbers section)
   ============================================================ */
.odo {
  max-width: 760px; margin: 84px auto 0; text-align: center;
  border-top: 1px solid rgba(0,0,0,0.1); padding-top: 56px;
}
.odo-label {
  font-family: var(--font-display);
  font-size: 15px; font-weight: 500; letter-spacing: -0.01em;
  color: rgba(0,0,0,0.5); margin-bottom: 26px;
}
.odo-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0; }
.odo-cell { padding: 0 28px; }
.odo-cell + .odo-cell { border-left: 1px solid rgba(0,0,0,0.1); }
.odo-n {
  font-family: var(--font-display);
  font-variant-numeric: tabular-nums;
  font-size: clamp(44px, 5.6vw, 84px); font-weight: 600;
  letter-spacing: -0.035em; line-height: 1; color: var(--prakash-amber-deep);
}
.odo-muted .odo-n { color: #1d1d1f; }
.odo-sub {
  font-family: var(--font-text);
  font-size: 14px; letter-spacing: -0.005em;
  color: rgba(0,0,0,0.45); margin-top: 14px;
}
.odo-sub strong { color: #1d1d1f; font-weight: 600; }
@media (max-width: 640px) {
  .odo-grid { grid-template-columns: 1fr; gap: 36px; }
  .odo-cell + .odo-cell { border-left: none; }
}

/* ============================================================
   4-HI TOWER CROSS-SECTION
   ============================================================ */
.tower-grid {
  display: grid; grid-template-columns: 0.9fr 1.1fr;
  gap: 72px; align-items: center;
  max-width: 1120px; margin: 72px auto 0;
}
.tower-copy { text-align: left; }
.tower-copy h3 {
  font-family: var(--font-display);
  font-size: clamp(26px, 3vw, 38px); font-weight: 600;
  line-height: 1.1; letter-spacing: -0.022em; color: #fff; margin: 0 0 18px;
}
.tower-copy p {
  font-family: var(--font-text);
  font-size: 16px; line-height: 1.6; letter-spacing: -0.005em;
  color: rgba(255,255,255,0.62); margin: 0 0 26px; text-wrap: pretty;
}
.tower-copy p strong { color: #fff; font-weight: 600; }
.tower-facts { display: grid; grid-template-columns: repeat(3, auto); gap: 0; border-top: 1px solid rgba(255,255,255,0.14); }
.tower-fact { padding: 18px 22px 0 0; }
.tower-fact + .tower-fact { padding-left: 22px; border-left: 1px solid rgba(255,255,255,0.12); }
.tower-fact .tf-n {
  font-family: var(--font-display);
  font-size: 28px; font-weight: 600; letter-spacing: -0.03em; color: #fff; line-height: 1;
}
.tower-fact .tf-n em { font-style: normal; color: var(--prakash-amber-bright); }
.tower-fact .tf-l {
  font-family: var(--font-text);
  font-size: 11.5px; letter-spacing: 0.3px; text-transform: uppercase;
  color: rgba(255,255,255,0.45); margin-top: 7px;
}

.tower-wrap { position: relative; }
.tower-svg { display: block; width: 100%; max-width: 560px; margin: 0 auto; height: auto; }
.tower-svg text {
  font-family: var(--font-text);
  font-size: 13px; letter-spacing: -0.005em;
  fill: rgba(255,255,255,0.62);
}
.tower-svg .t-colname { font-weight: 600; fill: rgba(255,255,255,0.85); }

/* draw-in animation, keyed off .rv → .in on .tower-wrap */
.tower-svg .t-el {
  opacity: 0; transform: scale(0.9); transform-origin: center;
  transform-box: fill-box;
  transition: opacity .8s var(--ease-pmpl) var(--d, 0s), transform .8s var(--ease-pmpl) var(--d, 0s);
}
.tower-wrap.in .t-el { opacity: 1; transform: none; }
.tower-svg .t-web {
  transform: scaleY(0); transform-origin: 50% 100%; transform-box: fill-box;
  transition: transform 1.2s var(--ease-pmpl) .1s;
}
.tower-wrap.in .t-web { transform: scaleY(1); }
.tower-svg .t-line {
  stroke-dasharray: 260; stroke-dashoffset: 260;
  transition: stroke-dashoffset .9s var(--ease-pmpl) var(--d, .6s);
}
.tower-wrap.in .t-line { stroke-dashoffset: 0; }
.tower-svg .t-lab { opacity: 0; transition: opacity .7s var(--ease-pmpl) var(--d, .9s); }
.tower-wrap.in .t-lab { opacity: 1; }
@media (prefers-reduced-motion: reduce) {
  .tower-svg .t-el, .tower-svg .t-web, .tower-svg .t-line, .tower-svg .t-lab {
    opacity: 1; transform: none; stroke-dashoffset: 0; transition: none;
  }
}

/* ============================================================
   SPEED LADDER
   ============================================================ */
.ladder { max-width: 860px; margin: 60px auto 0; display: grid; gap: 10px; }
.lad {
  display: grid; grid-template-columns: 150px 1fr 110px;
  align-items: center; gap: 18px;
  background: none; border: none; padding: 10px 12px;
  border-radius: 14px; cursor: pointer; text-align: left;
  transition: background .2s var(--ease-pmpl);
}
.lad:hover { background: rgba(0,0,0,0.035); }
.lad:focus-visible { outline: 2px solid var(--prakash-amber-deep); outline-offset: 2px; }
.lad-name {
  font-family: var(--font-display);
  font-size: 17px; font-weight: 600; letter-spacing: -0.015em; color: #1d1d1f;
}
.lad-name i {
  display: block; font-style: normal; font-weight: 500;
  font-size: 11.5px; color: rgba(0,0,0,0.42); margin-top: 2px;
}
.lad-track {
  display: block; height: 12px; border-radius: 980px;
  background: rgba(0,0,0,0.06); overflow: hidden;
}
.lad-bar {
  display: block; height: 100%; width: 0;
  border-radius: 980px; background: #1d1d1f;
  transition: width 1.3s var(--ease-pmpl) var(--d, 0s);
}
.lad.flag .lad-bar { background: linear-gradient(90deg, var(--prakash-amber-deep), var(--prakash-amber)); }
.ladder.in .lad-bar { width: var(--w); }
.lad-val {
  font-family: var(--font-display); font-variant-numeric: tabular-nums;
  font-size: 19px; font-weight: 600; letter-spacing: -0.02em;
  color: #1d1d1f; text-align: right;
}
.lad-val i { font-style: normal; font-weight: 500; font-size: 12px; color: rgba(0,0,0,0.4); margin-left: 3px; }
.lad.flag .lad-val { color: var(--prakash-amber-deep); }
@media (prefers-reduced-motion: reduce) { .lad-bar { transition: none; } }
@media (max-width: 640px) {
  .lad { grid-template-columns: 96px 1fr 84px; gap: 10px; }
  .lad-name { font-size: 14px; }
  .lad-val { font-size: 15px; }
}

/* ============================================================
   COMPARE PANEL TRANSITIONS
   ============================================================ */
@keyframes cpIn {
  from { opacity: 0; transform: translateY(14px); }
  to   { opacity: 1; transform: none; }
}
.compare-media.cp-anim { animation: cpIn .5s var(--ease-pmpl) both; }
.compare-body.cp-anim  { animation: cpIn .55s var(--ease-pmpl) .07s both; }
.compare-body.cp-anim .compare-spec { animation: cpIn .5s var(--ease-pmpl) both; }
.compare-body.cp-anim .compare-spec:nth-child(1) { animation-delay: .18s; }
.compare-body.cp-anim .compare-spec:nth-child(2) { animation-delay: .26s; }
.compare-body.cp-anim .compare-spec:nth-child(3) { animation-delay: .34s; }
@media (prefers-reduced-motion: reduce) {
  .compare-media.cp-anim, .compare-body.cp-anim, .compare-body.cp-anim .compare-spec { animation: none; }
}

/* ============================================================
   REGISTRATION / CROP-MARK DETAILING
   ============================================================ */
/* crop marks on the outer media wrappers (not clipped) */
.moment-media::before, .moment-media::after {
  content: ''; position: absolute; width: 14px; height: 14px; pointer-events: none;
}
.moment-media::before {
  top: -9px; left: -9px;
  border-top: 1px solid rgba(0,0,0,0.22); border-left: 1px solid rgba(0,0,0,0.22);
}
.moment-media::after {
  bottom: -9px; right: -9px;
  border-bottom: 1px solid rgba(0,0,0,0.22); border-right: 1px solid rgba(0,0,0,0.22);
}
/* registration mark next to section eyebrows */
.wov2-eyebrow.reg::before {
  content: ''; display: inline-block; vertical-align: -2px;
  width: 13px; height: 13px; margin-right: 8px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14'%3E%3Ccircle cx='7' cy='7' r='5.4' fill='none' stroke='%23B8791C' stroke-width='1.1'/%3E%3Cpath d='M7 0v14M0 7h14' stroke='%23B8791C' stroke-width='1.1'/%3E%3C/svg%3E");
  background-size: contain; background-repeat: no-repeat;
  opacity: 0.75;
}
.wov2-black .wov2-eyebrow.reg::before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14'%3E%3Ccircle cx='7' cy='7' r='5.4' fill='none' stroke='%23F0A93F' stroke-width='1.1'/%3E%3Cpath d='M7 0v14M0 7h14' stroke='%23F0A93F' stroke-width='1.1'/%3E%3C/svg%3E");
}

/* ---------- responsive ---------- */
@media (max-width: 960px) {
  .tower-grid { grid-template-columns: 1fr; gap: 48px; }
  .tower-copy { text-align: center; }
  .tower-facts { justify-content: center; }
  .odo { margin-top: 64px; padding-top: 44px; }
}
