/* Visual Reviews for WooCommerce – design system. Colours, radius, spacing and fonts come from
   CSS custom properties written from the Design Settings screen (see VRW_Settings::css_variables). */
.vrw, .vrw * { box-sizing: border-box; }
.vrw-modal {
	--vrw-bg: #faf6ee; --vrw-card: #fff; --vrw-text: #2e2620; --vrw-muted: #6f6459; --vrw-accent: #a8863f; --vrw-border: #e6dccb; --vrw-button: #3b2f27; --vrw-button-text: #faf6ee; --vrw-radius: 6px; --vrw-gap: 20px; --vrw-card-border: #e6dccb; --vrw-card-border-w: 1px; --vrw-vote: #2e2620; --vrw-badge-bg: #f7efdc; --vrw-badge-text: #7a5a14; --vrw-badge-radius: 99px; --vrw-badge-check-display: inline; --vrw-link-hover: #987039; --vrw-thumb: 96px; --vrw-ratio: 4 / 5; --vrw-cols: 4; --vrw-review-cols: 3; --vrw-font-head: 'Cormorant Garamond', Georgia, serif; --vrw-font-body: system-ui, sans-serif;
}
.vrw {
	--vrw-bg: #faf6ee; --vrw-card: #fff; --vrw-text: #2e2620; --vrw-muted: #6f6459; --vrw-accent: #a8863f;
	--vrw-border: #e6dccb; --vrw-button: #3b2f27; --vrw-button-text: #faf6ee; --vrw-radius: 6px; --vrw-gap: 20px;
	--vrw-card-border: #e6dccb; --vrw-card-border-w: 1px; --vrw-vote: #2e2620; --vrw-badge-bg: #f7efdc; --vrw-badge-text: #7a5a14; --vrw-badge-radius: 99px; --vrw-badge-check-display: inline; --vrw-link-hover: #987039;
	--vrw-thumb: 96px; --vrw-ratio: 4 / 5; --vrw-cols: 4; --vrw-review-cols: 3;
	--vrw-font-head: 'Cormorant Garamond', Georgia, serif; --vrw-font-body: system-ui, sans-serif;
	color: var(--vrw-text); font-family: var(--vrw-font-body); font-size: 1rem; line-height: 1.6;
	background: var(--vrw-bg); padding: calc(var(--vrw-gap) * 1.5) var(--vrw-gap); border-radius: var(--vrw-radius);
	margin: 1.5em 0;
}
.vrw .screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.vrw :focus-visible { outline: 2px solid var(--vrw-accent); outline-offset: 2px; }
.vrw h2, .vrw h3 { font-family: var(--vrw-font-head); color: var(--vrw-text); font-weight: 600; line-height: 1.2; margin: 0 0 .5em; }
.vrw-title { font-size: 2rem; }

/* Stars */
.vrw-stars { position: relative; display: inline-block; font-size: 1.1em; line-height: 1; letter-spacing: .1em; white-space: nowrap; vertical-align: middle; }
.vrw-stars::before { content: "★★★★★"; color: var(--vrw-border); }
.vrw-stars::after { content: "★★★★★"; position: absolute; left: 0; top: 0; width: var(--vrw-pct, 0%); overflow: hidden; color: var(--vrw-accent); }

/* Summary */
.vrw-head { margin-bottom: calc(var(--vrw-gap) * 1.25); }
.vrw-summary { display: grid; grid-template-columns: minmax(150px, 220px) 1fr; gap: calc(var(--vrw-gap) * 1.5); align-items: center; padding: var(--vrw-gap); background: var(--vrw-card); border: 1px solid var(--vrw-border); border-radius: var(--vrw-radius); }
.vrw-score { display: flex; flex-direction: column; gap: .25rem; }
.vrw-avg { font-family: var(--vrw-font-head); font-size: 3.25rem; line-height: 1; }
.vrw-count { color: var(--vrw-muted); font-size: .9rem; }
.vrw-dist { list-style: none; margin: 0; padding: 0; display: grid; gap: .3rem; }
.vrw-bar { display: grid; grid-template-columns: 4.5rem 1fr 2rem; gap: .6rem; align-items: center; width: 100%; padding: .15rem .25rem; background: none; border: 0; border-radius: 4px; color: inherit; font: inherit; font-size: .875rem; text-align: left; cursor: pointer; }
span.vrw-bar { cursor: default; }
.vrw-bar:hover, .vrw-bar[aria-pressed="true"] { background: var(--vrw-bg); }
.vrw-bar[aria-pressed="true"] .vrw-bar-label { font-weight: 600; }
.vrw-bar-track { height: 8px; background: var(--vrw-border); border-radius: 99px; overflow: hidden; }
.vrw-bar-fill { display: block; height: 100%; background: var(--vrw-accent); }
.vrw-bar-n { color: var(--vrw-muted); text-align: right; }
.vrw-note { margin: .75rem 0 0; font-size: .8125rem; color: var(--vrw-muted); max-width: 70ch; }
.vrw-summary-only { padding: 0; background: none; }

