/* =========================================================================
 Helmara - Landing page component styles
 Translated from Tailwind utility classes in /client/src/components/client/
 {Header,Footer}/index.jsx and /client/src/components/client/landing/*.jsx.
 Mobile-first; breakpoints mirror Tailwind defaults used in source:
 sm = 640px
 lg = 1024px
 xl = 1280px
 hero desktop threshold = 1200px (custom min-[1200px]: in source)
 ========================================================================= */

/* ---------------------------------------------------------------------
 0. Shared section helpers
 --------------------------------------------------------------------- */
.section-inner {
 max-width: 1400px;
 margin-inline: auto;
 padding-inline: 20px;
}

@media (min-width: 640px) {
 .section-inner {
 padding-inline: 24px;
 }
}

@media (min-width: 1024px) {
 .section-inner {
 padding-inline: 56px;
 }
}

.eyebrow {
 display: block;
 margin-bottom: 1rem;
 font-family: "League Spartan", sans-serif;
 font-size: 11px;
 font-weight: 600;
 letter-spacing: 0.14em;
 text-transform: uppercase;
 color: var(--pp-orange);
}

@media (min-width: 640px) {
 .eyebrow {
 font-size: 0.75rem;
 }
}

/* =========================================================================
 1. HEADER / NAVBAR
 ========================================================================= */
.site-header {
 position: fixed;
 inset: 0 0 auto 0;
 z-index: 50;
 display: flex;
 justify-content: center;
 pointer-events: none;
}

.site-header__bar {
 pointer-events: auto;
 width: 100%;
 border: 0 solid var(--pp-border);
 border-bottom-width: 1px;
 background: var(--pp-elevated);
 margin-top: 0;
 max-width: 100%;
 border-radius: 0;
 box-shadow: 0 1px 0 rgba(15, 23, 42, 0.04);
 transition: max-width 0.5s cubic-bezier(0.22, 1, 0.36, 1), margin 0.5s cubic-bezier(0.22, 1, 0.36, 1),
 border-radius 0.5s cubic-bezier(0.22, 1, 0.36, 1), box-shadow 0.5s cubic-bezier(0.22, 1, 0.36, 1),
 border-color 0.5s cubic-bezier(0.22, 1, 0.36, 1);
}

html.dark .site-header__bar {
 box-shadow: 0 1px 0 rgba(255, 255, 255, 0.06);
}

.site-header__bar.is-compact {
 box-shadow: 0 8px 24px -12px rgba(15, 23, 42, 0.14);
}

html.dark .site-header__bar.is-compact {
 box-shadow: 0 12px 28px -14px rgba(0, 0, 0, 0.55);
}

@media (min-width: 1024px) {
 .site-header__bar.is-compact {
 margin-top: 0.75rem;
 max-width: min(1120px, calc(100% - 2.5rem));
 border-radius: 1rem;
 border-width: 1px;
 box-shadow: 0 10px 28px -12px rgba(15, 23, 42, 0.16);
 }

 html.dark .site-header__bar.is-compact {
 box-shadow: 0 14px 32px -14px rgba(0, 0, 0, 0.6);
 }
}

.site-header__inner {
 max-width: 1400px;
 margin-inline: auto;
 padding-inline: 20px;
}

@media (min-width: 640px) {
 .site-header__inner {
 padding-inline: 24px;
 }
}

@media (min-width: 1024px) {
 .site-header__inner {
 padding-inline: 56px;
 }
}

.site-header__row {
 display: grid;
 grid-template-columns: 1fr auto 1fr;
 align-items: center;
 height: 78px;
 transition: height 0.5s cubic-bezier(0.22, 1, 0.36, 1);
}

.site-header__bar.is-compact .site-header__row {
 height: 64px;
}

@media (min-width: 1024px) {
 .site-header__bar.is-compact .site-header__row {
 height: 66px;
 }
}

.site-header__brand {
 grid-column: 1;
 display: flex;
 align-items: center;
 min-height: 44px;
 justify-self: start;
}

.brand-logo {
 display: inline-flex;
 align-items: center;
 height: 48px;
 transition: height 0.5s cubic-bezier(0.22, 1, 0.36, 1);
}

@media (min-width: 640px) {
 .brand-logo {
 height: 3.25rem;
 }
}

.site-header__bar.is-compact .brand-logo {
 height: 40px;
}

@media (min-width: 1024px) {
 .site-header__bar.is-compact .brand-logo {
 height: 44px;
 }
}

.brand-logo img {
 height: 100%;
 width: auto;
 max-width: none;
 object-fit: contain;
 object-position: left;
}

.brand-logo .logo-dark {
 display: none;
}

html.dark .brand-logo .logo-light {
 display: none;
}
html.dark .brand-logo .logo-dark {
 display: block;
}

.primary-nav {
 grid-column: 2;
 display: none;
 align-items: center;
 justify-self: center;
 gap: 1.5rem;
}

@media (min-width: 1024px) {
 .primary-nav {
 display: flex;
 }
}

@media (min-width: 1280px) {
 .primary-nav {
 gap: 2rem;
 }
}

.primary-nav__link {
 position: relative;
 display: inline-flex;
 min-height: 44px;
 align-items: center;
 font-family: "League Spartan", sans-serif;
 font-size: 15px;
 font-weight: 500;
 color: var(--pp-text-2);
 transition: color 0.15s ease;
 background: none;
 border: none;
 padding: 0;
 cursor: pointer;
}

.primary-nav__link:hover,
.primary-nav__link.is-active,
.nav-explore.is-open .nav-explore__trigger {
 color: var(--pp-text);
}

.primary-nav__link::after {
 content: "";
 position: absolute;
 left: 4px;
 right: 4px;
 bottom: -2px;
 height: 1px;
 border-radius: 999px;
 background: var(--pp-orange);
 transform: scaleX(0);
 transform-origin: center;
 transition: transform 0.2s ease;
}

.primary-nav__link:hover::after,
.primary-nav__link.is-active::after,
.nav-explore.is-open .nav-explore__trigger::after {
 transform: scaleX(1);
}

/* ---- Explore dropdown (desktop) ---- */
.nav-explore {
 position: relative;
}

.nav-explore__trigger {
 gap: 0.35rem;
}

.nav-explore__chevron {
 flex-shrink: 0;
 transition: transform 0.2s ease;
}

.nav-explore.is-open .nav-explore__chevron,
.mobile-explore.is-open .nav-explore__chevron {
 transform: rotate(180deg);
}

.nav-explore__menu {
 position: absolute;
 top: calc(100% + 0.5rem);
 left: 50%;
 z-index: 60;
 min-width: 240px;
 padding: 0.4rem;
 border: 1px solid var(--pp-border);
 border-radius: 0.75rem;
 background: var(--pp-elevated);
 box-shadow: 0 12px 32px -12px rgba(15, 23, 42, 0.18);
 opacity: 0;
 visibility: hidden;
 pointer-events: none;
 transform: translateX(-50%) translateY(6px);
 transition: opacity 0.18s ease, transform 0.18s ease, visibility 0.18s ease;
}

html.dark .nav-explore__menu {
 box-shadow: 0 16px 36px -14px rgba(0, 0, 0, 0.55);
}

.nav-explore.is-open .nav-explore__menu {
 opacity: 1;
 visibility: visible;
 pointer-events: auto;
 transform: translateX(-50%) translateY(0);
}

.nav-explore__item {
 display: flex;
 flex-direction: column;
 gap: 0.1rem;
 border-radius: 0.5rem;
 padding: 0.65rem 0.75rem;
 text-decoration: none;
 transition: background-color 0.15s ease;
}

.nav-explore__item:hover,
.nav-explore__item:focus-visible {
 background: var(--color-accent-glow);
 outline: none;
}

.nav-explore__item:hover .nav-explore__item-title,
.nav-explore__item:focus-visible .nav-explore__item-title {
 color: var(--pp-orange);
}

.nav-explore__item:hover .nav-explore__item-desc,
.nav-explore__item:focus-visible .nav-explore__item-desc {
 color: var(--pp-orange);
 opacity: 0.75;
}

.nav-explore__item-title {
 font-family: "League Spartan", sans-serif;
 font-size: 14px;
 font-weight: 600;
 color: var(--pp-text);
 line-height: 1.2;
}

.nav-explore__item-desc {
 font-family: "League Spartan", sans-serif;
 font-size: 12px;
 font-weight: 400;
 color: var(--pp-text-3, var(--pp-text-2));
 line-height: 1.35;
 opacity: 0.85;
}

/* ---- Explore accordion (mobile) ---- */
.mobile-explore {
 display: flex;
 flex-direction: column;
}

.mobile-explore__trigger {
 display: flex;
 width: 100%;
 align-items: center;
 justify-content: space-between;
 background: none;
 border: none;
 cursor: pointer;
 text-align: left;
}

.mobile-explore__menu {
 display: flex;
 flex-direction: column;
 gap: 0.15rem;
 padding: 0.15rem 0 0.35rem 0.75rem;
}

.mobile-explore__menu[hidden] {
 display: none;
}

.mobile-explore__item {
 border-radius: 0.5rem;
 padding: 0.65rem 0.75rem;
 font-family: "League Spartan", sans-serif;
 font-size: 14px;
 font-weight: 500;
 color: var(--pp-text-2);
 transition: background-color 0.15s ease, color 0.15s ease;
}

.mobile-explore__item:hover {
 color: var(--pp-orange);
 background: var(--color-accent-glow);
}

.site-header__actions {
 grid-column: 3;
 display: flex;
 align-items: center;
 justify-content: flex-end;
 justify-self: end;
 gap: 0.5rem;
}

@media (min-width: 640px) {
 .site-header__actions {
 gap: 0.625rem;
 }
}

.header-auth-links {
 display: none;
 align-items: center;
 gap: 0.5rem;
}

@media (min-width: 768px) {
 .header-auth-links {
 display: flex;
 }
}

