.gform_required_legend {
    display: none;
}



.place-single-container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 2rem;
}

.place-identity {
    display: flex;
    align-items: flex-start;
    width: 100%;
    gap: 16px;
}

/* Map styles */
.map-container {
    position: relative;
    width: 100%;
    height: 400px;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}

/* Static Map Wrapper */
.static-map-wrapper {
    position: relative;
    width: 100%;
    height: 100%;
    cursor: pointer;
}

.static-map-image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* Interactive Map */
.interactive-map-wrapper {
    width: 100%;
    height: 100%;
}

#place-map {
    height: 100%;
    width: 100%;
}

/* Loading State */
.map-loading {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: #f5f5f5;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 16px;
}

.map-loading-spinner {
    width: 48px;
    height: 48px;
    border: 4px solid #e0e0e0;
    border-top-color: #0F7D40;
    border-radius: 50%;
    animation: spin 0.8s linear infinite;
}

@keyframes spin {
    to {
        transform: rotate(360deg);
    }
}

.map-loading-text {
    font-size: 16px;
    color: #666;
    font-weight: 500;
}

.map-section {
    width: 100%;
    margin-bottom: 2rem;
}

/* Mobile Responsive */
@media (max-width: 768px) {
    .map-container {
        height: 300px;
        border-radius: 8px;
    }
}

/* Photo grid styles */
.photo-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    gap: 1rem;
    margin-bottom: 2rem;
}

.photo-item img {
    width: 100%;
    height: 200px;
    object-fit: cover;
    border-radius: 8px;
}

/* Rating styles */
.rating-stars {
    display: inline-flex;
    align-items: center;
}

.stars-container {
    display: inline-flex;
}

.star {
    position: relative;
    display: inline-block;
    font-size: 1.25rem;
    color: #d4d4d4;
}

.star.full {
    color: #A25516;
}

.star.half:after {
    content: '★';
    color: #A25516;
    position: absolute;
    left: 0;
    top: 0;
    width: 50%;
    overflow: hidden;
}

.rating-text {
    display: flex;
    align-items: center;
    gap: 4px;
    color: #666;
    font-size: 0.875rem;
}

.rating-text span:first-child {
    font-weight: 900;
}

/* Contact info styles */
.contact-info {
    display: flex;
    gap: 0.5rem;
    margin-bottom: 0.5rem;
}

/* Style for phone number link */
.contact-link[href^="tel:"] {
    white-space: nowrap;
    /* Prevent phone number from wrapping */
    display: inline-flex;
    /* Allow icon and text to stay together */
    align-items: center;
    gap: 0.5rem;
    color: #0066cc;
    text-decoration: none;
    line-height: 1.2;
}

/* Style for website link */
.contact-link[href^="http"] {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    max-width: 100%;
    /* Adjust as needed */
    color: #0066cc;
    text-decoration: none;
    align-items: center;
    gap: 0.5rem;
}

/* Booking widget styles */
.booking-widget {
    background: #fff;
    padding: 1rem;
    /* Increased padding */
    border-radius: 12px;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);
    /* Enhanced shadow */
    width: 100%;
    border: 2px solid #f0f0f0;
    /* Added subtle border */
}

/* Style Gravity Forms elements */
.gform-theme--foundation .gfield .ginput_password,
.gform-theme--foundation .gfield input,
.gform-theme--foundation .gfield select {
    line-height: 1rem;
}


.booking-widget .gform_wrapper {
    margin: 0;
    width: 100%;
}

.booking-widget .gform_title {
    font-size: 30px;
    /* Reduced from 28px */
    font-weight: 600;
    /* Made bolder */
    margin-bottom: 1rem;
    /* Increased spacing */
    color: #1a1a1a;
    text-align: center;
    position: relative;
}

.booking-widget .gform_body {
    width: 100%;
}

.booking-widget .gfield {
    padding-right: 0;
}

.booking-widget .gfield_label {
    font-weight: normal;
    margin-bottom: 0.5rem;
}

.booking-widget input[type="text"],
.booking-widget input[type="email"],
.booking-widget select {
    width: 100% !important;
    /* Force full width */
    padding: 8px 12px !important;
    height: 40px;
    border: 1px solid #ddd;
    border-radius: 4px;
}

.booking-widget .gform_footer {
    margin-top: 1.5rem;
    padding: 0;
}

.gform_next_button,
#gform_next_button_7_113 {
    width: 100%;
    padding: 1.25rem;
    /* Increased padding */
    background-color: #047727;
    border: none;
    border-radius: 8px;
    cursor: pointer;
    font-size: 18px;
    /* Increased from 16px */
    font-weight: 600;
    transition: all 0.2s ease;
    letter-spacing: 0.5px;
    text-transform: uppercase;
}


.booking-widget .gform_next_button:hover,
.booking-widget .gform_button:hover {
    background: #218838;
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(40, 167, 69, 0.2);
}

.place-meta {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: nowrap;
}

.place-type {
    background-color: #F5EFE6;
    /* Tan/brown background color */
    padding: 4px 8px;
    border-radius: 4px;
    font-size: 14px;
}

.place-address {
    font-size: 1rem;
    line-height: 1.4;
    color: #0066cc;
    flex: 1;
    min-width: 0;
}

@media (max-width: 768px) {
    .place-address {
        font-size: 0.9rem;
    }
}

.place-address a {
    color: inherit;
    text-decoration: none;
}

.place-address a:hover {
    text-decoration: underline;
}

.place-rating {
    text-align: right;
    margin-left: auto;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
}

.place-content-wrapper {
    display: flex;
    gap: 2rem;
    flex-wrap: nowrap;
}

.place-main-content {
    flex: 2;
    /* Takes up 2/3 of the space */
    max-width: calc(66.66% - 1rem);
    /* Adjusts for the gap */
}

.place-sidebar {
    flex: 1;
    /* Takes up 1/3 of the space */
    min-width: 300px;
    /* Minimum width for the form */
    max-width: calc(33.33% - 1rem);
    /* Adjusts for the gap */
    position: sticky;
    top: 2rem;
    align-self: flex-start;
    height: fit-content;
}

@keyframes subtle-glow {
    from {
        box-shadow: 0 0 0 rgba(40, 167, 69, 0);
    }

    to {
        box-shadow: 0 0 20px rgba(40, 167, 69, 0.1);
    }
}

/* Title spacing from breadcrumbs */
.place-title-meta {
    margin-top: 12px;
}

/* Full-width metadata section */
.place-meta-full-width {
    width: 100%;
    padding-bottom: 1rem;
    margin-top: 4px;
}

/* Responsive layout */
@media (max-width: 1024px) {
    .place-content-wrapper {
        display: block;
        /* Change from flex to block for better control */
    }

    .place-main-content {
        display: flex;
        flex-direction: column;
        flex: none;
        width: 100%;
        max-width: 100%;
        min-width: 0;
    }

    .place-sidebar {
        flex: none;
        width: 100%;
        max-width: 100%;
        min-width: 0;
    }

    /* Use flexbox for mobile layout - safer with Google Maps */
    .place-content-wrapper {
        display: flex;
        flex-direction: column;
    }

    /* Order the elements using flexbox order property */
    .map-section {
        order: 1;
    }

    .place-photos {
        order: 2;
    }

    .place-sidebar {
        order: 3;
        position: static;
        margin: 2rem 0;
        border-top: 2px solid #e0e0e0;
        border-bottom: 2px solid #e0e0e0;
    }

    .place-about {
        order: 4;
    }

    .booking-widget {
        max-width: 100%;
        margin: 0 auto;
        padding: 1rem;
        border: none;
        border-radius: 0;
        box-shadow: none;
        background: #f8f9fa;
    }
}

.read-more-btn {
    background: none;
    border: none;
    color: #0066cc;
    padding: 5px 0;
    cursor: pointer;
    font-size: 0.9em;
    margin-top: 10px;
}

.read-more-btn:hover {
    text-decoration: underline;
}

.description-full {
    margin-top: 10px;
}

/* Insurance Section */
.place-insurance {
    margin-top: 1.5rem;
    padding-top: 1.5rem;
    border-top: 1px solid #e0e0e0;
}

.place-insurance h3 {
    margin-bottom: 1rem;
    font-size: 1.5rem;
    color: #333;
}

.insurance-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    gap: 0.75rem 1rem;
}

.insurance-list li {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.95rem;
    color: #444;
}

.insurance-list .check-icon {
    color: #047727;
    /* Theme green color */
    flex-shrink: 0;
}

/* Patient Reported badge for crowdsourced insurance entries */
.eh-patient-reported-badge {
    display: inline-block;
    font-size: 0.7rem;
    font-weight: 600;
    color: #047727;
    background: #ecfdf5;
    border: 1px solid #bbf7d0;
    border-radius: 12px;
    padding: 1px 8px;
    margin-left: 4px;
    white-space: nowrap;
    line-height: 1.4;
    vertical-align: middle;
}

