/* =====================================================================
   MedCare Wollerau Widgets — Base / Design Tokens
   All plugin styles are isolated under .mcw-wrapper
   ===================================================================== */

:root {
	--mcw-primary:        #D32F2F;
	--mcw-primary-hover:  #B71C1C;
	--mcw-primary-soft:   rgba(211, 47, 47, 0.08);

	--mcw-text:           #1A1A1A;
	--mcw-text-muted:     #666666;
	--mcw-text-light:     #999999;

	--mcw-bg:             #FFFFFF;
	--mcw-bg-alt:         #F5F5F5;
	--mcw-bg-overlay:     rgba(15, 23, 42, 0.55);

	--mcw-border:         #E5E5E5;
	--mcw-border-strong:  #CCCCCC;

	--mcw-success:        #2E7D32;
	--mcw-warning:        #F57C00;

	--mcw-radius-sm:      6px;
	--mcw-radius-md:      10px;
	--mcw-radius-lg:      16px;
	--mcw-radius-pill:    999px;

	--mcw-shadow-sm:      0 1px 2px rgba(0,0,0,0.05);
	--mcw-shadow-md:      0 4px 12px rgba(0,0,0,0.08);
	--mcw-shadow-lg:      0 12px 32px rgba(0,0,0,0.12);
	--mcw-shadow-xl:      0 24px 48px rgba(0,0,0,0.16);

	--mcw-ease:           cubic-bezier(0.22, 1, 0.36, 1);
	--mcw-fast:           0.18s var(--mcw-ease);
	--mcw-base:           0.3s var(--mcw-ease);
	--mcw-slow:           0.6s var(--mcw-ease);

	--mcw-font:           -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
}

/* ---------------------------------------------------------------------
   Hard isolation — override Elementor / Hello theme inheritance
   --------------------------------------------------------------------- */
.elementor-page .mcw-wrapper,
.e-con .mcw-wrapper,
.elementor-widget-container .mcw-wrapper {
	color: var(--mcw-text) !important;
	font-family: var(--mcw-font) !important;
	-webkit-font-smoothing: antialiased;
}

.mcw-wrapper,
.mcw-wrapper * {
	box-sizing: border-box;
}

.mcw-wrapper *::before,
.mcw-wrapper *::after {
	box-sizing: border-box;
}

/* ---------------------------------------------------------------------
   Default: any inline SVG inside a .mcw-* icon container should follow
   the parent's color (currentColor) so hover/focus color changes work.
   --------------------------------------------------------------------- */
.mcw-wrapper [class*="__icon"] svg,
.mcw-wrapper [class*="__icon"] svg * {
	transition: color 0.3s var(--mcw-ease), fill 0.3s var(--mcw-ease), stroke 0.3s var(--mcw-ease);
}

/* ---------------------------------------------------------------------
   GLOBAL FALLBACK — utility class for any element whose background goes
   red on hover/active. Add `.mcw-icon-white-on-bg` to the parent that
   contains the icon and the SVG/FA icon will turn white when the parent
   has the `is-active` state OR is being hovered.
   --------------------------------------------------------------------- */
.mcw-wrapper .mcw-icon-white-on-bg.is-active,
.mcw-wrapper .mcw-icon-white-on-bg:hover {
	color: #FFFFFF !important;
}
.mcw-wrapper .mcw-icon-white-on-bg.is-active svg [fill]:not([fill="none"]),
.mcw-wrapper .mcw-icon-white-on-bg:hover     svg [fill]:not([fill="none"]) {
	fill: #FFFFFF !important;
}
.mcw-wrapper .mcw-icon-white-on-bg.is-active svg [stroke]:not([stroke="none"]),
.mcw-wrapper .mcw-icon-white-on-bg:hover     svg [stroke]:not([stroke="none"]) {
	stroke: #FFFFFF !important;
}

/* ---------------------------------------------------------------------
   Reusable primitives
   --------------------------------------------------------------------- */
.mcw-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	padding: 14px 28px;
	font-family: inherit;
	font-size: 16px;
	font-weight: 600;
	line-height: 1.2;
	letter-spacing: 0.01em;
	border-radius: var(--mcw-radius-sm);
	border: 2px solid transparent;
	cursor: pointer;
	text-decoration: none !important;
	transition: transform var(--mcw-base), box-shadow var(--mcw-base), background-color var(--mcw-base), color var(--mcw-base), border-color var(--mcw-base);
	will-change: transform;
}

.mcw-btn:focus-visible {
	outline: 3px solid var(--mcw-primary);
	outline-offset: 3px;
}

.mcw-btn--primary {
	background: var(--mcw-primary);
	color: #FFFFFF !important;
	box-shadow: 0 6px 20px rgba(211, 47, 47, 0.25);
}

.mcw-btn--primary:hover {
	background: var(--mcw-primary-hover);
	transform: translateY(-2px);
	box-shadow: 0 10px 28px rgba(211, 47, 47, 0.35);
}

.mcw-btn--ghost {
	background: rgba(255, 255, 255, 0.92);
	color: var(--mcw-text) !important;
	border-color: rgba(255, 255, 255, 0.6);
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
}

.mcw-btn--ghost:hover {
	background: #FFFFFF;
	transform: translateY(-2px);
	box-shadow: var(--mcw-shadow-md);
}

.mcw-btn__icon {
	display: inline-flex;
	width: 18px;
	height: 18px;
}

/* ---------------------------------------------------------------------
   Reveal animation (Framer-style entrance via IntersectionObserver)
   Default = VISIBLE so content stays accessible without JS, in Elementor
   editor preview, and when prefers-reduced-motion is on. The hide-then-
   reveal effect is only applied once html.mcw-anim-ready is set by the
   inline boot script (see Plugin::print_anim_boot()).
   --------------------------------------------------------------------- */
html.mcw-anim-ready .mcw-reveal {
	opacity: 0;
	transform: translateY(24px);
	transition: opacity 0.7s var(--mcw-ease), transform 0.7s var(--mcw-ease);
	transition-delay: var(--mcw-reveal-delay, 0s);
	will-change: opacity, transform;
}

html.mcw-anim-ready .mcw-reveal.is-visible {
	opacity: 1;
	transform: translateY(0);
}

@media (prefers-reduced-motion: reduce) {
	html.mcw-anim-ready .mcw-reveal,
	.mcw-btn {
		transition: none !important;
		transform: none !important;
		opacity: 1 !important;
	}
}