@media (min-width: 640px) {
 .header-auth-links {
 gap: 0.75rem;
 }
}

.header-login-link {
 display: inline-flex;
 min-height: 40px;
 align-items: center;
 border-radius: 6px;
 padding: 0.5rem 0.75rem;
 font-family: "League Spartan", sans-serif;
 font-size: 14px;
 font-weight: 500;
 color: var(--pp-text-2);
 transition: color 0.15s ease;
}

.header-login-link:hover {
 color: var(--pp-text);
}

.header-signup-link {
 display: inline-flex;
 min-height: 42px;
 align-items: center;
 justify-content: center;
 border-radius: 6px;
 background: var(--pp-orange);
 padding: 0.7em 1.25rem 0.55em;
 font-family: "League Spartan", sans-serif;
 font-size: 14px;
 font-weight: 600;
 line-height: 1;
 color: #fff;
 box-shadow: 0 4px 14px rgba(247, 151, 35, 0.18);
 transition: transform 0.15s ease, background-color 0.15s ease, box-shadow 0.15s ease;
}

.header-signup-link:hover {
 background: var(--pp-orange-d);
 transform: translateY(-1px);
 box-shadow: 0 6px 18px rgba(247, 151, 35, 0.22);
}

.mobile-menu-toggle {
 display: inline-flex;
 min-height: 44px;
 min-width: 44px;
 align-items: center;
 justify-content: center;
 padding: 0.5rem;
 background: none;
 border: none;
 color: var(--pp-text-2);
 cursor: pointer;
 transition: color 0.15s ease;
 flex-shrink: 0;
}

.mobile-menu-toggle:hover {
 color: var(--pp-text);
}

@media (min-width: 1024px) {
 .mobile-menu-toggle {
 display: none;
 }
}

.mobile-menu-toggle .icon-open,
.mobile-menu-toggle .icon-close {
 display: inline-flex;
 align-items: center;
 justify-content: center;
 width: 22px;
 height: 22px;
 line-height: 0;
}

.mobile-menu-toggle svg {
 display: block;
 width: 22px;
 height: 22px;
}

.mobile-menu-toggle .icon-close {
 display: none;
}

html.nav-open .mobile-menu-toggle .icon-open {
 display: none;
}
html.nav-open .mobile-menu-toggle .icon-close {
 display: inline-flex;
}

.mobile-menu {
 display: none;
 border-top: 1px solid var(--pp-border);
 background: var(--pp-elevated);
 padding-bottom: 1.5rem;
}

html.nav-open .mobile-menu {
 display: block;
}

@media (min-width: 1024px) {
 .mobile-menu {
 display: none !important;
 }
}

.mobile-menu__links {
 display: flex;
 flex-direction: column;
 gap: 0.25rem;
 padding-top: 1rem;
}

.mobile-menu__link {
 border-radius: 0.5rem;
 padding: 0.75rem;
 font-family: "League Spartan", sans-serif;
 font-size: 14px;
 font-weight: 500;
 color: var(--pp-text-2);
 transition: background-color 0.15s ease, color 0.15s ease;
}

.mobile-menu__link:hover,
.mobile-menu__link.is-active {
 color: var(--pp-text);
 background: var(--pp-overlay);
}

.mobile-menu__auth {
 margin-top: 0.5rem;
 display: flex;
 flex-direction: column;
 gap: 0.5rem;
 border-top: 1px solid var(--pp-border);
 padding-top: 0.75rem;
}

.mobile-menu__login {
 padding: 0.75rem;
 text-align: center;
 font-family: "League Spartan", sans-serif;
 font-size: 14px;
 font-weight: 500;
 color: var(--pp-text-2);
}

.mobile-menu__signup {
 display: inline-flex;
 align-items: center;
 justify-content: center;
 border-radius: 6px;
 background: var(--pp-orange);
 padding: 0.75em 1.25rem 0.6em;
 text-align: center;
 font-family: "League Spartan", sans-serif;
 font-size: 14px;
 font-weight: 600;
 line-height: 1;
 color: #fff;
 box-shadow: 0 4px 14px rgba(247, 151, 35, 0.18);
}

/* =========================================================================
 2. HERO
 ========================================================================= */
.hero {
 position: relative;
 overflow: hidden;
 background: var(--pp-base);
 padding-top: 80px;
 padding-bottom: 0;
}

@media (min-width: 640px) {
 .hero {
 padding-top: 96px;
 }
}

@media (min-width: 1024px) {
 .hero {
 padding-top: 112px;
 }
}

.hero__ambient {
 position: absolute;
 inset: 0;
 z-index: 0;
 pointer-events: none;
 background: radial-gradient(
 ellipse 28% 26% at 50% 32%,
 rgba(255, 249, 240, 0.9) 0%,
 rgba(255, 238, 220, 0.28) 34%,
 rgba(247, 151, 35, 0.05) 56%,
 transparent 74%
 ),
 radial-gradient(ellipse 40% 24% at 50% 72%, rgba(255, 240, 224, 0.16) 0%, rgba(247, 151, 35, 0.03) 42%, transparent 70%);
}

html.dark .hero__ambient {
 background: radial-gradient(
 ellipse 28% 26% at 50% 32%,
 rgba(247, 151, 35, 0.1) 0%,
 rgba(247, 151, 35, 0.04) 38%,
 rgba(247, 151, 35, 0.012) 58%,
 transparent 76%
 ),
 radial-gradient(ellipse 40% 24% at 50% 72%, rgba(247, 151, 35, 0.04) 0%, transparent 68%);
}

@media (max-width: 1199px) {
 .hero__ambient {
 background: radial-gradient(ellipse 48% 34% at 50% 26%, rgba(255, 249, 240, 0.82) 0%, rgba(247, 151, 35, 0.04) 48%, transparent 72%),
 radial-gradient(ellipse 50% 26% at 50% 78%, rgba(255, 240, 224, 0.12) 0%, transparent 68%);
 }
 html.dark .hero__ambient {
 background: radial-gradient(ellipse 48% 34% at 50% 26%, rgba(247, 151, 35, 0.07) 0%, transparent 70%),
 radial-gradient(ellipse 50% 26% at 50% 78%, rgba(247, 151, 35, 0.03) 0%, transparent 68%);
 }
}

@media (max-width: 767px) {
 .hero__ambient {
 background: radial-gradient(ellipse 78% 40% at 50% 20%, rgba(255, 249, 240, 0.75) 0%, rgba(247, 151, 35, 0.035) 48%, transparent 72%);
 }
 html.dark .hero__ambient {
 background: radial-gradient(ellipse 78% 40% at 50% 20%, rgba(247, 151, 35, 0.06) 0%, transparent 70%);
 }
}

.hero__container {
 position: relative;
 z-index: 1;
 max-width: 1400px;
 margin-inline: auto;
 padding-inline: 20px;
}

@media (min-width: 640px) {
 .hero__container {
 padding-inline: 24px;
 }
}

@media (min-width: 1024px) {
 .hero__container {
 padding-inline: 56px;
 }
}

.hero__stage {
 position: relative;
}

@media (min-width: 1200px) {
 .hero__stage {
 min-height: 580px;
 }
}

@media (min-width: 1280px) {
 .hero__stage {
 min-height: 640px;
 }
}

.hero__orbit-layer {
 position: absolute;
 inset: 0;
 z-index: 1;
 overflow: hidden;
 pointer-events: none;
}

.hero__orbit-svg {
 position: absolute;
 inset: 0;
 width: 100%;
 height: 100%;
 display: none;
}

@media (min-width: 1200px) {
 .hero__orbit-svg {
 display: block;
 }
}

.hero__orbit-ring {
 stroke: #f79723;
 stroke-width: 1.1;
 fill: none;
 opacity: 0.045;
 stroke-dasharray: 2.5 12;
}

html.dark .hero__orbit-ring {
 opacity: 0.065;
}

.hero__spot {
 position: absolute;
 border-radius: 9999px;
 background: radial-gradient(circle, rgba(247, 151, 35, 0.11) 0%, transparent 72%);
 filter: blur(22px);
 pointer-events: none;
 display: none;
}

html.dark .hero__spot {
 background: radial-gradient(circle, rgba(247, 151, 35, 0.14) 0%, transparent 72%);
}

@media (min-width: 1200px) {
 .hero__spot {
 display: block;
 }
}

.hero__spot--1 {
 left: 28%;
 top: 22%;
 height: 96px;
 width: 96px;
}
.hero__spot--2 {
 right: 26%;
 top: 24%;
 height: 80px;
 width: 80px;
}
.hero__spot--3 {
 left: 30%;
 top: 70%;
 height: 64px;
 width: 64px;
}
.hero__spot--4 {
 right: 28%;
 top: 68%;
 height: 64px;
 width: 64px;
}

.hero__connectors {
 position: absolute;
 inset: 0;
 z-index: 10;
 width: 100%;
 height: 100%;
 display: none;
 pointer-events: none;
}

@media (min-width: 1200px) {
 .hero__connectors {
 display: block;
 }
}

.hero-connector-energy {
 stroke-dasharray: 52 380;
 stroke-dashoffset: 432;
 animation: hero-connector-flow 4.2s linear infinite;
}

@keyframes hero-connector-flow {
 to {
 stroke-dashoffset: 0;
 }
}

@media (prefers-reduced-motion: reduce) {
 .hero-connector-energy {
 animation: none !important;
 opacity: 0 !important;
 }
}

.hero__tiles {
 position: absolute;
 inset: 0;
 z-index: 20;
 display: none;
 pointer-events: none;
}

@media (min-width: 1200px) {
 .hero__tiles {
 display: block;
 }
}

.hero__tile {
 position: absolute;
 z-index: 20;
 transform: translate(-50%, -50%);
}

.hero__tile-motion {
 will-change: transform;
}

.hero__tile img {
 display: block;
 height: auto;
 width: 100%;
 max-width: none;
 pointer-events: none;
 user-select: none;
}

