/*
 * Riverpoint system layer (Phase 3). Loaded last, after the moved polish stylesheet.
 * One token set, taken from the values the existing stylesheets already agree on:
 *   ink #173234 (3 of 3 token sets), paper #fbfcfb, muted #5c7074, soft #edf4f2, accent #78969a (3 of 3),
 *   deep #10282b (home), radius 4px (42 uses). New rules use these; the older --rp-v13-* / --rp-type-*
 *   sets are left in place and retired as their sections are rebuilt.
 */
:root {
	--rp-sys-ink: #173234;
	--rp-sys-deep: #10282b;
	--rp-sys-muted: #5c7074;
	--rp-sys-paper: #fbfcfb;
	--rp-sys-soft: #edf4f2;
	--rp-sys-accent: #78969a;
	--rp-sys-line: rgba(23, 50, 52, .13);
	--rp-sys-radius: 4px;
	--rp-sys-sans: "Instrument Sans", "Helvetica Neue", Arial, sans-serif;
	--rp-sys-serif: "Source Serif 4", Georgia, "Times New Roman", serif;
}

/* ---- Accessibility -------------------------------------------------------------------------- */

/* The theme sets :focus{outline:none} site-wide, so keyboard users saw no focus at all. */
html body a:focus-visible,
html body button:focus-visible,
html body input:focus-visible,
html body select:focus-visible,
html body textarea:focus-visible,
html body summary:focus-visible,
html body [tabindex]:focus-visible {
	outline: 3px solid var(--rp-sys-accent) !important;
	outline-offset: 3px !important;
}

.rp-skip-link {
	position: absolute;
	left: 12px;
	top: -80px;
	z-index: 100000;
	padding: 12px 18px;
	border-radius: var(--rp-sys-radius);
	background: var(--rp-sys-ink);
	color: #fff !important;
	font: 600 15px/1.2 var(--rp-sys-sans);
	text-decoration: none;
	transition: top .15s ease;
}
.rp-skip-link:focus { top: 12px; }

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after {
		animation-duration: .01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: .01ms !important;
		scroll-behavior: auto !important;
	}
}

/* Footer credit link sat in a text block distinguished only by colour (2.43:1). */
html body footer a[href^="https://brainstorm.ie"] {
	text-decoration: underline !important;
	text-underline-offset: 3px;
}

/* ---- Header: one Referrals button on every page --------------------------------------------
   Every page but the home page draws it in deep teal #0b2326 (13 of 14 pages); the home page's own
   stylesheet made it grey-teal with white text. Match the majority. */
:root { --rp-sys-header-cta: #0b2326; }
html body:not(#_rp_sys_a):not(#_rp_sys_b):not(#_rp_sys_c) .uicore-cta-wrapper a.uicore-btn {
	background: var(--rp-sys-header-cta) !important;
	border-color: var(--rp-sys-header-cta) !important;
	color: #fff !important;
}

/* ---- Home: static hero (slides 2–3 and their controls removed from the markup) ------------ */
html body .rp-hero-slider-v6[data-static] .rp-hero-slider-v6__chrome,
html body .rp-hero-slider-v6[data-static] .rp-hero-slider-v6__sr { display: none !important; }

/* Home "referral journey" band: the polish layer drew both buttons #0b2529 on the #10282b band (one ID
   selector), so they were barely visible. White primary, outlined secondary. */
html body:not(#_rp_sys_a):not(#_rp_sys_b) .rp-referral .rp-referral__actions a.rp-button.rp-button--light {
	background: #fff !important;
	color: var(--rp-sys-ink) !important;
	-webkit-text-fill-color: var(--rp-sys-ink) !important;
	border-color: #fff !important;
}
html body:not(#_rp_sys_a):not(#_rp_sys_b) .rp-referral .rp-referral__actions a.rp-button.rp-button--ghost {
	background: transparent !important;
	color: #fff !important;
	-webkit-text-fill-color: #fff !important;
	border: 1px solid rgba(255, 255, 255, .5) !important;
}

/* ---- Service pages: card numbers sat on top of the icon on phones -------------------------- */
@media (max-width: 767px) {
	html body.page-id-239 .elementor-widget-bdt-advanced-icon-box.elementor-position-left .bdt-ep-advanced-icon-box:before,
	html body.page-id-241 .elementor-widget-bdt-advanced-icon-box.elementor-position-left .bdt-ep-advanced-icon-box:before,
	html body.page-id-243 .elementor-widget-bdt-advanced-icon-box.elementor-position-left .bdt-ep-advanced-icon-box:before,
	html body.page-id-247 .elementor-widget-bdt-advanced-icon-box.elementor-position-left .bdt-ep-advanced-icon-box:before {
		display: block !important;
		position: static !important;
		margin: 0 0 14px !important;
		letter-spacing: .08em !important;
	}
}

/* ---- Pins: headings that became labels (or changed level) keep exactly the look they had ------ */
/* Footer column titles: were h4. */
html body #uicore-tb-footer p.elementor-heading-title {
	font-weight: 700 !important;
	line-height: 1.35 !important;
	letter-spacing: -.012em !important;
	color: #f2f8f8 !important;
}
/* Service-page eyebrows: were h5. Only the one on each page's light intro band needs pinning (each page's
   v13 layer forces muted on p with two ID selectors, so this outranks it with three); eyebrows on the dark
   bands keep their light colour from the bands' own rules. Remove when the :not(#…) hacks are rebuilt. */
