/*
 * Rota Rehber blocks: businesses, daily information, listings, events, ads,
 * packages and the app bar. Colours come from the theme presets through the
 * --rc-* variables of the Rota framework.
 */
.rota-block, .rota-account, .rr-popup {
	--rr-open: var(--wp--preset--color--success, #1e7a46);
	--rr-open-soft: var(--wp--preset--color--success-soft, #e6f5ec);
	--rr-closed: var(--wp--preset--color--danger, #b32d2e);
	--rr-gold: #8a5a00;
	--rr-gold-soft: #fff3d6;
	--rr-wa: #0d7a3c;
}

/* Shared bits */
.rr-grid { display: grid; gap: 20px; grid-template-columns: repeat(var(--rota-cols, 3), minmax(0, 1fr)); }
@media (max-width: 960px) { .rr-grid { grid-template-columns: repeat(min(var(--rota-cols, 3), 2), minmax(0, 1fr)); } }
@media (max-width: 600px) { .rr-grid { grid-template-columns: minmax(0, 1fr); gap: 14px; } }
.rr-h { display: flex; align-items: center; gap: 10px; margin: 0 0 6px; font-size: 1.35rem; }
.rr-h .rota-svg { color: var(--rc-primary); }
.rr-muted { margin: 0 0 16px; color: var(--rc-muted); }
.rr-note { margin: 10px 0 0; color: var(--rc-subtle); font-size: .8125rem; }
.rr-none { padding: 32px 16px; text-align: center; color: var(--rc-muted); background: var(--rc-sunken); border-radius: var(--rc-radius); }
.rr-meta { display: flex; align-items: center; gap: 6px; margin: 0; color: var(--rc-subtle); font-size: .875rem; line-height: 1.4; }
.rr-meta .rota-svg { flex-shrink: 0; }
.rr-badges { display: flex; flex-wrap: wrap; gap: 6px; }
.rr-badge { display: inline-flex; align-items: center; gap: 4px; padding: 3px 10px; border-radius: 999px; font-size: .75rem; font-weight: 600; background: var(--rc-sunken); color: var(--rc-muted); line-height: 1.4; }
.rr-badge-star { background: var(--rr-gold-soft); color: var(--rr-gold); }
.rr-badge-founder { background: var(--rc-primary-soft); color: var(--rc-primary-strong); }
.rr-badge-verified { background: var(--rr-open-soft); color: var(--rr-open); }
.rr-badge-ok { background: var(--rr-open-soft); color: var(--rr-open); }
.rr-badge-wait { background: #fff2de; color: #8a4a00; }
.rr-chips { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; }
.rr-chip { display: inline-flex; align-items: center; gap: 6px; min-height: 36px; padding: 0 14px; border: 1px solid var(--rc-line); border-radius: 999px; background: var(--rc-base); color: var(--rc-text); text-decoration: none; font-size: .875rem; font-weight: 500; }
.rr-chip:hover { border-color: var(--rc-primary); color: var(--rc-primary); }
.rr-chip .rota-svg { color: var(--rc-primary); }
.rr-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 44px; padding: 0 18px; border-radius: var(--rc-radius-md); border: 1px solid var(--rc-primary); background: var(--rc-primary); color: var(--rc-on-primary); font: inherit; font-weight: 600; text-decoration: none; cursor: pointer; white-space: nowrap; }
.rr-btn:hover { background: var(--rc-primary-strong); border-color: var(--rc-primary-strong); color: var(--rc-on-primary); }
.rr-btn:focus-visible, .rr-act:focus-visible, .rr-chip:focus-visible { outline: 2px solid var(--rc-primary); outline-offset: 2px; }
.rr-btn-outline { background: var(--rc-base); color: var(--rc-primary); }
.rr-btn-outline:hover { background: var(--rc-primary-soft); color: var(--rc-primary-strong); }
.rr-btn-wa { background: var(--rr-wa); border-color: var(--rr-wa); }
.rr-btn-wa:hover { background: #0a6331; border-color: #0a6331; }
.rr-btn-light { background: #fff; color: var(--rc-primary-strong); border-color: #fff; }
.rr-btn-light:hover { background: var(--rc-primary-soft); color: var(--rc-primary-strong); border-color: var(--rc-primary-soft); }
.rr-btn-ghost-light { background: transparent; color: #fff; border-color: rgba(255, 255, 255, .6); }
.rr-btn-ghost-light:hover { background: rgba(255, 255, 255, .12); color: #fff; }
.rr-open { display: inline-flex; align-items: center; gap: 6px; margin: 0; font-size: .8125rem; font-weight: 600; color: var(--rc-muted); }
.rr-open i { width: 8px; height: 8px; border-radius: 50%; background: var(--rc-line-strong); }
.rr-open.is-open { color: var(--rr-open); }
.rr-open.is-open i { background: var(--rr-open); box-shadow: 0 0 0 3px var(--rr-open-soft); }
.rr-open.is-closed { color: var(--rr-closed); }
.rr-open.is-closed i { background: var(--rr-closed); }
.rr-price { margin: 0; font-weight: 700; font-size: 1.05rem; color: var(--rc-text); font-variant-numeric: tabular-nums; }
.rr-price-lg { font-size: 1.6rem; margin-bottom: 12px; }
.rr-row { display: grid; gap: 0 16px; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); }

/* Business card */
.rr-firm { position: relative; display: flex; flex-direction: column; background: var(--rc-base); border: 1px solid var(--rc-line); border-radius: var(--rc-radius); box-shadow: var(--rc-shadow); overflow: hidden; }
.rr-firm.is-star { border-color: #e7c66b; box-shadow: 0 0 0 1px #e7c66b, var(--rc-shadow); }
.rr-firm-img, .rr-listing-img, .rr-event-img { position: relative; display: block; aspect-ratio: 16 / 10; background: var(--rc-sunken); overflow: hidden; }
.rr-firm-img img, .rr-listing-img img, .rr-event-img img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .3s ease; }
.rr-firm:hover .rr-firm-img img, .rr-listing:hover img, .rr-event:hover img { transform: scale(1.03); }
.rr-firm-ph { width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; color: var(--rc-primary); background: var(--rc-primary-soft); }
.rr-firm-body, .rr-listing-body { display: flex; flex-direction: column; gap: 6px; padding: 14px 16px 12px; flex: 1; }
.rr-firm-title { margin: 0; font-size: 1.08rem; line-height: 1.3; }
.rr-firm-title a { color: inherit; text-decoration: none; }
.rr-firm-title a::after { content: ""; position: absolute; inset: 0; }
.rr-firm-title a:focus-visible { outline: none; }
.rr-firm:has(.rr-firm-title a:focus-visible), .rr-listing:has(.rr-firm-title a:focus-visible), .rr-event:has(.rr-firm-title a:focus-visible) { outline: 2px solid var(--rc-primary); outline-offset: 2px; }
.rr-firm-actions { position: relative; z-index: 1; display: flex; border-top: 1px solid var(--rc-line); }
.rr-act { flex: 1; display: inline-flex; align-items: center; justify-content: center; gap: 6px; min-height: 46px; padding: 0 8px; color: var(--rc-primary); text-decoration: none; font-size: .8125rem; font-weight: 600; }
.rr-act + .rr-act { border-left: 1px solid var(--rc-line); }
.rr-act:hover { background: var(--rc-primary-soft); }
.rr-act-wa { color: var(--rr-wa); }
@media (max-width: 600px) {
	.rr-firms-block .rr-firm { display: grid; grid-template-columns: 112px minmax(0, 1fr); }
	.rr-firms-block .rr-firm-img { aspect-ratio: auto; grid-row: span 2; min-height: 100%; }
	.rr-firms-block .rr-firm-body { padding: 12px 14px 8px; }
	.rr-firms-block .rr-firm-actions { grid-column: 2; }
	.rr-act span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; }
	.rr-act { min-height: 42px; position: relative; }
}

/* Filters */
.rr-filters { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin: 0 0 20px; padding: 14px; background: var(--rc-base); border: 1px solid var(--rc-line); border-radius: var(--rc-radius); }
.rr-filters input[type=search], .rr-filters select { min-height: 44px; padding: 0 12px; border: 1px solid var(--rc-line-strong); border-radius: var(--rc-radius-md); background: var(--rc-base); color: var(--rc-text); font: inherit; max-width: 100%; }
.rr-filter-q { flex: 1 1 240px; position: relative; display: flex; align-items: center; }
.rr-filter-q .rota-svg { position: absolute; left: 12px; color: var(--rc-subtle); pointer-events: none; }
.rr-filter-q input[type=search] { width: 100%; padding-left: 38px; }
.rr-filter-sel { flex: 0 1 200px; }
.rr-filter-sel select { width: 100%; }
.rr-check { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 6px; font-weight: 500; cursor: pointer; }
.rr-check input { width: 18px; height: 18px; accent-color: var(--rc-primary); }
.rr-count { flex-basis: 100%; margin: 0; color: var(--rc-subtle); font-size: .875rem; }
.rr-count a { color: var(--rc-primary); }
@media (max-width: 600px) { .rr-filter-sel { flex: 1 1 calc(50% - 5px); } .rr-filters .rr-btn { flex: 1 1 100%; } }
.rr-pager { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px; margin-top: 24px; }
.rr-pager a, .rr-pager span { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; border: 1px solid var(--rc-line); border-radius: var(--rc-radius-md); text-decoration: none; color: var(--rc-text); font-weight: 600; }
.rr-pager span { background: var(--rc-primary); border-color: var(--rc-primary); color: var(--rc-on-primary); }

/* Search */
.rr-search form { display: flex; gap: 8px; padding: 8px; background: var(--rc-base); border-radius: calc(var(--rc-radius) + 4px); box-shadow: 0 12px 32px rgba(14, 30, 61, .16); }
.rr-search label { flex: 1; position: relative; display: flex; align-items: center; }
.rr-search label .rota-svg { position: absolute; left: 14px; color: var(--rc-subtle); pointer-events: none; }
.rr-search input[type=search] { width: 100%; min-height: 52px; padding: 0 14px 0 46px; border: 0; background: transparent; font: inherit; font-size: 1.05rem; color: var(--rc-text); }
.rr-search input[type=search]:focus-visible { outline: 2px solid var(--rc-primary); outline-offset: 0; border-radius: var(--rc-radius-md); }
.rr-search .rr-btn { min-height: 52px; padding: 0 24px; }
.rr-search .rr-chips { margin-top: 14px; }
/* Phones and tablets: the quick category chips under the hero search form one
   swipeable row, so the hero keeps its height while the fonts load. */
@media (max-width: 1023px) {
	.rr-search .rr-chips { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; -webkit-overflow-scrolling: touch; scroll-snap-type: x proximity; padding-bottom: 2px; margin-right: calc(-1 * var(--wp--style--root--padding-right, 16px)); padding-right: var(--wp--style--root--padding-right, 16px); }
	.rr-search .rr-chips::-webkit-scrollbar { display: none; }
	.rr-search .rr-chip { flex: 0 0 auto; scroll-snap-align: start; }
}
@media (max-width: 600px) { .rr-search .rr-btn { padding: 0 16px; } .rr-search input[type=search] { font-size: 1rem; } }

/* Categories */
.rr-sectors { display: grid; gap: 12px; grid-template-columns: repeat(var(--rota-cols, 4), minmax(0, 1fr)); margin: 0; padding: 0; list-style: none; }
@media (max-width: 960px) { .rr-sectors { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 600px) { .rr-sectors { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; } }
.rr-sectors a { display: grid; grid-template-columns: auto minmax(0, 1fr); grid-template-rows: auto auto; align-items: center; column-gap: 12px; min-height: 72px; padding: 12px 14px; background: var(--rc-base); border: 1px solid var(--rc-line); border-radius: var(--rc-radius); color: var(--rc-text); text-decoration: none; transition: border-color .15s, transform .15s; }
.rr-sectors a:hover { border-color: var(--rc-primary); transform: translateY(-2px); }
.rr-sectors a:focus-visible { outline: 2px solid var(--rc-primary); outline-offset: 2px; }
.rr-sector-ico { grid-row: span 2; display: flex; align-items: center; justify-content: center; width: 46px; height: 46px; border-radius: 12px; background: var(--rc-primary-soft); color: var(--rc-primary); }
.rr-sector-name { font-weight: 600; line-height: 1.25; }
.rr-sector-n { color: var(--rc-subtle); font-size: .8125rem; }

/* Business details */
.rr-info { display: flex; flex-direction: column; gap: 14px; padding: 20px; background: var(--rc-base); border: 1px solid var(--rc-line); border-radius: var(--rc-radius); box-shadow: var(--rc-shadow); }
.rr-info-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.rr-info-actions .rr-btn { flex: 1 1 auto; }
.rr-info-list { display: flex; flex-direction: column; gap: 10px; margin: 0; }
.rr-info-list div { display: flex; gap: 10px; align-items: flex-start; }
.rr-info-list dt { color: var(--rc-primary); padding-top: 2px; }
.rr-info-list dd { margin: 0; overflow-wrap: anywhere; }
.rr-info-list a { color: var(--rc-text); }
.rr-info-h { margin: 6px 0 0; font-size: 1rem; }
.rr-hours { width: 100%; border-collapse: collapse; font-size: .9375rem; font-variant-numeric: tabular-nums; }
.rr-hours th, .rr-hours td { padding: 6px 0; text-align: left; border-bottom: 1px solid var(--rc-line); font-weight: 400; }
.rr-hours td { text-align: right; }
.rr-hours tr.is-today th, .rr-hours tr.is-today td { font-weight: 700; color: var(--rc-primary); }
.rr-claim { display: flex; gap: 10px; align-items: center; margin: 0; padding: 12px 14px; border-radius: var(--rc-radius-md); background: var(--rc-sunken); font-size: .875rem; }
.rr-claim a { color: var(--rc-primary); font-weight: 600; }

/* Today panel */
.rr-today { padding: 22px; border-radius: calc(var(--rc-radius) + 4px); background: var(--rc-primary-strong); color: var(--rc-on-primary); box-shadow: 0 12px 32px rgba(14, 30, 61, .18); }
.rr-today-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; margin-bottom: 16px; }
.rr-today-date { margin: 0; opacity: .85; font-size: .875rem; }
.rr-today-title { margin: 2px 0 0; font-size: 1.35rem; color: inherit; }
.rr-today-city { display: inline-flex; align-items: center; gap: 6px; margin: 0; padding: 6px 12px; border-radius: 999px; background: rgba(255, 255, 255, .14); font-size: .8125rem; font-weight: 600; }
.rr-today-tiles { display: grid; gap: 10px; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); margin: 0; padding: 0; list-style: none; }
.rr-today-tiles a, .rr-today-tiles div { display: flex; align-items: center; gap: 12px; height: 100%; padding: 12px; border-radius: var(--rc-radius-md); background: rgba(255, 255, 255, .1); color: inherit; text-decoration: none; }
.rr-today-tiles a:hover { background: rgba(255, 255, 255, .2); }
.rr-today-tiles a:focus-visible { outline: 2px solid #fff; outline-offset: 2px; }
.rr-tile-ico { display: flex; align-items: center; justify-content: center; width: 42px; height: 42px; border-radius: 12px; background: rgba(255, 255, 255, .16); flex-shrink: 0; }
.rr-tile-txt { display: flex; flex-direction: column; min-width: 0; }
.rr-tile-txt b { font-size: 1.05rem; line-height: 1.25; font-variant-numeric: tabular-nums; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.rr-tile-txt small { font-size: .8125rem; }
@media (max-width: 600px) { .rr-today { padding: 16px; } .rr-today-tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; } .rr-today-tiles a, .rr-today-tiles div { flex-direction: column; align-items: flex-start; gap: 8px; } }

/* Pharmacies */
.rr-pharm-list { display: grid; gap: 12px; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); margin: 0; padding: 0; list-style: none; }
.rr-pharm { display: flex; flex-direction: column; justify-content: space-between; background: var(--rc-base); border: 1px solid var(--rc-line); border-radius: var(--rc-radius); overflow: hidden; }
.rr-pharm > div:first-child { padding: 14px 16px; }
.rr-pharm h3 { margin: 0 0 4px; font-size: 1.05rem; }
.rr-pharm.is-duty { border-color: var(--rr-closed); box-shadow: inset 4px 0 0 var(--rr-closed); }
.rr-pharm .rr-act span { display: inline; position: static; width: auto; height: auto; overflow: visible; clip: auto; clip-path: none; }
.rr-more { margin-top: 16px; }
.rr-more summary, .rr-line summary { cursor: pointer; font-weight: 600; color: var(--rc-primary); min-height: 44px; display: flex; align-items: center; }
.rr-more .rr-pharm-list { margin-top: 8px; }

/* Prayer times */
.rr-prayer-grid { display: grid; gap: 8px; grid-template-columns: repeat(6, minmax(0, 1fr)); margin: 0; padding: 0; list-style: none; }
@media (max-width: 700px) { .rr-prayer-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.rr-prayer-grid li { display: flex; flex-direction: column; align-items: center; gap: 2px; padding: 12px 6px; border-radius: var(--rc-radius-md); background: var(--rc-sunken); }
.rr-prayer-grid span { color: var(--rc-muted); font-size: .8125rem; }
.rr-prayer-grid b { font-size: 1.2rem; font-variant-numeric: tabular-nums; }
.rr-prayer-grid li.is-next { background: var(--rc-primary); color: var(--rc-on-primary); }
.rr-prayer-grid li.is-next span { color: inherit; opacity: .9; }

/* Weather */
.rr-weather { display: flex; flex-wrap: wrap; gap: 16px 32px; align-items: center; padding: 20px; background: var(--rc-base); border: 1px solid var(--rc-line); border-radius: var(--rc-radius); }
.rr-weather-now { display: grid; grid-template-columns: auto auto; gap: 4px 14px; align-items: center; }
.rr-weather-now .rr-tile-ico { width: 56px; height: 56px; background: var(--rc-primary-soft); color: var(--rc-primary); border-radius: 16px; }
.rr-weather-now b { display: block; font-size: 2rem; line-height: 1; }
.rr-weather-now p { grid-column: span 2; margin: 0; }
.rr-weather-days { display: flex; gap: 10px; margin: 0; padding: 0; list-style: none; flex-wrap: wrap; }
.rr-weather-days li { display: flex; flex-direction: column; align-items: center; gap: 4px; padding: 10px 14px; border-radius: var(--rc-radius-md); background: var(--rc-sunken); font-size: .875rem; }
.rr-weather .rr-note { flex-basis: 100%; margin: 0; }

/* Lines */
.rr-line-list { display: grid; gap: 12px; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); margin: 0; padding: 0; list-style: none; }
.rr-line { padding: 14px 16px; background: var(--rc-base); border: 1px solid var(--rc-line); border-radius: var(--rc-radius); }
.rr-line-head { display: flex; justify-content: space-between; gap: 12px; }
.rr-line h3 { margin: 0 0 2px; font-size: 1.05rem; }
.rr-line-next { margin: 0; text-align: right; display: flex; flex-direction: column; }
.rr-line-next b { font-size: 1.5rem; line-height: 1.1; color: var(--rc-primary); font-variant-numeric: tabular-nums; }
.rr-line-next small { color: var(--rc-subtle); font-size: .8125rem; }
.rr-times { display: flex; flex-wrap: wrap; gap: 6px; margin: 4px 0 0; font-variant-numeric: tabular-nums; }
.rr-times span { padding: 4px 8px; border-radius: 6px; background: var(--rc-sunken); font-size: .875rem; }
.rr-times span.is-past { color: var(--rc-subtle); text-decoration: line-through; }
.rr-times span.is-next { background: var(--rc-primary); color: var(--rc-on-primary); font-weight: 700; }

/* Numbers */
.rr-numbers { display: grid; gap: 16px; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); }
.rr-numbers section { padding: 16px; background: var(--rc-base); border: 1px solid var(--rc-line); border-radius: var(--rc-radius); }
.rr-numbers h3 { margin: 0 0 8px; font-size: 1rem; }
.rr-numbers ul { margin: 0; padding: 0; list-style: none; }
.rr-numbers li { display: flex; justify-content: space-between; align-items: center; gap: 10px; min-height: 44px; border-bottom: 1px solid var(--rc-line); }
.rr-numbers li:last-child { border-bottom: 0; }
.rr-numbers a { display: inline-flex; align-items: center; gap: 6px; font-weight: 700; color: var(--rc-primary); text-decoration: none; white-space: nowrap; font-variant-numeric: tabular-nums; }

/* Listings and events */
.rr-listing, .rr-event { position: relative; display: flex; flex-direction: column; background: var(--rc-base); border: 1px solid var(--rc-line); border-radius: var(--rc-radius); box-shadow: var(--rc-shadow); overflow: hidden; }
.rr-listing .rr-badge, .rr-event .rr-badge { align-self: flex-start; }
.rr-listing-img { aspect-ratio: 4 / 3; }
.rr-event-date { position: absolute; left: 12px; top: 12px; display: flex; flex-direction: column; align-items: center; min-width: 52px; padding: 6px 8px; border-radius: 12px; background: var(--rc-base); color: var(--rc-text); font-size: .75rem; font-weight: 600; text-transform: uppercase; box-shadow: 0 4px 12px rgba(0, 0, 0, .15); }
.rr-event-date b { font-size: 1.35rem; line-height: 1.05; }

/* Ads */
.rr-ad { position: relative; }
.rr-ad-link { display: flex; align-items: stretch; overflow: hidden; border-radius: var(--rc-radius, 16px); background: var(--rc-primary-strong, var(--wp--preset--color--primary-strong, #0b2f73)); color: #fff; text-decoration: none; min-height: 100px; }
.rr-ad-link:focus-visible { outline: 2px solid var(--rc-primary); outline-offset: 3px; }
.rr-ad-img { flex: 1 1 100%; display: block; }
.rr-ad-img img { width: 100%; height: 100%; display: block; object-fit: cover; }
.rr-ad.has-text .rr-ad-img { flex: 0 0 42%; }
.rr-ad-text { flex: 1; display: flex; flex-direction: column; justify-content: center; align-items: flex-start; gap: 6px; padding: 20px 24px; }
.rr-ad-text b { font-size: 1.3rem; line-height: 1.25; }
.rr-ad-text span { color: rgba(255, 255, 255, .92); }
.rr-ad-text .rr-ad-btn { margin-top: 6px; display: inline-flex; align-items: center; min-height: 40px; padding: 0 16px; border-radius: 999px; background: #fff; color: var(--rc-primary-strong); font-weight: 700; }
.rr-ad-label { position: absolute; top: 8px; right: 8px; padding: 2px 8px; border-radius: 999px; background: rgba(0, 0, 0, .55); color: #fff; font-size: .6875rem; letter-spacing: .03em; }
.rr-ad-sidebar .rr-ad-link, .rr-ad-popup .rr-ad-link { flex-direction: column; }
.rr-ad-sidebar.has-text .rr-ad-img, .rr-ad-popup.has-text .rr-ad-img { flex-basis: auto; aspect-ratio: 16 / 10; }
@media (max-width: 600px) { .rr-ad-link { flex-direction: column; } .rr-ad.has-text .rr-ad-img { flex-basis: auto; aspect-ratio: 16 / 9; } .rr-ad-text { padding: 16px; } .rr-ad-text b { font-size: 1.1rem; } }
.rr-popup { position: fixed; inset: 0; z-index: 100000; display: flex; align-items: center; justify-content: center; padding: 20px; background: rgba(10, 18, 34, .6); }
.rr-popup[hidden] { display: none; }
.rr-popup-box { position: relative; width: min(440px, 100%); max-height: 90vh; overflow: auto; border-radius: 20px; background: #fff; box-shadow: 0 24px 64px rgba(0, 0, 0, .35); --rc-radius: 20px; --rc-primary: var(--wp--preset--color--primary, #104098); --rc-primary-strong: var(--wp--preset--color--primary-strong, #0b2f73); }
.rr-popup-x { position: absolute; top: 10px; left: 10px; z-index: 2; display: flex; align-items: center; justify-content: center; width: 44px; height: 44px; border: 0; border-radius: 50%; background: rgba(0, 0, 0, .55); color: #fff; cursor: pointer; }
.rr-popup-x:focus-visible { outline: 2px solid #fff; outline-offset: 2px; }

/* Packages */
.rr-package { display: flex; flex-direction: column; gap: 12px; padding: 24px; background: var(--rc-base); border: 1px solid var(--rc-line); border-radius: var(--rc-radius); }
.rr-package.is-best { border-color: #e7c66b; box-shadow: 0 0 0 2px #e7c66b; }
.rr-package h3 { margin: 0; font-size: 1.15rem; }
.rr-package-price { margin: 0; font-size: 1.6rem; font-weight: 800; color: var(--rc-primary); }
.rr-package ul { display: flex; flex-direction: column; gap: 8px; margin: 0 0 8px; padding: 0; list-style: none; flex: 1; }
.rr-package li { display: flex; gap: 8px; align-items: flex-start; }
.rr-package li .rota-svg { color: var(--rr-open); margin-top: 3px; }
.rr-buy { display: flex; gap: 8px; flex-wrap: wrap; }
.rr-buy select { flex: 1 1 140px; min-height: 44px; padding: 0 10px; border: 1px solid var(--rc-line-strong); border-radius: var(--rc-radius-md); font: inherit; }
.rr-buy .rr-btn { flex: 1 1 auto; }

/* Business band */
.rr-cta { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 20px; padding: 32px; border-radius: calc(var(--rc-radius) + 4px); background: var(--rc-primary-strong); color: #fff; }
.rr-cta h2 { margin: 0 0 6px; color: inherit; font-size: 1.5rem; }
.rr-cta p { margin: 0; opacity: .92; max-width: 60ch; }
.rr-cta-btns { display: flex; flex-wrap: wrap; gap: 10px; opacity: 1 !important; }
@media (max-width: 600px) { .rr-cta { padding: 22px; } .rr-cta-btns, .rr-cta-btns .rr-btn { width: 100%; } }

/* Install */
.rr-install { display: flex; align-items: center; gap: 12px; padding: 12px 14px; background: var(--rc-base); border: 1px solid var(--rc-line); border-radius: var(--rc-radius); box-shadow: var(--rc-shadow); }
.rr-install[hidden] { display: none; }
.rr-install-ico img { display: block; border-radius: 12px; }
.rr-install > div { flex: 1; display: flex; flex-direction: column; font-size: .875rem; color: var(--rc-muted); }
.rr-install b { color: var(--rc-text); font-size: 1rem; }
.rr-install-x { display: flex; align-items: center; justify-content: center; width: 44px; height: 44px; border: 0; background: transparent; color: var(--rc-subtle); cursor: pointer; border-radius: 50%; }

/* App bar (phones) */
.rr-appnav { display: none; }
@media (max-width: 781px) {
	.rr-appnav { display: block; position: fixed; left: 0; right: 0; bottom: 0; z-index: 990; background: var(--rc-base); border-top: 1px solid var(--rc-line); box-shadow: 0 -6px 20px rgba(14, 30, 61, .08); padding-bottom: env(safe-area-inset-bottom, 0); }
	.rr-appnav ul { display: flex; margin: 0; padding: 0; list-style: none; }
	.rr-appnav li { flex: 1; }
	.rr-appnav a { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px; min-height: 58px; color: var(--rc-subtle); text-decoration: none; font-size: .6875rem; font-weight: 600; }
	.rr-appnav a span { max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; padding: 0 2px; }
	.rr-appnav a[aria-current="page"] { color: var(--rc-primary); }
	.rr-appnav a:focus-visible { outline: 2px solid var(--rc-primary); outline-offset: -4px; }
	body:has(.rr-appnav) { padding-bottom: calc(60px + env(safe-area-inset-bottom, 0)); }
	body:has(.rr-appnav) .rota-cookie { bottom: calc(68px + env(safe-area-inset-bottom, 0)); }
	body:has(.rr-appnav) .rota-top,
	body:has(.rr-appnav) .rota-wa { bottom: calc(76px + env(safe-area-inset-bottom, 0) + var(--rota-cookie-h, 0px)) !important; }
}
/* Larger screens: the to-top and WhatsApp buttons stay above the open cookie notice. */
@media (min-width: 782px) {
	.rota-top, .rota-wa { bottom: calc(20px + var(--rota-cookie-h, 0px)) !important; }
}

/* Account */
.rr-mine { display: flex; flex-direction: column; gap: 8px; margin: 0 0 24px; padding: 0; list-style: none; }
.rr-mine li { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 10px; padding: 12px 14px; border: 1px solid var(--rc-line); border-radius: var(--rc-radius-md); }
.rr-mine li > div { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.rr-mine form { display: flex; gap: 6px; margin: 0; }
.rota-btn-small { min-height: 36px; padding: 0 12px; font-size: .875rem; }
.rr-mybiz { padding: 18px; margin-bottom: 16px; border: 1px solid var(--rc-line); border-radius: var(--rc-radius); }
.rr-mybiz-head { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px; margin-bottom: 12px; }
.rr-mybiz-head h3 { margin: 0 0 6px; }
.rr-mybiz-head > div:first-child { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.rr-mybiz-head h3 { flex-basis: 100%; }
.rr-mybiz-stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin: 0; padding: 0; list-style: none; }
.rr-mybiz-stats li { display: flex; flex-direction: column; padding: 10px 12px; border-radius: var(--rc-radius-md); background: var(--rc-sunken); }
.rr-mybiz-stats b { font-size: 1.35rem; font-variant-numeric: tabular-nums; }
.rr-mybiz-stats span { color: var(--rc-muted); font-size: .8125rem; }
.rota-account textarea, .rota-account select { width: 100%; }

/* Phones: listings and events as compact rows. */
@media (max-width: 600px) {
	.rr-listing, .rr-event { display: grid; grid-template-columns: 112px minmax(0, 1fr); }
	.rr-listing-img, .rr-event-img { aspect-ratio: auto; min-height: 112px; height: 100%; }
	.rr-listing-body { padding: 10px 14px; gap: 4px; }
	.rr-event-date { left: 8px; top: 8px; min-width: 44px; padding: 4px 6px; }
	.rr-event-date b { font-size: 1.1rem; }
}