.hero__tile--content {
 left: 12%;
 top: 19.5%;
 width: 196px;
}
.hero__tile--email {
 left: 14%;
 top: 48.5%;
 width: 198px;
}
.hero__tile--leads {
 left: 13%;
 top: 77.5%;
 width: 195px;
}
.hero__tile--calling {
 left: 88%;
 top: 19.5%;
 width: 175px;
}
.hero__tile--support {
 left: 86%;
 top: 48.5%;
 width: 187px;
}
.hero__tile--ads {
 left: 87%;
 top: 77.5%;
 width: 175px;
}

.hero__content {
 position: relative;
 z-index: 30;
 margin-inline: auto;
 display: flex;
 max-width: 560px;
 flex-direction: column;
 align-items: center;
 padding-inline: 0.5rem;
 padding-top: 1.5rem;
 text-align: center;
}

@media (min-width: 640px) {
 .hero__content {
 padding-top: 2rem;
 }
}

@media (min-width: 1200px) {
 .hero__content {
 position: absolute;
 inset: 0;
 max-width: none;
 justify-content: center;
 padding-top: 0;
 }
}

.hero__content-inner {
 margin-inline: auto;
 width: 100%;
 max-width: 540px;
}

.hero__eyebrow {
 margin-bottom: 1rem;
 font-family: "League Spartan", sans-serif;
 font-size: 11px;
 font-weight: 600;
 text-transform: uppercase;
 letter-spacing: 0.16em;
 color: var(--pp-orange);
}

@media (min-width: 640px) {
 .hero__eyebrow {
 margin-bottom: 1.25rem;
 font-size: 0.75rem;
 }
}

.hero__heading {
 font-size: 2.75rem;
 line-height: 1.05 !important;
 color: var(--pp-text);
}

@media (min-width: 640px) {
 .hero__heading {
 font-size: 3rem;
 }
}

@media (min-width: 1024px) {
 .hero__heading {
 font-size: 3.75rem;
 }
}

@media (min-width: 1280px) {
 .hero__heading {
 font-size: 4.25rem;
 }
}

.hero__heading .accent {
 color: var(--pp-orange);
}

.hero__body {
 margin-inline: auto;
 margin-top: 1.25rem;
 max-width: 40ch;
 font-family: "League Spartan", sans-serif;
 font-size: 1rem;
 line-height: 1.6;
 color: var(--pp-text-3);
}

@media (min-width: 640px) {
 .hero__body {
 margin-top: 1.5rem;
 font-size: 1.125rem;
 }
}

.hero__cta {
 margin-top: 1.75rem;
 display: inline-block;
}

@media (min-width: 640px) {
 .hero__cta {
 margin-top: 2rem;
 }
}

.hero__cta .btn-cta {
 padding-inline: 2rem;
 font-size: 1rem;
}

.hero__mobile-tiles {
 position: relative;
 margin-top: 2rem;
 display: grid;
 grid-template-columns: repeat(3, 1fr);
 place-items: center;
 gap: 0.75rem;
}

@media (min-width: 640px) {
 .hero__mobile-tiles {
 margin-top: 2.5rem;
 gap: 1.25rem;
 }
}

@media (min-width: 1200px) {
 .hero__mobile-tiles {
 display: none;
 }
}

.hero__mobile-tiles img {
 height: auto;
 width: 96px;
 user-select: none;
}

@media (min-width: 640px) {
 .hero__mobile-tiles img {
 width: 120px;
 }
}

.hero__dashboard {
 position: relative;
 z-index: 1;
 margin-inline: auto;
 margin-top: 1.5rem;
 width: 92%;
 max-width: 1232px;
}

@media (min-width: 640px) {
 .hero__dashboard {
 margin-top: 2rem;
 }
}

@media (min-width: 1024px) {
 .hero__dashboard {
 margin-top: 1.25rem;
 width: 90%;
 }
}

.hero__dashboard img {
 width: 100%;
 height: auto;
}

.hero__dashboard .dashboard-dark {
 display: none;
}

html.dark .hero__dashboard .dashboard-light {
 display: none;
}
html.dark .hero__dashboard .dashboard-dark {
 display: block;
}

.hero__phone-badge {
 position: absolute;
 top: 18%;
 right: -12px;
 z-index: 10;
 display: none;
 width: 210px;
}

@media (min-width: 1024px) {
 .hero__phone-badge {
 display: block;
 }
}

@media (min-width: 1280px) {
 .hero__phone-badge {
 right: -24px;
 width: 230px;
 }
}

.hero__phone-badge img {
 width: 100%;
 height: auto;
 filter: drop-shadow(0 12px 40px rgba(0, 0, 0, 0.2));
}

/* =========================================================================
 3. PROBLEM
 ========================================================================= */
.problem {
 position: relative;
 padding-top: 4rem;
 background: #fff8f0;
}

html.dark .problem {
 background: var(--pp-base);
}

@media (min-width: 640px) {
 .problem {
 padding-top: 5rem;
 }
}

.problem__shell {
 position: relative;
 overflow: hidden;
 border-radius: 28px 28px 0 0;
 width: 90%;
 margin-inline: auto;
 padding: 3.5rem 1.5rem;
 background: #0b0b0b;
}

@media (min-width: 640px) {
 .problem__shell {
 border-radius: 40px 40px 0 0;
 padding: 4rem 2.5rem;
 }
}

@media (min-width: 1024px) {
 .problem__shell {
 padding: 5rem 3.5rem;
 }
}

.problem__glow {
 position: absolute;
 top: -96px;
 left: -64px;
 width: 320px;
 height: 320px;
 border-radius: 999px;
 opacity: 0.35;
 filter: blur(48px);
 background: radial-gradient(circle, rgba(247, 151, 35, 0.55) 0%, transparent 70%);
 pointer-events: none;
}

.problem__content {
 position: relative;
 z-index: 10;
}

.problem__header {
 max-width: 48rem;
 margin: 0 auto 3rem;
 text-align: center;
}

@media (min-width: 640px) {
 .problem__header {
 margin-bottom: 3.5rem;
 }
}

.problem__header h2 {
 font-size: 1.875rem;
 color: #fff;
 line-height: 1.15 !important;
}

@media (min-width: 640px) {
 .problem__header h2 {
 font-size: 2.25rem;
 }
}

@media (min-width: 1024px) {
 .problem__header h2 {
 font-size: 2.75rem;
 }
}

.problem__grid {
 display: grid;
 gap: 1.25rem;
 align-items: stretch;
}

@media (min-width: 640px) {
 .problem__grid {
 gap: 1.5rem;
 }
}

@media (min-width: 1024px) {
 .problem__grid {
 grid-template-columns: repeat(4, 1fr);
 }
}

.problem__cards {
 display: grid;
 gap: 1.25rem;
}

@media (min-width: 640px) {
 .problem__cards {
 grid-template-columns: repeat(2, 1fr);
 gap: 1.5rem;
 }
}

@media (min-width: 1024px) {
 .problem__cards {
 grid-column: span 3;
 grid-template-columns: repeat(3, 1fr);
 }
}

.problem-card {
 display: flex;
 flex-direction: column;
 text-align: left;
 border-radius: 1rem;
 padding: 1.5rem;
 background: #fff;
 border: 2px solid transparent;
 transition: background-color 0.3s ease, border-color 0.3s ease;
}

@media (min-width: 640px) {
 .problem-card {
 padding: 1.75rem;
 }
}

.problem-card:hover,
.problem-card:focus-within {
 background: #0b0b0b;
 border-color: var(--pp-orange);
}

.problem-card__icon {
 display: flex;
 align-items: center;
 justify-content: center;
 width: 44px;
 height: 44px;
 margin-bottom: 1.25rem;
 border-radius: 0.75rem;
 background: var(--pp-orange);
 color: #fff;
 flex-shrink: 0;
}

.problem-card__icon svg {
 width: 22px;
 height: 22px;
}

.problem-card h3 {
 margin-bottom: 0.5rem;
 font-size: 17px;
 font-weight: 600;
 color: #0f172a;
 transition: color 0.3s ease;
}

@media (min-width: 640px) {
 .problem-card h3 {
 font-size: 18px;
 }
}

.problem-card:hover h3,
.problem-card:focus-within h3 {
 color: var(--pp-orange);
}

.problem-card p {
 margin-bottom: 1.25rem;
 font-family: "League Spartan", sans-serif;
 font-size: 14px;
 line-height: 1.6;
 color: #64748b;
 transition: color 0.3s ease;
}

.problem-card:hover p,
.problem-card:focus-within p {
 color: rgba(255, 255, 255, 0.8);
}

.problem-card ul {
 margin-top: auto;
 display: flex;
 flex-direction: column;
 gap: 0.5rem;
}

.problem-card li {
 display: flex;
 align-items: center;
 gap: 0.5rem;
 font-family: "League Spartan", sans-serif;
 font-size: 14px;
 color: #0f172a;
 transition: color 0.3s ease;
}

.problem-card:hover li,
.problem-card:focus-within li {
 color: #fff;
}

.problem-card li::before {
 content: "";
 flex-shrink: 0;
 width: 6px;
 height: 6px;
 border-radius: 999px;
 background: var(--pp-orange);
}

.problem-aside {
 position: relative;
 display: flex;
 flex-direction: column;
 overflow: hidden;
 min-height: 420px;
 border-radius: 1rem;
 padding: 1.5rem;
 background: var(--pp-orange);
}

@media (min-width: 640px) {
 .problem-aside {
 padding: 1.75rem;
 }
}

@media (min-width: 1024px) {
 .problem-aside {
 grid-column: span 1;
 min-height: 100%;
 }
}

.problem-aside img {
 align-self: flex-start;
 width: 220px;
 height: auto;
 max-width: 100%;
 margin-bottom: 2rem;
 object-fit: contain;
}

@media (min-width: 640px) {
 .problem-aside img {
 width: 260px;
 }
}

@media (min-width: 1024px) {
 .problem-aside img {
 width: 280px;
 }
}

