*,
*::before,
*::after {
    box-sizing: border-box;
}

:root {
    --primary-font: "Source Sans Pro", "SourceSansPro", sans-serif;
    --secondary-font: "Raleway", serif;
    --open-sans: "Open Sans", sans-serif;
    --drake-blue: #1B75BC;
    --drake-blue-light: #1c75bb;
    --drake-gray: #48484A;
    --gray-dark: #43474d;
    --gray-medium: #74777e;
    --white: #fff;
    --black: #222;
    --border-gray: rgba(77, 77, 79, 0.4);
    --faq-bg: #f4f8fc;
    --faq-border: #d2d2d3;
    --peb-wave: rgba(216, 208, 232, 0.4);
    --peb-content-max: 1135px;
}

img {
    max-width: 100%;
}

.practice-essentials-bundle {
    /* White below the wave; hero tint comes from the SVG lavender path */
    background-color: #fff;
    background-image: url('/localassets/images/practice-essentials/Hero-Background.svg');
    background-repeat: no-repeat;
    /* SVG viewBox is 1440×1098. Below 1440px width, plain 100% scales height down and
       the wave rides up relative to content. Use at least 1440px width so vertical scale
       stays tied to the design; center so sides crop evenly. Wider viewports still scale up. */
    background-size: max(100%, 1440px) auto;
    background-position: center top;
}
    
.practice-essentials-bundle > * {
    position: relative;
    z-index: 1;
}

.practice-essentials-bundle .container {
    padding-left: 15px;
    padding-right: 15px;
    margin-left: auto;
    margin-right: auto;
    max-width: calc(var(--peb-content-max) + 30px);
}

/* ========== Hero ========== */
.peb-hero {
    text-align: center;
    padding: 40px 15px 0;
}

.peb-hero-inner {
    max-width: var(--peb-content-max);
    margin: 0 auto;
}

.peb-hero-line1 {
    font-family: var(--primary-font);
    font-size: 66px;
    font-weight: 400;
    line-height: 68px;
    color: var(--drake-blue-light);
    margin: 0 0 8px;
    letter-spacing: -1.8px;
}

.peb-hero-title {
    font-family: var(--primary-font);
    font-size: 74px;
    font-weight: 700;
    line-height: 1.1;
    color: var(--drake-blue);
    margin: 0 0 28px;
    letter-spacing: -1px;
}

.peb-hero-subtitle {
    font-family: var(--primary-font);
    font-size: 32px;
    font-weight: 700;
    line-height: normal;
    color: var(--black);
    text-align: center;
    max-width: 925px;
    margin: 0 auto;
}

.peb-hero-callout .peb-hero-tagline {
    margin: 0 auto 16px;
    display: block;
    max-width: 100%;
    height: auto;
}

.peb-plus {
    color: var(--drake-gray);
    font-weight: 400;
}

.peb-hero-desc {
    font-family: var(--primary-font);
    font-size: 18px;
    font-weight: 400;
    line-height: 1.35;
    color: var(--black);
    margin: 0 0 32px;
}

.peb-btn {
    display: inline-block;
    text-decoration: none;
    font-family: var(--primary-font);
    cursor: pointer;
    border: none;
    text-align: center;
}

.peb-btn-primary{
    background: var(--drake-blue);
    color: var(--white);
    font-size: 20px;
    font-weight: 600;
    padding: 14px 32px;
    border-radius: 100px;
    line-height: 1.3;
}

    .peb-btn-primary:hover {
        opacity: 0.9;
        color: #FFF;
        font-weight: initial;
        font-size: 20px;
        font-weight: 600;
    }

.peb-hero-callouts {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding-left: 20px;
    padding-right: 20px;
    margin-top: 35px;
}

.peb-hero-callouts > .peb-hero-callout {
    flex: 1 1 0;
    min-width: 0;
    padding-left: 40px;
    padding-right: 40px;
}

.peb-hero-callouts > .peb-hero-callout-divider {
    flex-shrink: 0;
}

