/* ==========================================================================
   Evara London — review form
   Precise selectors: the photo uploader nests three wrappers, so only the
   innermost tile carries the dashed frame (a broad [class*=upload] match
   framed all three and produced boxes inside boxes).
   ========================================================================== */

.ev-reviews__body h3,
.ev-reviews__body h4 {
    font-family: var(--ev-font-display) !important;
    font-weight: 400 !important;
    font-size: clamp(19px, 1.9vw, 24px) !important;
    letter-spacing: .06em;
    color: var(--ev-white) !important;
    margin: 0 0 6px !important;
}

.ev-reviews__body > p:first-of-type {
    font-family: var(--ev-font-accent) !important;
    font-size: 15px !important;
    font-style: italic;
    color: rgba(255, 255, 255, .5) !important;
    margin-bottom: 22px !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
}

/* ---------- labels ---------- */

.ev-reviews__body label,
.ev-reviews__body .form-label {
    font-family: var(--ev-font-body) !important;
    font-size: 10px !important;
    letter-spacing: .24em !important;
    text-transform: uppercase !important;
    color: var(--ev-gold) !important;
    font-style: normal !important;
    margin-bottom: 10px !important;
}

/* ---------- rating stars ---------- */

.ev-reviews__body .form-rating-stars {
    display: inline-flex !important;
    gap: 6px;
    vertical-align: middle;
    margin-left: 8px;
}

.ev-reviews__body .form-rating-stars svg,
.ev-reviews__body .form-rating-stars i,
.ev-reviews__body .form-rating-stars img {
    width: 20px !important;
    height: 20px !important;
    color: var(--ev-gold-bright) !important;
}

/* ---------- textarea ---------- */

.ev-reviews__body textarea {
    min-height: 160px !important;
    background: rgba(5, 13, 31, .55) !important;
    border: 1px solid rgba(163, 152, 115, .3) !important;
    border-radius: 0 !important;
    padding: 18px 20px !important;
    font-family: var(--ev-font-accent) !important;
    font-size: 16px !important;
    line-height: 1.75;
    color: var(--ev-cream) !important;
    resize: vertical;
}

.ev-reviews__body textarea:focus { border-color: var(--ev-gold) !important; box-shadow: none !important; }
.ev-reviews__body textarea::placeholder { color: rgba(253, 224, 191, .3) !important; font-style: italic; }

/* ---------- photo uploader ---------- */

.ev-reviews__body .image-upload__viewer,
.ev-reviews__body .image-viewer__list,
.ev-reviews__body .image-upload__uploader-container,
.ev-reviews__body .image-upload__uploader-container .d-table {
    border: 0 !important;
    background: transparent !important;
    padding: 0 !important;
    margin: 0 !important;
    min-width: 0 !important;
    min-height: 0 !important;
}

.ev-reviews__body .image-upload__uploader {
    display: flex !important;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 10px;
    width: 128px;
    height: 128px;
    border: 1px dashed rgba(163, 152, 115, .45) !important;
    background: rgba(5, 13, 31, .4) !important;
    color: rgba(255, 255, 255, .55) !important;
    font-family: var(--ev-font-body) !important;
    font-size: 10px !important;
    letter-spacing: .18em;
    text-transform: uppercase;
    text-align: center;
    cursor: pointer;
    transition: border-color .3s ease, color .3s ease, background .3s ease;
}

.ev-reviews__body .image-upload__uploader:hover {
    border-color: var(--ev-gold) !important;
    color: var(--ev-cream) !important;
    background: rgba(163, 152, 115, .08) !important;
}

.ev-reviews__body .image-upload__uploader svg {
    width: 22px !important;
    height: 22px !important;
    color: var(--ev-gold) !important;
}

/* ---------- helper strip ---------- */

.ev-reviews__body .image-upload-info,
.ev-reviews__body .alert-info {
    display: inline-flex !important;
    align-items: center;
    gap: 10px;
    background: transparent !important;
    border: 0 !important;
    border-left: 2px solid rgba(163, 152, 115, .5) !important;
    border-radius: 0 !important;
    padding: 4px 0 4px 14px !important;
    margin: 16px 0 0 !important;
    font-family: var(--ev-font-body) !important;
    font-size: 12px !important;
    font-style: normal !important;
    letter-spacing: .02em !important;
    text-transform: none !important;
    color: rgba(255, 255, 255, .5) !important;
}