.problem-aside p:first-of-type {
 margin-bottom: 0.75rem;
 font-size: 1.25rem;
 line-height: 1.4;
 color: #fff;
}

@media (min-width: 640px) {
 .problem-aside p:first-of-type {
 font-size: 1.5rem;
 }
}

.problem-aside p:nth-of-type(2) {
 margin-bottom: 1.5rem;
 max-width: 240px;
 font-family: "League Spartan", sans-serif;
 font-size: 14px;
 line-height: 1.6;
 color: rgba(255, 255, 255, 0.9);
}

.problem-aside .btn-cta-outline {
 align-self: flex-start;
}

.problem-aside__sparkle {
 position: absolute;
 bottom: 20px;
 right: 20px;
 width: 40px;
 height: 40px;
 opacity: 0.8;
}

/* =========================================================================
 4. HOW IT WORKS
 ========================================================================= */
.how-it-works {
 background: #fff8f0;
 padding-block: 5rem;
}

html.dark .how-it-works {
 background: var(--pp-base);
}

@media (min-width: 640px) {
 .how-it-works {
 padding-block: 7rem;
 }
}

@media (min-width: 1024px) {
 .how-it-works {
 padding-block: 8rem;
 }
}

.how-it-works__heading {
 margin-bottom: 4rem;
 max-width: 28rem;
 font-size: 1.875rem;
 color: #0f172a;
 line-height: 1.12 !important;
}

html.dark .how-it-works__heading {
 color: var(--pp-text);
}

@media (min-width: 640px) {
 .how-it-works__heading {
 margin-bottom: 5rem;
 font-size: 2.25rem;
 }
}

@media (min-width: 1024px) {
 .how-it-works__heading {
 margin-bottom: 6rem;
 font-size: 2.75rem;
 }
}

.how-it-works__grid {
 display: grid;
 grid-template-columns: 1fr;
}

@media (min-width: 1024px) {
 .how-it-works__grid {
 grid-template-columns: repeat(4, 1fr);
 }
}

.how-step {
 display: flex;
 flex-direction: column;
 padding-bottom: 2.5rem;
}

@media (min-width: 1024px) {
 .how-step {
 padding-bottom: 0;
 }
}

.how-step:not(:first-child) {
 border-top: 1px solid #e5ddd0;
 padding-top: 2.5rem;
}

html.dark .how-step:not(:first-child) {
 border-top-color: var(--pp-border);
}

@media (min-width: 1024px) {
 .how-step:not(:first-child) {
 border-top: 0;
 border-left: 1px solid #e5ddd0;
 padding-top: 0;
 padding-left: 2.5rem;
 }
 html.dark .how-step:not(:first-child) {
 border-left-color: var(--pp-border);
 }
}

@media (min-width: 1280px) {
 .how-step:not(:first-child) {
 padding-left: 3rem;
 }
}

.how-step:last-child {
 padding-bottom: 0;
}

@media (min-width: 1024px) {
 .how-step:not(:last-child) {
 padding-right: 2.5rem;
 }
}

@media (min-width: 1280px) {
 .how-step:not(:last-child) {
 padding-right: 3rem;
 }
}

.how-step__number {
 margin-bottom: 1.75rem;
 font-size: 5.5rem;
 line-height: 1;
 color: var(--pp-orange);
 font-variant-numeric: tabular-nums;
 user-select: none;
}

@media (min-width: 1024px) {
 .how-step__number {
 font-size: 6.5rem;
 }
}

@media (min-width: 1280px) {
 .how-step__number {
 font-size: 7.5rem;
 }
}

.how-step h3 {
 margin-bottom: 0.75rem;
 font-size: 1.0625rem;
 color: #0f172a;
 line-height: 1.2 !important;
}

html.dark .how-step h3 {
 color: var(--pp-text);
}

@media (min-width: 640px) {
 .how-step h3 {
 font-size: 1.125rem;
 }
}

.how-step p {
 font-family: "League Spartan", sans-serif;
 font-size: 14px;
 line-height: 1.6;
 color: #64748b;
}

html.dark .how-step p {
 color: var(--pp-text-3);
}

.how-it-works__cta {
 margin-top: 3.5rem;
}

@media (min-width: 640px) {
 .how-it-works__cta {
 margin-top: 4rem;
 }
}

.how-it-works__cta .btn-cta {
 padding-inline: 1.5rem;
 font-size: 0.875rem;
}

@media (min-width: 640px) {
 .how-it-works__cta .btn-cta {
 font-size: 1rem;
 }
}

/* =========================================================================
 5. MODULES + SCROLL STACK
 ========================================================================= */
.modules-section {
 background: var(--pp-base);
 padding-block: 5rem;
 --module-card-bg: #fff4eb;
 --module-visual-bg: #f3ebe0;
}

html.dark .modules-section {
 --module-card-bg: #1a1410;
 --module-visual-bg: #221a14;
}

@media (min-width: 640px) {
 .modules-section {
 padding-block: 7rem;
 }
}

@media (min-width: 1024px) {
 .modules-section {
 padding-block: 8rem;
 }
}

.modules-section__header {
 margin-bottom: 3rem;
 max-width: 720px;
}

@media (min-width: 640px) {
 .modules-section__header {
 margin-bottom: 4rem;
 }
}

.modules-section__header h2 {
 font-size: 1.875rem;
 color: var(--pp-text);
 line-height: 1.1 !important;
}

@media (min-width: 640px) {
 .modules-section__header h2 {
 font-size: 2.25rem;
 }
}

@media (min-width: 1024px) {
 .modules-section__header h2 {
 font-size: 2.9rem;
 }
}

.modules-section__header p {
 margin-top: 1.25rem;
 max-width: 620px;
 font-family: "League Spartan", sans-serif;
 font-size: 1rem;
 line-height: 1.6;
 color: var(--pp-text-3);
}

@media (min-width: 640px) {
 .modules-section__header p {
 font-size: 1.125rem;
 }
}

/* Sticky stack - CSS-only, mirrors ModulesScrollStack.jsx exactly */
.modules-scroll-stack {
 position: relative;
 padding-bottom: 1px;
}

.modules-scroll-stack-card {
 position: sticky;
 top: 88px;
 border-radius: 40px;
 background: transparent;
 margin-bottom: 100px;
}

.modules-scroll-stack-card:last-child {
 margin-bottom: 0;
}

.module-card {
 display: grid;
 min-height: 560px;
 overflow: hidden;
 border-radius: 40px;
 background: var(--module-card-bg);
 border: 1px solid transparent;
 box-shadow: 0 18px 48px rgba(15, 23, 42, 0.06);
}

html.dark .module-card {
 box-shadow: 0 18px 48px rgba(0, 0, 0, 0.35);
 border-color: rgba(247, 151, 35, 0.12);
}

@media (min-width: 1024px) {
 .module-card {
 min-height: 640px;
 grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
 }
}

.module-card__copy {
 display: flex;
 flex-direction: column;
 padding: 2rem 1.75rem;
}

@media (min-width: 640px) {
 .module-card__copy {
 padding: 2.75rem 2.5rem;
 }
}

@media (min-width: 1024px) {
 .module-card__copy {
 padding: 3.5rem 3rem;
 }
}

@media (min-width: 1280px) {
 .module-card__copy {
 padding: 4rem 3.5rem;
 }
}

.module-card__badge {
 display: inline-flex;
 width: fit-content;
 align-items: center;
 gap: 0.625rem;
 border-radius: 999px;
 background: var(--pp-orange);
 padding: 0.375rem 0.875rem;
 box-shadow: 0 8px 20px rgba(247, 151, 35, 0.28);
}

.module-card__badge-dot {
 position: relative;
 display: inline-flex;
 height: 14px;
 width: 14px;
 align-items: center;
 justify-content: center;
}

.module-card__badge-dot::before,
.module-card__badge-dot::after {
 content: "";
 position: absolute;
 border-radius: 999px;
 background: rgba(255, 255, 255, 0.4);
}

.module-card__badge-dot::before {
 width: 14px;
 height: 14px;
}

.module-card__badge-dot::after {
 width: 6px;
 height: 6px;
 background: #fff;
}

.module-card__badge span {
 font-family: "League Spartan", sans-serif;
 font-size: 11px;
 font-weight: 700;
 text-transform: uppercase;
 letter-spacing: 0.16em;
 color: #fff;
}

.module-card h3 {
 margin-top: 1.75rem;
 max-width: 520px;
 font-size: 1.85rem;
 color: var(--pp-text);
 line-height: 1.08 !important;
}

@media (min-width: 640px) {
 .module-card h3 {
 margin-top: 2rem;
 font-size: 2.35rem;
 }
}

@media (min-width: 1024px) {
 .module-card h3 {
 font-size: 2.75rem;
 }
}

.module-card h3 .accent {
 color: var(--pp-orange);
}

.module-card__body {
 margin-top: 1.25rem;
 max-width: 440px;
 font-family: "League Spartan", sans-serif;
 font-size: 15px;
 line-height: 1.6;
 color: var(--pp-text-2);
}

@media (min-width: 640px) {
 .module-card__body {
 margin-top: 1.5rem;
 font-size: 1rem;
 }
}

@media (min-width: 1024px) {
 .module-card__body {
 font-size: 17px;
 }
}

.module-card__cues {
 display: flex;
 flex-wrap: wrap;
 gap: 0.5rem;
 margin-top: 2rem;
}

@media (min-width: 640px) {
 .module-card__cues {
 margin-top: 2.25rem;
 }
}

.module-card__cues span {
 border-radius: 999px;
 border: 1px solid rgba(226, 226, 226, 0.8);
 background: rgba(255, 255, 255, 0.7);
 padding: 0.375rem 0.75rem;
 font-family: "League Spartan", sans-serif;
 font-size: 10px;
 font-weight: 600;
 text-transform: uppercase;
 letter-spacing: 0.12em;
 color: var(--pp-text-3);
}

