/**
 * Buying Options Panel
 * ============================================================================
 * ACF flexible content panel for course pricing and purchase options.
 * Used on Pricing and Alternative Buying Options pages.
 *
 * Load order: Conditionally loaded only on pages with this panel
 * Dependencies: 00-tokens.css (design tokens)
 *
 * Phase 5 Consolidation (from styles.css):
 * - All .buying-options-panel styles now in one file
 * - Legacy layout styles (older .option grid)
 * - V5 modern layout (pricing cards, hub boxes)
 * - All responsive breakpoints included
 *
 * Phase 6 !important audit:
 * - 17 !important declarations - all documented with explanatory comments
 * - Categories: Font-family overrides (Poppins→Archivo), button styling, layout overrides
 * - Global selectors at end of file need scoping (*, input, h1-h6) - future refactor
 *
 * Sections:
 * 1. Legacy layout styles (from styles.css)
 * 2. V5 Modern layout (pricing cards, hub boxes)
 * 3. Staff skills section
 * 4. Pricing grid
 * 5. Benefits section
 * 6. Bespoke section
 * 7. Form elements
 * 8. Legacy responsive (1024px, 768px)
 * ============================================================================
 */

/* ==========================================================================
   LEGACY LAYOUT STYLES
   Moved from styles.css - used for older panel configurations
   ========================================================================== */

.buying-options-panel {
    background-color: var(--cream);
    padding-top: 75px;
    padding-bottom: 75px;
}

/* Panel heading uses .panel-heading from panel-base.css for typography */

.buying-options-panel .content h3 {
    background: url('../../img/down-arrow.webp') top right no-repeat;
    display: inline-block;
    margin-bottom: var(--space-0);
    padding-bottom: 77px;
    padding-right: 150px;
}

.buying-options-panel .options {
    display: flex;
    align-items: stretch;
    gap: 4%;
}

.buying-options-panel h4.bubble {
    border-radius: var(--radius-base);
    background-color: var(--brand-highlight);
    color: var(--link-color);
    font-size: 14px;
    height: 32px;
    line-height: 34px;
    margin-bottom: 25px;
    padding: 0 22px;
    width: fit-content;
}

.buying-options-panel .blank-spacer {
    height: 32px;
    margin-bottom: 25px;
}

.buying-options-panel h4 {
    color: var(--black);
    font-size: 24px;
    font-weight: 900;
    margin-bottom: 14px;
}

.buying-options-panel .option {
    border-right: 1px solid var(--grey);
    padding-right: var(--space-8);
    position: relative;
}

.buying-options-panel .option:last-of-type {
    border-right: var(--space-0);
    padding-right: var(--space-0);
}

.buying-options-panel .option ul {
    list-style-type: none;
}

.buying-options-panel .option ul li {
    align-items: center;
    display: flex;
    margin-bottom: var(--space-5);
    width: 90%;
}

.buying-options-panel .option ul li img {
    margin-right: var(--space-4);
}

.buying-options-panel .drop-down h4 {
    font-size: 19px;
    font-weight: 700;
    margin-bottom: var(--space-5);
}

.buying-options-panel .drop-down h4.inline {
    display: inline-block;
    margin-right: var(--space-4);
}

.buying-options-panel .money-description {
    padding-bottom: 58px;
}

.buying-options-panel .money-description .price-container {
    display: flex;
    align-items: baseline;
}

.buying-options-panel .money-description h5 {
    color: var(--brand-main);
    font-size: 42px;
    font-weight: 900;
    letter-spacing: -1.5px;
    line-height: 50px;
    margin-right: 5px;
}

.buying-options-panel .money-description span {
    line-height: 50px;
    margin-top: var(--space-2);
}

.buying-options-panel .money-description p {
    display: block;
}

.buying-options-panel .money-description .button {
    background-color: var(--brand-main);
    color: var(--white);
    font-size: 16px;
    width: 100%;
}

.buying-options-panel .money-description .button:disabled,
.buying-options-panel .money-description .button.disabled {
    cursor: default;
    opacity: 0.4;
}

.buying-options-panel .money-description .button.outline {
    border-color: var(--brand-main);
    color: var(--brand-main);
}

