/**
 * Sedrux Reviews Styles
 * Matches the Laravel reference design for WooCommerce native reviews.
 */

/* ========================================
   1. Reviews Section Wrapper
   ======================================== */

.woocommerce-Reviews {
    font-family: var(--sedrux-font-body);
}

.woocommerce-Reviews-title,
#reviews #comments h2,
#reviews .woocommerce-Reviews-title {
    font-family: var(--sedrux-font-heading);
    font-size: var(--sedrux-font-size-xl);
    font-weight: 700;
    color: var(--sedrux-color-gray-900);
    margin-bottom: var(--sedrux-spacing-lg);
}

/* ========================================
   2. Review Summary (average + bars)
   ======================================== */

.woocommerce-product-rating {
    display: flex;
    align-items: center;
    gap: var(--sedrux-spacing-sm);
    margin-bottom: var(--sedrux-spacing-lg);
}

/* Summary block shown via woocommerce_review_rating_summary hook */
.sedrux-reviews-summary {
    background-color: var(--sedrux-color-white);
    border: 1px solid var(--sedrux-color-gray-200);
    border-radius: var(--sedrux-radius-xl);
    padding: var(--sedrux-spacing-lg);
    box-shadow: var(--sedrux-shadow-sm);
    display: flex;
    align-items: center;
    gap: var(--sedrux-spacing-xl);
    margin-bottom: var(--sedrux-spacing-xl);
}

.sedrux-reviews-summary__average {
    text-align: center;
    flex-shrink: 0;
}

.sedrux-reviews-summary__number {
    font-size: var(--sedrux-font-size-4xl);
    font-weight: 700;
    color: var(--sedrux-color-gray-900);
    line-height: 1;
}

.sedrux-reviews-summary__stars {
    display: flex;
    gap: 2px;
    justify-content: center;
    margin-top: var(--sedrux-spacing-xs);
}

.sedrux-reviews-summary__count {
    font-size: var(--sedrux-font-size-xs);
    color: var(--sedrux-color-gray-500);
    margin-top: var(--sedrux-spacing-xs);
}

.sedrux-reviews-summary__bars {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: var(--sedrux-spacing-xs);
}

.sedrux-reviews-summary__bar-row {
    display: flex;
    align-items: center;
    gap: var(--sedrux-spacing-sm);
    font-size: var(--sedrux-font-size-xs);
    color: var(--sedrux-color-gray-600);
}

.sedrux-reviews-summary__bar-label {
    width: 3.5rem;
    text-align: right;
    white-space: nowrap;
}

.sedrux-reviews-summary__bar-track {
    flex: 1;
    height: 6px;
    background-color: var(--sedrux-color-gray-200);
    border-radius: var(--sedrux-radius-full);
    overflow: hidden;
}

.sedrux-reviews-summary__bar-fill {
    height: 100%;
    background-color: var(--sedrux-color-primary);
    border-radius: var(--sedrux-radius-full);
    transition: width var(--sedrux-transition-slow);
}

.sedrux-reviews-summary__bar-count {
    width: 1.5rem;
    text-align: left;
}

/* ========================================
   3. Review List
   ======================================== */

#comments.woocommerce-Reviews-comments,
.woocommerce-Reviews #comments {
    margin-bottom: var(--sedrux-spacing-xl);
}

ol.commentlist,
.commentlist {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: var(--sedrux-spacing-md);
}

/* ========================================
   4. Review Card
   ======================================== */

.sedrux-review-item {
    list-style: none;
}

.sedrux-review-card {
    background-color: var(--sedrux-color-white);
    border: 1px solid var(--sedrux-color-gray-200);
    border-radius: var(--sedrux-radius-xl);
    padding: var(--sedrux-spacing-lg);
    box-shadow: var(--sedrux-shadow-sm);
    transition: box-shadow var(--sedrux-transition-base);
}

.sedrux-review-card:hover {
    box-shadow: var(--sedrux-shadow-md);
}

/* Header: avatar + meta */
.sedrux-review-header {
    display: flex;
    align-items: flex-start;
    gap: var(--sedrux-spacing-md);
    margin-bottom: var(--sedrux-spacing-md);
}

/* Avatar */
.sedrux-review-avatar {
    flex-shrink: 0;
}