html.dark .module-card__cues span {
 background: rgba(255, 255, 255, 0.05);
 border-color: var(--pp-border);
}

.module-card__caps {
 margin-top: 1.25rem;
 display: flex;
 flex-direction: column;
 gap: 0.5rem;
 font-family: "League Spartan", sans-serif;
 font-size: 14px;
 color: var(--pp-text-3);
}

.module-card__caps li {
 display: flex;
 align-items: flex-start;
 gap: 0.625rem;
}

.module-card__caps li::before {
 content: "";
 flex-shrink: 0;
 margin-top: 0.375rem;
 width: 6px;
 height: 6px;
 border-radius: 999px;
 background: var(--pp-orange);
}

.module-card__actions {
 margin-top: auto;
 display: flex;
 flex-wrap: wrap;
 align-items: center;
 gap: 0.75rem;
 padding-top: 2.5rem;
}

.module-card__actions .btn-cta {
 padding-inline: 1.25rem;
 font-size: 14px;
}

.module-card__secondary {
 display: inline-flex;
 align-items: center;
 gap: 0.5rem;
 border-radius: 6px;
 border: 1px solid var(--pp-border);
 background: rgba(255, 255, 255, 0.8);
 padding: 0.75rem 1.25rem;
 font-family: "League Spartan", sans-serif;
 font-size: 14px;
 font-weight: 600;
 color: var(--pp-text);
 transition: border-color 0.15s ease;
}

html.dark .module-card__secondary {
 background: rgba(255, 255, 255, 0.05);
}

.module-card__secondary:hover {
 border-color: var(--pp-border-s);
}

.module-card__visual-wrap {
 min-height: 300px;
 padding: 1.25rem;
}

@media (min-width: 640px) {
 .module-card__visual-wrap {
 min-height: 360px;
 padding: 1.5rem;
 }
}

@media (min-width: 1024px) {
 .module-card__visual-wrap {
 min-height: 0;
 padding: 1.75rem;
 }
}

@media (min-width: 1280px) {
 .module-card__visual-wrap {
 padding: 2rem;
 }
}

.module-visual {
 position: relative;
 height: 100%;
 min-height: 300px;
 overflow: hidden;
 border-radius: 28px;
 background: var(--module-visual-bg);
}

@media (min-width: 640px) {
 .module-visual {
 min-height: 360px;
 }
}

@media (min-width: 1024px) {
 .module-visual {
 min-height: 0;
 }
}

.module-visual img {
 position: absolute;
 inset: 0;
 height: 100%;
 width: 100%;
 object-fit: cover;
 object-position: center;
}

.module-visual.fit-contain img {
 object-fit: contain;
}

/* Module visuals use raster assets (object-fit: cover by default). */

@media (max-width: 767px) {
 .modules-scroll-stack-card {
 position: relative;
 top: auto;
 border-radius: 28px;
 margin-bottom: 1.25rem !important;
 }

 .modules-scroll-stack-card:last-child {
 margin-bottom: 0 !important;
 }

 .module-card {
 border-radius: 28px;
 }
}

@media (prefers-reduced-motion: reduce) {
 .modules-scroll-stack-card {
 position: relative;
 top: auto;
 }
}

/* =========================================================================
 6. CONNECTED AUTOMATION
 ========================================================================= */
.connected-automation {
 background: #fff8f0;
 padding-block: 5rem;
}

html.dark .connected-automation {
 background: var(--pp-base);
}

@media (min-width: 640px) {
 .connected-automation {
 padding-block: 7rem;
 }
}

@media (min-width: 1024px) {
 .connected-automation {
 padding-block: 8rem;
 }
}

.connected-automation__grid {
 display: grid;
 gap: 2.5rem;
}

@media (min-width: 1024px) {
 .connected-automation__grid {
 grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
 align-items: start;
 gap: 4rem;
 }
}

@media (min-width: 1280px) {
 .connected-automation__grid {
 gap: 5rem;
 }
}

.connected-automation__heading {
 max-width: 15ch;
 font-size: 2.35rem;
 line-height: 1.05 !important;
 color: var(--pp-text);
}

@media (min-width: 640px) {
 .connected-automation__heading {
 font-size: 3rem;
 }
}

@media (min-width: 1024px) {
 .connected-automation__heading {
 font-size: 3.5rem;
 }
}

@media (min-width: 1280px) {
 .connected-automation__heading {
 font-size: 3.85rem;
 }
}

.connected-automation__heading .accent {
 color: var(--pp-orange);
}

.connected-automation__link {
 margin-top: 2rem;
 display: inline-flex;
 align-items: center;
 gap: 0.375rem;
 border-bottom: 1px solid rgba(15, 23, 42, 0.25);
 padding-bottom: 0.125rem;
 font-family: "League Spartan", sans-serif;
 font-size: 14px;
 font-weight: 600;
 color: var(--pp-text);
 transition: color 0.15s ease, border-color 0.15s ease;
}

@media (min-width: 640px) {
 .connected-automation__link {
 margin-top: 2.5rem;
 font-size: 15px;
 }
}

.connected-automation__link:hover {
 color: var(--pp-orange);
 border-color: var(--pp-orange);
}

.connected-automation__copy {
 max-width: 42ch;
 font-family: "League Spartan", sans-serif;
 font-size: 1rem;
 line-height: 1.65;
 color: var(--pp-text-2);
}

@media (min-width: 640px) {
 .connected-automation__copy {
 font-size: 1.125rem;
 }
}

@media (min-width: 1024px) {
 .connected-automation__copy {
 margin-left: auto;
 padding-top: 2.5rem;
 }
}

@media (min-width: 1280px) {
 .connected-automation__copy {
 padding-top: 3.5rem;
 }
}

.connected-automation__visual {
 margin-top: 3rem;
 overflow: hidden;
 border-radius: 28px;
 border: 2px solid var(--pp-orange);
}

@media (min-width: 640px) {
 .connected-automation__visual {
 margin-top: 4rem;
 border-radius: 36px;
 }
}

@media (min-width: 1024px) {
 .connected-automation__visual {
 margin-top: 5rem;
 border-radius: 40px;
 }
}

.connected-automation__visual img {
 width: 100%;
 height: auto;
 object-fit: cover;
}

/* =========================================================================
 7. WHATSAPP
 ========================================================================= */
.whatsapp {
 position: relative;
 overflow: visible;
 background: #fff;
 padding-block: 4rem;
}

html.dark .whatsapp {
 background: var(--pp-base);
}

@media (min-width: 640px) {
 .whatsapp {
 padding-block: 5rem;
 }
}

.whatsapp__container {
 position: relative;
 width: 90%;
 max-width: 1400px;
 margin-inline: auto;
}

.whatsapp__grid {
 display: grid;
 gap: 3rem;
 align-items: center;
}

@media (min-width: 1024px) {
 .whatsapp__grid {
 grid-template-columns: 0.85fr 1.15fr;
 gap: 2rem;
 }
}

@media (min-width: 1280px) {
 .whatsapp__grid {
 gap: 2.5rem;
 }
}

.whatsapp__heading {
 margin-bottom: 1.25rem;
 font-size: 1.875rem;
 line-height: 1.12 !important;
 color: var(--pp-text);
}

@media (min-width: 640px) {
 .whatsapp__heading {
 font-size: 2.25rem;
 }
}

@media (min-width: 1024px) {
 .whatsapp__heading {
 font-size: 2.75rem;
 }
}

.whatsapp__heading .accent {
 color: #f79723;
}

.whatsapp__lede {
 margin-bottom: 2rem;
 max-width: 480px;
 font-family: "League Spartan", sans-serif;
 font-size: 1rem;
 line-height: 1.6;
 color: var(--pp-text-3);
}

@media (min-width: 640px) {
 .whatsapp__lede {
 font-size: 1.125rem;
 }
}

.whatsapp__benefits {
 margin-bottom: 2rem;
 display: flex;
 flex-direction: column;
 gap: 0.75rem;
}

.whatsapp__benefits li {
 display: flex;
 align-items: center;
 gap: 0.625rem;
 font-family: "League Spartan", sans-serif;
 font-size: 14px;
 color: var(--pp-text-2);
}

.whatsapp__benefits svg {
 flex-shrink: 0;
 width: 18px;
 height: 18px;
 color: #25d366;
}

.whatsapp__stat {
 max-width: 28rem;
 border-radius: 1rem;
 border: 1px solid rgba(247, 151, 35, 0.25);
 background: rgba(247, 151, 35, 0.08);
 padding: 1.25rem;
}

.whatsapp__stat-number {
 margin-bottom: 0.25rem;
 font-size: 2.25rem;
 color: #f79723;
}

.whatsapp__stat p {
 font-family: "League Spartan", sans-serif;
 font-size: 14px;
 color: var(--pp-text-3);
}

.whatsapp__visual {
 position: relative;
 margin-inline: auto;
 width: 100%;
 max-width: 620px;
 overflow: visible;
}

@media (min-width: 1024px) {
 .whatsapp__visual {
 margin-inline: 0 0 0 auto;
 max-width: none;
 width: min(100%, 720px);
 }
}

@media (min-width: 1280px) {
 .whatsapp__visual {
 width: min(100%, 780px);
 }
}

.whatsapp__glow {
 position: absolute;
 left: 8%;
 right: -4%;
 top: 12%;
 bottom: -6%;
 z-index: 0;
 pointer-events: none;
}

.whatsapp__glow span {
 position: absolute;
 border-radius: 48% 52% 45% 55%;
 filter: blur(70px);
}

.whatsapp__glow span:nth-child(1) {
 left: 10%;
 top: 18%;
 height: 70%;
 width: 70%;
 background: rgba(247, 151, 35, 0.25);
}
.whatsapp__glow span:nth-child(2) {
 right: 2%;
 top: 28%;
 height: 55%;
 width: 55%;
 border-radius: 60% 40% 55% 45%;
 background: rgba(249, 171, 74, 0.3);
 filter: blur(60px);
}
.whatsapp__glow span:nth-child(3) {
 left: 28%;
 top: 40%;
 height: 40%;
 width: 45%;
 border-radius: 999px;
 background: rgba(255, 217, 168, 0.55);
 filter: blur(40px);
}