.buying-options-panel .money-description div {
    margin-bottom: 10px;
}

.buying-options-panel .money-description .button-holder {
    position: absolute;
    bottom: var(--space-0);
    width: 100%;
    padding-right: var(--space-8);
}

/* ==========================================================================
   V5 MODERN LAYOUT STYLES
   Current production layout with pricing cards and hub boxes
   ========================================================================== */

.buying-options-panel.v5-layout {
    padding: 4rem 1rem;
}

.section-header {
    text-align: center;
    max-width: 800px;
    margin: 0 auto 3rem;
}

.intro-row {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    flex-wrap: wrap;
    margin-bottom: 3rem;
    gap: 2rem;
}

.intro-left {
    /* flex: 1 1 50%; */
    min-width: 300px;
}

.intro-left ul {
    padding: 0;
    list-style: none;
}

.intro-left li {
    margin-bottom: 0.5rem;
    display: flex;
    align-items: center;
}

.intro-left img {
    width: 18px;
    margin-right: 8px;
}

.intro-right img {
    max-width: 50%;
    height: auto;
    display: block;
}

.option-card {
    flex: 1 1 30%;
    background: var(--grey-light);
    border-radius: 8px;
    padding: 1.5rem;
    box-shadow: 0 2px 6px var(--shadow-subtle);
}

.option-card.green {
    background-color: var(--success-light-bg);
}

.option-card .badge {
    background: var(--success-accent-alt);
    color: var(--badge-success-bg);
    display: inline-block;
    padding: 0.25rem 0.75rem;
    font-weight: bold;
    border-radius: 50px;
    margin-bottom: 1rem;
}

.option-card.additional-hubs .hub {
    padding: 1rem;
    border-radius: 6px;
    margin-bottom: 1rem;
}

.option-card.additional-hubs .hub.blue {
    background: var(--info-muted-bg);
}

.option-card.additional-hubs .hub.orange {
    background: var(--warning-accent-bg);
}

.option-card .bop-btn {
    display: inline-block;
    margin-top: 0.5rem;
    background: var(--brand-main-darkest);
    color: white;
    padding: 0.5rem 1rem;
    border-radius: 4px;
    text-decoration: none;
}

.cta-phone {
    text-align: center;
    margin-top: 3rem;
    font-weight: bold;
    font-size: 1.1rem;
}

.arrow-decorator {
    position: relative;
    width: 100%;
    height: 59.41px;
    margin-top: -20px;
    margin-bottom: -2rem;
    display: flex;
    justify-content: center;
    pointer-events: none;
    transform: translate(-260px, 70px) rotate(16deg);
}

.arrow-decorator img {
    height: 100%;
    object-fit: contain;
    transform: rotate(0deg); /* rotate if needed */
}


.staff-skills-section {
    padding: 3rem 1rem;
    background-color: var(--white);
}

.staff-skills-wrapper {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 2rem;
    align-items: center;
    max-width: 1200px;
    margin: 0 auto;
}

.flex {
    display: flex;
}

/* !important: Override base Poppins font with Archivo for headings */
.training-hero-title {
    font-size: 54px;
    font-weight: 800;
    line-height: 58px;
    color: var(--brand-main);
    margin-bottom: 2rem;
    font-family: Archivo !important;
    text-align: center;
    width: 100%;
}

.training-hero-title .highlight-wrapper {
    position: relative;
    white-space: nowrap;
}

/* !important: Override base Poppins font with Archivo for headings */
.training-hero-title .title-text {
    font-size: 54px;
    font-weight: 800;
    line-height: 58px;
    color: var(--brand-main);
    font-family: Archivo !important;
}

.training-hero-title .training-hero-underline {
    content: "";
    position: absolute;
    right: 16px;
    bottom: -4px;
    width: 350px;
    height: 14px;
    background-image: url("../../img/underline.svg");
    background-repeat: no-repeat;
    background-size: contain;
}

@media(max-width: 480px) {
    .training-hero-title {
        font-size: 48px;
    }

    .training-hero-title .title-text {
        font-size: 48px;
    }

    .training-hero-title .training-hero-underline {
        width: 310px;
    }
}