.sedrux-avatar,
.sedrux-review-avatar img {
    width: 48px !important;
    height: 48px !important;
    border-radius: 50% !important;
    object-fit: cover;
    border: 2px solid var(--sedrux-color-gray-100);
}

/* Meta block */
.sedrux-review-meta {
    flex: 1;
    min-width: 0;
}

.sedrux-review-meta-top {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: var(--sedrux-spacing-sm);
    margin-bottom: 0.25rem;
}

.sedrux-review-author {
    font-size: var(--sedrux-font-size-sm);
    font-weight: 600;
    color: var(--sedrux-color-gray-900);
}

/* Verified badge */
.sedrux-verified-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
}

.sedrux-verified-icon {
    width: 0.875rem;
    height: 0.875rem;
    flex-shrink: 0;
}

/* Meta bottom: stars + date */
.sedrux-review-meta-bottom {
    display: flex;
    align-items: center;
    gap: var(--sedrux-spacing-sm);
    flex-wrap: wrap;
}

/* ========================================
   5. Star Rating (display)
   ======================================== */

.sedrux-star-rating {
    display: inline-flex;
    gap: 2px;
    align-items: center;
}

.sedrux-star {
    width: 1rem;
    height: 1rem;
    flex-shrink: 0;
}

.sedrux-star--filled {
    fill: var(--sedrux-color-primary);
    color: var(--sedrux-color-primary);
}

.sedrux-star--empty {
    fill: var(--sedrux-color-gray-300);
    color: var(--sedrux-color-gray-300);
}

/* WooCommerce native star output override */
.star-rating {
    overflow: hidden;
    position: relative;
    height: 1em;
    line-height: 1;
    font-size: 1rem;
    width: 5.4em;
    font-family: 'star';
}

.star-rating::before {
    content: '\73\73\73\73\73';
    color: var(--sedrux-color-gray-300);
    float: left;
    top: 0;
    left: 0;
    position: absolute;
}

.star-rating span {
    overflow: hidden;
    float: left;
    top: 0;
    left: 0;
    position: absolute;
    padding-top: 1.5em;
}

.star-rating span::before {
    content: '\73\73\73\73\73';
    top: 0;
    position: absolute;
    left: 0;
    color: var(--sedrux-color-primary);
}

/* ========================================
   6. Review Date
   ======================================== */

.sedrux-review-date {
    font-size: var(--sedrux-font-size-xs);
    color: var(--sedrux-color-gray-400);
}

/* ========================================
   7. Review Body Text
   ======================================== */

.sedrux-review-body {
    font-size: var(--sedrux-font-size-sm);
    color: var(--sedrux-color-gray-700);
    line-height: 1.7;
}

.sedrux-review-body p {
    margin: 0;
}

.sedrux-review-body p + p {
    margin-top: 0.5rem;
}

/* ========================================
   8. No Reviews Message
   ======================================== */

.woocommerce-noreviews {
    font-size: var(--sedrux-font-size-sm);
    color: var(--sedrux-color-gray-500);
    text-align: center;
    padding: var(--sedrux-spacing-xl) 0;
}

/* ========================================
   9. Review Form
   ======================================== */

#review_form_wrapper,
#review_form {
    margin-top: var(--sedrux-spacing-xl);
}

.sedrux-review-login {
    align-items: center;
    background: var(--sedrux-color-white);
    border: 1px solid var(--sedrux-color-gray-200);
    border-radius: var(--sedrux-radius-xl);
    box-shadow: var(--sedrux-shadow-sm);
    display: flex;
    gap: var(--sedrux-spacing-md);
    padding: var(--sedrux-spacing-lg);
}

.sedrux-review-login__icon {
    align-items: center;
    background: rgba(244, 41, 24, 0.1);
    border-radius: 50%;
    color: var(--sedrux-color-primary);
    display: inline-flex;
    flex: 0 0 2.75rem;
    height: 2.75rem;
    justify-content: center;
}

.sedrux-review-login__content {
    flex: 1;
    min-width: 0;
}

.sedrux-review-login__content h3 {
    color: var(--sedrux-color-gray-900);
    font-size: var(--sedrux-font-size-base);
    margin: 0 0 0.25rem;
}

.sedrux-review-login__content p {
    color: var(--sedrux-color-gray-500);
    font-size: var(--sedrux-font-size-sm);
    line-height: 1.45;
    margin: 0;
}

