/* =========================================================
   IMLoket — Foundation CSS
   Stage 1: unified design tokens, layout, and breakpoints
   ========================================================= */

:root {
  --container: 1180px;
  --gutter: 24px;

  --color-primary: #079b55;
  --color-primary-dark: #07894d;
  --color-primary-soft: #dcf7e4;
  --color-ink: #0b2b3e;
  --color-text: #405b67;
  --color-muted: #60727b;
  --color-line: #e6eee9;
  --color-surface: #ffffff;
  --color-surface-soft: #f5fbf7;
  --color-footer: #082c3d;

  --radius-sm: 7px;
  --radius-md: 10px;
  --radius-lg: 14px;

  --shadow-card: 0 8px 20px rgba(23, 75, 45, 0.11);
  --shadow-soft: 0 3px 14px rgba(12, 55, 39, 0.04);

  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 20px;
  --space-6: 24px;
  --space-7: 32px;
  --space-8: 40px;
  --space-9: 48px;
  --space-10: 56px;

  --font-sans: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
  --transition: 180ms ease;
}

/* Reset / Base */
*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

body {
  margin: 0;
  overflow-x: hidden;
  color: var(--color-ink);
  background: var(--color-surface);
  font-family: var(--font-sans);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

img {
  display: block;
  max-width: 100%;
}

a {
  color: inherit;
  text-decoration: none;
}

p {
  line-height: 1.55;
}

button,
a,
summary {
  -webkit-tap-highlight-color: transparent;
}

:focus-visible {
  outline: 3px solid rgba(7, 155, 85, 0.35);
  outline-offset: 3px;
}

/* Shared layout */
.header,
.intro,
.products-section,
.partner,
.start,
.testimonials,
.final,
.faq {
  width: min(var(--container), calc(100% - (var(--gutter) * 2)));
  margin-inline: auto;
}

label,
.pill {
  display: inline-block;
  color: var(--color-primary-dark);
  font-size: 13px;
  font-weight: 800;
}

h2 span {
  color: var(--color-primary);
}

/* Buttons */
.actions,
.cta {
  display: flex;
  gap: var(--space-3);
}

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 43px;
  padding: 12px 20px;
  border: 1px solid var(--color-primary);
  border-radius: 9px;
  background: var(--color-primary);
  color: #fff;
  box-shadow: 0 4px 12px rgba(7, 155, 85, 0.08);
  font-size: 13px;
  font-weight: 800;
  transition: transform var(--transition), filter var(--transition), box-shadow var(--transition);
}

.btn:hover {
  transform: translateY(-1px);
  filter: brightness(0.98);
  box-shadow: 0 6px 16px rgba(7, 155, 85, 0.12);
}

.btn.outline {
  background: #fff;
  color: var(--color-primary-dark);
}

.btn.light {
  border-color: #fff;
  background: #fff;
  color: var(--color-primary-dark);
}

/* Header */
.site-header {
  position: sticky;
  top: 0;
  z-index: 50;
  border-bottom: 1px solid rgba(230, 238, 233, 0.9);
  background: rgba(255, 255, 255, 0.96);
  box-shadow: 0 4px 18px rgba(11, 43, 62, 0.035);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}

.header {
  position: relative;
  display: flex;
  align-items: center;
  min-height: 78px;
  padding-block: 8px;
  gap: 28px;
}

.brand {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  gap: 9px;
  margin-right: auto;
}

.brand img {
  width: 48px;
  height: 45px;
  object-fit: contain;
}

.brand span {
  display: grid;
  line-height: 1;
}

.brand b {
  color: #162e39;
  font-size: 20px;
  letter-spacing: -0.7px;
}

.brand small {
  margin-top: 4px;
  color: var(--color-primary);
  font-size: 8px;
  font-weight: 800;
  letter-spacing: .1px;
}

.desktop-nav {
  display: flex;
  align-items: center;
  gap: 25px;
  font-size: 13px;
  font-weight: 700;
}

.desktop-nav a {
  position: relative;
  padding: 12px 0;
  color: #294a58;
  transition: color var(--transition);
}

.desktop-nav a::after {
  position: absolute;
  right: 0;
  bottom: 6px;
  left: 0;
  height: 2px;
  border-radius: 999px;
  background: var(--color-primary);
  content: "";
  opacity: 0;
  transform: scaleX(0.35);
  transition: opacity var(--transition), transform var(--transition);
}

.desktop-nav a:hover,
.desktop-nav a.active {
  color: var(--color-primary-dark);
}

.desktop-nav a:hover::after,
.desktop-nav a.active::after {
  opacity: 1;
  transform: scaleX(1);
}

.desktop-actions {
  flex: 0 0 auto;
}

.desktop-actions .btn {
  min-height: 40px;
  padding: 10px 15px;
  white-space: nowrap;
}

.mobile-header-actions {
  display: none;
  align-items: center;
  gap: 8px;
}

.mobile-download {
  display: inline-flex;
  min-height: 39px;
  align-items: center;
  justify-content: center;
  padding: 9px 13px;
  border: 1px solid var(--color-primary);
  border-radius: 9px;
  color: var(--color-primary-dark);
  font-size: 12px;
  font-weight: 800;
}

.mobile-menu {
  position: relative;
}

.mobile-menu summary {
  display: inline-flex;
  min-height: 39px;
  align-items: center;
  gap: 8px;
  padding: 9px 12px;
  border: 1px solid var(--color-line);
  border-radius: 9px;
  background: #fff;
  color: var(--color-ink);
  cursor: pointer;
  font-size: 12px;
  font-weight: 800;
  list-style: none;
}

.mobile-menu summary::-webkit-details-marker {
  display: none;
}

.mobile-menu summary i,
.mobile-menu summary i::before,
.mobile-menu summary i::after {
  display: block;
  width: 16px;
  height: 2px;
  border-radius: 2px;
  background: currentColor;
  content: "";
  transition: transform var(--transition), opacity var(--transition);
}

.mobile-menu summary i {
  position: relative;
}

.mobile-menu summary i::before {
  position: absolute;
  top: -5px;
}

.mobile-menu summary i::after {
  position: absolute;
  top: 5px;
}

.mobile-menu[open] summary i {
  background: transparent;
}

.mobile-menu[open] summary i::before {
  top: 0;
  transform: rotate(45deg);
}

.mobile-menu[open] summary i::after {
  top: 0;
  transform: rotate(-45deg);
}

.mobile-menu nav {
  position: absolute;
  top: calc(100% + 10px);
  right: 0;
  display: grid;
  width: min(290px, calc(100vw - 32px));
  padding: 9px;
  border: 1px solid var(--color-line);
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 18px 44px rgba(11, 43, 62, 0.14);
}

.mobile-menu nav a {
  padding: 11px 12px;
  border-radius: 8px;
  color: #294a58;
  font-size: 13px;
  font-weight: 700;
}

.mobile-menu nav a:hover {
  background: var(--color-surface-soft);
  color: var(--color-primary-dark);
}

.mobile-menu nav .mobile-menu-cta {
  margin-top: 5px;
  background: var(--color-primary);
  color: #fff;
  text-align: center;
}

