/*
Theme Name: Hello Elementor - Shot Pay
Theme URI: https://shotpay.com/
Description: Child theme of Hello Elementor for shotpay.com. Holds site-specific customizations and WordPress-layer security hardening so they survive parent theme updates.
Author: Growth Factor Consulting
Author URI: https://growthfactor.consulting/
Template: hello-elementor
Version: 1.0.0
Requires at least: 6.0
Tested up to: 6.9
Requires PHP: 7.4
License: GNU General Public License v3 or later.
License URI: https://www.gnu.org/licenses/gpl-3.0.html
Text Domain: hello-elementor-shotpay
Tags: hello-elementor, child-theme
*/

/* =====================================================================
   Site-specific styles
   ===================================================================== */

/* ---- Premium button system + utilities (from Elementor Custom Code) ---- */

.main-button .greenDark {
	background: rgba(0, 0, 0, 0.55);
}

.green-btn a {
	width: 100%;
	background: linear-gradient(90deg, rgba(94, 153, 71, 0.55) 80.9%, rgba(32, 51, 24, 0.55) 95.61%);
}

.btn-plans a {
	width: 100%;
}

.table-scroll {
	overflow-x: auto;
	width: 100%;
}
.table-scroll::-webkit-scrollbar {
	height: 6px;
}
.table-scroll::-webkit-scrollbar-thumb {
	background: #2d7c3f;
	border-radius: 4px;
}

@media screen and (max-width: 767px) {
	.table-icon-check .elementor-icon-wrapper .elementor-icon svg,
	.table-icon .elementor-icon-wrapper .elementor-icon svg {
		font-size: 25px;
		height: 25px;
	}
}

/* Premium button base */
.elementor-button {
	position: relative;
	overflow: hidden;
	z-index: 1;
	border: 1px solid transparent;
	transition: all 0.3s ease;
}

.elementor-button-content-wrapper {
	position: relative;
	z-index: 2;
}

/* Background fill */
.elementor-button::before {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(90deg, #5E9947, #000000);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform 0.45s cubic-bezier(0.77, 0, 0.175, 1);
	z-index: 1;
}
.elementor-button:hover::before {
	transform: scaleX(1);
}

/* Animated border gradient */
.elementor-button::after {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: inherit;
	background-size: 200% 200%;
	animation: borderMove 4s linear infinite;
	z-index: 0;
	pointer-events: none;
	padding: 0;
	mask: none;
	-webkit-mask: none;
}
@keyframes borderMove {
	0%   { background-position: 0% 50%; }
	100% { background-position: 200% 50%; }
}

.elementor-button .elementor-button-text,
.elementor-button .elementor-button-icon {
	position: relative;
	z-index: 4;
	transition: color 0.3s ease;
}
.elementor-button:hover .elementor-button-text,
.elementor-button:hover .elementor-button-icon {
	color: #fff;
}

/* Arrow animation */
.elementor-button .elementor-button-icon {
	display: inline-flex;
	animation: arrowPremium 1.4s ease-in-out infinite;
}
@keyframes arrowPremium {
	0%   { transform: translateX(0);   opacity: 1;   }
	50%  { transform: translateX(8px); opacity: 0.7; }
	100% { transform: translateX(0);   opacity: 1;   }
}

/* Hover glow + lift */
.elementor-button:hover {
	box-shadow:
		0 0 12px rgba(166, 111, 221, 0.4),
		0 0 24px rgba(226, 192, 33, 0.25);
	transform: translateY(-1px);
}

/* ---- Feature cards ---- */

.feature-card__double-icon {
	position: relative;
	transition: all 0.3s ease;
}
.feature-card__double-icon:hover {
	transform: translateY(-4px);
	filter: drop-shadow(0 2px 40px #5E9947);
}

.feature-card_arrow-icon .elementor-icon {
	display: inline-flex;
	animation: arrowLoopCard 1.4s ease-in-out infinite;
}
@keyframes arrowLoopCard {
	0%   { transform: translateX(0);   opacity: 1;   }
	50%  { transform: translateX(8px); opacity: 0.7; }
	100% { transform: translateX(0);   opacity: 1;   }
}
.feature-card__double-icon:hover .feature-card_arrow-icon .elementor-icon {
	animation-duration: 0.9s;
}
.feature-card__double-icon:hover img {
	transform: scale(1.05);
	transition: transform 0.3s ease;
}

/* ---- Question hover effects (#q1 - #q12) ---- */

#q1, #q2, #q3, #q4, #q5, #q6,
#q7, #q8, #q9, #q10, #q11, #q12 {
	transition: all 0.4s ease;
	border-radius: 15px;
}

#q1:hover, #q2:hover, #q3:hover, #q4:hover, #q5:hover, #q6:hover,
#q7:hover, #q8:hover, #q9:hover, #q10:hover, #q11:hover, #q12:hover {
	transform: translateY(-3px) scale(1.01);
	box-shadow: 0 0 30px rgba(94, 153, 71, 0.6);
}