/* Patient Confirmed badge for dual-source insurance entries */
.eh-patient-confirmed-badge {
    display: inline-block;
    font-size: 0.7rem;
    font-weight: 600;
    color: #1e40af;
    background: #eff6ff;
    border: 1px solid #bfdbfe;
    border-radius: 12px;
    padding: 1px 8px;
    margin-left: 4px;
    white-space: nowrap;
    line-height: 1.4;
    vertical-align: middle;
}

/* Insurance section disclaimer */
.eh-insurance-disclaimer {
    font-size: 0.8rem;
    color: #888;
    margin-top: 16px;
    padding-top: 12px;
    border-top: 1px solid #eee;
    margin-bottom: 0;
}

.eh-insurance-disclaimer a {
    color: #666;
    text-decoration: none;
}

.eh-insurance-disclaimer a:hover {
    text-decoration: underline;
}

.services-section {
    margin-top: 2rem;
    padding-top: 2rem;
    border-top: 1px solid #e0e0e0;
}

.services-section h3 {
    margin-bottom: 0.5rem;
    font-size: 1.5rem;
    color: #333;
}

.services-note {
    color: #888;
    font-size: 0.8rem;
    margin-bottom: 1.5rem;
}

.services-list {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.service-item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 1rem 0;
    border-bottom: 1px solid #f0f0f0;
}

.service-name {
    font-size: 1.1rem;
    color: #333;
}

.service-price {
    font-weight: 500;
    color: #28a745;
}

.hours-section {
    margin-top: 2rem;
    padding-top: 2rem;
    border-top: 1px solid #e0e0e0;
    /* width: 640px; */
}

.hours-section h3 {
    margin-bottom: 20px;
    font-size: 1.5rem;
    color: #333;
}

.hours-header {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
}

.hours-header h3 {
    margin-bottom: 0;
}

.eh-open-status {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 0.85rem;
    font-weight: 600;
    padding: 4px 12px;
    border-radius: 20px;
    white-space: nowrap;
}

.eh-status-open {
    color: #047727;
    background: #ecfdf5;
    border: 1px solid #bbf7d0;
}

.eh-status-closed {
    color: #b91c1c;
    background: #fef2f2;
    border: 1px solid #fecaca;
}

.eh-status-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    display: inline-block;
}

.eh-status-open .eh-status-dot {
    background: #047727;
}

.eh-status-closed .eh-status-dot {
    background: #b91c1c;
}

/* X-Ray Walk In Hours Section Styles */
.xray-hours-section {
    margin-top: 2rem;
    padding-top: 2rem;
    border-top: 1px solid #e0e0e0;
}

.xray-hours-section h3 {
    margin-bottom: 20px;
    font-size: 1.5rem;
    color: #333;
}

.xray-hours-description {
    margin: 0 0 1.5rem 0;
    color: #666;
    font-size: 0.95rem;
    line-height: 1.5;
}

/* Practice Claim Call-out Styles */
.practice-claim-callout {
    display: none;
    margin-top: 2rem;
    padding: 1.5rem;
    border: 2px solid #4A90E2;
    border-radius: 20px;
    background-color: #fff;
    cursor: pointer;
    transition: all 0.2s ease;
}

.practice-claim-callout:hover {
    border-color: #357ABD;
    box-shadow: 0 2px 8px rgba(74, 144, 226, 0.1);
}

.claim-callout-content {
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 100%;
}

.claim-callout-left {
    display: flex;
    align-items: center;
    gap: 1rem;
    flex: 1;
}

.claim-callout-icon {
    color: #4A90E2;
    font-size: 1.25rem;
    flex-shrink: 0;
}

.claim-callout-text h4 {
    margin: 0 0 0.25rem 0;
    font-size: 1rem;
    font-weight: 600;
    color: #333;
}

.claim-callout-text p {
    margin: 0;
    font-size: 0.875rem;
    color: #666;
    line-height: 1.4;
}

.claim-callout-right {
    flex-shrink: 0;
}

.claim-callout-link {
    color: #4A90E2;
    font-weight: 500;
    font-size: 0.875rem;
    text-decoration: none;
    transition: color 0.2s ease;
}

.practice-claim-callout:hover .claim-callout-link {
    color: #357ABD;
}

/* Responsive adjustments for claim callout */
@media (max-width: 768px) {
    .claim-callout-content {
        flex-direction: column;
        align-items: flex-start;
        gap: 1rem;
    }

    .claim-callout-right {
        align-self: flex-end;
    }

    /* Ensure metadata section is full width on smaller mobile screens */
    .place-single-container {
        padding: 1rem;
    }

    .place-meta-full-width {
        margin-left: -1rem;
        margin-right: -1rem;
        margin-top: 0.25rem;
        /* Reset negative margin on smaller mobile */
        padding-left: 1rem;
        padding-right: 1rem;
        width: calc(100% + 2rem);
    }

    /* Ensure title and rating stay on same line on mobile */
    .place-identity {
        flex-direction: row;
        justify-content: space-between;
        align-items: flex-start;
        gap: 1rem;
    }

    .place-title-meta {
        flex: 1;
        min-width: 0;
    }

    .place-title {
        font-size: 1.5rem;
    }

    .place-rating {
        flex-shrink: 0;
        margin-left: auto;
    }

    /* Mobile adjustments for metadata */
    .place-meta {
        gap: 6px;
    }

    .place-type {
        font-size: 12px;
        padding: 3px 6px;
        flex-shrink: 0;
    }


}

.business-hours {
    display: flex;
    flex-direction: column;
    gap: 1px;
}

.business-hours .day {
    display: flex;
    justify-content: space-between;
    padding: 20px 0;
    border-bottom: 1px solid #D9D9D9;
}

.business-hours .day:last-child {
    border-bottom: none;
}

.business-hours .day-name {
    font-weight: normal;
    color: #333;
}

.business-hours .hours {
    color: #666;
    text-align: right;
}

.full-width-section {
    margin-top: 56px;
    padding: 48px 0;
    width: 100%;
    position: relative;
}

.full-width-section::before {
    content: '';
    position: absolute;
    top: 0;
    left: 2rem;
    width: 72px;
    height: 3px;
    background: #047727;
    border-radius: 2px;
}

.booking-info-section {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 2rem;
}

.booking-header {
    display: flex;
    align-items: center;
    gap: 1.5rem;
    margin-bottom: 3rem;
}

.booking-title {
    display: flex;
    flex-direction: column;
    /* Change from row to column */
    gap: 1rem;
}

.learn-more-link {
    color: #0066cc;
    text-decoration: none;
    font-size: 1rem;
    display: inline-block;
    /* Change from flex to inline-block */
}

.booking-features {
    display: flex;
    flex-direction: column;
    gap: 2rem;
}

.features-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 2rem;
}

.features-grid:last-child {
    grid-template-columns: repeat(2, 1fr);
    margin-left: calc(100% / 3);
}

.feature-number {
    background: #E8F8ED;
    color: #047727;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1rem;
    font-weight: 500;
    flex-shrink: 0;
}

@media (max-width: 1024px) {
    .features-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .features-grid:last-child {
        grid-template-columns: repeat(2, 1fr);
        margin-left: 0;
    }
}

@media (max-width: 768px) {
    .features-grid {
        grid-template-columns: 1fr;
    }

    .features-grid:last-child {
        grid-template-columns: 1fr;
        margin-left: 0;
    }

    .booking-header {
        flex-direction: column;
        text-align: center;
    }

    .booking-title {
        flex-direction: column;
    }
}

.booking-header-wrapper {
    display: grid;
    grid-template-columns: 400px 1fr;
    gap: 4rem;
    align-items: start;
}

.booking-header-left {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
}

.booking-logo {
    width: 40px;
    height: 40px;
}

.booking-title h3 {
    margin: 0;
    /* Remove default margins */
    color: #333;
    font-weight: 600;
    line-height: 1.2;
    font-size: 2rem;
}

.booking-features {
    display: flex;
    flex-direction: column;
    gap: 2rem;
}


.feature-item {
    display: flex;
    gap: 1rem;
}

@media (max-width: 1024px) {
    .booking-header-wrapper {
        grid-template-columns: 1fr;
        gap: 2rem;
    }
}

.place-logo img {
    width: 80px;
    height: 80px;
    object-fit: contain;
}

/* Medical Disclaimer Styles in the Appointment Request Form */
.medical_disclaimer_appt_form .gsection_description {
    font-size: 0.85rem;
    line-height: 1.2;
    font-weight: 400;
}

.medical_disclaimer_appt_form .gsection_title {
    font-size: 1rem;
    font-weight: 400;
}

.gform-theme--foundation .gform_page_footer {
    flex-wrap: nowrap !important;
}