html body.page-id-239:not(#_rp_sys_a):not(#_rp_sys_b):not(#_rp_sys_c) .elementor-239 .elementor-element-311b4c69 p.elementor-heading-title,
html body.page-id-241:not(#_rp_sys_a):not(#_rp_sys_b):not(#_rp_sys_c) .elementor-241 .elementor-element-d7b6d41 p.elementor-heading-title,
html body.page-id-243:not(#_rp_sys_a):not(#_rp_sys_b):not(#_rp_sys_c) .elementor-243 .elementor-element-27d69da p.elementor-heading-title,
html body.page-id-247:not(#_rp_sys_a):not(#_rp_sys_b):not(#_rp_sys_c) .elementor-247 .elementor-element-b2f3e8b p.elementor-heading-title {
	color: #10282d !important;
}
/* About: feature titles were h4. */
html body.page-id-9 .elementor-9 h3.elementor-heading-title {
	font-size: 18px !important;
	font-weight: 700 !important;
	line-height: 1.35 !important;
	letter-spacing: -.012em !important;
}
/* Referrals: the two path titles were h3 (Instrument Sans), now h2. */
html body.page-id-73 .elementor-73 h2.elementor-heading-title {
	font-family: var(--rp-sys-sans) !important;
	font-weight: 650 !important;
}
/* The "Some common … issues include:" labels sit on the dark band: keep their light colour (were h5). */
html body.page-id-239:not(#_rp_sys_a):not(#_rp_sys_b):not(#_rp_sys_c):not(#_rp_sys_d) .elementor-239 .elementor-element-50967af5 p.elementor-heading-title,
html body.page-id-241:not(#_rp_sys_a):not(#_rp_sys_b):not(#_rp_sys_c):not(#_rp_sys_d) .elementor-241 .elementor-element-933b74d p.elementor-heading-title,
html body.page-id-247:not(#_rp_sys_a):not(#_rp_sys_b):not(#_rp_sys_c):not(#_rp_sys_d) .elementor-247 .elementor-element-bbfd699 p.elementor-heading-title {
	color: rgba(255, 255, 255, .62) !important;
}

/* ---- Referrals: the line under each path title (new in Phase 3) ------------------------------ */
html body.page-id-73 .rp-path-copy {
	display: inline-block;
	margin: 14px 0 0;
	padding: 12px 16px;
	max-width: 36ch;
	border-radius: var(--rp-sys-radius);
	background: rgba(255, 255, 255, .92);
	font: 400 16px/1.5 var(--rp-sys-sans);
	color: var(--rp-sys-ink);
}

/* ---- Contact: opening hours are built as two spans per row with nothing laying them out, so they ran
   together ("Monday8:00 – 18:00"). Day left, times right. */
html body .rp-cx__hours .rp-cx__hrow { display: flex; justify-content: space-between; gap: 1em; max-width: 22em; }

/* ---- Icons are inline SVG (Elementor "Inline Font Icons", Nov 2026). The old font icons took the text
   colour; an SVG takes its fill, which Elementor sets from the widget's own colour. Where the polish layer
   overrode only the text colour (service pages' "Learn More" button: dark text, white fill), the arrow
   vanished. Button icons follow their text again, at the glyph's own width (Elementor boxes them 1.2em
   wide, which pushed the label 4px off centre). */
html body .elementor-button .elementor-button-icon svg.e-font-icon-svg { fill: currentColor; width: auto; }

/* ---- "Fraunces" is requested by 7 rules (fee guide, blog header, team bios, Implantology "Why choose",
   polish layer) but was never loaded, so those headings fell back to Times. Map the name to the
   self-hosted Source Serif 4 files — the site's heading face. */
@font-face {
	font-family: "Fraunces";
	src: url(../fonts/source-serif-4-latin-ext.8813921ca4.woff2) format("woff2");
	font-weight: 200 900;
	font-style: normal;
	font-display: swap;
	unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
	font-family: "Fraunces";
	src: url(../fonts/source-serif-4-latin.f9bf9b34a6.woff2) format("woff2");
	font-weight: 200 900;
	font-style: normal;
	font-display: swap;
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

