/*
 * Directory Goo - Company Owners Reviews V1
 * Homepage reviews presentation only.
 *
 * Preserves:
 * - CMS section title/description
 * - backend companyReviews data
 * - company avatar/logo
 * - company name
 * - review content
 * - /owners View All navigation
 */

/* =========================================================
   REVIEWS GRID
   ========================================================= */

.owners-review {
    position: relative;
    max-width: 1180px;
    margin-left: auto !important;
    margin-right: auto !important;
    justify-content: center;
    row-gap: 24px;
}

/*
 * Remove Bootstrap bottom spacing from individual columns.
 * Grid gap controls the spacing instead.
 */
.owners-review > [class*="col-"] {
    margin-bottom: 0 !important;
    display: flex;
}


/* =========================================================
   REVIEW CARD
   ========================================================= */

.owners-review .owner-block {
    position: relative;
    width: 100%;
    min-height: 290px;

    padding: 26px 26px 24px !important;

    background: #ffffff !important;
    border: 1px solid #e4ebe7 !important;
    border-radius: 16px !important;

    box-shadow:
        0 10px 28px rgba(16, 45, 30, 0.06),
        0 2px 7px rgba(16, 45, 30, 0.035);

    overflow: hidden;

    transition:
        transform 0.22s ease,
        box-shadow 0.22s ease,
        border-color 0.22s ease;
}


/* Green top accent */

.owners-review .owner-block::before {
    content: "";
    position: absolute;

    top: 0;
    left: 24px;

    width: 56px;
    height: 4px;

    background: #17ad4a;
    border-radius: 0 0 8px 8px;
}


/* Quote decoration */

.owners-review .owner-block::after {
    content: "\201C";

    position: absolute;

    top: 17px;
    right: 22px;

    color: rgba(22, 170, 72, 0.11);

    font-family: Georgia, "Times New Roman", serif;
    font-size: 78px;
    font-weight: 700;
    line-height: 1;

    pointer-events: none;
}


/* Desktop hover */

@media (hover: hover) and (pointer: fine) {

    .owners-review .owner-block:hover {
        transform: translateY(-5px);

        border-color: rgba(22, 170, 72, 0.28) !important;

        box-shadow:
            0 18px 40px rgba(16, 45, 30, 0.10),
            0 5px 14px rgba(16, 45, 30, 0.05);
    }

}


/* =========================================================
   COMPANY HEADER
   ========================================================= */

.owners-review .owner-img-name {
    position: relative;
    z-index: 1;

    padding-bottom: 16px !important;
    margin-bottom: 17px !important;

    border-bottom: 1px solid #edf1ef;
}


/* Avatar / logo */

.owners-review .owner-img {
    flex: 0 0 auto;

    width: 52px !important;
    height: 52px !important;

    object-fit: cover;

    background: #f5f8f6;

    border: 1px solid #e4ebe7;
    border-radius: 50%;

    padding: 2px;

    box-shadow: 0 3px 9px rgba(20, 55, 35, 0.08);
}


/* Company name */

.owners-review .owner-img-name h6 {
    max-width: 225px;

    color: #202b26 !important;

    font-size: 15px !important;
    font-weight: 700 !important;
    line-height: 1.3 !important;

    margin-bottom: 3px !important;
}


/* Wrote a review */

.owners-review .owner-img-name small {
    color: #7c8881 !important;

    font-size: 12.5px !important;
    line-height: 1.35;
}


/* =========================================================
   REVIEW CONTENT
   ========================================================= */

.owners-review .owner-review {
    position: relative;
    z-index: 1;

    color: #59645e !important;

    font-size: 14.5px !important;
    line-height: 1.62 !important;

    overflow-wrap: anywhere;
}


/* =========================================================
   EXISTING GREEN BAR
   ========================================================= */

.owners-review .green-bar {
    width: 58px !important;
    height: 4px !important;

    min-height: 4px;

    margin: 24px auto 0 !important;

    background: #17ad4a !important;

    border: 0 !important;
    border-radius: 50px !important;
}


/* =========================================================
   VIEW ALL BUTTON
   Only target the button directly following owners-review.
   ========================================================= */

.owners-review + .col-sm-12 .view-all-btn {
    min-width: 170px;

    margin-top: 8px;

    padding: 11px 24px !important;

    background: #16a947 !important;
    border: 1px solid #16a947 !important;
    border-radius: 9px !important;

    color: #ffffff !important;

    font-size: 14px !important;
    font-weight: 600 !important;

    box-shadow: 0 5px 14px rgba(22, 169, 71, 0.17);

    transition:
        transform 0.2s ease,
        background-color 0.2s ease,
        box-shadow 0.2s ease;
}


