/* Tour Reviews Hub v2 - front end. Inherits your theme's fonts. */
.trh{
	--trh-star-off:#d8dee0;
	color:var(--trh-ink,#1c2528);
	margin:1.5em 0;
	line-height:1.55;
	box-sizing:border-box;
	position:relative;
}
.trh *,.trh *::before,.trh *::after{box-sizing:border-box}
.trh-fs--sm{font-size:.92em}.trh-fs--lg{font-size:1.1em}
.trh--pad{background:var(--trh-surface);padding:22px;border-radius:var(--trh-radius)}
.trh-theme--dark{--trh-star-off:#3a4a50}
.trh a{color:var(--trh-accent);text-decoration:underline;text-underline-offset:2px}
.trh button{font:inherit}
.trh-title{margin:0 0 14px;font-size:1.35em;line-height:1.25;color:var(--trh-ink)}
.trh-empty{padding:24px;text-align:center;color:#646970;border:1px dashed #c3c4c7;border-radius:8px}

/* Stars */
.trh-stars{display:inline-block;font-size:1.05em;line-height:1;letter-spacing:.06em;white-space:nowrap}
.trh-stars::before{
	content:"\2605\2605\2605\2605\2605";
	background:linear-gradient(90deg,var(--trh-star) calc(var(--r,0)/5*100%),var(--trh-star-off) 0);
	-webkit-background-clip:text;background-clip:text;
	-webkit-text-fill-color:transparent;color:transparent;
}
.trh-bubbles{display:inline-block;height:16px;width:auto;vertical-align:middle}

/* Source marks */
.trh-src{display:inline-flex;align-items:center;gap:.4em;font-size:.85em;font-weight:600;color:var(--trh-ink);white-space:nowrap}
.trh-src img{height:18px;width:auto}
.trh-dot{width:.7em;height:.7em;border-radius:50%;background:#00aa6c;display:inline-block;box-shadow:.55em 0 0 -.12em var(--trh-card,#fff),.55em 0 0 0 #00aa6c;margin-right:.55em}
.trh-src--g{font-size:.95em;letter-spacing:-.01em}
.g1{color:#4285f4}.g2{color:#ea4335}.g3{color:#fbbc05}.g4{color:#34a853}

/* Summary header */
.trh-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px;margin-bottom:20px}
.trh-sum{border:1px solid var(--trh-line);border-radius:var(--trh-radius);padding:20px 22px;background:var(--trh-card);display:flex;flex-direction:column;gap:14px}
.trh-sum__score{display:flex;align-items:center;gap:16px}
.trh-sum__num{font-size:3.4em;font-weight:700;line-height:.95;letter-spacing:-.03em;color:var(--trh-accent)}
.trh-sum__stars{display:flex;flex-direction:column;gap:4px}
.trh-sum__count{font-size:.9em;color:var(--trh-muted)}
.trh-bars{list-style:none;margin:0;padding:0;display:grid;gap:5px}
.trh-bars li{display:grid;grid-template-columns:14px 1fr 38px;gap:10px;align-items:center;font-size:.82em;color:var(--trh-muted);margin:0;padding:0}
.trh-bars i{display:block;height:6px;border-radius:99px;background:var(--trh-wash);overflow:hidden}
.trh-bars b{display:block;height:100%;background:var(--trh-accent);border-radius:99px}
.trh-bars em{font-style:normal;text-align:right}
.trh-sum__actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:auto}

/* Buttons */
.trh-btn{
	display:inline-flex;align-items:center;justify-content:center;
	padding:.6em 1.1em;border-radius:calc(var(--trh-radius) * .7);
	background:var(--trh-accent);color:#fff !important;border:1px solid var(--trh-accent);
	font-size:.9em;font-weight:600;text-decoration:none !important;cursor:pointer;line-height:1.2;
	transition:filter .15s ease;
}
.trh-btn:hover{filter:brightness(1.08)}
.trh-btn--ghost{background:transparent;color:var(--trh-accent) !important}
.trh-btn:focus-visible,.trh-pill:focus-visible,.trh-photo:focus-visible,.trh-readmore:focus-visible,.trh-lb button:focus-visible,.trh-arrow:focus-visible,.trh-fab:focus-visible,.trh-panel__x:focus-visible,.trh-track:focus-visible{outline:2px solid var(--trh-accent);outline-offset:2px}

/* Badges */
.trh-badges{display:flex;flex-wrap:wrap;gap:10px;margin:0}
.trh-badge{
	display:inline-flex;align-items:center;gap:12px;flex-wrap:wrap;
	padding:.7em 1.1em;border:1px solid var(--trh-line);border-radius:calc(var(--trh-radius) * .8);
	background:var(--trh-card);text-decoration:none !important;color:var(--trh-ink) !important;
}
a.trh-badge:hover{border-color:var(--trh-accent)}
.trh-badge__score{font-weight:700;font-size:1.15em}
.trh-badge__meta{font-size:.88em;color:var(--trh-muted)}
.trh--badges{margin:1em 0}

/* Photos */
.trh-photos{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;margin-bottom:22px}
.trh-photo{position:relative;padding:0;border:0;background:var(--trh-wash);border-radius:calc(var(--trh-radius) * .7);overflow:hidden;cursor:zoom-in;aspect-ratio:1/1}
.trh-photos .trh-photo:first-child{grid-column:span 2;grid-row:span 2}
.trh-photo img{width:100%;height:100%;object-fit:cover;display:block}
.trh-photo--extra{display:none}
.trh-photo__more{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:rgba(15,23,26,.55);color:#fff;font-size:1.3em;font-weight:700}
.trh-card__photos{display:flex;flex-wrap:wrap;gap:6px}
.trh-photo--inline{width:64px;height:64px;aspect-ratio:auto}

/* Filter */
.trh-filter{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}
.trh-pill{padding:.45em 1em;border-radius:99px;border:1px solid var(--trh-line);background:var(--trh-card);color:var(--trh-ink);cursor:pointer;font-size:.9em}
.trh-pill.is-active{background:var(--trh-accent);border-color:var(--trh-accent);color:#fff}

/* Cards */
.trh-cards{display:grid;gap:16px}
.trh--grid .trh-cards{grid-template-columns:repeat(auto-fill,minmax(290px,1fr))}
.trh--list .trh-cards,.trh--floating .trh-cards{grid-template-columns:1fr}
.trh--masonry .trh-cards{display:block;column-count:3;column-gap:16px}
.trh--masonry .trh-card{break-inside:avoid;margin-bottom:16px}
@media (min-width:720px){
	.trh-cols-1 .trh-cards{grid-template-columns:1fr;column-count:1}
	.trh-cols-2 .trh-cards{grid-template-columns:repeat(2,1fr);column-count:2}
	.trh-cols-3 .trh-cards{grid-template-columns:repeat(3,1fr);column-count:3}
	.trh-cols-4 .trh-cards{grid-template-columns:repeat(4,1fr);column-count:4}
}
@media (max-width:900px){.trh--masonry .trh-cards{column-count:2}}
@media (max-width:600px){.trh--masonry .trh-cards{column-count:1}}
.trh-card{border:1px solid var(--trh-line);border-radius:var(--trh-radius);padding:18px 20px;background:var(--trh-card);display:flex;flex-direction:column;gap:10px;min-width:0}
.trh--noborder .trh-card,.trh--noborder .trh-sum{border-color:transparent}
.trh--shadow .trh-card,.trh--shadow .trh-sum{box-shadow:0 6px 22px rgba(15,30,36,.10)}
.trh-card[hidden]{display:none}
.trh-card__head{display:flex;align-items:center;gap:12px}
.trh-card__head .trh-src{margin-left:auto}
.trh-avatar{width:44px;height:44px;border-radius:50%;object-fit:cover;flex:none;background:var(--trh-wash)}
.trh-avatar--txt{display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700}
.trh-card__who{display:flex;flex-direction:column;min-width:0;line-height:1.3}
.trh-card__who strong{font-weight:600;overflow-wrap:anywhere;color:var(--trh-ink)}
.trh-card__who span{font-size:.82em;color:var(--trh-muted)}
.trh-card__who a{text-decoration:none}
.trh-card__rating{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.trh-card__rating time{font-size:.85em;color:var(--trh-muted)}
.trh-card__title{margin:0;font-size:1.02em;line-height:1.35;font-weight:700;color:var(--trh-ink)}
.trh-card__text{margin:0;overflow-wrap:anywhere;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:var(--trh-lines,5);overflow:hidden;color:var(--trh-ink)}
.trh-card.is-open .trh-card__text{display:block;-webkit-line-clamp:unset}
.trh-readmore{align-self:flex-start;background:none;border:0;padding:0;color:var(--trh-accent);font-weight:600;cursor:pointer;text-decoration:underline;text-underline-offset:2px}
.trh-readmore[hidden]{display:none}
.trh-card__foot{margin-top:auto;padding-top:10px;border-top:1px solid var(--trh-line);display:flex;flex-wrap:wrap;gap:6px 12px;font-size:.82em;color:var(--trh-muted)}
.trh-sep{width:3px;height:3px;border-radius:50%;background:var(--trh-muted);align-self:center;opacity:.6}
.trh-sep:last-child{display:none}
.trh-more{text-align:center;margin-top:18px}
.trh-more .trh-btn[hidden]{display:none}
.trh-attr{margin:18px 0 0;font-size:.8em;color:var(--trh-muted)}

/* Slider */
.trh-slider{position:relative}
.trh-track{display:flex;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;scrollbar-width:none;padding:2px}
.trh-track::-webkit-scrollbar{display:none}
.trh-track .trh-card{flex:0 0 min(340px,86%);scroll-snap-align:start}
.trh-cols-1 .trh-track .trh-card{flex-basis:100%}
@media (min-width:720px){
	.trh-cols-2 .trh-track .trh-card{flex-basis:calc(50% - 8px)}
	.trh-cols-3 .trh-track .trh-card{flex-basis:calc(33.333% - 11px)}
	.trh-cols-4 .trh-track .trh-card{flex-basis:calc(25% - 12px)}
}
.trh-arrow{
	position:absolute;top:50%;transform:translateY(-50%);z-index:2;width:40px;height:40px;border-radius:50%;
	border:1px solid var(--trh-line);background:var(--trh-card);color:var(--trh-ink);font-size:24px;line-height:1;cursor:pointer;
	box-shadow:0 4px 14px rgba(15,30,36,.18);display:flex;align-items:center;justify-content:center;padding:0;
}
.trh-arrow--prev{left:-10px}.trh-arrow--next{right:-10px}
.trh-arrow[disabled]{opacity:.35;cursor:default}
.trh-dots{display:flex;justify-content:center;gap:8px;margin-top:14px}
.trh-dots button{width:8px;height:8px;border-radius:50%;border:0;padding:0;background:var(--trh-line);cursor:pointer}
.trh-dots button.is-active{background:var(--trh-accent);width:22px;border-radius:99px}

/* Floating button + popup */
.trh--floating{margin:0}
.trh--floating.trh--pad{padding:0;background:none}
.trh-fab{
	position:fixed;bottom:20px;z-index:99990;display:flex;align-items:center;gap:10px;
	padding:.65em 1.1em;border-radius:99px;border:1px solid var(--trh-line);
	background:var(--trh-card);color:var(--trh-ink);cursor:pointer;box-shadow:0 8px 26px rgba(15,30,36,.22);
}
.trh-fab strong{font-size:1.1em}
.trh-fab__src{display:inline-flex;gap:8px}
.trh-fab__label{font-size:.85em;color:var(--trh-muted)}
.trh-fab--br{right:20px}.trh-fab--bl{left:20px}
.trh-panel{
	position:fixed;bottom:84px;z-index:99991;width:min(440px,calc(100vw - 24px));max-height:min(680px,calc(100vh - 110px));overflow:auto;
	background:var(--trh-surface,transparent);background-color:var(--trh-card);color:var(--trh-ink);
	border:1px solid var(--trh-line);border-radius:var(--trh-radius);padding:20px;box-shadow:0 18px 50px rgba(15,30,36,.35);
}
.trh-panel[hidden]{display:none}
.trh-panel--br{right:20px}.trh-panel--bl{left:20px}
.trh-panel__x{position:absolute;top:8px;right:10px;width:32px;height:32px;border:0;border-radius:50%;background:var(--trh-wash);color:var(--trh-ink);font-size:20px;line-height:1;cursor:pointer;padding:0}
.trh-panel .trh-summary{grid-template-columns:1fr}
.trh--preview .trh-fab{position:absolute}
.trh--preview .trh-panel{position:absolute}
.trh--preview.trh--floating{min-height:560px}

/* Admin-only debug note */
.trh-admin-note{margin:12px 0;padding:10px 14px;border:1px dashed #b45309;background:#fffbeb;color:#78350f;font-size:.82em;border-radius:6px}

/* Lightbox */
.trh-lb{position:fixed;inset:0;z-index:999999;background:rgba(10,16,18,.92);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px}
.trh-lb[hidden]{display:none}
.trh-lb img{max-width:min(1100px,100%);max-height:78vh;object-fit:contain;border-radius:6px}
.trh-lb__cap{color:#e8eef0;margin-top:12px;font-size:.9em;text-align:center;max-width:720px}
.trh-lb button{position:absolute;background:rgba(255,255,255,.12);color:#fff;border:0;width:44px;height:44px;border-radius:50%;font-size:22px;line-height:1;cursor:pointer;padding:0}
.trh-lb button:hover{background:rgba(255,255,255,.25)}
.trh-lb__x{top:18px;right:18px}
.trh-lb__p{left:18px;top:50%;transform:translateY(-50%)}
.trh-lb__n{right:18px;top:50%;transform:translateY(-50%)}

@media (max-width:640px){
	.trh-photos{grid-template-columns:repeat(3,1fr)}
	.trh-sum{padding:16px}
	.trh-sum__num{font-size:2.8em}
	.trh-arrow--prev{left:-4px}.trh-arrow--next{right:-4px}
	.trh--pad{padding:16px}
}
@media (prefers-reduced-motion:reduce){.trh-btn{transition:none}.trh-track{scroll-behavior:auto}}

/* Gallery badge: sits under the gallery, left aligned */
.trh-gallery-badge{display:flex;justify-content:flex-start;align-items:center;text-align:left;margin:14px 0 6px;width:100%}
.trh-gallery-badge .trh{margin:0}
.trh-gallery-badge .trh--badges{margin:0}
.trh-gallery-badge .trh-badges{justify-content:flex-start}

/* Source tag on reviews copied into the theme's own review list */
.trh-tag{display:inline-flex;align-items:center;flex-wrap:wrap;gap:.45em;font-size:.82em;line-height:1.3;color:#5d6b70;margin-top:.4em}
.trh-tag .trh-src{font-size:1em}
.trh-tag .trh-dot{box-shadow:.55em 0 0 -.12em #fff,.55em 0 0 0 #00aa6c}
.trh-tag__t{font-weight:500}
.trh-tag__a{color:inherit;text-decoration:underline;text-underline-offset:2px}
