/*
Theme Name:   Care Mobile (Elementor)
Theme URI:    https://caremobile.org/
Description:  Hello Elementor child theme for caremobile.org. Replaces the legacy custom Cornerstone theme (v2.2). Layout lives in Elementor; this file only carries site-wide styles that are not practical as widget settings.
Author:       Brian Joseph Studios
Author URI:   https://brianjosephstudios.com/
Template:     hello-elementor
Version:      1.0.0
Text Domain:  caremobile
*/

/* Base
-------------------------------------------------------------------------------*/
body { color: #4f4f4f; }
a { color: #208097; }
a:hover { color: #186578; }
::selection { background: #fcd700; color: #000; text-shadow: none; }

.elementor-widget-heading .elementor-heading-title { letter-spacing: -1px; }

.screen-reader-text {
	border: 0; clip: rect(1px,1px,1px,1px); clip-path: inset(50%);
	height: 1px; margin: -1px; overflow: hidden; padding: 0;
	position: absolute !important; width: 1px; word-wrap: normal !important;
}

/* WCAG 2.4.7 visible focus */
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible,
textarea:focus-visible, [tabindex]:focus-visible, .elementor-menu-toggle:focus-visible {
	outline: 3px solid #1a3c5c; outline-offset: 2px; border-radius: 2px;
}
.cm-header a:focus-visible, .cm-header .elementor-menu-toggle:focus-visible,
.cm-footer a:focus-visible, .cm-dark a:focus-visible { outline-color: #fff; outline-offset: 3px; }
#content:focus, main:focus { outline: none; }

/* Hello skip link: keep visible on focus */
.skip-link.screen-reader-text:focus {
	clip: auto !important; clip-path: none; height: auto; width: auto;
	background: #fff; color: #1a3c5c; border: 2px solid #1a3c5c; border-radius: 4px;
	display: block; font-size: 16px; font-weight: 700; left: 8px; top: 8px;
	padding: 12px 18px; text-decoration: underline; z-index: 100000;
}

/* Header: layered curved bands (ported from legacy theme)
-------------------------------------------------------------------------------*/
.cm-header { overflow: visible !important; clip-path: inset(0 0 -100vh 0); }
.cm-header > .e-con-inner, .cm-header > * { position: relative; z-index: 3; }
.cm-header { position: relative; }
.cm-header.e-con::before, .cm-header.e-con::after {
	content: '' !important; display: block !important; position: absolute !important; border-radius: 100% !important;
	width: auto !important; height: auto !important; bottom: 0 !important; pointer-events: none;
	opacity: 1 !important; mix-blend-mode: normal !important;
}
.cm-header.e-con::before { background: #125E91 !important; right: -260px !important; left: -430px !important; top: -170px !important; z-index: 2 !important; }
.cm-header.e-con::after  { background: #3b8ec7 !important; right: 50px !important; left: -390px !important; top: -80px !important; z-index: 1 !important; margin-bottom: -19px; }

.cm-brand-name .elementor-heading-title { line-height: 1 !important; letter-spacing: 0 !important; }
.cm-brand-name .cm-brand-top { display: block; font-size: 16px; line-height: 1.1; }
.cm-brand-name .cm-brand-bottom { display: block; font-size: 30px; line-height: 1.05; }
@media (max-width: 767px) {
	.cm-brand-name .cm-brand-top { font-size: 10px; white-space: nowrap; }
	.cm-brand-name .cm-brand-bottom { font-size: 19px; white-space: nowrap; }
}
.cm-brand-name sup { font-size: .6em; line-height: 0; vertical-align: super; }

/* Primary nav: Donate pill */
.cm-header .elementor-nav-menu--main .menu-item.nav-donate > a {
	background: #f19616; color: #000 !important; font-weight: 700; border-radius: 4px;
	box-shadow: -1px 1px 6px 1px rgba(0,0,0,.3); margin-left: 8px;
}
.cm-header .elementor-nav-menu--main .menu-item.nav-donate > a:hover,
.cm-header .elementor-nav-menu--main .menu-item.nav-donate > a:focus { background: #ffb347; color: #000 !important; }
.cm-header .elementor-nav-menu--dropdown .menu-item.nav-donate > a { color: #000 !important; background: #f19616; }

/* Sticky shrink */
.cm-header.elementor-sticky--effects { --padding-top: 8px !important; --padding-bottom: 24px !important; }
.cm-header .elementor-widget-image img, .cm-header .cm-brand-name { transition: all .4s; }
@media (min-width: 1025px) {
	.cm-header.elementor-sticky--effects .cm-logo img { max-width: 230px; }
}

/* Buttons (legacy .btn-green look, contrast-safe) */
.cm-btn .elementor-button { box-shadow: 1px 2px 2px 1px rgba(0,0,0,.2); text-transform: uppercase; }

/* Section helpers */
.cm-dark, .cm-dark p, .cm-dark li { color: #fff; }
.cm-squiggle svg { display: block; width: 100%; height: auto; }
.elementor-widget-text-editor ul, .elementor-widget-text-editor ol { margin: 0 0 20px 20px; padding: 0; }
.elementor-widget-text-editor li { margin-bottom: 10px; }
.elementor-widget-text-editor p:last-child { margin-bottom: 0; }

.cm-quote blockquote, .cm-quote .cm-blockquote {
	font-size: 28px; line-height: 1.4; margin: 20px 0; padding: 1em 1.25em;
	border-top: 1px solid rgba(0,0,0,.1); border-bottom: 1px solid rgba(0,0,0,.1);
}
.cm-dark .cm-quote .cm-blockquote { border-color: rgba(255,255,255,.3); }

.cm-home-soon { font-size: 1.25em; color: #2672a7; }
.cm-para-intro { font-size: 1.35em; }

/* About page: truck overlapping the blue band */
@media (min-width: 768px) { .cm-about-truck { margin-bottom: -210px !important; position: relative; z-index: 2; } }

/* Gallery shortcode */
.popup-gallery { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
.popup-gallery img { width: 100%; height: auto; display: block; }
@media (max-width: 767px) { .popup-gallery { grid-template-columns: repeat(2, 1fr); gap: 10px; } }

/* Footer
-------------------------------------------------------------------------------*/
.cm-footer, .cm-footer p, .cm-footer small { color: #fff; }
.cm-footer a { color: #fff; text-decoration: underline; }
.cm-footer a:hover, .cm-footer a:focus { color: #fff; text-decoration: none; }
.cm-footer .designlove { font-size: 11px; letter-spacing: 2px; color: rgba(255,255,255,.8); margin: 10px 0 0; }

.cm-past-events { text-align: center; margin-bottom: 30px; }
.cm-past-events h2 { font-size: 1.75em; color: rgba(255,255,255,.85); margin: 0 0 20px; letter-spacing: -1px; font-weight: 400; }
.cm-past-events__grid { display: grid; grid-template-columns: repeat(6, 1fr); gap: 2%; }
.cm-past-events a { background: rgba(255,255,255,.12); color: #fff; text-decoration: none; border-radius: 0 0 5px 5px; transition: background .5s; display: block; }
.cm-past-events a:hover, .cm-past-events a:focus { background: rgba(255,255,255,.22); }
.cm-past-events img { display: block; width: 100%; height: auto; }
.cm-past-events h3 { font-size: 1em; color: #fff; margin: 0 0 4px; }
.cm-past-events .event-date { color: rgba(255,255,255,.8); font-size: .8em; }
.cm-past-events .desc { padding: 5px 15px 15px; }
@media (max-width: 1024px) { .cm-past-events__grid { grid-template-columns: repeat(2, 1fr); } }

/* Forms
-------------------------------------------------------------------------------*/
.gform_wrapper.gravity-theme .gform_footer input[type=submit],
.gform_wrapper .gform_footer input[type=submit],
#wp_payeezy_payment_form input[type=submit] {
	background: #2f7a1f; color: #fff; border: 0; border-radius: 4px;
	box-shadow: 1px 2px 2px 1px rgba(0,0,0,.2); display: block; width: 200px; max-width: 100%;
	margin: 0 auto; padding: 16px 19px; text-transform: uppercase; font-size: 22px; cursor: pointer; transition: background .3s;
}
.gform_wrapper .gform_footer input[type=submit]:hover,
#wp_payeezy_payment_form input[type=submit]:hover { background: #1f5413; }
#gform_confirmation_message_1 { padding: 20px; background: #2672a7; color: #fff; text-align: center; border-radius: 4px; }
#wp_payeezy_payment_form input, #wp_payeezy_payment_form select { border: 1px solid #ccc; }
@media (min-width: 768px) {
	#wp_payeezy_payment_form p { display: inline-block; width: 49%; vertical-align: top; }
}

/* The Events Calendar
-------------------------------------------------------------------------------*/
.tribe-common .tribe-common-c-btn, .tribe-common a.tribe-common-c-btn { background-color: #2672a7; }
.tribe-events .tribe-events-calendar-month__day--current .tribe-events-calendar-month__day-date { color: #2672a7; }
.post-type-archive-tribe_events .site-main, .single-tribe_events .site-main,
.tribe-events-pg-template { max-width: 1200px; margin: 0 auto; padding: 40px 20px 60px; }
.cm-event-gallery { margin-top: 30px; }

/* Reduced motion
-------------------------------------------------------------------------------*/
@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; }
}

/* Accessibility statement page */
.cm-a11y h2 { font-size: 28px; margin: 35px 0 12px; color: #2672a7; letter-spacing: -0.5px; line-height: 1.2; }
.cm-a11y h2:first-child { margin-top: 0; }

/* Keep Elementor's global button style off The Events Calendar's UI buttons */
body .tribe-common button:not(.tribe-common-c-btn):not(.tribe-events-c-subscribe-dropdown__button) {
	background: transparent; color: inherit; box-shadow: none; text-transform: none; border-radius: 0; padding: 0;
	font-family: inherit; font-size: inherit; letter-spacing: normal;
}
body .tribe-common .tribe-events-calendar-month__day-cell--mobile { padding: 10px 0; }
body .tribe-common .tribe-events-calendar-month__day-cell--selected { background: #2672a7; color: #fff; }
body .tribe-common .tribe-events-c-subscribe-dropdown__button { background: transparent; box-shadow: none; padding: 0; }

@media (max-width: 767px) {
	.cm-quote blockquote, .cm-quote .cm-blockquote { font-size: 21px; padding: .75em 0; }
}

/* 1.4.1 Links inside running text are underlined (not color-only) */
.elementor-widget-text-editor p a, .elementor-widget-text-editor li a, .cm-a11y a { text-decoration: underline; }
.elementor-widget-text-editor p a:hover, .elementor-widget-text-editor li a:hover { text-decoration: none; }
