/* Divi: add this class to the institutional section. */
.ohs-institutional-only {
    display: none !important;
}

body.ohs-institutional-user .ohs-institutional-only {
    display: block !important;
}

.ohs-inst-offer,
.ohs-inst-cart-summary,
.ohs-inst-place-card {
    color: #173845;
}

.ohs-inst-offer {
    max-width: 1120px;
    margin: 0 auto;
    padding: clamp(1.25rem, 2.5vw, 2rem);
    border: 1px solid #d6e1e4;
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 10px 30px rgba(18, 54, 66, .08);
}

.ohs-inst-offer + .ohs-inst-offer {
    margin-top: 1.5rem;
}

.ohs-inst-offer__heading h2 {
    margin: .2rem 0 .65rem;
    color: #103b46;
    font-size: clamp(1.45rem, 2.2vw, 2rem);
    line-height: 1.2;
}

.ohs-inst-offer__heading p:last-child {
    max-width: 850px;
    margin-bottom: 0;
}

.ohs-inst-eyebrow {
    margin: 0;
    color: #56833f;
    font-size: .8rem;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.ohs-inst-offer__dates {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .8rem;
    margin: 1.25rem 0;
}

.ohs-inst-offer__dates span {
    display: grid;
    gap: .15rem;
    padding: .8rem 1rem;
    border-radius: 10px;
    background: #f4f7f2;
}

.ohs-inst-required-line {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 1rem;
    align-items: center;
    padding: 1rem 1.1rem;
    border: 2px solid #6d934f;
    border-radius: 12px;
    background: #fbfdf9;
}

.ohs-inst-required-line div {
    display: grid;
    gap: .15rem;
}

.ohs-inst-required-line span:not(.ohs-inst-price) {
    color: #586970;
    font-size: .92rem;
}

.ohs-inst-price {
    white-space: nowrap;
    font-size: 1.08rem;
    font-weight: 800;
}

.ohs-inst-options {
    display: grid;
    gap: .75rem;
    margin: 1.2rem 0 0;
    padding: 1.1rem;
    border: 1px solid #d6e1e4;
    border-radius: 12px;
}

.ohs-inst-options legend {
    padding: 0 .45rem;
    font-weight: 800;
}

.ohs-inst-option {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: .75rem;
    align-items: start;
    padding: .9rem;
    border: 1px solid #dce5e7;
    border-radius: 10px;
    cursor: pointer;
}

.ohs-inst-option input {
    margin-top: .22rem;
}

.ohs-inst-option span {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: .35rem 1rem;
}

.ohs-inst-option small {
    font-weight: 700;
}

.ohs-inst-select-option {
    display: grid;
    gap: .45rem;
    padding: .9rem;
    border: 1px solid #dce5e7;
    border-radius: 10px;
}

.ohs-inst-select-option select,
.ohs-inst-offer__footer input[type="number"] {
    min-height: 44px;
    border: 1px solid #b8c8ce;
    border-radius: 6px;
    background: #fff;
}

.ohs-inst-select-option select {
    width: 100%;
}

.ohs-inst-select-option small {
    color: #5d6c72;
}

.ohs-inst-offer__footer {
    display: flex;
    justify-content: flex-end;
    margin-top: 1.15rem;
}

.ohs-inst-offer__purchase-actions {
    display: grid;
    width: min(100%, 330px);
    gap: .65rem;
}

.ohs-inst-offer__footer label {
    display: grid;
    gap: .4rem;
}

.ohs-inst-offer__footer input[type="number"] {
    width: 100%;
    padding: .45rem .65rem;
}

.ohs-inst-offer__footer .button {
    width: 100%;
    min-height: 46px;
    padding-right: 1.35rem;
    padding-left: 1.35rem;
}

.ohs-inst-cart-summary {
    margin: 0 0 1.5rem;
    padding: 1.1rem;
    border: 1px solid #d7e3d1;
    border-radius: 12px;
    background: #f8fbf5;
}

.ohs-inst-cart-summary h2 {
    margin: 0 0 .9rem;
    font-size: 1.2rem;
}

.ohs-inst-cart-summary__batch {
    padding: 1rem;
    border: 1px solid #d7e3d1;
    border-radius: 9px;
    background: #fff;
}

.ohs-inst-cart-summary__batch + .ohs-inst-cart-summary__batch {
    margin-top: .8rem;
}

.ohs-inst-cart-summary__title {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: .35rem 1rem;
    margin-bottom: .7rem;
}

.ohs-inst-cart-summary__title strong {
    font-size: 1.05rem;
}

.ohs-inst-cart-summary dl {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .5rem 1.2rem;
    margin: 0;
}

.ohs-inst-cart-summary dl div {
    display: grid;
    grid-template-columns: minmax(110px, auto) 1fr;
    gap: .5rem;
}

.ohs-inst-cart-summary dt {
    font-weight: 700;
}

.ohs-inst-cart-summary dd {
    margin: 0;
}

.ohs-inst-cart-summary__components {
    display: flex;
    flex-wrap: wrap;
    gap: .4rem .9rem;
    margin: .8rem 0 0;
    padding: .75rem 0 0;
    border-top: 1px solid #e3eadf;
    list-style: none;
}

.ohs-inst-cart-summary__components li {
    margin: 0;
    color: #566a70;
}

.ohs-inst-cart-summary__components li::before {
    content: "✓";
    margin-right: .35rem;
    color: #56833f;
    font-weight: 800;
}

/* WPC bundle children remain real WooCommerce lines for tax/accounting, but the
   institutional buyer sees the existing bundle as one clean cart row. */
.woocommerce-cart-form .ohs-inst-bundle-child,
.woocommerce-checkout-review-order-table .ohs-inst-bundle-child {
    display: none !important;
}

.ohs-inst-places-dashboard > p {
    max-width: 820px;
}

.ohs-inst-place-cards {
    display: grid;
    gap: 1rem;
}

.ohs-inst-place-card {
    padding: 1.1rem;
    border: 1px solid #d6e1e4;
    border-radius: 12px;
    background: #fff;
}

.ohs-inst-place-card__heading {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: .5rem 1rem;
    margin-bottom: .8rem;
}

.ohs-inst-place-card__heading h3 {
    margin: 0;
}

.ohs-inst-place-card__heading span {
    font-weight: 700;
}

.ohs-inst-place-card dl {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .6rem;
    margin: 0;
}

.ohs-inst-place-card dl div {
    padding: .75rem;
    border-radius: 8px;
    background: #f4f7f8;
}

.ohs-inst-place-card dt {
    color: #5c6d74;
    font-size: .84rem;
}

.ohs-inst-place-card dd {
    margin: .15rem 0 0;
    font-size: 1.2rem;
    font-weight: 800;
}

@media (max-width: 760px) {
    .ohs-inst-offer__dates,
    .ohs-inst-cart-summary dl,
    .ohs-inst-place-card dl {
        grid-template-columns: 1fr;
    }

    .ohs-inst-required-line {
        grid-template-columns: 1fr;
    }

    .ohs-inst-option span,
    .ohs-inst-cart-summary__title {
        display: grid;
    }

    .ohs-inst-offer__purchase-actions {
        width: 100%;
    }
}

/* Institutional checkout does not collect guardian or learner details. ThemeHigh
   still builds its saved B2C custom section, so v0.2.2 hides that section's
   fields and timeline tab while the JavaScript advances directly to Confirm. */
body.ohs-institutional-checkout .ohs-inst-consumer-field-hidden,
body.ohs-institutional-checkout .ohs-inst-checkout-step-hidden,
body.ohs-institutional-checkout #billing_guardian_field,
body.ohs-institutional-checkout #billing_email_confirm_field,
body.ohs-institutional-checkout #_gsinfo_guardian_selector_field,
body.ohs-institutional-checkout #_guardian_details_field,
body.ohs-institutional-checkout #_guardian_heading_field,
body.ohs-institutional-checkout #_student_heading_field,
body.ohs-institutional-checkout #_student_firstname_field,
body.ohs-institutional-checkout #_student_lastname_field,
body.ohs-institutional-checkout #_student_email_field,
body.ohs-institutional-checkout #_student_email_confirm_field,
body.ohs-institutional-checkout #_student_dob_field,
body.ohs-institutional-checkout #_sen_field,
body.ohs-institutional-checkout #_sen_needs_information_field,
body.ohs-institutional-checkout #_heading_adult_student_field {
    display: none !important;
}
