/* CSS Variables - Exact Colors from Specs */
:root {
  /* Primary Colors */
  --color-primary: #45B65C;
  --color-primary-light: #5BC46E;
  --color-dark: #0F172A;
  --color-gray: #64748B;
  --color-light-green: #ECFDF5;
  --color-light-gray: #F9FAFB;
  --color-green-light: #DCFCE7;
  --color-gray-medium: #99A1AF;
  --color-gray-light: #D1D5DC;
  --color-dark-gray: #1E2939;
  --color-yellow-light: #FFF085;
  --color-yellow: #FFDF20;
  --color-gray-alt: #A6A6A6;
  --color-green-alt: #79C159;
  --color-lime: #D9E021;
  --color-white: #FFFFFF;
  --color-black: #000000;

  /* Gradients */
  --gradient-primary: linear-gradient(164deg, #45B65C 0%, #5BC46E 100%);
  --gradient-hero: linear-gradient(158deg, rgba(255, 255, 255, 0) 0%, #FFFFFF 50%, #ECFDF5 100%);
  --gradient-footer: linear-gradient(158deg, #45B65C 0%, #3A9B4F 50%, #5BC46E 100%);

  /* Shadows */
  --shadow-sm: 0px 1px 2px -1px rgba(0, 0, 0, 0.10);
  --shadow-md: 0px 2.6667px 5.3333px -2.6667px rgba(0, 0, 0, 0.10);
  --shadow-lg: 0px 8px 10px -6px rgba(0, 0, 0, 0.10);

  /* Border Radius */
  --radius-sm: 13.33px;
  --radius-md: 16px;
  --radius-lg: 24px;

  /* Typography */
  --font-family: Helvetica, Arial, sans-serif;

  /* Container */
  --container-max-width: 1280px;
  --page-padding-x: 15px;
}

/* Base Styles */
* {
  box-sizing: border-box;
}


html {
  scroll-behavior: smooth;
}

body {
  font-family: var(--font-family);
  line-height: 1.6;
  margin: 0;
  padding: 0;
  color: var(--color-dark);
}

.container {
  max-width: var(--container-max-width);
  margin: 0 auto;
  padding-left: var(--page-padding-x);
  padding-right: var(--page-padding-x);
}

/* Typography Styles - Exact Desktop Specs */
h1,
.hero-heading {
  font-size: 72px;
  font-weight: 700;
  line-height: auto;
  color: var(--color-dark);
  margin-bottom: 24px;
}

h2,
.section-heading {
  font-size: 60px;
  font-weight: 700;
  line-height: 60px;
  color: var(--color-dark);
  margin-bottom: 24px;
}

h3,
.card-title,
.feature-title {
  font-size: 24px;
  font-weight: 700;
  line-height: 32px;
  color: var(--color-dark);
  margin-bottom: 16px;
}

.hero-subtext,
.section-subtext {
  font-size: 24px;
  font-weight: 400;
  line-height: 40px;
  color: var(--color-gray);
  margin-bottom: 32px;
}

.body-md,
.card-desc,
.feature-desc {
  font-size: 20px;
  font-weight: 400;
  line-height: 32px;
  color: var(--color-gray);
}

.body-sm {
  font-size: 16px;
  font-weight: 400;
  line-height: 26px;
  color: var(--color-gray);
}

.cta-text,
.btn-cta {
  font-size: 20px;
  font-weight: 400;
  line-height: 20px;
  color: var(--color-white);
}

/* Header Styles */
#site-header {
  background: #fff;
  box-shadow: var(--shadow-sm);
  border-bottom: 1.02px rgba(226.01, 231.96, 239.96, 0.50) solid;
  padding: 10px 0;
}

#site-header .container {
  display: flex;
  align-items: center;
}


#site-header .navbar-brand img.logo {
  height: 55px;
}


@media all and (max-width : 992px) {
  #site-header {
    padding: 0 15px;
  }


  section#hero {
    padding: 90px 0;
  }

}



.navbar-collapse {
  background-color: #fff;
}

/* Brand Shapes */
.brand-shape {
  gap: 8px;
}

.brand-block-1 {
  width: 32px;
  height: 32px;
  background: var(--color-primary);
  border-radius: 8px;
}

.brand-block-2 {
  width: 24px;
  height: 24px;
  background: var(--color-primary-light);
  border-radius: 6px;
}

.brand-block-3 {
  width: 16px;
  height: 16px;
  background: var(--color-yellow);
  border-radius: 4px;
}