.ev-reviews__body .image-upload-info svg {
    width: 15px;
    height: 15px;
    color: var(--ev-gold) !important;
    flex-shrink: 0;
}

/* ---------- notices ---------- */

.ev-reviews__body .text-danger {
    font-family: var(--ev-font-body) !important;
    font-size: 12px !important;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--ev-gold) !important;
}

.ev-reviews__body label .text-danger { color: rgba(163, 152, 115, .7) !important; letter-spacing: 0; }

/* ---------- submit ---------- */

.ev-reviews__body button[type="submit"],
.ev-reviews__body input[type="submit"] {
    margin-top: 24px;
    min-width: 220px;
    background: var(--ev-gold) !important;
    border: 1px solid var(--ev-gold) !important;
    border-radius: 0 !important;
    color: var(--ev-navy) !important;
    font-family: var(--ev-font-body) !important;
    font-size: 11px !important;
    font-weight: 400 !important;
    letter-spacing: .28em !important;
    text-transform: uppercase;
    padding: 16px 40px !important;
    opacity: 1 !important;
}

.ev-reviews__body button[type="submit"]:hover {
    background: var(--ev-gold-bright) !important;
    border-color: var(--ev-gold-bright) !important;
}

.ev-reviews__body button[type="submit"][disabled],
.ev-reviews__body button[type="submit"].disabled {
    background: transparent !important;
    border-color: rgba(163, 152, 115, .4) !important;
    color: rgba(253, 224, 191, .45) !important;
    cursor: not-allowed;
}

.ev-reviews__body .text-center {
    font-family: var(--ev-font-accent) !important;
    font-size: 17px !important;
    font-style: italic;
    color: rgba(255, 255, 255, .42) !important;
}

/* ==========================================================================
   Quantity stepper — the input and the minus were colliding because the
   button widths were not being enforced against the plugin's own rules.
   ========================================================================== */

.ev-pdp__form .tp-product-details-quantity,
.ev-pdp__form .tp-product-details-action-item-wrapper > div:first-child {
    border: 0 !important;
    background: none !important;
    padding: 0 !important;
}

.ev-pdp__form .tp-product-quantity {
    border-radius: 0 !important;
    display: inline-flex !important;
    align-items: stretch !important;
    width: auto !important;
    height: 54px !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 1px solid rgba(163, 152, 115, .45) !important;
    background: rgba(11, 23, 49, .5) !important;
    box-sizing: border-box !important;
    overflow: hidden;
}

.ev-pdp__form .tp-cart-minus,
.ev-pdp__form .tp-cart-plus {
    flex: 0 0 48px !important;
    width: 48px !important;
    height: 100% !important;
    min-width: 48px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 0 !important;
    margin: 0 !important;
    border: 0 !important;
    background: transparent !important;
    color: var(--ev-cream) !important;
    border-radius: 0 !important;
    cursor: pointer;
    /* Shofy centres these with position:absolute + translateY(-50%). Undoing
       the position alone leaves the transform, which shifts a static element
       up by half its height — both have to go. */
    position: static !important;
    top: auto !important;
    transform: none !important;
    line-height: 1 !important;
}

.ev-pdp__form .tp-cart-minus:hover,
.ev-pdp__form .tp-cart-plus:hover { background: rgba(163, 152, 115, .14) !important; }

.ev-pdp__form .tp-cart-minus svg,
.ev-pdp__form .tp-cart-plus svg { display: block; width: 12px; height: auto; }

.ev-pdp__form .tp-cart-input,
.ev-pdp__form .tp-product-quantity input {
    flex: 0 0 66px !important;
    width: 66px !important;
    min-width: 66px !important;
    height: 100% !important;
    padding: 0 !important;
    margin: 0 !important;
    text-align: center !important;
    border: 0 !important;
    border-left: 1px solid rgba(163, 152, 115, .3) !important;
    border-right: 1px solid rgba(163, 152, 115, .3) !important;
    border-radius: 0 !important;
    background: transparent !important;
    color: var(--ev-cream) !important;
    font-family: var(--ev-font-body) !important;
    font-size: 15px !important;
    line-height: 54px !important;
    box-shadow: none !important;
    -moz-appearance: textfield;
    appearance: textfield;
}

