
@font-face {
  font-family: "Lama Sans";
  src: url("assets/fonts/ArbFONTS-LamaSans-Thin.ttf") format("truetype");
  font-style: normal;
  font-weight: 100;
  font-display: swap;
}

@font-face {
  font-family: "Lama Sans";
  src: url("assets/fonts/ArbFONTS-LamaSans-ThinItalic.ttf") format("truetype");
  font-style: italic;
  font-weight: 100;
  font-display: swap;
}

@font-face {
  font-family: "Lama Sans";
  src: url("assets/fonts/ArbFONTS-LamaSans-ExtraLight.ttf") format("truetype");
  font-style: normal;
  font-weight: 200;
  font-display: swap;
}

@font-face {
  font-family: "Lama Sans";
  src: url("assets/fonts/ArbFONTS-LamaSans-ExtraLightItalic.ttf") format("truetype");
  font-style: italic;
  font-weight: 200;
  font-display: swap;
}

@font-face {
  font-family: "Lama Sans";
  src: url("assets/fonts/ArbFONTS-LamaSans-Light.ttf") format("truetype");
  font-style: normal;
  font-weight: 300;
  font-display: swap;
}

@font-face {
  font-family: "Lama Sans";
  src: url("assets/fonts/ArbFONTS-LamaSans-LightItalic.ttf") format("truetype");
  font-style: italic;
  font-weight: 300;
  font-display: swap;
}

@font-face {
  font-family: "Lama Sans";
  src: url("assets/fonts/ArbFONTS-LamaSans-Regular.ttf") format("truetype");
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}

@font-face {
  font-family: "Lama Sans";
  src: url("assets/fonts/ArbFONTS-LamaSans-RegularItalic.ttf") format("truetype");
  font-style: italic;
  font-weight: 400;
  font-display: swap;
}

@font-face {
  font-family: "Lama Sans";
  src: url("assets/fonts/ArbFONTS-LamaSans-Medium.ttf") format("truetype");
  font-style: normal;
  font-weight: 500;
  font-display: swap;
}

@font-face {
  font-family: "Lama Sans";
  src: url("assets/fonts/ArbFONTS-LamaSans-MediumItalic.ttf") format("truetype");
  font-style: italic;
  font-weight: 500;
  font-display: swap;
}

@font-face {
  font-family: "Lama Sans";
  src: url("assets/fonts/ArbFONTS-LamaSans-SemiBold.ttf") format("truetype");
  font-style: normal;
  font-weight: 600;
  font-display: swap;
}

@font-face {
  font-family: "Lama Sans";
  src: url("assets/fonts/ArbFONTS-LamaSans-SemiBoldItalic.ttf") format("truetype");
  font-style: italic;
  font-weight: 600;
  font-display: swap;
}

@font-face {
  font-family: "Lama Sans";
  src: url("assets/fonts/ArbFONTS-LamaSans-Bold.ttf") format("truetype");
  font-style: normal;
  font-weight: 700;
  font-display: swap;
}

@font-face {
  font-family: "Lama Sans";
  src: url("assets/fonts/ArbFONTS-LamaSans-BoldItalic.ttf") format("truetype");
  font-style: italic;
  font-weight: 700;
  font-display: swap;
}

@font-face {
  font-family: "Lama Sans";
  src: url("assets/fonts/ArbFONTS-LamaSans-ExtraBold.ttf") format("truetype");
  font-style: normal;
  font-weight: 800;
  font-display: swap;
}

@font-face {
  font-family: "Lama Sans";
  src: url("assets/fonts/ArbFONTS-LamaSans-ExtraBoldItalic.ttf") format("truetype");
  font-style: italic;
  font-weight: 800;
  font-display: swap;
}

@font-face {
  font-family: "Lama Sans";
  src: url("assets/fonts/ArbFONTS-LamaSans-Black.ttf") format("truetype");
  font-style: normal;
  font-weight: 900;
  font-display: swap;
}

@font-face {
  font-family: "Lama Sans";
  src: url("assets/fonts/ArbFONTS-LamaSans-BlackItalic.ttf") format("truetype");
  font-style: italic;
  font-weight: 900;
  font-display: swap;
}

:root {
  --inverse-surface: #001b63;
  --on-secondary: #ffffff;
  --outline-variant: #c8d5f4;
  --on-primary: #ffffff;
  --surface-container-lowest: #ffffff;
  --surface-variant: #e3eaff;
  --secondary-fixed-dim: #b7c4ff;
  --surface-container-high: #e8efff;
  --primary-container: #0d287e;
  --secondary: #0045df;
  --surface-container-low: #f1f5ff;
  --primary: #001456;
  --surface-container: #edf2ff;
  --on-secondary-fixed: #001453;
  --background: #f8faff;
  --on-surface-variant: #3c527f;
  --outline: #7187b8;
  --on-surface: #0b1f4d;
  --on-primary-container: #8094ee;
  --secondary-container: #2e5ffe;
  --secondary-fixed: #dde1ff;
  --surface: #f8faff;
  --green-100: #dcfce7;
  --green-700: #15803d;
  --spacing-xs: 4px;
  --spacing-base: 8px;
  --spacing-sm: 12px;
  --spacing-md: 16px;
  --spacing-lg: 24px;
  --spacing-xl: 32px;
  --spacing-xxl: 48px;
  --margin-mobile: 16px;
  --margin-desktop: 80px;
  --font-family: "Lama Sans", Tahoma, Arial, sans-serif;
}

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

html {
  scroll-behavior: smooth;
}

body {
  margin: 0;
  font-family: var(--font-family);
  line-height: 1.5;
}

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

button {
  border: 0;
  cursor: pointer;
  font: inherit;
}

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

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

ul {
  list-style: none;
  margin: 0;
  padding: 0;
}

.material-symbols-outlined {
  direction: ltr;
  display: inline-flex;
  font-size: 24px;
  line-height: 1;
}

.store-brand-icon {
  direction: ltr;
  flex: 0 0 auto;
  height: 27px;
  width: 27px;
}

.app-download-buttons {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: var(--spacing-md);
  justify-content: center;
}

