/* Home page — reader reviews section */
/* Colours are shared by the section AND the popup form (the <dialog> sits outside the section). */
.tt-hr, .tt-hr__dialog {
    --hr-ink: #2b221d; --hr-muted: #85756a; --hr-line: #e6dbcf; --hr-accent: #9a6332;
    --hr-accent-dark: #7c4c22; --hr-gold: #e2a93b; --hr-cream: #f4ece3;
}
.tt-hr {
    background: var(--hr-cream); border-top: 1px solid var(--hr-line); padding: 64px 0 72px;
    font-family: "Inter", -apple-system, "Segoe UI", Roboto, Arial, sans-serif; color: var(--hr-ink);
}
.tt-hr *, .tt-hr__dialog * { box-sizing: border-box; }
.tt-hr__wrap { max-width: 1140px; margin: 0 auto; padding: 0 20px; }
.tt-hr__head { display: flex; justify-content: space-between; align-items: flex-end; gap: 20px; flex-wrap: wrap; margin-bottom: 28px; }
.tt-hr__kicker { margin: 0 0 8px; font: 600 12px/1 "Inter", sans-serif; letter-spacing: .18em; text-transform: uppercase; color: var(--hr-accent); }
.tt-hr .tt-hr__title { margin: 0; font: 700 clamp(28px, 4vw, 38px)/1.15 "Playfair Display", Georgia, serif; color: var(--hr-ink); text-transform: none; letter-spacing: 0; }
.tt-hr__avg { margin: 10px 0 0; font-size: 15px; color: var(--hr-muted); display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.tt-hr__avg strong { color: var(--hr-ink); }
.tt-hr__head-actions { display: flex; align-items: center; gap: 10px; }
.tt-hr__nav {
    width: 42px; height: 42px; border-radius: 50%; border: 1px solid var(--hr-line); background: #fff; color: var(--hr-ink);
    font-size: 24px; line-height: 1; cursor: pointer; transition: border-color .2s, color .2s;
}
.tt-hr__nav:hover { border-color: var(--hr-accent); color: var(--hr-accent); }
.tt-hr__btn {
    padding: 12px 22px; border-radius: 999px; border: 0; background: var(--hr-accent); color: #fff; cursor: pointer;
    font: 600 15px/1 "Inter", sans-serif; box-shadow: 0 6px 18px -8px rgba(154,99,50,.8); transition: background .2s, transform .2s;
}
.tt-hr__btn:hover { background: var(--hr-accent-dark); transform: translateY(-1px); }
.tt-hr__btn--block { width: 100%; padding: 14px; margin-top: 4px; }

.tt-hr__track {
    display: grid; grid-auto-flow: column; grid-auto-columns: calc((100% - 40px) / 3); gap: 20px;
    overflow-x: auto; scroll-snap-type: x mandatory; padding: 4px 4px 18px;
    scrollbar-width: none; -ms-overflow-style: none; /* hide scrollbar, keep swipe/scroll */
}
.tt-hr__track::-webkit-scrollbar { display: none; }
.tt-hr__track:focus-visible { outline: 2px solid var(--hr-accent); outline-offset: 4px; border-radius: 12px; }
.tt-hr__card {
    scroll-snap-align: start; margin: 0; background: #fff; border: 1px solid var(--hr-line); border-radius: 16px;
    padding: 26px; display: flex; flex-direction: column; gap: 14px; position: relative;
    box-shadow: 0 18px 36px -30px rgba(60,40,20,.55);
}
.tt-hr__card::before { content: "“"; position: absolute; top: 6px; right: 20px; font: 700 72px/1 "Playfair Display", Georgia, serif; color: var(--hr-cream); }
.tt-hr__quote {
    margin: 0; padding: 0; border: 0; font: 400 16px/1.65 Georgia, "Times New Roman", serif; color: #4a3e36; flex: 1;
    display: -webkit-box; -webkit-line-clamp: 9; -webkit-box-orient: vertical; overflow: hidden; overflow-wrap: anywhere;
}
.tt-hr__who { display: flex; align-items: center; gap: 12px; padding-top: 14px; border-top: 1px solid var(--hr-line); }
.tt-hr__who strong { display: block; font-size: 15px; color: var(--hr-ink); }
.tt-hr__who span span { font-size: 13px; color: var(--hr-muted); font-style: italic; }
.tt-hr__avatar {
    width: 40px; height: 40px; border-radius: 50%; flex: none; display: flex; align-items: center; justify-content: center;
    background: linear-gradient(135deg, var(--hr-accent), var(--hr-gold)); color: #fff; font: 700 17px/1 "Playfair Display", serif;
}
.tt-hr__empty { text-align: center; padding: 28px; background: #fff; border: 1px dashed var(--hr-line); border-radius: 16px; color: var(--hr-muted); }
.tt-hr__alert { padding: 12px 16px; border-radius: 10px; margin: 0 0 20px; font-size: 15px; }
.tt-hr__alert--ok { background: #e8f5ec; color: #2f7d4f; border: 1px solid #bfe3cb; }
.tt-hr__alert--err { background: #fbeceb; color: #b23b2e; border: 1px solid #f0c5c0; }

/* Stars (shared look with story page) */
.tt-stars { display: inline-flex; gap: 1px; font-size: 16px; line-height: 1; }
.tt-star--full { color: #e2a93b; }
.tt-star--empty { color: rgba(140,120,105,.35); }
.tt-star--half { background: linear-gradient(90deg, #e2a93b 50%, rgba(140,120,105,.35) 50%); -webkit-background-clip: text; background-clip: text; color: transparent; }
.tt-home-rating .tt-stars { font-size: 14px; vertical-align: -1px; margin-right: 4px; }
.tt-home-rating__count { opacity: .7; }

/* Dialog */
.tt-hr__dialog {
    width: min(560px, calc(100vw - 32px)); max-height: calc(100vh - 32px); border: 0; border-radius: 18px; padding: 0;
    box-shadow: 0 40px 80px -20px rgba(0,0,0,.45); font-family: "Inter", -apple-system, "Segoe UI", Roboto, Arial, sans-serif; color: #2b221d;
}
.tt-hr__dialog::backdrop { background: rgba(29,24,21,.6); backdrop-filter: blur(3px); }
.tt-hr__form { padding: 26px 28px 28px; display: grid; gap: 14px; }
.tt-hr__dialog-head { display: flex; justify-content: space-between; align-items: center; }
.tt-hr__dialog-head h3 { margin: 0; font: 700 24px/1.2 "Playfair Display", Georgia, serif; color: #2b221d; text-transform: none; }
.tt-hr__close { border: 0; background: #f4ece3; width: 36px; height: 36px; border-radius: 50%; font-size: 22px; line-height: 1; cursor: pointer; color: #4a3e36; }
.tt-hr__dialog-sub { margin: -6px 0 4px; color: #85756a; font-size: 14px; }
.tt-hr__form label { display: grid; gap: 6px; font: 600 14px/1.3 "Inter", sans-serif; color: #4a3e36; margin: 0; }
.tt-hr__form label small { font-weight: 400; color: #85756a; }
.tt-hr__form input[type=text], .tt-hr__form textarea {
    width: 100%; padding: 11px 13px; border: 1px solid #e6dbcf; border-radius: 10px; background: #fdfaf6;
    font: 400 15px/1.5 "Inter", sans-serif; color: #2b221d; height: auto; box-shadow: none;
}
.tt-hr__form textarea { resize: vertical; min-height: 110px; }
.tt-hr__form input:focus, .tt-hr__form textarea:focus { outline: none; border-color: #9a6332; box-shadow: 0 0 0 4px rgba(154,99,50,.15); background: #fff; }
.tt-hr__row { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.tt-hr__rate { border: 0; margin: 0; padding: 0; display: flex; align-items: center; gap: 12px; }
.tt-hr__rate legend { float: left; width: auto; margin: 0; border: 0; font: 600 14px/1.3 "Inter", sans-serif; color: #4a3e36; }
.tt-hr__stars { display: inline-flex; flex-direction: row-reverse; }
.tt-hr__stars input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.tt-hr__form .tt-hr__stars label { display: inline; font-size: 30px; line-height: 1; padding: 0 2px; color: #d9cdbf; cursor: pointer; font-weight: 400; transition: color .15s; }
.tt-hr__stars label:hover, .tt-hr__stars label:hover ~ label, .tt-hr__stars input:checked ~ label { color: #e2a93b; }
.tt-hr__stars input:focus-visible + label { outline: 2px solid #9a6332; border-radius: 4px; }
.tt-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }

@media (max-width: 900px) { .tt-hr__track { grid-auto-columns: calc((100% - 20px) / 2); } }
@media (max-width: 600px) {
    .tt-hr { padding: 48px 0 56px; }
    .tt-hr__wrap { padding: 0 16px; }
    .tt-hr__track { grid-auto-columns: 86%; }
    .tt-hr__nav { display: none; }
    .tt-hr__row { grid-template-columns: 1fr; }
    .tt-hr__form { padding: 22px 20px; }
}