.ev-pdp__form .tp-cart-input:focus { outline: none !important; box-shadow: none !important; }
.ev-pdp__form .tp-cart-input::-webkit-outer-spin-button,
.ev-pdp__form .tp-cart-input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }

/* action row: stepper and buttons on one line, matched heights */
.ev-pdp__form .tp-product-details-action-item-wrapper {
    display: flex !important;
    align-items: stretch !important;
    gap: 14px !important;
    flex-wrap: wrap;
}

.ev-pdp__form .tp-product-details-add-to-cart { flex: 1 1 240px; margin: 0 !important; }
.ev-pdp__form .tp-product-details-add-to-cart-btn { height: 54px !important; width: 100%; padding-block: 0 !important; }
.ev-pdp__form .tp-product-details-buy-now-btn { height: 54px !important; padding-block: 0 !important; }


/* --------------------------------------------------------------------------
   Stepper glyphs + action-row spacing
   The plugin's minus SVG is 11x2 with stroke-width 1.5 — at that size it reads
   as blank. Scale it up and thicken the stroke so both signs are legible.
   -------------------------------------------------------------------------- */

.ev-pdp__form .tp-cart-minus svg,
.ev-pdp__form .tp-cart-plus svg {
    display: block !important;
    width: 15px !important;
    height: 15px !important;
    overflow: visible;
}

.ev-pdp__form .tp-cart-minus svg path,
.ev-pdp__form .tp-cart-plus svg path {
    stroke: currentColor !important;
    stroke-width: 2.2 !important;
    vector-effect: non-scaling-stroke;
}

/* Was `font-size: 0` to hide the label beside Shofy's SVG icon. The Evara
   markup uses a literal + / − instead, so the glyph has to be visible. */
.ev-pdp__form .tp-cart-minus,
.ev-pdp__form .tp-cart-plus {
    color: var(--ev-cream) !important;
    font-size: 20px !important;
    font-weight: 300 !important;
    line-height: 1 !important;
}
.ev-pdp__form .tp-cart-minus:hover,
.ev-pdp__form .tp-cart-plus:hover { color: var(--ev-gold-bright) !important; }

/* the action wrapper stacks: [stepper | add to cart] then buy now */
.ev-pdp__form .tp-product-details-action-wrapper { display: flex; flex-direction: column; gap: 14px; }
.ev-pdp__form .tp-product-details-action-item-wrapper { margin: 0 !important; }
.ev-pdp__form .tp-product-details-buy-now-btn { margin: 0 !important; width: 100% !important; }
.ev-pdp__form .tp-product-details-add-to-cart { margin: 0 !important; }
.ev-pdp__form .tp-product-details-action-title { margin: 0 0 2px !important; }

/* ==========================================================================
   Reviews — updated design (summary rail + editorial review rows)
   ========================================================================== */

.ev-reviews__layout {
    display: grid;
    grid-template-columns: minmax(280px, 340px) minmax(0, 1fr);
    gap: clamp(26px, 3.4vw, 64px);
    align-items: start;
}
@media (max-width: 900px) { .ev-reviews__layout { grid-template-columns: 1fr; } }

/* ---------- summary rail ---------- */
.ev-rsum {
    display: flex; flex-direction: column; gap: 26px;
    border: 1px solid rgba(163, 152, 115, .4);
    background: linear-gradient(180deg, rgba(11, 23, 49, .75), rgba(5, 13, 31, .5));
    padding: clamp(24px, 2.6vw, 34px);
}
.ev-rsum__score { display: flex; align-items: baseline; gap: 10px; }
.ev-rsum__avg { font-family: var(--ev-font-display); font-size: clamp(44px, 5vw, 60px); line-height: 1; color: var(--ev-cream); }
.ev-rsum__out { font-family: var(--ev-font-body); font-size: 14px; font-weight: 300; color: rgba(255, 255, 255, .4); }
.ev-rsum__count { font-family: var(--ev-font-body); font-size: 12px; font-weight: 300; letter-spacing: .1em; color: rgba(255, 255, 255, .55); }
.ev-rsum__hr { display: block; height: 1px; background: rgba(163, 152, 115, .28); }