/* Back to Results Styles */
.back-to-results {
    color: #0066cc;
}

.back-link {
    display: inline-flex;
    align-items: center;
    color: #007bff;
    text-decoration: none;
    font-size: 1rem;
    font-weight: 500;
    transition: color 0.2s ease;
}

.back-link:hover {
    color: #0056b3;
    text-decoration: underline;
}

.back-arrow {
    margin-right: 0.25rem;
    font-size: 1.2rem;
    line-height: 1;
}

/* For the full page modal */
.booking-modal {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100vh;
    background-color: #fff;
    z-index: 999999;
    overflow-y: auto;
}

.booking-modal-content {
    position: relative;
    padding: 40px 20px 20px;
    width: 100%;
    max-width: 1200px;
    margin: 0 auto;
    min-height: 100vh;
}

.booking-modal-close {
    position: fixed;
    right: 30px;
    top: 20px;
    font-size: 32px;
    cursor: pointer;
    z-index: 1000000;
    color: #333;
    width: 40px;
    height: 40px;
    line-height: 40px;
    text-align: center;
    background: #f5f5f5;
}

.booking-modal-close:hover {
    background: #eee;
}

/* Add new modal layout styles */
.modal-flex-container {
    display: flex;
    max-width: 1200px;
    margin: 0 auto;
    padding: 20px;
    gap: 40px;
}

#modal-form-container {
    flex: 1;
    max-width: 800px;
}

.modal-sidebar {
    width: 300px;
    background: #f8f8f8;
    padding: 20px;
    border-radius: 8px;
    position: sticky;
    top: 20px;
    height: fit-content;
}

@media (max-width: 992px) {
    .booking-modal-content {
        width: 95%;
        margin: 20px auto;
        padding: 20px;
        height: auto !important;
        /* Override 100vh on mobile */
        min-height: auto !important;
        /* Remove any min-height constraints */
    }

    .gform-theme--foundation .gfield .ginput_password.medium,
    .gform-theme--foundation .gfield input.medium,
    .gform-theme--foundation .gfield select.medium {
        inline-size: 100% !important;
    }
}

/* Modal Sidebar - Selected Clinic Info */
.selected-clinic-info {
    background: #f8f9fa;
    padding: 24px;
    border-radius: 12px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
    margin-bottom: 20px;
}

.selected-clinic-info h3 {
    margin: 0 0 4px 0;
    font-size: 0.75rem;
    font-weight: 600;
    color: #2563eb;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.selected-clinic-info .clinic-name {
    margin: 0 0 8px 0 !important;
    font-size: 1.1rem !important;
    font-weight: 600 !important;
    color: #1f2937 !important;
    line-height: 1.3 !important;
}

.selected-clinic-info .clinic-address {
    margin: 0 !important;
    font-size: 0.9rem !important;
    color: #6b7280 !important;
    line-height: 1.4 !important;
}

/* Modal Sidebar - Selected Procedure Info */
.selected-procedure-info {
    display: none;
    margin: 20px 0 0 0;
    padding-top: 16px;
    border-top: 1px solid #e5e7eb;
}

.selected-procedure-info h4 {
    margin: 0 0 12px 0;
    font-size: 0.75rem;
    font-weight: 600;
    color: #6b7280;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.selected-procedure-info .procedure-row {
    display: flex;
    align-items: center;
    margin-bottom: 4px;
}

.selected-procedure-info .procedure-bullet {
    color: #2563eb;
    margin-right: 8px;
    font-size: 0.5rem;
    line-height: 1;
}

.selected-procedure-info #modal-procedure-type {
    color: #1f2937;
    font-size: 0.95rem;
    flex: 1;
    font-weight: 500;
}

.selected-procedure-info #modal-procedure-cpt {
    font-size: 0.85rem;
    color: #777;
    display: none;
    margin-left: 20px;
}

/* Modal Sidebar - Benefits Section */
.benefits-section {
    background: #f8f9fa;
    padding: 24px;
    border-radius: 12px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
}

.benefits-section h4 {
    margin: 0 0 16px 0;
    font-size: 1rem;
    font-weight: 600;
    color: #1f2937;
    line-height: 1.3;
}

.benefits-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.benefits-list li {
    display: flex;
    align-items: flex-start;
    margin-bottom: 12px;
    font-size: 0.9rem;
    color: #4b5563;
    line-height: 1.5;
}

.benefits-list li:last-child {
    margin-bottom: 0;
}

.benefits-list .icon {
    margin-right: 10px;
    font-size: 1.1rem;
    flex-shrink: 0;
}

/* Add responsive styles */
@media (max-width: 1024px) {
    .modal-flex-container {
        flex-direction: column;
    }

    .modal-sidebar {
        width: 100%;
        position: static;
        margin-top: 20px;
    }

    #modal-form-container {
        max-width: 100%;
    }
}

/* Digital Fax Section Styles */
.digital-fax-section {
    background: #fff;
    margin-top: 32px;
    padding: 15px;
    border-radius: 12px;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);
    border: 2px solid #f0f0f0;
    text-align: center;
}

.fax-info .fax-header-label {
    display: none;
    font-size: 14px;
    font-weight: 400;
    color: #666;
    margin: 0 0 8px 0;
    letter-spacing: 0.5px;
}

.fax-info .fax-main-header {
    font-size: 28px;
    font-weight: 600;
    color: #1a1a1a;
    margin: 0 0 15px 0;
    line-height: 1.3;
    text-align: center;
}

.fax-info .fax-subtext {
    font-size: 14px;
    color: #666;
}

.send-digital-fax-btn {
    background-color: #E8F8ED;
    color: #012759;
    border: 1px solid #047727;
    padding: 12px 20px;
    border-radius: 6px;
    cursor: pointer;
    font-size: 22px;
    transition: all 0.2s ease;
    width: 100%;
    text-align: center;
}

.send-digital-fax-btn:hover {
    background-color: #89af95;
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(162, 85, 22, 0.2);
}

.request-medical-records-btn {
    background-color: #fff;
    color: #000;
    border: 1px solid #047727;
    padding: 12px 20px;
    border-radius: 6px;
    cursor: pointer;
    font-size: 22px;
    transition: all 0.2s ease;
    width: 100%;
    text-align: center;
    margin-top: 12px;
}

.request-medical-records-btn:hover {
    background-color: #89af95;
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(162, 85, 22, 0.2);
}

/* Digital Fax Modal Styles */
.fax-modal {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100vh;
    background-color: rgba(0, 0, 0, 0.5);
    z-index: 999999;
    overflow-y: auto;
}

.fax-modal-content {
    position: relative;
    background-color: #fff;
    padding: 40px 20px 20px;
    width: 100%;
    max-width: 800px;
    margin: 50px auto;
    border-radius: 8px;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.2);
}

.fax-modal-close {
    position: absolute;
    right: 20px;
    top: 15px;
    font-size: 28px;
    cursor: pointer;
    color: #333;
    width: 30px;
    height: 30px;
    line-height: 30px;
    text-align: center;
    border-radius: 50%;
}

.fax-modal-close:hover {
    background: #eee;
}

.fax-modal-container {
    margin: 0 auto;
    max-width: 100%;
}

@media (max-width: 850px) {
    .fax-modal-content {
        margin: 20px;
        width: auto;
    }
}

.provider-modal {
    position: fixed;
    z-index: 10000;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.5);
    display: flex;
    align-items: center;
    justify-content: center;
    pointer-events: none;
}

.provider-modal-content {
    position: relative;
    background-color: #fefefe;
    pointer-events: auto;
    margin: 2% auto;
    padding: 0;
    border: none;
    width: 90%;
    max-width: 600px;
    border-radius: 8px;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);
    transition: all 0.3s ease-in-out;
    display: flex;
    flex-direction: column;
}

.provider-modal-close {
    position: absolute;
    right: 15px;
    top: 15px;
    color: #aaa;
    font-size: 28px;
    font-weight: bold;
    cursor: pointer;
    z-index: 10001;
    background: white;
    border-radius: 50%;
    width: 30px;
    height: 30px;
    display: flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
}

.provider-modal-close:hover,
.provider-modal-close:focus {
    color: #000;
    text-decoration: none;
}

.provider-iframe-container {
    width: 100%;
    height: 100%;
    border-radius: 8px;
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

#provider-onboarding-iframe {
    border: none;
    border-radius: 8px;
    width: 100%;
    display: block;
    height: 600px;
    /* Default height, will be overridden by JavaScript */
}

@media (max-width: 768px) {
    .provider-modal-content {
        width: 95%;
        margin: 5% auto;
    }
}

/* Related Clinics Carousel Styles */
.related-clinics-section {
    max-width: 1200px;
    margin: 56px auto 3rem auto;
    padding: 48px 2rem 0 2rem;
    position: relative;
}