.sedrux-review-login__action {
    align-items: center;
    background: var(--sedrux-color-primary);
    border: 1px solid var(--sedrux-color-primary);
    border-radius: var(--sedrux-radius-xl);
    color: var(--sedrux-color-white);
    display: inline-flex;
    flex: 0 0 auto;
    font-size: var(--sedrux-font-size-sm);
    font-weight: 600;
    justify-content: center;
    min-height: 2.75rem;
    padding: 0 var(--sedrux-spacing-md);
    text-decoration: none;
    transition: background-color var(--sedrux-transition-fast), border-color var(--sedrux-transition-fast);
}

.sedrux-review-login__action:hover {
    background: var(--sedrux-color-primary-hover);
    border-color: var(--sedrux-color-primary-hover);
    color: var(--sedrux-color-white);
}

/* The product template's custom reviews shortcode renders #respond after this gate. */
.sedrux-review-access-gate + #respond {
    display: none;
}

@media (max-width: 640px) {
    .sedrux-review-login {
        align-items: flex-start;
        flex-wrap: wrap;
    }

    .sedrux-review-login__action {
        width: 100%;
    }
}

#reply-title,
.comment-reply-title {
    font-family: var(--sedrux-font-heading);
    font-size: var(--sedrux-font-size-lg);
    font-weight: 700;
    color: var(--sedrux-color-gray-900);
    margin-bottom: var(--sedrux-spacing-lg);
    display: block;
}

#commentform,
.comment-form {
    background-color: var(--sedrux-color-white);
    border: 1px solid var(--sedrux-color-gray-200);
    border-radius: var(--sedrux-radius-xl);
    padding: var(--sedrux-spacing-lg);
    box-shadow: var(--sedrux-shadow-sm);
}

/* Form rows */
.comment-form .comment-form-rating,
.comment-form .comment-form-comment,
.comment-form .comment-form-author,
.comment-form .comment-form-email,
.comment-form p {
    margin-bottom: var(--sedrux-spacing-md);
}

.comment-form label {
    display: block;
    font-size: var(--sedrux-font-size-sm);
    font-weight: 500;
    color: var(--sedrux-color-gray-700);
    margin-bottom: var(--sedrux-spacing-xs);
}

/* Text inputs in form */
.comment-form input[type="text"],
.comment-form input[type="email"],
.comment-form input[type="url"] {
    display: block;
    width: 100%;
    height: 2.75rem;
    padding: 0 var(--sedrux-spacing-md);
    font-family: var(--sedrux-font-body);
    font-size: var(--sedrux-font-size-sm);
    color: var(--sedrux-color-gray-900);
    background-color: var(--sedrux-color-white);
    border: 1px solid var(--sedrux-color-gray-200);
    border-radius: var(--sedrux-radius-xl);
    outline: none;
    transition: border-color var(--sedrux-transition-fast), box-shadow var(--sedrux-transition-fast);
}

.comment-form input[type="text"]:focus,
.comment-form input[type="email"]:focus,
.comment-form input[type="url"]:focus {
    border-color: var(--sedrux-color-primary);
    box-shadow: 0 0 0 3px var(--sedrux-color-primary-light);
}

/* Textarea */
.comment-form textarea,
.comment-form #comment {
    display: block;
    width: 100%;
    min-height: 6rem;
    padding: var(--sedrux-spacing-sm) var(--sedrux-spacing-md);
    font-family: var(--sedrux-font-body);
    font-size: var(--sedrux-font-size-sm);
    color: var(--sedrux-color-gray-900);
    background-color: var(--sedrux-color-white);
    border: 1px solid var(--sedrux-color-gray-200);
    border-radius: var(--sedrux-radius-xl);
    outline: none;
    resize: vertical;
    transition: border-color var(--sedrux-transition-fast), box-shadow var(--sedrux-transition-fast);
}

.comment-form textarea:focus,
.comment-form #comment:focus {
    border-color: var(--sedrux-color-primary);
    box-shadow: 0 0 0 3px var(--sedrux-color-primary-light);
}

/* Submit button */
.comment-form .form-submit,
.form-submit {
    margin-bottom: 0;
}