.ev-rsum__bars { display: flex; flex-direction: column; gap: 11px; }
.ev-rsum__bar { display: grid; grid-template-columns: 34px 1fr 26px; align-items: center; gap: 12px; }
.ev-rsum__bar.is-clickable { cursor: pointer; }
.ev-rsum__bar.is-clickable:hover .ev-rsum__bar-label { color: var(--ev-gold-bright); }
.ev-rsum__bar.is-empty { opacity: .5; }
.ev-rsum__bar-label { font-family: var(--ev-font-body); font-size: 11.5px; letter-spacing: .1em; color: rgba(255, 255, 255, .6); transition: color .25s ease; }
.ev-rsum__bar-track { display: block; height: 4px; background: rgba(255, 255, 255, .09); }
.ev-rsum__bar-track > span { display: block; height: 4px; background: var(--ev-gold); }
.ev-rsum__bar-count { font-family: var(--ev-font-body); font-size: 11.5px; font-variant-numeric: tabular-nums; text-align: right; color: rgba(255, 255, 255, .5); }

.ev-rsum__gist { display: flex; flex-direction: column; gap: 9px; }
.ev-rsum__gist-line { font-family: var(--ev-font-accent); font-size: 19px; font-style: italic; color: var(--ev-cream); }
.ev-rsum__gist-sub { font-family: var(--ev-font-body); font-size: 12px; font-weight: 300; line-height: 1.7; color: rgba(255, 255, 255, .55); }

.ev-rsum__write {
    text-align: center; border: 1px solid var(--ev-gold); background: transparent;
    padding: 13px 20px; cursor: pointer;
    font-family: var(--ev-font-display); font-size: 12.5px; letter-spacing: .16em;
    text-transform: uppercase; color: var(--ev-cream);
    transition: background .4s ease, color .4s ease;
}
.ev-rsum__write:hover { background: var(--ev-gold); color: var(--ev-navy); }

/* ---------- list column ---------- */
.ev-rlist { display: flex; flex-direction: column; gap: clamp(20px, 2vw, 28px); min-width: 0; }

.ev-rlist__controls {
    display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between;
    gap: 16px; padding-bottom: 18px; border-bottom: 1px solid rgba(163, 152, 115, .28);
}
.ev-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.ev-chip {
    border: 1px solid rgba(163, 152, 115, .4); background: transparent;
    padding: 8px 15px; cursor: pointer;
    font-family: var(--ev-font-body); font-size: 11.5px; letter-spacing: .14em;
    text-transform: uppercase; color: rgba(255, 255, 255, .62);
    transition: border-color .3s ease, color .3s ease;
}
.ev-chip:hover { border-color: var(--ev-gold-bright); color: var(--ev-gold-bright); }
.ev-chip.is-active { border-color: var(--ev-gold-bright); color: var(--ev-gold-bright); }

.ev-rlist__tools { display: flex; align-items: center; gap: 12px; }
.ev-rlist__icon {
    display: inline-flex; align-items: center; justify-content: center;
    width: 36px; height: 36px; background: transparent; cursor: pointer;
    border: 1px solid rgba(163, 152, 115, .4); color: var(--ev-cream);
    transition: border-color .3s ease, color .3s ease;
}
.ev-rlist__icon:hover { border-color: var(--ev-gold-bright); color: var(--ev-gold-bright); }

.ev-rlist__sort { display: inline-flex; align-items: center; gap: 10px; }
.ev-rlist__sort > span {
    font-family: var(--ev-font-body); font-size: 10.5px; letter-spacing: .22em;
    text-transform: uppercase; color: rgba(255, 255, 255, .42);
}
.ev-rlist__sort select {
    background: transparent; border: 1px solid rgba(163, 152, 115, .4);
    color: var(--ev-cream); font-family: var(--ev-font-body); font-size: 12px;
    font-weight: 300; padding: 8px 12px; outline: none; cursor: pointer;
}
.ev-rlist__sort select option { background: var(--ev-navy-deep); color: var(--ev-cream); }