.peb-hero-inner > .peb-btn-primary {
    margin-top: 35px;
}

    .peb-hero-callouts > .peb-hero-callout > h3 {
        font-size: 18px;
        font-weight: 700;
        color: #48484A;
        padding:0;
        margin-top: 10px;
    }
    .peb-hero-callouts > .peb-hero-callout > img {
        padding: 0; 
        height: 22px;
    }

    .peb-hero-callouts > .peb-hero-callout:last-child > img {
        height: 29px;
        margin-top: 6px;
    }

    .peb-hero-callouts > .peb-hero-callout-divider > img {
        height: 29px;
    }

        .peb-hero-callouts > .peb-hero-callout > div.tag-link a {
        }

            .peb-hero-callouts > .peb-hero-callout > div.tag-link a span {
                display: inline-block;
                width: 80px;
                text-decoration: underline;
            }

/* ========== Pricing cards ========== */
.peb-pricing {
    padding: 45px 15px 50px;
}

.peb-pricing-grid {
    display: flex;
    gap: 44px;
    justify-content: center;
    flex-wrap: wrap;
    margin-bottom: 24px;
}

.peb-card {
    width: 100%;
    max-width: 340px;
    background: var(--white);
    border: 1px solid var(--drake-blue);
    border-radius: 20px;
    padding: 26px 38px;
    display: flex;
    flex-direction: column;
    box-sizing: border-box;
}

.peb-card-title {
    font-family: var(--primary-font);
    font-size: 24px;
    font-weight: 700;
    line-height: 32px;
    color: var(--drake-gray);
    text-align: center;
    margin: 0 0 6px;
    padding: 0;
}

.peb-card-price-block {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    margin-bottom: 28px;
}

.peb-card-old {
    font-family: var(--primary-font);
    font-size: 26.64px;
    font-weight: 600;
    color: var(--gray-medium);
    text-decoration: line-through;
    line-height: 1.25;
    display: block;
    margin: 0 0 10px;
}

.peb-card-price-line {
    display: flex;
    justify-content: center;
    align-items: flex-start;
    gap: 2px;
    margin: 0 0 10px;
}

.peb-card-price {
    font-family: var(--primary-font);
    font-size: 65px;
    font-weight: 700;
    color: var(--drake-blue);
    line-height: 0.73;
    letter-spacing: -0.02em;
    display: inline-block;
    margin: 0;
}

.peb-card-price-asterisk {
    font-family: var(--primary-font);
    font-size: 12px;
    font-weight: 600;
    color: var(--drake-blue);
    line-height: 20px;
    margin-top: 10px;
}

.peb-card-save {
    font-family: var(--primary-font);
    font-size: 14px;
    font-weight: 600;
    line-height: 20px;
    color: var(--drake-gray);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 4px;
    margin: 0 0 12px;
}

.peb-card-save .fa-tag {
    font-size: 20px;
    line-height: 1;
    color: var(--drake-gray);
}

.peb-btn-card {
    background: var(--drake-blue);
    color: var(--white);
    font-family: "Raleway", var(--primary-font);
    font-size: 16px;
    font-weight: 800;
    line-height: 22px;
    padding: 8px 16px;
    border-radius: 100px;
    display: inline-block;
    margin: 0 auto;
    width: 100%;
    max-width: 245px;
    box-sizing: border-box;
}

    .peb-btn-card:hover {
        opacity: 0.9;
        color: var(--white);
        font-size: 16px;
        font-weight: 800;
    }

.peb-card-section-rule {
    border: 0;
    border-top: 1px solid var(--faq-border);
    margin: 16px 0;
    width: 100%;
}

.peb-card-heading {
    font-family: var(--primary-font);
    font-size: 14px;
    font-weight: 700;
    color: var(--gray-dark);
    margin: 0 0 16px;
    line-height: 20px;
}

.peb-card-includes > .peb-card-heading:last-of-type {
    margin-top: 0;
    margin-bottom: 12px;
}

.peb-bullets {
    list-style: none;
    padding: 0;
    margin: 0;
}

.peb-bullets li {
    display: flex;
    gap: 8px;
    align-items: flex-start;
    margin-bottom: 13px;
    font-family: var(--primary-font);
    font-size: 14px;
    line-height: 17px;
    color: var(--gray-dark);
}

.peb-bullets li:last-child {
    margin-bottom: 0;
}

.peb-bullets li img {
    flex-shrink: 0;
    width: 18px;
    height: auto;
    margin-top: 2px;
}


.peb-bullets li small {
    display: block;
    font-size: 12px;
    margin-top: 2px;
}