.owners-review + .col-sm-12 .view-all-btn:hover {
    background: #128c3c !important;
    border-color: #128c3c !important;

    color: #ffffff !important;

    transform: translateY(-2px);

    box-shadow: 0 8px 18px rgba(22, 169, 71, 0.22);
}


/* =========================================================
   DESKTOP
   3 cards per row
   ========================================================= */

@media (min-width: 1200px) {

    .owners-review > .col-xl-4 {
        flex: 0 0 33.333333% !important;
        width: 33.333333% !important;
        max-width: 33.333333% !important;
    }

}


/* =========================================================
   TABLET
   2 cards per row
   ========================================================= */

@media (min-width: 768px) and (max-width: 1199.98px) {

    .owners-review {
        max-width: 900px;
        row-gap: 20px;
    }

    .owners-review > .col-md-6 {
        flex: 0 0 50% !important;
        width: 50% !important;
        max-width: 50% !important;
    }

    .owners-review .owner-block {
        min-height: 280px;

        padding: 24px 22px 22px !important;
    }

}


/* =========================================================
   MOBILE
   1 card per row
   ========================================================= */

@media (max-width: 767.98px) {

    .owners-review {
        width: 100%;

        margin-left: 0 !important;
        margin-right: 0 !important;

        row-gap: 15px;
    }

    .owners-review > [class*="col-"] {
        flex: 0 0 100% !important;

        width: 100% !important;
        max-width: 100% !important;

        padding-left: 12px !important;
        padding-right: 12px !important;
    }

    .owners-review .owner-block {
        min-height: 0;

        padding: 22px 20px 20px !important;

        border-radius: 14px !important;
    }

    .owners-review .owner-block::before {
        left: 20px;
    }

    .owners-review .owner-block::after {
        top: 15px;
        right: 18px;

        font-size: 66px;
    }

    .owners-review .owner-img {
        width: 48px !important;
        height: 48px !important;
    }

    .owners-review .owner-img-name {
        padding-bottom: 14px !important;
        margin-bottom: 14px !important;
    }

    .owners-review .owner-img-name h6 {
        max-width: calc(100vw - 145px);

        font-size: 14.5px !important;
    }

    .owners-review .owner-review {
        font-size: 14px !important;
        line-height: 1.58 !important;
    }

    .owners-review .green-bar {
        margin-top: 20px !important;
    }

    .owners-review + .col-sm-12 .view-all-btn {
        width: auto;
        min-width: 165px;

        margin-top: 5px;

        padding: 11px 22px !important;
    }

}


/* =========================================================
   SMALL MOBILE
   ========================================================= */

@media (max-width: 420px) {

    .owners-review > [class*="col-"] {
        padding-left: 8px !important;
        padding-right: 8px !important;
    }

    .owners-review .owner-block {
        padding: 20px 17px 18px !important;
    }

    .owners-review .owner-block::before {
        left: 17px;
    }

    .owners-review .owner-img {
        width: 45px !important;
        height: 45px !important;
    }

    .owners-review .owner-review {
        font-size: 13.5px !important;
    }

}


/* =========================================================
   ACCESSIBILITY
   ========================================================= */

@media (prefers-reduced-motion: reduce) {

    .owners-review .owner-block,
    .owners-review + .col-sm-12 .view-all-btn {
        transition: none !important;
    }

}

/* =========================================================
   DIRECTORY GOO — REVIEWS V2
   Mobile responsive correction
   Desktop + tablet V1 design preserved
   ========================================================= */