/* Toolbar */
.vrw-toolbar { display: flex; flex-wrap: wrap; gap: .75rem 1.25rem; align-items: center; margin-bottom: var(--vrw-gap); }
.vrw-toolbar label { display: inline-flex; gap: .5rem; align-items: center; font-size: .9rem; }
.vrw select, .vrw input[type="text"], .vrw input[type="email"], .vrw textarea {
	font: inherit; color: var(--vrw-text); background: var(--vrw-card); border: 1px solid var(--vrw-border);
	border-radius: var(--vrw-radius); padding: .55rem .7rem; max-width: 100%;
}
.vrw input[type="text"], .vrw input[type="email"], .vrw textarea { width: 100%; }
.vrw [aria-invalid="true"] { border-color: #a33a2a; }

/* Buttons */
.vrw-button { font: inherit; font-weight: 600; background: var(--vrw-button); color: var(--vrw-button-text); border: 1px solid var(--vrw-button); border-radius: var(--vrw-radius); padding: .7rem 1.5rem; cursor: pointer; }
.vrw-button:hover { filter: brightness(1.15); }
.vrw-button[disabled] { opacity: .6; cursor: progress; }
.vrw-button-ghost { background: transparent; color: var(--vrw-text); border-color: var(--vrw-border); }
.vrw-more-wrap { text-align: center; margin: var(--vrw-gap) 0 0; }

/* Review cards */
.vrw-list { display: block; }
.vrw-card { background: var(--vrw-card); border: var(--vrw-card-border-w) solid var(--vrw-card-border); border-radius: var(--vrw-radius); padding: var(--vrw-gap); margin-bottom: var(--vrw-gap); }
.vrw-card-title { font-size: 1.25rem; margin: .35rem 0 .15rem; }
.vrw-meta { margin: 0 0 .75rem; font-size: .875rem; color: var(--vrw-muted); display: flex; flex-wrap: wrap; gap: .25rem .75rem; align-items: center; }
.vrw-author { color: var(--vrw-text); font-weight: 600; }
.vrw-source { font-size: .8125rem; color: var(--vrw-muted); }
.vrw-verified { display: inline-flex; align-items: center; gap: .35em; padding: .15rem .65rem; border-radius: var(--vrw-badge-radius); background: var(--vrw-badge-bg); color: var(--vrw-badge-text); font-size: .8125rem; font-weight: 600; line-height: 1.4; }
.vrw-verified::before { content: "✓"; display: var(--vrw-badge-check-display); }
.vrw-text p { margin: 0 0 .75em; max-width: 68ch; }
.vrw-media { list-style: none; margin: .75rem 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: .5rem; }
.vrw-media .vrw-thumb, .vrw-gallery .vrw-thumb { display: block; overflow: hidden; border-radius: calc(var(--vrw-radius) * .75); background: var(--vrw-border); }
.vrw-media .vrw-thumb { width: var(--vrw-thumb); aspect-ratio: var(--vrw-ratio); }
.vrw-thumb img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .25s ease; }
.vrw-thumb:hover img { transform: scale(1.04); }
.vrw-video { width: calc(var(--vrw-thumb) * 2.2); max-width: 100%; border-radius: calc(var(--vrw-radius) * .75); background: #000; }
.vrw-card-foot { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; margin-top: 1rem; font-size: .8125rem; color: var(--vrw-muted); }
.vrw-vote { font: inherit; font-size: .8125rem; color: var(--vrw-vote); background: none; border: 1px solid var(--vrw-border); border: 1px solid color-mix(in srgb, var(--vrw-vote) 35%, transparent); border-radius: 99px; padding: .2rem .8rem; cursor: pointer; }
.vrw-vote[aria-pressed="true"] { border-color: var(--vrw-accent); }
.vrw-empty, .vrw-notice { padding: var(--vrw-gap); background: var(--vrw-card); border: 1px dashed var(--vrw-border); border-radius: var(--vrw-radius); color: var(--vrw-muted); margin: 0; }

/* Layouts */
.vrw-layout-default .vrw-card { border-width: 0 0 var(--vrw-card-border-w); border-radius: 0; background: transparent; padding-inline: 0; }
.vrw-layout-grid .vrw-list { display: grid; grid-template-columns: repeat(var(--vrw-review-cols), minmax(0, 1fr)); gap: var(--vrw-gap); align-items: start; }
.vrw-layout-grid .vrw-card, .vrw-layout-magazine .vrw-card { margin: 0; }
.vrw-layout-list .vrw-card { padding: calc(var(--vrw-gap) * .6) var(--vrw-gap); margin-bottom: calc(var(--vrw-gap) * .5); }
.vrw-layout-list .vrw-text p { margin-bottom: .4em; }
.vrw-layout-magazine .vrw-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--vrw-gap); align-items: start; }
.vrw-layout-magazine .vrw-card:first-child { grid-column: 1 / -1; padding: calc(var(--vrw-gap) * 2); }
.vrw-layout-magazine .vrw-card:first-child .vrw-text { font-family: var(--vrw-font-head); font-size: 1.5rem; line-height: 1.45; }
.vrw-layout-magazine .vrw-card:first-child .vrw-thumb { width: calc(var(--vrw-thumb) * 1.5); }
.vrw-layout-carousel .vrw-list { display: flex; gap: var(--vrw-gap); overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: .5rem; scrollbar-width: thin; }
.vrw-layout-carousel .vrw-card { flex: 0 0 min(85%, 340px); scroll-snap-align: start; margin: 0; }
.vrw-carousel-nav { display: flex; gap: .5rem; justify-content: flex-end; margin-top: .75rem; }
.vrw-carousel-nav button { width: 2.5rem; height: 2.5rem; font-size: 1.4rem; line-height: 1; color: var(--vrw-text); background: var(--vrw-card); border: 1px solid var(--vrw-border); border-radius: 50%; cursor: pointer; }

