/**
Theme Name: 2mlifts
Author: SKT Themes
Author URI: https://www.sktthemes.org/
Description: One stop place for all your elevator needs Cochin-Kerala Based Complete Lifts Joint venture OEM manufacturing for India with FUJI Brand| OEM Mechanical Parts 
Version: 1.0.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: 2mlifts
Template: astra
*/

/* =====================================
   PRODUCT LAYOUT
===================================== */

.product-layout{
	display:flex;
	gap:40px;
	max-width:1400px;
	margin:50px auto;
	align-items:flex-start;
}

.product-sidebar{
	width:300px;
	flex-shrink:0;
}

.product-content{
	flex:1;
	min-width:0;
}

.product-content h1{
	font-size:25px;
}

/* =====================================
   SIDEBAR
===================================== */
.product-sidebar{
	position:sticky;
	top:30px;
	align-self:flex-start;
}

.product-sidebar-wrap{
	background:#fff;
	border:1px solid #e8e8e8;
	overflow:hidden;
	box-shadow:0 2px 12px rgba(0,0,0,.04);
}

.product-sidebar-heading{
	background:linear-gradient(90deg,#5e6268,#8b949c);
	color:#fff;
	font-size:20px;
	font-weight:600;
	padding:18px 22px;
	line-height:1.2;
}

.product-sidebar-menu{
	margin:0 !important;
	padding:0 !important;
	list-style:none;
}

.sidebar-parent{
	border-bottom:1px solid #f0f0f0;
}

.sidebar-parent:last-child{
	border-bottom:none;
}

.parent-row{
	display:flex;
	align-items:center;
	justify-content:space-between;
	min-height:56px;
	transition:background-color .25s ease;
}

.parent-row:hover{
	background:#fafafa;
}

.parent-row > a{
	flex:1;
	padding:16px 20px;
	text-decoration:none !important;
	color:#222;
	font-size:15px;
	font-weight:500;
	line-height:1.5;
	transition:color .25s ease;
}

.parent-row > a:hover{
	color:#fd0000;
}

.sidebar-parent.active > .parent-row{
	background:#fafafa;
}

.sidebar-parent.active > .parent-row > a{
	color:#fd0000;
	font-weight:600;
}

/* =====================================
   TOGGLE ARROW
===================================== */

.toggle-icon{
	width:40px;
	height:56px;
	cursor:pointer;
	position:relative;
	flex-shrink:0;
}

.toggle-icon:before{
	content:"";
	position:absolute;
	top:50%;
	left:50%;
	width:8px;
	height:8px;
	border-top:2px solid #777;
	border-right:2px solid #777;
	transform:translate(-50%,-50%) rotate(45deg);
	transition:transform .3s ease,border-color .3s ease;
}

.sidebar-parent.active .toggle-icon:before{
	transform:translate(-50%,-50%) rotate(135deg);
	border-color:#fd0000;
}

/* =====================================
   CHILD MENU  (smooth CSS accordion)
===================================== */

.sidebar-children{
	margin:0 !important;
	padding:0 !important;
	list-style:none;
	background:#fafafa;
	max-height:0;
	opacity:0;
	overflow:hidden;
	transition:max-height .35s ease, opacity .25s ease;
	will-change:max-height;
}

.sidebar-parent.active > .sidebar-children{
	max-height:1200px;
	opacity:1;
	border-top:1px solid #f0f0f0;
}

.sidebar-children li{
	margin:0;
	border-bottom:1px solid #f0f0f0;
}

.sidebar-children li:last-child{
	border-bottom:none;
}

.sidebar-children li a{
	display:block;
	padding:10px 20px 10px 38px;
	font-size:14px;
	line-height:1.5;
	color:#161412;
	text-decoration:none !important;
	position:relative;
	transition:color .2s ease;
}

.sidebar-children li a:before{
	content:"";
	width:5px;
	height:5px;
	border-radius:50%;
	background:#ccc;
	position:absolute;
	left:22px;
	top:50%;
	transform:translateY(-50%);
	transition:background-color .2s ease;
}

.sidebar-children li a:hover,
.sidebar-children li.current-child a{
	color:#fd0000;
}

.sidebar-children li a:hover:before,
.sidebar-children li.current-child a:before{
	background:#fd0000;
}

/* =====================================
   PRODUCT GRID
===================================== */

.no-products-found{
	text-align:left;
}

.no-products-found p{
	margin:0;
	color:#666;
	font-size:13px;
}

.categ .product-grid{
	margin:25px 0 0 0;
}

.product-grid{
	display:grid;
	grid-template-columns:repeat(3,minmax(0,1fr));
	gap:30px;
}

.product-item{
	background:#fff;
	border:1px solid #ececec;
	overflow:hidden;
	transition:box-shadow .35s ease,transform .35s ease;
	height:100%;
}

.product-item:hover{
	box-shadow:0 12px 30px rgba(0,0,0,.08);
}

.product-item a{
	display:block;
	text-decoration:none !important;
	color:inherit;
	height:100%;
}

.product-item img{
	width:100%;
	aspect-ratio:1/1;
	object-fit:cover;
	display:block;
	background:#f5f5f5;
}

.product-item .product-placeholder{
	object-fit:contain;
	padding:20%;
	background:#f5f5f5;
}

.product-item h3{
	padding:18px;
	margin:0;
	font-size:17px;
	font-weight:600;
	line-height:1.5;
	color:#222;
	text-align:center;
}

/* =====================================
   TAXONOMY DESCRIPTION
===================================== */

.taxonomy-description{
	margin-top:50px;
	padding-top:30px;
	border-top:1px solid #e5e5e5;
	font-size:15px;
	line-height:1.8;
	color:#555;
}

/* =====================================
   SINGLE PRODUCT
===================================== */
body.single-astra_product .product-layout{margin: 100px auto;}


.single-product-top{
	display:flex;
	gap:40px;
	align-items:flex-start;
}

.single-product-gallery{
	flex:0 0 46%;
	max-width:46%;
}

.single-product-gallery img{
	width:100%;
	height:auto;
	display:block;
	border:1px solid #ececec;
	background:#f7f7f7;
}

/* ---- Image hover zoom ---- */
.product-zoom{
	position:relative;
	overflow:hidden;
	cursor:zoom-in;
	border:1px solid #ececec;
	background:#f7f7f7;
}

.product-zoom img{
	width:100%;
	height:auto;
	display:block;
	border:none;
	background:transparent;
	transition:opacity .2s ease;
}

.product-zoom-pane{
	position:absolute;
	top:0;
	left:0;
	right:0;
	bottom:0;
	background-repeat:no-repeat;
	background-size:200%;
	opacity:0;
	transition:opacity .2s ease;
	pointer-events:none;
}

.product-zoom.is-zooming img{
	opacity:0;
}

.product-zoom-hint{
	position:absolute;
	right:10px;
	bottom:10px;
	width:30px;
	height:30px;
	display:flex;
	align-items:center;
	justify-content:center;
	background:rgba(242,242,242,.99);
	color:#fff;
	border-radius:50%;
	font-size:14px;
	pointer-events:none;
	transition:opacity .2s ease;
	z-index:2;
}

.product-zoom.is-zooming .product-zoom-hint{
	opacity:0;
}

/* ---- Previous / Next product navigation ---- */
.single-product-nav{
	display:flex;
	gap:16px;
	margin:28px 0 0;
	padding:18px 0 0;
	border-top:1px solid #eee;
}

.single-product-nav .spn-item{
	flex:1;
	min-width:0;
}

.single-product-nav .spn-next{
	text-align:right;
}

.single-product-nav a{
	display:inline-block;
	max-width:100%;
	text-decoration:none;
	color:#444;
	transition:color .2s ease;
}

.single-product-nav a:hover{
	color:#dd4319;
}

.single-product-nav .spn-label{
	display:block;
	font-size:12px;
	text-transform:uppercase;
	letter-spacing:.04em;
	color:#999;
	margin-bottom:4px;
}

.single-product-nav .spn-title{
	display:block;
	font-size:14.5px;
	font-weight:600;
	line-height:1.4;
	overflow:hidden;
	text-overflow:ellipsis;
	white-space:nowrap;
}

.single-product-nav a:hover .spn-title{
	color:#dd4319;
}

.single-product-summary{
	flex:1;
	min-width:0;
}

.single-product-summary .product-title{
	margin:0 0 18px;
	font-size:26px;
	line-height:1.3;
	color:#1d1d1d;
}

.single-product-summary .product-excerpt{
	font-size:15px;
	line-height:1.8;
	color:#555;
	margin-bottom:22px;
}

.single-product-summary .product-excerpt p{
	margin:0 0 10px;
}

.single-product-meta{
	margin:0 0 22px;
	padding:0;
	list-style:none;
	border-top:1px solid #eee;
}

.single-product-meta li{
	padding:9px 0;
	border-bottom:1px solid #eee;
	font-size:14px;
	color:#444;
}

.single-product-meta li strong{
	color:#222;
	margin-right:6px;
}

.single-product-cta{
	display:inline-block;
	margin-top:6px;
	background:#dd4319;
	color:#fff;
	font-size:15px;
	font-weight:600;
	padding:12px 26px;
	border-radius:6px;
	text-decoration:none;
	transition:background-color .25s ease;
}

.single-product-cta:hover, .single-product-cta:focus{
	background:#c2380f;
	color:#fff;
}

.single-product-description{
	margin-top:50px;
	padding-top:30px;
	border-top:1px solid #e5e5e5;
}

.single-product-description .section-heading,
.related-products-title,
.xizi-quote-title{
	font-size:20px;
	font-weight:700;
	color:#1d1d1d;
	margin:0 0 20px;
	padding-bottom:12px;
	border-bottom:2px solid #dd4319;
	display:inline-block;
}

.single-product-description .entry-content{
	font-size:15px;
	line-height:1.8;
	color:#555;
}

.single-product-description .entry-content img{
	max-width:100%;
	height:auto;
}

.single-product-description .entry-content table{
	width:100%;
	border-collapse:collapse;
	margin:18px 0;
	font-size:13.5px;
}

.single-product-description .entry-content th,
.single-product-description .entry-content td{
	border:1px solid #e2e2e2;
	padding:8px 10px;
	text-align:center;
}

.single-product-description .entry-content th{
	background:#f4f4f4;
}

/* =====================================
   QUOTE / ENQUIRY FORM
===================================== */

.xizi-quote-form-wrap{
	margin:50px 0 0;
	padding:30px;
	background:#fff;
	border:1px solid #e8e8e8;
	box-shadow:0 2px 12px rgba(0,0,0,.04);
}

.xizi-quote-product{
	margin:0 0 22px;
	font-size:14px;
	color:#555;
	background:#fbf3f0;
	border-left:3px solid #dd4319;
	padding:10px 14px;
}

.xizi-quote-product strong{
	color:#dd4319;
}

.xizi-field-row{
	display:flex;
	gap:18px;
	margin-bottom:16px;
}

.xizi-field{
	flex:1;
	min-width:0;
}

.xizi-field-full{
	margin-bottom:16px;
}

.xizi-field label{
	display:block;
	font-size:13px;
	font-weight:600;
	color:#333;
	margin-bottom:6px;
}

.xizi-field label .req{
	color:#dd4319;
}

.xizi-field input,
.xizi-field textarea{
	width:100%;
	padding:11px 13px;
	border:1px solid #d8d8d8;
	border-radius:5px;
	font-size:14px;
	color:#222;
	background:#fff;
	transition:border-color .2s ease,box-shadow .2s ease;
	box-sizing:border-box;
}

.xizi-field input:focus,
.xizi-field textarea:focus{
	outline:none;
	border-color:#dd4319;
	box-shadow:0 0 0 3px rgba(221,67,25,.12);
}

.xizi-field textarea{
	resize:vertical;
	min-height:120px;
}

.xizi-field input.has-error,
.xizi-field textarea.has-error{
	border-color:#e53935;
	box-shadow:0 0 0 3px rgba(229,57,53,.12);
}

/* Honeypot — visually hidden but present in DOM. */
.xizi-hp{
	position:absolute !important;
	left:-9999px !important;
	top:auto;
	width:1px;
	height:1px;
	overflow:hidden;
}

.xizi-form-footer{
	margin-top:6px;
}

/* ---- Math verification (captcha) ---- */
.xizi-captcha-row{
	display:flex;
	align-items:center;
	gap:12px;
	flex-wrap:wrap;
}

.xizi-captcha-question{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	min-width:96px;
	height:44px;
	padding:0 16px;
	background:#f4f4f4;
	border:1px solid #d8d8d8;
	border-radius:5px;
	font-size:18px;
	font-weight:700;
	letter-spacing:.06em;
	color:#222;
	font-family:"Courier New",monospace;
	user-select:none;
}

.xizi-captcha-row input[name="captcha_answer"]{
	width:120px;
	flex:0 0 120px;
	height:44px;
	padding:11px 13px;
	border:1px solid #d8d8d8;
	border-radius:5px;
	font-size:15px;
	box-sizing:border-box;
	transition:border-color .2s ease,box-shadow .2s ease;
}

.xizi-captcha-row input[name="captcha_answer"]:focus{
	outline:none;
	border-color:#dd4319;
	box-shadow:0 0 0 3px rgba(221,67,25,.12);
}

.xizi-captcha-row input[name="captcha_answer"].has-error{
	border-color:#e53935;
	box-shadow:0 0 0 3px rgba(229,57,53,.12);
}

.xizi-captcha-refresh{
	width:44px;
	height:44px;
	flex:0 0 44px;
	border:1px solid #d8d8d8;
	background:#fff;
	border-radius:5px;
	cursor:pointer;
	font-size:20px;
	line-height:1;
	color:#666;
	transition:background-color .2s ease,color .2s ease,transform .3s ease;
	padding:0px;
}

.xizi-captcha-refresh:hover{
	background:#dd4319;
	border-color:#dd4319;
	color:#fff;
}

.xizi-captcha-refresh:active{
	transform:rotate(180deg);
}

.xizi-quote-submit{
	background:#dd4319;
	color:#fff;
	border:none;
	border-radius:6px;
	font-size:15px;
	font-weight:600;
	padding:13px 34px;
	cursor:pointer;
	transition:background-color .25s ease,opacity .25s ease;
}

.xizi-quote-submit:hover{
	background:#c2380f;
}

.xizi-quote-submit:disabled{
	opacity:.6;
	cursor:not-allowed;
}

.xizi-form-response{
	margin-top:16px;
	font-size:14px;
	line-height:1.6;
	padding:0;
}

.xizi-form-response.is-success{
	color:#1b7a3d;
	background:#eafaf0;
	border:1px solid #b7e7c8;
	padding:12px 14px;
	border-radius:5px;
}

.xizi-form-response.is-error{
	color:#c0392b;
	background:#fdecea;
	border:1px solid #f3c0bb;
	padding:12px 14px;
	border-radius:5px;
}

/* =====================================
   RELATED PRODUCTS
===================================== */

.related-products{
	margin-top:55px;
	padding-top:30px;
	border-top:1px solid #e5e5e5;
}

.related-products .related-grid{
	grid-template-columns:repeat(4,minmax(0,1fr));
}

.related-products .product-item h3{
	font-size:15px;
	padding:14px;
}

/* =====================================
   PAGINATION
===================================== */

.pagination-wrap,
.xizi-pagination{
	margin-top:50px;
	text-align:center;
}

/* Hide the default screen-reader heading from the_posts_pagination */
.pagination-wrap .screen-reader-text{
	position:absolute;
	width:1px;
	height:1px;
	overflow:hidden;
	clip:rect(1px,1px,1px,1px);
	white-space:nowrap;
}

.pagination-wrap .nav-links{
	display:inline-flex;
	flex-wrap:wrap;
	justify-content:center;
	gap:8px;
}

.xizi-pagination{
	display:flex;
	flex-wrap:wrap;
	justify-content:center;
	gap:8px;
}

.pagination-wrap .page-numbers,
.xizi-pagination .page-numbers{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	min-width:42px;
	height:42px;
	padding:0 14px;
	border:1px solid #ddd;
	border-radius:6px;
	text-decoration:none;
	color:#333;
	font-size:14px;
	transition:background-color .3s ease,border-color .3s ease,color .3s ease;
}

.pagination-wrap .page-numbers:hover,
.xizi-pagination .page-numbers:hover{
	background:#dd4319;
	border-color:#dd4319;
	color:#fff;
}

.pagination-wrap .current,
.xizi-pagination .current{
	background:#dd4319;
	border-color:#dd4319;
	color:#fff;
}

.pagination-wrap .dots,
.xizi-pagination .dots{
	border:none;
	background:transparent;
}

.pagination-wrap .dots:hover,
.xizi-pagination .dots:hover{
	background:transparent;
	color:#333;
}

/* =====================================
   TABLET
===================================== */

@media (max-width:1024px){

	.product-layout{
		gap:25px;
	}

	.product-sidebar{
		width:280px;
	}

	.product-grid{
		grid-template-columns:repeat(2,minmax(0,1fr));
	}

	.related-products .related-grid{
		grid-template-columns:repeat(3,minmax(0,1fr));
	}

	.single-product-top{
		gap:30px;
	}
}

/* =====================================
   MOBILE
===================================== */

@media (max-width:767px){

	.product-layout{
		flex-direction:column;
		gap:25px;
		margin:25px auto;
	}

	.product-sidebar{
		width:100%;
		position:static;
	}

	.product-content{
		width:100%;
	}

	.product-grid{
		grid-template-columns:repeat(2,minmax(0,1fr));
		gap:16px;
	}

	.related-products .related-grid{
		grid-template-columns:repeat(2,minmax(0,1fr));
	}

	.product-sidebar-heading{
		font-size:20px;
		padding:16px 20px;
	}

	.parent-row > a{
		font-size:14px;
		padding:14px 16px;
	}

	.sidebar-children li a{
		padding:10px 15px 10px 34px;
	}

	/* Single product stacks on mobile */
	.single-product-top{
		flex-direction:column;
		gap:24px;
	}

	.single-product-gallery{
		flex:0 0 100%;
		max-width:100%;
	}

	/* Previous/Next stacks on mobile */
	.single-product-nav{
		flex-direction:column;
		gap:14px;
	}

	.single-product-nav .spn-next{
		text-align:left;
	}

	/* Verification answer goes full width on mobile */
	.xizi-captcha-row input[name="captcha_answer"]{
		flex:1 1 auto;
		width:auto;
	}

	.single-product-summary .product-title{
		font-size:22px;
	}

	.xizi-quote-form-wrap{
		padding:22px 18px;
	}

	.xizi-field-row{
		flex-direction:column;
		gap:16px;
	}

	.product-item h3{
		font-size:15px;
		padding:14px;
	}
}

/* =====================================
   SMALL MOBILE
===================================== */

@media (max-width:479px){

	.product-grid{
		grid-template-columns:1fr;
		gap:18px;
	}

	.related-products .related-grid{
		grid-template-columns:1fr;
	}

	.xizi-quote-submit{
		width:100%;
	}
}