.store-button {
  align-items: center;
  border: 2px solid transparent;
  border-radius: 999px;
  display: inline-flex;
  font-size: 19px;
  font-weight: 700;
  gap: 10px;
  justify-content: center;
  min-height: 64px;
  min-width: 220px;
  padding: 14px 28px;
  transition:
    background-color 180ms ease,
    border-color 180ms ease,
    box-shadow 180ms ease,
    color 180ms ease,
    transform 180ms ease;
}

.store-button--filled {
  background: var(--secondary-container);
  box-shadow: 0 14px 30px rgba(0, 69, 223, 0.3);
  color: #ffffff;
}

.store-button--outline {
  background: #ffffff;
  border-color: var(--secondary-container);
  color: var(--secondary-container);
}

.store-button:hover {
  box-shadow: 0 16px 34px rgba(0, 69, 223, 0.3);
  transform: translateY(-3px);
}

.store-button--outline:hover {
  background: var(--secondary-fixed);
}

.store-button:active {
  transform: translateY(0) scale(0.98);
}

.store-button:focus-visible {
  outline: 3px solid rgba(255, 255, 255, 0.82);
  outline-offset: 4px;
}

.site-nav {
  align-items: center;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
}

.site-header {
  background: var(--primary);
}

.site-nav-brand {
  justify-self: start;
}

.site-nav-links {
  justify-content: center;
  justify-self: center;
}

.site-nav-link {
  color: rgba(255, 255, 255, 0.82);
  display: inline-flex;
  font-family: var(--font-family);
  font-size: 14px;
  font-weight: 700;
  line-height: 1.5;
  padding: 8px 0;
  position: relative;
  transition: color 150ms ease, opacity 150ms ease;
  white-space: nowrap;
}

.site-nav-link::after {
  background: #ffffff;
  border-radius: 9999px;
  bottom: 0;
  content: "";
  height: 2px;
  inset-inline: 0;
  opacity: 0;
  position: absolute;
  transform: scaleX(0.4);
  transition: opacity 150ms ease, transform 150ms ease;
}

.site-nav-link:hover,
.site-nav-link.is-active {
  color: #ffffff;
}

.site-nav-link.is-active::after {
  opacity: 1;
  transform: scaleX(1);
}

.site-nav-action {
  justify-self: end;
}

@media (max-width: 767px) {
  .site-nav {
    display: flex;
    justify-content: space-between;
  }
}

.footer-logo-frame {
  background: var(--primary-container);
  border-radius: 0.75rem;
  padding: var(--spacing-sm);
}