.comment-form .submit,
#submit,
.form-submit input[type="submit"] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 2.75rem;
    padding: 0 var(--sedrux-spacing-lg);
    font-family: var(--sedrux-font-body);
    font-size: var(--sedrux-font-size-sm);
    font-weight: 600;
    color: var(--sedrux-color-white);
    background-color: var(--sedrux-color-primary);
    border: 1px solid var(--sedrux-color-primary);
    border-radius: var(--sedrux-radius-xl);
    cursor: pointer;
    transition: background-color var(--sedrux-transition-base), border-color var(--sedrux-transition-base);
    outline: none;
    appearance: none;
    -webkit-appearance: none;
}

.comment-form .submit:hover,
#submit:hover,
.form-submit input[type="submit"]:hover {
    background-color: var(--sedrux-color-primary-hover);
    border-color: var(--sedrux-color-primary-hover);
    color: var(--sedrux-color-white);
}

/* ========================================
   10. Interactive Star Rating Selector
   ======================================== */

.sedrux-star-selector {
    display: inline-flex;
    flex-direction: row-reverse;
    gap: 4px;
}

/* Hide the default WooCommerce star inputs visually but keep accessible */
.sedrux-star-selector input[type="radio"] {
    position: absolute;
    opacity: 0;
    width: 0;
    height: 0;
}

.sedrux-star-selector label {
    cursor: pointer;
    font-size: 0; /* hide text */
    margin-bottom: 0;
}

.sedrux-star-selector label svg {
    width: 1.5rem;
    height: 1.5rem;
    fill: var(--sedrux-color-gray-300);
    color: var(--sedrux-color-gray-300);
    transition: fill var(--sedrux-transition-fast), color var(--sedrux-transition-fast);
    pointer-events: none;
}

/* Filled state: hover + checked via CSS sibling selectors (RTL flex trick) */
.sedrux-star-selector input:checked ~ label svg,
.sedrux-star-selector label:hover svg,
.sedrux-star-selector label:hover ~ label svg {
    fill: var(--sedrux-color-primary);
    color: var(--sedrux-color-primary);
}

/* WooCommerce native .stars selector override */
.comment-form-rating .stars {
    display: flex;
    gap: 4px;
    margin-bottom: var(--sedrux-spacing-xs);
}

.comment-form-rating .stars a {
    display: inline-flex;
    align-items: center;
    font-size: 1.5rem;
    line-height: 1;
    color: var(--sedrux-color-gray-300);
    text-decoration: none;
    transition: color var(--sedrux-transition-fast);
}

.comment-form-rating .stars a.active,
.comment-form-rating .stars a:hover {
    color: var(--sedrux-color-primary);
}

.comment-form-rating .stars a::before {
    content: '★';
}

/* ========================================
   11. Logged-out / Must-login notice
   ======================================== */

.woocommerce-Reviews .must-log-in {
    font-size: var(--sedrux-font-size-sm);
    color: var(--sedrux-color-gray-600);
    background-color: var(--sedrux-color-gray-50);
    border: 1px solid var(--sedrux-color-gray-200);
    border-radius: var(--sedrux-radius-xl);
    padding: var(--sedrux-spacing-md) var(--sedrux-spacing-lg);
    margin-top: var(--sedrux-spacing-lg);
}

/* ========================================
   12. Responsive
   ======================================== */

@media (max-width: 639px) {
    .sedrux-review-card {
        padding: var(--sedrux-spacing-md);
    }

    .sedrux-review-header {
        flex-direction: column;
        align-items: flex-start;
        gap: var(--sedrux-spacing-sm);
    }

    .sedrux-reviews-summary {
        flex-direction: column;
        align-items: flex-start;
        gap: var(--sedrux-spacing-md);
    }

    .sedrux-reviews-summary__average {
        text-align: left;
    }

    .sedrux-reviews-summary__stars {
        justify-content: flex-start;
    }

    #commentform,
    .comment-form {
        padding: var(--sedrux-spacing-md);
    }

    .comment-form .submit,
    #submit,
    .form-submit input[type="submit"] {
        width: 100%;
    }
}

/* ========================================
   13. Product Reviews: editorial prototype
   ======================================== */

.sedrux-product-reviews {
    --review-ink: #151515;
    --review-muted: #6d6d6d;
    --review-line: #dfdfdf;
    --review-surface: #ffffff;
    --review-soft: #f8f8f8;
    color: var(--review-ink);
    font-family: var(--sedrux-font-body);
    margin: 0;
    max-width: 1200px;
    padding: 0;
    width: 100%;
}