@media (max-width: 575.98px) {

    /*
     * The original application forces .owners-review into
     * a horizontal no-wrap scroller below 575px.
     * Reviews V2 restores a normal vertical mobile layout.
     */
    .row.owners-review {
        display: flex !important;
        flex-wrap: wrap !important;
        overflow: visible !important;
        overflow-x: visible !important;
        overflow-y: visible !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
        width: 100% !important;
    }

    /*
     * React review component:
     * col-xl-4 col-md-6 col-sm-6 col-11
     *
     * Override Bootstrap col-11 only inside the review row.
     */
    .row.owners-review > .col-11 {
        flex: 0 0 100% !important;
        width: 100% !important;
        max-width: 100% !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
        padding-left: 8px !important;
        padding-right: 8px !important;
    }

    /* Review cards */
    .row.owners-review .owner-block {
        width: 100% !important;
        min-width: 0 !important;
        max-width: 100% !important;
        height: auto !important;
        min-height: 0 !important;
        padding: 16px !important;
        margin: 0 !important;
        border-radius: 12px !important;
        overflow: hidden !important;
    }

    /* Company header */
    .row.owners-review .owner-img-name {
        width: 100% !important;
        min-width: 0 !important;
        padding-bottom: 11px !important;
        margin-bottom: 12px !important;
    }

    .row.owners-review .owner-img {
        width: 44px !important;
        height: 44px !important;
        min-width: 44px !important;
        flex: 0 0 44px !important;
    }

    .row.owners-review .owner-img-name > div {
        min-width: 0 !important;
        flex: 1 1 auto !important;
    }

    .row.owners-review .owner-img-name h6 {
        white-space: normal !important;
        overflow: visible !important;
        text-overflow: unset !important;
        overflow-wrap: anywhere !important;
        word-break: normal !important;
        line-height: 1.3 !important;
        margin-right: 28px !important;
    }

    /* Review text */
    .row.owners-review .owner-review {
        white-space: normal !important;
        overflow: visible !important;
        text-overflow: unset !important;
        overflow-wrap: break-word !important;
        word-break: normal !important;
        line-height: 1.55 !important;
        height: auto !important;
        max-height: none !important;
        display: block !important;
    }

    /*
     * Remove the decorative bottom bar on phones.
     * The cards are cleaner and considerably shorter.
     */
    .row.owners-review .green-bar {
        display: none !important;
    }

    /*
     * Section heading area.
     * It is the block immediately preceding .owners-review.
     */
    .row.owners-review + .col-sm-12 {
        width: 100% !important;
    }

    /* View All */
    .row.owners-review + .col-sm-12 .view-all-btn {
        padding: 10px 30px !important;
        min-width: 118px !important;
        border-radius: 7px !important;
    }
}

/* Extra polish for narrow phones */
@media (max-width: 430px) {

    .row.owners-review > .col-11 {
        padding-left: 5px !important;
        padding-right: 5px !important;
        margin-bottom: 12px !important;
    }

    .row.owners-review .owner-block {
        padding: 14px !important;
    }

    .row.owners-review .owner-img {
        width: 42px !important;
        height: 42px !important;
        min-width: 42px !important;
        flex-basis: 42px !important;
    }

    .row.owners-review .owner-review {
        font-size: 14px !important;
        line-height: 1.5 !important;
    }
}


/* =========================================================
   DIRECTORY GOO REVIEWS V3
   Tablet spacing + mobile single-card swipe
   ========================================================= */

/* Tablet: keep 2 + 1 layout and add breathing room below header */
@media (min-width: 768px) and (max-width: 1199.98px) {
  .owners-review {
    row-gap: 20px;
  }

  .owners-review + .col-sm-12 {
    margin-top: 4px;
  }

  .owners-review > .col-xl-4.col-md-6:nth-child(3) {
    margin-left: auto;
    margin-right: auto;
  }
}

/* Mobile: one review card at a time, swipe horizontally */
@media (max-width: 767.98px) {
  .row.owners-review {
    display: flex !important;
    flex-wrap: nowrap !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    gap: 14px;
    scroll-snap-type: x mandatory;
    scroll-behavior: smooth;
    -webkit-overflow-scrolling: touch;
    padding: 4px 14px 10px;
    margin-left: -14px;
    margin-right: -14px;
    scrollbar-width: none;
  }

  .row.owners-review::-webkit-scrollbar {
    display: none;
  }

  .row.owners-review > [class*="col-"] {
    flex: 0 0 calc(100% - 28px) !important;
    width: calc(100% - 28px) !important;
    max-width: calc(100% - 28px) !important;
    margin-bottom: 0 !important;
    scroll-snap-align: center;
  }

  .row.owners-review .owner-block {
    min-height: 0 !important;
    height: 100%;
    padding: 18px !important;
  }

  .row.owners-review .owner-review {
    overflow-wrap: anywhere;
    word-break: normal;
  }

  .row.owners-review + .col-sm-12 {
    margin-top: 10px;
  }
}

/* =========================================================
   DIRECTORY GOO REVIEWS V3.1
   Tablet review heading clearance
   ========================================================= */

@media (min-width: 768px) and (max-width: 1199.98px) {

  /*
   * The CMS review heading block immediately precedes
   * .owners-review in the homepage React structure.
   * Give that heading block safe clearance from the header.
   */
  .owners-review > .col-xl-4:first-child {
    /* intentionally untouched */
  }

  .owners-review {
    clear: both;
  }

  /*
   * Target the Bootstrap heading container that immediately
   * precedes the reviews row without changing CMS content.
   */
  .col-xxl-5.col-xl-6.col-lg-7.col-md-9.mt-sm-5.mt-3.mb-sm-4.mb-3.mx-auto.text-center {
    position: relative;
    z-index: 1;
    padding-top: 18px;
  }
}