.ev-rlist__search input {
    width: 100%; background: rgba(5, 13, 31, .6);
    border: 1px solid rgba(163, 152, 115, .4); color: var(--ev-white);
    font-family: var(--ev-font-body); font-size: 13.5px; font-weight: 300;
    padding: 13px 15px; outline: none;
}
.ev-rlist__search input:focus { border-color: var(--ev-gold-bright); }

.ev-rlist__clear {
    align-self: flex-start; background: transparent; border: 0; padding: 0; cursor: pointer;
    font-family: var(--ev-font-body); font-size: 11px; letter-spacing: .18em;
    text-transform: uppercase; color: rgba(255, 255, 255, .5);
}
.ev-rlist__clear:hover { color: var(--ev-gold-bright); }

.ev-rlist__empty {
    margin: 0; font-family: var(--ev-font-accent); font-size: 19px; font-weight: 300;
    line-height: 1.8; color: rgba(255, 255, 255, .6);
}

/* ---------- a review ---------- */
.ev-review {
    display: grid; grid-template-columns: 52px minmax(0, 1fr);
    gap: clamp(14px, 1.6vw, 22px);
    padding: clamp(20px, 2.2vw, 28px) 0;
    border-bottom: 1px solid rgba(163, 152, 115, .2);
}
.ev-review.is-pending { opacity: .6; }

.ev-review__avatar {
    width: 52px; height: 52px; border-radius: 50%;
    border: 1px solid rgba(163, 152, 115, .5);
    display: flex; align-items: center; justify-content: center;
    font-family: var(--ev-font-display); font-size: 16px; color: var(--ev-cream);
}
.ev-review__main { display: flex; flex-direction: column; gap: 12px; min-width: 0; }