.whatsapp__workflow {
 position: relative;
 z-index: 20;
 margin-inline: auto;
 display: flex;
 width: 100%;
 max-width: 480px;
 align-items: center;
 justify-content: space-between;
 border-radius: 999px;
 border: 1px solid rgba(0, 0, 0, 0.05);
 background: #fff;
 padding: 0.625rem 0.75rem;
 box-shadow: 0 12px 28px -10px rgba(15, 23, 42, 0.18);
}

@media (min-width: 640px) {
 .whatsapp__workflow {
 padding-inline: 1rem;
 }
}

.whatsapp__workflow-step {
 display: flex;
 min-width: 0;
 flex: 1 1 0%;
 flex-direction: column;
 align-items: center;
 gap: 0.25rem;
}

.whatsapp__workflow-icon {
 display: flex;
 height: 28px;
 width: 28px;
 align-items: center;
 justify-content: center;
 border-radius: 999px;
 color: #fff;
}

@media (min-width: 640px) {
 .whatsapp__workflow-icon {
 height: 32px;
 width: 32px;
 }
}

.whatsapp__workflow-icon svg {
 width: 14px;
 height: 14px;
}

.whatsapp__workflow-label {
 max-width: 72px;
 text-align: center;
 font-family: "League Spartan", sans-serif;
 font-size: 8px;
 font-weight: 500;
 line-height: 1.2;
 color: #475569;
 white-space: nowrap;
 overflow: hidden;
 text-overflow: ellipsis;
}

@media (min-width: 640px) {
 .whatsapp__workflow-label {
 max-width: none;
 font-size: 9px;
 }
}

.whatsapp__workflow-arrow {
 flex-shrink: 0;
 margin-bottom: 0.875rem;
 width: 12px;
 height: 12px;
 color: #cbd5e1;
}

.whatsapp__mocks {
 position: relative;
 margin-top: 1.75rem;
 display: flex;
 width: 100%;
 align-items: flex-end;
 justify-content: center;
 gap: 0.75rem;
 overflow: visible;
}

@media (min-width: 640px) {
 .whatsapp__mocks {
 margin-top: 2rem;
 gap: 1rem;
 }
}

@media (min-width: 1024px) {
 .whatsapp__mocks {
 justify-content: flex-end;
 }
}

.whatsapp__phone {
 position: relative;
 z-index: 10;
 flex-shrink: 0;
}

.whatsapp__phone img {
 height: 240px;
 width: auto;
 flex-shrink: 0;
 object-fit: contain;
 filter: drop-shadow(0 18px 36px rgba(15, 23, 42, 0.2));
}

@media (min-width: 640px) {
 .whatsapp__phone img {
 height: 280px;
 }
}

@media (min-width: 1024px) {
 .whatsapp__phone img {
 height: 300px;
 }
}

.whatsapp__sparks {
 position: absolute;
 left: -36px;
 top: -40px;
 z-index: 20;
 width: 56px;
 height: 56px;
 color: #f79723;
 pointer-events: none;
}

@media (min-width: 640px) {
 .whatsapp__sparks {
 left: -44px;
 top: -48px;
 width: 64px;
 height: 64px;
 }
}

.whatsapp__dash {
 position: relative;
 z-index: 10;
 flex-shrink: 1;
 height: 240px;
 width: auto;
 max-width: none;
 object-fit: contain;
 filter: drop-shadow(0 18px 36px rgba(15, 23, 42, 0.16));
}

@media (min-width: 640px) {
 .whatsapp__dash {
 height: 280px;
 }
}

@media (min-width: 1024px) {
 .whatsapp__dash {
 height: 300px;
 }
}

/* =========================================================================
 8. PRICING
 ========================================================================= */
.pricing {
 position: relative;
 background: var(--pp-base);
 padding-top: 5rem;
 padding-bottom: 3rem;
}

@media (min-width: 640px) {
 .pricing {
 padding-top: 7rem;
 padding-bottom: 3.5rem;
 }
}

@media (min-width: 1024px) {
 .pricing {
 padding-top: 8rem;
 padding-bottom: 4rem;
 }
}

.pricing__header {
 margin-bottom: 2.5rem;
}

@media (min-width: 640px) {
 .pricing__header {
 margin-bottom: 3rem;
 }
}

.pricing__header h2 {
 max-width: 880px;
 font-size: 2.6rem;
 line-height: 1.05 !important;
 color: var(--pp-text);
}

@media (min-width: 640px) {
 .pricing__header h2 {
 font-size: 3rem;
 }
}

@media (min-width: 1024px) {
 .pricing__header h2 {
 font-size: 3.5rem;
 }
}

.pricing__header h2 .accent {
 color: var(--pp-orange);
}

.pricing__header .eyebrow {
 color: var(--pp-orange);
}

.pricing__lede {
 margin-top: 1.25rem;
 max-width: 680px;
 font-family: "League Spartan", sans-serif;
 font-size: 1rem;
 line-height: 1.6;
 color: var(--pp-text-3);
}

@media (min-width: 640px) {
 .pricing__lede {
 font-size: 1.125rem;
 }
}

.pricing__disclaimer {
 margin-top: 0.75rem;
 max-width: 680px;
 font-family: "League Spartan", sans-serif;
 font-size: 12px;
 color: var(--pp-text-d);
}

.pricing__table {
 overflow: visible;
 border-radius: 0.75rem;
 border: 1px solid var(--pp-border);
}

.pricing__grid {
 display: grid;
 grid-template-columns: 1fr;
 gap: 1px;
 background: var(--pp-border);
 border-radius: 0.75rem 0.75rem 0 0;
 overflow: hidden;
}

@media (min-width: 640px) {
 .pricing__grid {
 grid-template-columns: repeat(2, 1fr);
 }
}

@media (min-width: 1024px) {
 .pricing__grid {
 grid-template-columns: repeat(3, 1fr);
 }
}

.pricing-cell {
 position: relative;
 display: flex;
 min-height: 360px;
 flex-direction: column;
 padding: 1.5rem;
 background: var(--pp-elevated);
}

@media (min-width: 640px) {
 .pricing-cell {
 padding: 1.75rem;
 }
}

@media (min-width: 1024px) {
 .pricing-cell {
 min-height: 380px;
 padding: 2rem;
 }
}

.pricing-cell.is-selected {
 background: rgba(247, 151, 35, 0.06);
 box-shadow: inset 0 0 0 1px rgba(247, 151, 35, 0.25);
}

html.dark .pricing-cell.is-selected {
 background: rgba(247, 151, 35, 0.08);
 box-shadow: inset 0 0 0 1px rgba(247, 151, 35, 0.3);
}

.pricing-cell__head {
 display: flex;
 align-items: center;
 justify-content: space-between;
 gap: 0.5rem;
}

.pricing-cell__title {
 display: flex;
 align-items: center;
 gap: 0.5rem;
}

.pricing-cell__title svg {
 width: 17px;
 height: 17px;
 color: var(--pp-text-3);
 transition: color 0.15s ease;
}

.pricing-cell:hover .pricing-cell__title svg,
.pricing-cell.is-selected .pricing-cell__title svg {
 color: var(--pp-orange);
}

.pricing-cell__title h3 {
 font-family: "League Spartan", sans-serif;
 font-size: 15px;
 font-weight: 700;
 letter-spacing: -0.01em;
 color: var(--pp-text);
}

.pricing-cell__badge {
 border-radius: 999px;
 background: rgba(247, 151, 35, 0.12);
 padding: 0.125rem 0.5rem;
 font-family: "League Spartan", sans-serif;
 font-size: 9px;
 font-weight: 600;
 text-transform: uppercase;
 letter-spacing: 0.08em;
 color: var(--pp-orange);
}

.pricing-cell__badge[hidden] {
 display: none;
}

.pricing-cell__price {
 margin-top: 1rem;
 display: flex;
 align-items: baseline;
 gap: 0.375rem;
 font-family: "League Spartan", sans-serif;
 font-size: 2.65rem;
 font-weight: 600;
 line-height: 1;
 letter-spacing: -0.03em;
 color: var(--pp-text);
}

@media (min-width: 640px) {
 .pricing-cell__price {
 font-size: 2.85rem;
 }
}

.pricing-cell__unit {
 font-size: 13px;
 font-weight: 500;
 letter-spacing: 0;
 color: var(--pp-text-3);
}

.pricing-cell__purpose {
 margin-top: 0.75rem;
 max-width: 32ch;
 font-family: "League Spartan", sans-serif;
 font-size: 13px;
 line-height: 1.6;
 color: var(--pp-text-3);
}

/* Usage tier select */
.pricing-select {
 position: relative;
 margin-top: 0.875rem;
}

.pricing-select__trigger {
 display: flex;
 width: 100%;
 align-items: center;
 gap: 0.75rem;
 appearance: none;
 -webkit-appearance: none;
 border-radius: 1rem;
 border: 1px solid var(--pp-border);
 background: var(--pp-elevated);
 padding: 0.625rem 0.875rem;
 text-align: left;
 cursor: pointer;
 box-shadow: none;
 transition: border-color 0.2s ease, background-color 0.2s ease, box-shadow 0.2s ease;
}

.pricing-select__trigger:hover {
 border-color: rgba(247, 151, 35, 0.35);
 background: rgba(255, 248, 240, 0.7);
}

html.dark .pricing-select__trigger {
 background: rgba(255, 255, 255, 0.04);
}

html.dark .pricing-select__trigger:hover {
 border-color: rgba(247, 151, 35, 0.35);
 background: rgba(247, 151, 35, 0.08);
}