.staff-skills-title {
    line-height: 1.5;
    margin-bottom: 1rem;
}

.staff-skills-header {
    display: flex;
    width: 100%;
}

.staff-skills-header .button-holder {
    margin-bottom: 1rem;
}

@media(max-width: 768px) {
    .staff-skills-header {
        flex-direction: column;
    }
}

@media (min-width: 769px) {
    .staff-skills-title {
        width: 65%;
        margin-bottom: 2rem;
    }

    .staff-skills-header .button-holder {
        margin-bottom: 0;
    }
}

/* !important: Override .button.outline default transparent background */
.staff-skills-header .button.outline {
    background-color: var(--brand-main) !important;
    color: var(--white);
    font-size: 16px;
    width: 100%;
}

.staff-skills-list {
    display: flex;
    flex-wrap: wrap;
    list-style: none;
    padding-left: 0;
    margin: 0;
}

.staff-skills-list li {
    flex: 1 1 100%;
    list-style: none;
    padding-left: 0;
    font-weight: 400;
    letter-spacing: 0;
    line-height: 24px;
    font-family: Poppins;
    display: flex;
    align-items: center;
    margin-bottom: 0.75rem;
    font-size: 16px;
}

@media (min-width: 769px) {
    .staff-skills-list li {
        flex: 1 1 50%;
        list-style: none;
        padding-left: 0;
    }
}

/* !important: Override base Poppins font with Archivo for headings */
.staff-skills-text {
    font-weight: 800;
    font-family: Archivo !important;
    font-size: 24px;
}

.staff-skills-sister {
    margin-top: 2rem;
    margin-bottom: 2rem;
}

.staff-skills-list img {
    width: 20px;
    height: 20px;
    margin-right: 0.75rem;
}

.pricing-options {
    padding: 0 1rem 3rem;
    background-color: var(--white);
}

/* !important: Override .button.outline default transparent background */
.buying-options-panel .money-description .button.outline {
    background-color: var(--brand-main) !important;
    color: var(--white);
    font-size: 16px;
    width: 100%;
}

.pricing-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 2rem;
    justify-content: space-between;
    max-width: 1200px;
    margin: 0 auto;
}

@media (max-width: 768px) {
    .pricing-grid {
        flex-direction: column;
        align-content: center;
    }
}

@media(max-width: 480px) {
    .pricing-grid {
        flex-wrap: nowrap;
    }
}

.pricing-card {
    background: var(--brand-highlight)4D;
    border-radius: 10px;
    display: flex;
    flex-direction: column;
    flex: 1 1 32%; /* takes ~1/3, minus gap */
    min-width: 362px; /* prevent layout break on mobile */
    box-shadow: 0 4px 8px var(--shadow-light);
    max-width: 362px;
}

@media(max-width: 480px) {
    .pricing-card {
        min-width: auto;
        align-self: center;
    }
}

/* !important: Override default label bold styling in pricing cards */
.pricing-card label {
    font-weight: 400 !important;
    margin: 0.5rem 0 0.25rem;
}

.radio-holder {
    display: inline-block;
    float: left;
    line-height: 28px;
    margin: 0 23px 20px 0;
}



.pricing-card h4 {
    font-size: 1.25rem;
    font-weight: bold;
    margin-bottom: 1rem;
}

/* !important: Override legacy .option border/padding in v5 layout */
.buying-options-panel .option {
    padding-right: 0 !important;
    border-right: 0 !important;
}


.pricing-card .desc-top {
    letter-spacing: 0;
    font-weight: 700;
    font-family: Archivo;
    font-size: 19px;
    color: var(--black);
    line-height: 22px;
}

/* !important: Override base Poppins font with Archivo for headings */
.buying-options-panel .drop-down h4 {
    letter-spacing: 0;
    font-weight: 700;
    font-family: Archivo !important;
    font-size: 19px;
    color: var(--black);
    line-height: 22px;
}

.pricing-body-top{
    min-height: 200px;
}

/* !important: Override base h4 font-size for additional hubs section */
.additional-hubs h4 {
    letter-spacing: 0;
    color: var(--black);
    font-weight: 800;
    padding: 24px 26px 0 0;
    font-size: 24px !important;
    border-top-right-radius: 16px;
    display: block;
    box-sizing: border-box;
    margin-bottom: 0;
}