/* Shared fixes: photos fill their boxes, text wraps, name and badge share a row. */
.vrw-thumb { position: relative; }
.vrw-media .vrw-thumb img, .vrw-gallery-grid .vrw-thumb img, .vrw-gallery-carousel .vrw-thumb img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.vrw-text { overflow-wrap: anywhere; }
.vrw-byline { display: inline-flex; flex-wrap: wrap; align-items: center; gap: .15rem .6rem; min-width: 0; }
.vrw-write { display: none; }

/* Photo cards and Masonry wall: packed columns, each card keeps its natural height.
   Header and meta use display:contents so their children can be placed in the card grid. */
.vrw-layout-photo .vrw-list, .vrw-layout-wall .vrw-list { display: block; column-count: var(--vrw-review-cols); column-gap: var(--vrw-gap); }
.vrw-layout-photo .vrw-card, .vrw-layout-wall .vrw-card { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-content: start; break-inside: avoid; page-break-inside: avoid; -webkit-column-break-inside: avoid; margin: 0 0 var(--vrw-gap); padding: 0 0 .9rem; overflow: hidden; background: var(--vrw-card); }
.vrw-layout-photo .vrw-card-head, .vrw-layout-photo .vrw-meta, .vrw-layout-wall .vrw-card-head, .vrw-layout-wall .vrw-meta { display: contents; }
.vrw-layout-photo .vrw-media, .vrw-layout-wall .vrw-media { grid-row: 1; grid-column: 1 / -1; position: relative; display: block; margin: 0; padding: 0; }
.vrw-layout-photo .vrw-media li, .vrw-layout-wall .vrw-media li { display: none; }
.vrw-layout-photo .vrw-media li:first-child, .vrw-layout-wall .vrw-media li:first-child { display: block; }
.vrw-layout-photo .vrw-media .vrw-thumb, .vrw-layout-wall .vrw-media .vrw-thumb { width: 100%; border-radius: 0; }
.vrw-layout-photo .vrw-media .vrw-thumb { aspect-ratio: var(--vrw-ratio); }
.vrw-layout-wall .vrw-media .vrw-thumb { aspect-ratio: auto; }
.vrw-layout-wall .vrw-media .vrw-thumb img { position: static; height: auto; }
.vrw-layout-photo .vrw-media .vrw-video, .vrw-layout-wall .vrw-media .vrw-video { width: 100%; border-radius: 0; }
.vrw-layout-photo .vrw-media[data-vrw-more]:not([data-vrw-more="0"])::after, .vrw-layout-wall .vrw-media[data-vrw-more]:not([data-vrw-more="0"])::after { content: "+" attr(data-vrw-more); position: absolute; right: .6rem; bottom: .6rem; padding: .15rem .6rem; border-radius: 99px; background: rgba(46, 38, 32, .8); color: #fff; font-size: .8125rem; font-weight: 600; pointer-events: none; }

/* Photo cards rows: photo, name + badge, stars | date, title, text, helpful. */
.vrw-layout-photo .vrw-byline { grid-row: 2; grid-column: 1 / -1; padding: calc(var(--vrw-gap) * .9) calc(var(--vrw-gap) * .9) .4rem; font-size: 1.05rem; }
.vrw-layout-photo .vrw-author { font-weight: 700; }
.vrw-layout-photo .vrw-author::before, .vrw-layout-wall .vrw-author::before { content: ""; display: inline-block; width: 1.1em; height: 1.1em; margin-right: .5em; vertical-align: -.15em; background: currentColor; -webkit-mask: var(--vrw-bubble) center / contain no-repeat; mask: var(--vrw-bubble) center / contain no-repeat; }
.vrw-layout-photo .vrw-card .vrw-stars { grid-row: 3; grid-column: 1; align-self: center; margin-inline: calc(var(--vrw-gap) * .9); font-size: 1.25em; }
.vrw-layout-photo time { grid-row: 3; grid-column: 2; align-self: center; padding-inline-end: calc(var(--vrw-gap) * .9); font-style: italic; font-size: .875rem; white-space: normal; text-align: right; min-width: 0; }
.vrw-layout-photo .vrw-card-title { grid-row: 4; grid-column: 1 / -1; padding-inline: calc(var(--vrw-gap) * .9); font-size: 1.1rem; margin: .6rem 0 0; }
.vrw-layout-photo .vrw-text { grid-row: 5; grid-column: 1 / -1; padding-inline: calc(var(--vrw-gap) * .9); margin-top: .5rem; }
.vrw-layout-photo .vrw-card-foot { grid-row: 6; grid-column: 1 / -1; padding-inline: calc(var(--vrw-gap) * .9); }

.vrw-layout-photo .vrw-card, .vrw-layout-wall .vrw-card { max-width: 100%; }
.vrw-layout-photo .vrw-byline, .vrw-layout-photo .vrw-stars, .vrw-layout-photo time, .vrw-layout-photo .vrw-text, .vrw-layout-photo .vrw-card-foot,
.vrw-layout-wall .vrw-byline, .vrw-layout-wall .vrw-stars, .vrw-layout-wall time, .vrw-layout-wall .vrw-text, .vrw-layout-wall .vrw-card-foot { min-width: 0; }
.vrw-layout-photo .vrw-card { container-type: inline-size; }
/* Narrow cards (phones, 3+ columns): put the date under the stars instead of beside them, so nothing is cut off. */
@container (max-width: 340px) {
	.vrw-layout-photo time { grid-row: 4; grid-column: 1 / -1; justify-self: start; text-align: left; padding: .1rem calc(var(--vrw-gap) * .9) 0; }
	.vrw-layout-photo .vrw-card-title { grid-row: 5; }
	.vrw-layout-photo .vrw-text { grid-row: 6; }
	.vrw-layout-photo .vrw-card-foot { grid-row: 7; }
}

/* Masonry wall: compact rating bar, accent-bordered cards, photo at natural height. */
.vrw-layout-wall .vrw-write { display: inline-flex; align-items: center; background: var(--vrw-card); color: var(--vrw-text); border-color: var(--vrw-border); border-radius: 99px; text-decoration: none; padding: .55rem 1.1rem; font-weight: 500; }
.vrw-layout-wall .vrw-head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .5rem var(--vrw-gap); }
.vrw-layout-wall .vrw-title { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.vrw-layout-wall .vrw-summary { display: flex; padding: 0; background: none; border: 0; }
.vrw-layout-wall .vrw-score { flex-direction: row; align-items: center; gap: .6rem; }
.vrw-layout-wall .vrw-avg { font-size: 1.4rem; }
.vrw-layout-wall .vrw-dist { display: none; }
.vrw-layout-wall .vrw-note { flex: 1 0 100%; margin: 0; }
.vrw-layout-wall .vrw-card { border: var(--vrw-card-border-w) solid var(--vrw-card-border); border-radius: calc(var(--vrw-radius) * 2); }
.vrw-layout-wall .vrw-byline { grid-row: 2; grid-column: 1 / -1; padding: .8rem .9rem 0; }
.vrw-layout-wall .vrw-author { font-weight: 700; }
.vrw-layout-wall time { grid-row: 3; grid-column: 1 / -1; padding-inline: .9rem; font-size: .75rem; color: var(--vrw-muted); margin-top: .1rem; }
.vrw-layout-wall .vrw-card .vrw-stars { grid-row: 4; grid-column: 1 / -1; justify-self: start; margin: .5rem .9rem .25rem; font-size: 1em; letter-spacing: .12em; }
.vrw-layout-wall .vrw-card-title { grid-row: 5; grid-column: 1 / -1; padding-inline: .9rem; font-size: 1rem; margin: .25rem 0 0; }
.vrw-layout-wall .vrw-text { grid-row: 6; grid-column: 1 / -1; padding-inline: .9rem; margin-top: .35rem; font-size: .95rem; }
.vrw-layout-wall .vrw-card-foot { grid-row: 7; grid-column: 1 / -1; padding-inline: .9rem; }
.vrw-layout-photo .vrw-text p:last-child, .vrw-layout-wall .vrw-text p:last-child { margin-bottom: 0; }
.vrw-layout-photo, .vrw-layout-wall { --vrw-bubble: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4 3h16a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2H9l-5 4v-4H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2z'/%3E%3C/svg%3E"); }
@media (max-width: 900px) { .vrw-layout-photo .vrw-list, .vrw-layout-wall .vrw-list { column-count: min(var(--vrw-review-cols), 2); } }
@media (max-width: 560px) { .vrw-layout-photo .vrw-list, .vrw-layout-wall .vrw-list { column-count: 1; } }

/* Homepage review slider (marquee): reuses the Photo cards card design. */
.vrw-marquee { --vrw-card-w: 300px; background: transparent; padding: 0; margin: 1.5em 0; overflow: hidden; }
.vrw-marquee-bar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .75rem var(--vrw-gap); margin-bottom: var(--vrw-gap); padding-inline: var(--vrw-gap); }
.vrw-marquee-heading { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem var(--vrw-gap); min-width: 0; }
.vrw-marquee-heading .vrw-title { margin: 0; }
.vrw-marquee-heading .vrw-summary { padding: 0; background: none; border: 0; display: flex; }
.vrw-marquee-heading .vrw-score { flex-direction: row; align-items: center; gap: .6rem; }
.vrw-marquee-heading .vrw-avg { font-size: 1.4rem; }
.vrw-marquee-toggle { padding: .35rem 1rem; font-size: .8125rem; }
.vrw-marquee-row { overflow: hidden; margin-bottom: var(--vrw-gap); -webkit-mask-image: linear-gradient(to right, transparent, #000 4%, #000 96%, transparent); mask-image: linear-gradient(to right, transparent, #000 4%, #000 96%, transparent); }
.vrw-marquee-track { display: flex; width: max-content; animation-duration: var(--vrw-dur, 60s); animation-timing-function: linear; animation-iteration-count: infinite; will-change: transform; }
.vrw-row-ltr .vrw-marquee-track { animation-name: vrw-scroll-right; } /* cards travel left to right */
.vrw-row-rtl .vrw-marquee-track { animation-name: vrw-scroll-left; }  /* cards travel right to left */
@keyframes vrw-scroll-left { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@keyframes vrw-scroll-right { from { transform: translateX(-50%); } to { transform: translateX(0); } }
.vrw-marquee:hover .vrw-marquee-track, .vrw-marquee:focus-within .vrw-marquee-track, .vrw-marquee.is-paused .vrw-marquee-track, body.vrw-lb-open .vrw-marquee-track { animation-play-state: paused; }
.vrw-marquee-group { display: flex; flex: none; align-items: flex-start; gap: var(--vrw-gap); padding-right: var(--vrw-gap); }
/* Cards keep their own height, so a photo card does not stretch the text-only cards beside it. */
.vrw-marquee--align-center .vrw-marquee-group { align-items: center; }
.vrw-marquee--align-stretch .vrw-marquee-group { align-items: stretch; }
.vrw-marquee .vrw-card { flex: 0 0 var(--vrw-card-w); width: var(--vrw-card-w); margin: 0; grid-template-rows: auto auto auto auto auto 1fr auto; align-content: stretch; }
.vrw-marquee .vrw-card time { grid-row: 4; grid-column: 1 / -1; justify-self: start; text-align: left; padding: .1rem calc(var(--vrw-gap) * .9) 0; }
.vrw-marquee .vrw-card .vrw-card-title { grid-row: 5; }
.vrw-marquee .vrw-card .vrw-text { grid-row: 6; display: -webkit-box; -webkit-line-clamp: 4; -webkit-box-orient: vertical; overflow: hidden; }
.vrw-marquee .vrw-card .vrw-card-foot { grid-row: 7; }
.vrw-marquee .vrw-card:not(:has(.vrw-media)) .vrw-text { -webkit-line-clamp: 6; } /* more room for text when there is no photo */
.vrw-marquee .vrw-media .vrw-thumb { aspect-ratio: var(--vrw-marquee-ratio, 1 / 1); }
.vrw-marquee .vrw-vote, .vrw-marquee .vrw-helpful-label { display: none; }
.vrw-marquee .vrw-product-line { order: -1; flex: 1 0 100%; margin-bottom: .25rem; font-size: .8125rem; color: var(--vrw-muted); text-decoration: none; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.vrw-marquee .vrw-product-line:hover { color: var(--vrw-link-hover); text-decoration: underline; }
.vrw-marquee--noproduct .vrw-product-line { display: none; }
@media (prefers-reduced-motion: reduce) {
	.vrw-marquee-track { animation: none !important; }
	.vrw-marquee-row { overflow-x: auto; -webkit-mask-image: none; mask-image: none; }
	.vrw-marquee-group[data-vrw-dup] { display: none; }
	.vrw-marquee-toggle { display: none; }
}

/* Review popup */
body.vrw-lb-open { overflow: hidden; }
.vrw-card { cursor: pointer; }
.vrw-card a, .vrw-card button, .vrw-card video { cursor: pointer; }
.vrw-open { font: inherit; font-size: .8125rem; font-weight: 600; color: var(--vrw-text); background: none; border: 0; padding: .2rem 0; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; margin-right: auto; }
.vrw-modal { position: fixed; inset: 0; z-index: 100000; display: flex; align-items: center; justify-content: center; padding: 1rem; background: rgba(28, 22, 18, .82); color: var(--vrw-text); font-family: var(--vrw-font-body); line-height: 1.6; }
.vrw-modal *, .vrw-modal *::before, .vrw-modal *::after { box-sizing: border-box; }
.vrw-modal-box { position: relative; display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); width: min(980px, 100%); max-height: 92vh; background: var(--vrw-card); border-radius: calc(var(--vrw-radius) * 2); box-shadow: 0 20px 60px rgba(0, 0, 0, .35); }
.vrw-modal-nomedia { grid-template-columns: minmax(0, 1fr); width: min(560px, 100%); }
.vrw-modal-nomedia .vrw-modal-body { border-radius: calc(var(--vrw-radius) * 2); }
.vrw-modal-media { position: relative; display: flex; flex-direction: column; justify-content: center; gap: .5rem; background: #1c1612; min-height: 240px; max-height: 92vh; overflow: auto; border-radius: calc(var(--vrw-radius) * 2) 0 0 calc(var(--vrw-radius) * 2); }
.vrw-modal-media img { display: block; width: 100%; height: auto; max-height: 92vh; object-fit: contain; }
.vrw-modal-media video { display: block; width: 100%; max-height: 70vh; background: #000; }
.vrw-modal-count { position: absolute; left: .75rem; bottom: .75rem; padding: .15rem .6rem; border-radius: 99px; background: rgba(28, 22, 18, .75); color: #fff; font-size: .75rem; }
.vrw-modal .vrw-modal-nav { position: absolute; top: 50%; transform: translateY(-50%); width: 2.5rem; height: 2.5rem; border-radius: 50%; border: 1px solid rgba(250, 246, 238, .4); background: rgba(28, 22, 18, .6); color: #faf6ee; font-size: 1.5rem; line-height: 1; cursor: pointer; }
.vrw-modal-prev { left: .6rem; } .vrw-modal-next { right: .6rem; }
.vrw-modal-body { padding: calc(var(--vrw-gap) * 1.5) calc(var(--vrw-gap) * 1.5) calc(var(--vrw-gap) * 1.25); max-height: 92vh; overflow: auto; min-width: 0; background: var(--vrw-card); border-radius: 0 calc(var(--vrw-radius) * 2) calc(var(--vrw-radius) * 2) 0; }
.vrw-modal-body .vrw-author { font-weight: 700; font-size: 1.1rem; }
.vrw-modal-date { margin: .25rem 0 0; font-size: .8125rem; color: var(--vrw-muted); font-style: italic; }
.vrw-modal-title { font-family: var(--vrw-font-head); font-size: 1.4rem; line-height: 1.25; margin: 1rem 0 0; }
.vrw-modal-text { margin-top: .75rem; overflow-wrap: anywhere; }
.vrw-modal-text p { margin: 0 0 .75em; }
.vrw-modal-link { display: inline-block; margin-top: 1rem; color: var(--vrw-text); font-size: .875rem; }
/* Buttons inside the popup: reset theme button styles so they look the same on every site. */
.vrw-modal button { -webkit-appearance: none; appearance: none; margin: 0; padding: 0; min-width: 0; min-height: 0; font-family: inherit; text-transform: none; letter-spacing: normal; box-shadow: none; text-shadow: none; }
.vrw-modal .vrw-modal-box .vrw-modal-close { position: absolute; top: -14px; right: -14px; z-index: 3; display: block; width: 2.6rem; height: 2.6rem; border-radius: 50%; border: 2px solid #fff; background: #1c1612; color: #fff; cursor: pointer; box-shadow: 0 2px 10px rgba(0, 0, 0, .4); }
.vrw-modal .vrw-modal-box .vrw-modal-close::before, .vrw-modal .vrw-modal-box .vrw-modal-close::after { content: ""; position: absolute; left: 50%; top: 50%; width: 1.1rem; height: 2px; border-radius: 2px; background: currentColor; transform: translate(-50%, -50%) rotate(45deg); }
.vrw-modal .vrw-modal-box .vrw-modal-close::after { transform: translate(-50%, -50%) rotate(-45deg); }
.vrw-modal .vrw-modal-box .vrw-modal-close:hover { background: var(--vrw-accent); }
.vrw-modal-body .vrw-stars { display: block; font-size: 1.3em; margin: 0; }
.vrw-modal-body .vrw-byline { display: flex; flex-wrap: wrap; align-items: center; gap: .25rem .6rem; margin: .6rem 0 0; }
.vrw-modal :focus-visible { outline: 2px solid var(--vrw-accent); outline-offset: 2px; }
@media (max-width: 720px) {
	.vrw-modal-box { grid-template-columns: minmax(0, 1fr); overflow: auto; }
	.vrw-modal-media { min-height: 0; max-height: none; border-radius: calc(var(--vrw-radius) * 2) calc(var(--vrw-radius) * 2) 0 0; }
	.vrw-modal-media img { max-height: 55vh; }
	.vrw-modal-body { max-height: none; overflow: visible; border-radius: 0 0 calc(var(--vrw-radius) * 2) calc(var(--vrw-radius) * 2); }
	.vrw-modal .vrw-modal-box .vrw-modal-close { position: fixed; top: .75rem; right: .75rem; }
}

/* Form */
.vrw-form-wrap { margin-top: calc(var(--vrw-gap) * 2); padding: calc(var(--vrw-gap) * 1.25); background: var(--vrw-card); border: 1px solid var(--vrw-border); border-radius: var(--vrw-radius); }
.vrw-field { margin: 0 0 1rem; border: 0; padding: 0; min-width: 0; }
.vrw-field > label, .vrw-field > legend { display: block; font-weight: 600; margin-bottom: .35rem; padding: 0; }
.vrw-opt { color: var(--vrw-muted); font-weight: 400; font-size: .85em; }
.vrw-row { display: grid; grid-template-columns: 1fr 1fr; gap: var(--vrw-gap); }
.vrw-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.vrw-star-input { display: inline-flex; flex-direction: row-reverse; justify-content: flex-end; gap: .15rem; }
.vrw-star-input input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.vrw-star-input label { cursor: pointer; font-size: 2rem; line-height: 1; color: var(--vrw-border); padding: .1rem; }
.vrw-star-input label::before { content: "★"; }
.vrw-star-input input:checked ~ label, .vrw-star-input label:hover, .vrw-star-input label:hover ~ label { color: var(--vrw-accent); }
.vrw-star-input input:focus-visible + label { outline: 2px solid var(--vrw-accent); border-radius: 4px; }
.vrw-previews { list-style: none; margin: .6rem 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: .5rem; }
.vrw-previews li { position: relative; width: 84px; aspect-ratio: var(--vrw-ratio); border-radius: calc(var(--vrw-radius) * .75); overflow: hidden; background: var(--vrw-border); font-size: .7rem; }
.vrw-previews img { width: 100%; height: 100%; object-fit: cover; display: block; }
.vrw-file-name { display: block; padding: .4rem; word-break: break-all; }
.vrw-remove { position: absolute; top: 3px; right: 3px; width: 22px; height: 22px; padding: 0; line-height: 1; border: 0; border-radius: 50%; background: rgba(46, 38, 32, .85); color: #fff; cursor: pointer; }
.vrw-terms { font-size: .85rem; color: var(--vrw-muted); max-width: 70ch; }
.vrw-status { min-height: 1.5em; margin: .5rem 0; font-weight: 600; }
.vrw-status.is-error { color: #a33a2a; }
.vrw-status.is-ok { color: #3f6b3a; }
.vrw-progress { height: 6px; background: var(--vrw-border); border-radius: 99px; overflow: hidden; margin-bottom: .75rem; }
.vrw-progress span { display: block; height: 100%; width: 0; background: var(--vrw-accent); transition: width .15s linear; }

/* Gallery */
.vrw-gallery-wrap { padding: 0; background: none; }
.vrw-gallery-filter { margin-bottom: var(--vrw-gap); }
.vrw-gallery { list-style: none; margin: 0; padding: 0; }
.vrw-gallery-grid { display: grid; grid-template-columns: repeat(var(--vrw-cols), minmax(0, 1fr)); gap: calc(var(--vrw-gap) * .5); }
.vrw-gallery-grid .vrw-thumb { aspect-ratio: var(--vrw-ratio); }
.vrw-gallery-masonry { column-count: var(--vrw-cols); column-gap: calc(var(--vrw-gap) * .5); }
.vrw-gallery-masonry li { break-inside: avoid; margin-bottom: calc(var(--vrw-gap) * .5); }
.vrw-gallery-masonry .vrw-thumb img { height: auto; }
.vrw-gallery-carousel { display: flex; gap: calc(var(--vrw-gap) * .5); overflow-x: auto; scroll-snap-type: x mandatory; }
.vrw-gallery-carousel li { flex: 0 0 clamp(140px, 22%, 240px); scroll-snap-align: start; }
.vrw-gallery-carousel .vrw-thumb { aspect-ratio: var(--vrw-ratio); }


@media (max-width: 720px) {
	.vrw-summary { grid-template-columns: 1fr; }
	.vrw-layout-grid .vrw-list, .vrw-layout-magazine .vrw-list { grid-template-columns: 1fr; }
	.vrw-row { grid-template-columns: 1fr; }
	.vrw-gallery-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.vrw-gallery-masonry { column-count: 2; }
}
@media (max-width: 560px) {
	.vrw { padding-inline: .75rem; }
	.vrw-card-foot { gap: .4rem; }
}
@media (prefers-reduced-motion: reduce) { .vrw * { transition: none !important; scroll-behavior: auto !important; } }