/* Remove the legacy Elementor heading and its tinted section background. */
.elementor-element-9792c70 {
    background: transparent !important;
}

.elementor-element-9792c70 > .e-con-inner > .elementor-element-4e18462 {
    display: none;
}

.sedrux-product-reviews__heading {
    margin-bottom: 2rem;
}

.sedrux-product-reviews h2,
.sedrux-product-reviews h3,
.sedrux-review-modal h2,
.sedrux-review-modal h3 {
    color: var(--review-ink);
    font-family: var(--sedrux-font-heading);
    letter-spacing: 0;
}

.sedrux-product-reviews h2 {
    font-size: clamp(2rem, 4vw, 3.25rem);
    line-height: 1;
    margin: 0;
}

.sedrux-product-reviews__summary {
    border-bottom: 1px solid var(--review-line);
    display: grid;
    gap: clamp(2rem, 4vw, 4.5rem);
    grid-template-columns: 1.15fr 1fr 1fr;
    padding: 0 0 2.25rem;
}

.sedrux-product-reviews__summary h3 {
    font-family: var(--sedrux-font-body);
    font-size: .875rem;
    font-weight: 700;
    margin: 0 0 .8rem;
}

.sedrux-product-reviews__summary p {
    color: var(--review-muted);
    font-size: .875rem;
    line-height: 1.5;
    margin: 0;
}

.sedrux-product-reviews__rating-bars {
    display: grid;
    gap: .55rem;
    margin-top: 1.15rem;
}

.sedrux-product-reviews__rating-bar {
    align-items: center;
    background: transparent;
    border: 0;
    color: var(--review-muted);
    cursor: pointer;
    display: grid;
    font-family: inherit;
    font-size: .8125rem;
    gap: .75rem;
    grid-template-columns: 4rem 1fr 1rem;
    padding: .15rem 0;
    text-align: left;
}

.sedrux-product-reviews__rating-bar:hover,
.sedrux-product-reviews__rating-bar[aria-pressed="true"] {
    color: var(--review-ink);
}

.sedrux-product-reviews__bar-track {
    background: #f0eeee;
    border-radius: 99px;
    height: .5rem;
    overflow: hidden;
}

.sedrux-product-reviews__bar-track span {
    background: var(--sedrux-color-primary);
    border-radius: inherit;
    display: block;
    height: 100%;
    min-width: 0;
    transition: width .2s ease;
}

.sedrux-product-reviews__rating-bar[aria-pressed="true"] .sedrux-product-reviews__bar-track span {
    background: var(--review-ink);
}

.sedrux-product-reviews__rating-bar strong {
    color: inherit;
    font-size: inherit;
    font-weight: 500;
}

.sedrux-product-reviews__score-line {
    align-items: center;
    display: flex;
    gap: 1.25rem;
    margin: 1.6rem 0 1rem;
}

.sedrux-product-reviews__score-line > strong {
    font-size: clamp(2.5rem, 4vw, 3.5rem);
    font-weight: 500;
    letter-spacing: 0;
    line-height: 1;
}

.sedrux-product-reviews__score-line > div {
    align-items: flex-start;
    display: grid;
    gap: .3rem;
}

.sedrux-product-reviews__score-line > div > span:last-child {
    color: var(--review-muted);
    font-size: .875rem;
}

.sedrux-product-review-stars {
    color: #e0e0e0;
    display: inline-flex;
    font-size: 1rem;
    gap: .1rem;
    line-height: 1;
}

.sedrux-product-review-stars .is-filled {
    color: var(--sedrux-color-primary);
}

.sedrux-product-reviews__open-modal,
.sedrux-product-reviews__login {
    align-items: center;
    background: var(--sedrux-color-primary);
    border: 1px solid var(--sedrux-color-primary);
    border-radius: 4px;
    color: #fff;
    cursor: pointer;
    display: inline-flex;
    flex-wrap: wrap;
    font-family: inherit;
    font-size: .875rem;
    font-weight: 700;
    gap: .8rem;
    justify-content: center;
    margin: .55rem 0 .8rem;
    min-height: 3.2rem;
    padding: .55rem 1rem;
    text-decoration: none;
    transition: background-color .18s ease, border-color .18s ease, color .18s ease;
}

.sedrux-product-reviews__open-modal span:first-child {
    font-size: 1.35rem;
    letter-spacing: .08em;
}