/* ---- Feature card hover ---- */

.feature-card,
.feature-card_fade-down {
	transition: all 0.4s ease, filter 0.4s ease;
}

.feature-card:hover,
.feature-card_fade-down:hover {
	transform: translateY(-4px) scale(1.02);
	box-shadow: 0 0 40px rgba(94, 153, 71, 0.6);
}

/* ---- Custom Tabler highlight column ---- */

.column-highlight {
	position: relative;
	z-index: 1;
	box-shadow:
		inset 0 0 0px 0px rgba(94, 153, 71, 0.6),
		inset 0 0 12px rgba(94, 153, 71, 0.4);
}

.column-highlight::before {
	content: "";
	position: absolute;
	top: 0;
	left: auto;
	width: calc(100% + 5px);
	height: 100%;
	background: radial-gradient(
		50% 80% at 50% 50%,
		rgba(94, 153, 71, 0.75),
		rgba(94, 153, 71, 0.25),
		transparent 80%
	);
	filter: blur(25px);
	z-index: -1;
}

/* ---- Legal pages section heading underline ---- */

.section-heading::after {
	content: "";
	position: absolute;
	bottom: -1px;
	left: 0;
	width: 60px;
	height: 2px;
	background: #5E9947 !important;
}

/* =====================================================================
   Contact form (Gravity Forms) - Shot Pay brand styling
   Field background, border, type sizing for all input types + the
   submit button. Mirrors the dark-on-green dev-site treatment.
   ===================================================================== */

.gform-theme--foundation .gform_fields {
	row-gap: 10px !important;
}

/* Text inputs, email, phone, url, number, textarea */
.gform_wrapper .gfield input[type="text"],
.gform_wrapper .gfield input[type="email"],
.gform_wrapper .gfield input[type="tel"],
.gform_wrapper .gfield input[type="url"],
.gform_wrapper .gfield input[type="number"],
.gform_wrapper .gfield textarea {
	background-color: #000000B3 !important;
	color: #FFFFFF !important;
	border: 1px solid #ffffff40 !important;
	border-radius: 8px !important;
	font-family: "Poppins", Sans-serif !important;
	font-size: 16px !important;
	font-weight: 500 !important;
	line-height: 30px !important;
	padding: 14px 18px !important;
}

.gform_wrapper .gfield input::placeholder,
.gform_wrapper .gfield textarea::placeholder {
	color: #FFFFFF !important;
	opacity: 0.9 !important;
}

/* Select dropdowns */
.gfield_select {
	background-color: #000000B3 !important;
	border-radius: 8px !important;
	font-family: "Poppins", Sans-serif !important;
	font-size: 16px !important;
	font-weight: 500 !important;
	font-style: normal !important;
	line-height: 30px !important;
	color: #FFFFFF !important;
	border: 1px solid #ffffff40 !important;
	display: flex;
	align-items: center;
}

/* Field labels */
.gfield_label {
	font-family: "Poppins", Sans-serif !important;
	font-size: 16px !important;
	font-weight: 500 !important;
	font-style: normal !important;
	line-height: 30px !important;
	color: #FFFFFF !important;
}

.gfield_label .gfield_required span {
	display: none;
}

/* Submit button - same dark-fill, uppercase, large padding */
.gform_wrapper .gform_button,
.gform_wrapper input.gform_button,
.gform_wrapper button.gform_button {
	background-color: #000000B3 !important;
	color: #FFFFFF !important;
	border: 1px solid #ffffff40 !important;
	border-radius: 8px !important;
	font-family: "Poppins", Sans-serif !important;
	font-size: 16px !important;
	font-weight: 700 !important;
	text-transform: uppercase !important;
	letter-spacing: 1px !important;
	padding: 16px 40px !important;
	cursor: pointer !important;
	transition: background-color 0.25s ease, transform 0.2s ease !important;
}

.gform_wrapper .gform_button:hover,
.gform_wrapper input.gform_button:hover,
.gform_wrapper button.gform_button:hover {
	background-color: #000000E6 !important;
	transform: translateY(-1px) !important;
}