.peb-list-disc {
    list-style: disc;
    padding-left: 21px;
    margin: 0 0 16px;
    font-family: var(--primary-font);
    font-size: 14px;
    line-height: 20px;
    color: var(--gray-dark);
}

.peb-list-disc li {
    margin-bottom: 8px;
}

.peb-disclaimer {
    font-family: var(--primary-font);
    font-size: 15px;
    line-height: 1.5;
    color: var(--drake-gray);
    max-width: 721px;
    margin: 0 auto;
}

/* ========== Contact form ========== */
.peb-contact {
    padding: 40px 15px 30px;
}

.peb-contact-title {
    font-family: var(--primary-font);
    font-size: 32px;
    font-weight: 700;
    color: var(--drake-gray);
    text-align: center;
    margin: 0 0 6px;
}

.peb-contact-desc {
    font-family: var(--primary-font);
    font-size: 20px;
    line-height: 40px;
    color: var(--drake-gray);
    text-align: center;
    margin: 0 0 25px;
    max-width: 588px;
    margin-left: auto;
    margin-right: auto;
}

.peb-form {
    max-width: 588px;
    margin: 0 auto;
}

.peb-form-row {
    display: flex;
    gap: 50px;
    margin-bottom: 9px;
}

.peb-form-field {
    flex: 1 1 0;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.peb-form-row:nth-child(1) .peb-form-field {
    gap: 14px;
}

.peb-form-row:nth-child(2) .peb-form-field {
    gap: 11px;
}

.peb-form-label {
    font-family: var(--primary-font);
    font-size: 20px;
    font-weight: 700;
    color: var(--drake-gray);
}

.peb-form-input {
    height: 39px;
    border: 1px solid var(--border-gray);
    border-radius: 5px;
    padding: 0 12px;
    font-family: var(--primary-font);
    font-size: 16px;
}

.peb-form-check {
    display: flex;
    gap: 11px;
    align-items: flex-start;
    margin: 33px 0 23px;
    font-family: var(--primary-font);
    font-size: 20px;
    line-height: 40px;
    color: var(--drake-gray);
}

.peb-form-check input {
    margin-top: 12px;
    flex-shrink: 0;
}

.peb-form-check a {
    color: var(--drake-blue);
    text-decoration: underline;
}

.peb-form-recaptcha {
    margin-bottom: 23px;
}

.peb-recaptcha-placeholder {
    border: 1px dashed var(--faq-border);
    padding: 20px;
    text-align: center;
    color: var(--gray-medium);
    border-radius: 4px;
}

.peb-form-actions {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
}

.peb-form-actions .peb-btn-primary {
    min-width: 164px;
}

.peb-form-required {
    font-family: var(--primary-font);
    font-size: 12px;
    color: var(--black);
}

/* ========== FAQ ========== */
.peb-faq {
    background: var(--faq-bg);
    padding: 40px 15px 80px;
}

.peb-faq-title {
    font-family: var(--primary-font);
    font-size: 32px;
    font-weight: 700;
    line-height: 40px;
    color: var(--drake-gray);
    text-align: center;
    margin: 0 0 36px;
}

.peb-accordion {
    max-width: 754px;
    margin: 0 auto;
}

.peb-accordion-item {
    border-top: 1px solid var(--faq-border);
    border-bottom: 1px solid var(--faq-border);
}

.peb-accordion-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 15px;
    padding: 20px 30px;
    cursor: pointer;
    font-family: var(--primary-font);
    font-size: 18px;
    font-weight: 600;
    line-height: 25px;
    color: var(--drake-gray);
    background: transparent;
    border: none;
    width: 100%;
    text-align: left;
}

.peb-accordion-header i {
    flex-shrink: 0;
    color: var(--drake-blue);
    transition: transform 0.2s;
}

.peb-accordion-open .peb-accordion-header i {
    transform: rotate(180deg);
}

.peb-accordion-body {
    display: none;
    padding: 0 30px 30px;
}

.peb-accordion-open .peb-accordion-body {
    display: block;
}

.peb-accordion-body p,
.peb-accordion-body ul {
    font-family: var(--primary-font);
    font-size: 14px;
    line-height: 20px;
    color: var(--drake-gray);
    margin: 0 0 10px;
}

.peb-accordion-body ul {
    padding-left: 21px;
    margin-bottom: 16px;
}

.peb-accordion-body li {
    margin-bottom: 4px;
}
