/* Global theme styles */
* {
  box-sizing: border-box;
}

body {
  font-family: var(--font-family-sans);
  font-weight: 400;
  line-height: 1.6;
  color: var(--color-gray-800);
  background-color: var(--color-white);
  margin: 0;
}

/* Heading styles */
h1,
h2,
h3,
h4,
h5,
h6 {
  font-family: var(--font-family-sans);
  font-weight: 700;
  line-height: 1.2;
  color: var(--color-gray-900);
  margin: 0 0 var(--space-4) 0;
}

h1{
  font-size:73px;
}

h2{
  font-size:38px;
}

h3{
  font-size:35px;
}

h4{
  font-size:18px;
  text-transform: uppercase;
  font-weight: bold;
  letter-spacing: 0.1rem;
}

.h1-2-columns{
  font-size: 50px;
  font-weight: 600;
  line-height: 1;
}

/* Utility classes for colors */
.text-primary {
  color: var(--color-primary);
}

.text-secondary {
  color: var(--color-gray-600);
}

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

.bg-primary-light {
  background-color: var(--color-primary-lighter);
}

/* Utility classes for spacing */
.p-1 {
  padding: var(--space-1);
}
.p-2 {
  padding: var(--space-2);
}
.p-3 {
  padding: var(--space-3);
}
.p-4 {
  padding: var(--space-4);
}
.p-5 {
  padding: var(--space-5);
}
.p-6 {
  padding: var(--space-6);
}

.m-1 {
  margin: var(--space-1);
}
.m-2 {
  margin: var(--space-2);
}
.m-3 {
  margin: var(--space-3);
}
.m-4 {
  margin: var(--space-4);
}
.m-5 {
  margin: var(--space-5);
}
.m-6 {
  margin: var(--space-6);
}

/* Utility classes for typography */
.text-xs {
  font-size: var(--text-xs);
}
.text-sm {
  font-size: var(--text-sm);
}
.text-base {
  font-size: var(--text-base);
}
.text-lg {
  font-size: var(--text-lg);
}
.text-xl {
  font-size: var(--text-xl);
}
.text-2xl {
  font-size: var(--text-2xl);
}
.text-3xl {
  font-size: var(--text-3xl);
}
.text-4xl {
  font-size: var(--text-4xl);
}

.font-light {
  font-weight: var(--font-light);
}
.font-normal {
  font-weight: var(--font-normal);
}
.font-medium {
  font-weight: var(--font-medium);
}
.font-semibold {
  font-weight: var(--font-semibold);
}
.font-bold {
  font-weight: var(--font-bold);
}

/* Font family utility classes */
.font-roboto {
  font-family: var(--font-family-sans);
}
.font-intel {
  font-family: var(--font-family-intel);
}

/* Font weight utility classes */
.font-light {
  font-weight: 300;
}
.font-regular {
  font-weight: 400;
}
.font-medium {
  font-weight: 500;
}
.font-semibold {
  font-weight: 600;
}
.font-bold {
  font-weight: 700;
}
.font-black {
  font-weight: 900;
}

/* Global heading classes */
.heading-xl {
  font-size: var(--text-5xl);
  font-weight: var(--font-bold);
  line-height: 1.2;
}

.heading-lg {
  font-size: var(--text-4xl);
  font-weight: var(--font-bold);
  line-height: 1.2;
}

.heading-md {
  font-size: var(--text-3xl);
  font-weight: var(--font-bold);
  line-height: 1.2;
}

.heading-sm {
  font-size: var(--text-2xl);
  font-weight: var(--font-bold);
  line-height: 1.2;
}

.heading-xs {
  font-size: var(--text-xl);
  font-weight: var(--font-bold);
  line-height: 1.2;
}

@media (max-width: 768px) {
  .heading-xl {
    font-size: var(--text-4xl);
  }
  .heading-lg {
    font-size: var(--text-3xl);
  }
  .heading-md {
    font-size: var(--text-2xl);
  }
  .heading-sm {
    font-size: var(--text-xl);
  }
  .heading-xs {
    font-size: var(--text-lg);
  }
}

/* Global subtitle class */
.subtitle {
  font-size: var(--text-lg);
  font-weight: var(--font-semibold);
  color: var(--color-primary);
  text-transform: uppercase;
  letter-spacing: 0.1em;
  text-align: center;
  margin: 0;
  line-height: 1.4;
}

/* Global text classes */
.text-lg {
  font-size: var(--text-lg);
  line-height: 1.6;
}

.text-base {
  font-size: var(--text-base);
  line-height: 1.6;
}

.text-sm {
  font-size: var(--text-sm);
  line-height: 1.5;
}

/* Common layout patterns */
.container {
  max-width: var(--max-width-container);
  margin: 0 auto;
  padding: 0 var(--space-6);
}

.container-small {
  max-width: var(--max-width-container-small);
  margin: 0 auto;
  padding: 0 var(--space-6);
}