.prescription-component-wrap {
  align-items: center;
  background: linear-gradient(135deg, #f4f6fb 0%, #ffffff 100%);
  border: 1px solid rgba(168, 188, 235, 0.72);
  border-radius: 0.75rem;
  display: flex;
  justify-content: center;
  overflow: hidden;
  padding: var(--spacing-lg);
}

.prescription-card-image {
  height: auto;
  max-height: 100%;
  max-width: min(428px, 100%);
  object-fit: contain;
  width: 100%;
}

.hero-section {
  align-items: center;
  display: flex;
  min-height: calc(100vh - 76px);
  overflow: hidden;
  padding: 60px 0 48px;
  position: relative;
}

.hero-gradient {
  background:
    radial-gradient(circle at 18% 52%, rgba(80, 151, 255, 0.16), transparent 28%),
    radial-gradient(circle at 42% 70%, rgba(46, 95, 254, 0.14), transparent 34%),
    linear-gradient(118deg, #ffffff 0%, #ffffff 48%, #f7f8ff 100%);
}

.hero-layout {
  align-items: center;
  display: grid;
  gap: clamp(24px, 4vw, 64px);
  grid-template-columns: minmax(0, 0.9fr) minmax(540px, 1.1fr);
  margin: 0 auto;
  max-width: 1280px;
  padding: 0 var(--margin-desktop);
  width: 100%;
}

.hero-copy {
  max-width: 580px;
  position: relative;
  text-align: right;
  z-index: 2;
}

.hero-eyebrow {
  align-items: center;
  background: rgba(46, 95, 254, 0.08);
  border: 1px solid rgba(46, 95, 254, 0.12);
  border-radius: 999px;
  color: var(--secondary);
  display: inline-flex;
  font-size: 14px;
  font-weight: 700;
  gap: 8px;
  margin: 0 0 22px;
  padding: 8px 14px;
}

.hero-copy h1 {
  color: var(--primary);
  font-size: clamp(48px, 4.7vw, 72px);
  font-weight: 800;
  letter-spacing: -1.5px;
  line-height: 1.15;
  margin: 0 0 20px;
}

.hero-copy h1 span {
  color: var(--secondary-container);
  display: block;
}

.hero-description {
  color: var(--on-surface-variant);
  font-size: 18px;
  line-height: 1.8;
  margin: 0 0 28px;
  max-width: 560px;
}

.hero-actions {
  align-items: stretch;
  display: flex;
  gap: 12px;
  margin-bottom: 18px;
  max-width: 540px;
}

.hero-primary-action,
.hero-secondary-action {
  align-items: center;
  border-radius: 12px;
  display: inline-flex;
  font-size: 16px;
  font-weight: 700;
  justify-content: center;
  min-height: 58px;
  padding: 14px 22px;
  transition: box-shadow 180ms ease, transform 180ms ease, background-color 180ms ease;
}

.hero-primary-action {
  background: var(--secondary-container);
  box-shadow: 0 12px 28px rgba(46, 95, 254, 0.24);
  color: #ffffff;
  flex: 1.12;
  gap: 12px;
}

.hero-primary-action span {
  font-size: 22px;
}

.hero-secondary-action {
  background: #ffffff;
  border: 1px solid rgba(13, 40, 126, 0.18);
  color: var(--primary);
  flex: 0.88;
}

.hero-primary-action:hover,
.hero-secondary-action:hover {
  transform: translateY(-2px);
}

.hero-primary-action:hover {
  background: #1e50f4;
  box-shadow: 0 16px 34px rgba(46, 95, 254, 0.3);
}

.hero-secondary-action:hover {
  box-shadow: 0 10px 24px rgba(13, 40, 126, 0.1);
}

.hero-benefits {
  color: var(--on-surface-variant);
  display: flex;
  flex-wrap: wrap;
  font-size: 14px;
  gap: 12px 24px;
  margin-bottom: 30px;
}

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

.hero-benefits i {
  align-items: center;
  border: 1.5px solid var(--secondary);
  border-radius: 50%;
  color: var(--secondary);
  display: inline-flex;
  font-size: 10px;
  font-style: normal;
  font-weight: 800;
  height: 18px;
  justify-content: center;
  width: 18px;
}

.hero-proof {
  align-items: center;
  display: flex;
  gap: 14px;
}

.hero-proof-avatars {
  display: flex;
  direction: ltr;
  padding-left: 10px;
}

.hero-proof-avatars span {
  align-items: center;
  background: linear-gradient(145deg, #dfe6ff, #ffffff);
  border: 3px solid #ffffff;
  border-radius: 50%;
  color: var(--primary);
  display: flex;
  font-size: 13px;
  font-weight: 800;
  height: 42px;
  justify-content: center;
  margin-left: -10px;
  width: 42px;
}

.hero-proof-avatars span:nth-child(2) { background: linear-gradient(145deg, #ffe5f6, #ffffff); }
.hero-proof-avatars span:nth-child(3) { background: linear-gradient(145deg, #fff0c7, #ffffff); }
.hero-proof-avatars span:nth-child(4) { background: linear-gradient(145deg, #dff8ef, #ffffff); }

.hero-proof p {
  color: var(--on-surface-variant);
  font-size: 14px;
  line-height: 1.45;
  margin: 0;
}

.hero-proof strong {
  color: var(--primary);
  display: block;
  font-size: 17px;
}

.hero-visual {
  height: 600px;
  min-width: 0;
  position: relative;
}

.hero-visual-glow {
  background: linear-gradient(145deg, rgba(46, 95, 254, 0.36), rgba(69, 169, 255, 0.3));
  border-radius: 46% 54% 58% 42% / 46% 44% 56% 54%;
  filter: blur(42px);
  inset: 9% 5% 3% 4%;
  opacity: 0.78;
  position: absolute;
  transform: rotate(-7deg);
}

.hero-card {
  opacity: 1;
  position: absolute;
  transform-origin: center;
  will-change: opacity, transform;
  z-index: 1;
}

.hero-card img {
  display: block;
  height: auto;
  width: 100%;
  will-change: transform;
}

.hero-card-prescription {
  right: 1%;
  top: 3%;
  width: 52%;
  z-index: 4;
}

.hero-card-modal {
  filter: drop-shadow(0 22px 34px rgba(13, 40, 126, 0.16));
  right: 5%;
  bottom: auto;
  top: 39%;
  width: 42%;
  z-index: 5;
}

.hero-card-schedule {
  filter: drop-shadow(0 22px 34px rgba(13, 40, 126, 0.14));
  left: 1%;
  top: 3%;
  width: 43%;
  z-index: 3;
}

.hero-card-appointment {
  bottom: auto;
  filter: drop-shadow(0 18px 30px rgba(13, 40, 126, 0.14));
  left: 1%;
  top: 46%;
  width: 50%;
  z-index: 4;
}

@media (prefers-reduced-motion: no-preference) {
  .hero-card {
    animation: hero-card-arrive 850ms cubic-bezier(0.22, 1, 0.36, 1) both;
  }

  .hero-card-schedule { animation-delay: 120ms; }
  .hero-card-prescription { animation-delay: 260ms; }
  .hero-card-appointment { animation-delay: 400ms; }
  .hero-card-modal { animation-delay: 540ms; }

  .hero-card-schedule img { animation: hero-float 6.4s ease-in-out 1s infinite; }
  .hero-card-prescription img { animation: hero-float-side 7s ease-in-out 1.15s infinite; }
  .hero-card-appointment img { animation: hero-float-side 6.8s ease-in-out 1.3s infinite reverse; }
  .hero-card-modal img { animation: hero-float 7.4s ease-in-out 1.45s infinite reverse; }
  .hero-visual-glow { animation: hero-glow-breathe 8s ease-in-out infinite; }
}

@keyframes hero-card-arrive {
  from {
    opacity: 0;
    transform: translateY(34px) scale(0.94);
  }
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

@keyframes hero-float {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-10px); }
}

@keyframes hero-float-side {
  0%, 100% { transform: translate3d(0, 0, 0) rotate(0); }
  50% { transform: translate3d(-7px, -8px, 0) rotate(-0.6deg); }
}

@keyframes hero-glow-breathe {
  0%, 100% { opacity: 0.7; transform: rotate(-7deg) scale(0.98); }
  50% { opacity: 0.88; transform: rotate(-5deg) scale(1.04); }
}

.app-screens-section {
  background: linear-gradient(180deg, #ffffff 0%, var(--surface-container-low) 100%);
}

.app-screens-carousel {
  position: relative;
}

.app-screens-grid {
  --slides-per-view: 3;
  --slide-width: calc((100% - 48px) / 3);
  align-items: stretch;
  cursor: grab;
  display: flex;
  gap: var(--spacing-lg);
  overflow-x: auto;
  overscroll-behavior-inline: contain;
  padding: 18px 4px 30px;
  scroll-behavior: smooth;
  scroll-snap-type: inline mandatory;
  scrollbar-width: none;
}

.app-screens-grid::before,
.app-screens-grid::after {
  content: "";
  flex: 0 0 max(0px, calc((100% - var(--slide-width)) / 2 - var(--spacing-lg)));
  pointer-events: none;
}

.app-screens-grid:active {
  cursor: grabbing;
}

.app-screens-grid::-webkit-scrollbar {
  display: none;
}

.app-screens-grid:focus-visible {
  border-radius: 1.75rem;
  outline: 3px solid rgba(46, 95, 254, 0.22);
  outline-offset: 5px;
}

.app-screen-card {
  align-items: center;
  background: #ffffff;
  border: 1px solid var(--outline-variant);
  border-radius: 1.5rem;
  box-shadow: 0 12px 28px rgba(13, 40, 126, 0.08);
  display: flex;
  flex: 0 0 var(--slide-width);
  flex-direction: column;
  gap: var(--spacing-lg);
  overflow: hidden;
  padding: var(--spacing-lg);
  scroll-snap-align: center;
  scroll-snap-stop: always;
  transition:
    background-color 360ms ease,
    border-color 360ms ease,
    box-shadow 360ms ease,
    color 360ms ease,
    transform 360ms cubic-bezier(0.22, 1, 0.36, 1);
}

.app-screen-card.is-featured {
  background: var(--primary-container);
  border-color: rgba(255, 255, 255, 0.16);
  box-shadow: 0 22px 48px rgba(13, 40, 126, 0.24);
  color: #ffffff;
  transform: translateY(-8px) scale(1.018);
}

.app-screen-image {
  aspect-ratio: 428 / 926;
  border-radius: 2rem;
  box-shadow: 0 18px 34px rgba(13, 40, 126, 0.16);
  height: auto;
  max-height: 560px;
  object-fit: cover;
  object-position: top center;
  width: min(100%, 260px);
}

.app-screen-copy {
  text-align: center;
}

.app-screen-copy h3 {
  color: var(--primary);
  font-size: 20px;
  font-weight: 700;
  line-height: 1.4;
  margin: 0 0 8px;
}

.app-screen-copy p {
  color: var(--on-surface-variant);
  font-size: 14px;
  line-height: 1.6;
  margin: 0;
}

.app-screen-card.is-featured .app-screen-copy h3,
.app-screen-card.is-featured .app-screen-copy p {
  color: #ffffff;
}

.app-screen-card.is-featured .app-screen-copy p {
  opacity: 0.82;
}

.app-carousel-controls {
  align-items: center;
  display: flex;
  gap: var(--spacing-md);
  justify-content: center;
  margin-top: var(--spacing-md);
}

.app-carousel-button {
  align-items: center;
  background: var(--secondary-container);
  border-radius: 50%;
  box-shadow: 0 10px 22px rgba(13, 40, 126, 0.18);
  color: #ffffff;
  display: inline-flex;
  font-size: 24px;
  height: 48px;
  justify-content: center;
  line-height: 1;
  transition: background-color 160ms ease, transform 160ms ease, box-shadow 160ms ease;
  width: 48px;
}

.app-carousel-button:hover {
  background: var(--secondary);
  box-shadow: 0 13px 28px rgba(13, 40, 126, 0.24);
  transform: translateY(-2px);
}

.app-carousel-button:active {
  transform: scale(0.94);
}

.app-carousel-button:focus-visible,
.app-carousel-dot:focus-visible {
  outline: 3px solid rgba(46, 95, 254, 0.24);
  outline-offset: 3px;
}

.app-carousel-dots {
  align-items: center;
  display: flex;
  gap: 8px;
  justify-content: center;
  min-width: 56px;
}

.app-carousel-dot {
  background: var(--outline-variant);
  border-radius: 999px;
  height: 9px;
  padding: 0;
  transition: background-color 180ms ease, width 180ms ease;
  width: 9px;
}

.app-carousel-dot.is-active {
  background: var(--secondary-container);
  width: 28px;
}

.sr-only {
  clip: rect(0, 0, 0, 0);
  clip-path: inset(50%);
  height: 1px;
  overflow: hidden;
  position: absolute;
  white-space: nowrap;
  width: 1px;
}

.contact-section {
  background: #ffffff;
}

.contact-layout {
  align-items: stretch;
  display: grid;
  gap: var(--spacing-xl);
  grid-template-columns: repeat(1, minmax(0, 1fr));
}

.contact-copy,
.contact-form {
  border: 1px solid var(--outline-variant);
  border-radius: 1.5rem;
  box-shadow: 0 12px 28px rgba(13, 40, 126, 0.08);
  padding: var(--spacing-xl);
}

.contact-copy {
  background: linear-gradient(135deg, #ffffff 0%, #f3f6ff 100%);
  text-align: right;
}

.contact-copy-icon {
  background: rgba(46, 95, 254, 0.1);
  border-radius: 1rem;
  color: var(--secondary);
  font-size: 40px;
  margin-bottom: var(--spacing-md);
  padding: var(--spacing-md);
}

.contact-methods {
  display: grid;
  gap: var(--spacing-md);
  margin-top: var(--spacing-xl);
}

.contact-method {
  align-items: center;
  background: #ffffff;
  border: 1px solid rgba(168, 188, 235, 0.72);
  border-radius: 1rem;
  display: flex;
  gap: var(--spacing-md);
  padding: var(--spacing-md);
  text-align: right;
}

.contact-method .material-symbols-outlined {
  color: var(--secondary);
  font-size: 28px;
}

.contact-method strong {
  color: var(--primary);
  display: block;
  font-size: 14px;
  font-weight: 700;
  margin-bottom: 4px;
}

.contact-method p {
  color: var(--on-surface-variant);
  font-size: 14px;
  margin: 0;
}

.contact-form {
  background: var(--surface-container-lowest);
  display: grid;
  gap: var(--spacing-md);
}

.contact-form label {
  display: grid;
  gap: 8px;
  text-align: right;
}

.contact-form span {
  color: var(--primary);
  font-size: 14px;
  font-weight: 700;
}

.contact-form input,
.contact-form select,
.contact-form textarea {
  background: var(--surface);
  border: 1px solid var(--outline-variant);
  border-radius: 0.75rem;
  color: var(--on-surface);
  font: inherit;
  min-height: 48px;
  padding: 12px 14px;
  text-align: right;
  width: 100%;
}

.contact-form input:focus,
.contact-form select:focus,
.contact-form textarea:focus {
  border-color: var(--secondary);
  box-shadow: 0 0 0 3px rgba(46, 95, 254, 0.14);
  outline: none;
}

.contact-form textarea {
  resize: vertical;
}

.contact-form button {
  background: var(--secondary);
  border-radius: 0.75rem;
  color: #ffffff;
  font-weight: 700;
  min-height: 52px;
  transition: background-color 150ms ease, transform 150ms ease;
}

.contact-form button:hover {
  background: rgba(0, 69, 223, 0.9);
  transform: translateY(-1px);
}

.hero-primary-action {
  overflow: hidden;
  position: relative;
}

.hero-primary-action::after {
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.34), transparent);
  content: "";
  inset: 0 auto 0 -45%;
  pointer-events: none;
  position: absolute;
  transform: skewX(-20deg);
  width: 32%;
}

#features .material-symbols-outlined,
.contact-copy-icon {
  transform-origin: center;
  transition: transform 220ms ease;
}

#features .grid > div:hover .material-symbols-outlined {
  transform: translateY(-3px) rotate(-3deg) scale(1.06);
}

@media (prefers-reduced-motion: no-preference) {
  .reveal-item {
    opacity: 0;
    transform: translateY(26px) scale(0.985);
    transition:
      opacity 680ms cubic-bezier(0.22, 1, 0.36, 1),
      transform 680ms cubic-bezier(0.22, 1, 0.36, 1),
      box-shadow 360ms ease,
      background-color 360ms ease,
      border-color 360ms ease,
      color 360ms ease;
    transition-delay: var(--reveal-delay, 0ms);
  }

  .reveal-item.is-visible {
    opacity: 1;
    transform: translateY(0) scale(1);
  }

  #features .reveal-item.is-visible:hover,
  .app-screen-card.reveal-item.is-visible:hover {
    box-shadow: 0 18px 38px rgba(13, 40, 126, 0.15);
    transform: translateY(-6px) scale(1.005);
  }

  .app-screen-card.reveal-item.is-visible.is-featured {
    box-shadow: 0 22px 48px rgba(13, 40, 126, 0.24);
    transform: translateY(-8px) scale(1.018);
  }

  .app-screen-card.reveal-item.is-visible.is-featured:hover {
    transform: translateY(-10px) scale(1.02);
  }

  #how-it-works .grid > div > div:first-child .material-symbols-outlined {
    animation: step-icon-breathe 4.2s ease-in-out infinite;
  }

  #how-it-works .grid > div:nth-child(2) > div:first-child .material-symbols-outlined { animation-delay: -1.05s; }
  #how-it-works .grid > div:nth-child(3) > div:first-child .material-symbols-outlined { animation-delay: -2.1s; }
  #how-it-works .grid > div:nth-child(4) > div:first-child .material-symbols-outlined { animation-delay: -3.15s; }

  .contact-copy-icon {
    animation: support-icon-float 4.6s ease-in-out infinite;
  }

  .hero-primary-action::after {
    animation: cta-shine 5.2s ease-in-out 1.4s infinite;
  }
}

@keyframes step-icon-breathe {
  0%, 100% { filter: drop-shadow(0 0 0 rgba(46, 95, 254, 0)); transform: translateY(0) scale(1); }
  50% { filter: drop-shadow(0 5px 7px rgba(46, 95, 254, 0.24)); transform: translateY(-3px) scale(1.08); }
}

@keyframes support-icon-float {
  0%, 100% { transform: translateY(0) rotate(0); }
  50% { transform: translateY(-5px) rotate(-3deg); }
}

@keyframes cta-shine {
  0%, 72%, 100% { left: -45%; }
  86% { left: 118%; }
}

.step-line::after {
  background: var(--outline-variant);
  content: "";
  display: none;
  height: 2px;
  inset-inline-start: calc(100% + 16px);
  position: absolute;
  top: 50%;
  width: calc(100vw / 4 - 96px);
}

.absolute { position: absolute; }
.relative { position: relative; }
.sticky { position: sticky; }
.inset-0 { inset: 0; }
.top-0 { top: 0; }
.right-0 { right: 0; }
.bottom-0 { bottom: 0; }
.left-0 { left: 0; }
.-top-10 { top: -40px; }
.-right-10 { right: -40px; }
.z-10 { z-index: 10; }
.-z-10 { z-index: -10; }
.z-50 { z-index: 50; }

.mx-auto {
  margin-left: auto;
  margin-right: auto;
}
.mb-xs { margin-bottom: var(--spacing-xs); }
.mb-sm { margin-bottom: var(--spacing-sm); }
.mb-md { margin-bottom: var(--spacing-md); }
.mb-lg { margin-bottom: var(--spacing-lg); }
.mb-xl { margin-bottom: var(--spacing-xl); }
.mt-xl { margin-top: var(--spacing-xl); }

.block { display: block; }
.hidden { display: none; }
.flex { display: flex; }
.grid { display: grid; }

.flex-1 { flex: 1 1 0%; }
.flex-col { flex-direction: column; }
.flex-row { flex-direction: row; }
.flex-row-reverse { flex-direction: row-reverse; }
.flex-wrap { flex-wrap: wrap; }
.items-start { align-items: flex-start; }
.items-center { align-items: center; }
.justify-start { justify-content: flex-start; }
.justify-center { justify-content: center; }
.justify-between { justify-content: space-between; }
.gap-xs { gap: var(--spacing-xs); }
.gap-base { gap: var(--spacing-base); }
.gap-sm { gap: var(--spacing-sm); }
.gap-md { gap: var(--spacing-md); }
.gap-lg { gap: var(--spacing-lg); }
.gap-xl { gap: var(--spacing-xl); }
.grid-cols-1 { grid-template-columns: repeat(1, minmax(0, 1fr)); }
.order-1 { order: 1; }
.order-2 { order: 2; }

.space-y-md > :not([hidden]) ~ :not([hidden]) {
  margin-top: var(--spacing-md);
}

.aspect-square { aspect-ratio: 1 / 1; }
.h-1 { height: 4px; }
.h-8 { height: 32px; }
.h-10 { height: 40px; }
.h-12 { height: 48px; }
.h-16 { height: 64px; }
.h-24 { height: 96px; }
.h-40 { height: 160px; }
.h-48 { height: 192px; }
.h-64 { height: 256px; }
.h-96 { height: 384px; }
.h-auto { height: auto; }
.h-full { height: 100%; }
.min-h-\[85vh\] { min-height: 85vh; }
.w-12 { width: 48px; }
.w-16 { width: 64px; }
.w-20 { width: 80px; }
.w-40 { width: 160px; }
.w-64 { width: 256px; }
.w-96 { width: 384px; }
.w-auto { width: auto; }
.w-full { width: 100%; }
.w-px { width: 1px; }
.max-w-md { max-width: 28rem; }
.max-w-lg { max-width: 32rem; }
.max-w-5xl { max-width: 64rem; }
.max-w-7xl { max-width: 80rem; }
.full-width { width: 100%; }

.overflow-hidden { overflow: hidden; }
.pointer-events-none { pointer-events: none; }

.bg-cover { background-size: cover; }
.bg-center { background-position: center; }
.bg-gradient-to-t { background-image: linear-gradient(to top, var(--tw-gradient-stops)); }
.from-surface { --tw-gradient-from: var(--surface); --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); }
.to-transparent { --tw-gradient-to: transparent; }

.object-contain { object-fit: contain; }
.object-cover { object-fit: cover; }

.rounded-full { border-radius: 9999px; }
.rounded-lg { border-radius: 0.5rem; }
.rounded-xl { border-radius: 0.75rem; }
.rounded-2xl { border-radius: 1rem; }
.rounded-3xl { border-radius: 1.5rem; }
.rounded-\[2rem\] { border-radius: 2rem; }

.border { border: 1px solid currentColor; }
.border-t { border-top: 1px solid currentColor; }
.border-b-2 { border-bottom: 2px solid currentColor; }
.border-outline-variant { border-color: var(--outline-variant); }
.border-outline { border-color: var(--outline); }
.border-white { border-color: #ffffff; }
.border-white\/20 { border-color: rgba(255, 255, 255, 0.2); }

.bg-green-100 { background-color: var(--green-100); }
.bg-inverse-surface { background-color: var(--inverse-surface); }
.bg-outline-variant { background-color: var(--outline-variant); }
.bg-primary-container { background-color: var(--primary-container); }
.bg-secondary { background-color: var(--secondary); }
.bg-secondary-container { background-color: var(--secondary-container); }
.bg-secondary-container\/10 { background-color: rgba(46, 95, 254, 0.1); }
.bg-secondary-container\/20 { background-color: rgba(46, 95, 254, 0.2); }
.bg-secondary-fixed { background-color: var(--secondary-fixed); }
.bg-surface { background-color: var(--surface); }
.bg-surface-container-high { background-color: var(--surface-container-high); }
.bg-surface-container-lowest { background-color: var(--surface-container-lowest); }
.bg-surface\/80 { background-color: rgba(248, 250, 255, 0.8); }
.bg-surface\/95 { background-color: rgba(248, 250, 255, 0.95); }
.bg-white { background-color: #ffffff; }
.bg-white\/10 { background-color: rgba(255, 255, 255, 0.1); }

.p-md { padding: var(--spacing-md); }
.p-lg { padding: var(--spacing-lg); }
.p-xl { padding: var(--spacing-xl); }
.p-xxl { padding: var(--spacing-xxl); }
.px-lg {
  padding-left: var(--spacing-lg);
  padding-right: var(--spacing-lg);
}
.px-xxl {
  padding-left: var(--spacing-xxl);
  padding-right: var(--spacing-xxl);
}
.px-margin-mobile {
  padding-left: var(--margin-mobile);
  padding-right: var(--margin-mobile);
}
.py-sm {
  padding-bottom: var(--spacing-sm);
  padding-top: var(--spacing-sm);
}
.py-md {
  padding-bottom: var(--spacing-md);
  padding-top: var(--spacing-md);
}
.py-xl {
  padding-bottom: var(--spacing-xl);
  padding-top: var(--spacing-xl);
}
.py-xxl {
  padding-bottom: var(--spacing-xxl);
  padding-top: var(--spacing-xxl);
}
.pb-1 { padding-bottom: 4px; }

.text-right { text-align: right; }
.text-center { text-align: center; }
.underline { text-decoration: underline; }

.font-headline-1,
.font-headline-2,
.font-headline-4,
.font-headline-5,
.font-headline-6,
.font-body-lg,
.font-body-lg-bold,
.font-body-md,
.font-body-md-bold,
.font-label-sm {
  font-family: var(--font-family);
}

.text-\[10px\] { font-size: 10px; }
.text-3xl { font-size: 30px; }
.text-4xl { font-size: 36px; }
.text-headline-1 { font-size: 48px; font-weight: 700; line-height: 1.2; }
.text-headline-2 { font-size: 40px; font-weight: 700; line-height: 1.2; }
.text-headline-4 { font-size: 24px; font-weight: 700; line-height: 1.4; }
.text-headline-5 { font-size: 20px; font-weight: 700; line-height: 1.4; }
.text-headline-6 { font-size: 18px; font-weight: 700; line-height: 1.4; }
.text-body-lg { font-size: 16px; font-weight: 400; line-height: 1.6; }
.text-body-lg-bold { font-size: 16px; font-weight: 700; line-height: 1.6; }
.text-body-md { font-size: 14px; font-weight: 400; line-height: 1.5; }
.text-body-md-bold { font-size: 14px; font-weight: 700; line-height: 1.5; }
.text-label-sm { font-size: 12px; font-weight: 500; line-height: 1; }
.font-bold { font-weight: 700; }
.leading-tight { line-height: 1.25; }

.text-green-700 { color: var(--green-700); }
.text-on-primary-container { color: var(--on-primary-container); }
.text-on-secondary { color: var(--on-secondary); }
.text-on-secondary-fixed { color: var(--on-secondary-fixed); }
.text-on-surface { color: var(--on-surface); }
.text-on-surface-variant { color: var(--on-surface-variant); }
.text-secondary { color: var(--secondary); }
.text-white { color: #ffffff; }
.text-white\/80 { color: rgba(255, 255, 255, 0.8); }
.text-primary { color: var(--primary); }

.opacity-0 { opacity: 0; }
.opacity-10 { opacity: 0.1; }
.opacity-70 { opacity: 0.7; }
.opacity-80 { opacity: 0.8; }
.opacity-90 { opacity: 0.9; }
.opacity-100 { opacity: 1; }

.shadow-sm { box-shadow: 0 1px 2px rgba(13, 40, 126, 0.08); }
.shadow-md { box-shadow: 0 4px 12px rgba(13, 40, 126, 0.12); }
.shadow-lg { box-shadow: 0 10px 18px rgba(13, 40, 126, 0.14); }
.shadow-xl { box-shadow: 0 20px 30px rgba(13, 40, 126, 0.16); }
.drop-shadow-2xl { filter: drop-shadow(0 25px 25px rgba(13, 40, 126, 0.18)); }
.blur-3xl { filter: blur(64px); }
.backdrop-blur-md { backdrop-filter: blur(12px); }

.transition-all { transition-property: all; }
.transition-colors { transition-property: color, background-color, border-color, text-decoration-color, fill, stroke; }
.transition-shadow { transition-property: box-shadow; }
.transition-transform { transition-property: transform; }
.transition-all,
.transition-colors,
.transition-shadow,
.transition-transform {
  transition-duration: 150ms;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
}
.duration-150 { transition-duration: 150ms; }
.duration-300 { transition-duration: 300ms; }
.duration-700 { transition-duration: 700ms; }
.ease-in-out { transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); }

.-translate-x-1\/2 {
  --tw-translate-x: -50%;
  transform: translate(var(--tw-translate-x, 0), var(--tw-translate-y, 0)) scale(var(--tw-scale-x, 1), var(--tw-scale-y, 1));
}
.translate-x-1\/2 {
  --tw-translate-x: 50%;
  transform: translate(var(--tw-translate-x, 0), var(--tw-translate-y, 0)) scale(var(--tw-scale-x, 1), var(--tw-scale-y, 1));
}
.-translate-y-1\/2 {
  --tw-translate-y: -50%;
  transform: translate(var(--tw-translate-x, 0), var(--tw-translate-y, 0)) scale(var(--tw-scale-x, 1), var(--tw-scale-y, 1));
}
.translate-y-1\/2 {
  --tw-translate-y: 50%;
  transform: translate(var(--tw-translate-x, 0), var(--tw-translate-y, 0)) scale(var(--tw-scale-x, 1), var(--tw-scale-y, 1));
}
.translate-y-0 {
  --tw-translate-y: 0;
  transform: translate(var(--tw-translate-x, 0), var(--tw-translate-y, 0)) scale(var(--tw-scale-x, 1), var(--tw-scale-y, 1));
}
.translate-y-10 {
  --tw-translate-y: 40px;
  transform: translate(var(--tw-translate-x, 0), var(--tw-translate-y, 0)) scale(var(--tw-scale-x, 1), var(--tw-scale-y, 1));
}

.animate-pulse {
  animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
}

@keyframes pulse {
  50% {
    opacity: 0.5;
  }
}

.hover\:bg-secondary\/90:hover { background-color: rgba(0, 69, 223, 0.9); }
.hover\:bg-white\/20:hover { background-color: rgba(255, 255, 255, 0.2); }
.hover\:opacity-90:hover { opacity: 0.9; }
.hover\:scale-105:hover {
  --tw-scale-x: 1.05;
  --tw-scale-y: 1.05;
  transform: translate(var(--tw-translate-x, 0), var(--tw-translate-y, 0)) scale(var(--tw-scale-x, 1), var(--tw-scale-y, 1));
}
.hover\:scale-\[1\.01\]:hover {
  --tw-scale-x: 1.01;
  --tw-scale-y: 1.01;
  transform: translate(var(--tw-translate-x, 0), var(--tw-translate-y, 0)) scale(var(--tw-scale-x, 1), var(--tw-scale-y, 1));
}
.hover\:scale-\[1\.02\]:hover {
  --tw-scale-x: 1.02;
  --tw-scale-y: 1.02;
  transform: translate(var(--tw-translate-x, 0), var(--tw-translate-y, 0)) scale(var(--tw-scale-x, 1), var(--tw-scale-y, 1));
}
.hover\:shadow-lg:hover { box-shadow: 0 10px 18px rgba(13, 40, 126, 0.14); }
.hover\:shadow-md:hover { box-shadow: 0 4px 12px rgba(13, 40, 126, 0.12); }
.hover\:text-secondary:hover { color: var(--secondary); }
.active\:scale-95:active {
  --tw-scale-x: 0.95;
  --tw-scale-y: 0.95;
  transform: translate(var(--tw-translate-x, 0), var(--tw-translate-y, 0)) scale(var(--tw-scale-x, 1), var(--tw-scale-y, 1));
}

.dark .dark\:bg-inverse-surface { background-color: var(--inverse-surface); }
.dark .dark\:bg-surface-container\/80 { background-color: rgba(237, 242, 255, 0.8); }
.dark .dark\:border-outline { border-color: var(--outline); }
.dark .dark\:text-surface-variant { color: var(--surface-variant); }
.dark .dark\:hover\:text-secondary-fixed-dim:hover { color: var(--secondary-fixed-dim); }

@media (min-width: 768px) {
  .md\:flex { display: flex; }
  .md\:flex-row { flex-direction: row; }
  .md\:flex-row-reverse { flex-direction: row-reverse; }
  .md\:items-start { align-items: flex-start; }
  .md\:items-end { align-items: flex-end; }
  .md\:justify-end { justify-content: flex-end; }
  .md\:grid-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .md\:grid-cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .md\:grid-cols-12 { grid-template-columns: repeat(12, minmax(0, 1fr)); }
  .md\:col-span-4 { grid-column: span 4 / span 4; }
  .md\:col-span-8 { grid-column: span 8 / span 8; }
  .md\:order-1 { order: 1; }
  .md\:order-2 { order: 2; }
  .md\:px-margin-desktop {
    padding-left: var(--margin-desktop);
    padding-right: var(--margin-desktop);
  }
  .md\:text-right { text-align: right; }
  .step-line::after { display: block; }
  .contact-layout { grid-template-columns: 0.9fr 1.1fr; }
  .contact-message { grid-column: 1 / -1; }
}

@media (max-width: 767px) {
  .text-headline-1 { font-size: 36px; }
  .text-headline-2 { font-size: 30px; }
}

@media (max-width: 1023px) {
  .site-nav {
    display: flex;
    justify-content: space-between;
  }

  .site-nav-links {
    display: none;
  }

  .site-nav-brand img {
    max-width: 150px;
  }

  .site-nav-action button {
    padding-left: var(--spacing-md);
    padding-right: var(--spacing-md);
  }

  .hero-media {
    display: none;
  }

  .hero-gradient .md\:grid-cols-2 {
    grid-template-columns: 1fr;
  }

  .hero-gradient {
    min-height: auto;
  }
}

@media (max-width: 1100px) {
  .hero-section {
    padding-top: 54px;
  }

  .hero-layout {
    grid-template-columns: 1fr;
    padding-left: clamp(24px, 7vw, 72px);
    padding-right: clamp(24px, 7vw, 72px);
  }

  .hero-copy {
    max-width: 680px;
    margin: 0 auto;
    text-align: center;
  }

  .hero-eyebrow {
    margin-bottom: 18px;
  }

  .hero-description,
  .hero-actions {
    margin-left: auto;
    margin-right: auto;
  }

  .hero-benefits,
  .hero-proof {
    justify-content: center;
  }

  .hero-visual {
    height: 680px;
    margin: -8px auto 0;
    max-width: 650px;
    width: 100%;
  }
}

@media (max-width: 600px) {
  .hero-section {
    padding: 40px 0 24px;
  }

  .hero-layout {
    gap: 18px;
    padding-left: var(--margin-mobile);
    padding-right: var(--margin-mobile);
  }

  .hero-copy h1 {
    font-size: clamp(38px, 11.5vw, 52px);
    letter-spacing: -0.8px;
  }

  .hero-description {
    font-size: 16px;
    line-height: 1.7;
  }

  .hero-actions {
    flex-direction: column;
  }

  .hero-primary-action,
  .hero-secondary-action {
    min-height: 54px;
    width: 100%;
  }

  .hero-benefits {
    gap: 10px 18px;
    justify-content: center;
    margin-bottom: 24px;
  }

  .hero-proof {
    gap: 10px;
  }

  .hero-proof-avatars span {
    height: 38px;
    width: 38px;
  }

  .hero-visual {
    height: clamp(520px, 135vw, 620px);
    margin-top: 0;
    width: min(100%, 460px);
  }

  .hero-card-prescription {
    right: 0;
    top: 4%;
    width: 52%;
  }

  .hero-card-modal {
    right: 0;
    bottom: auto;
    top: 39%;
    width: 50%;
  }

  .hero-card-schedule {
    bottom: auto;
    left: 0;
    top: 4%;
    width: 48%;
  }

  .hero-card-appointment {
    bottom: auto;
    left: 0;
    top: 46%;
    width: 50%;
  }
}

@media (min-width: 768px) and (max-width: 1099px) {
  .app-screens-grid {
    --slides-per-view: 2;
    --slide-width: calc((100% - 24px) / 2);
  }

  .contact-layout {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 767px) {
  .app-screens-grid {
    --slides-per-view: 1;
    --slide-width: 100%;
    padding-bottom: 24px;
  }

  .app-carousel-button {
    height: 44px;
    width: 44px;
  }

  .py-xxl {
    padding-bottom: 36px;
    padding-top: 36px;
  }

  .p-xl,
  .p-xxl,
  .contact-copy,
  .contact-form {
    padding: var(--spacing-lg);
  }

  .site-nav {
    gap: var(--spacing-md);
  }

  .site-nav-brand img {
    max-width: 132px;
  }

  .site-nav-action button {
    font-size: 12px;
    min-height: 40px;
    padding: 8px 12px;
    white-space: nowrap;
  }

  .min-h-\[85vh\] {
    min-height: auto;
  }

  .hero-product-image {
    border-radius: 1rem;
    max-width: 100%;
  }

  .hero-gradient .gap-xl {
    gap: var(--spacing-lg);
  }

  .hero-gradient .justify-start {
    justify-content: stretch;
  }

  .hero-gradient a,
  .max-w-5xl a {
    flex: 1 1 150px;
    justify-content: center;
  }

  .text-headline-1 {
    font-size: 34px;
  }

  .text-headline-2 {
    font-size: 28px;
  }

  .text-headline-4 {
    font-size: 22px;
  }

  .h-48 {
    height: 180px;
  }

  .h-64 {
    height: 220px;
  }

  .prescription-component-wrap {
    padding: var(--spacing-md);
  }

  .prescription-card-image {
    max-width: min(100%, 360px);
  }

  .app-screens-grid {
    gap: var(--spacing-md);
  }

  .app-screen-card {
    border-radius: 1rem;
    gap: var(--spacing-md);
    padding: var(--spacing-md);
  }

  .app-screen-card.is-featured {
    transform: none;
  }

  .app-screen-image {
    border-radius: 1.35rem;
    max-height: 520px;
    width: min(100%, 240px);
  }

  .contact-layout {
    gap: var(--spacing-lg);
  }

  .contact-method {
    align-items: flex-start;
  }

  .contact-method p {
    overflow-wrap: anywhere;
  }

  .rounded-\[2rem\] {
    border-radius: 1.25rem;
  }

  .max-w-5xl {
    max-width: 100%;
  }

  .footer-logo-frame img {
    max-width: 150px;
  }
}

@media (max-width: 420px) {
  .site-nav-brand img {
    max-width: 112px;
  }

  .site-nav-action button {
    font-size: 11px;
    padding-left: 10px;
    padding-right: 10px;
  }

  .text-headline-1 {
    font-size: 30px;
  }

  .text-headline-2 {
    font-size: 26px;
  }

  .app-screen-image {
    width: min(100%, 220px);
  }
}