.sedrux-product-reviews__open-modal:hover,
.sedrux-product-reviews__login:hover {
    background: #c72113;
    border-color: #c72113;
    color: #fff;
}

.sedrux-product-reviews__restricted {
    align-items: flex-start;
    background: #fff5f4;
    border-left: 3px solid var(--sedrux-color-primary);
    display: flex;
    gap: .65rem;
    margin-top: 1rem;
    padding: 1rem;
}

.sedrux-product-reviews__restricted > span {
    align-items: center;
    background: var(--sedrux-color-primary);
    border-radius: 50%;
    color: #fff;
    display: inline-flex;
    flex: 0 0 1.1rem;
    font-size: .7rem;
    height: 1.1rem;
    justify-content: center;
    margin-top: .1rem;
}

.sedrux-product-reviews__list-heading {
    align-items: center;
    display: flex;
    justify-content: space-between;
    padding: 1.5rem 0;
}

.sedrux-product-reviews__list-heading p {
    font-size: .875rem;
    margin: 0;
}

.sedrux-product-reviews__list-heading select {
    appearance: none;
    background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23151515' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right .85rem center;
    border: 1px solid var(--review-ink);
    border-radius: 4px;
    color: var(--review-ink);
    cursor: pointer;
    font-family: inherit;
    font-size: .875rem;
    min-height: 3rem;
    min-width: 13rem;
    padding: 0 2.4rem 0 1rem;
}

.sedrux-product-reviews__list {
    border-top: 1px solid var(--review-line);
}

.sedrux-product-review {
    display: grid;
    gap: clamp(1.5rem, 4vw, 5rem);
    grid-template-columns: minmax(9rem, .55fr) minmax(0, 1.45fr);
    padding: 2rem 0;
}

.sedrux-product-review + .sedrux-product-review {
    border-top: 1px solid var(--review-line);
}

.sedrux-product-review__author {
    display: grid;
    align-content: start;
    gap: .6rem;
}

.sedrux-product-review__author > strong {
    font-size: .9375rem;
}

.sedrux-product-review__verified {
    align-items: center;
    color: var(--review-muted);
    display: inline-flex;
    font-size: .75rem;
    gap: .35rem;
}

.sedrux-product-review__verified span {
    align-items: center;
    background: var(--sedrux-color-primary);
    border-radius: 50%;
    color: #fff;
    display: inline-flex;
    font-size: .65rem;
    height: 1rem;
    justify-content: center;
    width: 1rem;
}

.sedrux-product-review__content {
    display: grid;
    gap: .65rem;
}

.sedrux-product-review__content h3 {
    font-family: var(--sedrux-font-body);
    font-size: .9375rem;
    font-weight: 700;
    margin: .1rem 0 0;
}

.sedrux-product-review__content time {
    color: var(--review-muted);
    font-size: .8125rem;
}

.sedrux-product-review__text {
    color: #393939;
    font-size: .9375rem;
    line-height: 1.6;
    max-width: 44rem;
}

.sedrux-product-review__text p {
    margin: 0;
}

.sedrux-product-reviews__empty {
    color: var(--review-muted);
    font-size: .9375rem;
    margin: 0;
    padding: 2.5rem 0;
}

body.sedrux-review-modal-open {
    overflow: hidden;
}

.sedrux-review-modal[hidden] {
    display: none;
}

.sedrux-review-modal {
    inset: 0;
    position: fixed;
    z-index: 10060;
}

.sedrux-review-modal__backdrop {
    background: rgba(0, 0, 0, .62);
    inset: 0;
    position: absolute;
}

.sedrux-review-modal__dialog {
    background: #fff;
    box-shadow: 0 1.5rem 4rem rgba(0, 0, 0, .25);
    box-sizing: border-box;
    left: 50%;
    max-height: min(92vh, 48rem);
    max-width: 44rem;
    overflow: auto;
    padding: clamp(1.5rem, 4vw, 2.5rem);
    position: absolute;
    top: 50%;
    transform: translate(-50%, -50%);
    width: calc(100% - 2rem);
}

.sedrux-review-modal__close {
    background: transparent;
    border: 0;
    color: #333;
    cursor: pointer;
    font-size: 2rem;
    line-height: 1;
    padding: .25rem;
    position: absolute;
    right: 1.25rem;
    top: 1.25rem;
}

