/*
Theme Name: Cork Roofers Theme
Theme URI: https://serodigital.io/
Description: Child theme for Cork Roofers
Author: Sero Digital
Author URI: https://serodigital.io/
Template: hello-elementor
Version: 1.0
*/

/* Cork Roofers Custom Mobile Menu */

.cr-mobile-menu-wrap {
	display: none;
}

@media (max-width: 1024px) {
	.cr-mobile-menu-wrap {
		display: block;
	}

    .cr-mobile-menu-toggle {
	    width: 54px;
	    height: 54px;
	    border: none !important;
	    outline: none !important;
	    border-radius: 12px;
	    background: transparent !important;
	    display: flex;
	    flex-direction: column;
	    justify-content: center;
	    align-items: center;
	    gap: 7px;
	    cursor: pointer;
	    padding: 0;
	    box-shadow: none !important;
    }

	.cr-mobile-menu-toggle:focus,
	.cr-mobile-menu-toggle:active {
		border: none !important;
		outline: none !important;
		box-shadow: none !important;
	}

	.cr-mobile-menu-toggle span {
		display: block;
		width: 28px;
		height: 2.5px;
		background: #ffffff;
		border-radius: 999px;
	}

	.cr-mobile-menu-overlay {
		position: fixed;
		inset: 0;
		background: rgba(15, 23, 42, 0.55);
		opacity: 0;
		visibility: hidden;
		transition: all 0.3s ease;
		z-index: 999998;
	}

	.cr-mobile-menu-panel {
		position: fixed;
		top: 0;
		right: 0;
		width: 100%;
		max-width: 430px;
		height: 100dvh;
		background: #ffffff;
		transform: translateX(100%);
		transition: transform 0.35s ease;
		z-index: 999999;
		box-shadow: -10px 0 40px rgba(15, 23, 42, 0.16);
		overflow-y: auto;
	}

	.cr-mobile-menu-wrap.active .cr-mobile-menu-overlay {
		opacity: 1;
		visibility: visible;
	}

	.cr-mobile-menu-wrap.active .cr-mobile-menu-panel {
		transform: translateX(0);
	}

	.cr-mobile-menu-inner {
		display: flex;
		flex-direction: column;
		min-height: 100%;
		padding: 20px 20px 26px;
	}

	.cr-mobile-menu-top {
		display: flex;
		align-items: center;
		justify-content: space-between;
		gap: 16px;
		margin-bottom: 22px;
	}

	.cr-mobile-menu-logo {
		display: inline-flex;
		align-items: center;
		justify-content: flex-start;
	}

	.cr-mobile-menu-logo img {
		width: auto !important;
		max-width: 105px !important;
		height: auto !important; 
		display: block;
	}

    .cr-mobile-menu-close {
	    border: none !important;
	    outline: none !important;
	    background: #f5f5f5 !important;
	    color: #0F172A !important;
	    width: 44px !important;
	    height: 44px !important;
	    border-radius: 10px !important;
	    font-size: 34px !important;
	    line-height: 1 !important;
	    cursor: pointer;
	    flex-shrink: 0;
	    display: flex !important;
	    align-items: center;
	    justify-content: center;
	    padding: 0 !important;
	    box-shadow: none !important;
    }

.cr-mobile-menu-close:hover,
.cr-mobile-menu-close:focus,
.cr-mobile-menu-close:active {
	background: #f5f5f5 !important;
	color: #0F172A !important;
	border: none !important;
	outline: none !important;
	box-shadow: none !important;
}

	.cr-mobile-menu-nav {
		flex: 1;
	}

	.cr-mobile-menu-group-title {
		font-family: "Outfit", sans-serif;
		font-size: 13px;
		font-weight: 800;
		letter-spacing: 0.08em;
		text-transform: uppercase;
		color: #9222F2;
		margin: 22px 0 10px;
	}

	.cr-mobile-menu-links {
		list-style: none;
		padding: 0;
		margin: 0 0 8px;
	}

	.cr-mobile-menu-links li {
		margin: 0;
	}

	.cr-mobile-menu-links a {
		display: flex;
		align-items: center;
		justify-content: space-between;
		padding: 13px 0;
		border-bottom: 1px solid #edf0f4;
		font-family: "Outfit", sans-serif;
		font-size: 16px;
		font-weight: 600;
		color: #0F172A;
		text-decoration: none;
	}

	.cr-mobile-menu-links a::after {
		content: "›";
		color: #9222F2;
		font-size: 24px;
		line-height: 1;
		font-weight: 400;
	}

	.cr-mobile-menu-featured a {
		font-weight: 500;
	}

	.cr-mobile-menu-links a:hover {
		color: #9222F2;
	}

	.cr-mobile-menu-view-all {
		display: flex;
		align-items: center;
		justify-content: center;
		min-height: 48px;
		border: 1px solid rgba(146, 34, 242, 0.35);
		border-radius: 10px;
		color: #9222F2;
		font-family: "Outfit", sans-serif;
		font-size: 15px;
		font-weight: 800;
		text-decoration: none;
		margin: 12px 0 8px;
	}

	.cr-mobile-menu-bottom {
		display: grid;
		grid-template-columns: 1fr;
		gap: 12px;
		padding-top: 22px;
		margin-top: auto;
	}

	.cr-mobile-menu-btn {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		min-height: 52px;
		padding: 12px 18px;
		border-radius: 10px;
		font-family: "Outfit", sans-serif;
		text-decoration: none;
		font-weight: 600;
		text-align: center;
	}

	.cr-mobile-menu-btn-primary {
		background: #9222F2;
		color: #ffffff;
	}

	.cr-mobile-menu-btn-secondary {
		background: #0F172A;
		color: #ffffff;
	}

	.cr-mobile-menu-note {
		margin-top: 18px;
		text-align: center;
		font-family: "Outfit", sans-serif;
		font-size: 13px;
		font-weight: 500;
		color: #6b7280;
	}

	body.cr-mobile-menu-open {
		overflow: hidden;
	}
}

.cr-mobile-menu-panel button {
	color: inherit;
	font-family: "Outfit", sans-serif;
}

.cr-mobile-menu-toggle {
	width: 54px;
	height: 54px;
	border: none !important;
	outline: none !important;
	border-radius: 12px;
	background: transparent !important;

	display: flex !important;
	flex-direction: column !important;
	justify-content: center !important;
	align-items: center !important;

	cursor: pointer;
	padding: 0 !important;
	box-shadow: none !important;
}

.cr-mobile-menu-toggle span {
	display: block !important;
	width: 28px !important;
	height: 2.5px !important;
	background: #ffffff !important;
	border-radius: 999px !important;
	margin: 1.2px 0 !important;
	flex: none !important;
}