.pricing-select.is-open .pricing-select__trigger {
 border-color: rgba(247, 151, 35, 0.45);
 background: #fff8f0;
 box-shadow: 0 10px 28px -14px rgba(247, 151, 35, 0.55);
}

html.dark .pricing-select.is-open .pricing-select__trigger {
 border-color: rgba(247, 151, 35, 0.4);
 background: rgba(247, 151, 35, 0.12);
 box-shadow: 0 10px 28px -14px rgba(247, 151, 35, 0.25);
}

.pricing-select__caret {
 display: flex;
 height: 36px;
 width: 36px;
 flex-shrink: 0;
 align-items: center;
 justify-content: center;
 border-radius: 0.75rem;
 background: rgba(247, 151, 35, 0.12);
 color: var(--pp-orange);
 transition: background-color 0.2s ease, color 0.2s ease, transform 0.2s ease;
}

html.dark .pricing-select__caret {
 background: rgba(247, 151, 35, 0.16);
}

.pricing-select.is-open .pricing-select__caret {
 background: var(--pp-orange);
 color: #fff;
}

.pricing-select.is-open .pricing-select__caret svg {
 transform: rotate(180deg);
}

.pricing-select__caret svg {
 width: 14px;
 height: 14px;
 transition: transform 0.2s ease;
}

.pricing-select__meta {
 min-width: 0;
 flex: 1;
}

.pricing-select__row {
 display: flex;
 align-items: center;
 gap: 0.5rem;
}

.pricing-select__label {
 font-family: "League Spartan", sans-serif;
 font-size: 10px;
 font-weight: 600;
 text-transform: uppercase;
 letter-spacing: 0.12em;
 color: var(--pp-orange);
}

.pricing-select__dot {
 height: 4px;
 width: 4px;
 border-radius: 999px;
 background: var(--pp-border-s);
}

.pricing-select__price {
 overflow: hidden;
 text-overflow: ellipsis;
 white-space: nowrap;
 font-family: "League Spartan", sans-serif;
 font-size: 11px;
 font-weight: 500;
 color: var(--pp-text-3);
}

.pricing-select__usage {
 display: block;
 margin-top: 0.125rem;
 overflow: hidden;
 text-overflow: ellipsis;
 white-space: nowrap;
 font-family: "League Spartan", sans-serif;
 font-size: 13px;
 font-weight: 600;
 color: var(--pp-text);
}

.pricing-select__menu {
 position: absolute;
 z-index: 40;
 left: 0;
 right: 0;
 top: calc(100% + 8px);
 margin: 0;
 list-style: none;
 overflow: hidden;
 border-radius: 1rem;
 border: 1px solid rgba(var(--pp-border-rgb, 226, 232, 240), 0.8);
 border-color: var(--pp-border);
 background: var(--pp-elevated);
 padding: 0.375rem;
 box-shadow: 0 22px 50px -18px rgba(15, 23, 42, 0.35), 0 0 0 1px rgba(247, 151, 35, 0.08);
}

html.dark .pricing-select__menu {
 box-shadow: 0 22px 50px -18px rgba(0, 0, 0, 0.65), 0 0 0 1px rgba(247, 151, 35, 0.08);
}

.pricing-select__menu[hidden] {
 display: none;
}

.pricing-select__menu-title {
 padding: 0.5rem 0.75rem 0.375rem;
 font-family: "League Spartan", sans-serif;
 font-size: 10px;
 font-weight: 600;
 text-transform: uppercase;
 letter-spacing: 0.14em;
 color: var(--pp-text-3);
}

.pricing-select__menu [role="option"] button {
 display: flex;
 width: 100%;
 align-items: center;
 gap: 0.75rem;
 appearance: none;
 -webkit-appearance: none;
 border: none;
 border-radius: 0.75rem;
 background: transparent;
 padding: 0.625rem 0.75rem;
 text-align: left;
 color: var(--pp-text);
 cursor: pointer;
 box-shadow: none;
 transition: background-color 0.15s ease, color 0.15s ease;
}

.pricing-select__menu [role="option"] button:hover {
 background: #fff8f0;
}

html.dark .pricing-select__menu [role="option"] button:hover {
 background: rgba(247, 151, 35, 0.08);
}

.pricing-select__menu [role="option"][aria-selected="true"] button {
 background: var(--pp-orange);
 color: #fff;
}

.pricing-select__menu [role="option"][aria-selected="true"] button:hover {
 background: var(--pp-orange);
 color: #fff;
}

.pricing-select__num {
 display: flex;
 height: 32px;
 width: 32px;
 flex-shrink: 0;
 align-items: center;
 justify-content: center;
 border-radius: 0.5rem;
 background: var(--pp-muted);
 font-family: "League Spartan", sans-serif;
 font-size: 11px;
 font-weight: 700;
 font-variant-numeric: tabular-nums;
 color: var(--pp-text-3);
}

.pricing-select__menu [role="option"][aria-selected="true"] .pricing-select__num {
 background: rgba(255, 255, 255, 0.2);
 color: #fff;
}

.pricing-select__opt-body {
 min-width: 0;
 flex: 1;
 display: flex;
 flex-direction: column;
 gap: 0.125rem;
 font-family: "League Spartan", sans-serif;
 font-size: 12px;
 color: var(--pp-text-3);
}

.pricing-select__menu [role="option"][aria-selected="true"] .pricing-select__opt-body {
 color: rgba(255, 255, 255, 0.8);
}

.pricing-select__opt-top {
 display: flex;
 align-items: center;
 justify-content: space-between;
 gap: 0.5rem;
}

.pricing-select__opt-top strong {
 font-size: 12px;
 font-weight: 700;
 letter-spacing: -0.01em;
 color: var(--pp-text);
}

.pricing-select__menu [role="option"][aria-selected="true"] .pricing-select__opt-top strong {
 color: #fff;
}

.pricing-select__opt-top > span {
 flex-shrink: 0;
 font-size: 12px;
 font-weight: 600;
 font-variant-numeric: tabular-nums;
 color: var(--pp-orange);
}

.pricing-select__opt-top > span > span {
 margin-left: 0.125rem;
 font-weight: 500;
 color: var(--pp-text-3);
}

.pricing-select__menu [role="option"][aria-selected="true"] .pricing-select__opt-top > span {
 color: rgba(255, 255, 255, 0.9);
}

.pricing-select__menu [role="option"][aria-selected="true"] .pricing-select__opt-top > span > span {
 color: rgba(255, 255, 255, 0.7);
}

.pricing-select__check {
 display: none;
 width: 15px;
 height: 15px;
 flex-shrink: 0;
 color: #fff;
}

.pricing-select__menu [role="option"][aria-selected="true"] .pricing-select__check {
 display: block;
}

.pricing-cell__features-wrap {
 margin-top: 1.5rem;
 border-top: 1px solid var(--pp-border);
 padding-top: 1.25rem;
}

.pricing-cell__features {
 display: flex;
 flex-direction: column;
 gap: 0.5rem;
}

.pricing-cell__features li {
 display: flex;
 align-items: flex-start;
 gap: 0.625rem;
 font-family: "League Spartan", sans-serif;
 font-size: 13px;
 line-height: 1.4;
 color: var(--pp-text-2);
}

.pricing-cell__features svg {
 flex-shrink: 0;
 margin-top: 0.125rem;
 width: 14px;
 height: 14px;
 color: var(--pp-text-3);
}

.pricing-cell.is-selected .pricing-cell__features svg {
 color: var(--pp-orange);
}

.pricing-cell__cta {
 margin-top: auto;
 padding-top: 1.25rem;
}

.pricing-cell__toggle {
 display: flex;
 height: 40px;
 width: 100%;
 align-items: center;
 justify-content: center;
 gap: 0.375rem;
 appearance: none;
 -webkit-appearance: none;
 border-radius: 999px;
 border: 1px solid var(--pp-border-s);
 background: transparent;
 font-family: "League Spartan", sans-serif;
 font-size: 13px;
 font-weight: 600;
 color: var(--pp-text);
 cursor: pointer;
 box-shadow: none;
 transition: border-color 0.15s ease, color 0.15s ease, background-color 0.15s ease;
}

.pricing-cell__toggle:hover {
 border-color: var(--pp-orange);
 color: var(--pp-orange);
}

.pricing-cell__toggle.is-added {
 border-color: transparent;
 background: var(--pp-orange);
 color: #fff;
}

.pricing-cell__toggle.is-added:hover {
 background: var(--pp-orange-d);
 color: #fff;
}

.pricing-cell__toggle svg {
 width: 14px;
 height: 14px;
}

.pricing__footer-link {
 display: flex;
 flex-wrap: wrap;
 align-items: center;
 justify-content: space-between;
 gap: 1rem;
 border-top: 1px solid var(--pp-border);
 border-radius: 0 0 0.75rem 0.75rem;
 background: var(--pp-elevated);
 padding: 1rem 1.5rem;
 transition: background-color 0.15s ease;
}

@media (min-width: 640px) {
 .pricing__footer-link {
 padding-inline: 2rem;
 }
}

.pricing__footer-link:hover {
 background: rgba(148, 163, 184, 0.1);
}

.pricing__footer-link p {
 font-family: "League Spartan", sans-serif;
 font-size: 14px;
 color: var(--pp-text-3);
}

.pricing__footer-link p strong {
 color: var(--pp-text);
 font-weight: 600;
}

.pricing__footer-link .sep {
 margin-inline: 0.5rem;
 color: var(--pp-border-s);
}

.pricing__footer-link .configure {
 flex-shrink: 0;
 font-family: "League Spartan", sans-serif;
 font-size: 14px;
 font-weight: 600;
 color: var(--pp-text);
 transition: color 0.15s ease;
}

.pricing__footer-link:hover .configure {
 color: var(--pp-orange);
}

/* =========================================================================
 9. FAQ
 ========================================================================= */
.faq {
 position: relative;
 background: var(--pp-base);
 padding-block: 4rem;
}

@media (min-width: 640px) {
 .faq {
 padding-block: 5rem;
 }
}

