/* Base CSS Reset and Variables */

* {
   margin: 0;
   padding: 0;
   box-sizing: border-box;
}

:root {
   /* colors */
   --primary: #cc056f;
   --secondary: #f9f6f9;
   --light: #f8f9fa;
   --neutral-800: #6d6c70;
   --neutral-600: #bcbbbe;
   --neutral-500: #cbcacd;
   --neutral-400: #dddcdf;
   --neutral-300: #f1f1f1;
   --neutral-200: #f7f7f8;
   --neutral-100: #fdfdfd;
   --neutral-black: #29282a;
   --dark: #212529;
   --dark-grey: #6a6a6a;
   --yellow-300: #ffda6a;
   --success-bg: #d1e7dd;
   --success-text: #0F5132;
   --warning-bg: #fff3cd;
   --warning-text: #664d03;
   --info-bg: #cfe2ff;
   --info-text: #084298;
   --danger-bg: #f8d7da;
   --danger-text: #842029;
   --pink-100: #f9f6f9;
   --blue-800: #020041;
   --blue-300: #c3c1ff;
   --blue-100: #f8f8ff;
   --theme-border: #ebeaec;
   --danger: #dc3545;
   --dark-rgb: 33, 37, 41;
   /* fonts */
   --helvetica-neue: "Helvetica Neue", Helvetica, Arial, sans-serif;
}

/* Base HTML Element Styling */

ol,
ul {
   margin: 0;
   padding: 0;
}

li {
   list-style-type: none;
}

ul.budi-list {
   list-style-type: disc;
   padding-left: 16px;
}

ul.budi-list li {
   list-style-type: disc;
   padding-left: 8px;
}

input:focus {
   outline: none;
}

a,
button {
   transition: all 0.3s;
}

a {
   text-decoration: none;
}

body {
   font-family: var(--helvetica-neue);
   color: #000;
}

h1 {
   font-size: 40px;
   line-height: 1.2;
   color: var(--neutral-black);
}

h2 {
   font-size: 32px;
   line-height: 1.2;
}

h3 {
   font-size: 24px;
   line-height: 1.2;
}

h4 {
   font-size: 20px;
   line-height: 1.2;
   color: var(--neutral-black);
}

h6 {
   font-size: 14px;
   line-height: 1.15;
}

/* Container Overrides */

.container,
.container-lg,
.container-md,
.container-sm,
.container-xl,
.container-xxl {
   padding-inline: 16px;
}

/* Base Responsive Typography */

@media (max-width: 1399px) {
   h1 {
      font-size: 36px;
   }
}

@media (max-width: 1199px) {
   h3 {
      font-size: 20px;
   }
   
   h4 {
      font-size: 18px;
   }
}

@media (max-width: 991px) {
   h2 {
      font-size: 28px;
   }
}

@media (max-width: 767px) {
   h2 {
      font-size: 24px;
   }
   
   h3 {
      font-size: 18px;
   }
}

@media (max-width: 1199px) {
   h1 {
      font-size: 28px;
   }
} 

/* Dynamic content wrapper */
.budi-content-dynamic {
   margin: 0;
   padding: 0;
}

.budi-content-dynamic * {
   margin: 0;
   padding: 0;
   text-decoration: none;
   font-weight: normal;
   font-size: 16px;
   line-height: 1.5;
   color: var(--neutral-black);
   font-family: var(--helvetica-neue);
   font-style: normal;
}

.budi-content-dynamic a {
   color: var(--primary);
}

.budi-content-dynamic a:hover {
   color: var(--primary);
}

.budi-content-dynamic h1, .budi-content-dynamic h2, .budi-content-dynamic h3, .budi-content-dynamic h4, .budi-content-dynamic h5, .budi-content-dynamic h6 {
   color: var(--neutral-black);
   font-weight: 600;
   margin-bottom: 0.5rem;
   margin-top: 1rem;
}

.budi-content-dynamic strong {
   font-weight: 600;
}


.budi-content-dynamic p {
   margin-bottom: 1rem;
}

.budi-content-dynamic p:last-child {
   margin-bottom: 0;
}

.budi-content-dynamic ul {
   list-style-type: none;
   padding-left: 0;
   margin-bottom: 1rem;
}

.budi-content-dynamic ul li {
   list-style-type: none;
   position: relative;
   padding-left: 25px;
   margin-bottom: 4px;
}

.budi-content-dynamic ul li::before {
   content: "";
   position: absolute;
   left: 8px;
   top: 0.6em; /* align with first line */
   width: 6px;
   height: 6px;
   background-color: var(--neutral-black);
   border-radius: 50%;
}

/* Definition lists for key:value data */
.budi-content-dynamic dl {
   display: grid;
   grid-template-columns: max-content 1fr;
   column-gap: 16px;
   row-gap: 4px;
   margin-bottom: 1rem;
}

.budi-content-dynamic dt {
   color: var(--neutral-black);
   position: relative;
   padding-left: 25px; /* match UL left padding */
   white-space: nowrap;
}

.budi-content-dynamic dd {
   margin: 0;
}

.budi-content-dynamic dt::before {
   content: "";
   position: absolute;
   left: 8px;
   top: 0.6em; /* align with first line */
   width: 6px;
   height: 6px;
   background-color: var(--neutral-black);
   border-radius: 50%;
}

.budi-content-dynamic dt::after {
   content: ":";
}

/* Budi Blocks */


@media (min-height: 1300px) {
   .budi-hlg-block {
      display: block !important;
   }
}