.ev-review__top { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px; }
.ev-review__who { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.ev-review__name { font-family: var(--ev-font-display); font-size: 14px; letter-spacing: .1em; color: var(--ev-white); }
.ev-review__badge {
    display: inline-flex; align-items: center; gap: 5px; line-height: 1.4;
    border: 1px solid rgba(163, 152, 115, .45); padding: 3px 9px;
    font-family: var(--ev-font-body); font-size: 9.5px; letter-spacing: .18em;
    text-transform: uppercase; color: var(--ev-gold);
}
.ev-review__badge--mine { border-color: var(--ev-gold-bright); color: var(--ev-gold-bright); }
.ev-review__badge--wait { border-color: rgba(255, 255, 255, .3); color: rgba(255, 255, 255, .55); }
.ev-review__date { font-family: var(--ev-font-body); font-size: 11.5px; font-weight: 300; color: rgba(255, 255, 255, .4); }

.ev-review__rating { display: flex; align-items: center; gap: 12px; }
.ev-review__rating .ev-stars { font-size: 13px; }
.ev-review__context { font-family: var(--ev-font-body); font-size: 11.5px; font-weight: 300; color: rgba(255, 255, 255, .45); }

p.ev-review__body {
    margin: 0; max-width: 680px;
    font-family: var(--ev-font-accent); font-size: 18px; font-weight: 300;
    line-height: 1.8; color: rgba(255, 255, 255, .7);
}

.ev-review__shots { display: flex; flex-wrap: wrap; gap: 10px; }
.ev-review__shots img {
    width: 74px; height: 74px; object-fit: cover;
    border: 1px solid rgba(163, 152, 115, .4); display: block;
    transition: border-color .3s ease;
}
.ev-review__shots a:hover img { border-color: var(--ev-gold-bright); }

.ev-review__actions { display: flex; align-items: center; gap: 20px; padding-top: 2px; }
.ev-review__delete {
    font-family: var(--ev-font-body); font-size: 11.5px; letter-spacing: .12em;
    text-transform: uppercase; color: rgba(255, 255, 255, .5);
}
.ev-review__delete:hover { color: var(--ev-gold-bright); }

.ev-review__reply {
    margin-top: 6px; border-left: 1px solid rgba(163, 152, 115, .45);
    padding: 12px 0 12px 18px; display: flex; flex-direction: column; gap: 7px;
}
.ev-review__reply-label {
    font-family: var(--ev-font-body); font-size: 10.5px; letter-spacing: .22em;
    text-transform: uppercase; color: var(--ev-gold);
}
.ev-review__reply-body {
    margin: 0; max-width: 620px;
    font-family: var(--ev-font-accent); font-size: 17px; font-weight: 300;
    line-height: 1.8; color: rgba(255, 255, 255, .6);
}

.ev-review__pagination { margin-top: 26px; }

/* ---------- write a review ---------- */
.ev-rform {
    border: 1px solid rgba(163, 152, 115, .4);
    background: linear-gradient(180deg, rgba(11, 23, 49, .72), rgba(5, 13, 31, .45));
    padding: clamp(24px, 2.8vw, 38px);
    display: flex; flex-direction: column; gap: 24px;
}
.ev-rform__head { display: flex; flex-direction: column; gap: 8px; }
.ev-rform__title {
    margin: 0; font-family: var(--ev-font-display); font-weight: 400;
    font-size: 22px; letter-spacing: .06em; color: var(--ev-white);
}
.ev-rform__note { font-family: var(--ev-font-body); font-size: 12px; font-weight: 300; line-height: 1.7; color: rgba(255, 255, 255, .5); }
.ev-rform__hr { display: block; height: 1px; background: rgba(163, 152, 115, .28); }

/* the plugin's form markup, dressed for the theme */
.ev-rform__body { margin: 0; }
.ev-rform__body > [class*="col-"] { padding-inline: 0; }

.ev-rform label,
.ev-rform .form-label {
    font-family: var(--ev-font-body); font-size: 10.5px; letter-spacing: .24em;
    text-transform: uppercase; color: rgba(255, 255, 255, .55); margin-bottom: 9px;
}
.ev-rform .form-control,
.ev-rform input[type="text"],
.ev-rform input[type="email"],
.ev-rform textarea {
    background: rgba(5, 13, 31, .6); border: 1px solid rgba(163, 152, 115, .4);
    border-radius: 0; color: var(--ev-white);
    font-family: var(--ev-font-body); font-size: 13.5px; font-weight: 300;
    line-height: 1.8; padding: 13px 15px; outline: none; box-shadow: none;
}
.ev-rform .form-control:focus,
.ev-rform textarea:focus { border-color: var(--ev-gold-bright); background: rgba(5, 13, 31, .8); box-shadow: none; }
.ev-rform .form-control::placeholder,
.ev-rform textarea::placeholder { color: rgba(255, 255, 255, .3); }

.ev-rform .btn,
.ev-rform button[type="submit"] {
    background: var(--ev-gold); border: 1px solid var(--ev-gold); border-radius: 0;
    color: var(--ev-navy); font-family: var(--ev-font-display); font-size: 13px;
    letter-spacing: .16em; text-transform: uppercase; padding: 14px 40px; cursor: pointer;
    transition: background .4s ease, color .4s ease;
}
.ev-rform .btn:hover,
.ev-rform button[type="submit"]:hover { background: transparent; color: var(--ev-cream); }

/* star picker */
.ev-rform .rating-star,
.ev-rform [class*="rating"] label { color: rgba(255, 255, 255, .25); cursor: pointer; }
.ev-rform [class*="rating"] input:checked ~ label,
.ev-rform [class*="rating"] label:hover,
.ev-rform [class*="rating"] label.active { color: var(--ev-gold-bright); }

/* gating notices (login required / already reviewed / purchase required) */
.ev-rform .alert {
    background: rgba(163, 152, 115, .1); border: 1px solid rgba(163, 152, 115, .4);
    border-radius: 0; color: rgba(255, 255, 255, .72);
    font-family: var(--ev-font-body); font-size: 13px; line-height: 1.7;
}
.ev-rform .alert a { color: var(--ev-gold-bright); border-bottom: 1px solid currentColor; }
.ev-rform .alert-heading,
.ev-rform .alert h4, .ev-rform .alert h5 {
    font-family: var(--ev-font-display); font-size: 15px; letter-spacing: .08em; color: var(--ev-cream);
}

@media (max-width: 560px) {
    .ev-review { grid-template-columns: 40px minmax(0, 1fr); }
    .ev-review__avatar { width: 40px; height: 40px; font-size: 13px; }
    .ev-rlist__controls { flex-direction: column; align-items: flex-start; }
}

/* ---------- helpful vote ---------- */
.ev-review__helpful {
    display: inline-flex; align-items: center; gap: 8px;
    background: transparent; border: 0; padding: 0; cursor: pointer;
    font-family: var(--ev-font-body); font-size: 11.5px; letter-spacing: .12em;
    text-transform: uppercase; color: rgba(255, 255, 255, .5);
    transition: color .25s ease;
}
.ev-review__helpful:hover { color: var(--ev-gold-bright); }
.ev-review__helpful[disabled] { opacity: .55; cursor: default; }
.ev-review__helpful svg { flex-shrink: 0; transition: transform .25s ease; }
.ev-review__helpful:hover svg { transform: translateY(-1px); }
.ev-review__helpful.is-voted { color: var(--ev-gold-bright); }
.ev-review__helpful.is-voted svg { fill: rgba(247, 201, 72, .16); }

.ev-review__helpful-count {
    display: inline-flex; align-items: center; justify-content: center;
    min-width: 22px; padding: 2px 6px;
    border: 1px solid rgba(163, 152, 115, .4);
    font-variant-numeric: tabular-nums; letter-spacing: 0;
    color: rgba(255, 255, 255, .62);
    transition: border-color .25s ease, color .25s ease;
}
.ev-review__helpful:hover .ev-review__helpful-count,
.ev-review__helpful.is-voted .ev-review__helpful-count {
    border-color: var(--ev-gold-bright); color: var(--ev-gold-bright);
}

/* ==========================================================================
   Write Your Review — the design's own form
   ========================================================================== */

.ev-rform__inner { width: 100%; }
.ev-rform__form { display: flex; flex-direction: column; gap: 24px; width: 100%; }

.ev-rform__label {
    display: block;
    font-family: var(--ev-font-body); font-size: 10.5px; letter-spacing: .24em;
    text-transform: uppercase; color: rgba(255, 255, 255, .55);
    margin: 0 0 9px;
}

.ev-rform__field { display: flex; flex-direction: column; width: 100%; }
.ev-rform__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 18px; }

