/* =============================================================================
   Physio-Care — design tokens and helper classes for Elementor / Xpro
   Values copied from the approved Next.js site (tailwind.config.ts, styles/globals.css).

   HOW TO USE: most styling is set in Elementor Site Settings (global colours, fonts,
   buttons). Where Elementor Free has no control (hover lift, eyebrow dash, focus ring,
   drop-down panel…), add the class below in the widget/container:
   Advanced → CSS Classes.  Every class is listed in the implementation guide.
   ============================================================================= */

/* ---------- 1. Tokens ---------- */
:root {
	--pc-navy-50: #EEF3F8;  --pc-navy-100: #D6E2EE; --pc-navy-200: #AFC5DC; --pc-navy-300: #7F9FC2;
	--pc-navy-400: #4F78A3; --pc-navy-500: #2F5A86; --pc-navy-600: #1F466E; --pc-navy-700: #173759;
	--pc-navy-800: #112A45; --pc-navy-900: #0B1D31;
	--pc-brand-50: #EEF4FE; --pc-brand-100: #D9E7FD; --pc-brand-200: #B5CFFB; --pc-brand-300: #86B0F8;
	--pc-brand-400: #4A8BF5; --pc-brand-500: #2B6FE3; --pc-brand-600: #1D5BC6; --pc-brand-700: #184A9F;
	--pc-brand-800: #163E80; --pc-brand-900: #132F5E;
	--pc-sage-50: #EFF9EF;  --pc-sage-100: #D7F1D8; --pc-sage-200: #B0E3B2; --pc-sage-300: #7ACF7E;
	--pc-sage-400: #3FB845; --pc-sage-500: #22A02A; --pc-sage-600: #1B8522; --pc-sage-700: #176B1D;
	--pc-sand-50: #FBFAF7;  --pc-sand-100: #F5F2EC; --pc-sand-200: #EBE6DC; --pc-sand-300: #DBD3C4;
	--pc-ink: #10212F;
	--pc-slate-50: #F8FAFC; --pc-slate-100: #F1F5F9; --pc-slate-200: #E2E8F0; --pc-slate-300: #CBD5E1;
	--pc-slate-400: #94A3B8; --pc-slate-500: #64748B; --pc-slate-600: #475569; --pc-slate-700: #334155;
	--pc-red-50: #FEF2F2; --pc-red-600: #DC2626; --pc-red-700: #B91C1C; --pc-red-800: #991B1B;

	--pc-font-sans: "Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
	--pc-font-display: "Plus Jakarta Sans", ui-sans-serif, system-ui, sans-serif;

	--pc-shadow-soft: 0 1px 2px rgba(16, 33, 47, 0.04), 0 4px 16px rgba(16, 33, 47, 0.06);
	--pc-shadow-lift: 0 2px 4px rgba(16, 33, 47, 0.05), 0 12px 32px rgba(16, 33, 47, 0.10);
	--pc-shadow-btn: 0 1px 2px rgba(12, 92, 90, 0.25), 0 6px 16px -6px rgba(12, 92, 90, 0.45);
	--pc-shadow-header: 0 4px 20px -8px rgba(11, 29, 49, 0.18);

	--pc-radius-xl: 12px; --pc-radius-2xl: 16px; --pc-radius-3xl: 24px; --pc-radius-4xl: 32px;

	--pc-gutter: 16px;
	--pc-utility-h: 0px;          /* set by JS from the utility bar's real height */
	--pc-header-offset: 0px;      /* admin bar offset, set by JS */
	color-scheme: light;
}
@media (min-width: 640px)  { :root { --pc-gutter: 24px; } }
@media (min-width: 1024px) { :root { --pc-gutter: 32px; } }

/* ---------- 2. Base (only where Astra/Elementor leave gaps) ---------- */
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: 88px; }
@media (min-width: 1024px) { html { scroll-padding-top: 130px; } }
body.pc-site {
	background: #fff;
	color: var(--pc-slate-700);
	font-family: var(--pc-font-sans);
	font-size: 1rem;
	line-height: 1.625;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: optimizeLegibility;
}
body.pc-site h1, body.pc-site h2, body.pc-site h3, body.pc-site h4 {
	font-family: var(--pc-font-display);
	color: var(--pc-navy-900);
	letter-spacing: -0.02em;
	text-wrap: balance;
}
body.pc-site p { text-wrap: pretty; }
body.pc-site img, body.pc-site svg, body.pc-site video { max-width: 100%; }
::selection { background: var(--pc-brand-100); color: var(--pc-navy-900); }
html, body { overflow-x: clip; } /* no horizontal page scroll at any width */

/* Visible, consistent focus indicator (WCAG 2.4.7 / 2.4.11) — applies to Elementor/Xpro widgets too */
body.pc-site :focus-visible {
	outline: 3px solid var(--pc-brand-500) !important;
	outline-offset: 3px;
	border-radius: 6px;
}
body.pc-site .elementor-button:focus-visible, body.pc-site .pc-btn:focus-visible { outline-offset: 4px; }

/* Screen-reader text + skip link (Astra's "Skip to content" is kept and styled) */
.screen-reader-text:not(:focus) {
	position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px;
	overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}
.skip-link.screen-reader-text:focus {
	position: fixed !important; left: 16px; top: 16px; z-index: 100000;
	width: auto; height: auto; clip: auto; padding: 12px 20px;
	border-radius: 9999px; background: var(--pc-navy-800); color: #fff; font-weight: 600; text-decoration: none;
}

/* SVG icons uploaded to Elementor (stroke icons): never let Elementor's `fill` colour fill them */
.elementor-icon svg g[fill="none"], .elementor-icon-list-icon svg g[fill="none"],
.elementor-button-icon svg g[fill="none"], .elementor-social-icon svg g[fill="none"] { fill: none !important; }
.elementor-icon svg g[stroke="currentColor"], .elementor-icon-list-icon svg g[stroke="currentColor"],
.elementor-button-icon svg g[stroke="currentColor"] { stroke: currentColor; }

/* ---------- 3. Layout ---------- */
/* Same stepped container as the approved site (Tailwind "container": max-width = breakpoint, padding inside):
   <640 full width · 640 · 768 · 1024 · 1280 · 1536; side padding 16 / 24 (≥640) / 32 (≥1024). */
.pc-container { width: 100%; margin-inline: auto; padding-inline: var(--pc-gutter); box-sizing: border-box; }
@media (min-width: 640px)  { .pc-container { max-width: 640px; } }
@media (min-width: 768px)  { .pc-container { max-width: 768px; } }
@media (min-width: 1024px) { .pc-container { max-width: 1024px; } }
@media (min-width: 1280px) { .pc-container { max-width: 1280px; } }
@media (min-width: 1536px) { .pc-container { max-width: 1536px; } }