.pricing-card .desc-bt {
    padding-top: 25px;
    letter-spacing: 0;
    line-height: 22px;
    font-size: 16px;
    font-weight: 400;
    font-family: Poppins;
}

.pricing-card label {
    font-weight: bold;
    margin: 0.5rem 0 0.25rem;
}

.pricing-card select {
    width: 100%;
    padding: 0.5rem;
    border-radius: 6px;
    border: 1px solid var(--grey);
    margin-bottom: 1rem;
}

.months {
    display: flex;
    gap: 1rem;
    margin-bottom: 1rem;
    align-items: center;
    font-size: 0.9rem;
}

.price {
    margin: 1rem 0;
}

.price strong {
    font-size: 1.75rem;
    color: var(--brand-main-dark);
}

/* Namespaced to avoid conflicts with global .btn class */
.bop-btn {
    background: var(--brand-main-dark);
    color: var(--white);
    padding: 0.75rem 1rem;
    text-align: center;
    display: inline-block;
    border-radius: 30px;
    text-decoration: none;
    font-weight: bold;
    margin-top: auto;
}

.fineprint {
    text-align: center;
    letter-spacing: 0;
    font-family: Poppins;
    line-height: 18px;
    margin-top: 0.5rem;
    font-size: 12px;
    color: var(--black);
}

.buying-options-panel .money-description .button-holder {
    padding-right: 0;
}

.additional-hubs {
    flex: 1 1 30%;
    min-width: 362px;
    max-width: 362px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    height: 100%;
    border-top: 1px solid var(--border-grey);
}

@media(max-width: 480px) {
    .additional-hubs {
        min-width: auto;
        align-self: center;
    }
}


.additional-hubs h4 {
    font-size: 1.25rem;
    margin-bottom: 0.5rem;
}

.additional-hubs p {
    padding-top: 38px;
    letter-spacing: 0;
    font-family: Poppins;
    line-height: 22px;
    font-weight: 400;
    font-size: 16px;
    margin-bottom: 1rem;
}


.hub-box h5 {
    font-size: 1rem;
    font-weight: bold;
    margin-bottom: 0.5rem;
}

.hub-box ul {
    padding-left: 1.2rem;
    font-size: 0.9rem;
    margin-bottom: 0.5rem;
}

.hub-box.blue {
    background-color: var(--info-light-bg);
}

.hub-box.orange {
    background-color: var(--warning-light-bg);
}

.hub-box .bop-btn {
    margin-left: 1.2rem;
    width: 164px;
    height: 38px;
    line-height: 100%;
    background: none;
    color: var(--brand-main);
    border: 1px solid var(--brand-main);
    border-radius: 30px;
    font-size: 16px;
}

.pricing-header {
    letter-spacing: 0;
    font-family: Archivo;
    height: 70px;
    background-color: var(--brand-highlight);
    color: var(--black);
    font-weight: 800;
    padding: 24px 26px;
    font-size: 24px;
    border-top-left-radius: 16px;
    border-top-right-radius: 16px;
    width: 100%;
    display: block;
    box-sizing: border-box;
}

.pricing-body {
    padding: 1.5rem;
    flex: 1;
    display: flex;
    flex-direction: column;

    /* justify-content: space-between; */
}

.cta-contact {
    padding: 0 1rem 3rem;
    text-align: center;
    background-color: var(--white);
}

.cta-contact p {
    font-size: 28px;
    font-weight: 800;
    color: var(--black);
    margin: 0;
    line-height: 32px;
    letter-spacing: 0.2px;
}

/* Hub box - wellbeing hub variant */
.hub-box {
    border-radius: 16px;
    overflow: hidden;
    font-family: sans-serif;
    width: 100%;
    max-width: 420px;
    box-shadow: 0 4px 8px var(--shadow-light);
    margin-bottom: 32px;
    padding: 0; /* Remove padding here */
}



/* Background variants */
.hub-blue {
    background-color: var(--hub-blue-transparent);
}

.hub-orange {
    background-color: var(--hub-orange-transparent);
}