.ev-rform__field input,
.ev-rform__field textarea {
    width: 100%;
    background: rgba(5, 13, 31, .6);
    border: 1px solid rgba(163, 152, 115, .4);
    border-radius: 0;
    color: var(--ev-white);
    font-family: var(--ev-font-body); font-size: 13.5px; font-weight: 300;
    line-height: 1.8; padding: 13px 15px;
    outline: none; box-shadow: none;
    transition: border-color .3s ease, background .3s ease;
}
.ev-rform__field textarea { resize: vertical; min-height: 132px; }
.ev-rform__field input:focus,
.ev-rform__field textarea:focus { border-color: var(--ev-gold-bright); background: rgba(5, 13, 31, .82); }
.ev-rform__field input::placeholder,
.ev-rform__field textarea::placeholder { color: rgba(255, 255, 255, .3); }

/* ---------- star picker ----------
   The inputs sit before their labels in reverse order (5→1), so `~` can light
   every star up to the hovered / checked one without any script. */
.ev-rform__rating { display: flex; flex-wrap: wrap; align-items: center; gap: 16px; }
.ev-rform__rating .ev-rform__label { margin: 0; }

.ev-rform__stars { display: inline-flex; flex-direction: row-reverse; align-items: center; gap: 6px; }
.ev-rform__stars input { position: absolute; opacity: 0; width: 0; height: 0; pointer-events: none; }
.ev-rform__stars label,
.ev-rform__star {
    font-size: 22px; line-height: 1; cursor: pointer;
    color: rgba(255, 255, 255, .22);
    transition: color .2s ease, transform .2s ease;
    margin: 0; padding: 0;
    letter-spacing: 0; text-transform: none;
}
.ev-rform__stars label:hover,
.ev-rform__stars label:hover ~ label,
.ev-rform__stars input:checked ~ label { color: var(--ev-gold-bright) !important; }
.ev-rform__stars .ev-rform__star { font-size: 22px !important; color: rgba(255, 255, 255, .22) !important; letter-spacing: 0 !important; text-transform: none !important; }
.ev-rform__stars .ev-rform__star:hover,
.ev-rform__stars .ev-rform__star:hover ~ .ev-rform__star,
.ev-rform__stars input:checked ~ .ev-rform__star { color: var(--ev-gold-bright) !important; }
.ev-rform__stars label:hover { transform: scale(1.12); }
.ev-rform__stars input:focus-visible + label { outline: 1px solid var(--ev-gold-bright); outline-offset: 3px; }