/* Navigation */
.navbar-nav .nav-link {
  color: var(--color-gray);
  font-size: 16px;
  font-weight: 400;
  margin: 0 16px;
  transition: color 0.3s ease;
}

.navbar-nav .nav-link.active,
.navbar-nav .nav-link:hover {
  color: var(--color-primary);
}

/* CTA Button */
.btn-cta {
  background: var(--gradient-primary);
  border: none;
  height: 48px;
  padding: 16px 20px;
  border-radius: var(--radius-sm);
  box-shadow: var(--shadow-md);
  font-size: 20px;
  font-weight: 400;
  color: var(--color-white);
  transition: transform 0.2s ease;
}

.btn-cta:hover {
  transform: translateY(-2px);
  color: var(--color-white);
}

/* Hero Section */
.hero-section {
  background: var(--gradient-hero);
  padding: 128px 0;
  min-height: 100vh;
  display: flex;
  align-items: center;
}

.hero-left {
  padding-right: 32px;
}

.store-buttons-row {
  display: flex;
  gap: 16px;
  margin-top: 40px;
}

.store-badge {
  background: var(--color-dark);
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--color-white);
  font-size: 12px;
}

.store-badge-1,
.store-badge-2 {
  width: 193.58px;
  height: 56px;
}

/* Hero Right - Phone Mockups */
.hero-right {
  position: relative;
}

.phones-container {
  position: relative;
  width: 542px;
  height: 500px;
  margin: 0 auto;
}

.floating-tile {
  position: absolute;
  border-radius: var(--radius-md);
}

.tile-1 {
  width: 96px;
  height: 96px;
  top: -24px;
  left: -24px;
  background: linear-gradient(135deg, #E8F5E8 0%, #F0F9F1 100%);
  opacity: 0.8;
}

.tile-2 {
  width: 144px;
  height: 144px;
  bottom: -44px;
  right: -62px;
  background: linear-gradient(135deg, #E8F5E8 0%, #F0F9F1 100%);
  border-radius: var(--radius-lg);
  opacity: 0.6;
}

.tile-3 {
  width: 80px;
  height: 80px;
  top: 250px;
  right: -26px;
  background: var(--gradient-primary);
  opacity: 0.7;
}

.phone-mockup {
  position: absolute;
  border-radius: 20px;
  overflow: hidden;
  box-shadow: var(--shadow-lg);
}

.phone-1 {
  width: 202px;
  height: 404px;
  top: 72px;
  left: 12px;
}

.phone-2 {
  width: 178px;
  height: 356px;
  top: 120px;
  right: 24px;
}

.phone-3 {
  width: 250px;
  height: 500px;
  top: 0;
  left: 146px;
  z-index: 2;
}

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

/* How It Works Section */
.how-it-works-section {
  padding: 80px 0;
}

.how-it-works-card {
  background: rgba(255, 254.99, 254.98, 0.80);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-lg);
  backdrop-filter: blur(4px);
  padding: 24px;
  height: 100%;
  border: none;
}

.card-icon {
  margin-bottom: 24px;
}

.icon-placeholder {
  width: 96px;
  height: 96px;
  background: var(--color-light-green);
  border: 2px solid var(--color-primary);
  border-radius: var(--radius-md);
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
}

.icon-placeholder::before {
  content: '';
  width: 48px;
  height: 48px;
  background: var(--color-primary);
  border-radius: 8px;
}

.card-desc {
  font-size: 18px;
  line-height: 32px;
}

/* Banner Section */
.banner-section {
  padding: 40px 0;
}

.banner-image {
  border-radius: var(--radius-md);
  width: 100%;
  height: auto;
}

/* Why Choose Us Section */
.why-choose-us-section {
  padding: 80px 0;
}

.image-card {
  position: relative;
  border-radius: var(--radius-lg);
  overflow: hidden;
}

.image-card img {
  width: 100%;
  height: auto;
}

.image-overlay {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  background: linear-gradient(180deg, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.70) 100%);
  padding: 24px;
  color: var(--color-white);
}

.overlay-title {
  font-size: 60px;
  font-weight: 700;
  line-height: 60px;
  color: var(--color-white);
  margin-bottom: 16px;
}

.overlay-desc {
  font-size: 20px;
  line-height: 32px;
  color: #E2E2E2;
}

.features-list {
  display: flex;
  flex-direction: column;
  gap: 24px;
}