/* Header bar */
.hub-header {
    padding: 16px 24px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    background-color: transparent; /* override below */
}

/* Specific background for each header */
.hub-blue .hub-header {
    background-color: var(--hub-blue);
}

.hub-orange .hub-header {
    background-color: var(--hub-orange);
}

.hub-header h5 {
    margin: 0;
    font-size: 20px;
    font-weight: bold;
    color: var(--black);
}

.hub-icon {
    width: 38px;
    height: 42px;
}

/* Content area */
.hub-content {
    padding: 24px;
}

/* List styling - scoped to .hub-content to avoid global leakage */
.hub-content ul {
    list-style: none;
    padding: 0;
    margin: 0 0 24px;
}

.hub-content ul li {
    display: flex;
    align-items: flex-start;
    margin-bottom: 16px;
    font-size: 16px;
}

.hub-icon-circle {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background-color: white;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-right: 12px;
    flex-shrink: 0;
}

.hub-icon-circle img {
    width: 16px;
    height: 16px;
}

.hub-text {
    display: inline-block;
}

/* Button */
.enquire-btn {
    display: inline-block;
    padding: 10px 20px;
    border: 2px solid var(--brand-main-darker);
    border-radius: 30px;
    text-decoration: none;
    color: var(--brand-main-darker);
    font-weight: 400;
    text-align: center;
    background-color: transparent;
    transition: background-color 0.3s ease;
}

.enquire-btn:hover {
    background-color: var(--brand-main-darker);
    color: white;
}

.hub-box.hub-blue{
    margin-top: 30px;
}

/* !important: Force flexbox alignment - push orange hub to bottom */
.hub-box.hub-orange{
    margin-top: auto !important;
    margin-bottom: 0;
}

.faqs-container {
    padding-bottom: 0;
}

.bottom-strip {
    display: none;
}


.bespoke-section {
    background-color: var(--cream);
    padding: 38px 20px;
    position: relative;
    overflow: hidden;
}

.bespoke-container {
    max-width: 1200px;
    padding-left: 80px;
    margin: 0 auto;
    display: flex;
    align-items: center;
    gap: 40px;
    position: relative;
}

@media(max-width: 768px) {
    .bespoke-container{
        flex-direction: column;
        padding-left: 0;
    }
}

.bespoke-image img {
    width: 240px;
    height: 240px;
    object-fit: cover;
    border-radius: 50%;
    flex-shrink: 0;
}

.bespoke-content {
    z-index: 2;
    max-width: 800px;
}

/* !important: Override base Poppins font with Archivo for headings */
.bespoke-content h2 {
    line-height: 46px;
    font-size: 42px;
    font-weight: 800;
    color: var(--brand-main);
    margin-bottom: 20px;
    font-family: Archivo !important;
    letter-spacing: -1.5px;
}

.bespoke-content p {
    max-width: 650px;
    letter-spacing: 0;
    font-weight: 400;
    font-size: 16px;
    color: var(--black);
    margin-bottom: 20px;
    line-height: 26px;
}

.bespoke-btn {
    height: 48px;
    width: 190px;
    line-height: 20px;
    display: inline-block;
    background-color: var(--brand-highlight);
    padding: 12px 45px;
    color: var(--black);
    text-decoration: none;
    border-radius: 32px;
    font-weight: 400;
    font-size: 16px;
}


.bespoke-bg {
    margin-top: -143px;
    position: absolute;
    right: -60px;
    top: 0;
    height: 521px;
    width: 553px;
    z-index: 1;
    pointer-events: none;
}



/* benefits */
.benefits-section {
    background: var(--white);
    padding: 60px 0;
    text-align: center;
}

/* !important: Override base Poppins font with Archivo for headings */
.benefits-title {
    font-size: 42px;
    font-weight: 800;
    color: var(--brand-main);
    margin-bottom: 40px;
    font-family: Archivo !important;
    letter-spacing: -1.5px;
    line-height: 46px;
}

.benefits-grid {
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 3rem;
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 3rem;
}

.benefit-item {
    max-width: 250px;
    text-align: center;
}

.benefit-icon {
    background-color: var(--success-accent);
    border-radius: 20px;
    padding: 20px;
    margin-bottom: 16px;
    display: inline-block;
}


