
/* =========================================================
 RPA main image alignment & sizing overrides
========================================================= */

* {
  box-sizing: border-box;
}

main{
  /* background-image: url(../img/background.png); */
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}

/* =========================================================
 Modern design tokens
========================================================= */
:root {
  --color-bg: #f7fafc;
  --color-surface: #ffffff;
  --color-text: #0f172a;
  --color-muted: #475569;
  --color-primary: #0ea5e9; /* sky-500 */
  --color-primary-600: #0284c7;
  --radius-lg: 16px;
  --radius-md: 12px;
  --radius-sm: 8px;
  --shadow-sm: 0 1px 2px rgba(2, 8, 23, 0.06);
  --shadow-md: 0 8px 24px rgba(2, 8, 23, 0.08);
  --shadow-lg: 0 16px 40px rgba(2, 8, 23, 0.12);
  --space-1: 8px;
  --space-2: 12px;
  --space-3: 16px;
  --space-4: 24px;
  --space-5: 32px;
  --space-6: 48px;
}

body.page {
  color: var(--color-text);
  background-color: var(--color-bg);
}

#main h2 em {
  letter-spacing: 0.08em;
}

/* Headings refresh */
h2.center {
  font-size: 3rem;
  line-height: 1.2;
  margin-bottom: var(--space-5);
}
h4.center {
  color: var(--color-muted);
}


/* Hero image: center and constrain width */
#hero .wrap figure {
  line-height: 0;
  text-align: center;
}

#hero .wrap figure img {
  display: inline-block;
  width: 100%;
  max-width: 1200px;
  height: auto;
}

/* Flex grid layout replacing number_box */
.flex-grid {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-6);
}

.flex-grid .grid-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  background: var(--color-surface);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-sm);
  padding: var(--space-6);
  /* 4 cols on one row over md, 2 cols under md */
  width: calc((100% - var(--space-6) * 3) / 4);
}

@media (max-width: 1920px) {
  .flex-grid .grid-item {
    width: calc((100% - var(--space-6)) / 2);
  }
}

@media (max-width: 640px) {
  .flex-grid .grid-item {
    width: 100%;
  }
}

/* Feature and Challenges card images: consistent sizing */
#service_features{
  background-color: #fff;
  padding: 80px;
}

#service_features .number_box .box figure,
#challenges .flex-grid .grid-item figure {
  min-height: 220px;
}

#service_features .number_box .box figure img,
#challenges .flex-grid .grid-item figure img {
  display: block;
  width: 100%;
  max-width: 320px;
  max-height: 200px;
  height: auto;
  margin: 0 auto;
  object-fit: contain;
}

/* Card surface styling */
#service_features .number_box .box .desc,
#challenges .number_box .box .desc {
  padding: var(--space-6);
}

/* CTA button modernized */
.button.medium.blue a {
  display: inline-block;
  color: #fff;
  padding: 14px 90px;
  border-radius: 999px;
  text-decoration: none;
  box-shadow: var(--shadow-sm);
  transition: transform .15s ease, box-shadow .15s ease, filter .2s ease;
}

.button.medium.blue a:hover {
  transform: translateY(-1px);
  box-shadow: var(--shadow-md);
  filter: saturate(1.05);
}

/* Section width and centering */
#what_is_rpa .wrap,
#service_features .wrap,
#challenges .wrap {
  width: 1200px;
  margin: 0 auto;
}

#what_is_rpa .wrap {
  text-align: center;
}

/* RPA benefits list */
.benefits-list {
  display: inline-block;
  margin: 10px auto 0;
  padding: 0;
  list-style: none;
  text-align: left;
}

.benefits-list li {
  position: relative;
  font-size: 2.4rem;
  line-height: 2.2;
  letter-spacing: 0.06em;
  padding-left: 28px;
  margin: 6px 0;
  color: dimgray;
  font-weight: bolder;
}

.benefits-list li:before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.95em;
  width: 10px;
  height: 10px;
  border-radius: 3px;
  background: var(--color-primary);
  box-shadow: 0 0 0 3px rgba(14,165,233,.15);
  transform: translateY(-50%) rotate(45deg);
}

/* Font size for conclusion text after benefits list */
#what_is_rpa .center p {
  font-size: 2.4rem;
  margin-top: 16px;
}

/* Font size for challenge descriptions (red frames) */
#challenges .flex-grid .grid-item p {
  font-size: 2.2rem;
  line-height: 1.6;
}

/* Font size for service feature descriptions (blue frames) */
#service_features .number_box .box .desc p {
  font-size: 2.2rem;
  line-height: 1.7;
}

/* Fade-in nicety */
.fadein.scrollin {
  transition: transform .6s cubic-bezier(.2,.8,.2,1), opacity .6s;
}

/* Small label and big number above each card */
#service_features .number_box .box .feature-label {
  text-align: center;
  color: #00539c;
  letter-spacing: 0.2em;
  margin-bottom: 6px;
}

#service_features .number_box .box .feature-num {
  text-align: center;
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 4.8rem;
  color: #00539c;
  margin-bottom: 20px;
}

#main .number_box .box h4 {
  font-size: 2.8rem;
}

/* =========================================================
| Text color and utility classes
========================================================= */
h4,
h4 > span {
  font-size: 2.8rem;
  line-height: 1.5;
}

h4.grid-header {
  font-size: 2.8rem;
  margin-bottom: 20px;
}

.text-blue-first {
  color: #0289dc;
}

.text-blue-second {
  color: #008cd7;
}

.lh-base {
  line-height: 1.5 !important;
}

.mb-5 {
  margin-bottom: 3rem !important;
}

/* Additional styles */
#challenges .center h3 {
  font-size: 2.8rem;
  margin-bottom: 24px;
}

body.page #main p.conclusion-text {
  font-size: 2.8rem;
  font-weight: bolder;
  color: var(--color-muted);
}

.cta-section {
  margin-top: 24px;
}