/* Reboot/Normalize (selected styles for consistency) */
*, ::after, ::before {
    box-sizing: border-box;
}
html {
    font-family: sans-serif;
    line-height: 1.15;
    -webkit-text-size-adjust: 100%;
    -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}
body {
    margin: 0;
    font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", "Liberation Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
    font-size: 1rem; /* 16px by default */
    font-weight: 400;
    line-height: 1.5;
    color: #212529; /* Default text color */
    background-color: #f8f9fa; /* Original custom style: Light background for better contrast */
    -webkit-text-size-adjust: 100%;
}
p {
    margin-top: 0;
    margin-bottom: 1rem;
}
ol, ul { /* Default styling for lists not part of components */
    padding-left: 2rem;
    margin-top: 0;
    margin-bottom: 1rem;
}
h1, h2, .h5 { /* .h5 is used as a class for card titles */
    margin-top: 0;
    margin-bottom: .5rem;
    font-weight: 500;
    line-height: 1.2;
}
h1 { font-size: calc(1.375rem + 1.5vw); } /* Responsive H1 */
@media (min-width: 1200px) {
    h1 { font-size: 2.5rem; } /* Approx 40px */
}
h2 { font-size: calc(1.3rem + .6vw); } /* Responsive H2 */
@media (min-width: 1200px) {
    h2 { font-size: 2rem; } /* Approx 32px */
}
.h5 { font-size: 1.25rem; } /* Approx 20px */

a {
    color: #0d6efd; /* Bootstrap default link color */
    text-decoration: underline;
}
a:hover {
    color: #0a58ca;
}
a.btn { /* Ensure buttons that are links don't get browser default underline */
    text-decoration: none;
}
img, svg {
    vertical-align: middle;
}

/* Layout: Container */
.container {
    width: 100%;
    padding-right: .75rem; /* (Bootstrap's default gutter 1.5rem / 2) */
    padding-left: .75rem;
    margin: 10px 0;
}
/*@media (min-width: 576px) { .container { max-width: 540px; } }*/
/*@media (min-width: 768px) { .container { max-width: 720px; } }*/
/*@media (min-width: 992px) { .container { max-width: 960px; } }*/
/*@media (min-width: 1200px) { .container { max-width: 1140px; } }*/
/* @media (min-width: 1400px) { .container { max-width: 1320px; } } */ /* XXL breakpoint, optional */

/* Utilities: Backgrounds */
.bg-primary { background-color: #0d6efd !important; } /* Bootstrap primary blue */
.bg-light { background-color: #f8f9fa !important; }

/* Utilities: Text */
.text-white { color: #fff !important; }
.text-center { text-align: center !important; }
.text-muted { color: #6c757d !important; } /* Bootstrap muted text color */
.lead {
    font-size: 1.25rem; /* Approx 20px */
    font-weight: 300;
}

/* Utilities: Spacing (subset of Bootstrap's spacing) */
.py-4 { padding-top: 1.5rem !important; padding-bottom: 1.5rem !important; } /* 24px */
.mb-0 { margin-bottom: 0 !important; }
.mt-3 { margin-top: 1rem !important; }    /* 16px */
.mb-4 { margin-bottom: 1.5rem !important; } /* 24px */
.mt-5 { margin-top: 3rem !important; }    /* 48px */
.mb-5 { margin-bottom: 3rem !important; } /* 48px */

/* Utilities: Shadows */
.shadow-sm { box-shadow: 0 .125rem .25rem rgba(0,0,0,.075) !important; }

/* Components: Card */
.card {
    position: relative;
    display: flex;
    flex-direction: column;
    min-width: 0;
    word-wrap: break-word;
    background-color: #fff;
    background-clip: border-box;
    border: 1px solid #dee2e6; /* Bootstrap card border color */
    border-radius: .375rem; /* Bootstrap 5.3 default border radius (6px) */
}
.card-body {
    flex: 1 1 auto;
    padding: 1rem; /* 16px */
    color: inherit;
}
.card-header { /* Original custom style takes precedence for background and color */
    padding: .5rem 1rem; /* 8px 16px */
    margin-bottom: 0;
    background-color: #007bff; /* Custom: Bootstrap primary color for card headers */
    color: white;             /* Custom: white text */
    border-bottom: 1px solid #dee2e6; /* Bootstrap card border color */
}
.card-header:first-child { /* Ensure top corners are rounded correctly */
    border-top-left-radius: calc(.375rem - 1px);
    border-top-right-radius: calc(.375rem - 1px);
}
.card-text:last-child { /* Remove bottom margin if it's the last child in card-body */
    margin-bottom: 0;
}

/* Components: Button */
.btn {
    display: inline-block;
    font-weight: 400;
    line-height: 1.5;
    color: #212529; /* Default button text color */
    text-align: center;
    text-decoration: none;
    vertical-align: middle;
    cursor: pointer;
    -webkit-user-select: none;
    -moz-user-select: none;
    user-select: none;
    background-color: transparent;
    border: 1px solid transparent;
    padding: .375rem .75rem; /* 6px 12px */
    font-size: 1rem; /* 16px */
    border-radius: .375rem; /* Bootstrap 5.3 default button border radius (6px) */
    transition: color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;
}
.btn:hover {
    /* Generic hover effects can be added here if needed, specific buttons override */
}
.btn-success {
    color: #fff;
    background-color: #198754; /* Bootstrap success green */
    border-color: #198754;
}
.btn-success:hover {
    color: #fff;
    background-color: #157347; /* Darker green for hover */
    border-color: #146c43;
}

/* Components: List group */
.list-group {
    display: flex;
    flex-direction: column;
    padding-left: 0; /* Remove default list padding */
    margin-bottom: 0;
    border-radius: .375rem; /* Bootstrap 5.3 default border radius */
}
.list-group-item {
    position: relative;
    display: block;
    padding: .5rem 1rem; /* 8px 16px */
    color: #212529;
    text-decoration: none;
    background-color: #fff;
    border: 1px solid #dee2e6; /* Bootstrap default border color */
}
.list-group-item:first-child { /* Round top corners for the first item */
    border-top-left-radius: inherit;
    border-top-right-radius: inherit;
}
.list-group-item:last-child { /* Round bottom corners for the last item */
    border-bottom-right-radius: inherit;
    border-bottom-left-radius: inherit;
}
.list-group-item + .list-group-item { /* Remove double borders between items */
    border-top-width: 0;
}
.list-group-flush { /* For list groups without outer borders or rounded corners */
    border-radius: 0;
}
.list-group-flush > .list-group-item {
    border-width: 0 0 1px; /* Only bottom border for flush items */
}
.list-group-flush > .list-group-item:last-child {
    border-bottom-width: 0; /* No border for the very last flush item */
}

/* Original Custom Styles (already present or merged above) */
/* body background-color is set in the body tag style above */
/* card-header background-color and color are set in .card-header style above */
.btn-buy { /* Custom button style */
    background-color: #ff69b4; /* A distinct color for the buy button */
    border-color: #ff69b4;
    color: white;
}
.btn-buy:hover {
    background-color: #ff47a3;
    border-color: #ff47a3;
    color: white;
}
.step-icon { /* Simple icon simulation */
    font-size: 1.5rem;
    margin-right: 0.5rem;
}