.ev-rform__rating-word {
    font-family: var(--ev-font-accent); font-size: 18px; font-style: italic;
    color: rgba(255, 255, 255, .5);
}

/* ---------- photos + submit ---------- */
.ev-rform__foot {
    display: flex; flex-wrap: wrap; align-items: center;
    justify-content: space-between; gap: 18px;
}
.ev-rform__upload { display: flex; flex-wrap: wrap; align-items: center; gap: 14px; }
.ev-rform__upload-btn {
    display: inline-flex; align-items: center; gap: 10px;
    border: 1px dashed rgba(163, 152, 115, .55);
    padding: 13px 18px; cursor: pointer; margin: 0;
    font-family: var(--ev-font-body); font-size: 11.5px; letter-spacing: .14em;
    text-transform: uppercase; color: var(--ev-cream);
    transition: border-color .3s ease, color .3s ease;
}
.ev-rform__upload-btn:hover { border-color: var(--ev-gold-bright); color: var(--ev-gold-bright); }
.ev-rform__upload-note {
    font-family: var(--ev-font-body); font-size: 11px; font-weight: 300;
    color: rgba(255, 255, 255, .42); letter-spacing: 0; text-transform: none;
}

.ev-rform__submit {
    background: var(--ev-gold); border: 1px solid var(--ev-gold); border-radius: 0;
    color: var(--ev-navy);
    font-family: var(--ev-font-display); font-size: 13px; letter-spacing: .16em;
    text-transform: uppercase; padding: 14px 40px; cursor: pointer;
    transition: background .4s ease, color .4s ease;
}
.ev-rform__submit:hover { background: transparent; color: var(--ev-cream); }
.ev-rform__submit[disabled] { opacity: .6; cursor: default; }

.ev-rform__previews { display: flex; flex-wrap: wrap; gap: 10px; }
.ev-rform__previews img {
    width: 74px; height: 74px; object-fit: cover;
    border: 1px solid rgba(163, 152, 115, .4); display: block;
}

/* ---------- gating notices ---------- */
.ev-rform__notice {
    display: flex; flex-direction: column; align-items: flex-start; gap: 16px;
    border: 1px solid rgba(163, 152, 115, .4);
    background: rgba(163, 152, 115, .08);
    padding: clamp(18px, 2vw, 26px);
}
.ev-rform__notice p {
    margin: 0;
    font-family: var(--ev-font-accent); font-size: 18px; font-weight: 300;
    line-height: 1.8; color: rgba(255, 255, 255, .72);
}
.ev-rform__notice a { color: var(--ev-gold-bright); border-bottom: 1px solid currentColor; }
.ev-rform__notice-btn { border-bottom: 0 !important; }

/* ---------- report ---------- */
.ev-review__report {
    background: transparent; border: 0; padding: 0; cursor: pointer;
    font-family: var(--ev-font-body); font-size: 11.5px; letter-spacing: .12em;
    text-transform: uppercase; color: rgba(255, 255, 255, .5);
    transition: color .25s ease;
}
.ev-review__report:hover { color: var(--ev-gold-bright); }
.ev-review__report.is-done,
.ev-review__report[disabled] { color: rgba(255, 255, 255, .32); cursor: default; }

.ev-review__headline {
    font-family: var(--ev-font-display); font-size: 15px;
    letter-spacing: .06em; color: var(--ev-cream);
}

@media (max-width: 560px) {
    .ev-rform__foot { flex-direction: column; align-items: stretch; }
    .ev-rform__submit { width: 100%; }
}

/* Both columns of the reviews layout start on the same line. Previously the
   empty-state sentence sat at the top of the right column and pushed the form
   panel below the summary card. */
.ev-reviews__layout { align-items: start; }
.ev-reviews__empty { margin-inline: auto; max-width: 640px; }
.ev-rlist > :first-child { margin-top: 0; }
.ev-rsum { margin-top: 0; }