.related-clinics-section::before {
    content: '';
    position: absolute;
    top: 0;
    left: 2rem;
    width: 72px;
    height: 3px;
    background: #047727;
    border-radius: 2px;
}

.related-clinics-container {
    width: 100%;
}

.related-clinics-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 2rem;
}

.related-clinics-header h3 {
    margin: 0;
    font-size: 1.75rem;
    font-weight: 600;
    color: #333;
}

.carousel-controls {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.carousel-navigation {
    display: flex;
    gap: 0.5rem;
}


.carousel-btn {
    border: 2px solid #9ca3af;
    background: #fff;
    color: #1f2937;
    cursor: pointer;
    justify-content: center;
    transition: all 0.2s ease;
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.1);
    position: relative;
}

/* Hide any child content (old cached spans or new SVGs) */
.carousel-btn>* {
    display: none !important;
}

/* Pure CSS chevron arrows — always render, no font/HTML dependency */
.carousel-btn::before {
    content: '';
    display: block;
    width: 10px;
    height: 10px;
    border-top: 2.5px solid #1f2937;
    border-right: 2.5px solid #1f2937;
}

.carousel-prev::before {
    transform: rotate(-135deg);
    margin-left: 3px;
}

.carousel-next::before {
    transform: rotate(45deg);
    margin-right: 3px;
}

.carousel-btn:hover:not(:disabled) {
    background: #f9fafb;
    border-color: #047727;
    box-shadow: 0 2px 6px rgba(4, 119, 39, 0.15);
}

.carousel-btn:hover:not(:disabled)::before {
    border-color: #047727;
}

.carousel-btn:disabled {
    opacity: 0.3;
    cursor: not-allowed;
    box-shadow: none;
}

.carousel-pagination {
    display: flex;
    justify-content: center;
    gap: 6px;
    padding: 12px 0 4px;
}

.carousel-dot {
    width: 28px;
    height: 4px;
    border-radius: 2px;
    border: none;
    background: #d1d5db;
    cursor: pointer;
    padding: 0;
    transition: background 0.25s ease, width 0.25s ease;
}

.carousel-dot.active {
    background: #047727;
    width: 36px;
}

.carousel-dot:hover:not(.active) {
    background: #9ca3af;
}

.related-clinics-carousel {
    overflow: hidden;
    position: relative;
    padding-top: 4px;
    padding-bottom: 4px;
    margin-top: -4px;
    margin-bottom: -4px;
}

.carousel-track {
    display: flex;
    transition: transform 0.3s ease;
    gap: 1rem;
}

.clinic-card {
    flex: 0 0 calc(33.333% - 0.667rem);
    /* 3 cards on desktop */
    min-width: 0;
}

.clinic-card-link {
    text-decoration: none;
    color: inherit;
    display: block;
    height: 100%;
}

.clinic-card-content {
    background: #fff;
    border-radius: 12px;
    padding: 1.5rem;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
    border: 1px solid #e0e0e0;
    transition: all 0.2s ease;
    height: 100%;
    display: flex;
    flex-direction: column;
}

.clinic-card-content:hover {
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.15);
    transform: translateY(-2px);
    border: 1px solid #047727;
}

.clinic-card-header {
    margin-bottom: 1rem;
}

.clinic-title-row {
    display: flex;
    flex-direction: column-reverse;
    margin-bottom: 0.5rem;
    gap: 0.5rem;
}

.clinic-name {
    margin: 0;
    font-size: 1.1rem;
    font-weight: 600;
    color: #333;
    line-height: 1.3;
}

.place-type-badge {
    background-color: #F5EFE6;
    padding: 3px 6px;
    border-radius: 4px;
    font-size: 12px;
    color: #333;
    white-space: nowrap;
    align-self: flex-start;
}