.container-large {
  max-width: var(--max-width-container-large);
  margin: 0 auto;
  padding: 0 var(--space-6);
}

.container-large .container-small,
.container .container-small {
  padding: 0;
}

@media (max-width: 768px) {
  .container-large, .container, .container-small {
    padding: 0 var(--space-4);
    max-width: 100%;
  }
}

/* Common section patterns */
.section {
  padding: var(--space-8) 0;
}

.section-large {
  padding: var(--space-16) 0;
}

.dnd-section:not(:has(.full-bg)) {
  margin: var(--space-16) 0;
}

@media (max-width: 768px) {
  .dnd-section:not(:has(.full-bg)) {
    margin: var(--space-8) 0;
  }
}

/* Common card patterns */
.card {
  background: var(--color-white);
  border-radius: var(--radius-2xl);
  padding: var(--space-8);
  box-shadow: var(--shadow-md);
}

.card-large {
  background: var(--color-white);
  border-radius: var(--radius-4xl);
  padding: var(--space-8);
  box-shadow: var(--shadow-lg);
}

/* Common grid patterns */
.grid-2 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--space-8);
}

.grid-3 {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--space-8);
}

.grid-4 {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--space-8);
}

/* Common flex patterns */
.flex-center {
  display: flex;
  align-items: center;
  justify-content: center;
}

.flex-between {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.flex-column {
  display: flex;
  flex-direction: column;
}

/* Common text patterns */
.text-center {
  text-align: center;
}

.text-left {
  text-align: left;
}

.text-right {
  text-align: right;
}

/* Common responsive patterns */
@media (max-width: 768px) {
  .container,
  .container-small {
    padding: 0 var(--space-4);
  }

  .grid-2,
  .grid-3,
  .grid-4 {
    grid-template-columns: 1fr;
    gap: var(--space-6);
  }

  .section {
    padding: var(--space-6) 0;
  }

  .section-large {
    padding: var(--space-12) 0;
  }

  .card,
  .card-large {
    padding: var(--space-6);
  }

  h1, .h1-2-columns{
    font-size:48px;
  }

  h2{
    font-size:32px;
  }

  h3{
    font-size:26px;
  }
}

@media (max-width: 480px) {
  .container,
  .container-small {
    padding: 0 var(--space-3);
  }

  .section {
    padding: var(--space-5) 0;
  }

  .section-large {
    padding: var(--space-10) 0;
  }

  .card,
  .card-large {
    padding: var(--space-5);
  }
}

/* Forms */

form{
  list-style-type: none;
  width: 100%;
  padding: 20px 0;
}

form fieldset{
    width: 100% !important;
    max-width: 100% !important;
}

.hs-error-msg {
  color: var(--color-secondary);
}

form input[type=text], input[type=email], input[type=tel]{
  width: 100% !important;
  padding: 12px;
  margin: 10px 0;
  background-color:#F2F2F2;
  border-radius:18px;
  box-sizing: border-box;
  border:none;
}

form ul{
  list-style-type: none;
  padding-left: 0;
}

form li{
  padding: 5px 0;
}
 
form input[type=radio]{
 width: 20px;
  height: 20px;
  border: 2px solid #ccc;
  border-radius: 4px;
  accent-color: #A42022; 
  margin-right:20px;
  vertical-align: middle;
}


form textarea{
  width: 100% !important;
  padding: 12px;
  margin: 10px 0;
  background-color:#F2F2F2;
  border-radius:18px;
  box-sizing: border-box;
  border:none;
}

form input[type=button], input[type=submit], input[type=reset] {
  background-color: #A42022;
  border: 1px solid #A42022;
  color: white;
  padding: 16px 32px;
  text-decoration: none;
  border-radius:30px;
  margin: 4px 2px;
  cursor: pointer;
  text-transform: uppercase;
  font-weight: bold;
  font-size: 16px;
  transition: all .2s ease;
  float: right;
}

form input[type=button]:hover, input[type=submit]:hover, input[type=reset]:hover{
  background-color: white;
  border: 1px solid #A42022;
  color: #A42022;
}

/* Forms Pricing */
.hs-content-name-pricing label {
    font-size: 20px !important;
    font-weight: 600;
}

.hs-content-name-pricing .hsfc-Step {
  box-shadow: 0px 0px 8px 4px rgba(0,0,0,0.15);
  border-radius: 20px !important;
}

/* Max Width */
.maxwidth-900{
  max-width:900px;
  margin-left:auto;
  margin-right:auto;
}
.maxwidth-1100{
  max-width:1100px;
  margin-left:auto;
  margin-right:auto;
}

/* hero in home page */
@media (min-width: 768px) {
  .home-page, .services-child-page, .about-page, .solutions-page, .solutions-child-page, .partners-page, .take-a-tour-page, .calculator-page,
  .industries-page, .page-ii, .resources-page, .testimonials-page {
    margin-top: -101px;
  }
  .contact-page, .thank-you-page, .take-a-tour-page, .calculator-page, .faq-page {
    margin-top: 0px;
  }
}