/* Hero */
.hero {
  position: relative;
  display: grid;
  grid-template-columns: minmax(430px, 0.94fr) minmax(520px, 1.06fr);
  align-items: center;
  min-height: 560px;
  overflow: hidden;
  padding-left: max(calc((100vw - var(--container)) / 2), var(--gutter));
  background:
    radial-gradient(circle at 78% 45%, rgba(7, 155, 85, 0.12), transparent 29%),
    linear-gradient(112deg, #fbfffc 0%, #f4fcf6 55%, #ebfaef 100%);
}

.hero::before,
.hero::after {
  position: absolute;
  pointer-events: none;
  content: "";
}

.hero::before {
  left: -90px;
  bottom: -110px;
  width: 290px;
  height: 290px;
  border: 1px solid rgba(7, 155, 85, 0.09);
  border-radius: 50%;
  box-shadow: 0 0 0 45px rgba(7, 155, 85, 0.025), 0 0 0 90px rgba(7, 155, 85, 0.02);
}

.hero::after {
  right: -80px;
  top: -120px;
  width: 350px;
  height: 350px;
  border-radius: 42% 58% 45% 55%;
  background: rgba(220, 247, 228, 0.52);
  transform: rotate(22deg);
}

.hero-copy {
  position: relative;
  z-index: 3;
  max-width: 590px;
  padding-block: 58px;
}

.pill {
  padding: 8px 13px;
  border: 1px solid rgba(7, 155, 85, 0.10);
  border-radius: 999px;
  background: rgba(220, 247, 228, 0.8);
  box-shadow: 0 4px 16px rgba(7, 155, 85, 0.05);
}

.hero h1 {
  max-width: 590px;
  margin: 18px 0 14px;
  font-size: clamp(44px, 4.05vw, 58px);
  line-height: 1.02;
  letter-spacing: -2.2px;
}

.hero h1 span {
  color: var(--color-primary);
}

.hero-copy > p {
  max-width: 555px;
  margin: 0 0 18px;
  color: var(--color-text);
  font-size: 15px;
  line-height: 1.7;
}

.hero-trust {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 16px;
  margin-bottom: 23px;
  color: #31545f;
  font-size: 12px;
  font-weight: 700;
}

.hero-trust span {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.hero-trust i {
  display: grid;
  width: 19px;
  height: 19px;
  place-items: center;
  border-radius: 50%;
  background: var(--color-primary-soft);
  color: var(--color-primary-dark);
  font-size: 11px;
  font-style: normal;
}

.hero .cta {
  align-items: center;
  flex-wrap: wrap;
}

.hero .btn {
  min-height: 47px;
  padding-inline: 21px;
}

.hero-primary {
  box-shadow: 0 10px 24px rgba(7, 155, 85, 0.17);
}

.hero-secondary {
  border-color: #bcdcca;
  background: rgba(255, 255, 255, 0.78);
}

.play {
  display: inline-flex;
  flex-direction: column;
  min-width: 128px;
  margin-top: 17px;
  padding: 7px 14px 8px;
  border-radius: 8px;
  background: #0c1012;
  color: #fff;
  line-height: 1.05;
  transition: transform var(--transition), box-shadow var(--transition);
}

.play:hover {
  transform: translateY(-1px);
  box-shadow: 0 8px 18px rgba(11, 43, 62, 0.15);
}

.play small {
  font-size: 7px;
  letter-spacing: 0.6px;
}

.play strong {
  margin-top: 2px;
  font-size: 15px;
}

.hero-art {
  position: relative;
  z-index: 2;
  align-self: stretch;
  min-height: 560px;
}

.hero-glow {
  position: absolute;
  left: 18%;
  top: 13%;
  width: 410px;
  height: 410px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(255, 255, 255, 0.96) 0 48%, rgba(208, 245, 218, 0.82) 49% 70%, rgba(208, 245, 218, 0) 71%);
  filter: drop-shadow(0 25px 55px rgba(14, 79, 48, 0.09));
}

.phone {
  position: absolute;
  overflow: hidden;
  border: 7px solid #16343f;
  border-radius: 31px;
  background: #fff;
  box-shadow: 0 24px 55px rgba(13, 57, 42, 0.22);
}

.phone img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.phone-speaker {
  position: absolute;
  z-index: 2;
  left: 50%;
  top: 8px;
  width: 42px;
  height: 5px;
  border-radius: 999px;
  background: #16343f;
  transform: translateX(-50%);
}

.phone-front {
  z-index: 3;
  left: 27%;
  top: 61px;
  width: 216px;
  height: 438px;
  transform: rotate(2deg);
}

.phone-back {
  z-index: 2;
  left: 5%;
  top: 105px;
  width: 186px;
  height: 378px;
  opacity: 0.96;
  transform: rotate(-8deg);
}

.hero-float {
  position: absolute;
  z-index: 4;
  display: flex;
  align-items: center;
  min-width: 156px;
  gap: 10px;
  padding: 11px 13px;
  border: 1px solid rgba(7, 155, 85, 0.09);
  border-radius: 13px;
  background: rgba(255, 255, 255, 0.94);
  box-shadow: 0 14px 30px rgba(26, 73, 52, 0.13);
  backdrop-filter: blur(8px);
}

.hero-float i {
  display: grid;
  flex: 0 0 34px;
  width: 34px;
  height: 34px;
  place-items: center;
  border-radius: 10px;
  background: var(--color-primary-soft);
  color: var(--color-primary-dark);
  font-size: 12px;
  font-style: normal;
  font-weight: 900;
}

.hero-float span,
.hero-float b,
.hero-float small {
  display: block;
}

.hero-float b {
  color: #143d4e;
  font-size: 12px;
}

.hero-float small {
  margin-top: 2px;
  color: #71828a;
  font-size: 9px;
}

.hero-float-pulsa {
  left: 2%;
  top: 66px;
}

.hero-float-bill {
  left: 48%;
  top: 150px;
}

.hero-float-wallet {
  left: 49%;
  bottom: 79px;
}

.hero-note {
  position: absolute;
  z-index: 4;
  left: 10%;
  bottom: 29px;
  color: #167849;
  font-size: 13px;
  font-style: italic;
  font-weight: 900;
  letter-spacing: 0.2px;
  transform: rotate(-4deg);
}

/* Intro / Benefits */
.intro {
  padding-block: 48px 38px;
  text-align: center;
}

.section-kicker {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding: 6px 11px;
  border-radius: 999px;
  background: var(--color-primary-soft);
  color: var(--color-primary-dark);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.intro h2 {
  margin: 10px 0 7px;
  font-size: clamp(25px, 2.4vw, 32px);
  letter-spacing: -.7px;
}

.intro > p {
  max-width: 650px;
  margin: 0 auto;
  color: var(--color-muted);
  font-size: 13px;
  line-height: 1.7;
}

.benefits {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
  margin-top: 28px;
}

.benefits article {
  display: flex;
  align-items: flex-start;
  min-width: 0;
  min-height: 112px;
  gap: 13px;
  padding: 19px 18px;
  border: 1px solid #dfeee3;
  border-radius: 18px;
  background: linear-gradient(145deg, #ffffff 0%, #f5fbf7 100%);
  box-shadow: 0 10px 28px rgba(24, 91, 53, .055);
  text-align: left;
  transition: transform var(--transition), border-color var(--transition), box-shadow var(--transition);
}

.benefits article:hover {
  transform: translateY(-3px);
  border-color: #c7e5cf;
  box-shadow: 0 14px 32px rgba(24, 91, 53, .09);
}

.benefits article > div {
  min-width: 0;
}

.benefits h3,
.products h3 {
  margin: 0;
  color: var(--color-text);
  font-size: 13px;
  line-height: 1.35;
}

.benefits p,
.products p {
  margin: 5px 0 0;
  color: #667b84;
  font-size: 11px;
  line-height: 1.55;
}

/* Products */
.products-section {
  display: grid;
  grid-template-columns: minmax(260px, 320px) minmax(0, 1fr);
  align-items: start;
  gap: clamp(36px, 5vw, 66px);
  padding-block: 48px 58px;
}

.product-copy {
  position: sticky;
  top: 108px;
  padding-top: 7px;
}

.product-copy h2,
.why h2,
.partner h2,
.start h2 {
  margin: 7px 0;
  font-size: 27px;
}

.product-copy p,
.why-copy > p,
.partner p {
  color: #526a75;
  font-size: 13px;
}

.product-copy p {
  margin-bottom: 19px;
  line-height: 1.7;
}

.products {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
}

.products article {
  position: relative;
  display: flex;
  align-items: flex-start;
  min-width: 0;
  min-height: 104px;
  gap: 12px;
  padding: 17px 15px;
  overflow: hidden;
  border: 1px solid #e4ece7;
  border-radius: 16px;
  background: #fff;
  box-shadow: 0 7px 22px rgba(31, 68, 47, .045);
  transition: transform var(--transition), border-color var(--transition), box-shadow var(--transition), background var(--transition);
}

.products article::after {
  content: "";
  position: absolute;
  right: -28px;
  bottom: -34px;
  width: 72px;
  height: 72px;
  border-radius: 50%;
  background: var(--color-primary-soft);
  opacity: 0;
  transition: opacity var(--transition), transform var(--transition);
}

.products article:hover {
  transform: translateY(-3px);
  border-color: #c8e3cf;
  background: #fdfffd;
  box-shadow: 0 13px 28px rgba(31, 68, 47, .085);
}

.products article:hover::after {
  opacity: .7;
  transform: scale(1.1);
}

.products article > div {
  position: relative;
  z-index: 1;
  min-width: 0;
}

.products h3 {
  font-size: 12px;
}

.products p {
  font-size: 10.5px;
}

/* Why IMLoket */
.why {
  display: grid;
  grid-template-columns: minmax(340px, .82fr) minmax(0, 1.18fr);
  align-items: center;
  gap: clamp(42px, 6vw, 78px);
  padding: clamp(58px, 7vw, 82px) max(calc((100vw - var(--container)) / 2), var(--gutter));
  background: linear-gradient(110deg, #effcf3 0%, #f9fffb 54%, #ffffff 100%);
}

.why-art {
  position: relative;
  min-height: 380px;
}

.why-visual-shell {
  position: relative;
  width: 100%;
  height: 380px;
  overflow: hidden;
  border: 1px solid rgba(7, 155, 85, .10);
  border-radius: 30px;
  background:
    radial-gradient(circle at 82% 18%, rgba(255,255,255,.98), transparent 23%),
    radial-gradient(circle at 12% 88%, rgba(7,155,85,.10), transparent 29%),
    linear-gradient(145deg, #dff7e7 0%, #f4fff7 55%, #eafaf0 100%);
  box-shadow: 0 24px 54px rgba(15, 90, 54, .10);
}

.why-phone {
  position: absolute;
  left: clamp(28px, 7vw, 72px);
  bottom: -48px;
  width: 174px;
  height: 350px;
  overflow: hidden;
  padding: 6px;
  border: 4px solid #17323a;
  border-radius: 29px;
  background: #17323a;
  box-shadow: 0 22px 38px rgba(16, 54, 49, .20);
  transform: rotate(-5deg);
}

.why-phone img {
  width: 100%;
  height: 100%;
  border-radius: 21px;
  object-fit: cover;
  object-position: top;
}

.why-brand {
  position: absolute;
  right: 24px;
  top: 38px;
  display: flex;
  align-items: center;
  max-width: 195px;
  gap: 10px;
  padding: 10px 12px;
  border: 1px solid rgba(255,255,255,.86);
  border-radius: 16px;
  background: rgba(255,255,255,.88);
  box-shadow: 0 12px 30px rgba(21, 82, 55, .09);
  backdrop-filter: blur(8px);
}

.why-mark {
  flex: 0 0 auto;
  width: 58px;
  height: 50px;
  object-fit: contain;
  filter: drop-shadow(0 8px 10px rgba(19, 79, 53, .12));
}

.why-brand span,
.why-brand small,
.why-brand b { display: block; }
.why-brand small { color: #6d8078; font-size: 9px; }
.why-brand b { margin-top: 2px; color: #164c38; font-size: 12px; line-height: 1.25; }

.why-badge {
  position: absolute;
  right: 24px;
  bottom: 38px;
  display: flex;
  align-items: center;
  width: 200px;
  gap: 10px;
  padding: 13px 14px;
  border: 1px solid rgba(7,155,85,.13);
  border-radius: 16px;
  background: rgba(255,255,255,.92);
  box-shadow: 0 12px 28px rgba(20, 84, 58, .09);
  color: #164c38;
}

.why-badge .ui-icon { width: 25px; height: 25px; color: var(--color-primary); }
.why-badge span,
.why-badge b,
.why-badge small { display: block; }
.why-badge b { font-size: 11px; }
.why-badge small { margin-top: 2px; color: #71827b; font-size: 9px; line-height: 1.35; }

.why-orbit {
  position: absolute;
  border-radius: 50%;
  border: 1px solid rgba(7,155,85,.16);
}
.why-orbit-one { right: -42px; top: 105px; width: 170px; height: 170px; }
.why-orbit-two { right: 74px; top: 162px; width: 34px; height: 34px; background: rgba(7,155,85,.08); }

.why-copy { max-width: 660px; }
.why-copy h2 { margin: 8px 0 10px; font-size: clamp(30px, 3.2vw, 42px); line-height: 1.12; }
.why-copy > p { max-width: 590px; margin: 0; font-size: 14px; line-height: 1.7; }

.steps {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin-top: 28px;
}

.steps article {
  display: flex;
  align-items: flex-start;
  min-height: 108px;
  gap: 12px;
  padding: 17px;
  border: 1px solid rgba(7,155,85,.10);
  border-radius: 16px;
  background: rgba(255,255,255,.76);
  box-shadow: 0 7px 22px rgba(18, 74, 49, .045);
}

.steps i {
  display: grid;
  flex: 0 0 38px;
  place-items: center;
  width: 38px;
  height: 38px;
  border-radius: 11px;
  background: var(--color-primary-soft);
  color: var(--color-primary-dark);
  font-size: 11px;
  font-style: normal;
  font-weight: 900;
}

.steps span,
.steps b,
.steps small { display: block; }
.steps b { margin-top: 1px; font-size: 13px; }
.steps small { margin-top: 5px; color: #677b84; font-size: 10.5px; line-height: 1.5; }

/* Partner */
.partner {
  display: grid;
  grid-template-columns: minmax(330px, .8fr) minmax(0, 1.2fr);
  align-items: center;
  gap: clamp(44px, 6vw, 76px);
  padding-block: clamp(58px, 7vw, 82px);
}

.partner-art {
  position: relative;
  min-height: 410px;
  overflow: hidden;
  border: 1px solid rgba(7, 155, 85, .10);
  border-radius: 30px;
  background:
    radial-gradient(circle at 18% 20%, rgba(255,255,255,.98), transparent 23%),
    linear-gradient(145deg, #e9faef 0%, #d8f3e2 100%);
  box-shadow: 0 24px 54px rgba(15, 90, 54, .09);
}

.partner-orbit {
  position: absolute;
  right: -68px;
  bottom: -68px;
  width: 250px;
  height: 250px;
  border: 1px solid rgba(7,155,85,.12);
  border-radius: 50%;
  box-shadow: inset 0 0 0 36px rgba(255,255,255,.15);
}

.partner-device {
  position: absolute;
  left: clamp(28px, 6vw, 66px);
  bottom: -62px;
  width: 177px;
  height: 397px;
  overflow: hidden;
  padding: 6px;
  border: 4px solid #16323b;
  border-radius: 29px;
  background: #16323b;
  box-shadow: 0 22px 38px rgba(16, 54, 49, .20);
  transform: rotate(-4deg);
}

.partner-device img {
  width: 100%;
  height: 100%;
  border-radius: 21px;
  object-fit: cover;
  object-position: top;
}

.partner-card {
  position: absolute;
  right: 22px;
  top: 44px;
  display: flex;
  align-items: center;
  width: 205px;
  gap: 10px;
  padding: 13px 14px;
  border: 1px solid rgba(255,255,255,.75);
  border-radius: 17px;
  background: rgba(255,255,255,.90);
  box-shadow: 0 14px 32px rgba(20, 84, 58, .10);
  backdrop-filter: blur(7px);
}

.partner-card img { flex: 0 0 auto; width: 58px; height: 50px; object-fit: contain; }
.partner-card span,
.partner-card small,
.partner-card b,
.partner-card em { display: block; }
.partner-card small { color: var(--color-primary-dark); font-size: 9px; font-weight: 800; }
.partner-card b { margin-top: 2px; color: #173744; font-size: 13px; }
.partner-card em { margin-top: 4px; color: #667b82; font-size: 9px; font-style: normal; line-height: 1.35; }

.partner-mini {
  position: absolute;
  right: 22px;
  bottom: 56px;
  display: flex;
  align-items: center;
  width: 205px;
  gap: 10px;
  padding: 12px 14px;
  border-radius: 17px;
  background: #087f4a;
  color: #fff;
  box-shadow: 0 15px 28px rgba(7, 126, 73, .18);
}
.partner-mini .ui-icon { flex: 0 0 auto; width: 25px; height: 25px; }
.partner-mini span,
.partner-mini b,
.partner-mini small { display: block; }
.partner-mini b { font-size: 11px; }
.partner-mini small { margin-top: 2px; color: rgba(255,255,255,.78); font-size: 9px; }

.partner-copy { min-width: 0; }
.partner-copy h2 { margin: 8px 0 11px; font-size: clamp(30px, 3.2vw, 42px); line-height: 1.12; }
.partner-copy > p { max-width: 650px; margin: 0; font-size: 14px; line-height: 1.7; }

.stats {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 11px;
  margin-top: 26px;
}

.stats article {
  display: flex;
  align-items: flex-start;
  min-width: 0;
  min-height: 108px;
  gap: 10px;
  padding: 15px;
  border: 1px solid var(--color-line);
  border-radius: 15px;
  background: #fff;
  box-shadow: 0 7px 22px rgba(18, 74, 49, .04);
}
.stats article > span:last-child,
.stats article b,
.stats article small { display: block; }
.stats article b { font-size: 12px; line-height: 1.35; }
.stats article small { margin-top: 5px; color: #71818a; font-size: 9.5px; font-weight: 400; line-height: 1.45; }

.partner-action {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  margin-top: 18px;
  padding: 17px 18px;
  border: 1px solid rgba(7,155,85,.11);
  border-radius: 17px;
  background: linear-gradient(105deg, #f3fbf5 0%, #f9fffa 100%);
}
.partner-action > div > b { font-size: 11px; }
.partner-action .btn { flex: 0 0 auto; white-space: nowrap; }

.partner-fit {
  display: flex;
  flex-wrap: wrap;
  gap: 7px 13px;
  margin: 9px 0 0;
  padding: 0;
  list-style: none;
  color: #557069;
  font-size: 10px;
}
.partner-fit li { display: flex; align-items: center; gap: 5px; }
.partner-fit .ui-icon { width: 13px; height: 13px; color: var(--color-primary); stroke-width: 2.5; }

/* How to start */
.start {
  padding-block: 24px;
}

.how {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 32px;
}

.how article {
  position: relative;
  display: flex;
  align-items: center;
  min-height: 82px;
  gap: 12px;
  padding: 15px 18px;
  border: 1px solid #e6f2e9;
  border-radius: var(--radius-md);
  background: #f4fbf6;
}

.how i {
  display: grid;
  flex: 0 0 48px;
  place-items: center;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: #dff6e5;
  color: var(--color-primary);
  font-size: 22px;
  font-style: normal;
  font-weight: 900;
}

.how em {
  position: absolute;
  right: -20px;
  color: var(--color-primary);
  font-size: 24px;
  font-style: normal;
}

/* Testimonials */
.testimonials {
  padding-block: 12px 24px;
}

.testimonials > p {
  color: #71818a;
  font-size: 10px;
}

.quotes {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px;
}

.quotes blockquote {
  position: relative;
  min-height: 155px;
  margin: 0;
  padding: 18px;
  border: 1px solid #e1e9e5;
  border-radius: var(--radius-md);
  color: #5c707a;
}

.quotes .avatar {
  display: grid;
  float: left;
  place-items: center;
  width: 42px;
  height: 42px;
  margin-right: 10px;
  border-radius: 50%;
  background: #dff4e5;
  color: #087f4a;
  font-weight: 900;
}

.quotes b,
.quotes small {
  display: block;
  color: #18394a;
  font-size: 11px;
}

.quotes small {
  color: #6e7e86;
  font-size: 9px;
}

.quotes p {
  clear: both;
  padding-top: 8px;
  font-size: 10px;
}

.quotes strong {
  color: #f2a500;
  font-size: 12px;
}

/* Final CTA */
.final {
  display: grid;
  grid-template-columns: 140px minmax(0, 1fr) auto 145px;
  align-items: center;
  min-height: 122px;
  gap: 18px;
  overflow: hidden;
  margin-block: 16px 36px;
  padding: 18px 30px;
  border-radius: 12px;
  background: linear-gradient(100deg, #079d4e, #00aa66);
  color: #fff;
}

.final img {
  width: 116px;
  height: 94px;
  object-fit: contain;
  filter: drop-shadow(0 10px 16px rgba(2, 80, 47, .16));
}

.final h2 {
  margin: 0;
  font-size: 23px;
}

.final p {
  margin: 4px 0;
  font-size: 10px;
}

.final em {
  font-size: 18px;
  font-weight: 700;
  text-align: center;
  transform: rotate(-8deg);
}

/* FAQ */
.faq {
  padding-block: 10px 52px;
  text-align: center;
}

.faq h2 {
  margin-bottom: 4px;
  font-size: 24px;
}

.faq > p {
  color: #71818a;
  font-size: 11px;
}

.faq-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
  margin-top: 20px;
  text-align: left;
}

.faq details {
  margin-bottom: 9px;
  padding: 13px 15px;
  border: 1px solid #e1e8e5;
  border-radius: 9px;
  background: #fff;
  box-shadow: var(--shadow-soft);
}

.faq summary {
  cursor: pointer;
  font-size: 11px;
  font-weight: 800;
}

.faq details p {
  color: #657983;
  font-size: 10px;
}

/* Footer */
footer {
  display: grid;
  grid-template-columns: 1.5fr repeat(4, minmax(0, 1fr));
  gap: 35px;
  padding: 30px max(calc((100vw - var(--container)) / 2), var(--gutter));
  background: var(--color-footer);
  color: #d9e7ec;
  font-size: 10px;
}

footer img {
  width: 145px;
  border-radius: 6px;
  background: #fff;
}

footer b,
footer a {
  display: block;
  margin-bottom: 6px;
}

footer b {
  margin-bottom: 10px;
  color: #fff;
}

.footer-lockup {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 12px;
}

.footer-lockup img {
  width: 45px;
  height: 41px;
  object-fit: contain;
}

.footer-lockup span {
  display: grid;
  line-height: 1;
}

.footer-lockup b {
  margin: 0;
  color: #fff;
  font-size: 20px;
  letter-spacing: -.7px;
}

.footer-lockup small {
  margin-top: 4px;
  color: #7ee2ad;
  font-size: 7px;
  font-weight: 800;
}

.foot-brand p {
  max-width: 210px;
}

.copyright {
  grid-column: 1 / -1;
  padding-top: 15px;
  border-top: 1px solid rgba(255, 255, 255, 0.11);
}

/* Tablet / compact desktop */
@media (max-width: 1100px) {
  .hero {
    grid-template-columns: minmax(390px, 0.92fr) minmax(470px, 1.08fr);
  }

  .phone-front {
    left: 28%;
  }

  .hero-float-bill,
  .hero-float-wallet {
    left: 52%;
  }

  .products-section {
    grid-template-columns: 250px minmax(0, 1fr);
    gap: 30px;
  }

  .product-copy {
    position: static;
  }

  .products {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .partner {
    grid-template-columns: 260px minmax(0, 1fr);
  }

  .partner aside {
    grid-column: 1 / -1;
    display: flex;
    align-items: center;
    gap: 22px;
  }

  .partner aside .shop {
    margin-right: 8px;
  }

  .partner aside p {
    flex: 1;
  }
}

/* Tablet / mobile navigation foundation */
@media (max-width: 900px) {
  :root {
    --gutter: 16px;
  }

  .desktop-nav,
  .desktop-actions {
    display: none;
  }

  .header {
    min-height: 70px;
  }

  .brand img {
    width: 45px;
    height: 42px;
  }

  .brand b { font-size: 19px; }

  .mobile-header-actions {
    display: flex;
  }

  .hero {
    grid-template-columns: 1fr;
    min-height: 0;
    padding: 34px var(--gutter) 0;
  }

  .hero-copy {
    width: 100%;
    max-width: 680px;
    margin-inline: auto;
    padding-block: 20px 12px;
    text-align: center;
  }

  .hero h1 {
    max-width: 670px;
    margin-inline: auto;
    font-size: clamp(38px, 7vw, 50px);
  }

  .hero-copy > p {
    margin-inline: auto;
  }

  .hero-trust,
  .hero .cta {
    justify-content: center;
  }

  .hero-art {
    width: 100%;
    max-width: 680px;
    min-height: 480px;
    margin-inline: auto;
  }

  .hero-glow {
    left: 50%;
    top: 40px;
    width: 390px;
    height: 390px;
    transform: translateX(-50%);
  }

  .phone-front {
    left: 50%;
    top: 45px;
    width: 202px;
    height: 408px;
    transform: translateX(-30%) rotate(2deg);
  }

  .phone-back {
    left: 50%;
    top: 82px;
    width: 174px;
    height: 352px;
    transform: translateX(-92%) rotate(-8deg);
  }

  .hero-float-pulsa {
    left: 6%;
    top: 70px;
  }

  .hero-float-bill {
    left: auto;
    right: 2%;
    top: 150px;
  }

  .hero-float-wallet {
    left: auto;
    right: 7%;
    bottom: 48px;
  }

  .hero-note {
    left: 8%;
    bottom: 42px;
  }

  .benefits,
  .steps {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .intro {
    padding-block: 42px 30px;
  }

  .benefits article {
    min-height: 102px;
  }

  .products-section,
  .why,
  .partner {
    grid-template-columns: 1fr;
    gap: 24px;
  }

  .products {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .why {
    padding-inline: var(--gutter);
  }

  .why-art {
    max-width: 420px;
  }

  .partner-art {
    max-width: 400px;
  }

  .partner aside {
    grid-column: auto;
  }

  .how,
  .quotes,
  .faq-grid {
    grid-template-columns: 1fr;
  }

  .how em {
    display: none;
  }

  .final {
    grid-template-columns: 90px minmax(0, 1fr);
    margin-inline: auto;
  }

  .final .btn {
    grid-column: 2;
  }

  .final em {
    display: none;
  }

  footer {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* Small mobile */
@media (max-width: 600px) {
  .header {
    min-height: 66px;
    gap: 10px;
  }

  .brand img {
    width: 42px;
    height: 40px;
  }

  .brand b { font-size: 18px; }
  .brand small { font-size: 7px; }

  .mobile-download {
    display: none;
  }

  .mobile-menu summary span {
    display: none;
  }

  .mobile-menu summary {
    width: 40px;
    padding-inline: 11px;
  }

  .hero {
    padding-top: 24px;
  }

  .hero-copy {
    padding-top: 10px;
  }

  .hero h1 {
    font-size: clamp(34px, 10vw, 42px);
    letter-spacing: -1.5px;
  }

  .hero-copy > p {
    font-size: 14px;
  }

  .hero-trust {
    justify-content: flex-start;
    max-width: 320px;
    margin-inline: auto;
  }

  .hero .cta {
    align-items: stretch;
    width: 100%;
  }

  .hero .cta .btn {
    width: 100%;
  }

  .play {
    margin-inline: auto;
  }

  .hero-art {
    min-height: 390px;
  }

  .hero-glow {
    top: 42px;
    width: 310px;
    height: 310px;
  }

  .phone-front {
    top: 39px;
    width: 170px;
    height: 344px;
    border-width: 6px;
    border-radius: 26px;
    transform: translateX(-31%) rotate(2deg);
  }

  .phone-back {
    top: 71px;
    width: 143px;
    height: 290px;
    border-width: 6px;
    border-radius: 24px;
    transform: translateX(-91%) rotate(-8deg);
  }

  .hero-float {
    min-width: 0;
    padding: 8px 9px;
    border-radius: 10px;
  }

  .hero-float i {
    flex-basis: 29px;
    width: 29px;
    height: 29px;
  }

  .hero-float small {
    display: none;
  }

  .hero-float-pulsa {
    left: 0;
    top: 73px;
  }

  .hero-float-bill {
    right: 0;
    top: 125px;
  }

  .hero-float-wallet {
    right: 2%;
    bottom: 48px;
  }

  .hero-note {
    left: 2%;
    bottom: 32px;
    font-size: 11px;
  }

  .benefits,
  .products,
  .steps,
  .stats {
    grid-template-columns: 1fr;
  }

  .intro > p br {
    display: none;
  }

  .benefits article,
  .products article {
    min-height: 0;
  }

  .products-section {
    padding-block: 38px 46px;
  }

  .cta {
    flex-direction: column;
    align-items: flex-start;
  }

  .partner aside {
    display: block;
  }

  .final {
    grid-template-columns: 1fr;
    text-align: center;
  }

  .final img {
    margin-inline: auto;
  }

  .final .btn {
    grid-column: auto;
  }

  footer {
    grid-template-columns: 1fr;
  }
}

/* =========================================================
   Stage 5 — Unified SVG icon system
   ========================================================= */
.icon-library {
  position: absolute;
  width: 0;
  height: 0;
  overflow: hidden;
}

.ui-icon {
  display: block;
  width: 1.15em;
  height: 1.15em;
  flex: 0 0 auto;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.btn-icon {
  width: 16px;
  height: 16px;
}

.btn .ui-icon {
  transition: transform var(--transition);
}

.btn:hover .btn-icon {
  transform: translateX(2px);
}

.hero-primary:hover .btn-icon {
  transform: translateY(2px);
}

.hero-trust .ui-icon {
  width: 19px;
  height: 19px;
  padding: 4px;
  border-radius: 50%;
  background: var(--color-primary-soft);
  color: var(--color-primary-dark);
  stroke-width: 2.25;
}

.play strong {
  display: flex;
  align-items: center;
  gap: 5px;
}

.play-icon {
  width: 14px;
  height: 14px;
  fill: currentColor;
  stroke: none;
}

.hero-float-icon,
.icon-badge,
.product-icon,
.stat-icon,
.how-icon {
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  color: var(--color-primary-dark);
  background: var(--color-primary-soft);
}

.hero-float-icon {
  width: 34px;
  height: 34px;
  padding: 8px;
  border-radius: 10px;
}

.icon-badge {
  width: 46px;
  height: 46px;
  border-radius: 14px;
}

.icon-badge .ui-icon {
  width: 23px;
  height: 23px;
}

.product-icon {
  width: 42px;
  height: 42px;
  border-radius: 12px;
}

.product-icon .ui-icon {
  width: 21px;
  height: 21px;
}

.products article:hover .product-icon,
.benefits article:hover.icon-badge {
  background: #c9f0d5;
  transform: translateY(-1px);
}

.product-icon,
.icon-badge {
  transition: background var(--transition), transform var(--transition);
}

.stat-icon {
  width: 34px;
  height: 34px;
  border-radius: 10px;
}

.stat-icon .ui-icon {
  width: 19px;
  height: 19px;
}

.partner aside .shop .ui-icon {
  width: 30px;
  height: 30px;
}

.partner-fit {
  display: grid;
  gap: 7px;
  margin: 12px 0 17px;
  padding: 0;
  list-style: none;
  color: inherit;
  font-size: 11px;
}

.partner-fit li {
  display: flex;
  align-items: center;
  gap: 7px;
}

.partner-fit .ui-icon {
  width: 15px;
  height: 15px;
  stroke-width: 2.4;
}

.how-icon {
  width: 42px;
  height: 42px;
  border-radius: 12px;
}

.how-icon .ui-icon {
  width: 21px;
  height: 21px;
}

.how article > em .ui-icon {
  width: 17px;
  height: 17px;
}

/* =========================================================
   Stage 7 — Why + Partner responsive refinement
   ========================================================= */
@media (max-width: 1100px) {
  .why {
    grid-template-columns: minmax(300px, .76fr) minmax(0, 1.24fr);
    gap: 34px;
  }

  .why-visual-shell,
  .why-art { min-height: 350px; height: 350px; }
  .why-phone { width: 156px; height: 314px; }
  .why-brand { right: 18px; top: 28px; width: 175px; }
  .why-badge { right: 18px; bottom: 28px; width: 184px; }

  .partner {
    grid-template-columns: minmax(300px, .75fr) minmax(0, 1.25fr);
    gap: 34px;
  }
  .partner-art { min-height: 380px; }
  .partner-device { width: 160px; height: 360px; }
  .partner-card,
  .partner-mini { width: 188px; right: 18px; }
  .stats { grid-template-columns: 1fr; }
  .stats article { min-height: 74px; }
}

@media (max-width: 900px) {
  .why,
  .partner {
    grid-template-columns: 1fr;
    gap: 30px;
  }

  .why-art,
  .partner-art {
    width: min(100%, 520px);
    margin-inline: auto;
  }

  .why-copy,
  .partner-copy {
    width: min(100%, 680px);
    margin-inline: auto;
  }

  .partner-art { min-height: 390px; }
  .stats { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .stats article { min-height: 108px; }
}

@media (max-width: 700px) {
  .why {
    padding-block: 48px;
  }

  .why-art,
  .why-visual-shell { min-height: 330px; height: 330px; }
  .why-phone { left: 30px; width: 145px; height: 292px; }
  .why-brand { right: 16px; top: 24px; width: 170px; }
  .why-badge { right: 16px; bottom: 24px; width: 175px; }
  .steps { grid-template-columns: 1fr; }
  .steps article { min-height: 92px; }

  .partner { padding-block: 48px; }
  .partner-art { min-height: 355px; }
  .partner-device { left: 28px; width: 146px; height: 329px; }
  .partner-card,
  .partner-mini { right: 16px; width: 178px; }
  .partner-card { top: 35px; }
  .partner-mini { bottom: 43px; }
  .stats { grid-template-columns: 1fr; }
  .stats article { min-height: 76px; }
  .partner-action { align-items: stretch; flex-direction: column; }
  .partner-action .btn { width: 100%; }
}

@media (max-width: 460px) {
  .why-art,
  .why-visual-shell { min-height: 300px; height: 300px; }
  .why-phone { left: 18px; bottom: -39px; width: 128px; height: 258px; border-width: 3px; }
  .why-brand { right: 12px; top: 18px; width: 154px; padding: 9px; }
  .why-mark { width: 45px; height: 40px; }
  .why-badge { right: 12px; bottom: 19px; width: 160px; padding: 11px; }
  .why-badge .ui-icon { width: 22px; height: 22px; }
  .why-orbit-one { width: 130px; height: 130px; }

  .why-copy h2,
  .partner-copy h2 { font-size: 30px; }

  .partner-art { min-height: 320px; }
  .partner-device { left: 18px; bottom: -50px; width: 130px; height: 293px; border-width: 3px; }
  .partner-card,
  .partner-mini { right: 12px; width: 166px; }
  .partner-card { top: 26px; padding: 10px; }
  .partner-card img { width: 45px; height: 40px; }
  .partner-mini { bottom: 34px; padding: 10px; }
}

/* =========================================================
   Stage 8 — How to Start + Partner Stories
   ========================================================= */
.section-heading {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 28px;
  margin-bottom: 22px;
}
.section-heading > div { min-width: 0; }
.section-heading h2 { margin-bottom: 0; }
.section-heading > p {
  max-width: 470px;
  margin: 0;
  color: #64767e;
  font-size: 13px;
  line-height: 1.7;
}

.start {
  padding-block: 56px;
}
.start-heading { margin-bottom: 28px; }

.how {
  position: relative;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px;
}
.how::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 11%;
  right: 11%;
  height: 1px;
  background: linear-gradient(90deg, transparent, #cfe7d6 12%, #cfe7d6 88%, transparent);
  transform: translateY(-50%);
  z-index: 0;
}
.how article {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  grid-template-rows: auto auto;
  align-items: start;
  min-height: 188px;
  gap: 16px 15px;
  padding: 22px;
  border: 1px solid #deebe2;
  border-radius: 20px;
  background: rgba(255,255,255,.97);
  box-shadow: 0 14px 36px rgba(11, 76, 50, .06);
  transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease;
}
.how article:hover {
  transform: translateY(-3px);
  border-color: #bddfc7;
  box-shadow: 0 18px 40px rgba(11, 76, 50, .09);
}
.how .step-number {
  position: absolute;
  top: 16px;
  right: 18px;
  color: #d7e9dc;
  font-size: 30px;
  font-weight: 900;
  line-height: 1;
  letter-spacing: -.04em;
}
.how-icon {
  display: grid;
  grid-row: 1 / span 2;
  place-items: center;
  width: 54px;
  height: 54px;
  border: 1px solid #d6ebdc;
  border-radius: 16px;
  background: linear-gradient(145deg, #effbf2, #dcf4e4);
  color: var(--color-primary);
}
.how-icon .ui-icon { width: 25px; height: 25px; }
.how article > div { align-self: center; padding-right: 18px; }
.how article b {
  display: block;
  color: #173d32;
  font-size: 15px;
  line-height: 1.35;
}
.how article small {
  display: block;
  margin-top: 7px;
  color: #6a7e76;
  font-size: 12px;
  line-height: 1.65;
}
.how article > em {
  position: absolute;
  top: 50%;
  right: -22px;
  display: grid;
  place-items: center;
  width: 32px;
  height: 32px;
  border: 1px solid #d5e9da;
  border-radius: 50%;
  background: #fff;
  color: var(--color-primary);
  transform: translateY(-50%);
  box-shadow: 0 6px 18px rgba(11, 76, 50, .08);
}
.how article > em .ui-icon { width: 15px; height: 15px; }

.start-cta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  margin-top: 20px;
  padding: 13px 16px;
  border: 1px solid #e1eee5;
  border-radius: 14px;
  background: #f8fcf9;
  color: #587168;
  font-size: 12px;
}
.start-cta > span,
.start-cta .text-link {
  display: inline-flex;
  align-items: center;
  gap: 7px;
}
.start-cta > span .ui-icon { width: 16px; height: 16px; color: var(--color-primary); }
.text-link {
  color: var(--color-primary);
  font-weight: 800;
  text-decoration: none;
  white-space: nowrap;
}
.text-link .ui-icon { width: 15px; height: 15px; transition: transform .2s ease; }
.text-link:hover .ui-icon { transform: translateX(3px); }

.testimonials {
  padding-block: 56px 64px;
}
.stories-heading { margin-bottom: 26px; }
.quotes.partner-stories {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px;
}
.partner-stories article {
  position: relative;
  min-height: 250px;
  overflow: hidden;
  padding: 22px;
  border: 1px solid #e0eae4;
  border-radius: 20px;
  background: #fff;
  box-shadow: 0 14px 36px rgba(13, 68, 48, .05);
  transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease;
}
.partner-stories article::after {
  content: "";
  position: absolute;
  right: -36px;
  bottom: -40px;
  width: 115px;
  height: 115px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(15,161,88,.10), rgba(15,161,88,0) 70%);
  pointer-events: none;
}
.partner-stories article:hover {
  transform: translateY(-3px);
  border-color: #bfdcc8;
  box-shadow: 0 18px 42px rgba(13, 68, 48, .08);
}
.story-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 20px;
}
.story-icon {
  display: grid;
  place-items: center;
  width: 48px;
  height: 48px;
  border-radius: 15px;
  background: #edf9f1;
  color: var(--color-primary);
}
.story-icon .ui-icon { width: 23px; height: 23px; }
.story-tag {
  padding: 6px 9px;
  border-radius: 999px;
  background: #f1f7f3;
  color: #4e6d60;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .02em;
}
.partner-stories h3 {
  margin: 0;
  color: #173d32;
  font-size: 16px;
  line-height: 1.35;
}
.partner-stories p {
  margin: 9px 0 16px;
  color: #667b73;
  font-size: 12px;
  line-height: 1.65;
}
.partner-stories ul {
  display: grid;
  gap: 8px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.partner-stories li {
  display: flex;
  align-items: center;
  gap: 7px;
  color: #506b61;
  font-size: 11px;
  font-weight: 700;
}
.partner-stories li .ui-icon {
  flex: 0 0 auto;
  width: 14px;
  height: 14px;
  color: var(--color-primary);
  stroke-width: 2.5;
}

@media (max-width: 900px) {
  .section-heading {
    align-items: start;
    flex-direction: column;
    gap: 10px;
  }
  .section-heading > p { max-width: 620px; }
  .how,
  .quotes.partner-stories { grid-template-columns: 1fr; }
  .how::before { display: none; }
  .how article { min-height: 142px; }
  .how article > em { display: none; }
  .start-cta { align-items: flex-start; flex-direction: column; }
}

@media (max-width: 560px) {
  .start,
  .testimonials { padding-block: 44px; }
  .how { gap: 14px; }
  .how article {
    grid-template-columns: 46px minmax(0, 1fr);
    min-height: 0;
    gap: 12px;
    padding: 18px;
    border-radius: 17px;
  }
  .how-icon { width: 46px; height: 46px; border-radius: 14px; }
  .how-icon .ui-icon { width: 21px; height: 21px; }
  .how .step-number { top: 14px; right: 15px; font-size: 24px; }
  .how article > div { padding-right: 20px; }
  .how article b { font-size: 14px; }
  .how article small { font-size: 11.5px; }
  .start-cta { padding: 13px 14px; }
  .start-cta .text-link { white-space: normal; }
  .partner-stories article { min-height: 0; padding: 19px; border-radius: 17px; }
}

/* =========================================================
   Stage 9 — Final CTA, FAQ & Footer
   ========================================================= */
.final {
  position: relative;
  display: grid;
  grid-template-columns: 150px minmax(0, 1fr) minmax(250px, .62fr);
  align-items: center;
  min-height: 220px;
  gap: 30px;
  overflow: hidden;
  margin-block: 30px 58px;
  padding: 34px 38px;
  border: 1px solid rgba(255,255,255,.22);
  border-radius: 26px;
  background:
    radial-gradient(circle at 8% 15%, rgba(255,255,255,.18), transparent 25%),
    linear-gradient(115deg, #087d49 0%, #0fa158 48%, #0bb270 100%);
  box-shadow: 0 22px 56px rgba(5, 109, 61, .17);
  color: #fff;
}
.final::after {
  content: "";
  position: absolute;
  right: -90px;
  bottom: -115px;
  width: 320px;
  height: 320px;
  border: 1px solid rgba(255,255,255,.11);
  border-radius: 50%;
  box-shadow: 0 0 0 45px rgba(255,255,255,.035), 0 0 0 90px rgba(255,255,255,.025);
  pointer-events: none;
}
.final-brand {
  position: relative;
  z-index: 1;
  display: grid;
  place-items: center;
  width: 142px;
  height: 142px;
  border: 1px solid rgba(255,255,255,.2);
  border-radius: 28px;
  background: rgba(255,255,255,.12);
  backdrop-filter: blur(8px);
}
.final-brand img {
  width: 120px;
  height: 108px;
  object-fit: contain;
  filter: drop-shadow(0 12px 20px rgba(0, 67, 38, .18));
}
.final-copy { position: relative; z-index: 1; }
.final-kicker {
  display: inline-flex;
  margin-bottom: 9px;
  padding: 6px 10px;
  border: 1px solid rgba(255,255,255,.26);
  border-radius: 999px;
  background: rgba(255,255,255,.11);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .04em;
  text-transform: uppercase;
}
.final h2 {
  max-width: 650px;
  margin: 0;
  font-size: clamp(25px, 2.45vw, 36px);
  line-height: 1.12;
  letter-spacing: -.035em;
}
.final p {
  max-width: 650px;
  margin: 11px 0 0;
  color: rgba(255,255,255,.88);
  font-size: 13px;
  line-height: 1.65;
}
.final-points {
  display: flex;
  flex-wrap: wrap;
  gap: 9px 18px;
  margin-top: 16px;
}
.final-points span {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 11px;
  font-weight: 750;
}
.final-points .ui-icon { width: 14px; height: 14px; }
.final-action {
  position: relative;
  z-index: 1;
  display: grid;
  justify-items: stretch;
  gap: 10px;
}
.final-action .btn {
  justify-content: center;
  min-height: 50px;
  border: 0;
  color: #087748;
  box-shadow: 0 12px 26px rgba(0, 73, 42, .16);
}
.final-action small {
  color: rgba(255,255,255,.76);
  font-size: 10px;
  line-height: 1.55;
  text-align: center;
}

.faq {
  padding-block: 20px 72px;
  text-align: left;
}
.faq-heading {
  max-width: 680px;
  margin: 0 auto 30px;
  text-align: center;
}
.faq .section-kicker { display: inline-block; margin-bottom: 8px; }
.faq h2 {
  margin: 0;
  color: #173d32;
  font-size: clamp(25px, 2.6vw, 34px);
  letter-spacing: -.035em;
}
.faq-heading > p {
  margin: 10px auto 0;
  color: #6c8078;
  font-size: 13px;
  line-height: 1.65;
}
.faq-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px 18px;
  margin-top: 0;
}
.faq-grid > div { display: grid; gap: 12px; align-content: start; }
.faq details {
  margin: 0;
  padding: 0;
  overflow: hidden;
  border: 1px solid #dfeae3;
  border-radius: 16px;
  background: #fff;
  box-shadow: 0 8px 26px rgba(13, 68, 48, .04);
  transition: border-color .2s ease, box-shadow .2s ease;
}
.faq details[open] {
  border-color: #bee0c8;
  box-shadow: 0 12px 30px rgba(13, 68, 48, .07);
}
.faq summary {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  min-height: 58px;
  padding: 16px 18px;
  cursor: pointer;
  color: #244b3f;
  font-size: 12.5px;
  font-weight: 800;
  list-style: none;
}
.faq summary::-webkit-details-marker { display: none; }
.faq summary i {
  position: relative;
  flex: 0 0 auto;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background: #eff8f2;
}
.faq summary i::before,
.faq summary i::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 9px;
  height: 1.5px;
  border-radius: 2px;
  background: var(--color-primary);
  transform: translate(-50%, -50%);
  transition: transform .2s ease;
}
.faq summary i::after { transform: translate(-50%, -50%) rotate(90deg); }
.faq details[open] summary i::after { transform: translate(-50%, -50%) rotate(0); }
.faq details p {
  margin: 0;
  padding: 0 18px 18px;
  color: #62776f;
  font-size: 11.5px;
  line-height: 1.7;
}
.faq-cta {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  margin-top: 22px;
  color: #647970;
  font-size: 11.5px;
}
.faq-cta a {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: var(--color-primary);
  font-weight: 800;
  text-decoration: none;
}
.faq-cta .ui-icon { width: 14px; height: 14px; }

footer {
  display: block;
  padding: 0 max(calc((100vw - var(--container)) / 2), var(--gutter));
  background: var(--color-footer);
  color: #c9d9df;
  font-size: 11px;
}
.footer-main {
  display: grid;
  grid-template-columns: minmax(250px, 1.15fr) minmax(0, 2fr);
  gap: 70px;
  padding-block: 42px 34px;
}
.footer-links {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 28px;
}
footer b,
footer a { display: block; margin-bottom: 8px; }
footer b { margin-bottom: 14px; color: #fff; font-size: 12px; }
footer a { color: #c2d1d6; text-decoration: none; transition: color .18s ease; }
footer a:hover { color: #fff; }
.footer-lockup { margin-bottom: 14px; }
.footer-lockup img { width: 50px; height: 45px; }
.footer-lockup b { margin: 0; font-size: 21px; }
.footer-lockup small { font-size: 7px; }
.foot-brand p {
  max-width: 330px;
  margin: 0 0 18px;
  color: #a9bcc2;
  font-size: 11px;
  line-height: 1.7;
}
.footer-play {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  width: fit-content;
  margin: 0;
  padding: 8px 12px;
  border: 1px solid rgba(255,255,255,.14);
  border-radius: 10px;
  background: rgba(255,255,255,.055);
  color: #fff;
}
.footer-play > .ui-icon { width: 23px; height: 23px; }
.footer-play span { display: grid; }
.footer-play small { color: #9fb2b8; font-size: 7px; line-height: 1; }
.footer-play strong { margin-top: 2px; color: #fff; font-size: 13px; line-height: 1; }
.footer-bottom {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding-block: 16px 20px;
  border-top: 1px solid rgba(255,255,255,.10);
  color: #82989f;
  font-size: 9.5px;
}

@media (max-width: 900px) {
  .final {
    grid-template-columns: 112px minmax(0, 1fr);
    gap: 24px;
    padding: 28px;
  }
  .final-brand { width: 108px; height: 108px; border-radius: 22px; }
  .final-brand img { width: 92px; height: 84px; }
  .final-action { grid-column: 2; justify-items: start; }
  .final-action .btn { width: auto; }
  .final-action small { max-width: 360px; text-align: left; }
  .faq-grid { grid-template-columns: 1fr; }
  .footer-main { grid-template-columns: 1fr; gap: 32px; }
}

@media (max-width: 640px) {
  .final {
    grid-template-columns: 1fr;
    gap: 20px;
    margin-block: 22px 46px;
    padding: 24px 20px;
    border-radius: 22px;
    text-align: left;
  }
  .final-brand { width: 92px; height: 92px; }
  .final-brand img { width: 80px; height: 72px; }
  .final-action { grid-column: auto; justify-items: stretch; }
  .final-action .btn { width: 100%; }
  .final-action small { text-align: left; }
  .final-points { display: grid; gap: 8px; }
  .faq { padding-block: 8px 54px; }
  .faq-heading { margin-bottom: 22px; }
  .faq summary { min-height: 56px; padding: 15px 16px; font-size: 12px; }
  .faq details p { padding: 0 16px 16px; }
  .faq-cta { align-items: flex-start; flex-direction: column; }
  .footer-main { padding-block: 34px 28px; }
  .footer-links { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px 20px; }
  .footer-bottom { align-items: flex-start; flex-direction: column; gap: 6px; }
}

@media (max-width: 430px) {
  .footer-links { grid-template-columns: 1fr; }
}

/* =========================================================
   Stage 10 — Final responsive audit & viewport polish
   Targets: 360 / 390 / 430 / 768 / 1024 / 1366 / 1440
   ========================================================= */

/* Sticky-header anchor comfort */
section[id] {
  scroll-margin-top: 92px;
}

/* Prevent long labels / URLs / button copy from forcing overflow */
.btn,
.faq summary span,
.partner-action,
.footer-links,
.final-copy,
.final-action,
.product-copy,
.products article,
.partner-stories article {
  min-width: 0;
}

@media (max-width: 1200px) and (min-width: 901px) {
  :root { --gutter: 22px; }

  .header { gap: 20px; }
  .desktop-nav { gap: 16px; }
  .hero { gap: 26px; }
  .hero h1 { font-size: clamp(42px, 4.6vw, 54px); }

  .products-section { gap: 26px; }
  .products { gap: 14px; }

  .final { gap: 24px; padding-inline: 30px; }
}

/* Dedicated tablet composition: 768–900px */
@media (max-width: 900px) and (min-width: 641px) {
  .header { width: min(var(--container), calc(100% - 32px)); }

  .hero {
    padding-top: 28px;
    padding-inline: 20px;
  }
  .hero-copy { padding-top: 12px; }
  .hero-art { min-height: 455px; }

  .intro,
  .products-section,
  .start,
  .testimonials,
  .final,
  .faq {
    width: min(var(--container), calc(100% - 40px));
  }

  .benefits { gap: 14px; }
  .benefits article { padding: 18px; }
  .products { gap: 14px; }

  .why,
  .partner {
    padding-inline: 20px;
  }

  .section-heading { margin-bottom: 22px; }
  .partner-stories article { min-height: 0; }

  .faq-grid { gap: 12px; }
}

/* 430px class phones */
@media (max-width: 430px) {
  :root { --gutter: 15px; }

  .header { min-height: 64px; }
  .brand { gap: 7px; }
  .brand img { width: 39px; height: 37px; }
  .brand b { font-size: 17px; }
  .brand small { font-size: 6.5px; }

  .hero {
    padding-top: 18px;
    padding-inline: var(--gutter);
  }
  .hero-copy { padding-top: 6px; }
  .hero h1 {
    font-size: clamp(32px, 9.2vw, 38px);
    line-height: 1.05;
    letter-spacing: -1.2px;
  }
  .hero-copy > p { font-size: 13.5px; line-height: 1.65; }
  .hero-trust { gap: 7px 10px; }
  .hero-trust span { font-size: 10.5px; }
  .hero-art { min-height: 365px; }
  .hero-glow { width: 285px; height: 285px; }
  .phone-front { width: 158px; height: 320px; }
  .phone-back { width: 132px; height: 268px; }
  .hero-float { font-size: 10px; }
  .hero-float-pulsa { top: 66px; }
  .hero-float-bill { top: 118px; }
  .hero-float-wallet { bottom: 43px; }
  .hero-note { bottom: 27px; font-size: 10px; }

  .intro { padding-block: 36px 26px; }
  .benefits { gap: 12px; }
  .benefits article,
  .products article { border-radius: 16px; }

  .products-section { padding-block: 34px 42px; }
  .products { gap: 12px; }

  .why,
  .partner { gap: 22px; }
  .why-copy h2,
  .partner-copy h2 { font-size: 28px; }
  .why-copy > p,
  .partner-copy > p { font-size: 13.5px; }

  .section-heading h2 { font-size: 27px; line-height: 1.15; }
  .section-heading > p { font-size: 12.5px; }

  .final-copy h2 { font-size: 27px; line-height: 1.12; }
  .final-copy p { font-size: 12.5px; }
}

/* Narrow phones: remove decorative competition and protect visual cards */
@media (max-width: 390px) {
  .hero-art { min-height: 340px; }
  .hero-glow { top: 38px; width: 260px; height: 260px; }
  .phone-front {
    top: 35px;
    width: 150px;
    height: 304px;
    transform: translateX(-29%) rotate(2deg);
  }
  .phone-back {
    top: 65px;
    width: 123px;
    height: 250px;
    transform: translateX(-94%) rotate(-7deg);
  }
  .hero-float-pulsa { left: 0; top: 58px; }
  .hero-float-bill,
  .hero-float-wallet { display: none; }
  .hero-note {
    left: auto;
    right: 0;
    bottom: 22px;
    max-width: 145px;
    text-align: right;
  }

  .why-art,
  .why-visual-shell { min-height: 284px; height: 284px; }
  .why-phone { left: 12px; width: 120px; height: 242px; }
  .why-brand { right: 8px; width: 148px; }
  .why-badge { right: 8px; width: 154px; }

  .partner-art { min-height: 302px; }
  .partner-device { left: 10px; width: 122px; height: 275px; }
  .partner-card,
  .partner-mini { right: 8px; width: 160px; }
  .partner-card b { font-size: 12px; }
  .partner-card em { font-size: 8.5px; }

  .final { padding-inline: 18px; }
  .faq summary { gap: 12px; }
}

/* 360px safety net */
@media (max-width: 360px) {
  :root { --gutter: 13px; }

  .brand span { max-width: 105px; }
  .brand b { font-size: 16px; }

  .hero h1 { font-size: 31px; }
  .hero .btn { padding-inline: 15px; }
  .hero-art { min-height: 326px; }
  .phone-front { width: 143px; height: 290px; }
  .phone-back { width: 116px; height: 236px; }
  .hero-float-pulsa { transform: scale(.94); transform-origin: left top; }
  .hero-note { max-width: 132px; font-size: 9.5px; }

  .why-brand { width: 140px; }
  .why-badge { width: 146px; }
  .partner-card,
  .partner-mini { width: 151px; }

  .how article { padding: 16px; }
  .partner-stories article { padding: 17px; }
  .final { padding: 22px 16px; }
  .footer-main { padding-top: 30px; }
}

/* Respect reduced-motion preference */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after {
    scroll-behavior: auto !important;
    transition-duration: .01ms !important;
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
  }
}

/* ===== Stage 11: refreshed brand + Play Store QR ===== */
.brand-icon-only {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
}
.brand-icon-only img {
  width: 58px;
  height: 58px;
  object-fit: contain;
  display: block;
}
.footer-lockup-icon {
  display: inline-flex;
  align-items: center;
  margin-bottom: 14px;
}
.footer-lockup-icon img {
  width: 78px;
  height: 78px;
  object-fit: contain;
}
.qr-download {
  display: grid;
  grid-template-columns: 104px minmax(0,1fr);
  gap: 14px;
  align-items: center;
  width: min(100%, 330px);
  padding: 10px 12px;
  border: 1px solid rgba(255,255,255,.24);
  border-radius: 18px;
  background: rgba(255,255,255,.1);
  backdrop-filter: blur(8px);
}
.qr-download img {
  width: 104px;
  aspect-ratio: 1;
  object-fit: contain;
  display: block;
  border-radius: 10px;
  background: #fff;
}
.qr-download span { display: grid; gap: 4px; }
.qr-download b { color: #fff; font-size: 13px; line-height: 1.2; }
.qr-download small { color: rgba(255,255,255,.76); font-size: 10px; line-height: 1.45; }

@media (max-width: 700px) {
  .brand-icon-only img { width: 50px; height: 50px; }
  .qr-download {
    width: 100%;
    grid-template-columns: 92px minmax(0,1fr);
  }
  .qr-download img { width: 92px; }
}
@media (max-width: 390px) {
  .brand-icon-only img { width: 46px; height: 46px; }
  .footer-lockup-icon img { width: 68px; height: 68px; }
  .qr-download { grid-template-columns: 82px minmax(0,1fr); padding: 9px; gap: 11px; }
  .qr-download img { width: 82px; }
}
