/* Pulse homepage sections. Calm, spaced, one action per screen. */
.p-home { color: var(--text-body); background: #FFFFFF; font-family: var(--font-sans); }
.p-wrap { max-width: var(--shell); margin: 0 auto; padding-inline: var(--gutter); }
.p-home h2, .p-final h2 {
  font-weight: 400; text-transform: uppercase; letter-spacing: 0.035em;
  font-size: clamp(24px, 2.8vw, 34px); line-height: 1.25; color: var(--text-heading); text-wrap: balance;
}
.p-home h2::after, .p-final h2::after { content: ""; display: block; width: 36px; height: 4px; margin-top: 22px; background: var(--pulse-red); border-radius: 1px; }
.p-home h3 { font-size: 18px; font-weight: 600; line-height: 1.35; color: var(--text-heading); }
.p-home p { font-size: 16px; line-height: 1.75; text-wrap: pretty; }
.p-home .p-lede { margin-top: 20px; max-width: 58ch; font-size: 17px; }
.p-band { padding-block: clamp(64px, 8vw, 112px); }
.p-band--paper { background: #F2F5F6 url("sol-grid-light.svg") center / cover no-repeat; }

/* Facts strip */
.p-facts { border-bottom: 1px solid var(--border-hairline); }
.p-facts .p-wrap { display: grid; grid-template-columns: repeat(4, 1fr); }
.p-fact { padding: 36px 24px; border-left: 1px solid var(--border-hairline); }
.p-fact:first-child { border-left: 0; padding-left: 0; }
.p-fact strong { display: block; font-size: clamp(22px, 2.4vw, 30px); font-weight: 600; line-height: 1.1; color: var(--text-heading); }
.p-fact span { display: block; margin-top: 10px; font-size: 14px; line-height: 1.5; color: var(--text-muted); }

/* Three steps */
.p-steps { margin-top: clamp(40px, 5vw, 64px); display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.p-step { padding: 36px 32px; background: #FFFFFF; border: 1px solid var(--border-hairline); border-radius: var(--r-lg); border-top: 4px solid var(--pulse-red); }
.p-step b { display: block; margin-bottom: 20px; font-size: 14px; font-weight: 600; letter-spacing: 0.08em; color: var(--pulse-red); }
.p-step p { margin-top: 12px; font-size: 15px; line-height: 1.7; }

/* Audience split */
.p-split { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(40px, 6vw, 88px); align-items: center; }
.p-split figure { margin: 0; }
.p-split img { width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--r-lg); }
.p-list { margin-top: 36px; display: grid; gap: 0; }
.p-list > div { padding: 22px 0; border-top: 1px solid var(--border-hairline); }
.p-list > div:last-child { border-bottom: 1px solid var(--border-hairline); }
.p-list p { margin-top: 6px; font-size: 15px; line-height: 1.65; }

/* Around the trip */
.p-grid { margin-top: clamp(40px, 5vw, 64px); display: grid; grid-template-columns: repeat(2, 1fr); gap: 0 clamp(32px, 6vw, 88px); }
.p-grid > div { padding: 32px 0; border-top: 1px solid var(--border-strong); }
.p-grid p { margin-top: 10px; font-size: 15px; line-height: 1.7; }

/* Quote, in the Pulse quote style */
.p-quote { background: #FFFFFF; }
.p-quote blockquote { position: relative; max-width: 860px; margin: 0 auto; padding: clamp(40px, 5vw, 64px); background: var(--c-lane); border-radius: var(--r-lg); border-left: 4px solid var(--pulse-red); }
.p-quote blockquote p { font-size: clamp(20px, 2.4vw, 28px); font-weight: 500; font-style: italic; line-height: 1.5; color: var(--text-heading); }
.p-quote cite { display: block; margin-top: 24px; font-size: 14px; font-style: normal; color: var(--text-muted); }
.p-quote cite b { color: var(--text-heading); font-weight: 600; }

/* FAQ */
.p-faq-grid { display: grid; grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr); gap: clamp(40px, 6vw, 88px); align-items: start; }
.p-faq details { border-top: 1px solid var(--border-strong); }
.p-faq details:last-child { border-bottom: 1px solid var(--border-strong); }
.p-faq summary { display: flex; justify-content: space-between; gap: 24px; align-items: center; padding: 22px 0; font-size: 17px; font-weight: 600; color: var(--text-heading); cursor: pointer; list-style: none; }
.p-faq summary::-webkit-details-marker { display: none; }
.p-faq summary::after { content: "+"; flex: 0 0 auto; font-size: 24px; font-weight: 400; line-height: 1; color: var(--pulse-red); }
.p-faq details[open] summary::after { content: "\2212"; }
.p-faq details p { padding: 0 0 24px; max-width: 60ch; font-size: 15px; }

/* Final action */
.p-final { position: relative; overflow: hidden; color: #FFFFFF; background: var(--c-ink) url("pulse-map-dark.svg") center / cover no-repeat; }
.p-final .p-wrap { padding-block: clamp(72px, 9vw, 120px); }
.p-final h2 { color: #FFFFFF; font-size: clamp(26px, 3.6vw, 44px); line-height: 1.2; }
.p-final p { margin-top: 28px; max-width: 46ch; font-size: 17px; line-height: 1.7; color: #DCE5EA; }
.p-final .btn { margin-top: 36px; height: 52px; padding: 0 32px; font-size: 16px; }
.p-final small { display: block; margin-top: 18px; font-size: 13px; letter-spacing: 0.02em; color: var(--c-mist); }


/* Step screens: static product glimpses on dark */
.p-mock { margin: -36px -32px 28px; padding: 0 0 14px; background: var(--c-ink); border-radius: var(--r-lg) var(--r-lg) 0 0; overflow: hidden; height: 166px; }
.p-step { overflow: hidden; border-top: 0; }
.p-mock-bar { padding: 12px 16px; font-size: 11px; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; color: var(--c-mist); border-bottom: 1px solid rgba(169,188,201,0.16); border-top: 4px solid var(--pulse-red); }
.p-mock-row { display: grid; grid-template-columns: 44px 1fr auto; gap: 10px; align-items: center; padding: 8px 16px; font-size: 12px; color: var(--c-mist); }
.p-mock-row i { height: 6px; border-radius: 3px; background: rgba(169,188,201,0.25); }
.p-mock-row em { font-style: normal; font-size: 11px; font-weight: 600; color: #FFFFFF; padding: 2px 8px; border-radius: 999px; background: rgba(169,188,201,0.16); }
.p-mock-row em.is-red { background: var(--pulse-red); }
.p-mock-card { margin: 14px 16px 0; padding: 12px 14px; border-radius: var(--r-md); background: #22363F; }
.p-mock-card small { display: block; font-size: 11px; color: var(--c-mist); }
.p-mock-card strong { display: block; margin-top: 2px; font-size: 14px; font-weight: 600; color: #FFFFFF; }
.p-mock-btn { display: inline-block; margin-top: 10px; padding: 5px 12px; border-radius: 999px; background: var(--pulse-red); font-size: 11px; font-weight: 600; color: #FFFFFF; }
.p-mock svg { width: 100%; height: 100px; }
.p-cta { margin-top: 40px; }

/* Compliance */
.p-checks { margin-top: clamp(40px, 5vw, 56px); display: grid; grid-template-columns: repeat(3, 1fr); gap: 0 clamp(24px, 4vw, 56px); }
.p-checks > div { position: relative; padding: 28px 0 28px 30px; border-top: 1px solid var(--border-hairline); }
.p-checks > div::before { content: ""; position: absolute; left: 0; top: 33px; width: 16px; height: 16px; background: url("check-red.svg") center / contain no-repeat; }
.p-checks h3 { font-size: 16px; }
.p-checks p { margin-top: 6px; font-size: 15px; line-height: 1.65; }
.p-grid--3 { grid-template-columns: repeat(3, 1fr); }
.p-final .p-rebrand { margin-top: 32px; padding-top: 20px; border-top: 1px solid rgba(169,188,201,0.2); max-width: 46ch; }

/* Inner page hero: dark map band, one headline, one line, optional action */
.pg-hero { position: relative; overflow: hidden; color: #FFFFFF; background: var(--c-ink) url("pulse-map-grid-dark.svg") center / cover no-repeat; }
.pg-hero .p-wrap { padding-block: clamp(64px, 8vw, 112px) clamp(56px, 7vw, 96px); }
.pg-hero h1 { max-width: 20ch; font-weight: 400; text-transform: uppercase; letter-spacing: 0.035em; font-size: clamp(30px, 4.2vw, 52px); line-height: 1.16; color: #FFFFFF; text-wrap: balance; }
.pg-hero h1::after { content: ""; display: block; width: 36px; height: 4px; margin-top: 26px; background: var(--pulse-red); border-radius: 1px; }
.pg-hero p { margin-top: 24px; max-width: 52ch; font-size: clamp(16px, 1.5vw, 18px); line-height: 1.7; color: #DCE5EA; }
.pg-hero .btn { margin-top: 32px; height: 52px; padding: 0 32px; font-size: 16px; }
.pg-hero--tuck .p-wrap { padding-bottom: clamp(96px, 11vw, 150px); }

/* Story split on About */
.p-story p + p { margin-top: 18px; }
.p-story .p-split { align-items: start; }

/* Contact and booking pages: form panel pulled up into the dark band */
.p-form-band { background: #F2F5F6 url("sol-grid-light.svg") center / cover no-repeat; }
.p-form-grid { display: grid; grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr); gap: clamp(40px, 6vw, 88px); align-items: start; padding-bottom: clamp(64px, 8vw, 112px); }
.p-form-grid .panel { margin-top: clamp(-120px, -8vw, -72px); position: relative; }
.p-form-side { padding-top: clamp(40px, 5vw, 64px); }
.p-form-side h2 { font-size: clamp(20px, 2vw, 24px); }
.p-next { margin: 28px 0 0; padding: 0; list-style: none; border-top: 1px solid var(--border-strong); }
.p-next li { display: grid; grid-template-columns: 44px 1fr; gap: 12px; padding: 18px 0; border-bottom: 1px solid var(--border-hairline); font-size: 15px; line-height: 1.6; }
.p-next b { font-size: 14px; font-weight: 600; letter-spacing: 0.08em; color: var(--pulse-red); }
.p-facts-list { margin-top: 32px; display: grid; gap: 20px; }
.p-facts-list dt { font-size: 13px; font-weight: 600; letter-spacing: 0.04em; color: var(--text-heading); }
.p-facts-list dd { margin: 4px 0 0; font-size: 15px; line-height: 1.6; color: var(--text-body); }
.p-note { margin-top: 28px; font-size: 13px !important; color: var(--text-muted); }


/* ── Livelier inner pages (1.5.7) ── */
/* Reveal on scroll: only hides content once motion.js has loaded */
.pulse-motion [data-reveal] { opacity: 0; transform: translateY(18px); transition: opacity 600ms ease, transform 600ms ease; }
.pulse-motion [data-reveal].is-in { opacity: 1; transform: none; }
.pulse-motion [data-reveal="2"] { transition-delay: 120ms; } .pulse-motion [data-reveal="3"] { transition-delay: 240ms; }
@media (prefers-reduced-motion: reduce) { .pulse-motion [data-reveal] { opacity: 1; transform: none; transition: none; } }

/* Split page hero with a visual on the right */
.pg-hero--split .p-wrap { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr); gap: clamp(32px, 5vw, 72px); align-items: center; }
.pg-photo { position: relative; margin: 0; }
.pg-photo img { width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--r-lg); border-bottom: 4px solid var(--pulse-red); }
.pg-badge { position: absolute; display: flex; align-items: center; gap: 12px; padding: 12px 16px; background: #FFFFFF; color: var(--text-heading); border-radius: var(--r-md); box-shadow: 0 18px 40px -18px rgba(0,0,0,0.55); }
.pg-badge strong { font-size: 22px; font-weight: 600; line-height: 1; }
.pg-badge span { font-size: 12px; line-height: 1.35; color: var(--text-muted); max-width: 12ch; }
.pg-badge--a { left: -22px; bottom: 28px; } .pg-badge--b { right: -18px; bottom: 28px; }
.pg-badge i { width: 10px; height: 10px; border-radius: 50%; background: var(--pulse-red); box-shadow: 0 0 0 5px rgba(214,32,60,0.18); }

/* Glance card in contact and booking heroes */
.pg-glance { padding: 8px 0; background: rgba(255,255,255,0.06); border: 1px solid rgba(169,188,201,0.22); border-radius: var(--r-lg); backdrop-filter: blur(2px); }
.pg-glance div { display: grid; grid-template-columns: 40px 1fr; gap: 14px; align-items: start; padding: 16px 22px; }
.pg-glance div + div { border-top: 1px solid rgba(169,188,201,0.16); }
.pg-hero .pg-glance p { margin: 0; max-width: none; }
.pg-glance svg { width: 22px; height: 22px; margin-top: 2px; color: var(--pulse-red); }
.pg-glance b { display: block; font-size: 15px; font-weight: 600; color: #FFFFFF; }
.pg-glance span { display: block; margin-top: 4px; font-size: 14px; line-height: 1.55; color: #C9D6DE; }

/* Sliders: swipe on touch, scroll on trackpads, buttons for mouse and keyboard */
.p-slider-head { display: flex; justify-content: space-between; align-items: flex-end; gap: 24px; }
.p-slider-nav { display: flex; gap: 10px; flex: 0 0 auto; }
.p-slider-nav button { width: 48px; height: 48px; display: grid; place-items: center; border: 1px solid var(--border-strong); border-radius: 50%; background: #FFFFFF; color: var(--text-heading); cursor: pointer; transition: background 140ms ease, color 140ms ease, border-color 140ms ease; }
.p-slider-nav button:hover:not(:disabled) { background: var(--pulse-red); border-color: var(--pulse-red); color: #FFFFFF; }
.p-slider-nav button:disabled { opacity: 0.35; cursor: default; }
.p-slider-nav svg { width: 18px; height: 18px; }
.p-slider-track { margin-top: clamp(32px, 4vw, 48px); display: grid; grid-auto-flow: column; grid-auto-columns: minmax(300px, calc((100% - 40px) / 3)); gap: 20px; overflow-x: auto; scroll-snap-type: x mandatory; scroll-padding-left: 0; padding-bottom: 12px; scrollbar-width: thin; scrollbar-color: var(--border-strong) transparent; }
.p-slider-track:focus-visible { outline: 2px solid var(--pulse-red); outline-offset: 4px; }
.p-slide { scroll-snap-align: start; display: flex; flex-direction: column; min-width: 0; background: #FFFFFF; border: 1px solid var(--border-hairline); border-radius: var(--r-lg); overflow: hidden; }
.p-band--paper .p-slide { border-color: var(--border-hairline); }
.p-slide .p-mock { margin: 0; height: 176px; border-radius: 0; }
.p-slide-body { padding: 24px 26px 28px; }
.p-slide-body p { margin-top: 8px; font-size: 15px; line-height: 1.65; }
.p-sample { margin-top: 14px; font-size: 12px !important; color: var(--text-muted); }

/* Extra mock pieces */
.p-mock svg { display: block; width: 100%; height: 118px; }
.p-mock-shifts { padding: 12px 16px 0; display: grid; gap: 10px; }
.p-mock-shifts div { display: grid; grid-template-columns: 52px 1fr; gap: 10px; align-items: center; font-size: 11px; color: var(--c-mist); }
.p-mock-shifts span { position: relative; height: 14px; border-radius: 4px; background: rgba(169,188,201,0.12); }
.p-mock-shifts span i { position: absolute; top: 0; bottom: 0; border-radius: 4px; background: rgba(169,188,201,0.45); }
.p-mock-shifts span i.is-red { background: var(--pulse-red); }
.p-mock-meter { padding: 14px 16px 0; }
.p-mock-meter strong { display: block; font-size: 28px; font-weight: 600; color: #FFFFFF; line-height: 1; }
.p-mock-meter small { display: block; margin-top: 6px; font-size: 11px; color: var(--c-mist); }
.p-mock-meter span { display: block; margin-top: 14px; height: 8px; border-radius: 4px; background: rgba(169,188,201,0.16); overflow: hidden; }
.p-mock-meter span i { display: block; height: 100%; width: 0; background: var(--pulse-red); border-radius: 4px; transition: width 1200ms ease 200ms; }
.is-in .p-mock-meter span i, .p-mock-meter span i.is-static { width: var(--w, 90%); }
.p-mock-tags { padding: 14px 16px 0; display: flex; flex-wrap: wrap; gap: 8px; }
.p-mock-tags em { font-style: normal; font-size: 11px; font-weight: 600; padding: 5px 10px; border-radius: 999px; color: #FFFFFF; background: rgba(169,188,201,0.16); }
.p-mock-tags em.is-red { background: var(--pulse-red); }

/* Route lines draw in when revealed */
.pulse-motion .p-draw { stroke-dasharray: 600; stroke-dashoffset: 600; transition: stroke-dashoffset 1600ms ease 200ms; }
.pulse-motion .is-in .p-draw { stroke-dashoffset: 0; }
@media (prefers-reduced-motion: reduce) { .pulse-motion .p-draw { stroke-dashoffset: 0; transition: none; } }

/* Testimonial slider */
.p-quote-slide { padding: 32px 30px; justify-content: space-between; gap: 28px; border-top: 4px solid var(--pulse-red); }
.p-quote-slide blockquote { margin: 0; font-size: 18px; font-weight: 500; font-style: italic; line-height: 1.55; color: var(--text-heading); }
.p-quote-slide blockquote::before { content: "\201C"; display: block; font-size: 48px; line-height: 0.6; font-style: normal; color: var(--pulse-red); margin-bottom: 14px; }
.p-quote-slide figcaption { display: flex; align-items: center; gap: 12px; font-size: 14px; color: var(--text-muted); }
.p-quote-slide figcaption b { display: block; color: var(--text-heading); font-weight: 600; }
.p-avatar { width: 40px; height: 40px; display: grid; place-items: center; border-radius: 50%; background: var(--c-ink); color: #FFFFFF; font-weight: 600; font-size: 15px; }

@media (max-width: 859px) {
  .pg-hero--split .p-wrap { grid-template-columns: 1fr; }
  .pg-badge--a { left: 12px; bottom: 12px; } .pg-badge--b { right: 12px; bottom: 12px; }
  .p-slider-track { grid-auto-columns: 84%; }
  .p-slider-nav { display: none; }
}

/* Inquiry form sections already on the site keep their own styles */
@media (max-width: 859px) {
  .p-final { background-image: url("pulse-map-grid-dark.svg"); }
  .p-facts .p-wrap { grid-template-columns: 1fr 1fr; }
  .p-fact { padding: 28px 20px; }
  .p-fact:nth-child(odd) { border-left: 0; padding-left: 0; }
  .p-fact:nth-child(n+3) { border-top: 1px solid var(--border-hairline); }
  .p-steps, .p-split, .p-grid, .p-grid--3, .p-checks, .p-faq-grid, .p-form-grid { grid-template-columns: 1fr; }
  .p-form-grid .panel { margin-top: -56px; order: -1; }
  .p-form-side { padding-top: 8px; }
  .pg-hero .btn { width: 100%; }
  .p-cta .btn, .p-final .btn { width: 100%; }
  .p-split figure { order: -1; }
  .p-steps { gap: 16px; }
  .p-step { padding: 28px 24px; }
  .p-mock { margin: -28px -24px 24px; }
}

/* 1.5.8 help cards, photo row, single-column checks */
.p-help { margin-top: clamp(32px, 4vw, 48px); display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.p-help-card { display: block; padding: 32px; background: #FFFFFF; border: 1px solid var(--border-hairline); border-radius: var(--r-lg); border-top: 4px solid var(--pulse-red); color: inherit; text-decoration: none; transition: transform .2s ease, box-shadow .2s ease; }
.p-help-card:hover { transform: translateY(-3px); box-shadow: 0 14px 32px rgba(26,43,51,.10); }
.p-help-card svg { width: 26px; height: 26px; color: var(--pulse-red); margin-bottom: 18px; }
.p-help-card p { margin-top: 8px; font-size: 15px; line-height: 1.65; }
.p-help-card span { display: inline-block; margin-top: 18px; font-size: 14px; font-weight: 600; color: var(--pulse-red); }
.p-photos { margin-top: clamp(32px, 4vw, 48px); display: grid; grid-template-columns: 1.4fr 1fr 1.4fr 1fr; gap: 16px; align-items: stretch; }
.p-photos figure { margin: 0; position: relative; overflow: hidden; border-radius: var(--r-lg); aspect-ratio: 3 / 4; background: var(--c-ink); }
.p-photos img { width: 100%; height: 100%; object-fit: cover; display: block; }
.p-photos figcaption { position: absolute; left: 0; right: 0; bottom: 0; padding: 40px 16px 14px; font-size: 13px; font-weight: 600; color: #FFFFFF; background: linear-gradient(transparent, rgba(26,43,51,.82)); }
.p-checks--one { grid-template-columns: 1fr; margin-top: 24px; }
.p-side-h { margin-top: 40px; }
@media (max-width: 859px) {
  .p-help { grid-template-columns: 1fr; gap: 16px; }
  .p-help-card { padding: 26px 24px; }
  .p-photos { grid-template-columns: 1fr 1fr; gap: 12px; }
  .p-photos figure { aspect-ratio: 4 / 5; }
}

/* 1.6.0 real screens, photos, night band */
.p-mock--shot { padding: 0; border-top: 4px solid var(--pulse-red); background: #EEF2F4; }
.p-mock--shot img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: left top; }
.p-step .p-mock--shot { height: 176px; }
.p-wide { margin: clamp(32px, 4vw, 48px) 0 0; border-radius: var(--r-lg); overflow: hidden; }
.p-wide img { display: block; width: 100%; height: auto; aspect-ratio: 21 / 8; object-fit: cover; object-position: 50% 30%; }
.p-grid--shots > div { border-top: 0; padding-top: 0; }
.p-grid-shot { margin-bottom: 22px; border: 1px solid var(--border-hairline); border-top: 4px solid var(--pulse-red); border-radius: var(--r-lg); overflow: hidden; background: #FFFFFF; aspect-ratio: 16 / 9; }
.p-grid-shot img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: left top; }
.pg-photo--wide img { aspect-ratio: 16 / 10; object-fit: cover; }
.p-final { background: var(--c-ink) url("night-traffic.webp") 70% center / cover no-repeat; }
.p-final::before { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(14,24,30,.94) 0%, rgba(14,24,30,.80) 42%, rgba(14,24,30,.25) 100%); }
.p-final .p-wrap { position: relative; }
@media (max-width: 859px) {
  .p-final { background-image: url("night-traffic.webp"); background-position: 72% center; }
  .p-final::before { background: linear-gradient(180deg, rgba(14,24,30,.88) 0%, rgba(14,24,30,.80) 100%); }
  .p-wide img { aspect-ratio: 4 / 3; }
}

/* 1.6.1 product tour */
.p-tour { margin-top: clamp(40px, 5vw, 64px); display: grid; grid-template-columns: minmax(0, 0.82fr) minmax(0, 1.5fr); gap: clamp(28px, 4vw, 56px); align-items: center; }
.p-tour-tabs { display: grid; gap: 4px; }
.p-tour-tab { position: relative; display: grid; grid-template-columns: 44px 1fr; gap: 6px 12px; padding: 22px 22px 26px; text-align: left; font: inherit; color: inherit; background: transparent; border: 1px solid transparent; border-radius: var(--r-lg); cursor: pointer; overflow: hidden; transition: background .25s ease, border-color .25s ease, box-shadow .25s ease; }
.p-tour-tab b { font-size: 14px; font-weight: 600; letter-spacing: .08em; color: var(--c-mist); padding-top: 3px; transition: color .25s ease; }
.p-tour-tab strong { display: block; font-size: 19px; font-weight: 600; color: var(--text-heading); }
.p-tour-tab em { display: block; font-style: normal; font-size: 15px; line-height: 1.65; color: var(--text-body); max-height: 0; opacity: 0; overflow: hidden; transition: max-height .4s ease, opacity .3s ease, margin .3s ease; }
.p-tour-tab:hover { background: rgba(255,255,255,.6); }
.p-tour-tab.is-active { background: #FFFFFF; border-color: var(--border-hairline); box-shadow: 0 18px 40px -28px rgba(26,43,51,.35); }
.p-tour-tab.is-active b { color: var(--pulse-red); }
.p-tour-tab.is-active em { max-height: 160px; opacity: 1; margin-top: 8px; }
.p-tour-tab:focus-visible { outline: 3px solid var(--pulse-red); outline-offset: 2px; }
.p-tour-bar { position: absolute; left: 22px; right: 22px; bottom: 12px; height: 3px; border-radius: 2px; background: rgba(169,188,201,.28); opacity: 0; transition: opacity .25s ease; }
.p-tour-tab.is-active .p-tour-bar { opacity: 1; }
.p-tour-bar i { display: block; height: 100%; width: 0; border-radius: 2px; background: var(--pulse-red); }
.p-tour-stage { position: relative; aspect-ratio: 1020 / 700; border-radius: var(--r-lg); overflow: hidden; background: var(--c-ink) url("pulse-map-grid-dark.svg") center / cover; border: 1px solid rgba(26,43,51,.12); border-bottom: 4px solid var(--pulse-red); box-shadow: 0 40px 80px -40px rgba(26,43,51,.55); }
.p-tour-panel { position: absolute; inset: 0; }
.p-tour-panel.is-active { animation: pTourIn .5s ease both; }
@keyframes pTourIn { from { opacity: 0; transform: scale(1.015); } to { opacity: 1; transform: none; } }
.p-tour-panel > img { display: block; width: 100%; height: 100%; object-fit: cover; }
.p-tour-panel--plan > img { object-position: center top; }
.p-tour-panel--plan.is-active > img { animation: pTourZoom 7s ease-out both; transform-origin: 70% 40%; }
@keyframes pTourZoom { from { transform: scale(1); } to { transform: scale(1.06); } }
.p-tour-chip, .p-tour-note { position: absolute; display: flex; align-items: center; gap: 12px; padding: 12px 16px; background: #FFFFFF; color: var(--text-heading); border-radius: var(--r-md); box-shadow: 0 18px 40px -16px rgba(0,0,0,.45); font-size: 13px; line-height: 1.35; }
.p-tour-chip span, .p-tour-note span { color: var(--text-muted); }
.p-tour-chip b, .p-tour-note b { display: block; color: var(--text-heading); font-size: 14px; font-weight: 600; }
.p-tour-chip em { font-style: normal; }
.p-tour-chip i, .p-tour-note i { flex: none; width: 10px; height: 10px; border-radius: 50%; background: var(--pulse-red); box-shadow: 0 0 0 5px rgba(214,32,60,.18); }
.p-tour-chip--plan { right: 20px; bottom: 20px; }
.p-tour-chip--eta { left: 20px; top: 20px; }
.is-active .p-tour-chip { animation: pTourPop .5s ease .7s both; }
@keyframes pTourPop { from { opacity: 0; transform: translateY(10px) scale(.96); } to { opacity: 1; transform: none; } }
.p-tour-panel--dispatch { display: grid; place-items: center; }
.p-tour-phone { height: 88%; aspect-ratio: 560 / 1050; padding: 8px; border-radius: 30px; background: #0E171C; box-shadow: 0 30px 60px -20px rgba(0,0,0,.7), inset 0 0 0 1px rgba(255,255,255,.08); }
.p-tour-phone img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: top; border-radius: 23px; }
.p-tour-note--a { left: 6%; top: 18%; }
.p-tour-note--b { right: 6%; bottom: 20%; }
.is-active .p-tour-note--a { animation: pTourPop .5s ease .6s both; }
.is-active .p-tour-note--b { animation: pTourPop .5s ease 2.2s both; }
.p-tour-note--b i { background: #FFFFFF; box-shadow: 0 0 0 2px var(--pulse-red) inset, 0 0 0 5px rgba(214,32,60,.18); }
.p-tour-map { position: absolute; inset: 0; width: 100%; height: 100%; }
.p-tour-route-bg { fill: none; stroke: #D6203C; stroke-opacity: .22; stroke-width: 7; stroke-linecap: round; stroke-linejoin: round; }
.p-tour-route { fill: none; stroke: #D6203C; stroke-width: 7; stroke-linecap: round; stroke-linejoin: round; }
.p-tour-start { fill: #FFFFFF; stroke: #1A2B33; stroke-width: 4; }
.p-tour-dot { fill: #D6203C; stroke: #FFFFFF; stroke-width: 3; }
.p-tour-pulse { fill: #D6203C; opacity: .35; transform-box: fill-box; transform-origin: center; animation: pTourPulse 1.8s ease-out infinite; }
.p-tour-pulse--2 { animation-delay: .9s; }
@keyframes pTourPulse { from { transform: scale(.8); opacity: .45; } to { transform: scale(2.8); opacity: 0; } }
@media (max-width: 859px) {
  .p-tour { grid-template-columns: 1fr; gap: 20px; }
  .p-tour-stage { order: -1; aspect-ratio: 4 / 3.4; }
  .p-tour-tab { padding: 16px 16px 22px; }
  .p-tour-bar { left: 16px; right: 16px; bottom: 10px; }
  .p-tour-chip, .p-tour-note { padding: 9px 12px; font-size: 12px; }
  .p-tour-chip b, .p-tour-note b { font-size: 13px; }
  .p-tour-chip--plan { right: 10px; bottom: 10px; } .p-tour-chip--eta { left: 10px; top: 10px; }
  .p-tour-note--a { left: 3%; top: 10%; } .p-tour-note--b { right: 3%; bottom: 12%; }
}
@media (prefers-reduced-motion: reduce) {
  .p-tour-panel.is-active, .p-tour-panel--plan.is-active > img, .is-active .p-tour-chip, .is-active .p-tour-note--a, .is-active .p-tour-note--b, .p-tour-pulse { animation: none; }
}
.p-tour-panel[hidden] { display: none; }
.p-tour-panel--dispatch { display: block; }
.p-tour-phone { position: absolute; top: 7%; bottom: 7%; left: 50%; height: auto; transform: translateX(-50%); }
.p-tour-phone { top: 8%; bottom: auto; height: 128%; }
.p-slide .p-mock--shot, .p-step .p-mock--shot { height: auto; aspect-ratio: 16 / 10; }
.p-grid-shot { aspect-ratio: 16 / 10; }

/* 1.7.0 product, solution and industry pages */
.p-split--rev > :first-child { order: 2; }
.p-split--top { align-items: start; }
.p-split--shot img { aspect-ratio: 16 / 10; border: 1px solid var(--border-hairline); box-shadow: 0 18px 40px rgba(26,43,51,.12); }
.p-help--2 { grid-template-columns: repeat(2, 1fr); }
.p-help-card--cta { background: var(--c-ink); border-color: var(--c-ink); }
.p-help-card--cta h3, .p-help-card--cta p { color: #FFFFFF; }
.p-help-card--cta p { color: #DCE5EA; }
.p-help-card--cta span { color: #FFFFFF; }
@media (max-width: 859px) {
  .p-split--rev > :first-child { order: 0; }
  .p-help--2 { grid-template-columns: 1fr; }
}

/* 1.8.0 industry selector */
.p-ind { margin-top: clamp(32px, 4vw, 48px); display: grid; grid-template-columns: minmax(0, 0.7fr) minmax(0, 1.6fr); gap: clamp(28px, 4vw, 56px); align-items: start; }
.p-ind-tabs { display: grid; gap: 4px; }
.p-ind-tab { position: relative; padding: 20px 22px 20px 26px; text-align: left; font: inherit; font-size: 17px; font-weight: 600; color: var(--text-body); background: transparent; border: 1px solid transparent; border-radius: var(--r-lg); cursor: pointer; transition: background .2s ease, color .2s ease, border-color .2s ease; }
.p-ind-tab::before { content: ""; position: absolute; left: 0; top: 18px; bottom: 18px; width: 3px; border-radius: 2px; background: transparent; transition: background .2s ease; }
.p-ind-tab:hover { color: var(--text-heading); background: var(--c-paper); }
.p-ind-tab.is-active { color: var(--text-heading); background: #FFFFFF; border-color: var(--border-hairline); box-shadow: 0 18px 40px -28px rgba(26,43,51,.35); }
.p-ind-tab.is-active::before { background: var(--pulse-red); }
.p-ind-tab:focus-visible { outline: 3px solid var(--pulse-red); outline-offset: 2px; }
.p-band--paper .p-ind-tab:hover { background: rgba(255,255,255,.6); }
.p-ind-panel { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: clamp(24px, 3vw, 40px); align-items: center; }
.p-ind-panel[hidden] { display: none; }
.p-ind-media { margin: 0; }
.p-ind-media img, .p-ind-media .p-zoom { display: block; width: 100%; }
.p-ind-media img { aspect-ratio: 4 / 3; height: auto; object-fit: cover; border-radius: var(--r-lg); border-bottom: 4px solid var(--pulse-red); }
.p-ind-body h3 { font-size: 22px; line-height: 1.35; }
.p-ind-body p { margin-top: 14px; font-size: 16px; line-height: 1.7; }
.p-ind-tags { margin: 20px 0 0; padding: 0; list-style: none; display: flex; flex-wrap: wrap; gap: 8px; }
.p-ind-tags li { padding: 7px 12px; font-size: 13px; font-weight: 600; color: var(--text-heading); background: var(--c-paper); border: 1px solid var(--border-hairline); border-radius: 999px; }
.p-band--paper .p-ind-tags li { background: #FFFFFF; }
.p-ind-body .link-strong { display: inline-block; margin-top: 24px; }
@media (prefers-reduced-motion: no-preference) { .p-ind-panel:not([hidden]) { animation: p-ind-in .35s ease both; } }
@keyframes p-ind-in { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
@media (max-width: 1080px) { .p-ind-panel { grid-template-columns: 1fr; } }
@media (max-width: 859px) {
  .p-ind { grid-template-columns: 1fr; }
  .p-ind-tabs { display: flex; gap: 8px; overflow-x: auto; scrollbar-width: none; margin-inline: calc(var(--gutter, 20px) * -1); padding: 2px var(--gutter, 20px); }
  .p-ind-tabs::-webkit-scrollbar { display: none; }
  .p-ind-tab { flex: 0 0 auto; padding: 10px 16px; font-size: 14px; border: 1px solid var(--border-hairline); border-radius: 999px; background: #FFFFFF; }
  .p-ind-tab::before { display: none; }
  .p-ind-tab.is-active { color: #FFFFFF; background: var(--c-ink); border-color: var(--c-ink); box-shadow: none; }
}

/* 1.8.0 screenshot lightbox */
.p-zoom { display: block; width: 100%; padding: 0; margin: 0; font: inherit; color: inherit; background: none; border: 0; border-radius: var(--r-lg); cursor: zoom-in; position: relative; }
.p-zoom::after { content: ""; position: absolute; right: 12px; bottom: 12px; width: 34px; height: 34px; border-radius: 50%; background: rgba(26,43,51,.82) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M15 3h6v6M9 21H3v-6M21 3l-7 7M3 21l7-7'/%3E%3C/svg%3E") center / 16px no-repeat; opacity: 0; transition: opacity .2s ease; }
.p-zoom:hover::after, .p-zoom:focus-visible::after { opacity: 1; }
.p-zoom:focus-visible { outline: 3px solid var(--pulse-red); outline-offset: 3px; }
@media (hover: none) { .p-zoom::after { opacity: 1; } }
.p-lightbox { width: min(1040px, 92vw); max-width: none; max-height: 92vh; padding: 0; border: 0; background: transparent; overflow: visible; }
.p-lightbox::backdrop { background: rgba(14,24,30,.88); }
.p-lightbox figure { margin: 0; }
.p-lightbox img { display: block; width: 100%; height: auto; max-height: 78vh; object-fit: contain; border-radius: var(--r-lg); background: #FFFFFF; }
.p-lightbox figcaption { margin-top: 12px; font-size: 14px; color: #DCE5EA; text-align: center; }
.p-lightbox button { position: absolute; width: 44px; height: 44px; font-family: inherit; font-size: 26px; font-weight: 400; line-height: 1; display: grid; place-items: center; color: #FFFFFF; background: rgba(26,43,51,.9); border: 1px solid rgba(255,255,255,.2); border-radius: 50%; cursor: pointer; }
.p-lightbox button:focus-visible { outline: 3px solid var(--pulse-red); outline-offset: 2px; }
.p-lb-close { top: -54px; right: 0; }
.p-lb-prev { left: -22px; top: 42%; }
.p-lb-next { right: -22px; top: 42%; }
@media (max-width: 859px) { .p-lb-prev { left: 6px; } .p-lb-next { right: 6px; } }

/* 1.8.1 coming-soon list: open marker instead of a check */
.p-checks--soon > div::before { background: none; width: 12px; height: 12px; top: 35px; left: 2px; border: 2px solid var(--c-mist); border-radius: 50%; }

/* ============ 1.9.0 restructure components ============ */
.p-num, .p-receipt, .p-board, .p-facts strong { font-variant-numeric: tabular-nums; }

/* Stacked hero: text above one wide visual */
.pg-hero--stack .p-wrap { display: block; }
.pg-hero-text { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr); gap: clamp(28px, 4vw, 64px); align-items: end; }
.pg-hero-text--single { grid-template-columns: 1fr; }
.pg-hero-text p { margin-top: 0; }
.pg-hero-text--single p { margin-top: 24px; }
.pg-hero .pg-btns { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 28px; }
.pg-hero .pg-btns .btn { margin-top: 0; }
.btn--onDark { background: transparent; color: #FFFFFF; border: 1px solid rgba(255,255,255,.45); }
.btn--onDark:hover { color: #FFFFFF; border-color: #FFFFFF; }
.pg-shot { margin: clamp(40px, 5vw, 64px) 0 0; }
.pg-shot img, .pg-shot .p-zoom { display: block; width: 100%; }
.pg-shot img { height: auto; aspect-ratio: 16 / 8; object-fit: cover; object-position: top left; border-radius: var(--r-lg); border-bottom: 4px solid var(--pulse-red); box-shadow: 0 30px 60px -30px rgba(0,0,0,.6); }

/* Section head with side text */
.p-head { display: grid; grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr); gap: clamp(28px, 4vw, 64px); align-items: end; }
.p-head .p-lede { margin-top: 0; }
.p-side { display: grid; grid-template-columns: minmax(0, 0.75fr) minmax(0, 1.6fr); gap: clamp(28px, 4vw, 64px); align-items: start; }

/* Route-line timeline: five moments */
.p-timeline { margin-top: clamp(36px, 4vw, 56px); }
.p-timeline svg { display: block; width: 100%; height: auto; overflow: visible; }
.p-timeline .tl-rest { stroke: var(--c-mist); stroke-width: 1.5; stroke-dasharray: 4 6; fill: none; }
.p-timeline .tl-red { stroke: var(--pulse-red); stroke-width: 3; fill: none; stroke-linecap: round; stroke-dasharray: 1400; stroke-dashoffset: 1400; transition: stroke-dashoffset 2.2s cubic-bezier(.22,1,.36,1) .2s; }
.p-timeline.is-in .tl-red, .pulse-motion .p-timeline.is-in .tl-red { stroke-dashoffset: 0; }
.p-timeline .tl-pin { fill: #FFFFFF; stroke: var(--pulse-red); stroke-width: 2.5; }
.p-steps5 { margin-top: 28px; display: grid; grid-template-columns: repeat(5, 1fr); gap: 24px; }
.p-steps5 b, .p-steps4 b { display: block; font-size: 13px; font-weight: 700; letter-spacing: .08em; color: var(--pulse-red); }
.p-steps5 h3, .p-steps4 h3 { margin-top: 8px; font-size: 17px; }
.p-steps5 p, .p-steps4 p { margin-top: 6px; font-size: 15px; line-height: 1.6; }
.p-steps5 small { display: block; margin-top: 10px; font-size: 13px; color: var(--text-heading); }
.p-steps5 small i { font-style: normal; color: var(--text-body); }
@media (prefers-reduced-motion: reduce) { .p-timeline .tl-red { transition: none; stroke-dashoffset: 0; } }

/* Four steps with route connectors */
.p-steps4 { margin-top: clamp(32px, 4vw, 48px); display: grid; grid-template-columns: repeat(4, 1fr); gap: 32px; position: relative; }
.p-steps4 > div { position: relative; padding-top: 28px; }
.p-steps4 > div::before { content: ""; position: absolute; top: 6px; left: 0; right: -32px; height: 3px; background: var(--border-hairline); }
.p-steps4 > div:last-child::before { right: 0; }
.p-steps4 > div::after { content: ""; position: absolute; top: 0; left: 0; width: 15px; height: 15px; border-radius: 50%; background: #FFFFFF; border: 3px solid var(--pulse-red); }
.p-steps4 > div:first-child::before { background: var(--pulse-red); }

/* Live board */
.p-board { background: #FFFFFF; border: 1px solid var(--border-hairline); border-radius: var(--r-lg); box-shadow: 0 24px 50px -32px rgba(26,43,51,.35); overflow: hidden; }
.p-board-clock { display: grid; grid-template-columns: auto 1fr auto; gap: 18px; align-items: center; padding: 18px 22px; background: var(--c-paper); border-bottom: 1px solid var(--border-hairline); }
.p-board-clock label { font-size: 14px; font-weight: 600; color: var(--text-heading); }
.p-board-clock output { min-width: 82px; text-align: right; font-size: 20px; font-weight: 600; color: var(--text-heading); }
.p-board input[type=range] { width: 100%; accent-color: var(--c-ink); }
.p-board-row { display: grid; grid-template-columns: 14px 86px 1fr 1.3fr 118px; gap: 14px; align-items: center; padding: 16px 22px; border-top: 1px solid var(--border-hairline); font-size: 14px; color: var(--text-heading); transition: background .3s ease; }
.p-board-row:first-of-type { border-top: 0; }
.p-board-row i { width: 12px; height: 12px; border-radius: 50%; background: var(--c-mist); transition: background .3s ease; }
.p-board-row span { color: var(--text-body); }
.p-board-row em { font-style: normal; font-weight: 600; text-align: right; transition: color .3s ease; }
.p-board-row[data-state="ontime"] i { background: #3E9B5F; } .p-board-row[data-state="ontime"] em { color: #2E7D4F; }
.p-board-row[data-state="window"] i { background: #E5A72C; } .p-board-row[data-state="window"] em { color: #A86F00; }
.p-board-row[data-state="late"] { background: rgba(214,32,60,.05); } .p-board-row[data-state="late"] i { background: var(--pulse-red); } .p-board-row[data-state="late"] em { color: var(--pulse-red); }
.p-board-key { padding: 14px 22px; font-size: 13px; color: var(--text-body); border-top: 1px solid var(--border-hairline); }

/* When / Pulse rule cards */
.p-rules { margin-top: clamp(32px, 4vw, 48px); display: grid; grid-template-columns: repeat(2, 1fr); gap: 20px; }
.p-rules > div { padding: 26px 28px; background: #FFFFFF; border: 1px solid var(--border-hairline); border-radius: var(--r-lg); }
.p-band--paper .p-rules > div { background: #FFFFFF; }
.p-rules small { display: block; font-size: 13px; font-weight: 600; color: var(--text-body); }
.p-rules small + h3 { margin-top: 4px; }
.p-rules .p-then { margin-top: 18px; padding-top: 16px; border-top: 1px solid var(--border-hairline); }
.p-rules .p-then small { color: var(--pulse-red); }
.p-rules .p-then p { margin-top: 4px; color: var(--text-heading); }

/* Screenshot with pins */
.p-pinned { position: relative; margin: 0; }
.p-pinned img, .p-pinned .p-zoom { display: block; width: 100%; }
.p-pinned img { height: auto; border-radius: var(--r-lg); border: 1px solid var(--border-hairline); box-shadow: 0 18px 40px rgba(26,43,51,.12); }
.p-pin { position: absolute; z-index: 2; width: 28px; height: 28px; margin: -14px 0 0 -14px; border-radius: 50%; background: var(--pulse-red); color: #FFFFFF; font-size: 13px; font-weight: 700; display: grid; place-items: center; box-shadow: 0 0 0 6px rgba(214,32,60,.2); pointer-events: none; }
.p-pinned figcaption { margin-top: 14px; display: grid; gap: 6px; font-size: 14px; line-height: 1.55; }
.p-pinned figcaption b { color: var(--pulse-red); margin-right: 6px; }
.p-lines p + p { margin-top: 10px; }
.p-lines { margin-top: 20px; }

/* Receipt */
.p-receipt-wrap { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 0.6fr); gap: 28px; align-items: start; }
.p-receipt { padding: 26px 30px; background: #FFFFFF; border: 1px solid var(--border-hairline); border-radius: var(--r-lg); box-shadow: 0 24px 50px -32px rgba(26,43,51,.35); }
.p-receipt .p-ind-tabs { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 18px; }
.p-receipt .p-ind-tab { flex: 0 0 auto; padding: 9px 16px; font-size: 14px; border: 1px solid var(--border-hairline); border-radius: 999px; background: #FFFFFF; }
.p-receipt .p-ind-tab::before { display: none; }
.p-receipt .p-ind-tab.is-active { color: #FFFFFF; background: var(--c-ink); border-color: var(--c-ink); box-shadow: none; }
.p-rc-line { display: flex; justify-content: space-between; gap: 16px; padding: 10px 0; border-top: 1px solid var(--border-hairline); font-size: 15px; color: var(--text-heading); }
.p-rc-line:first-child { border-top: 0; }
.p-rc-line span:last-child { white-space: nowrap; }
.p-rc-total { border-top: 2px solid var(--c-ink); margin-top: 4px; padding-top: 14px; font-weight: 700; font-size: 17px; }
.p-receipt small { display: block; margin-top: 14px; font-size: 12px; color: var(--text-body); }
.p-rollup { display: grid; gap: 0; }
.p-rollup p { margin: 0 0 12px; font-size: 14px; font-weight: 600; color: var(--text-heading); }
.p-rollup div { position: relative; padding: 14px 16px 14px 40px; font-size: 15px; font-weight: 600; color: var(--text-heading); background: #FFFFFF; border: 1px solid var(--border-hairline); border-radius: 10px; }
.p-rollup div + div { margin-top: 18px; }
.p-rollup div::before { content: ""; position: absolute; left: 16px; top: 50%; width: 12px; height: 12px; margin-top: -6px; border-radius: 50%; border: 2.5px solid var(--pulse-red); background: #FFFFFF; }
.p-rollup div + div::after { content: ""; position: absolute; left: 22px; top: -19px; width: 2px; height: 18px; background: var(--pulse-red); }

/* Plain three-column text grid */
.p-plain { margin-top: clamp(28px, 3vw, 40px); display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px 40px; }
.p-plain h3 { font-size: 16px; }
.p-plain p { margin-top: 4px; font-size: 15px; line-height: 1.6; }

/* Trip XChange flow */
.p-flow { margin-top: clamp(32px, 4vw, 48px); display: grid; grid-template-columns: 170px 1fr 170px; gap: 20px; align-items: stretch; }
.p-flow-co { display: flex; flex-direction: column; justify-content: center; padding: 20px; border-radius: var(--r-lg); background: var(--c-ink); color: #FFFFFF; }
.p-flow-co b { font-size: 17px; font-weight: 600; color: #FFFFFF; }
.p-flow-co span { font-size: 13px; color: var(--c-mist); margin-top: 4px; }
.p-flow-steps { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; position: relative; }
.p-flow-step { position: relative; padding: 20px; text-align: left; font: inherit; color: inherit; background: #FFFFFF; border: 1px solid var(--border-hairline); border-radius: var(--r-lg); cursor: pointer; transition: border-color .3s ease, box-shadow .3s ease, transform .3s ease; }
.p-flow-step b { display: block; font-size: 13px; font-weight: 700; letter-spacing: .08em; color: var(--c-mist); transition: color .3s ease; }
.p-flow-step strong { display: block; margin-top: 6px; font-size: 17px; font-weight: 600; color: var(--text-heading); }
.p-flow-step span { display: block; margin-top: 6px; font-size: 14px; line-height: 1.55; color: var(--text-body); }
.p-flow-step.is-on { border-color: var(--pulse-red); box-shadow: 0 18px 40px -26px rgba(214,32,60,.55); transform: translateY(-3px); }
.p-flow-step.is-on b { color: var(--pulse-red); }
.p-flow-step:focus-visible { outline: 3px solid var(--pulse-red); outline-offset: 2px; }
.p-flow-line { grid-column: 1 / -1; height: 3px; margin-top: 4px; background: var(--border-hairline); border-radius: 2px; position: relative; overflow: hidden; }
.p-flow-line i { position: absolute; left: 0; top: 0; bottom: 0; width: 25%; background: var(--pulse-red); border-radius: 2px; transition: width .6s ease; }

/* Two sides */
.p-two { margin-top: clamp(28px, 3vw, 40px); display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.p-two > div { padding: 28px; border: 1px solid var(--border-hairline); border-radius: var(--r-lg); background: #FFFFFF; }
.p-two ul { margin: 14px 0 0; padding: 0; list-style: none; }
.p-two li { position: relative; padding: 9px 0 9px 26px; border-top: 1px solid var(--border-hairline); font-size: 15px; }
.p-two li:first-child { border-top: 0; }
.p-two li::before { content: ""; position: absolute; left: 0; top: 15px; width: 10px; height: 10px; border-radius: 50%; border: 2.5px solid var(--pulse-red); }

/* Tables */
.p-table { margin-top: clamp(28px, 3vw, 40px); width: 100%; border-collapse: collapse; font-size: 15px; background: #FFFFFF; border: 1px solid var(--border-hairline); border-radius: var(--r-lg); overflow: hidden; }
.p-table th, .p-table td { padding: 16px 20px; text-align: left; vertical-align: top; border-top: 1px solid var(--border-hairline); line-height: 1.55; }
.p-table thead th { border-top: 0; background: var(--c-paper); font-size: 14px; font-weight: 600; color: var(--text-heading); }
.p-table tbody th { font-weight: 600; color: var(--text-heading); width: 22%; }
.p-table td { color: var(--text-body); }
.p-table a { font-weight: 600; }
.p-table--find td:last-child { width: 34%; }
.p-table-scroll { overflow-x: auto; }

/* Photo band */
.p-photoband { position: relative; height: clamp(260px, 38vw, 480px); overflow: hidden; }
.p-photoband img { width: 100%; height: 100%; object-fit: cover; display: block; }

/* Roles */
.p-roles { margin-top: clamp(32px, 4vw, 48px); display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
.p-role { display: block; color: inherit; text-decoration: none; }
.p-role img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; object-position: top left; border-radius: var(--r-lg); border: 1px solid var(--border-hairline); }
.p-role h3 { margin-top: 16px; font-size: 17px; }
.p-role p { margin-top: 4px; font-size: 15px; line-height: 1.6; color: var(--text-body); }
.p-role span { display: inline-block; margin-top: 10px; font-size: 14px; font-weight: 600; color: var(--pulse-red); }
.p-role:hover h3 { color: var(--pulse-red); }

/* Directory with route dividers */
.p-dir { margin-top: clamp(28px, 3vw, 40px); }
.p-dir-group { position: relative; display: grid; grid-template-columns: 240px 1fr; gap: 32px; padding: 30px 0 26px; }
.p-dir-group::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 1.5px; background: var(--border-hairline); }
.p-dir-group::after { content: ""; position: absolute; left: 0; top: -1px; width: 120px; height: 3px; background: var(--pulse-red); border-radius: 2px; box-shadow: 120px 0 0 -0px transparent; }
.p-dir-group h3 { font-size: 18px; }
.p-dir-items { display: grid; grid-template-columns: repeat(2, 1fr); gap: 18px 40px; }
.p-dir-items a { display: grid; grid-template-columns: 26px 1fr; gap: 12px; color: inherit; text-decoration: none; }
.p-dir-items svg { width: 22px; height: 22px; color: var(--pulse-red); margin-top: 2px; }
.p-dir-items b { display: block; font-size: 16px; font-weight: 600; color: var(--text-heading); }
.p-dir-items span { display: block; margin-top: 2px; font-size: 14px; line-height: 1.55; color: var(--text-body); }
.p-dir-items a:hover b { color: var(--pulse-red); }

/* Doors */
.p-doors { margin-top: clamp(32px, 4vw, 48px); display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.p-door { display: block; color: inherit; text-decoration: none; }
.p-door img { display: block; width: 100%; aspect-ratio: 4 / 5; object-fit: cover; border-radius: var(--r-lg); border-bottom: 4px solid var(--pulse-red); }
.p-door h3 { margin-top: 18px; font-size: 22px; }
.p-door p { margin-top: 6px; font-size: 15px; line-height: 1.6; color: var(--text-body); }
.p-door span { display: inline-block; margin-top: 10px; font-size: 14px; font-weight: 600; color: var(--pulse-red); }
.p-door:hover h3 { color: var(--pulse-red); }

/* Quiet chips and text links */
.p-quiet { margin-top: 20px; display: flex; flex-wrap: wrap; gap: 8px; }
.p-quiet span, .p-quiet a { padding: 8px 14px; font-size: 14px; font-weight: 600; color: var(--text-heading); border: 1px solid var(--border-hairline); border-radius: 999px; background: #FFFFFF; text-decoration: none; }
.p-quiet a:hover { border-color: var(--pulse-red); color: var(--pulse-red); }

/* Phone visual */
.p-phone img { display: block; width: 100%; max-width: 340px; margin-left: auto; aspect-ratio: 4 / 5; object-fit: cover; border-radius: 28px; border: 1px solid var(--border-hairline); box-shadow: 0 30px 60px -34px rgba(26,43,51,.5); }

@media (max-width: 1080px) {
  .p-steps5 { grid-template-columns: repeat(3, 1fr); }
  .p-roles { grid-template-columns: repeat(2, 1fr); }
  .p-flow { grid-template-columns: 1fr; }
  .p-flow-steps { grid-template-columns: repeat(2, 1fr); }
  .p-receipt-wrap { grid-template-columns: 1fr; }
}
@media (max-width: 859px) {
  .pg-hero-text, .p-head, .p-side, .p-rules, .p-two, .p-plain, .p-dir-group, .p-dir-items, .p-doors { grid-template-columns: 1fr; }
  .p-dir-group { gap: 14px; }
  .p-steps5, .p-steps4 { grid-template-columns: 1fr; gap: 22px; }
  .p-steps4 > div::before { display: none; }
  .p-timeline svg { display: none; }
  .p-steps5 > div { padding-left: 20px; border-left: 3px solid var(--pulse-red); }
  .p-roles { grid-template-columns: 1fr 1fr; gap: 16px; }
  .p-board-row { grid-template-columns: 12px 64px 1fr 92px; font-size: 13px; padding: 14px 16px; }
  .p-board-row span:nth-of-type(2) { display: none; }
  .p-flow-steps { grid-template-columns: 1fr; }
  .pg-shot img { aspect-ratio: 4 / 3; }
  .p-door img { aspect-ratio: 16 / 10; }
  .p-phone img { margin: 0 auto; }
}
.p-band--tight { padding-block: clamp(36px, 4vw, 56px); }
.p-side > div, .p-head > *, .p-split > div { min-width: 0; }
.p-plain--2 { grid-template-columns: 1fr 1fr; margin-top: 0; }
@media (max-width: 859px) { .p-plain--2 { grid-template-columns: 1fr; } .p-table th, .p-table td { padding: 12px 14px; font-size: 14px; } }
.p-split .p-pinned img, .p-pinned img { aspect-ratio: auto; object-fit: contain; }
.pg-shot--sm { max-width: 880px; }
.pg-shot--sm img { aspect-ratio: auto; }

/* 1.9.1 hero product slider */
.p-hs { margin-top: clamp(40px, 5vw, 64px); }
.p-hs-stage { position: relative; aspect-ratio: 16 / 8; border-radius: var(--r-lg); overflow: hidden; background: #0E181E; border-bottom: 4px solid var(--pulse-red); box-shadow: 0 30px 60px -30px rgba(0,0,0,.6); touch-action: pan-y; }
.p-hs-slide { position: absolute; inset: 0; margin: 0; opacity: 0; visibility: hidden; transition: opacity .6s ease, visibility 0s linear .6s; }
.p-hs-slide.is-on { opacity: 1; visibility: visible; transition: opacity .6s ease; }
.p-hs-slide img, .p-hs-slide .p-zoom { display: block; width: 100%; height: 100%; border-radius: 0; }
.p-hs-slide img { object-fit: cover; object-position: top left; }
.p-hs-tabs { margin-top: 18px; display: grid; grid-template-columns: repeat(5, 1fr); gap: 12px; }
.p-hs-tab { position: relative; padding: 14px 0 0; text-align: left; font: inherit; background: none; border: 0; cursor: pointer; color: #C9D6DE; }
.p-hs-tab::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 3px; border-radius: 2px; background: rgba(169,188,201,.28); }
.p-hs-tab i { position: absolute; left: 0; top: 0; height: 3px; width: 0; border-radius: 2px; background: var(--pulse-red); }
.p-hs-tab b { display: block; font-size: 15px; font-weight: 600; color: #FFFFFF; }
.p-hs-tab span { display: block; margin-top: 2px; font-size: 13px; line-height: 1.5; }
.p-hs-tab.is-on i { width: 100%; }
.p-hs-tab:not(.is-on) b { color: #C9D6DE; }
.p-hs-tab:focus-visible { outline: 3px solid var(--pulse-red); outline-offset: 4px; border-radius: 4px; }
@media (max-width: 859px) {
  .p-hs-stage { aspect-ratio: 4 / 3; }
  .p-hs-tabs { display: flex; overflow-x: auto; gap: 16px; scrollbar-width: none; }
  .p-hs-tabs::-webkit-scrollbar { display: none; }
  .p-hs-tab { flex: 0 0 auto; min-width: 140px; }
  .p-hs-tab span { display: none; }
  .p-board-row { grid-template-columns: 12px 78px 1fr 92px; }
  .p-board-row strong { white-space: nowrap; }
}

/* 2.0 static components */
.p-rulebook { margin-top: clamp(32px, 4vw, 48px); display: grid; gap: 0; }
.p-rulebook > div { display: grid; grid-template-columns: 64px 1fr; gap: 20px; padding: 26px 0; border-top: 1px solid var(--border-hairline); }
.p-rulebook > div:last-child { border-bottom: 1px solid var(--border-hairline); }
.p-rulebook b { font-size: 14px; font-weight: 700; letter-spacing: .08em; color: var(--pulse-red); padding-top: 6px; }
.p-rulebook h3 { font-size: 22px; font-weight: 500; line-height: 1.3; }
.p-rulebook p { margin-top: 8px; font-size: 15px; max-width: 64ch; }
.p-names { margin-top: 22px; display: flex; flex-wrap: wrap; gap: 10px 14px; }
.p-names span { padding: 10px 16px; font-size: 15px; font-weight: 600; color: var(--text-heading); background: #FFFFFF; border: 1px solid var(--border-hairline); border-radius: 8px; }
.p-names span.is-soon { color: var(--text-body); border-style: dashed; font-weight: 500; }
.p-status { margin-top: clamp(28px, 3vw, 40px); display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.p-status > div { padding: 24px 28px; border: 1px solid var(--border-hairline); border-radius: var(--r-lg); background: #FFFFFF; }
.p-status h3 { font-size: 15px; letter-spacing: .04em; text-transform: uppercase; font-weight: 600; }
.p-status ul { margin: 14px 0 0; padding: 0; list-style: none; }
.p-status li { padding: 9px 0; border-top: 1px solid var(--border-hairline); font-size: 15px; color: var(--text-heading); }
.p-status li span { color: var(--text-body); }
.p-status--soon h3 { color: var(--text-body); }
.p-offers { margin-top: clamp(32px, 4vw, 48px); display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.p-offers > div { padding: 28px; border-top: 4px solid var(--pulse-red); border-radius: var(--r-lg); background: #FFFFFF; border-left: 1px solid var(--border-hairline); border-right: 1px solid var(--border-hairline); border-bottom: 1px solid var(--border-hairline); }
.p-offers b { display: block; font-size: 13px; font-weight: 700; letter-spacing: .08em; color: var(--pulse-red); }
.p-offers h3 { margin-top: 8px; font-size: 19px; }
.p-offers p { margin-top: 10px; font-size: 15px; }
.p-board--static .p-board-row { cursor: default; }
.p-story { }
.p-story p + p { margin-top: 14px; }
.p-kv { margin-top: 24px; display: grid; gap: 12px; }
.p-kv div { display: grid; grid-template-columns: 180px 1fr; gap: 16px; padding: 12px 0; border-top: 1px solid var(--border-hairline); font-size: 15px; }
.p-kv dt { font-weight: 600; color: var(--text-heading); }
.p-kv dd { margin: 0; }
.p-lead { font-size: clamp(19px, 1.8vw, 22px); line-height: 1.6; color: var(--text-heading); font-weight: 400; max-width: 60ch; }
.p-join { margin-top: clamp(28px, 3vw, 40px); counter-reset: j; display: grid; grid-template-columns: repeat(2, 1fr); gap: 14px 40px; }
.p-join li { list-style: none; counter-increment: j; display: grid; grid-template-columns: 36px 1fr; gap: 12px; padding: 12px 0; border-top: 1px solid var(--border-hairline); font-size: 15px; }
.p-join li::before { content: counter(j, decimal-leading-zero); font-weight: 700; color: var(--pulse-red); letter-spacing: .06em; }
.p-join ul, .p-join ol { padding: 0; margin: 0; }
@media (max-width: 859px) { .p-status, .p-offers, .p-join { grid-template-columns: 1fr; } .p-rulebook > div { grid-template-columns: 44px 1fr; } .p-kv div { grid-template-columns: 1fr; gap: 2px; } }
.p-two--3 { grid-template-columns: repeat(3, 1fr); }
.p-plain--4 { grid-template-columns: repeat(4, 1fr); }
@media (max-width: 1080px) { .p-plain--4 { grid-template-columns: 1fr 1fr; } }
@media (max-width: 859px) { .p-two--3, .p-plain--4 { grid-template-columns: 1fr; } }
.p-pinned--tall { max-width: 420px; margin-left: auto; }
.p-split--top .p-pinned img { aspect-ratio: auto; object-fit: contain; }
@media (max-width: 859px) { .p-pinned--tall { margin-left: 0; } }
.p-pinned-img { position: relative; }

/* ============ 2.1.0 homepage motion ============ */
/* Living board */
.lb { margin-top: clamp(40px, 5vw, 64px); background: #FFFFFF; border-radius: var(--r-lg); overflow: hidden; border-bottom: 4px solid var(--pulse-red); box-shadow: 0 40px 80px -40px rgba(0,0,0,.7); color: var(--text-heading); font-variant-numeric: tabular-nums; }
.lb-bar { display: flex; align-items: center; gap: 14px; height: 44px; padding: 0 18px; border-bottom: 1px solid var(--border-hairline); font-size: 14px; }
.lb-dots { display: flex; gap: 6px; } .lb-dots i { width: 9px; height: 9px; border-radius: 50%; background: var(--border-strong); }
.lb-clock { margin-left: auto; font-weight: 600; color: var(--text-body); }
.lb-body { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(0, 1fr); height: clamp(320px, 34vw, 440px); }
.lb-map { position: relative; background: #EEF2F4; overflow: hidden; }
.lb-map svg { position: absolute; inset: 0; width: 100%; height: 100%; }
.lb-streets path { fill: none; stroke: #FFFFFF; stroke-width: 9; stroke-linecap: round; }
.lb-streets .lb-ave { stroke-width: 14; stroke: #FAFBFC; }
.lb-route { fill: none; stroke: var(--pulse-red); stroke-width: 4; stroke-linecap: round; stroke-dasharray: 1; stroke-dashoffset: 1; opacity: 0; }
.lb-others circle { fill: #8FA3B1; stroke: #FFFFFF; stroke-width: 2.5; }
.lb-pin { opacity: 0; transform-origin: 430px 150px; transform-box: view-box; transition: opacity .4s ease, transform .4s ease; transform: scale(.4); }
.lb-pin circle { fill: var(--c-ink); } .lb-pin .lb-pin-halo { fill: rgba(26,43,51,.15); }
.lb-car { opacity: 0; transition: opacity .4s ease; }
.lb-car circle { fill: var(--pulse-red); stroke: #FFFFFF; stroke-width: 2.5; } .lb-car .lb-car-halo { fill: rgba(214,32,60,.18); stroke: none; }
.lb-car--b circle { fill: #2E7D4F; } .lb-car--b .lb-car-halo { fill: rgba(46,125,79,.18); }
.lb-alert { position: absolute; left: 16px; bottom: 16px; max-width: 290px; padding: 12px 14px 12px 16px; background: #FFFFFF; border-radius: 10px; border-left: 4px solid var(--pulse-red); box-shadow: 0 14px 30px -14px rgba(26,43,51,.45); font-size: 13px; line-height: 1.45; opacity: 0; transform: translateY(12px); transition: opacity .4s ease, transform .4s ease, border-color .4s ease; }
.lb-alert b { display: block; font-size: 14px; color: var(--pulse-red); }
.lb-alert span { display: block; color: var(--text-body); }
.lb-alert-fixed { display: none !important; }
.lb-list { border-left: 1px solid var(--border-hairline); overflow: hidden; }
.lb-head { display: grid; grid-template-columns: 1fr 58px 104px; gap: 10px; padding: 12px 16px 12px 34px; font-size: 12px; font-weight: 600; color: var(--text-body); background: var(--c-paper); border-bottom: 1px solid var(--border-hairline); }
.lb-row { position: relative; display: grid; grid-template-columns: 1fr 58px 104px; gap: 10px; align-items: center; padding: 12px 16px 12px 34px; border-bottom: 1px solid var(--border-hairline); font-size: 14px; transition: background .4s ease; }
.lb-row > i { position: absolute; left: 14px; top: 50%; width: 9px; height: 9px; margin-top: -4.5px; border-radius: 50%; background: #3E9B5F; transition: background .4s ease; }
.lb-row b { display: block; font-weight: 600; } .lb-row small { display: block; font-size: 12px; color: var(--text-body); }
.lb-pill { justify-self: end; font-style: normal; font-size: 12px; font-weight: 600; padding: 4px 9px; border-radius: 999px; background: #E8F3EC; color: #2E7D4F; white-space: nowrap; transition: background .4s ease, color .4s ease; }
.lb-pill span { display: none; }
.lb-row--new { max-height: 0; padding-top: 0; padding-bottom: 0; opacity: 0; border-bottom-width: 0; transition: max-height .5s ease, padding .5s ease, opacity .5s ease, background .4s ease; }
.lb-row--new .lb-pill { background: #EEF1F3; color: var(--text-heading); }
.lb-row--new > i { background: var(--c-mist); }
/* steps */
.lb[data-step]:not([data-step="0"]) .lb-row--new { max-height: 70px; padding-top: 12px; padding-bottom: 12px; opacity: 1; border-bottom-width: 1px; }
.lb[data-step]:not([data-step="0"]) .lb-pin { opacity: 1; transform: scale(1); }
.lb[data-step="1"] .lb-pill span[data-s="1"], .lb[data-step="2"] .lb-pill span[data-s="2"], .lb[data-step="3"] .lb-pill span[data-s="3"], .lb[data-step="4"] .lb-pill span[data-s="4"], .lb[data-step="5"] .lb-pill span[data-s="5"] { display: inline; }
.lb[data-step="2"] .lb-row--new > i { background: #3E9B5F; }
.lb[data-step="3"] .lb-row--new > i { background: #E5A72C; } .lb[data-step="3"] .lb-row--new .lb-pill { background: #FDF3DE; color: #A86F00; }
.lb[data-step="4"] .lb-row--new { background: rgba(214,32,60,.06); } .lb[data-step="4"] .lb-row--new > i { background: var(--pulse-red); } .lb[data-step="4"] .lb-row--new .lb-pill { background: var(--pulse-red); color: #FFFFFF; }
.lb[data-step="5"] .lb-row--new > i { background: #3E9B5F; } .lb[data-step="5"] .lb-row--new .lb-pill { background: #E8F3EC; color: #2E7D4F; }
.lb[data-step="4"] .lb-alert, .lb[data-step="5"] .lb-alert { opacity: 1; transform: none; }
.lb[data-step="5"] .lb-alert { border-left-color: #2E7D4F; }
.lb[data-step="5"] .lb-alert b { color: #2E7D4F; }
.lb[data-step="5"] .lb-alert-late { display: none !important; } .lb[data-step="5"] .lb-alert-fixed { display: block !important; }
.lb[data-step="4"] .lb-car--a .lb-car-halo { animation: lb-pulse 1.2s ease-in-out infinite; }
@keyframes lb-pulse { 50% { r: 18; fill: rgba(214,32,60,.28); } }
@media (max-width: 859px) {
  .lb-body { grid-template-columns: 1fr; height: auto; }
  .lb-map { height: 220px; }
  .lb-list { border-left: 0; border-top: 1px solid var(--border-hairline); }
  .lb-row:nth-of-type(n+5) { display: none; }
  .lb-alert { left: 10px; right: 10px; bottom: 10px; max-width: none; }
}
@media (prefers-reduced-motion: reduce) { .lb *, .lb { transition: none !important; animation: none !important; } }

/* Breathing map behind hero and closing band */
@keyframes p-drift { from { background-position: 50% 50%; } to { background-position: 58% 44%; } }
@media (prefers-reduced-motion: no-preference) {
  .pg-hero--live { background-size: 130% auto; animation: p-drift 40s ease-in-out infinite alternate; }
}
.p-final--routes { isolation: isolate; }
.p-routes { position: absolute; inset: 0; width: 100%; height: 100%; z-index: 0; pointer-events: none; }
.p-routes path { fill: none; stroke: var(--pulse-red); stroke-width: 2.5; stroke-linecap: round; stroke-dasharray: 1; stroke-dashoffset: 1; opacity: .0; }
@media (prefers-reduced-motion: no-preference) {
  .p-routes path { animation: p-route 12s ease-in-out infinite; }
  .p-routes path:nth-child(2) { animation-delay: 3s; } .p-routes path:nth-child(3) { animation-delay: 6s; } .p-routes path:nth-child(4) { animation-delay: 9s; }
}
@keyframes p-route { 0% { stroke-dashoffset: 1; opacity: 0; } 8% { opacity: .75; } 40% { stroke-dashoffset: 0; opacity: .75; } 70% { stroke-dashoffset: 0; opacity: 0; } 100% { stroke-dashoffset: 0; opacity: 0; } }
.p-final--routes .p-wrap { z-index: 1; }

/* Scroll-driven trip story */
.p-story2 { margin-top: clamp(36px, 4vw, 56px); display: grid; grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr); gap: clamp(32px, 5vw, 72px); align-items: start; }
.p-story2-card { position: sticky; top: 110px; }
.p-tcard { background: #FFFFFF; border: 1px solid var(--border-hairline); border-radius: var(--r-lg); box-shadow: 0 30px 60px -36px rgba(26,43,51,.45); overflow: hidden; font-variant-numeric: tabular-nums; }
.p-tcard-top { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 16px 20px; border-bottom: 1px solid var(--border-hairline); }
.p-tcard-top b { font-size: 16px; color: var(--text-heading); } .p-tcard-top small { display: block; font-size: 13px; color: var(--text-body); }
.p-tcard-state { font-size: 12px; font-weight: 700; padding: 5px 10px; border-radius: 999px; background: #EEF1F3; color: var(--text-heading); white-space: nowrap; transition: background .35s ease, color .35s ease; }
.p-tcard-stage { position: relative; height: 230px; }
.p-tcard-panel { position: absolute; inset: 0; padding: 22px 20px; opacity: 0; transform: translateY(10px); transition: opacity .45s ease, transform .45s ease; }
.p-tcard[data-stage="1"] .p-tcard-panel[data-p="1"], .p-tcard[data-stage="2"] .p-tcard-panel[data-p="2"], .p-tcard[data-stage="3"] .p-tcard-panel[data-p="3"], .p-tcard[data-stage="4"] .p-tcard-panel[data-p="4"], .p-tcard[data-stage="5"] .p-tcard-panel[data-p="5"] { opacity: 1; transform: none; }
.p-tcard[data-stage="3"] .p-tcard-state { background: #FDF3DE; color: #A86F00; }
.p-tcard[data-stage="4"] .p-tcard-state, .p-tcard[data-stage="5"] .p-tcard-state { background: #E8F3EC; color: #2E7D4F; }
.p-tcard-state span { display: none; }
.p-tcard[data-stage="1"] .p-tcard-state span[data-s="1"], .p-tcard[data-stage="2"] .p-tcard-state span[data-s="2"], .p-tcard[data-stage="3"] .p-tcard-state span[data-s="3"], .p-tcard[data-stage="4"] .p-tcard-state span[data-s="4"], .p-tcard[data-stage="5"] .p-tcard-state span[data-s="5"] { display: inline; }
.p-tp-label { font-size: 12px; font-weight: 600; color: var(--text-body); }
.p-tp-big { margin-top: 6px; font-size: 22px; font-weight: 600; color: var(--text-heading); }
.p-tp-line { display: flex; justify-content: space-between; padding: 9px 0; border-top: 1px solid var(--border-hairline); font-size: 14px; color: var(--text-heading); }
.p-tp-line:first-of-type { margin-top: 14px; }
.p-tp-phone { display: grid; grid-template-columns: 110px 1fr; gap: 18px; align-items: center; }
.p-tp-phone > div:first-child { height: 180px; border-radius: 18px; border: 3px solid var(--c-ink); padding: 14px 10px; display: flex; flex-direction: column; justify-content: space-between; background: var(--c-paper); }
.p-tp-phone small { font-size: 11px; color: var(--text-body); line-height: 1.4; }
.p-tp-phone b { font-size: 13px; color: var(--text-heading); }
.p-tp-accept { display: block; text-align: center; padding: 8px; border-radius: 8px; background: var(--pulse-red); color: #FFFFFF; font-size: 12px; font-weight: 700; }
.p-tcard[data-stage="2"] .p-tp-accept { animation: p-tap 2.4s ease-in-out .5s 1 both; }
@keyframes p-tap { 0%, 30% { transform: none; } 40% { transform: scale(.92); background: #B91A33; } 55%, 100% { transform: none; background: #2E7D4F; } }
.p-tp-bar { margin-top: 18px; height: 8px; border-radius: 999px; background: #EEF1F3; position: relative; overflow: hidden; }
.p-tp-bar i { position: absolute; left: 0; top: 0; bottom: 0; width: 0; border-radius: 999px; background: linear-gradient(90deg, #3E9B5F, #E5A72C); }
.p-tcard[data-stage="3"] .p-tp-bar i { animation: p-fill 2.2s ease-out .3s forwards; }
@keyframes p-fill { to { width: 72%; } }
.p-tp-check { display: inline-grid; place-items: center; width: 54px; height: 54px; border-radius: 50%; background: #E8F3EC; color: #2E7D4F; }
.p-tcard[data-stage="4"] .p-tp-check { animation: p-stamp .5s cubic-bezier(.34,1.56,.64,1) .2s both; }
@keyframes p-stamp { from { transform: scale(.3); opacity: 0; } to { transform: none; opacity: 1; } }
.p-tp-tag { display: inline-block; margin-top: 14px; margin-right: 6px; padding: 5px 10px; font-size: 12px; font-weight: 600; border-radius: 6px; border: 1px solid var(--border-hairline); color: var(--text-heading); }
.p-story2-steps > div { padding: 30px 0 30px 0; border-top: 1px solid var(--border-hairline); min-height: 38vh; display: flex; flex-direction: column; justify-content: center; transition: opacity .35s ease; }
.p-story2-steps > div:last-child { border-bottom: 1px solid var(--border-hairline); }
.p-story2-steps b { font-size: 13px; font-weight: 700; letter-spacing: .08em; color: var(--pulse-red); }
.p-story2-steps h3 { margin-top: 8px; font-size: 24px; font-weight: 500; }
.p-story2-steps p { margin-top: 8px; font-size: 16px; max-width: 46ch; }
.p-story2-steps small { display: block; margin-top: 10px; font-size: 13px; color: var(--text-heading); }
.pulse-motion .p-story2-steps > div:not(.is-active) { opacity: .38; }
@media (max-width: 859px) {
  .p-story2 { grid-template-columns: 1fr; gap: 0; }
  .p-story2-card { top: 72px; z-index: 5; margin-bottom: 8px; }
  .p-tcard-stage { height: 170px; }
  .p-tp-phone > div:first-child { height: 130px; }
  .p-story2-steps > div { min-height: 46vh; }
}
@media (prefers-reduced-motion: reduce) { .p-tcard-panel { transition: none; } }

/* Hover photo doors */
.p-hdoors { margin-top: clamp(32px, 4vw, 48px); display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.p-hdoor { position: relative; display: flex; flex-direction: column; justify-content: flex-end; min-height: 300px; padding: 26px; border-radius: var(--r-lg); background: #FFFFFF; border: 1px solid var(--border-hairline); overflow: hidden; color: inherit; text-decoration: none; isolation: isolate; }
.p-hdoor img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; opacity: 0; transform: scale(1.08); transition: opacity .5s ease, transform .8s cubic-bezier(.22,1,.36,1); }
.p-hdoor::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(14,24,30,0) 20%, rgba(14,24,30,.85) 100%); opacity: 0; transition: opacity .5s ease; }
.p-hdoor h3 { font-size: 24px; color: var(--pulse-red); transition: color .4s ease; }
.p-hdoor p { margin-top: 8px; font-size: 15px; line-height: 1.6; transition: color .4s ease; }
.p-hdoor span { margin-top: 14px; font-size: 14px; font-weight: 600; color: var(--pulse-red); transition: color .4s ease; }
.p-hdoor:hover img, .p-hdoor:focus-visible img { opacity: 1; transform: none; }
.p-hdoor:hover::after, .p-hdoor:focus-visible::after { opacity: 1; }
.p-hdoor:hover h3, .p-hdoor:hover p, .p-hdoor:hover span, .p-hdoor:focus-visible h3, .p-hdoor:focus-visible p, .p-hdoor:focus-visible span { color: #FFFFFF; }
@media (hover: none), (max-width: 859px) {
  .p-hdoors { grid-template-columns: 1fr; }
  .p-hdoor img, .p-hdoor::after { opacity: 1; transform: none; }
  .p-hdoor h3, .p-hdoor p, .p-hdoor span { color: #FFFFFF; }
  .p-hdoor { min-height: 240px; }
}

/* Roles with screen crops */
.p-roles2 { margin-top: clamp(32px, 4vw, 48px); display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
.p-roles2 figure { margin: 0; aspect-ratio: 4 / 3; border-radius: var(--r-lg); overflow: hidden; border: 1px solid var(--border-hairline); background: #FFFFFF; }
.p-roles2 img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s cubic-bezier(.22,1,.36,1); }
.p-roles2 a { color: inherit; text-decoration: none; display: block; }
.p-roles2 a:hover img { transform: scale(1.06); }
.p-roles2 h3 { margin-top: 16px; font-size: 17px; }
.p-roles2 p { margin-top: 4px; font-size: 15px; line-height: 1.6; }
@media (max-width: 1080px) { .p-roles2 { grid-template-columns: 1fr 1fr; } }
@media (max-width: 520px) { .p-roles2 { grid-template-columns: 1fr; } }
.p-pair { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(32px, 5vw, 72px); }
@media (max-width: 859px) { .p-pair { grid-template-columns: 1fr; } }
@media (max-width: 859px) {
  .p-story2-card { background: var(--c-paper); padding: 8px 0 14px; margin-inline: calc(var(--gutter, 20px) * -1); padding-inline: var(--gutter, 20px); box-shadow: 0 12px 16px -12px rgba(26,43,51,.18); }
  .p-story2-card > p { display: none; }
}

/* 2.2.0: real screenshots only */
.pg-shot--live .pg-live { position: relative; border-radius: var(--r-lg); overflow: hidden; border-bottom: 4px solid var(--pulse-red); box-shadow: 0 30px 60px -30px rgba(0,0,0,.6); background: #fff; }
.pg-shot--live img { aspect-ratio: auto !important; object-fit: contain; border: 0 !important; border-radius: 0 !important; box-shadow: none !important; }
.pg-live-ring { position: absolute; left: 13.4%; top: 57.4%; width: 68.8%; height: 4.6%; border: 2px solid var(--pulse-red); border-radius: 6px; pointer-events: none; animation: pg-ring 2.4s ease-in-out infinite; }
@keyframes pg-ring { 0%, 100% { box-shadow: 0 0 0 0 rgba(200,50,60,.45); opacity: 1; } 50% { box-shadow: 0 0 0 8px rgba(200,50,60,0); opacity: .55; } }
.p-tcard.p-tshot .p-tcard-stage { height: auto; aspect-ratio: 16 / 10; background: #F4F6F7; }
.p-tcard.p-tshot .p-tcard-panel { padding: 0; display: flex; align-items: center; justify-content: center; }
.p-tcard.p-tshot .p-tcard-panel img { display: block; width: 100%; height: 100%; object-fit: contain; }
@media (prefers-reduced-motion: reduce) { .pg-live-ring { animation: none; } }
.p-tcard.p-tshot .p-tcard-stage { overflow: hidden; }
.p-tshot [data-p="1"] img { transform: scale(1.75); transform-origin: 32% 72%; }
.p-tshot [data-p="5"] img { transform: scale(1.6); transform-origin: 100% 18%; }
@media (min-width: 901px) { .p-story2:has(.p-tshot) { grid-template-columns: minmax(0, 1.25fr) minmax(0, 0.75fr); } }

/* 2.3.0: homepage redraft */
/* Red band */
.p-band--red { background: var(--pulse-red); color: #FFFFFF; }
.p-band--red h2, .p-band--red h3, .p-band--red p, .p-band--red .p-lead { color: #FFFFFF; }
.p-band--red h2::after { background: #FFFFFF; }
.p-band--red .link-strong, .p-band--red .link-strong:hover { color: #FFFFFF; text-decoration: underline; text-underline-offset: 4px; }
.p-band--red .p-onplat { margin-top: 28px; padding-top: 24px; border-top: 1px solid rgba(255,255,255,.35); font-size: 15px; }
.p-band--red .p-names { margin-top: 14px; margin-bottom: 24px; }
.p-band--red .p-names span { background: transparent; color: #FFFFFF; border-color: rgba(255,255,255,.55); font-size: 14px; padding: 8px 14px; }
.p-band--red .p-names span.is-soon { color: rgba(255,255,255,.85); }
/* Audience cards */
.p-cards { margin-top: clamp(36px, 4vw, 56px); display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.p-card { position: relative; display: flex; flex-direction: column; background: #FFFFFF; border: 1px solid var(--border-hairline); border-radius: var(--r-lg); overflow: hidden; color: inherit; text-decoration: none; }
.p-card figure { margin: 0; aspect-ratio: 16 / 10; overflow: hidden; }
.p-card figure img { display: block; width: 100%; height: 100%; object-fit: cover; }
.p-card-body { position: relative; flex: 1; display: flex; flex-direction: column; padding: 24px 26px 28px; }
.p-card h3 { font-size: 22px; font-weight: 600; color: var(--text-heading); }
.p-card p { margin-top: 10px; font-size: 16px; line-height: 1.6; flex: 1; }
.p-card span { margin-top: 18px; font-size: 15px; font-weight: 600; color: var(--pulse-red); }
.p-card::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(214,32,60,0) 40%, rgba(214,32,60,.08) 100%); opacity: 0; transition: opacity .3s ease; pointer-events: none; }
.p-card:hover::after, .p-card:focus-visible::after { opacity: 1; }
.p-card:focus-visible { outline: 2px solid var(--pulse-red); outline-offset: 3px; }
/* Four people grid */
.p-grid4 { margin-top: clamp(36px, 4vw, 56px); display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 1px solid var(--border-hairline); border-left: 1px solid var(--border-hairline); background: #FFFFFF; }
.p-grid4 > div { padding: 22px 22px 26px; border-right: 1px solid var(--border-hairline); border-bottom: 1px solid var(--border-hairline); display: flex; flex-direction: column; }
.p-grid4 figure { margin: 0 0 20px; aspect-ratio: 4 / 3; overflow: hidden; border-radius: 8px; border: 1px solid var(--border-hairline); background: var(--c-paper); }
.p-grid4 figure img { display: block; width: 100%; height: 100%; object-fit: cover; }
.p-grid4 h3 { font-size: 19px; font-weight: 600; }
.p-grid4 p { margin-top: 8px; font-size: 15px; line-height: 1.6; flex: 1; }
.p-grid4 .link-strong { margin-top: 16px; }
/* Smaller story screen */
@media (min-width: 901px) { .p-story2:has(.p-tshot) { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); } .p-story2:has(.p-tshot) .p-story2-card { max-width: 500px; } }
/* Red closing band, no photo */
.p-final.p-final--red { background: var(--pulse-red); }
.p-final.p-final--red::before { display: none; }
.p-final--red h2::after { background: #FFFFFF; }
.p-final--red p, .p-final--red small { color: rgba(255,255,255,.9); }
.p-final--red .btn--primary { background: #FFFFFF; color: var(--pulse-red); border-color: #FFFFFF; }
.p-final--red .btn--primary:hover { background: #FFF1F3; color: var(--pulse-red); }
@media (max-width: 900px) {
  .p-cards { grid-template-columns: 1fr; }
  .p-grid4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 560px) { .p-grid4 { grid-template-columns: 1fr; } }
@media (prefers-reduced-motion: reduce) { .p-card::after { transition: none; } }
.p-card p, .p-card:hover p, .p-card h3, .p-card:hover h3 { color: inherit; } .p-card { color: var(--text-body); } .p-card h3, .p-card:hover h3 { color: var(--text-heading); }

/* 2.3.0: detailing */
.p-mark { display: inline-flex; align-items: center; gap: 10px; font-size: 12px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--pulse-red); }
.p-mark::before { content: ""; width: 9px; height: 9px; background: currentColor; flex: none; }
.p-caps { display: inline-block; font-size: 13px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: #FFFFFF; text-decoration: none; padding-bottom: 6px; border-bottom: 2px solid currentColor; }
.p-caps:hover { color: #FFFFFF; border-color: var(--pulse-red); }
/* Story steps: numeral, main, side */
.p-story2-steps > div { display: grid; grid-template-columns: 64px minmax(0, 1fr) 150px; column-gap: 20px; align-items: start; align-content: center; }
.p-story2-steps > div > b { font-size: 34px; line-height: 1; font-weight: 600; letter-spacing: 0; color: var(--pulse-red); padding-top: 4px; }
.p-story2-steps .p-st-main h3 { margin-top: 0; }
.p-st-side { padding-top: 6px; }
.p-st-side p { margin-top: 8px !important; font-size: 15px !important; color: var(--text-heading); }
/* Ink band with steps */
.p-band--ink { background: var(--c-ink); color: #FFFFFF; }
.p-band--ink h2, .p-band--ink h3 { color: #FFFFFF; }
.p-steps-x { display: grid; grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr); }
.p-steps-x-intro { padding-right: clamp(32px, 5vw, 72px); border-right: 2px solid var(--pulse-red); display: flex; flex-direction: column; align-items: flex-start; }
.p-steps-x-intro > p { margin-top: 28px; max-width: 44ch; font-size: 17px; line-height: 1.7; color: #DCE5EA; }
.p-blueprint { display: block; width: 100%; max-width: 340px; margin: 40px 0 36px; height: auto; }
.p-blueprint text { fill: #DCE5EA; font-family: var(--font-sans); font-size: 11px; letter-spacing: .04em; }
.p-blueprint .bp-sub { fill: var(--c-mist); }
.p-blueprint .bp-grid path { stroke: rgba(169,188,201,.16); stroke-width: 1; fill: none; }
.p-blueprint .bp-route { stroke: #FFFFFF; stroke-width: 2; fill: none; stroke-linejoin: round; }
.p-blueprint .bp-pin { fill: none; stroke: #FFFFFF; stroke-width: 1.6; }
.p-blueprint .bp-dot { fill: #FFFFFF; }
.p-blueprint .bp-x { stroke: #FFFFFF; stroke-width: 1.6; }
.p-blueprint .bp-car { fill: var(--pulse-red); stroke: #FFFFFF; stroke-width: 1.6; }
.p-blueprint .bp-lead { stroke: #DCE5EA; stroke-width: 1; }
.p-blueprint .bp-dim path { stroke: #DCE5EA; stroke-width: 1; fill: none; }
.p-steps-x-intro .p-caps { margin-top: auto; }
.p-steps-x-list { list-style: none; margin: 0; padding: 0 0 0 clamp(32px, 5vw, 72px); }
.p-steps-x-list li { display: grid; grid-template-columns: 84px minmax(0, 1fr) minmax(0, 0.8fr); column-gap: 24px; padding: 34px 0; border-top: 1px solid rgba(169,188,201,.28); }
.p-steps-x-list li:last-child { border-bottom: 1px solid rgba(169,188,201,.28); }
.p-steps-x-list b { font-size: 46px; line-height: 1; font-weight: 600; color: var(--pulse-red); }
.p-steps-x-list h3 { font-size: 19px; font-weight: 600; letter-spacing: .02em; text-transform: uppercase; }
.p-steps-x-list p { margin-top: 10px; font-size: 16px; line-height: 1.6; color: #DCE5EA; }
.p-steps-x-list .p-mark { color: #FF8A9C; }
@media (max-width: 900px) {
  .p-steps-x { grid-template-columns: 1fr; }
  .p-steps-x-intro { padding: 0 0 36px; border-right: 0; border-bottom: 2px solid var(--pulse-red); margin-bottom: 8px; }
  .p-steps-x-intro .p-caps { margin-top: 0; }
  .p-steps-x-list { padding-left: 0; }
  .p-steps-x-list li { grid-template-columns: 56px minmax(0, 1fr); row-gap: 16px; }
  .p-steps-x-list li > div:last-child { grid-column: 2; }
  .p-steps-x-list b { font-size: 34px; }
  .p-story2-steps > div { grid-template-columns: 48px minmax(0, 1fr); row-gap: 12px; }
  .p-story2-steps > div > b { font-size: 26px; }
  .p-st-side { grid-column: 2; padding-top: 0; }
}
@media (max-width: 900px) { .p-steps-x-list li:first-child { border-top: 0; } }

/* 2.3.0: four people on red, FAQ */
.p-band--red .p-lede { color: rgba(255,255,255,.9); }
.p-band--red .p-grid4 { border-color: rgba(255,255,255,.25); border-radius: 12px; overflow: hidden; box-shadow: 0 30px 60px -40px rgba(80,0,10,.6); }
.p-band--red .p-grid4 h3 { color: var(--text-heading); }
.p-band--red .p-grid4 p { color: var(--text-body); }
.p-band--red .p-grid4 .link-strong, .p-band--red .p-grid4 .link-strong:hover { color: var(--pulse-red); text-decoration: none; }
.p-faq { display: grid; grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr); gap: clamp(32px, 6vw, 96px); align-items: start; }
.p-faq-head .p-lede { margin-top: 24px; max-width: 34ch; }
.p-faq-list { border-top: 2px solid var(--text-heading); }
.p-faq-item { border-bottom: 1px solid var(--border-hairline); }
.p-faq-item summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; align-items: center; gap: 24px; padding: 26px 0; font-size: 15px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--text-heading); }
.p-faq-item summary::-webkit-details-marker { display: none; }
.p-faq-item summary::after { content: "+"; flex: none; font-size: 22px; font-weight: 500; line-height: 1; color: var(--pulse-red); }
.p-faq-item[open] summary::after { content: "\2212"; }
.p-faq-item summary:hover { color: var(--pulse-red); }
.p-faq-item summary:focus-visible { outline: 2px solid var(--pulse-red); outline-offset: 4px; }
.p-faq-item p { margin: -6px 0 0; padding: 0 48px 28px 0; font-size: 17px; line-height: 1.7; color: var(--text-body); max-width: 64ch; }
@media (max-width: 900px) { .p-faq { grid-template-columns: 1fr; } .p-faq-item summary { font-size: 14px; padding: 22px 0; } .p-faq-item p { padding-right: 0; font-size: 16px; } }
/* Lucide icons */
.p-ic { display: block; width: 28px; height: 28px; color: var(--pulse-red); flex: none; }
.p-card-body .p-ic { margin-bottom: 14px; }
.p-grid4 h3 { display: flex; align-items: center; gap: 10px; }
.p-grid4 h3 .p-ic { width: 22px; height: 22px; }
/* Plain closing band */
.p-final.p-final--plain { background: var(--c-paper); color: var(--text-body); }
.p-final.p-final--plain::before { display: none; }
.p-final--plain h2 { color: var(--text-heading); }
.p-final--plain p { color: var(--text-body); }
.p-final--plain small { color: var(--text-body); }
.p-faq-btn { margin-top: 28px; }

.p-grid4 .p-zoom{cursor:default;pointer-events:none}
.p-grid4 .p-zoom::after{display:none}