.feature-item {
  background: linear-gradient(133deg, rgba(255, 255, 255, 0.90) 0%, rgba(255, 255, 255, 0.80) 100%), radial-gradient(ellipse 95.98% 90.49% at 20% 50%, rgba(69, 182, 92, 0.10) 0%, rgba(69, 182, 92, 0) 50%);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-lg);
  padding: 24px;
  display: flex;
  align-items: flex-start;
  gap: 20px;
}

.feature-icon .icon-placeholder {
  width: 80px;
  height: 80px;
  margin: 0;
}

.feature-icon .icon-placeholder::before {
  width: 40px;
  height: 40px;
}

.feature-content {
  flex: 1;
}

.feature-desc {
  font-size: 18px;
  margin: 0;
}

/* Our Services Section */
.our-services-section {
  height: 960px;
  background-image: url('images/banner-03.png');
  background-size: contain;
  background-position: center;
  position: relative;
  display: flex;
  align-items: center;
}

.services-overlay {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: linear-gradient(0deg, rgba(0, 0, 0, 0.40) 0%, rgba(0, 0, 0, 0.40) 100%);
  display: flex;
  align-items: center;
}

.services-content {
  color: var(--color-white);
  padding: 120px 104px;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.services-title {
  font-size: 40px;
  font-weight: 700;
  color: var(--color-white);
  margin-bottom: 8px;
}

.services-subtitle {
  font-size: 16px;
  line-height: 32px;
  color: var(--color-white);
  margin-bottom: 40px;
}

.service-heading {
  font-size: 24px;
  font-weight: 700;
  color: var(--color-white);
  margin-bottom: 16px;
}

.service-desc {
  font-size: 20px;
  line-height: 32px;
  color: var(--color-white);
  margin-bottom: 40px;
}

.gallery-strip {
  background: rgba(56.09, 56.09, 56.09, 0.50);
  backdrop-filter: blur(5px);
  border-radius: var(--radius-md);
  padding: 24px;
  display: flex;
  gap: 16px;
  align-items: center;
}

.gallery-item.main-item {
  border-radius: var(--radius-md);
  overflow: hidden;
  cursor: pointer;
}

.gallery-item.main-item img {
  width: 100%;
  height: 150px;
  object-fit: cover;
  border-radius: 10px;
}

.gallery-item.thumb-item {
  opacity: 0.6;
  border-radius: var(--radius-md);
  overflow: hidden;
}

.gallery-item img {
  display: block;
  width: 100%;
  height: auto;
}

/* FAQ Section */
.faq-section {
  padding: 80px 0;
}

.faq-card {
  background: var(--color-light-gray);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-sm);
  border: none;
  margin-bottom: 16px;
}

.faq-card .card-header {
  background: transparent;
  border: none;
  padding: 0;
}

.faq-card .btn-link {
  width: 100%;
  text-align: left;
  padding: 20px 24px;
  color: var(--color-dark);
  font-size: 20px;
  font-weight: 400;
  text-decoration: none;
  border: none;
  background: none;
  position: relative;
}

.faq-card .btn-link:hover,
.faq-card .btn-link:focus {
  text-decoration: none;
  color: var(--color-dark);
  box-shadow: none !important;
}

.faq-card .btn-link::after {
  content: '+';
  position: absolute;
  right: 24px;
  top: 50%;
  transform: translateY(-50%);
  color: var(--color-gray);
  font-size: 24px;
  transition: transform 0.3s ease;
}

.faq-card .btn-link:not(.collapsed)::after {
  content: '−';
  transform: translateY(-50%) rotate(180deg);
}

.faq-card .card-body {
  padding: 22px;
  color: var(--color-gray);
  font-size: 16px;
  line-height: 24px;
}

/* Footer */
.footer-cta-section {
  background: var(--gradient-footer);
  padding: 128px 0;
}

.cta-title {
  font-size: 48px;
  font-weight: 400;
  color: var(--color-white);
  margin-bottom: 24px;
}

.highlight-text {
  color: var(--color-yellow-light);
}

.cta-desc {
  font-size: 20px;
  line-height: 28px;
  color: var(--color-green-light);
  margin-bottom: 32px;
}

.cta-bullets {
  list-style: none;
  padding: 0;
  margin-bottom: 40px;
}

.cta-bullets li {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 12px;
  color: var(--color-white);
  font-size: 18px;
}

.bullet-dot {
  width: 8px;
  height: 8px;
  background: var(--color-yellow);
  border-radius: 50%;
}

.cta-phones-container {
  position: relative;
  height: 400px;
}

.cta-tile-1 {
  width: 96px;
  height: 96px;
  background: rgba(255, 255, 255, 0.20);
  opacity: 0.80;
  position: absolute;
  top: 20px;
  left: 20px;
}