/* Section rhythm — add to the outer Elementor container of a section */
.pc-section    { padding-block: 48px; }
.pc-section-sm { padding-block: 40px; }
.pc-page-body  { padding-block: 40px; }
@media (min-width: 640px)  { .pc-section { padding-block: 56px; } .pc-section-sm { padding-block: 48px; } .pc-page-body { padding-block: 56px; } }
@media (min-width: 1024px) { .pc-section { padding-block: 64px; } }
.pc-bg-sand  { background-color: var(--pc-sand-50); }
.pc-bg-navy  { background-color: var(--pc-navy-900); color: var(--pc-navy-100); }
.pc-bg-dots  { background-image: radial-gradient(var(--pc-navy-200) 1px, transparent 1px); background-size: 18px 18px; }
.pc-bg-grid  { background-image: linear-gradient(to right, rgb(255 255 255 / .06) 1px, transparent 1px), linear-gradient(to bottom, rgb(255 255 255 / .06) 1px, transparent 1px); background-size: 32px 32px; }

/* ---------- 4. Page hero (inner pages) ----------
   Elementor: outer container class "pc-page-hero" (Sand 50 bg, bottom border, arc motif),
   inside it: [pc_breadcrumbs] shortcode, eyebrow heading, H1, lead text. */
.pc-page-hero { position: relative; isolation: isolate; overflow: hidden; background: var(--pc-sand-50); border-bottom: 1px solid rgb(226 232 240 / .7); }
.pc-page-hero::after {
	content: ""; position: absolute; right: -96px; top: -96px; z-index: -1; width: 416px; height: 416px; display: none;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 400 400'%3E%3Cg color='%231D5BC6'%3E%3Ccircle cx='200' cy='200' r='190' fill='none' stroke='currentColor' stroke-opacity='.08' stroke-width='2'/%3E%3Ccircle cx='200' cy='200' r='140' fill='none' stroke='currentColor' stroke-opacity='.08' stroke-width='2'/%3E%3Ccircle cx='200' cy='200' r='90' fill='currentColor' fill-opacity='.05'/%3E%3C/g%3E%3C/svg%3E") no-repeat center / contain;
}
@media (min-width: 768px) { .pc-page-hero::after { display: block; } }
.pc-page-hero-inner { padding-block: 32px; }
@media (min-width: 640px)  { .pc-page-hero-inner { padding-block: 48px; } }
@media (min-width: 1024px) { .pc-page-hero-inner { padding-block: 56px; } }
.pc-page-hero-text { margin-top: 24px; max-width: 48rem; }
@media (min-width: 640px) { .pc-page-hero-text { margin-top: 32px; } }

/* ---------- 5. Typography helpers (match the approved type scale) ----------
   Prefer Elementor Global Fonts; these classes exist for non-Elementor output and as a fallback. */
.pc-h-display, .pc-h-display .elementor-heading-title { font-family: var(--pc-font-display); font-weight: 800; font-size: 2.375rem; line-height: 1.05; }
.pc-h-page,    .pc-h-page .elementor-heading-title    { font-family: var(--pc-font-display); font-weight: 800; font-size: 2rem; line-height: 1.1; margin: 0; }
.pc-h-section, .pc-h-section .elementor-heading-title { font-family: var(--pc-font-display); font-weight: 700; font-size: 1.75rem; line-height: 1.15; }
.pc-h-card,    .pc-h-card .elementor-heading-title    { font-family: var(--pc-font-display); font-weight: 700; font-size: 1.0625rem; line-height: 1.375; color: var(--pc-navy-900); margin: 0; }
@media (min-width: 640px) {
	.pc-h-display, .pc-h-display .elementor-heading-title { font-size: 3.25rem; }
	.pc-h-page,    .pc-h-page .elementor-heading-title    { font-size: 2.75rem; }
	.pc-h-section, .pc-h-section .elementor-heading-title { font-size: 2.25rem; }
	.pc-h-card,    .pc-h-card .elementor-heading-title    { font-size: 1.125rem; }
}
@media (min-width: 1024px) {
	.pc-h-display, .pc-h-display .elementor-heading-title { font-size: 3.75rem; }
	.pc-h-page,    .pc-h-page .elementor-heading-title    { font-size: 3rem; }
	.pc-h-section, .pc-h-section .elementor-heading-title { font-size: 2.5rem; }
}
.pc-lead, .pc-lead p { font-size: 1.0625rem; line-height: 1.625; color: var(--pc-slate-600); }
@media (min-width: 640px) { .pc-lead, .pc-lead p { font-size: 1.125rem; } }

/* Eyebrow: small uppercase label with a short green dash before it.
   Elementor: Heading widget (HTML tag "p"), class "pc-eyebrow". Add "pc-eyebrow-plain" to hide the dash. */
.pc-eyebrow .elementor-heading-title, p.pc-eyebrow, span.pc-eyebrow {
	display: inline-flex; align-items: center; gap: 10px;
	font-family: var(--pc-font-sans); font-size: 0.75rem; font-weight: 600; line-height: 1.4;
	text-transform: uppercase; letter-spacing: 0.14em; color: var(--pc-brand-700); margin: 0;
}
.pc-eyebrow .elementor-heading-title::before, p.pc-eyebrow::before, span.pc-eyebrow::before {
	content: ""; flex: none; width: 20px; height: 2px; border-radius: 9999px; background: var(--pc-sage-400);
}
.pc-eyebrow.pc-eyebrow-plain .elementor-heading-title::before, p.pc-eyebrow.pc-eyebrow-plain::before { display: none; }
.pc-eyebrow.pc-eyebrow-center { text-align: center; }
.pc-eyebrow.pc-eyebrow-center .elementor-heading-title { justify-content: center; }

/* Inline text links inside text (Text Editor widget: add class "pc-links" to the widget) */
.pc-links a, a.pc-link {
	font-weight: 600; color: var(--pc-brand-700); text-decoration: underline; text-decoration-color: var(--pc-brand-300);
	text-decoration-thickness: 2px; text-underline-offset: 4px; transition: color .2s, text-decoration-color .2s;
}
.pc-links a:hover, a.pc-link:hover { color: var(--pc-brand-800); text-decoration-color: var(--pc-brand-600); }

/* "Learn more →" arrow link. Elementor: Button widget with class "pc-link-arrow" (icon after). */
a.pc-link-arrow, .pc-link-arrow .elementor-button {
	display: inline-flex; align-items: center; gap: 6px; min-height: 44px; padding: 0 !important;
	background: transparent !important; box-shadow: none !important; border: 0 !important;
	font-weight: 600; color: var(--pc-brand-700) !important; text-decoration: none;
}
a.pc-link-arrow svg, .pc-link-arrow .elementor-button-icon svg, .pc-link-arrow .elementor-button-icon i { width: 16px; height: 16px; transition: transform .2s; }
a.pc-link-arrow:hover, .pc-link-arrow .elementor-button:hover { color: var(--pc-brand-800) !important; }
a.pc-link-arrow:hover svg, .pc-link-arrow .elementor-button:hover .elementor-button-icon svg,
.pc-card-hover:hover .pc-link-arrow svg { transform: translateX(3px); }

