/*!
 * Thrift Core marketing components: discount code field, reviews, alerts, sign-up and countdown.
 * Uses the tokens of tc-base.css (black and white, softly rounded corners, 1px borders, neon accent).
 */

.tc-mk-msg { min-height: 1.2em; margin-block-start: 6px; font-size: var(--tc-fs-xs); }
.tc-mk-msg.is-ok { color: #1a7a1a; }
.tc-mk-msg.is-error { color: #c00; }
.tc-mk-code__row { display: flex; gap: 8px; }
.tc-mk-code__row .tc-input { flex: 1; text-transform: uppercase; }

/* ------------------------------------------------------------- Reviews */
.tc-stars { letter-spacing: 1px; color: var(--tc-black); }
.tc-rating { margin-block-start: 4px; font-size: var(--tc-fs-xs); }
.tc-reviews { margin-block: 48px; padding-block-start: 24px; border-block-start: 1px solid var(--tc-border); }
.tc-reviews__summary { margin-block: 8px 16px; }
.tc-reviews__list { display: grid; gap: 20px; margin-block-end: 24px; }
.tc-review { padding-block-end: 16px; border-block-end: 1px solid var(--tc-border); }
.tc-review__head { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-block-end: 6px; }
.tc-review__photos { display: flex; gap: 8px; margin-block-start: 10px; }
.tc-review__photos img { display: block; width: 72px; height: 72px; object-fit: cover; border: 1px solid var(--tc-border); border-radius: var(--tc-radius); transition: transform var(--tc-ease), box-shadow var(--tc-ease); }
.tc-review__photos a:hover img { transform: translateY(-2px); box-shadow: var(--tc-shadow-md); }
.tc-reviews__form { margin-block-start: 16px; }
.tc-reviews__form summary { cursor: pointer; }
.tc-reviews__form form { display: grid; gap: 14px; max-inline-size: 480px; margin-block-start: 16px; }
.tc-rating-input { display: flex; flex-direction: row-reverse; justify-content: flex-end; gap: 4px; border: 0; padding: 0; }
.tc-rating-input legend { flex-basis: 100%; order: 1; }
.tc-rating-input input { position: absolute; opacity: 0; pointer-events: none; }
.tc-rating-input label { font-size: 28px; line-height: 1; color: var(--tc-border); cursor: pointer; }
.tc-rating-input input:checked ~ label, .tc-rating-input label:hover, .tc-rating-input label:hover ~ label { color: var(--tc-black); }
.tc-rating-input input:focus-visible + label { outline: 2px solid var(--tc-black); outline-offset: 2px; }

/* ------------------------------------------------ Alerts and sign-up forms */
.tc-mk-box { margin-block: 20px; padding: 16px 18px; border: 1px solid var(--tc-border); border-radius: var(--tc-radius-lg); transition: box-shadow var(--tc-ease), border-color var(--tc-ease); }
.tc-mk-box:hover, .tc-mk-box[open] { border-color: var(--tc-black); box-shadow: var(--tc-shadow-sm); }
.tc-mk-box summary { cursor: pointer; }
.tc-mk-form { display: grid; gap: 12px; max-inline-size: 420px; margin-block-start: 14px; }
.tc-mk-alert { margin-block-start: 32px; }

/* ---------------------------------------------------------------- Drops */
.tc-countdown { padding: 24px; text-align: center; color: var(--tc-white); background: var(--tc-black); border-radius: var(--tc-radius-lg); box-shadow: var(--tc-shadow-md); }
.tc-countdown .tc-label { color: var(--tc-accent); }
.tc-countdown .tc-muted { color: #bbb; }
.tc-countdown__time { margin-block: 6px; font-family: var(--tc-font-display); font-size: 32px; letter-spacing: .04em; }
.tc-signup { max-inline-size: 460px; }
