/*
 * Base styles for the 247RR data widgets. Kept structural: colours, type and
 * spacing are Elementor style controls, so editors can change them.
 */

/* Pin the arrival-time bar under the header. Put this class on its container:
   the container's parent spans the page, so sticky works across the whole scroll. */
.elementor .e-con.rr-sticky-eta { position: sticky !important; top: var(--header-h, 0px); z-index: 30; }

.rr-placeholder {
	padding: 14px 16px;
	border: 1px dashed #BFBFBF;
	border-radius: 6px;
	color: #6B6B6B;
	font: 13px/1.5 system-ui, sans-serif;
	background: repeating-linear-gradient(45deg, #FAFAFA 0 10px, #F4F4F4 10px 20px);
}

/* Breadcrumbs */
.rr-crumbs { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; list-style: none; margin: 0; padding: 0; font-size: .875rem; font-weight: 500; }
.rr-crumbs li { display: flex; align-items: center; gap: .5rem; margin: 0; }
.rr-crumbs a { text-decoration: none; transition: color .15s; }

/* Location list */
.rr-list { display: grid; list-style: none; margin: 0; padding: 0; }
.rr-list__item { display: flex; flex-wrap: wrap; align-items: baseline; gap: .75rem; margin: 0; border-left-style: solid; border-left-width: 0; }

/* FAQs */
.rr-faq { border-top: 1px solid #E5E5E5; }
.rr-faq__item { border-bottom: 1px solid #E5E5E5; }
.rr-faq__q {
	cursor: pointer; list-style: none; display: flex; justify-content: space-between; align-items: center; gap: 1rem;
	padding: 1.25rem 0; font-family: var(--font-display, "Barlow Condensed", sans-serif); font-weight: 700; font-size: 1.25rem;
	line-height: 1.2; text-transform: uppercase; letter-spacing: -.01em;
}
.rr-faq__q::-webkit-details-marker { display: none; }
.rr-faq__icon { font-size: 1.875rem; line-height: 1; flex-shrink: 0; transition: transform .2s; }
.rr-faq__item[open] .rr-faq__icon { transform: rotate(45deg); }
.rr-faq__a { padding-bottom: 1.5rem; max-width: 75ch; }
.rr-faq__a a:hover { text-decoration: underline; }

/* Body copy */
.rr-prose > * { margin: 0; }

/* Neighbour cards */
.rr-cards { display: grid; gap: 1.5rem; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.rr-card {
	--rr-accent: #E11D2A;
	position: relative; display: block; padding: 1.75rem; border: 1px solid #E5E5E5; border-radius: 14px; overflow: hidden;
	color: #0A0A0A; text-decoration: none; transition: transform .2s, border-color .2s, box-shadow .2s;
	box-shadow: 0 1px 2px rgba(15,23,42,.04), 0 8px 24px -12px rgba(15,23,42,.18);
}
.rr-card::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; background: var(--rr-accent); opacity: .3; transition: opacity .2s; }
.rr-card:hover { transform: translateY(-4px); border-color: #0A0A0A; box-shadow: 0 8px 24px rgba(0,0,0,.12); }
.rr-card:hover::before { opacity: 1; }
.rr-card__arrow {
	width: 56px; height: 56px; display: grid; place-items: center; margin-bottom: 1rem; border-radius: 12px; font-size: 1.5rem;
	color: var(--rr-accent); background: #FFF1F2; box-shadow: inset 0 0 0 1px rgba(225,29,42,.1);
}
.rr-card__title { color: #0A0A0A; margin: 0 0 .5rem; font-size: 1.5rem; }
.rr-card__text { margin: 0 0 1rem; }
.rr-card__link { color: var(--rr-accent); font-family: var(--font-display, "Barlow Condensed", sans-serif); font-weight: 800; text-transform: uppercase; letter-spacing: .05em; font-size: .875rem; }

/* Rate table */
.rr-rates-wrap { overflow-x: auto; }
.rr-rates { width: 100%; border-collapse: collapse; background: #fff; border-radius: 6px; overflow: hidden; font-size: .875rem; box-shadow: 0 1px 2px rgb(0 0 0 / .08), 0 4px 16px rgb(0 0 0 / .04); }
.rr-rates thead { background: #0A0A0A; color: #fff; }
.rr-rates th { text-align: left; padding: .75rem 1rem; font-family: var(--font-display, "Barlow Condensed", sans-serif); text-transform: uppercase; letter-spacing: .05em; font-size: .75rem; }
.rr-rates td { padding: .75rem 1rem; }
.rr-rates tbody tr + tr { border-top: 1px solid #E5E5E5; }
.rr-rates__band { font-weight: 700; }
.rr-rates__hours { color: #3A3A3A; }
.rr-rates__num { text-align: right !important; }
.rr-rates__price { font-weight: 600; }

/* ---- Template structure (layout only; colours/type are editor controls) ---- */

/* Hero: photo and shade sit behind the content. */
.rr-hero { position: relative; overflow: hidden; }
.rr-hero > .rr-hero__img { position: absolute !important; inset: 0; z-index: 0; margin: 0; width: 100%; height: 100%; }
.rr-hero > .rr-hero__img img { width: 100%; height: 100%; object-fit: cover; }
.rr-hero > .rr-hero__shade { position: absolute !important; inset: 0; z-index: 1; padding: 0 !important; }
.rr-hero > .rr-hero__content { position: relative; z-index: 2; }

/* Inline red emphasis inside headings, e.g. <span class="rr-red">Blocked Drains</span> in Camden */
.rr-red { color: var(--e-global-color-primary, #E11D2A); }

/* Stats strip figure, e.g. "30-60 MIN" */
.rr-stat { color: var(--e-global-color-primary, #E11D2A); font-size: 1.25rem; font-weight: 900; margin-right: .6rem; }

/* Comfortable reading width for ledes. !important: Elementor sets
   max-width:100% on every widget inside a container, at equal specificity. */
.elementor .rr-measure { max-width: 60ch !important; }
.elementor .rr-measure-center { max-width: 60ch !important; margin-left: auto !important; margin-right: auto !important; }

/* Icon lists: the theme's base `svg { max-width: 100% }` squeezes Elementor's
   icons (sized as a square box) inside the padded icon span. */
.rr-icons .elementor-icon-list-icon { flex-shrink: 0; }
.rr-icons .elementor-icon-list-icon svg { max-width: none; }

/* Guide card (loop item) */
.rr-guide-card { transition: border-color .2s, box-shadow .2s; height: 100%; }
.rr-guide-card:hover { border-color: var(--e-global-color-primary, #E11D2A) !important; box-shadow: 0 8px 24px rgb(0 0 0 / .12); }
.elementor .rr-clamp-3 { display: -webkit-box !important; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }

/* Other services links */
.rr-links { display: grid; gap: .75rem; grid-template-columns: repeat(5, minmax(0, 1fr)); }
.rr-links a { display: block; padding: .75rem 1rem; border: 1px solid #E5E5E5; border-radius: 6px; background: #fff; font-weight: 600; font-size: .875rem; text-decoration: none; transition: border-color .15s; }

/* Two-up info cards (area "what we see") */
.rr-info-card p { margin: 0; }

/* Location list as chips (South East postcodes) */
.rr-list--chips { display: flex; flex-wrap: wrap; }
.rr-chips-bordered .rr-list__item { border: 1px solid #E5E5E5; }

/* Nearby in the same county (area and South East landing pages) */
.rr-nearby { display: grid; gap: .75rem; grid-template-columns: repeat(6, minmax(0, 1fr)); }
.rr-nearby a { display: block; padding: .75rem 1rem; border: 1px solid #E5E5E5; border-radius: 6px; background: #fff; font-weight: 600; font-size: .875rem; text-decoration: none; transition: color .15s, border-color .15s; }

/* Reactive cover notice (South East districts already M25-adjacent) */
.rr-notice { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem; font-size: .875rem; color: #262626; }
.rr-notice__badge { font-size: 10px; text-transform: uppercase; letter-spacing: .05em; font-weight: 800; color: #92400E; background: #FEF3C7; border-radius: 4px; padding: 2px 6px; }
.rr-notice__link { color: var(--e-global-color-primary, #E11D2A); font-weight: 600; text-decoration: none; }
.rr-notice__link:hover { text-decoration: underline; }

/* Service cards (location landing pages): whole card is the link */
.rr-service-card { transition: transform .2s, border-color .2s, box-shadow .2s; height: 100%; }
.rr-service-card:hover { transform: translateY(-4px); border-color: #0A0A0A !important; box-shadow: 0 8px 24px rgba(0,0,0,.12); }
.rr-service-card--red:hover { border-color: var(--e-global-color-primary, #E11D2A) !important; transform: translateY(-2px); }
.rr-service-card .elementor-icon-wrapper, .rr-service-card .elementor-icon { line-height: 0; }

/* Borough landing: price-from strip */
.rr-price-from p { margin: 0; }
.rr-price-from .rr-price { font-family: var(--font-display, "Barlow Condensed", sans-serif); font-weight: 900; font-size: 1.5rem; color: var(--e-global-color-primary, #E11D2A); margin: 0 .35rem; }
.rr-price-from a { color: var(--e-global-color-primary, #E11D2A); font-weight: 600; text-decoration: none; margin-left: .5rem; }
/* Left accent stripe. Not a ::before: Elementor containers use that for background overlays. */
.elementor .e-con.rr-card-accent { background-image: linear-gradient(to right, rgb(225 29 42 / .3) 4px, transparent 4px); }
.elementor .e-con.rr-card-accent:hover { background-image: linear-gradient(to right, rgb(225 29 42 / 1) 4px, transparent 4px); }
.rr-break-words .elementor-heading-title { overflow-wrap: anywhere; }
.rr-mono .elementor-heading-title { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; }
/* The notice's container collapses when the district has no notice (Elementor omits the empty widget). */
.elementor .e-con.rr-notice-bar:not(:has(.elementor-widget)) { display: none !important; }

/* Policy body (Post Content widget): section headings as on the policy pages.
   Heading typography is kept here rather than in the page content, so editors
   writing a policy in the WordPress editor only choose "Heading 2". */
.rr-policy-body h2 { font-size: 1.5rem; line-height: 1.15; color: #0A0A0A; margin: 2rem 0 .75rem; }
.rr-policy-body > .elementor-widget-container > h2:first-child, .rr-policy-body h2:first-child { margin-top: 0; }
.rr-policy-body p { margin: 0 0 1rem; }
.rr-policy-body a { color: var(--e-global-color-primary, #E11D2A); }

/* Blog posts */
.rr-measure-18 .elementor-heading-title { max-width: 18ch; }
.elementor .e-con.rr-auto-width { width: auto !important; flex: 0 1 auto; }
@media (min-width: 1025px) { .elementor .e-con.rr-sticky-aside { position: sticky !important; top: 6rem; } }
.rr-blog-body p { margin: 0 0 1.25rem; line-height: 1.7; font-size: 1.05rem; color: #171717; }
.rr-blog-body a { color: var(--e-global-color-primary, #E11D2A); font-weight: 600; }
.rr-blog-body a:hover { text-decoration: underline; }
.rr-blog-body ul { margin: 0 0 1.25rem; list-style: disc; padding-left: 1.5rem; }
.rr-blog-body ol { margin: 0 0 1.25rem; list-style: decimal; padding-left: 1.5rem; }
.rr-blog-body li { margin-bottom: .5rem; line-height: 1.7; }

/* Blog category archives */
.rr-pills { display: flex; flex-wrap: nowrap; gap: .75rem; overflow-x: auto; }
.rr-pills a { white-space: nowrap; font-size: .875rem; font-weight: 600; text-decoration: none; border: 1px solid #E5E5E5; background: #fff; padding: .375rem .75rem; border-radius: 999px; transition: color .15s, border-color .15s; }
/* A row that scrolls sideways on narrow screens instead of squeezing its items. */
.elementor .e-con.rr-scroll-row > .e-con-inner, .elementor .e-con.rr-scroll-row { flex-wrap: nowrap !important; overflow-x: auto; }
.rr-scroll-row .elementor-widget { flex-shrink: 0; }
.elementor .rr-row-equal-cards .elementor-loop-container { align-items: stretch; }
.rr-row-equal-cards .e-loop-item > .e-con { height: 100%; }

/* South East county: district cards */
.rr-districts { display: grid; gap: 1rem; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.rr-district { display: flex; flex-direction: column; padding: 1.25rem; background: #fff; border: 2px solid #E5E5E5; border-radius: 14px; text-decoration: none; box-shadow: 0 2px 8px rgba(0,0,0,.06); transition: border-color .2s, box-shadow .2s, transform .2s; }
.rr-district:hover { border-color: var(--e-global-color-primary, #E11D2A); box-shadow: 0 8px 24px rgba(225,29,42,.18); transform: translateY(-2px); }
.rr-district__name { font-family: var(--font-display, "Barlow Condensed", sans-serif); font-weight: 800; text-transform: uppercase; font-size: 1rem; color: #0A0A0A; }
.rr-district__badge { font-size: 10px; text-transform: uppercase; letter-spacing: .05em; font-weight: 800; color: #fff; background: var(--e-global-color-primary, #E11D2A); border-radius: 4px; padding: 2px 6px; white-space: nowrap; }
.rr-district__badge--m25 { color: #92400E; background: #FEF3C7; }
.rr-district__towns { font-size: .75rem; color: #3A3A3A; margin-bottom: .5rem; line-height: 1.35; }
.rr-district__postcodes { font-size: .75rem; color: #6B6B6B; }
.rr-district__link { margin-top: .75rem; font-family: var(--font-display, "Barlow Condensed", sans-serif); font-weight: 800; text-transform: uppercase; letter-spacing: .05em; font-size: .75rem; }
.rr-district:hover .rr-district__link { text-decoration: underline; }
.rr-district__head { display: flex; align-items: flex-start; justify-content: space-between; gap: .75rem; margin-bottom: .5rem; }
.rr-district .rr-district__name { margin: 0; line-height: 1.2; }
.rr-district p { margin: 0; }
.rr-district .rr-district__towns { margin-bottom: .5rem; }
.rr-district .rr-district__link { margin-top: .75rem; }
.rr-prose-spaced p + p { margin-top: 1rem; }

/* Page field list: heading items and numbered steps (service hubs) */
.rr-items { display: grid; gap: 1.25rem; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.rr-item { padding: 1.25rem; background: #fff; border: 1px solid #E5E5E5; border-radius: 12px; }
.rr-item .rr-item__title { margin: 0 0 .5rem; font-size: 1rem; font-weight: 800; line-height: 1.3; color: var(--e-global-color-primary, #E11D2A); text-transform: none; letter-spacing: 0; font-family: inherit; }
.rr-item .rr-item__text { margin: 0; font-size: .9375rem; color: #3A3A3A; }
.rr-steps { list-style: none; margin: 1.5rem 0 0; padding: 0; display: grid; gap: .75rem; }
.rr-step { position: relative; margin: 0; padding: 1rem 1rem 1rem 3.5rem; background: #FAFAFA; border-left: 3px solid var(--e-global-color-primary, #E11D2A); border-radius: 8px; }
.rr-step__num { position: absolute; left: .85rem; top: 1.05rem; width: 30px; height: 30px; display: grid; place-items: center; border-radius: 50%; background: var(--e-global-color-primary, #E11D2A); color: #fff; font-family: var(--font-display, "Barlow Condensed", sans-serif); font-weight: 900; }
.rr-step__title { display: block; color: #0A0A0A; }
.rr-step__text { display: block; color: #3A3A3A; font-size: .9375rem; }

/* Policy library (/policies) */
.rr-plib__group { margin-top: 2.5rem; }
.rr-plib__heading { font-size: 1.25rem; color: #0A0A0A; margin: 0 0 1rem; }
.rr-plib__grid { display: grid; gap: 1rem; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.rr-plib-card {
	display: block; padding: 1.25rem; background: #fff; border: 2px solid #E5E5E5; border-radius: 14px; text-decoration: none;
	box-shadow: 0 2px 8px rgba(0,0,0,.06); transition: transform .2s, border-color .2s, box-shadow .2s;
}
.rr-plib-card:hover { border-color: #E11D2A; box-shadow: 0 8px 24px rgba(225,29,42,.15); transform: translateY(-2px); }
.rr-plib-card__eyebrow { margin: 0 0 .25rem; font-family: var(--font-display, "Barlow Condensed", sans-serif); font-size: 10px; font-weight: 800; text-transform: uppercase; letter-spacing: .05em; color: #6B6B6B; }
.rr-plib-card__title { margin: 0 0 .5rem; font-size: 1rem; color: #0A0A0A; }
.rr-plib-card__text { margin: 0 0 .75rem; font-size: .875rem; line-height: 1.375; color: #3A3A3A; }
.rr-plib-card__link { margin: 0; font-family: var(--font-display, "Barlow Condensed", sans-serif); font-size: .75rem; font-weight: 800; text-transform: uppercase; letter-spacing: .05em; color: #E11D2A; }
.rr-plib-card:hover .rr-plib-card__link { text-decoration: underline; }
@media (max-width: 767px) { .rr-plib__grid { grid-template-columns: minmax(0, 1fr); } }

/* Index pages: red inline links; blog topic cards */
.rr-link-red a { color: #E11D2A; font-weight: 600; text-decoration: none; }
.rr-link-red a:hover { text-decoration: underline; }
.elementor .e-con.rr-topic-card { text-decoration: none; transition: border-color .2s, box-shadow .2s; }
.elementor .e-con.rr-topic-card:hover { border-color: #E11D2A; box-shadow: 0 8px 24px rgba(0,0,0,.12); }

/* Eyebrow with a leading icon (/services "Emergency Specialisms") */
.rr-eyebrow-icon .rr-icon { margin-right: .3em; vertical-align: -.1em; }
.elementor .e-con.rr-topic-card--dark:hover { background-color: #E11D2A !important; border-color: #E11D2A !important; }

/* Closing call band ("Lines open right now") on one-off pages */
.elementor .e-con.rr-final-cta { position: relative; overflow: hidden; }
.elementor .e-con.rr-final-cta::before { content: ""; position: absolute; inset: 0; opacity: .5; pointer-events: none; background: radial-gradient(circle at 50% 0%, rgb(225 29 42 / .30), transparent 55%); }
.elementor .e-con.rr-final-cta > * { position: relative; }
.rr-pulse-dot { display: inline-block; width: 10px; height: 10px; margin-right: 8px; border-radius: 50%; background: #E11D2A; vertical-align: 0; animation: rr-pulse-red 1.6s ease-in-out infinite; }
@keyframes rr-pulse-red { 0%, 100% { box-shadow: 0 0 0 0 rgb(225 29 42 / .6); } 50% { box-shadow: 0 0 0 8px rgb(225 29 42 / 0); } }

/*
 * Reference markup in HTML widgets: Elementor's global `.elementor img { height: auto }`
 * outranks the reference's utility classes on images. Restore the ones used
 * (home hero accreditation logos).
 */
.elementor .elementor-widget-html img.h-7 { height: calc(var(--spacing, .25rem) * 7); }
.elementor .elementor-widget-html img.w-auto { width: auto; }
@media (min-width: 640px) { .elementor .elementor-widget-html img.sm\:h-8 { height: calc(var(--spacing, .25rem) * 8); } }

/*
 * Prose pages migrated from the reference (/about, /landlord, /careers,
 * /insurance-restoration, /rogue-companies; tools/convert-prose-bodies.php).
 * The body's two containers carry the reference's own classes (.section,
 * .container, .container-narrow), but Elementor sizes containers through
 * variables that would override that CSS. Here the variables take the
 * reference's values, and the containers lay their widgets out as normal flow,
 * so heading and paragraph margins collapse as they did in the original
 * markup. The text widgets inherit the page's type instead of Elementor's
 * default text style.
 */
/* Four classes: Elementor's per-container rules (three) load later and set the same variables. */
.elementor .elementor-element.e-con.rr-legacy { --display: block; --padding-top: 0px; --padding-right: 0px; --padding-bottom: 0px; --padding-left: 0px; }
.elementor .elementor-element.e-con.rr-legacy.section { --padding-top: clamp(3rem, 6vw, 6rem); --padding-bottom: clamp(3rem, 6vw, 6rem); }
.elementor .elementor-element.e-con.rr-legacy.container { --margin-left: auto; --margin-right: auto; --padding-left: 1.25rem; --padding-right: 1.25rem; }
.elementor-widget-text-editor.rr-legacy-block { font: inherit; color: inherit; }

/*
 * Site header (Theme Builder header template, tools/build-chrome-header.php).
 * The header location stays at the top while the page scrolls, as the
 * reference header did; the trust bar is a separate location, so it scrolls
 * away. Visibility follows the reference breakpoints (640 / 768 / 1024 px),
 * which Elementor's own tablet breakpoint (up to 1024) does not match.
 */
.elementor-location-header { position: sticky; top: 0; z-index: 40; }
.elementor .elementor-element.e-con.rr-header { -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); }
.elementor .elementor-element.e-con.rr-header__actions { --width: auto; }
.elementor .elementor-element.e-con.e-parent.rr-header .elementor-widget-image.rr-header__logo a { display: flex; align-items: center; color: var(--color-black, #0a0a0a); }
.elementor .elementor-element.e-con.e-parent.rr-header .elementor-widget-image.rr-header__logo img { display: block; height: 3.5rem; width: auto; max-width: none; }
@media (min-width: 640px) { .elementor .elementor-element.e-con.e-parent.rr-header .elementor-widget-image.rr-header__logo img { height: 4rem; } }
@media (min-width: 1024px) { .elementor .elementor-element.e-con.e-parent.rr-header .elementor-widget-image.rr-header__logo img { height: 4.5rem; } }
.elementor .rr-header__phone .elementor-button { display: block; }
/* When the header runs out of room (about 1024-1100 px) the phone number and
   the button share the squeeze as on the reference, where the button's 40 px
   padding sat on the flex item itself and so did not shrink. */
.elementor .e-con > .elementor-element.rr-header__book { flex-shrink: .633; }
@media (max-width: 639.98px) { .elementor .elementor-element.rr-header__book { display: none; } }
@media (max-width: 767.98px) { .elementor .elementor-element.rr-header__phone { display: none; } }
@media (max-width: 1023.98px) { .elementor .elementor-element.rr-header__nav { display: none; } }
@media (min-width: 1024px) { .elementor .elementor-element.rr-header__menu-button { display: none; } }
/* Drawer footer phone link: red as on the reference (an older utility rule here greys it). */
#mobile-nav-drawer p a[href^="tel:"] { color: var(--color-red, #e11d2a); }

/*
 * Trust bar (Section template in the "Trust bar" location,
 * tools/build-chrome-footer.php): small white items on red, as the reference's
 * inline-flex links (12 px, 13 px from 640 px; items spread apart from 1024 px).
 *
 * Rules for elements inside the trust bar and footer start with the template's
 * top container (.elementor-element.e-con.e-parent.rr-trust / .rr-footer), so
 * they outrank Elementor's per-element rules, hover rules included, whichever is
 * printed last (Elementor prints the template CSS after this file on some page
 * types). The containers' own rules (.e-con.rr-footer__grid etc.) outrank
 * Elementor's container rules by their extra classes. A widget setting for a
 * property set here has no effect; ~/rr-tools/qa/chrome-editsim.mjs checks that
 * every control behaves the same on every page type.
 */
.elementor .elementor-element.e-con.rr-trust { font-size: 12px; line-height: 1.6; color: #fff; }
@media (min-width: 640px) { .elementor .elementor-element.e-con.rr-trust { font-size: 13px; } }
@media (min-width: 1024px) { .elementor .elementor-element.e-con.rr-trust { --justify-content: space-between; } }
.elementor .elementor-element.e-con.rr-trust__group { --width: auto; }
.elementor .elementor-element.e-con.e-parent.rr-trust .elementor-icon-list-items.elementor-inline-items { margin: 0; flex-wrap: nowrap; }
.elementor .elementor-element.e-con.e-parent.rr-trust .elementor-icon-list-items.elementor-inline-items .elementor-icon-list-item { margin: 0; }
.elementor .elementor-element.e-con.e-parent.rr-trust .elementor-icon-list-item,
.elementor .elementor-element.e-con.e-parent.rr-trust .elementor-icon-list-item > a { display: inline-flex; align-items: center; gap: 6px; min-height: 24px; font: inherit; font-weight: 600; color: #fff; text-decoration: none; }
.elementor .elementor-element.e-con.e-parent.rr-trust .rr-trust__rating a:hover { opacity: .9; }
.elementor .elementor-element.e-con.e-parent.rr-trust .elementor-icon-list-item .elementor-icon-list-text { font: inherit; color: inherit; padding: 0; }
.elementor .elementor-element.e-con.e-parent.rr-trust .elementor-icon-list-icon { display: inline-flex; padding: 0; }
.elementor .elementor-element.e-con.e-parent.rr-trust .elementor-icon-list-icon i { width: 13px; height: 13px; font-size: 13px; vertical-align: 0; }
.elementor .elementor-element.e-con.e-parent.rr-trust .rr-trust__strong { font-weight: 800; }
.elementor .elementor-element.e-con.e-parent.rr-trust .rr-trust__arrival .elementor-icon-list-icon i { width: 6px; height: 6px; -webkit-mask: none; mask: none; background: #fff; border-radius: 999px; animation: pulse-red 1.6s ease-in-out infinite; }
.elementor .elementor-element.e-con.e-parent.rr-trust .rr-trust__offer .elementor-icon-list-text,
.elementor .elementor-element.e-con.e-parent.rr-trust .rr-trust__gas .elementor-icon-list-text { display: inline-flex; align-items: center; gap: 6px; }
.elementor .elementor-element.e-con.e-parent.rr-trust .rr-trust__offer-label { font-family: var(--font-display); font-weight: 800; text-transform: uppercase; letter-spacing: .05em; font-size: 10px; white-space: nowrap; word-break: normal; flex-shrink: 0; }
.elementor .elementor-element.e-con.e-parent.rr-trust .rr-trust__offer a:hover .rr-trust__offer-text,
.elementor .elementor-element.e-con.e-parent.rr-trust .rr-trust__underline a:hover .elementor-icon-list-text { text-decoration: underline; text-underline-offset: 2px; }
@media (max-width: 639.98px) { .elementor .elementor-element.rr-trust__sm-up { display: none; } }
@media (max-width: 1023.98px) { .elementor .elementor-element.rr-trust__lg-up { display: none; } }

/*
 * Site footer (Theme Builder footer template, tools/build-chrome-footer.php).
 * Columns: 1, 2 from 640 px, 1.3fr + 4 x 1fr from 1024 px, as the reference.
 */
.elementor .elementor-element.e-con.rr-footer { color: rgba(255, 255, 255, .8); font-size: 16px; line-height: 1.6; }
.elementor .elementor-element.e-con.rr-footer__grid,
.elementor .elementor-element.e-con.rr-footer__bottom { --width: 100%; max-width: 1240px; --margin-left: auto; --margin-right: auto; }
.elementor .elementor-element.e-con.rr-footer__grid { --e-con-grid-template-columns: minmax(0, 1fr); --e-con-grid-template-rows: auto; }
@media (min-width: 640px) { .elementor .elementor-element.e-con.rr-footer__grid { --e-con-grid-template-columns: repeat(2, minmax(0, 1fr)); } }
/* The first column keeps at least 208 px, the reference's minimum there (its email
   address), so the link columns sit where the reference's do between 1024 and 1048 px. */
@media (min-width: 1024px) { .elementor .elementor-element.e-con.rr-footer__grid { --e-con-grid-template-columns: minmax(208px, 1.3fr) 1fr 1fr 1fr 1fr; } }
.elementor .elementor-element.e-con.rr-footer__column { --display: block; }
.elementor .elementor-element.e-con.e-parent.rr-footer .elementor-widget-image.rr-footer__logo a { display: inline-block; }
.elementor .elementor-element.e-con.e-parent.rr-footer .elementor-widget-image.rr-footer__logo img { display: block; height: 80px; width: auto; max-width: none; }
.elementor .elementor-element.e-con.e-parent.rr-footer .rr-footer__text { font-family: inherit; font-weight: 400; }
.elementor .elementor-element.e-con.e-parent.rr-footer .rr-footer__text p { margin: 0; }
.elementor .elementor-element.e-con.e-parent.rr-footer .rr-footer__tagline p { max-width: 65ch; }
.elementor .elementor-element.e-con.e-parent.rr-footer .rr-footer__disclaimer a { color: rgba(255, 255, 255, .8); text-decoration: underline; }
.elementor .elementor-element.e-con.e-parent.rr-footer .rr-footer__disclaimer a:hover { color: #fff; }
.elementor .elementor-element.e-con.e-parent.rr-footer .rr-footer__registration a { color: rgba(255, 255, 255, .55); text-decoration: underline; text-decoration-color: rgba(255, 255, 255, .3); text-underline-offset: 2px; transition: color .15s, text-decoration-color .15s; }
.elementor .elementor-element.e-con.e-parent.rr-footer .rr-footer__registration a:hover { color: #fff; text-decoration-color: #fff; }
/* Contact links: the phone number bold and white, WhatsApp turns green on hover. */
.elementor .elementor-element.e-con.e-parent.rr-footer .rr-footer__contact .elementor-icon-list-items { font-size: 14px; line-height: 20px; }
.elementor .elementor-element.e-con.e-parent.rr-footer .rr-footer__contact .elementor-icon-list-item { display: block; font-size: 14px; line-height: 20px; word-break: normal; overflow-wrap: normal; }
/* Colours come from here, not the widget's colour settings: the phone is white
   and bold, the others 80% white; red on hover, WhatsApp green, underlined as on
   the reference. The extra widget class outranks Elementor's own colour rules,
   which some pages print after this stylesheet. */
.elementor .elementor-element.e-con.e-parent.rr-footer .rr-footer__contact .elementor-icon-list-item > a { display: inline-flex; align-items: center; font: inherit; color: rgba(255, 255, 255, .8); }
.elementor .elementor-element.e-con.e-parent.rr-footer .rr-footer__contact .elementor-icon-list-item:first-child > a { color: #fff; font-weight: 700; }
.elementor .elementor-element.e-con.e-parent.rr-footer .rr-footer__contact .elementor-icon-list-item > a:hover { color: var(--color-red, #e11d2a); }
.elementor .elementor-element.e-con.e-parent.rr-footer .rr-footer__contact .elementor-icon-list-item:last-child > a:hover { color: var(--color-whatsapp, #25d366); }
.elementor .elementor-element.e-con.e-parent.rr-footer .rr-footer__contact.elementor-widget-icon-list .elementor-icon-list-item .elementor-icon-list-text { font: inherit; color: inherit; padding: 0; }
.elementor .elementor-element.e-con.e-parent.rr-footer .rr-footer__contact.elementor-widget-icon-list .elementor-icon-list-item > a:hover .elementor-icon-list-text { text-decoration: underline; }
/* The space after the icon is the list's Text indent setting (8 px). */
.elementor .elementor-element.e-con.e-parent.rr-footer .rr-footer__contact.elementor-widget-icon-list .elementor-icon-list-item .elementor-icon-list-icon i { width: 14px; height: 14px; font-size: 14px; color: inherit; }
/* Social links: 36 px tiles; the platform name is for screen readers. */
.elementor .elementor-element.e-con.e-parent.rr-footer .rr-footer__social .elementor-icon-list-items { margin: 0; gap: 12px; flex-wrap: nowrap; }
.elementor .elementor-element.e-con.e-parent.rr-footer .rr-footer__social .elementor-icon-list-items.elementor-inline-items .elementor-icon-list-item { margin: 0; }
.elementor .elementor-element.e-con.e-parent.rr-footer .rr-footer__social .elementor-icon-list-item > a { width: 36px; height: 36px; display: grid; place-items: center; border-radius: 6px; background: rgba(255, 255, 255, .05); border: 1px solid rgba(255, 255, 255, .1); color: rgba(255, 255, 255, .85); transition: color .15s, border-color .15s; }
.elementor .elementor-element.e-con.e-parent.rr-footer .rr-footer__social .elementor-icon-list-item > a:hover { color: var(--color-red, #e11d2a); border-color: rgba(225, 29, 42, .4); }
.elementor .elementor-element.e-con.e-parent.rr-footer .rr-footer__social .elementor-icon-list-icon { padding: 0; }
.elementor .elementor-element.e-con.e-parent.rr-footer .rr-footer__social .elementor-icon-list-icon i { width: 18px; height: 18px; font-size: 18px; color: inherit; }
.elementor .elementor-element.e-con.e-parent.rr-footer .rr-footer__social .elementor-icon-list-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
/* Accreditation chips. */
.elementor .elementor-element.e-con.e-parent.rr-footer .rr-footer__badges .elementor-icon-list-items { margin: 0; gap: 8px; }
.elementor .elementor-element.e-con.e-parent.rr-footer .rr-footer__badges .elementor-icon-list-items.elementor-inline-items .elementor-icon-list-item { margin: 0; padding: 4px 10px; border-radius: 6px; background: rgba(255, 255, 255, .05); border: 1px solid rgba(255, 255, 255, .1); }
.elementor .elementor-element.e-con.e-parent.rr-footer .rr-footer__badges .elementor-icon-list-text { font-size: 12px; line-height: 16px; font-weight: 600; color: rgba(255, 255, 255, .85); padding: 0; }

/*
 * After the footer (Section template in the "After the footer" location,
 * tools/build-chrome-postfooter.php): the Contact bars, Chat button and Cookie
 * notice widgets print the reference markup, styled by its own CSS. In the
 * Elementor editor they are shown in place instead of fixed to the screen, with
 * the notice visible, so they can be selected and edited.
 */
.elementor-editor-active .elementor-widget-rr247-contact-bars .fixed,
.elementor-editor-active .elementor-widget-rr247-chat-button .fixed,
.elementor-editor-active .elementor-widget-rr247-cookie-notice .fixed { position: relative; inset: auto; }
.elementor-editor-active .elementor-widget-rr247-cookie-notice [role="dialog"] { opacity: 1; translate: none; pointer-events: auto; }
.elementor-editor-active .elementor-widget-rr247-contact-bars .h-\[76px\] { display: none; }
.elementor-editor-active .elementor-widget-rr247-contact-bars [role="navigation"].lg\:flex { width: max-content; margin-block: 16px; }

/*
 * Elementor's frontend CSS has an unlayered `.elementor a { text-decoration: none }`,
 * which beats the reference's underline utilities (they sit in a cascade layer).
 * Restore them, in the reference's order, for links printed by the chrome
 * widgets: the cookie notice's policy link and the megamenu panel links.
 */
.elementor :is(.elementor-widget-rr247-site-menu, .elementor-widget-rr247-cookie-notice) a.underline,
.elementor :is(.elementor-widget-rr247-site-menu, .elementor-widget-rr247-cookie-notice) a.hover\:underline:hover { text-decoration-line: underline; }
/* The reference's base `a:hover { text-decoration: underline }` (links without
   no-underline: the desktop menu links, the header phone number) is lost the same way. */
.elementor .elementor-widget-rr247-site-menu a:not(.no-underline):hover,
.elementor .elementor-element.rr-header__phone .elementor-button:hover { text-decoration-line: underline; }