/* ---------- 6. Buttons ----------
   Primary = Elementor Site Settings → Buttons (see guide). Other variants: Button widget + class. */
.elementor-button, .pc-btn { transition: background-color .2s ease-out, border-color .2s ease-out, color .2s ease-out, box-shadow .2s ease-out, transform .2s ease-out; }
.elementor-button:active, .pc-btn:active { transform: translateY(1px); }
.pc-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 46px; padding: 10px 20px;
	border-radius: 9999px; font-family: var(--pc-font-sans); font-weight: 600; font-size: 0.9375rem; letter-spacing: -0.005em;
	line-height: 1.25; text-align: center; text-decoration: none; background: var(--pc-brand-600); color: #fff; box-shadow: var(--pc-shadow-btn); border: 0;
}
.pc-btn:hover { background: var(--pc-brand-700); color: #fff; }
.pc-btn-primary .elementor-button { box-shadow: var(--pc-shadow-btn); }
.pc-btn-secondary .elementor-button { background: #fff !important; color: var(--pc-navy-800) !important; border: 1px solid var(--pc-slate-300) !important; box-shadow: none !important; }
.pc-btn-secondary .elementor-button:hover { background: var(--pc-slate-50) !important; border-color: var(--pc-navy-300) !important; }
.pc-btn-light .elementor-button { background: #fff !important; color: var(--pc-navy-900) !important; border: 0 !important; box-shadow: 0 1px 2px rgb(0 0 0 / .05) !important; }
.pc-btn-light .elementor-button:hover { background: var(--pc-brand-50) !important; }
.pc-btn-outline-light .elementor-button { background: transparent !important; color: #fff !important; border: 1px solid rgb(255 255 255 / .35) !important; box-shadow: none !important; }
.pc-btn-outline-light .elementor-button:hover { background: rgb(255 255 255 / .10) !important; border-color: rgb(255 255 255 / .6) !important; }
.pc-btn-ghost .elementor-button { background: transparent !important; color: var(--pc-brand-700) !important; box-shadow: none !important; border: 0 !important; }
.pc-btn-ghost .elementor-button:hover { background: var(--pc-brand-50) !important; }
/* Sizes: md (default) and lg */
.pc-btn-lg .elementor-button, .pc-btn.pc-btn-lg { min-height: 54px; padding: 12px 28px !important; font-size: 1rem !important; }
.pc-btn-full .elementor-button, .pc-btn-full.pc-btn { width: 100%; }
.pc-btn-lg .elementor-button .elementor-button-content-wrapper, .elementor-button .elementor-button-content-wrapper { align-items: center; }

/* ---------- 7. Cards and surfaces ----------
   Elementor: add to a Container (or an Icon Box / Image Box widget). */
.pc-card { border-radius: var(--pc-radius-3xl); border: 1px solid rgb(226 232 240 / .8); background: #fff; box-shadow: var(--pc-shadow-soft); }
.pc-card-hover { position: relative; transition: box-shadow .2s ease-out, border-color .2s ease-out, transform .2s ease-out; }
.pc-card-hover:hover { transform: translateY(-2px); border-color: var(--pc-brand-200); box-shadow: var(--pc-shadow-lift); }
.pc-card-hover:focus-within { border-color: var(--pc-brand-200); box-shadow: var(--pc-shadow-lift); }
/* Whole-card link: put class "pc-stretch" on the card's title (Heading widget with a link) */
.pc-card-hover .pc-stretch a::after { content: ""; position: absolute; inset: 0; border-radius: inherit; }
.pc-panel { border-radius: var(--pc-radius-4xl); }
.pc-panel-brand { border-radius: var(--pc-radius-4xl); border: 1px solid var(--pc-brand-100); background: rgb(238 244 254 / .6); }
.pc-panel-navy { border-radius: var(--pc-radius-4xl); background: var(--pc-navy-900); color: #fff; }
.pc-rounded-4xl img, img.pc-rounded-4xl { border-radius: var(--pc-radius-4xl); box-shadow: 0 0 0 1px rgb(0 0 0 / .05); }
.pc-rounded-3xl img, img.pc-rounded-3xl { border-radius: var(--pc-radius-3xl); }

/* Icon tiles: Icon / Icon Box widget, View "Stacked", Shape "Square" + class */
.pc-icon-tile .elementor-icon, .pc-icon-tile-sage .elementor-icon {
	width: 48px; height: 48px; padding: 12px !important; border-radius: var(--pc-radius-2xl) !important; font-size: 24px;
	display: inline-flex; align-items: center; justify-content: center; box-sizing: border-box;
}
.pc-icon-tile .elementor-icon { background: var(--pc-brand-50) !important; color: var(--pc-brand-700) !important; }
.pc-icon-tile-sage .elementor-icon { background: var(--pc-sage-50) !important; color: var(--pc-sage-600) !important; }
.pc-icon-tile .elementor-icon svg, .pc-icon-tile-sage .elementor-icon svg { width: 24px; height: 24px; }

/* Chips / pills */
.pc-chips { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; margin: 16px 0 0; padding: 0; }
.pc-chip, .pc-chip-btn .elementor-button {
	display: inline-flex; align-items: center; gap: 8px; min-height: 40px; padding: 0 16px !important; border-radius: 9999px;
	border: 1px solid var(--pc-slate-200) !important; background: #fff !important; color: var(--pc-navy-800) !important; box-shadow: none !important;
	font-size: 0.875rem !important; font-weight: 500; text-decoration: none; transition: background-color .2s, border-color .2s, color .2s;
}
.pc-chip:hover, .pc-chip-btn .elementor-button:hover { border-color: var(--pc-brand-300) !important; background: var(--pc-brand-50) !important; color: var(--pc-brand-800) !important; }

/* Check list (Icon List widget: class "pc-check-list" — sage round check icons) */
.pc-check-list .elementor-icon-list-icon {
	width: 24px; height: 24px; border-radius: 9999px; background: var(--pc-sage-100); color: var(--pc-sage-600);
	display: inline-flex; align-items: center; justify-content: center; flex: none;
}
.pc-check-list .elementor-icon-list-icon svg, .pc-check-list .elementor-icon-list-icon i { width: 16px !important; height: 16px; font-size: 12px !important; }

/* Staff initials circle (Team cards): Heading widget with class "pc-initials" */
.pc-initials .elementor-heading-title {
	display: inline-flex; align-items: center; justify-content: center; width: 56px; height: 56px; border-radius: 9999px;
	background: var(--pc-brand-50); color: var(--pc-brand-700); font-family: var(--pc-font-display); font-weight: 700; font-size: 1.125rem; letter-spacing: 0;
}

/* Medical note / info box */
.pc-note { border-radius: var(--pc-radius-2xl); border: 1px solid var(--pc-brand-100); background: var(--pc-brand-50); color: var(--pc-navy-800); }

/* ---------- 8. Article body (Xpro single-post "Post Content" widget: class "pc-prose") ---------- */
.pc-prose, .single-post .entry-content { max-width: 68ch; font-size: 1.0625rem; line-height: 1.8; color: var(--pc-slate-700); }
.pc-prose > * + *, .pc-prose .elementor-widget-container > * + *, .single-post .entry-content > * + * { margin-top: 1.25rem; }
.pc-prose h2, .single-post .entry-content h2 { margin-top: 2.5rem; font-size: 1.5rem; font-weight: 700; line-height: 1.375; }
.pc-prose h3, .single-post .entry-content h3 { margin-top: 2rem; font-size: 1.25rem; font-weight: 600; }
.pc-prose ul, .single-post .entry-content ul { list-style: disc; padding-left: 1.5rem; }
.pc-prose ol, .single-post .entry-content ol { list-style: decimal; padding-left: 1.5rem; }
.pc-prose li + li, .single-post .entry-content li + li { margin-top: .5rem; }
.pc-prose ul li::marker, .single-post .entry-content ul li::marker { color: var(--pc-brand-600); }
.pc-prose ol li::marker, .single-post .entry-content ol li::marker { font-weight: 600; color: var(--pc-brand-700); }
.pc-prose a, .single-post .entry-content a { font-weight: 500; color: var(--pc-brand-700); text-decoration: underline; text-decoration-color: var(--pc-brand-300); text-underline-offset: 4px; overflow-wrap: anywhere; }
.pc-prose a:hover, .single-post .entry-content a:hover { text-decoration-color: var(--pc-brand-600); }
.pc-prose strong, .single-post .entry-content strong { font-weight: 600; color: var(--pc-navy-900); }

/* ---------- 9. Breadcrumbs [pc_breadcrumbs] ---------- */
.pc-breadcrumbs { font-size: .875rem; }
.pc-breadcrumbs ol { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 8px; margin: 0; padding: 0; list-style: none; color: var(--pc-slate-500); }
.pc-breadcrumbs li { display: flex; min-width: 0; align-items: center; gap: 8px; margin: 0; }
.pc-breadcrumbs a { display: inline-flex; min-height: 28px; align-items: center; border-radius: 4px; color: var(--pc-slate-500); text-decoration: none; }
.pc-breadcrumbs a:hover { color: var(--pc-brand-700); text-decoration: underline; }
.pc-breadcrumbs [aria-current="page"] { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-weight: 500; color: var(--pc-navy-800); }
.pc-crumb-sep { width: 14px; height: 14px; color: var(--pc-slate-400); flex: none; }

/* ---------- 10. Header (Xpro header template) ----------
   Classes: outer header container "pc-site-header"; utility bar container "pc-utility-bar";
   main row "pc-header-main"; desktop nav row "pc-header-nav". Sticky behaviour is added by JS. */
.pc-sticky-root { position: sticky !important; top: calc(var(--pc-header-offset) - var(--pc-utility-h)); z-index: 990; background: #fff; }
.pc-site-header { position: relative; background: #fff; }
.pc-header-main, .pc-header-nav { background: #fff; }
.pc-site-header .pc-header-bar-border, .pc-header-main { border-bottom: 1px solid rgb(226 232 240 / .7); transition: box-shadow .2s, border-color .2s; }
.pc-header-nav { border-top: 1px solid var(--pc-slate-100); border-bottom: 1px solid rgb(226 232 240 / .7); }
.pc-scrolled .pc-header-nav, .pc-scrolled .pc-header-main:last-child { border-bottom-color: var(--pc-slate-200); box-shadow: var(--pc-shadow-header); }
@media (max-width: 1023px) { .pc-scrolled .pc-header-main { border-bottom-color: var(--pc-slate-200); box-shadow: var(--pc-shadow-header); } }
.pc-header-main { min-height: 60px; }
@media (min-width: 1024px) { .pc-header-main { min-height: 64px; } }

.pc-utility-bar { background: var(--pc-navy-900); color: var(--pc-navy-100); font-size: .8125rem; white-space: nowrap; }
.pc-utility-bar a { color: var(--pc-navy-100); text-decoration: none; }
.pc-utility-bar a:hover { color: #fff; }
.pc-utility-bar .elementor-icon-list-item > a, .pc-utility-bar .elementor-icon-list-text { min-height: 32px; font-size: .8125rem; }
.pc-utility-dot .elementor-icon-list-icon, .pc-utility-dot::before { color: var(--pc-sage-300); }
.pc-utility-divider { width: 1px; height: 16px; background: rgb(255 255 255 / .2); }

/* Round header icon buttons (search toggle, call) */
.pc-search-toggle, .pc-round-btn .elementor-button, .pc-menu-toggle {
	display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; padding: 0 !important;
	border-radius: 9999px; border: 1px solid var(--pc-slate-200); background: #fff; color: var(--pc-navy-900); cursor: pointer;
	transition: background-color .2s, border-color .2s, color .2s;
}
.pc-search-toggle:hover, .pc-round-btn .elementor-button:hover, .pc-menu-toggle:hover { border-color: var(--pc-brand-200); background: var(--pc-brand-50); color: var(--pc-brand-700); }
.pc-search-toggle svg, .pc-menu-toggle svg { width: 20px; height: 20px; }
.pc-menu-toggle svg { width: 24px; height: 24px; }
.pc-call-btn .elementor-button { width: 40px; height: 40px; padding: 0 !important; border-radius: 9999px; background: var(--pc-brand-50) !important; color: var(--pc-brand-700) !important; border: 0 !important; box-shadow: none !important; }
.pc-call-btn .elementor-button:hover { background: var(--pc-brand-100) !important; }
.pc-search-toggle .pc-i-close, .pc-search-toggle .pc-label-close,
.pc-menu-toggle .pc-i-close, .pc-menu-toggle .pc-label-close { display: none; }
.pc-search-toggle[aria-expanded="true"] .pc-i-open, .pc-search-toggle[aria-expanded="true"] .pc-label-open,
.pc-menu-toggle[aria-expanded="true"] .pc-i-open, .pc-menu-toggle[aria-expanded="true"] .pc-label-open { display: none; }
.pc-search-toggle[aria-expanded="true"] .pc-i-close, .pc-menu-toggle[aria-expanded="true"] .pc-i-close { display: block; }
.pc-search-toggle[aria-expanded="true"] .pc-label-close, .pc-menu-toggle[aria-expanded="true"] .pc-label-close { display: inline; }

/* Header search toggle: prevent Elementor global button styles from overriding the child-theme search design */
body.pc-site .pc-search-toggle {
  background: #fff;
  border: 1px solid var(--pc-slate-200);
  border-radius: 999px;
  box-shadow: none;
  color: var(--pc-navy-900);
}

body.pc-site .pc-search-toggle:hover,
body.pc-site .pc-search-toggle:focus,
body.pc-site .pc-search-toggle:active {
  background: var(--pc-brand-50);
  border-color: var(--pc-brand-200);
  box-shadow: none;
  color: var(--pc-brand-700);
}
/* "Call us 0787 148 403 | 0701 087 757" block (Heading/Text widgets with class) */
.pc-call-label, .pc-call-label .elementor-heading-title { font-size: .75rem !important; font-weight: 500; color: var(--pc-slate-500) !important; line-height: 1.25; }
.pc-call-numbers, .pc-call-numbers .elementor-heading-title, .pc-call-numbers p { font-size: .9375rem; font-weight: 600; color: var(--pc-navy-900); font-variant-numeric: tabular-nums; line-height: 1.25; margin: 0; }
.pc-call-numbers a { color: var(--pc-navy-900); text-decoration: none; display: inline-flex; min-height: 28px; align-items: center; }
.pc-call-numbers a:hover { color: var(--pc-brand-700); }
.pc-call-numbers .pc-sep { color: var(--pc-slate-300); margin: 0 8px; }

/* Header extras */
.pc-utility-tagline p { display: inline-flex; align-items: center; gap: 8px; margin: 0; font-size: .8125rem; color: var(--pc-navy-100); }
.pc-utility-tagline p::before { content: ""; width: 6px; height: 6px; border-radius: 9999px; background: var(--pc-sage-300); flex: none; }
.pc-book-pill .elementor-button { min-height: 40px; padding: 0 14px !important; font-size: .875rem !important; box-shadow: none !important; }
@media (max-width: 384px) { .pc-book-pill { display: none !important; } }
.pc-book-tablet .elementor-button { min-height: 42px; padding: 0 16px !important; }
.pc-phone-tile .elementor-icon { width: 40px; height: 40px; padding: 10px !important; border-radius: 9999px !important; background: var(--pc-brand-50) !important; color: var(--pc-brand-700) !important; }
.pc-phone-tile .elementor-icon svg { width: 20px; height: 20px; }

/* 404 "Popular pages" links (Xpro 404 template: Icon List widget, inline, class "pc-popular") */
.pc-popular .elementor-icon-list-text { font-size: .875rem; font-weight: 500; color: var(--pc-brand-700); }
.pc-popular a:hover .elementor-icon-list-text { text-decoration: underline; }

/* Icon-only call button: the text stays for screen readers (e.g. "Call 0787 148 403") */
.pc-call-btn .elementor-button-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; }
.pc-call-btn .elementor-button-content-wrapper { gap: 0; }
a.pc-call-btn-link { display: inline-flex; width: 40px; height: 40px; align-items: center; justify-content: center; border-radius: 9999px; background: var(--pc-brand-50); color: var(--pc-brand-700); }
a.pc-call-btn-link:hover { background: var(--pc-brand-100); }
a.pc-call-btn-link svg { width: 20px; height: 20px; }
/* Footer call cards (Text Editor HTML in the footer contact strip) */
.pc-footer-call-icon { display: inline-flex; width: 36px; height: 36px; flex: none; align-items: center; justify-content: center; border-radius: 9999px; background: rgb(43 111 227 / .2); color: var(--pc-brand-200); }
.pc-footer-call-icon svg { width: 16px; height: 16px; }
.pc-footer-call small { display: block; font-size: .75rem; line-height: 1.33; color: var(--pc-navy-300); }
.pc-footer-call strong { display: block; font-size: 1.125rem; font-weight: 600; line-height: 1.5; font-variant-numeric: tabular-nums; color: #fff; }
.pc-footer-call p { margin: 0; }

/* Search panel (desktop drop-down under the header) */
.pc-search-panel { position: absolute; left: 0; right: 0; top: 100%; z-index: 980; background: #fff; border-bottom: 1px solid var(--pc-slate-200); box-shadow: 0 12px 24px -12px rgba(11, 29, 49, .25); }
.pc-search-panel[hidden] { display: none; }
.pc-search-panel-inner { display: flex; align-items: center; gap: 12px; padding-block: 16px; }
.pc-search-panel-inner .pc-search-form { max-width: 48rem; }
.pc-search-panel-close {
	margin-left: auto; display: inline-flex; height: 48px; flex: none; align-items: center; gap: 8px; padding: 0 16px; border: 0; border-radius: 9999px;
	background: transparent; font: 600 .9375rem/1 var(--pc-font-sans); color: var(--pc-slate-600); cursor: pointer;
}
.pc-search-panel-close:hover { background: var(--pc-slate-100); color: var(--pc-navy-900); }
.pc-search-panel-close svg { width: 20px; height: 20px; }

/* ---------- 11. Search form [pc_search] ---------- */
.pc-search-form { display: flex; width: 100%; align-items: center; gap: 8px; margin: 0; }
.pc-search-field { position: relative; min-width: 0; flex: 1; }
.pc-search-icon { position: absolute; left: 14px; top: 50%; width: 20px; height: 20px; transform: translateY(-50%); color: var(--pc-slate-500); pointer-events: none; }
.pc-search-form input[type="search"] {
	box-sizing: border-box; width: 100%; height: 48px; margin: 0; padding: 0 44px; border: 1px solid var(--pc-slate-300); border-radius: 9999px;
	background: #fff; font: 400 1rem/1.5 var(--pc-font-sans); color: var(--pc-navy-900); -webkit-appearance: none; appearance: none; box-shadow: none;
}
.pc-search-form input[type="search"]::placeholder { color: var(--pc-slate-500); opacity: 1; }
.pc-search-form input[type="search"]:focus { border-color: var(--pc-brand-600); outline: none; box-shadow: 0 0 0 2px rgb(29 91 198 / .3); }
.pc-search-form input[type="search"]::-webkit-search-cancel-button { -webkit-appearance: none; appearance: none; }
.pc-search-clear {
	position: absolute; right: 6px; top: 50%; display: flex; width: 36px; height: 36px; transform: translateY(-50%); align-items: center; justify-content: center;
	padding: 0; border: 0; border-radius: 9999px; background: transparent; color: var(--pc-slate-500); cursor: pointer;
}
.pc-search-clear[hidden] { display: none; }
.pc-search-clear:hover { background: var(--pc-slate-100); color: var(--pc-navy-900); }
.pc-search-clear svg { width: 16px; height: 16px; }
.pc-search-submit {
	display: inline-flex; height: 48px; flex: none; align-items: center; gap: 8px; padding: 0 20px; border: 0; border-radius: 9999px;
	background: var(--pc-brand-600); color: #fff; font: 600 .9375rem/1 var(--pc-font-sans); cursor: pointer; transition: background-color .2s;
}
.pc-search-submit:hover { background: var(--pc-brand-700); }
.pc-search-submit-icon { width: 20px; height: 20px; }
@media (min-width: 640px) { .pc-search-submit-icon { display: none; } }
@media (max-width: 639px) { .pc-search-submit-label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; } }

/* ---------- 12. Search results page (search.php) ---------- */
.pc-search-wrap { max-width: 48rem; margin-inline: auto; }
.pc-search-note { margin: 12px 0 0; font-size: .875rem; color: var(--pc-slate-600); }
.pc-search-results { margin-top: 32px; }
.pc-search-box { padding: 24px; }
@media (min-width: 640px) { .pc-search-box { padding: 32px; } }
.pc-search-box p { margin: 8px 0 0; color: var(--pc-slate-600); }
.pc-search-empty-text { color: var(--pc-slate-700) !important; }
.pc-search-contact { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 20px; }
.pc-search-call {
	display: inline-flex; min-height: 44px; align-items: center; gap: 8px; padding: 0 16px; border: 1px solid var(--pc-slate-200); border-radius: 9999px;
	font-weight: 600; font-variant-numeric: tabular-nums; color: var(--pc-navy-900); text-decoration: none;
}
.pc-search-call:hover { border-color: var(--pc-brand-300); background: var(--pc-brand-50); }
.pc-search-call svg { width: 16px; height: 16px; color: var(--pc-brand-600); }
.pc-search-contact .pc-link-arrow { padding: 0 8px !important; }
.pc-search-tip { margin-top: 20px !important; font-size: .875rem; }
.pc-search-count { margin: 0; font-size: .875rem; font-weight: 500; color: var(--pc-slate-600); }
.pc-search-q { font-weight: 600; color: var(--pc-navy-900); }
.pc-result-list { margin: 16px 0 0; padding: 0; list-style: none; display: grid; gap: 12px; }
.pc-result { padding: 20px; }
@media (min-width: 640px) { .pc-result { padding: 24px; } }
.pc-result-label { margin: 0; font-size: .75rem; font-weight: 600; text-transform: uppercase; letter-spacing: .05em; color: var(--pc-brand-700); }
.pc-result-title { margin-top: 6px !important; font-size: 1.125rem !important; }
.pc-result-title a { color: var(--pc-navy-900); text-decoration: none; }
.pc-result-title a::after { content: ""; position: absolute; inset: 0; border-radius: inherit; }
.pc-result-title a:hover { color: var(--pc-brand-700); }
.pc-result-excerpt { margin: 8px 0 0; font-size: .9375rem; line-height: 1.625; color: var(--pc-slate-700); }
.pc-result-excerpt mark { border-radius: 4px; background: var(--pc-brand-50); padding: 0 2px; font-weight: 600; color: var(--pc-navy-900); }
.pc-result-url { margin: 8px 0 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: .75rem; color: var(--pc-slate-500); }
.pc-pagination { margin-top: 24px; text-align: center; }
.pc-pagination .nav-links { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; }
.pc-pagination .page-numbers { display: inline-flex; min-height: 46px; min-width: 46px; align-items: center; justify-content: center; padding: 0 16px; border: 1px solid var(--pc-slate-300); border-radius: 9999px; font-weight: 600; color: var(--pc-navy-900); text-decoration: none; }
.pc-pagination .page-numbers.current, .pc-pagination .page-numbers:hover { border-color: var(--pc-brand-300); background: var(--pc-brand-50); }

/* ---------- 13. FALLBACK desktop navigation [pc_nav] ---------- */
.pc-nav-list { display: flex; align-items: center; justify-content: center; gap: 4px; margin: 0; padding: 0; list-style: none; }
@media (min-width: 1280px) { .pc-nav-list { gap: 8px; } }
.pc-nav-item { position: relative; display: flex; align-items: center; margin: 0; }
.pc-nav-link {
	position: relative; display: inline-flex; min-height: 40px; align-items: center; padding: 0 12px;
	font-size: .9375rem; font-weight: 500; color: var(--pc-slate-700); text-decoration: none; transition: color .2s;
}
@media (min-width: 1280px) { .pc-nav-link { padding: 0 14px; } }
.pc-nav-link::after {
	content: ""; position: absolute; left: 12px; right: 12px; bottom: -1px; height: 3px; border-radius: 9999px;
	background: var(--pc-brand-600); transform: scaleX(0); transition: transform .2s;
}
@media (min-width: 1280px) { .pc-nav-link::after { left: 14px; right: 14px; } }
.pc-nav-link:hover { color: var(--pc-navy-900); }
.pc-nav-link:hover::after { transform: scaleX(.5); }
.pc-nav-link.is-active { color: var(--pc-brand-700); }
.pc-nav-link.is-active::after { transform: scaleX(1); }
.pc-has-sub > .pc-nav-link { padding-right: 2px; }
.pc-has-sub > .pc-nav-link::after { right: 2px; }
.pc-sub-toggle {
	display: flex; width: 24px; height: 32px; align-items: center; justify-content: center; margin-right: 6px; padding: 0;
	border: 0; border-radius: 6px; background: transparent; color: var(--pc-slate-500); cursor: pointer;
}
@media (min-width: 1280px) { .pc-sub-toggle { margin-right: 8px; } }
.pc-sub-toggle:hover { background: var(--pc-slate-100); color: var(--pc-navy-900); }
.pc-sub-toggle svg { width: 16px; height: 16px; transition: transform .2s; }
.pc-sub-toggle[aria-expanded="true"] svg { transform: rotate(180deg); }
/* Services toggle: stop Elementor's global button style applying to the nav chevron */
.pc-nav .pc-sub-toggle {
    padding: 0;
    border: 0;
    border-radius: 6px;
    background: transparent;
    box-shadow: none;
    text-shadow: none;
    color: var(--pc-slate-500);
}

.pc-nav .pc-sub-toggle:hover,
.pc-nav .pc-sub-toggle:focus,
.pc-nav .pc-sub-toggle:active {
    border: 0;
    box-shadow: none;
    background: transparent;
    color: var(--pc-slate-500);
}

.pc-nav .pc-sub-toggle:hover {
    background: var(--pc-slate-100);
    color: var(--pc-navy-900);
}
.pc-sub { position: absolute; left: 0; top: 100%; z-index: 1000; width: 34rem; padding-top: 8px; }
.pc-sub[hidden] { display: none; }
.pc-sub-grid {
	display: grid; grid-template-columns: 1fr 1fr; gap: 4px; margin: 0; padding: 12px; list-style: none;
	border: 1px solid var(--pc-slate-200); border-radius: var(--pc-radius-2xl); background: #fff; box-shadow: var(--pc-shadow-lift);
}
.pc-sub-link { display: block; padding: 10px 12px; border-radius: var(--pc-radius-xl); font-size: .9375rem; font-weight: 500; color: var(--pc-navy-800); text-decoration: none; }
.pc-sub-link:hover, .pc-sub-link.is-active { background: var(--pc-brand-50); color: var(--pc-brand-800); }
.pc-sub-all { grid-column: span 2; margin-top: 4px; }
.pc-sub-link-all { display: flex; align-items: center; justify-content: space-between; background: var(--pc-slate-50); font-size: .875rem; font-weight: 600; color: var(--pc-brand-700); }
.pc-sub-link-all::after { content: "→"; font-weight: 600; }

/* ---------- 14. FALLBACK mobile menu [pc_mobile_menu] ---------- */
.pc-mobile-panel {
	position: fixed; left: 0; right: 0; bottom: 0; top: var(--pc-mobile-top, 60px); z-index: 985;
	overflow-y: auto; overscroll-behavior: contain; border-top: 1px solid var(--pc-slate-200); background: #fff;
}
.pc-mobile-panel[hidden] { display: none; }
@media (min-width: 1024px) { .pc-mobile-panel, .pc-menu-toggle { display: none !important; } }
.pc-mobile-nav { display: flex; min-height: 100%; flex-direction: column; padding-block: 8px 24px; }
.pc-mobile-search { padding-block: 8px; }
.pc-mobile-list { margin: 8px 0 0; padding: 0; list-style: none; }
.pc-mobile-item { border-bottom: 1px solid var(--pc-slate-100); margin: 0; }
.pc-mobile-row { display: flex; align-items: center; }
.pc-mobile-link {
	display: flex; flex: 1; min-height: 52px; align-items: center; gap: 12px; font-size: 1rem; font-weight: 600; color: var(--pc-navy-900); text-decoration: none;
}
.pc-mobile-link::before { content: ""; width: 4px; height: 20px; border-radius: 9999px; background: transparent; flex: none; }
.pc-mobile-link.is-active { color: var(--pc-brand-700); }
.pc-mobile-link.is-active::before { background: var(--pc-brand-600); }
.pc-mobile-link-arrow::after { content: ""; margin-left: auto; width: 20px; height: 20px; flex: none; background: currentColor; color: var(--pc-slate-400);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14m-5-5 5 5-5 5'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14m-5-5 5 5-5 5'/%3E%3C/svg%3E") center / contain no-repeat; }
.pc-msub-toggle { display: flex; width: 44px; height: 44px; align-items: center; justify-content: center; padding: 0; border: 0; border-radius: 9999px; background: transparent; color: var(--pc-slate-500); cursor: pointer; }
.pc-msub-toggle:hover { background: var(--pc-slate-100); }
.pc-msub-toggle svg { width: 20px; height: 20px; transition: transform .2s; }
.pc-msub-toggle[aria-expanded="true"] svg { transform: rotate(180deg); }
.pc-msub { margin: 0 0 8px 16px; padding: 0 0 0 12px; list-style: none; border-left: 2px solid var(--pc-brand-100); }
.pc-msub[hidden] { display: none; }
.pc-msub-link { display: flex; min-height: 44px; align-items: center; font-size: .9375rem; font-weight: 500; color: var(--pc-slate-700); text-decoration: none; }
.pc-msub-link:hover, .pc-msub-link.is-active { color: var(--pc-brand-700); }
.pc-mobile-extras { margin-top: 20px; }
html.pc-menu-open { overflow: hidden; } /* lock on <html> so the sticky header keeps its place */

/* ---------- 15. Footer (Xpro footer template) ----------
   Outer container "pc-footer" (Navy 900). Headings "pc-footer-heading", link lists "pc-footer-links". */
.pc-footer { background: var(--pc-navy-900); color: var(--pc-navy-100); }
.pc-footer-strip { border-bottom: 1px solid rgb(255 255 255 / .1); }
.pc-footer-heading, .pc-footer-heading .elementor-heading-title { font-family: var(--pc-font-display); font-size: .8125rem !important; font-weight: 700; text-transform: uppercase; letter-spacing: .12em; color: #fff !important; }
.pc-footer-links a, .pc-footer-links .elementor-icon-list-text, .pc-footer-links .menu-item a {
	display: inline-flex; min-height: 36px; align-items: center; font-size: .9375rem; color: var(--pc-navy-200) !important; text-decoration: none; transition: color .2s;
}
.pc-footer-links a:hover, .pc-footer-links a:hover .elementor-icon-list-text { color: #fff !important; }
.pc-footer-call a, a.pc-footer-call {
	display: flex; min-height: 56px; align-items: center; gap: 12px; padding: 0 16px; border-radius: var(--pc-radius-2xl);
	background: rgb(255 255 255 / .05); box-shadow: inset 0 0 0 1px rgb(255 255 255 / .1); color: #fff; text-decoration: none; transition: background-color .2s;
}
.pc-footer-call a:hover, a.pc-footer-call:hover { background: rgb(255 255 255 / .1); }
.pc-footer-bottom { border-top: 1px solid rgb(255 255 255 / .1); font-size: .875rem; color: var(--pc-navy-300); }
.pc-footer-bottom a { display: inline-flex; min-height: 44px; align-items: center; color: var(--pc-navy-300); text-decoration: none; }
.pc-footer-bottom a:hover { color: #fff; text-decoration: underline; }
.pc-footer-small, .pc-footer-small p { font-size: .75rem; line-height: 1.625; color: var(--pc-navy-300); max-width: 48rem; }
.pc-footer .pc-logo-inverted img { box-shadow: 0 0 0 2px rgb(255 255 255 / .2); border-radius: 9999px; }

/* Social icons (Elementor Social Icons widget) */
.pc-social-bar .elementor-social-icon { width: 28px !important; height: 28px !important; padding: 0 !important; display: inline-flex; align-items: center; justify-content: center; border-radius: 9999px; background: transparent !important; color: var(--pc-navy-100) !important; }
.pc-social-bar .elementor-social-icon:hover { background: rgb(255 255 255 / .1) !important; color: #fff !important; }
.pc-social-bar .elementor-social-icon i, .pc-social-bar .elementor-social-icon svg { font-size: 16px !important; width: 16px; height: 16px; fill: currentColor; }
.pc-social-dark .elementor-social-icon { width: 44px !important; height: 44px !important; padding: 0 !important; display: inline-flex; align-items: center; justify-content: center; border-radius: 9999px; background: rgb(255 255 255 / .05) !important; box-shadow: inset 0 0 0 1px rgb(255 255 255 / .15); color: var(--pc-navy-100) !important; }
.pc-social-dark .elementor-social-icon:hover { background: rgb(255 255 255 / .15) !important; color: #fff !important; }
.pc-social-light .elementor-social-icon { width: 44px !important; height: 44px !important; padding: 0 !important; display: inline-flex; align-items: center; justify-content: center; border-radius: 9999px; background: #fff !important; box-shadow: inset 0 0 0 1px var(--pc-slate-200); color: var(--pc-navy-800) !important; }
.pc-social-light .elementor-social-icon:hover { background: var(--pc-brand-50) !important; color: var(--pc-brand-700) !important; box-shadow: inset 0 0 0 1px var(--pc-brand-200); }
.pc-social-dark .elementor-social-icon i, .pc-social-dark .elementor-social-icon svg,
.pc-social-light .elementor-social-icon i, .pc-social-light .elementor-social-icon svg { font-size: 20px !important; width: 20px; height: 20px; fill: currentColor; }

/* Logo lock-up: round mark + "Physio-Care / REHABILITATION CENTER" text */
.pc-logo-mark img { width: 40px; height: 40px; border-radius: 9999px; box-shadow: 0 0 0 1px var(--pc-slate-200); }
@media (min-width: 640px) { .pc-logo-mark img { width: 48px; height: 48px; } }
.pc-logo-name .elementor-heading-title { font-family: var(--pc-font-display); font-size: 1.125rem; font-weight: 700; letter-spacing: -0.025em; line-height: 1; color: var(--pc-navy-900); }
.pc-logo-tag .elementor-heading-title { margin-top: 4px; white-space: nowrap; font-family: var(--pc-font-sans); font-size: .625rem; font-weight: 600; text-transform: uppercase; letter-spacing: .1em; line-height: 1; color: var(--pc-brand-700); }
@media (min-width: 640px) {
	.pc-logo-name .elementor-heading-title { font-size: 1.25rem; }
	.pc-logo-tag .elementor-heading-title { font-size: .6875rem; letter-spacing: .16em; }
}
.pc-footer .pc-logo-name .elementor-heading-title { color: #fff; }
.pc-footer .pc-logo-tag .elementor-heading-title { color: var(--pc-brand-200); }

/* ---------- 16. Forms (WPForms Lite) — matches the approved form fields ---------- */
.pc-site .wpforms-container .wpforms-field-label { margin-bottom: 6px; font-size: .9375rem; font-weight: 600; color: var(--pc-navy-800); }
.pc-site .wpforms-container .wpforms-required-label { margin-left: 4px; color: var(--pc-red-700); }
.pc-site .wpforms-container input[type="text"], .pc-site .wpforms-container input[type="email"], .pc-site .wpforms-container input[type="tel"],
.pc-site .wpforms-container input[type="date"], .pc-site .wpforms-container input[type="number"], .pc-site .wpforms-container select, .pc-site .wpforms-container textarea {
	box-sizing: border-box; display: block; width: 100%; max-width: 100%; min-height: 50px; padding: 12px 16px; border: 1px solid var(--pc-slate-300); border-radius: var(--pc-radius-xl);
	background-color: #fff; font: 400 1rem/1.5 var(--pc-font-sans); color: var(--pc-navy-900); box-shadow: inset 0 1px 2px rgba(16, 33, 47, .04); transition: border-color .2s, box-shadow .2s;
}
.pc-site .wpforms-container textarea { min-height: 140px; }
.pc-site .wpforms-container input::placeholder, .pc-site .wpforms-container textarea::placeholder { color: var(--pc-slate-400); }
.pc-site .wpforms-container input:hover, .pc-site .wpforms-container select:hover, .pc-site .wpforms-container textarea:hover { border-color: var(--pc-slate-400); }
.pc-site .wpforms-container input:focus, .pc-site .wpforms-container select:focus, .pc-site .wpforms-container textarea:focus { border-color: var(--pc-brand-600); outline: none; box-shadow: 0 0 0 4px rgb(43 111 227 / .15); }
.pc-site .wpforms-container .wpforms-field-description { margin-top: 6px; font-size: .875rem; color: var(--pc-slate-600); }
.pc-site .wpforms-container label.wpforms-error, .pc-site .wpforms-container em.wpforms-error { margin-top: 6px; font-size: .875rem; font-weight: 500; color: var(--pc-red-700); }
.pc-site .wpforms-container input.wpforms-error, .pc-site .wpforms-container select.wpforms-error, .pc-site .wpforms-container textarea.wpforms-error { border-color: var(--pc-red-600); }
.pc-site .wpforms-container input[type="checkbox"], .pc-site .wpforms-container input[type="radio"] { width: 20px; height: 20px; accent-color: var(--pc-brand-600); }
.pc-site .wpforms-container .wpforms-field-radio li, .pc-site .wpforms-container .wpforms-field-checkbox li { font-size: .9375rem; color: var(--pc-slate-700); }
.pc-site .wpforms-container button[type="submit"], .pc-site .wpforms-container .wpforms-submit {
	display: inline-flex; min-height: 54px; align-items: center; justify-content: center; gap: 8px; padding: 12px 28px; border: 0; border-radius: 9999px;
	background: var(--pc-brand-600); color: #fff; font: 600 1rem/1.25 var(--pc-font-sans); box-shadow: var(--pc-shadow-btn); cursor: pointer; transition: background-color .2s;
}
.pc-site .wpforms-container button[type="submit"]:hover, .pc-site .wpforms-container .wpforms-submit:hover { background: var(--pc-brand-700); }
.pc-site .wpforms-confirmation-container-full { border: 1px solid var(--pc-sage-200); border-radius: var(--pc-radius-2xl); background: var(--pc-sage-50); color: var(--pc-navy-900); padding: 20px; }

/* ---------- 17. Elementor/Astra compatibility ---------- */
/* Astra: no extra top/bottom spacing around full-width Elementor pages */
.ast-page-builder-template .site-content > .ast-container, .ast-page-builder-template .site-content #primary { padding: 0; margin: 0; }
/* Anchor targets (e.g. /locations/#kubiri) are not hidden under the sticky header */
[id] { scroll-margin-top: 88px; }
@media (min-width: 1024px) { [id] { scroll-margin-top: 130px; } }

/* ---------- 18. Motion: subtle, and only when the visitor has not asked for less ---------- */
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
	.elementor-invisible { visibility: visible !important; }
	.pc-card-hover:hover { transform: none; }
}