.benefit-text {
    padding-left: 23px;
    font-size: 24px;
    color: var(--brand-main);
    font-weight: 700;
    font-family: Archivo;
    line-height: 100%;
    letter-spacing: 0;

}


/* new */

.benefit-item {
    max-width: 300px;
    text-align: left;
    display: flex;
    align-items: center;
    gap: 20px;
}

.benefit-icon {
    background-color: var(--success-accent);
    border-radius: 16px;
    padding: 14px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: 64px;
    height: 64px;
    margin-bottom: 0; /* remove margin so icon and text align horizontally */
}

.benefit-icon img {
    width: 96px;
    height: 96px;
}

/* .benefit-text { */

/*    font-size: 16px; */

/*    color: var(--brand-main-muted); */

/*    font-weight: 500; */

/*    line-height: 1.4; */

/* } */

/* V5 layout overrides legacy padding - panel controls its own internal spacing */
.buying-options-panel {
    padding-bottom: 0;
    padding-top: 0;
}

.divider {
    width: 1px;
    height: 117px;
    background-color: var(--grey);
}

@media(max-width: 768px) {
    .divider {
        display: none;
    }
}

/* !important: Remove default browser outline for form elements */
*, input, select, textarea, option, button {
    font-family: Poppins;
    font-size: 16px;
    font-weight: 400;
    line-height: 24px;
    outline: none !important;
}



/* Note: .buying-options-panel .drop-down h4.inline moved to legacy section */

/* Note: .buying-options-panel .money-description moved to legacy section */

/* !important: Override base Poppins with Archivo for all headings + Simple Pay plugin elements */
h1, h2, h3, h4, h5, h6, .simpay-styled .simpay-form-title, .simpay-styled .simpay-form-description {
    font-family: Archivo, sans-serif !important;
}

/* Note: .buying-options-panel .money-description h5 moved to legacy section */

input[type="radio"] {
    appearance: none;
    appearance: none;
    background-color: var(--white);
    margin: 0 5px 0 0;
    float: left;
    font: inherit;
    color: currentcolor;
    width: 28px;
    height: 28px;
    border: 1px solid var(--bg-2);
    border-radius: 50%;
    transform: translateY(-0.075em);
    display: grid
;
    place-content: center;
}

/* Note: Generic .content styles are now in 01-base.css */
/* Note: .accreditation-panel and footer .content rules removed - canonical rules in panels/accreditation_panel.css and panels/footer.css */

/* !important: Override default .content padding for FAQs panel spacing */
.faqs-panel .content {
    max-width: 1280px;
    padding-top: 60px !important;
}

/* ==========================================================================
   LEGACY RESPONSIVE: 1024px
   Moved from styles.css
   ========================================================================== */

@media (max-width: 1024px) {
    .buying-options-panel .option {
        margin-bottom: var(--space-8);
        width: 48%;
    }

    .buying-options-panel .option:nth-of-type(2n) {
        border-right: var(--space-0);
        padding-right: var(--space-0);
    }

    .buying-options-panel .option:last-of-type {
        border-right: 1px solid var(--grey);
        padding-right: var(--space-8);
    }
}

/* ==========================================================================
   LEGACY RESPONSIVE: 768px
   Moved from styles.css
   ========================================================================== */

@media (max-width: 768px) {
    .buying-options-panel .content h3 {
        background: transparent;
        padding-right: var(--space-0);
    }

    .buying-options-panel .blank-spacer {
        height: 0;
        margin-bottom: var(--space-0);
    }

    .buying-options-panel .content h3 {
        background: transparent;
        padding: 0 30px 30px 0;
    }

    .buying-options-panel .option {
        width: 100%;
    }

    .buying-options-panel .option,
    .buying-options-panel .option:last-of-type {
        border-right: var(--space-0);
        padding-right: var(--space-0);
    }

    .buying-options-panel .money-description {
        padding-bottom: var(--space-0);
    }

    .buying-options-panel .money-description .button-holder {
        padding-right: var(--space-0);
        position: relative;
    }

    .buying-options-panel .options {
        flex-wrap: wrap;
    }
}