.clinic-rating {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.stars-container-small {
    display: inline-flex;
}

.stars-container-small .star {
    font-size: 0.875rem;
    color: #d4d4d4;
}

.stars-container-small .star.full {
    color: #A25516;
}

.rating-text-small {
    font-size: 0.75rem;
    color: #666;
}

.clinic-card-body {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.clinic-address,
.clinic-distance,
.clinic-phone {
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
    font-size: 0.9rem;
    color: #555;
    line-height: 1.4;
}

.clinic-address i,
.clinic-distance i,
.clinic-phone i {
    color: #047727;
    font-size: 0.875rem;
    margin-top: 0.1rem;
    flex-shrink: 0;
}

.clinic-distance {
    font-weight: 500;
    color: #666;
}

/* Responsive styles for carousel */
@media (max-width: 1024px) {
    .related-clinics-section {
        padding: 0 1rem;
        margin: 2rem auto;
    }

    .clinic-card {
        flex: 0 0 calc(50% - 0.5rem);
        /* 2 cards on tablet */
    }

    .related-clinics-header {
        flex-direction: column;
        gap: 1rem;
        text-align: center;
        padding-top: 15px;
    }

    .carousel-controls {
        justify-content: center;
        flex-wrap: wrap;
    }
}

@media (max-width: 768px) {
    .clinic-card {
        flex: 0 0 calc(50% - 0.5rem);
        /* 2 cards on mobile as requested */
    }

    .related-clinics-header h3 {
        font-size: 1.5rem;
    }

    .clinic-card-content {
        padding: 1rem;
    }

    .clinic-name {
        font-size: 1rem;
    }

    .place-type-badge {
        font-size: 11px;
        padding: 2px 5px;
    }
}

@media (max-width: 480px) {
    .related-clinics-section {
        margin: 1.5rem auto;
    }

    .carousel-track {
        gap: 0.75rem;
    }

    .clinic-card {
        flex: 0 0 calc(50% - 0.375rem);
    }

    .clinic-card-content {
        padding: 0.875rem;
    }
}

/* Organization name highlighting */
.organization-name-highlight {
    font-weight: 600;
    position: relative;
}

/* Optional: Subtle underline effect */
.organization-name-highlight::after {
    content: '';
    position: absolute;
    bottom: -2px;
    left: 0;
    width: 100%;
    height: 2px;
    background-color: #047727;
    opacity: 0.3;
    border-radius: 1px;
}

/* Lazy loading styles */
.clinic-loading-placeholder {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 3rem 2rem;
    text-align: center;
}

.loading-spinner {
    width: 40px;
    height: 40px;
    border: 3px solid #f3f3f3;
    border-top: 3px solid #047727;
    border-radius: 50%;
    animation: spin 1s linear infinite;
    margin-bottom: 1rem;
}

@keyframes spin {
    0% {
        transform: rotate(0deg);
    }

    100% {
        transform: rotate(360deg);
    }
}

.clinic-loading-placeholder p {
    color: #666;
    font-size: 1rem;
    margin: 0;
}

/* Loading state for lazy sections */
.lazy-load-section.loading .clinic-loading-placeholder {
    display: flex;
}

.lazy-load-section.loaded .clinic-loading-placeholder {
    display: none;
}

/* Insurance Selector Styles */
.eh-insurance-callout {
    background: #f0f8ff;
    border: 2px solid #4a90e2;
    border-radius: 8px;
    padding: 1.5rem;
    margin-bottom: 1.5rem;
}

.eh-insurance-callout-content {
    display: flex;
    align-items: center;
    gap: 1rem;
    margin-bottom: 1rem;
}

.eh-insurance-callout-icon {
    font-size: 2rem;
    line-height: 1;
}

.eh-insurance-callout-text {
    flex: 1;
    font-size: 1rem;
}

.eh-insurance-callout-text strong {
    color: #2c3e50;
}

.eh-insurance-selectors {
    display: flex;
    gap: 1rem;
    flex-wrap: wrap;
}

.eh-insurance-select {
    flex: 1;
    min-width: 200px;
    padding: 0.75rem 1rem;
    font-size: 1rem;
    border: 1px solid #ddd;
    border-radius: 6px;
    background: white;
    cursor: pointer;
    transition: border-color 0.3s ease;
}

.eh-insurance-select:hover:not(:disabled) {
    border-color: #4a90e2;
}

.eh-insurance-select:disabled {
    background: #f5f5f5;
    cursor: not-allowed;
    opacity: 0.6;
}

.eh-insurance-select:focus {
    outline: none;
    border-color: #4a90e2;
    box-shadow: 0 0 0 3px rgba(74, 144, 226, 0.1);
}

/* Insurance Selected State */
.eh-insurance-selected {
    background: #e8f5e9;
    border: 2px solid #4caf50;
    border-radius: 8px;
    padding: 1rem 1.5rem;
    margin-bottom: 1.5rem;
}

.eh-insurance-selected-content {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
}

.eh-insurance-selected-text {
    font-size: 1rem;
    color: #2c3e50;
}

.eh-insurance-change-btn {
    padding: 0.5rem 1rem;
    background: white;
    border: 1px solid #4caf50;
    border-radius: 6px;
    color: #4caf50;
    font-size: 0.875rem;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.3s ease;
    white-space: nowrap;
}

.eh-insurance-change-btn:hover {
    background: #4caf50;
    color: white;
}

/* Insurance Warning State */
.eh-insurance-warning {
    background: #fff3cd;
    border: 2px solid #ffc107;
    border-radius: 8px;
    padding: 1rem 1.5rem;
    margin-bottom: 1.5rem;
}

.eh-insurance-warning-content {
    display: flex;
    align-items: flex-start;
    gap: 1rem;
    margin-bottom: 1rem;
}

.eh-insurance-warning-icon {
    font-size: 1.5rem;
    line-height: 1;
}

.eh-insurance-warning-text {
    flex: 1;
    font-size: 0.95rem;
    color: #856404;
    line-height: 1.5;
}

.eh-insurance-warning-text strong {
    color: #856404;
}

.eh-insurance-change-btn-warning {
    padding: 0.5rem 1rem;
    background: white;
    border: 1px solid #ffc107;
    border-radius: 6px;
    color: #856404;
    font-size: 0.875rem;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.3s ease;
}

.eh-insurance-change-btn-warning:hover {
    background: #ffc107;
    color: #856404;
}

/* Pricing Disclaimer */
.eh-pricing-disclaimer {
    background: #f8f9fa;
    border-left: 4px solid #6c757d;
    padding: 1rem;
    margin-bottom: 1.5rem;
    border-radius: 4px;
}

.eh-pricing-disclaimer p {
    margin: 0;
    color: #6c757d;
    font-size: 0.875rem;
    line-height: 1.4;
}

/* Procedure Item Price Container Updates */
.eh-procedure-item-price-container {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 0.25rem;
}

.eh-procedure-price-primary {
    font-size: 1.25rem;
    font-weight: 600;
    color: #2c3e50;
}

.eh-procedure-price-primary[data-price-type="insurance"] {
    color: #4caf50;
}

.eh-procedure-item-price-secondary {
    font-size: 0.875rem;
    color: #666;
    white-space: nowrap;
}

/* Cart Item Price Type Label */
.eh-cart-item-price-type {
    font-size: 0.75rem;
    color: #666;
    margin-top: 0.25rem;
    padding: 0.25rem 0.5rem;
    background: #f0f0f0;
    border-radius: 4px;
    display: inline-block;
}

/* CPT Code Badge */
.eh-procedure-item-name {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.eh-procedure-display-name {
    font-weight: 500;
    color: #333;
}

/* Procedure Qualifier Badge (e.g., "Low Dose Lung Screening", "Bilateral") */
.eh-procedure-qualifier {
    display: inline-flex;
    align-items: center;
    padding: 0.125rem 0.5rem;
    background: linear-gradient(135deg, #fef3c7 0%, #fde68a 100%);
    color: #92400e;
    font-size: 0.75rem;
    font-weight: 600;
    border-radius: 4px;
    border: 1px solid #f59e0b;
    letter-spacing: 0.01em;
}

.eh-cpt-code {
    display: inline-flex;
    align-items: center;
    padding: 0.125rem 0.5rem;
    background: #f0f4f8;
    color: #5a6c7d;
    font-size: 0.75rem;
    font-weight: 500;
    font-family: 'SF Mono', 'Monaco', 'Inconsolata', 'Fira Code', monospace;
    border-radius: 4px;
    letter-spacing: 0.025em;
}

/* Procedure Info Tooltip */
.eh-procedure-info-tooltip {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 20px;
    height: 20px;
    color: #9ca3af;
    cursor: pointer;
    transition: color 0.2s ease;
    flex-shrink: 0;
}

.eh-procedure-info-tooltip:hover,
.eh-procedure-info-tooltip:focus {
    color: #2271b1;
    outline: none;
}

.eh-procedure-info-tooltip svg {
    display: block;
}

.eh-tooltip-content {
    position: absolute;
    bottom: calc(100% + 8px);
    left: 0;
    transform: none;
    width: max-content;
    max-width: 320px;
    padding: 0.75rem 1rem;
    background: #1e293b;
    color: #fff;
    font-size: 0.8125rem;
    font-weight: 400;
    line-height: 1.5;
    border-radius: 8px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.2s ease, visibility 0.2s ease;
    z-index: 10000;
    /* Allow hovering over tooltip to copy text */
    pointer-events: auto;
    /* Add selectable text cursor */
    cursor: text;
    user-select: text;
    -webkit-user-select: text;
    -moz-user-select: text;
    -ms-user-select: text;
}

/* Hover bridge - extends the hover area between icon and tooltip */
.eh-procedure-info-tooltip::before {
    content: '';
    position: absolute;
    bottom: 100%;
    left: 50%;
    transform: translateX(-50%);
    width: 40px;
    height: 12px;
    background: transparent;
}

/* Tooltip arrow */
.eh-tooltip-content::after {
    content: '';
    position: absolute;
    top: 100%;
    left: 10px;
    transform: none;
    border-width: 6px;
    border-style: solid;
    border-color: #1e293b transparent transparent transparent;
}

.eh-procedure-info-tooltip:hover .eh-tooltip-content,
.eh-procedure-info-tooltip:focus .eh-tooltip-content,
.eh-tooltip-content:hover {
    opacity: 1;
    visibility: visible;
}

/* On mobile, show tooltip on click/tap with expanded area */
@media (max-width: 768px) {
    .eh-tooltip-content {
        position: fixed;
        bottom: auto;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        max-width: calc(100vw - 40px);
    }

    .eh-tooltip-content::after {
        display: none;
    }

    /* Add overlay on mobile when tooltip is visible */
    .eh-procedure-info-tooltip:focus .eh-tooltip-content {
        pointer-events: auto;
    }
}

/* Mobile Responsive Styles */
@media (max-width: 768px) {
    .eh-insurance-selectors {
        flex-direction: column;
    }

    .eh-insurance-select {
        width: 100%;
    }

    .eh-insurance-selected-content,
    .eh-insurance-callout-content {
        flex-direction: column;
        align-items: flex-start;
    }

    .eh-insurance-change-btn,
    .eh-insurance-change-btn-warning {
        width: 100%;
        text-align: center;
    }

    .eh-insurance-warning-content {
        flex-direction: column;
    }

    .eh-procedure-item-name {
        gap: 0.375rem;
    }

    .eh-procedure-qualifier {
        font-size: 0.6875rem;
        padding: 0.1rem 0.375rem;
    }

    .eh-cpt-code {
        font-size: 0.6875rem;
        padding: 0.1rem 0.375rem;
    }
}

/* ============================================================================
   PROCEDURES DISPLAY (Expandable/Collapsible) - Restored from cart-system.css
   ============================================================================ */
.eh-procedures-container {
    margin-top: 24px;
}

.eh-procedures-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 20px;
    flex-wrap: wrap;
    gap: 16px;
}

.eh-procedures-search {
    flex: 1;
    min-width: 250px;
    max-width: 400px;
}

.eh-procedures-search input {
    width: 100%;
    padding: 12px 16px 12px 40px;
    border: 1px solid #d1d5db;
    border-radius: 8px;
    font-size: 14px;
    transition: all 0.2s;
}

.eh-procedures-search input:focus {
    outline: none;
    border-color: #00753a;
    box-shadow: 0 0 0 3px rgba(0, 117, 58, 0.1);
}

.eh-procedures-search-icon {
    position: absolute;
    left: 12px;
    top: 50%;
    transform: translateY(-50%);
    color: #9ca3af;
    pointer-events: none;
}

.eh-procedure-group {
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    margin-bottom: 12px;
    transition: all 0.2s;
}

.eh-procedure-group:hover {
    border-color: #00753a;
    box-shadow: 0 2px 8px rgba(0, 117, 58, 0.1);
}

.eh-procedure-group-header {
    background: #f9fafb;
    padding: 16px 20px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: space-between;
    transition: all 0.2s, box-shadow 0.2s;
    position: sticky;
    top: 0;
    z-index: 10;
    border-radius: 8px 8px 0 0;
    border-bottom: 1px solid transparent;
}

.eh-procedure-group:not(.active) .eh-procedure-group-header {
    border-radius: 8px;
}

.eh-procedure-group-header.is-stuck {
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
    border-bottom-color: #e5e7eb;
}

.eh-procedure-group-header:hover {
    background: #f0f9f4;
}

.eh-procedure-group.active .eh-procedure-group-header {
    background: #f0f9f4;
    border-bottom: 1px solid #e5e7eb;
}

.eh-procedure-group-title {
    display: flex;
    align-items: center;
    gap: 12px;
}

.eh-procedure-group-name {
    font-weight: 600;
    font-size: 16px;
    color: #1f2937;
}

.eh-procedure-group-price {
    font-size: 14px;
    color: #6b7280;
}

.eh-procedure-group-toggle {
    display: flex;
    align-items: center;
    gap: 8px;
    color: #6b7280;
    font-size: 14px;
}

.eh-procedure-group-toggle svg {
    transition: transform 0.3s;
}

.eh-procedure-group.active .eh-procedure-group-toggle svg {
    transform: rotate(180deg);
}

.eh-procedure-group-content {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.3s ease, overflow 0s 0s;
    border-radius: 0 0 8px 8px;
}

.eh-procedure-group.active .eh-procedure-group-content {
    max-height: 2000px;
    overflow: visible;
    transition: max-height 0.3s ease, overflow 0s 0.3s;
}

.eh-procedure-subgroup {
    padding: 20px;
    border-bottom: 1px solid #e5e7eb;
}

.eh-procedure-subgroup:last-child {
    border-bottom: none;
}

.eh-procedure-subgroup-title {
    font-weight: 600;
    font-size: 14px;
    color: #374151;
    margin-bottom: 12px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.eh-procedure-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 6px 0;
    border-bottom: 1px solid #f3f4f6;
}

.eh-procedure-item:last-child {
    border-bottom: none;
}

.eh-procedure-item-info {
    flex: 1;
}

.eh-procedure-item-actions {
    display: flex;
    align-items: center;
    gap: 16px;
}

.eh-procedure-item-price {
    font-weight: 600;
    font-size: 16px;
    color: #00753a;
    min-width: 80px;
    text-align: right;
}

.eh-add-to-cart-btn {
    background: #00753a;
    color: white;
    border: none;
    padding: 8px 16px;
    border-radius: 6px;
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.2s;
    white-space: nowrap;
}

.eh-add-to-cart-btn:hover {
    background: #005a2d;
    transform: translateY(-1px);
    box-shadow: 0 2px 8px rgba(0, 117, 58, 0.3);
}

.eh-add-to-cart-btn:active {
    transform: translateY(0);
}

/* Mobile Responsive for Procedures */
@media (max-width: 768px) {
    .eh-procedures-header {
        flex-direction: column;
        align-items: stretch;
    }

    .eh-procedures-search {
        max-width: 100%;
    }

    .eh-procedure-group-header {
        padding: 14px 16px;
    }

    .eh-procedure-group-name {
        font-size: 15px;
    }

    .eh-procedure-group-price {
        font-size: 13px;
    }

    .eh-procedure-subgroup {
        padding: 16px;
    }

    .eh-procedure-item {
        flex-direction: column;
        align-items: flex-start;
        gap: 12px;
    }

    .eh-procedure-item-actions {
        width: 100%;
        justify-content: space-between;
    }

    .eh-add-to-cart-btn {
        flex: 1;
    }
}


/* =========================================================================
   FAQ Section Styles
   ========================================================================= */

.clinic-faq-section {
    max-width: 1200px;
    margin: 48px auto 0;
    padding: 0 2rem;
}

.clinic-faq-section>h3 {
    font-size: 1.75rem;
    font-weight: 600;
    color: #333;
    margin: 0 0 20px 0;
    text-transform: none !important;
}

.clinic-faq-container {
    background: transparent;
    border-radius: 0;
    padding: 0;
}

.clinic-faq-list {
    display: flex;
    flex-direction: column;
    gap: 0;
}

/* Individual FAQ item */
.clinic-faq-item {
    border-bottom: 2px solid #e5e7eb;
}

.clinic-faq-item:last-child {
    border-bottom: none;
}

/* Question / Summary */
.clinic-faq-question {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 22px 4px 22px 12px;
    cursor: pointer;
    font-size: 1.25rem;
    font-weight: 600;
    color: #1a1a2e;
    line-height: 1.5;
    list-style: none;
    transition: color 0.2s ease;
    -webkit-user-select: none;
    user-select: none;
}

/* Remove default marker */
.clinic-faq-question::-webkit-details-marker {
    display: none;
}

.clinic-faq-question::marker {
    display: none;
    content: '';
}

.clinic-faq-question:hover {
    color: #22c55e;
}

/* Chevron icon */
.clinic-faq-chevron {
    flex-shrink: 0;
    width: 20px;
    height: 20px;
    color: #9ca3af;
    transition: transform 0.25s ease, color 0.2s ease;
}

.clinic-faq-item[open] .clinic-faq-chevron {
    transform: rotate(180deg);
    color: #22c55e;
}

/* Answer area */
.clinic-faq-answer {
    padding: 0 4px 18px 12px;
}

.clinic-faq-answer>div {
    margin: 0;
    font-size: 0.95rem;
    line-height: 1.7;
    color: #1f2937;
}

/* Bulleted lists inside FAQ answers (hours, insurance) */
.faq-hours-list,
.faq-insurance-list {
    margin: 10px 0 4px 0;
    padding-left: 20px;
    list-style: disc;
}

.faq-hours-list li,
.faq-insurance-list li {
    padding: 2px 0;
    font-size: 0.93rem;
    color: #1f2937;
}

/* Multi-column layout for insurance list */
.faq-insurance-list {
    columns: 2;
    -webkit-columns: 2;
    column-gap: 24px;
}

/* ---- FAQ Responsive ---- */
@media (max-width: 768px) {
    .clinic-faq-section {
        margin-top: 32px;
    }

    .clinic-faq-section>h3 {
        font-size: 1.25rem;
        margin-bottom: 16px;
    }

    .clinic-faq-question {
        padding: 14px 6px;
        font-size: 1rem;
        gap: 12px;
    }

    .clinic-faq-answer {
        padding: 0 6px 14px;
    }

    .clinic-faq-answer>div {
        font-size: 0.9rem;
    }

    .faq-insurance-list {
        columns: 1;
        -webkit-columns: 1;
    }
}

/* =========================================================================
   Insurance FAQ — Booking Path + Crowdsourcing Form
   ========================================================================= */

/* Experience 1: Booking Path */
.faq-insurance-booking p {
    margin: 0 0 16px;
    line-height: 1.6;
    color: #374151;
    font-size: 0.95rem;
}

.faq-insurance-booking a[href*="mailto"] {
    color: #22c55e;
    text-decoration: none;
}

.faq-insurance-booking a[href*="mailto"]:hover {
    text-decoration: underline;
}

.faq-insurance-cta {
    display: inline-block;
    padding: 10px 24px;
    background: #0d5f3c;
    color: #fff !important;
    font-weight: 600;
    font-size: 0.95rem;
    border: none;
    border-radius: 8px;
    text-decoration: none !important;
    cursor: pointer;
    transition: background 0.2s ease, transform 0.15s ease;
}

.faq-insurance-cta:hover {
    background: #0a4d31;
    transform: translateY(-1px);
}

/* Divider between experiences */
.faq-insurance-divider {
    border-top: 1px dashed #d1d5db;
    margin: 24px 0;
}

/* Experience 2: Crowdsourcing */
.faq-crowdsource {
    position: relative;
}

.faq-crowdsource-header {
    margin: 0 0 16px;
    color: #374151;
    font-size: 0.95rem;
    line-height: 1.5;
}

/* Form fields */
.faq-cs-form {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
    max-width: 580px;
}

.faq-cs-toggle,
.faq-cs-submit {
    grid-column: 1 / -1;
}

@media (max-width: 768px) {
    .faq-cs-form {
        grid-template-columns: 1fr;
    }
}

.faq-cs-field label {
    display: block;
    font-size: 0.85rem;
    font-weight: 600;
    color: #374151;
    margin-bottom: 6px;
}

.faq-cs-field label .required {
    color: #ef4444;
}

/* Autocomplete input */
.faq-cs-autocomplete-wrap {
    position: relative;
}

.faq-cs-provider-input,
.faq-cs-provider-other {
    width: 100%;
    padding: 10px 12px;
    font-size: 0.95rem;
    border: 1px solid #d1d5db;
    border-radius: 8px;
    outline: none;
    transition: border-color 0.2s ease;
    box-sizing: border-box;
}

.faq-cs-provider-input:focus,
.faq-cs-provider-other:focus {
    border-color: #22c55e;
    box-shadow: 0 0 0 3px rgba(34, 197, 94, 0.1);
}

/* Autocomplete dropdown */
.faq-cs-dropdown {
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    background: #fff;
    border: 1px solid #d1d5db;
    border-top: none;
    border-radius: 0 0 8px 8px;
    max-height: 240px;
    overflow-y: auto;
    z-index: 100;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}

.faq-cs-dropdown.active {
    display: block;
}

.faq-cs-dropdown-item {
    padding: 10px 12px;
    cursor: pointer;
    font-size: 0.95rem;
    color: #374151;
    transition: background 0.15s ease;
}

.faq-cs-dropdown-item:hover,
.faq-cs-dropdown-item.highlighted {
    background: #f0fdf4;
    color: #166534;
}

.faq-cs-dropdown-item:last-child {
    border-radius: 0 0 8px 8px;
}

/* Plan type select */
.faq-cs-plan-select {
    width: 100%;
    padding: 10px 12px;
    font-size: 0.95rem;
    border: 1px solid #d1d5db;
    border-radius: 8px;
    background: #fff;
    outline: none;
    cursor: pointer;
    transition: border-color 0.2s ease;
    -webkit-appearance: none;
    appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%236b7280' stroke-width='2' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 12px center;
    padding-right: 36px;
}

.faq-cs-plan-select:focus {
    border-color: #22c55e;
    box-shadow: 0 0 0 3px rgba(34, 197, 94, 0.1);
}

/* Yes/No buttons */
.faq-cs-buttons {
    display: flex;
    gap: 12px;
}

.faq-cs-btn {
    flex: 1;
    padding: 14px 20px;
    font-size: 1rem;
    font-weight: 600;
    border: 2px solid #d1d5db;
    border-radius: 10px;
    background: #fff;
    color: #6b7280;
    cursor: pointer;
    transition: all 0.2s ease;
    text-align: center;
}

.faq-cs-btn:hover {
    border-color: #9ca3af;
    background: #f9fafb;
}

.faq-cs-btn-yes.selected {
    border-color: #16a34a;
    border-width: 2.5px;
    background: #dcfce7;
    color: #14532d;
    box-shadow: 0 0 0 3px rgba(34, 197, 94, 0.2);
}

.faq-cs-btn-no.selected {
    border-color: #dc2626;
    border-width: 2.5px;
    background: #fee2e2;
    color: #7f1d1d;
    box-shadow: 0 0 0 3px rgba(239, 68, 68, 0.2);
}

/* Submit button */
.faq-cs-submit {
    align-self: flex-start;
    padding: 10px 28px;
    font-size: 0.95rem;
    font-weight: 600;
    border: none;
    border-radius: 8px;
    background: #22c55e;
    color: #fff;
    cursor: pointer;
    transition: background 0.2s ease, opacity 0.2s ease, transform 0.15s ease;
}

.faq-cs-submit:hover:not(:disabled) {
    background: #16a34a;
    transform: translateY(-1px);
}

.faq-cs-submit:disabled {
    opacity: 0.5;
    cursor: not-allowed;
}

/* Error message */
.faq-cs-error {
    color: #ef4444;
    font-size: 0.85rem;
    margin: 0;
}

/* Success state */
.faq-cs-success p {
    margin: 0;
    padding: 16px;
    background: #f0fdf4;
    border: 1px solid #bbf7d0;
    border-radius: 10px;
    color: #166534;
    font-size: 0.95rem;
    line-height: 1.5;
}

/* ---- Responsive ---- */
@media (max-width: 768px) {
    .faq-cs-buttons {
        flex-direction: column;
        gap: 8px;
    }

    .faq-cs-btn {
        padding: 16px 20px;
    }

    .faq-cs-submit {
        width: 100%;
        text-align: center;
    }
}

/* =========================================================================
   Persona-Tabbed CTA Panel
   ========================================================================= */

.eh-cta-panel {
    display: flex;
    flex-direction: column;
    border: none;
    border-radius: 14px;
    overflow: hidden;
    box-shadow:
        0 0 0 1px #E2E8E5,
        0 2px 8px rgba(27, 107, 74, 0.06),
        0 12px 40px -4px rgba(27, 107, 74, 0.16);
    background: #FAFBFA;
    min-width: 110%;
}

.eh-cta-panel::before {
    content: '';
    display: block;
    height: 4px;
    background: linear-gradient(90deg, #1B6B4A 0%, #2A9D6E 50%, #1B6B4A 100%);
    border-radius: 14px 14px 0 0;
}

/* Top Headline — "Get Started" */
.eh-cta-top-headline {
    padding: 20px 24px 0;
    font-size: 28px;
    font-weight: 800;
    color: #1B6B4A;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    line-height: 1;
    text-align: center;
}

/* Tab Bar — iOS-style segmented control */
.eh-cta-tabs {
    display: flex;
    gap: 4px;
    margin: 16px 20px 0;
    padding: 4px;
    background: #F0F2F1;
    border-radius: 12px;
}

.eh-cta-tab {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 12px 14px;
    border: none;
    background: transparent;
    color: #6B7C74;
    font-size: 17px;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.2s ease;
    line-height: 1;
    border-radius: 9px;
}

.eh-cta-tab.active {
    background: #FFFFFF;
    color: #1B6B4A;
    font-weight: 700;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1), 0 1px 2px rgba(0, 0, 0, 0.06);
}

.eh-cta-tab:hover:not(.active) {
    background: rgba(255, 255, 255, 0.5);
    color: #4A5D54;
}

.eh-cta-tab svg {
    flex-shrink: 0;
}

/* Tab Content Panels */
.eh-cta-content {
    display: none;
    padding: 36px 28px;
    flex: 1;
    flex-direction: column;
    justify-content: center;
    background: #FFFFFF;
}

.eh-cta-content.active {
    display: flex;
}

/* Headline + Subtitle */
.eh-cta-headline {
    font-size: 28px;
    font-weight: 700;
    color: #1A1A1A;
    margin: 0;
    letter-spacing: -0.03em;
    line-height: 1.15;
}

.eh-cta-subtitle {
    font-size: 15px;
    color: #5F6B66;
    margin: 8px 0 0;
    line-height: 1.5;
}

/* Nudge Banner */
.eh-cta-nudge {
    display: flex;
    align-items: center;
    gap: 7px;
    margin: 20px 0 22px;
    padding: 12px 16px;
    background: #E8F5EE;
    border-radius: 8px;
    border-left: 3px solid #1B6B4A;
    font-size: 14px;
    font-weight: 600;
    color: #1B6B4A;
}

.eh-cta-nudge svg {
    flex-shrink: 0;
}

/* CTA Buttons */
.eh-cta-btn {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    padding: 18px 24px;
    border-radius: 10px;
    font-size: 17px;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.2s ease;
    line-height: 1.2;
    border: none;
}

.eh-cta-btn+.eh-cta-btn {
    margin-top: 14px;
}

.eh-cta-btn-left {
    display: flex;
    align-items: center;
    gap: 10px;
}

.eh-cta-btn-left svg,
.eh-cta-btn>svg {
    flex-shrink: 0;
}

/* Primary Button (filled green) */
.eh-cta-btn-primary {
    background: #1B6B4A;
    color: #FFFFFF;
    padding: 18px 24px;
    margin-top: 28px;
    font-size: 17px;
}

.eh-cta-btn-primary:hover {
    background: #145438;
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(27, 107, 74, 0.25);
}

/* Secondary Button (outlined green) */
.eh-cta-btn-secondary {
    background: transparent;
    color: #1B6B4A;
    border: 1.5px solid #1B6B4A;
}

.eh-cta-btn-secondary:hover {
    background: #E8F5EE;
}

/* Trust Badge */
.eh-cta-trust {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    font-size: 12px;
    color: #8E9A95;
    margin-top: 20px;
    padding-top: 16px;
    border-top: 1px solid #F0F2F1;
    letter-spacing: 0.2px;
}

.eh-cta-trust svg {
    flex-shrink: 0;
    color: #1B6B4A;
}

/* Remove the old glow animation from .place-sidebar */
.place-sidebar {
    animation: none;
    box-shadow: none;
}

/* =========================================================================
   Mobile Sticky Bar (≤768px)
   ========================================================================= */

.eh-mobile-sticky-bar {
    display: none;
    /* Hidden on desktop */
}

@media (max-width: 768px) {

    /* Hide desktop CTA panel on mobile */
    .place-sidebar .eh-cta-panel {
        display: none;
    }
}

/* At tablet widths the sidebar stacks full-width; cap the panel so it doesn't overflow */
@media (max-width: 1024px) {
    .place-sidebar .eh-cta-panel {
        min-width: 100%;
    }

    .place-sidebar {
        padding-left: 16px;
        padding-right: 16px;
    }

    /* Also hide the sidebar border treatment on mobile since we have the sticky bar */
    .place-sidebar {
        border-top: none;
        border-bottom: none;
        margin: 0;
        padding: 0;
    }

    /* Show mobile sticky bar */
    .eh-mobile-sticky-bar {
        display: flex;
        align-items: center;
        gap: 10px;
        position: fixed;
        bottom: 0;
        left: 0;
        right: 0;
        z-index: 200;
        background: #FFFFFF;
        border-top: 1px solid #E2E8E5;
        padding: 12px 16px;
        box-shadow: 0 -4px 20px rgba(27, 107, 74, 0.08);
    }

    .eh-mobile-btn {
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 8px;
        border-radius: 10px;
        font-weight: 600;
        cursor: pointer;
        transition: all 0.2s ease;
        border: none;
        line-height: 1;
    }

    .eh-mobile-btn-primary {
        flex: 1;
        padding: 14px 16px;
        background: #1B6B4A;
        color: #FFFFFF;
        font-size: 15px;
    }

    .eh-mobile-btn-primary:hover {
        background: #145438;
    }

    .eh-mobile-btn-icon {
        width: 48px;
        height: 48px;
        flex-shrink: 0;
        padding: 0;
        background: transparent;
        color: #1B6B4A;
        border: 1.5px solid #1B6B4A;
    }

    .eh-mobile-btn-icon:hover {
        background: #E8F5EE;
    }

    /* Add bottom padding to page content so it's not hidden behind sticky bar */
    .place-single-container {
        padding-bottom: 80px;
    }
}

/* ==========================================================================
   How It Works Strip
   ========================================================================== */
.eh-how-it-works {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
    padding: 28px 32px;
    margin: 2rem auto 0;
    max-width: 1140px;
    border-top: 1px solid #E2E8E5;
    border-bottom: 1px solid #E2E8E5;
}

.eh-how-it-works-step {
    text-align: center;
}

.eh-how-it-works-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border-radius: 10px;
    background: #E8F5EE;
    color: #1B6B4A;
    margin-bottom: 10px;
}

.eh-how-it-works-title {
    font-size: 15px;
    font-weight: 600;
    color: #1A1A1A;
    margin: 0 0 4px;
}

.eh-how-it-works-desc {
    font-size: 13px;
    color: #5F6B66;
    line-height: 1.45;
    margin: 0;
}

@media (max-width: 768px) {
    .eh-how-it-works {
        grid-template-columns: 1fr;
        gap: 16px;
        padding: 20px 16px;
    }

    .eh-how-it-works-step {
        display: flex;
        align-items: flex-start;
        gap: 14px;
        text-align: left;
    }

    .eh-how-it-works-icon {
        flex-shrink: 0;
        margin-bottom: 0;
    }
}

/* ==========================================================================
   Clinic Rating (below hero)
   ========================================================================== */
/* Hero status row: open/closed (left) + rating (right) */
.eh-hero-status-row {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-top: 10px;
    margin-bottom: 4px;
}

.eh-clinic-rating {
    display: flex;
    align-items: center;
    gap: 8px;
}

.eh-stars {
    display: flex;
    gap: 2px;
}

.eh-rating-score {
    font-size: 15px;
    font-weight: 600;
    color: #1A1A1A;
}

.eh-rating-count {
    font-size: 14px;
    color: #5F6B66;
}

.eh-rating-count a {
    color: #1B6B4A;
    text-decoration: none;
}

.eh-rating-count a:hover {
    text-decoration: underline;
}

/* ==========================================================================
   Insurance Search
   ========================================================================== */
.eh-insurance-search {
    margin-bottom: 16px;
}

.eh-insurance-search-input {
    width: 100%;
    padding: 10px 14px;
    border: 1px solid #E2E8E5;
    border-radius: 8px;
    font-size: 14px;
    font-family: inherit;
    color: #1A1A1A;
    background: #FFFFFF;
    outline: none;
    transition: border-color 0.15s ease;
    box-sizing: border-box;
}

.eh-insurance-search-input::placeholder {
    color: #8E9A95;
}

.eh-insurance-search-input:focus {
    border-color: #1B6B4A;
    box-shadow: 0 0 0 3px rgba(27, 107, 74, 0.1);
}

.eh-insurance-no-results {
    font-size: 14px;
    color: #5F6B66;
    padding: 16px 0;
    line-height: 1.5;
}

.eh-insurance-no-results a {
    color: #1B6B4A;
    text-decoration: none;
    font-weight: 500;
}

.eh-insurance-no-results a:hover {
    text-decoration: underline;
}
/* ================================================================== */

/* ================================================================== */
/* Accreditations Section                                             */
/* Sits between the How-It-Works strip and the FAQ section, full      */
/* width on the page background (no card). Each accrediting body      */
/* renders as a <details> disclosure: a summary row with badge +      */
/* name + count, expanding to the per-program list.                   */
/* ================================================================== */
.clinic-accreditations {
    margin: 1.75rem auto 1.25rem;
    padding: 0 24px;
    max-width: 1200px;
    box-sizing: border-box;
    background: transparent;
}

.clinic-accreditations h3 {
    margin: 0;
    font-size: 1.5rem;
    font-weight: 700;
    color: #1a1a1a;
    line-height: 1.25;
}

.clinic-accreditations-subhead {
    margin: 4px 0 1.1rem;
    font-size: 0.925rem;
    color: #6b7280;
}

.clinic-accreditations-bodies {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

/* --- Per-body disclosure --------------------------------------- */
.clinic-accreditation-body {
    border: 1px solid #e3e8e3;
    border-radius: 10px;
    background: rgba(255, 255, 255, 0.55);
    transition: background-color 150ms ease, border-color 150ms ease;
}

.clinic-accreditation-body[open] {
    background: rgba(255, 255, 255, 0.85);
    border-color: #d6e0d6;
}

.clinic-accreditation-body-summary {
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    gap: 0.875rem;
    padding: 0.85rem 1rem;
    cursor: pointer;
    list-style: none;
    border-radius: 10px;
}

.clinic-accreditation-body-summary::-webkit-details-marker {
    display: none;
}

.clinic-accreditation-body-summary:hover {
    background-color: rgba(15, 125, 64, 0.04);
}

.clinic-accreditation-body-summary:focus-visible {
    outline: 2px solid #1B6B4A;
    outline-offset: 2px;
}

.clinic-accreditation-body-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 44px;
    height: 32px;
    padding: 0 10px;
    font-size: 0.75rem;
    font-weight: 800;
    letter-spacing: 0.06em;
    color: #1e40af;
    background: #eff6ff;
    border: 1px solid #bfdbfe;
    border-radius: 8px;
    line-height: 1;
}

.clinic-accreditation-body-text {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}

.clinic-accreditation-body-name {
    font-size: 1rem;
    font-weight: 600;
    color: #1f2937;
    line-height: 1.3;
}

.clinic-accreditation-body-meta {
    font-size: 0.85rem;
    color: #6b7280;
    line-height: 1.3;
}

.clinic-accreditation-chevron {
    color: #6b7280;
    transition: transform 200ms ease;
    flex-shrink: 0;
}

.clinic-accreditation-body[open] .clinic-accreditation-chevron {
    transform: rotate(180deg);
}

/* --- Programs list (revealed on expand) ------------------------ */
.clinic-accreditation-body .accreditations-list {
    list-style: none;
    padding: 0.25rem 1rem 1rem 1rem;
    margin: 0;
    border-top: 1px solid #eef1ee;
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: 0.5rem 2rem;
}

.accreditation-item {
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    gap: 0.55rem 0.85rem;
    padding: 0.5rem 0;
    font-size: 0.95rem;
    color: #1f2937;
    line-height: 1.4;
}

.accreditation-icon {
    color: #047727;
    flex-shrink: 0;
}

.accreditation-item.is-expired {
    opacity: 0.55;
}

.accreditation-item.is-expired .accreditation-icon {
    color: #9ca3af;
}

.accreditation-name {
    font-weight: 500;
    color: #1f2937;
    line-height: 1.35;
}

.accreditation-status {
    font-size: 0.825rem;
    color: #6b7280;
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
}

/* --- Disclaimer footer ----------------------------------------- */
.accreditations-disclaimer {
    font-size: 0.8rem;
    color: #888;
    margin: 1rem 0 0;
}

.accreditations-disclaimer a {
    color: #555;
    text-decoration: none;
}

.accreditations-disclaimer a:hover {
    text-decoration: underline;
    color: #1B6B4A;
}

/* SR-only utility scoped to this section. */
.clinic-accreditations .sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

/* --- Mobile ---------------------------------------------------- */
@media (max-width: 768px) {
    .clinic-accreditations {
        padding: 0 16px;
    }

    .clinic-accreditation-body-summary {
        padding: 0.75rem 0.85rem;
        gap: 0.7rem;
    }

    .clinic-accreditation-body .accreditations-list {
        grid-template-columns: 1fr;
        padding: 0.25rem 0.85rem 0.85rem;
        gap: 0.4rem;
    }

    .accreditation-item {
        grid-template-columns: auto 1fr;
        grid-template-rows: auto auto;
        column-gap: 0.6rem;
        row-gap: 0.15rem;
    }

    .accreditation-icon {
        grid-row: 1 / span 2;
        align-self: start;
        margin-top: 4px;
    }

    .accreditation-name {
        grid-column: 2;
        grid-row: 1;
    }

    .accreditation-status {
        grid-column: 2;
        grid-row: 2;
        justify-self: start;
    }
}