.sedrux-review-modal__header {
    align-items: center;
    border-bottom: 1px solid var(--review-line);
    display: flex;
    gap: 1rem;
    margin-bottom: 1.75rem;
    padding: 0 2rem 1.4rem 0;
}

.sedrux-review-modal__product-image {
    height: 4rem;
    object-fit: cover;
    width: 4rem;
}

.sedrux-review-modal__header p {
    color: var(--review-muted);
    font-size: .8125rem;
    font-weight: 700;
    margin: 0 0 .3rem;
    text-transform: uppercase;
}

.sedrux-review-modal__header h2 {
    font-size: clamp(1.35rem, 3vw, 2rem);
    font-weight: 500;
    line-height: 1.12;
    margin: 0;
}

#sedrux-review-modal-title + .comment-form,
.sedrux-review-modal #commentform {
    background: transparent;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    padding: 0;
}

.sedrux-review-modal .comment-reply-title {
    font-family: var(--sedrux-font-body);
    font-size: 1rem;
    margin: 0 0 1rem;
}

.sedrux-review-modal__rating {
    margin-bottom: 1.5rem;
}

.sedrux-review-modal__rating > span,
.sedrux-review-modal label {
    color: var(--review-ink);
    font-size: .875rem;
    font-weight: 700;
}

.sedrux-review-modal__stars {
    display: flex;
    gap: .5rem;
    margin: .75rem 0;
}

.sedrux-review-modal__stars button {
    align-items: center;
    background: #fff;
    border: 1px solid #b9b9b9;
    border-radius: 3px;
    color: #a5a5a5;
    cursor: pointer;
    display: inline-flex;
    font-size: 1.35rem;
    height: 3rem;
    justify-content: center;
    width: 3rem;
}

.sedrux-review-modal__stars button:hover,
.sedrux-review-modal__stars button.is-active {
    background: var(--sedrux-color-primary);
    border-color: var(--sedrux-color-primary);
    color: #fff;
}

.sedrux-review-modal__rating > p {
    color: var(--review-muted);
    font-size: .8125rem;
    margin: 0;
}

.sedrux-review-modal #commentform textarea,
.sedrux-review-modal #commentform input[type="text"] {
    border-color: #c7c7c7;
    border-radius: 0;
    box-shadow: none;
    font-size: .9375rem;
}

.sedrux-review-modal #commentform textarea {
    min-height: 9rem;
}

.sedrux-review-modal__terms {
    font-size: .8125rem;
    margin: 1.4rem 0 !important;
}

.sedrux-review-modal__terms label {
    align-items: flex-start;
    display: flex;
    font-weight: 400;
    gap: .65rem;
}

.sedrux-review-modal__terms input {
    margin-top: .2rem;
}

.sedrux-review-modal .form-submit input[type="submit"] {
    background: var(--sedrux-color-primary);
    border-color: var(--sedrux-color-primary);
    border-radius: 4px;
    min-width: 12rem;
}

@media (max-width: 840px) {
    .sedrux-product-reviews__summary {
        gap: 2rem;
        grid-template-columns: 1fr 1fr;
    }

    .sedrux-product-reviews__action {
        border-top: 1px solid var(--review-line);
        grid-column: 1 / -1;
        padding-top: 1.5rem;
    }
}

@media (max-width: 600px) {
    .sedrux-product-reviews__summary {
        grid-template-columns: 1fr;
    }

    .sedrux-product-reviews__overall,
    .sedrux-product-reviews__action {
        border-top: 1px solid var(--review-line);
        padding-top: 1.5rem;
    }

    .sedrux-product-reviews__list-heading {
        align-items: stretch;
        flex-direction: column;
        gap: 1rem;
    }

    .sedrux-product-reviews__list-heading select {
        width: 100%;
    }

    .sedrux-product-review {
        gap: 1rem;
        grid-template-columns: 1fr;
        padding: 1.5rem 0;
    }

    .sedrux-product-review__author {
        gap: .35rem;
    }

    .sedrux-review-modal__dialog {
        max-height: 100vh;
        min-height: 100vh;
        width: 100%;
    }

    .sedrux-review-modal__stars {
        gap: .35rem;
    }

    .sedrux-review-modal__stars button {
        flex: 1;
        width: auto;
    }

    .sedrux-review-modal .form-submit input[type="submit"] {
        width: 100%;
    }
}