@media (min-width: 1024px) {
 .faq {
 padding-block: 6rem;
 }
}

.faq__header {
 margin-inline: auto;
 max-width: 720px;
 text-align: center;
}

.faq__header h2 {
 font-size: 2.5rem;
 line-height: 1.05 !important;
 color: var(--pp-text);
}

@media (min-width: 640px) {
 .faq__header h2 {
 font-size: 3rem;
 }
}

@media (min-width: 1024px) {
 .faq__header h2 {
 font-size: 3.25rem;
 }
}

.faq__header h2 .accent {
 color: var(--pp-orange);
}

.faq__header > .eyebrow {
 color: var(--pp-orange);
}

.faq__header > p:not(.eyebrow) {
 margin-inline: auto;
 margin-top: 1rem;
 max-width: 42ch;
 font-family: "League Spartan", sans-serif;
 font-size: 1rem;
 line-height: 1.6;
 color: var(--pp-text-3);
}

@media (min-width: 640px) {
 .faq__header > p:not(.eyebrow) {
 margin-top: 1.25rem;
 font-size: 1.125rem;
 }
}

.faq__list {
 margin-inline: auto;
 margin-top: 3.5rem;
 max-width: 1100px;
}

@media (min-width: 1024px) {
 .faq__list {
 margin-top: 4rem;
 }
}

.faq-item {
 border-bottom: 1px solid var(--pp-border);
}

.faq-item__question {
 display: flex;
 width: 100%;
 align-items: flex-start;
 justify-content: space-between;
 gap: 1.5rem;
 padding-block: 1.25rem;
 text-align: left;
 background: none;
 border: none;
 cursor: pointer;
 font-family: "League Spartan", sans-serif;
}

@media (min-width: 640px) {
 .faq-item__question {
 gap: 2.5rem;
 padding-block: 1.5rem;
 }
}

.faq-item__question span.faq-q-text {
 font-size: 15px;
 font-weight: 600;
 letter-spacing: -0.01em;
 line-height: 1.35;
 color: var(--pp-text);
}

@media (min-width: 1024px) {
 .faq-item__question span.faq-q-text {
 font-size: 17px;
 }
}

.faq-item__icon {
 flex-shrink: 0;
 margin-top: 0.25rem;
 width: 16px;
 height: 16px;
 color: var(--pp-text-3);
 transition: transform 0.3s ease, color 0.3s ease;
}

.faq-item.is-open .faq-item__icon {
 transform: rotate(180deg);
 color: var(--pp-orange);
}

/* Default state = fully visible, unanimated block. This is the required
 no-JS fallback (see master prompt §46): every FAQ answer must stay
 readable if JavaScript never runs. faq.js progressively enhances this
 into a single-open accordion by measuring scrollHeight and writing an
 inline max-height only once it has initialized - it never relies on a
 CSS-only closed-by-default state. */
.faq-item__answer {
 overflow: hidden;
 transition: max-height 0.3s ease;
}

.faq-item__answer p {
 max-width: 62ch;
 padding-bottom: 1.25rem;
 font-family: "League Spartan", sans-serif;
 font-size: 14px;
 line-height: 1.7;
 color: var(--pp-text-3);
}

@media (min-width: 640px) {
 .faq-item__answer p {
 padding-bottom: 1.5rem;
 font-size: 15px;
 }
}

/* =========================================================================
 10. FINAL CTA
 ========================================================================= */
.final-cta {
 position: relative;
 display: flex;
 min-height: 420px;
 align-items: center;
 justify-content: center;
 background: var(--pp-base);
 text-align: center;
}

@media (min-width: 640px) {
 .final-cta {
 min-height: 460px;
 }
}

@media (min-width: 1024px) {
 .final-cta {
 min-height: 500px;
 }
}

.final-cta__inner {
 position: relative;
 margin-inline: auto;
 width: 100%;
 max-width: 1400px;
 padding: 4rem 20px;
}

@media (min-width: 640px) {
 .final-cta__inner {
 padding-inline: 24px;
 }
}

@media (min-width: 1024px) {
 .final-cta__inner {
 padding: 5rem 56px;
 }
}

.final-cta__heading {
 margin-inline: auto;
 max-width: 16ch;
 font-size: 2.75rem;
 line-height: 1.05 !important;
 color: var(--pp-text);
}

@media (min-width: 640px) {
 .final-cta__heading {
 font-size: 3rem;
 }
}

@media (min-width: 1024px) {
 .final-cta__heading {
 font-size: 3.75rem;
 }
}

@media (min-width: 1280px) {
 .final-cta__heading {
 font-size: 4.25rem;
 }
}

.final-cta__heading .accent {
 color: var(--pp-orange);
}

.final-cta__body {
 margin-inline: auto;
 margin-top: 1.5rem;
 max-width: 34ch;
 font-family: "League Spartan", sans-serif;
 font-size: 1rem;
 line-height: 1.6;
 color: var(--pp-text-3);
}

@media (min-width: 640px) {
 .final-cta__body {
 margin-top: 1.75rem;
 font-size: 1.125rem;
 }
}

.final-cta__actions {
 margin-top: 2rem;
}

@media (min-width: 640px) {
 .final-cta__actions {
 margin-top: 2.25rem;
 }
}

.final-cta__actions .btn-cta {
 padding-inline: 2rem;
 font-size: 1rem;
}

/* =========================================================================
 11. FOOTER
 ========================================================================= */
.site-footer {
 position: relative;
 overflow: hidden;
 background: var(--pp-dark, #0b1220);
 color: #fff;
}

.site-footer__inner {
 position: relative;
 max-width: 1400px;
 margin-inline: auto;
 padding-inline: 20px;
}

@media (min-width: 640px) {
 .site-footer__inner {
 padding-inline: 24px;
 }
}

@media (min-width: 1024px) {
 .site-footer__inner {
 padding-inline: 56px;
 }
}

.site-footer__grid {
 display: grid;
 gap: 2.5rem;
 padding-top: 2.5rem;
 padding-bottom: 2rem;
}

@media (min-width: 640px) {
 .site-footer__grid {
 padding-top: 3rem;
 padding-bottom: 2.25rem;
 }
}

@media (min-width: 1024px) {
 .site-footer__grid {
 grid-template-columns: 1.1fr 1.2fr;
 gap: 3rem;
 padding-top: 3.5rem;
 padding-bottom: 2.5rem;
 }
}

.site-footer__brand .brand-logo,
.site-footer__logo {
 display: inline-flex;
 align-items: center;
 height: 56px;
 margin-bottom: 0.875rem;
}

@media (min-width: 640px) {
 .site-footer__brand .brand-logo,
 .site-footer__logo {
 height: 64px;
 margin-bottom: 1rem;
 }
}

.site-footer__brand .brand-logo img,
.site-footer__logo img {
 display: block;
 height: 100%;
 width: auto;
 max-width: none;
 object-fit: contain;
 object-position: left center;
}

.site-footer__tagline {
 max-width: 22ch;
 font-size: 1.5rem;
 font-weight: 600;
 line-height: 1.3;
 letter-spacing: -0.01em;
 color: #fff;
}

@media (min-width: 640px) {
 .site-footer__tagline {
 font-size: 1.75rem;
 }
}

.site-footer__desc {
 margin-top: 0.625rem;
 max-width: 36ch;
 font-family: "League Spartan", sans-serif;
 font-size: 15px;
 line-height: 1.6;
 color: #94a3b8;
}

@media (min-width: 640px) {
 .site-footer__desc {
 font-size: 1rem;
 }
}

.site-footer__cols {
 display: grid;
 grid-template-columns: repeat(2, 1fr);
 gap: 2rem;
}

@media (min-width: 640px) {
 .site-footer__cols {
 grid-template-columns: repeat(3, 1fr);
 gap: 1.5rem;
 }
}

@media (min-width: 1024px) {
 .site-footer__cols {
 padding-top: 0.25rem;
 }
}

.site-footer__col:last-child {
 grid-column: span 2;
}

@media (min-width: 640px) {
 .site-footer__col:last-child {
 grid-column: span 1;
 }
}

.site-footer__col h3 {
 margin-bottom: 0.625rem;
 font-family: "League Spartan", sans-serif;
 font-size: 11px;
 font-weight: 600;
 text-transform: uppercase;
 letter-spacing: 0.16em;
 color: #64748b;
}

@media (min-width: 640px) {
 .site-footer__col h3 {
 font-size: 0.75rem;
 }
}

.site-footer__col ul {
 display: flex;
 flex-direction: column;
}

.site-footer__col a,
.site-footer__col button {
 display: inline-flex;
 min-height: 34px;
 align-items: center;
 background: none;
 border: none;
 padding: 0;
 text-align: left;
 cursor: pointer;
 font-family: "League Spartan", sans-serif;
 font-size: 15px;
 color: #94a3b8;
 transition: color 0.15s ease;
}

@media (min-width: 640px) {
 .site-footer__col a,
 .site-footer__col button {
 font-size: 1rem;
 }
}

.site-footer__col a:hover,
.site-footer__col button:hover {
 color: var(--pp-orange);
}

.site-footer__divider {
 height: 1px;
 width: 100%;
 background: rgba(255, 255, 255, 0.1);
}

.site-footer__bottom {
 display: flex;
 flex-direction: column;
 gap: 0.5rem;
 padding-block: 1rem;
}

@media (min-width: 640px) {
 .site-footer__bottom {
 flex-direction: row;
 align-items: center;
 justify-content: space-between;
 padding-block: 1.25rem;
 }
}

.site-footer__bottom p {
 font-family: "League Spartan", sans-serif;
 font-size: 12px;
 color: #64748b;
}

@media (min-width: 640px) {
 .site-footer__bottom p {
 font-size: 13px;
 }
}

.site-footer__bottom a {
 transition: color 0.15s ease;
}

.site-footer__bottom a:hover {
 color: #cbd5e1;
}