.cta-tile-2 {
  width: 144px;
  height: 144px;
  background: rgba(255, 255, 255, 0.10);
  opacity: 0.60;
  border-radius: var(--radius-lg);
  position: absolute;
  bottom: 20px;
  right: 20px;
}

.cta-tile-3 {
  width: 80px;
  height: 80px;
  background: rgba(255, 223, 32, 0.30);
  opacity: 0.70;
  position: absolute;
  top: 50%;
  right: 50px;
}

.phone-stack {
  position: relative;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
}

.phone-stack-item {
  border-radius: 20px;
  position: relative;
}




/* Footer Bottom */
.footer-bottom {
  background: var(--color-dark);
  padding: 22px 0;
  border-top: 1.02px solid var(--color-dark-gray);
}

.footer-brand {
  margin-bottom: 32px;
}

.footer-brand-block {
  filter: brightness(0) invert(1);
}

.footer-desc {
  font-size: 16px;
  line-height: 26px;
  color: var(--color-gray);
  margin-bottom: 32px;
  max-width: 600px;
  margin-left: auto;
  margin-right: auto;
}

.footer-nav {
  margin-bottom: 32px;
}

.footer-link {
  color: var(--color-gray-light);
  text-decoration: none;
  margin: 0 24px;
  font-size: 16px;
  transition: color 0.3s ease;
}

.footer-link.active,
.footer-link:hover {
  color: var(--color-primary);
  text-decoration: none;
}

.copyright {
  color: var(--color-gray);
  font-size: 14px;
  margin: 0;
}

/* Responsive Design */
@media (max-width: 1199.98px) {
  :root {
    --page-padding-x: 40px;
  }

  h1,
  .hero-heading {
    font-size: 56px;
  }

  h2,
  .section-heading {
    font-size: 48px;
    line-height: 48px;
  }

  .hero-subtext,
  .section-subtext {
    font-size: 20px;
    line-height: 32px;
  }

  .phones-container {
    width: 100%;
    max-width: 450px;
  }

  .services-content {
    padding: 80px 40px;
  }
}

@media (max-width: 991.98px) {
  .hero-section {
    padding: 80px 0;
  }

  .hero-left {
    text-align: center;
    margin-bottom: 40px;
    padding-right: 0;
  }

  .phones-container {
    max-width: 350px;
    height: 400px;
  }

  .phone-1,
  .phone-2,
  .phone-3 {
    transform: scale(0.8);
  }

  .feature-item {
    flex-direction: column;
    text-align: center;
  }

  .gallery-strip {
    flex-wrap: wrap;
    justify-content: center;
  }
}

@media (max-width: 767.98px) {
  :root {
    --page-padding-x: 24px;
  }

  h1,
  .hero-heading {
    font-size: 40px;
  }

  h2,
  .section-heading {
    font-size: 36px;
    line-height: 40px;
  }

  .hero-section,
  .how-it-works-section,
  .why-choose-us-section,
  .faq-section {
    padding: 64px 0;
  }

  .footer-cta-section {
    padding: 80px 0;
  }

  .footer-bottom {
    padding: 40px 0;
  }

  .cta-title {
    font-size: 32px;
  }

  .overlay-title {
    font-size: 40px;
    line-height: 44px;
  }

  .services-title {
    font-size: 32px;
  }

  .services-content {
    padding: 60px 24px;
  }

  .store-buttons-row {
    flex-direction: column;
    align-items: center;
    gap: 12px;
  }

  .footer-link {
    display: block;
    margin: 8px 0;
  }

  .our-services-section {
    height: auto;
    min-height: 600px;
  }

  .gallery-strip {
    flex-direction: column;
    gap: 12px;
  }

  .cta-phones-container {
    height: auto;
    margin-top: 40px;
  }

  .phone-stack-item {
    transform: scale(0.7);
  }
}

@media (max-width: 575.98px) {
  .phones-container {
    height: 300px;
  }

  .phone-1,
  .phone-2,
  .phone-3 {
    transform: scale(0.6);
  }

  .floating-tile {
    transform: scale(0.8);
  }

  .feature-item {
    padding: 20px;
  }

  .how-it-works-card {
    padding: 20px;
  }
}






.color-primary {
  color: var(--color-primary);
}


.accordion>.card {
  overflow: hidden;
  box-shadow: var(--shadow-md);
}

.faq-card .btn-link {
  border-bottom: 1px solid #e5e7e9;
  border-radius: inherit;
}