/* ============================================================
   Single Workshop — styles
   Extracted from the live X-Pole workshop page + gallery additions.
   Enqueue this on single-workshop, or paste into your theme CSS.
   Brand purple: #845EC2  (accents also use #7b5cc9 / #7B47CF)
   ============================================================ */

/* ---------- Layout helpers from the original page ---------- */
.lowercase-text { text-transform: lowercase !important; }
.ws-single .panel-grid-cell { position: relative; }
.ws-single .panel-grid { margin: 0 !important; }
.ws-single .wsec { margin-bottom: 8rem; }

.lpbg-grad {
	background: linear-gradient(to bottom, #ffffff, #f8f4ff);
	padding: 5rem 0;
}
.third-sec {
	background: linear-gradient(180deg, #FFFFFF 0%, #F8F4FF 44.17%);
	padding-bottom: 6rem;
}
.flex-section{
	display:flex;
	gap: 5rem;
	justify-content: space-between;
    align-items: center;
}
.flex-section .sow-headline{
text-align:left !important;
}
.third-sec .sow-headline {
	font-weight: 800;
	font-size: 5.5rem;
	line-height: 100%;
	letter-spacing: -1%;
	text-align: center;
	text-transform: uppercase;
}
.third-sec .sow-headline b { font-weight: 900; color: #845ec2; }

.wsec .sow-sub-headline {
	font-weight: 300;
	font-size: 1.75rem;
	line-height: 120% !important;
	text-align: center;
	padding-bottom: 4rem;
}

/* ---------- Hero ---------- */
.whero-cont {
	position: absolute;
	top: 30%;
	right: 5%;
	width: 50%;
	text-align: left;
}
.whero-cont img { max-width: 100%; }
.whero-cont.hero-xpert p { color: #fff; font-size: 1.5rem; }
.whero-cont.hero-xpert h2 {
	font-weight: 400;
	font-size: 6rem;
	line-height: 7rem;
	letter-spacing: -1%;
	text-transform: uppercase;
	color: #fff;
	margin-top: 4rem;
	font-style: italic;
}
.whero-cont.hero-xpert a {
	background: #fff;
	font-size: 1.25rem;
	line-height: 100%;
	letter-spacing: 24%;
	text-align: center;
	text-transform: uppercase;
	border: 2px solid #fff;
	color: #000 !important;
	text-decoration: none;
	padding: 1.175rem 2rem;
	margin-top: 2rem !important;
	display: inline-block;
	border-radius: 49px;
	margin-right: 20px;
}
.whero-cont.hero-xpert .a2 {
	border-radius: 49px;
	border: 2px solid;
	color: #fff !important;
	background: transparent !important;
}
.ev-dts { display: flex; gap: 30px; margin-top: 3rem; }
.ev-dts span { display: flex; align-items: center; gap: 10px; color: #fff; }
.dancer-name {
	font-size: 1.25rem;
	letter-spacing: 24%;
	position: absolute;
	left: -27%;
	margin-top: 13%;
	color: #fff;
}
.ws-hero-img { width: 100%; height: auto; display: block; }

/* ---------- Info cards ---------- */
.lp-banner-boxes {
	background: transparent;
	margin: -17% 6% 5%;
	display: flex;
	gap: 1.5rem;
}
.lp-banner-boxes .panel-grid-cell { flex: 1; }
.card {
	background: #ffffff;
	border-radius: 16px;
	text-align: center;
	box-shadow: 5px 8px 4px 0px rgba(0, 0, 0, 0.25);
	width: 100%;
	padding: 3.75rem 1rem;
	text-transform: uppercase;
	height: 21rem;
}
.icon-box {
	width: 5rem; height: 5rem;
	margin: 0 auto 16px;
	color: #fff;
	border-radius: 12px;
	display: flex; align-items: center; justify-content: center;
	font-size: 26px;
}
.label { font-size: 1.25rem; letter-spacing: 1px; color: #444; margin-bottom: 8px; }
.date { font-size: 2.25rem; font-weight: 700; color: #7b5cc9; margin-bottom: 4px; }
.batch { font-size: 1.25rem; color: #7b5cc9; line-height: 120%; }

/* ---------- Why / Fun sections ---------- */
.fourth-sec { padding: 6%; }
.fourth-sec ul li {
	list-style: none;
	display: flex;
	gap: 1rem;
	margin: 3rem 0 !important;
	align-items: center;
}
.fourth-sec ul li img { width: 50px; height: 50px; }
.fourth-sec ul li p { margin-top: 6px; font-size: 1.5rem; line-height: 120%; }
.fourth-sec ul li p b { font-size: 2rem; }
.fourth-sec h3.sow-headline {
	font-weight: 900;
	font-size: 5.65rem;
	line-height: 6rem !important;
	letter-spacing: -1%;
	text-transform: uppercase;
}
.fourth-sec h3 span, .fourth-sec h3 b { color: #845ec2; }

.lmleft img { border-radius: 20px; }
.panel-grid-cell .widget-title {
	margin-top: 0;
	background: #fff;
	display: inline-block;
	padding: 1rem 2rem;
	box-shadow: 0px 2px 5.2px 0 rgb(170 170 170 / 40%);
	border-radius: 100px;
	position: absolute;
	font-weight: 400;
	font-size: 1.4rem;
	right: 50%;
	top: 10%;
	z-index: 2;
}
.lmleft1 .widget-title { left: 61%; top: -4% !important; width: 20rem !important; text-align: center; }

.wsec a.sowb-button {
	border-radius: 100px !important;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: 1px;
	padding: 1.25rem 4rem !important;
	background: #845EC2;
	color: #fff;
	display: inline-block;
	text-decoration: none;
}

/* ---------- Pricing / batches ---------- */
.price-cards { display: flex; justify-content: center; gap: 3rem; }
.lp-price-sec .sow-sub-headline {
	font-weight: 400;
	text-transform: capitalize;
	padding-bottom: 3.5rem !important;
	margin-top: 0;
}
.pricing-card {
	width: 24%;
	background: rgb(132 94 194 / 10%);
	border-radius: 20px;
	padding: 4rem 1rem;
	display: flex;
	flex-direction: column;
	align-items: center;
	box-shadow: 6px 9px 4px 0 rgb(0 0 0 / 30%);
	animation: fadeUp 0.6s cubic-bezier(.22,1,.36,1) both;
}
.pricing-card form { width: 75%; }
.price-card2 { background: #845EC2; }
.price-card2 * { color: #fff !important; }
.price-card2 .price-block * { color: #FD9AFF !important; }
.pricing-card form button { display: inline-block; text-align: center; color: #000 !important; }
.price-card2 .features li::before { background: #fff; }
@keyframes fadeUp { from { opacity: 0; transform: translateY(24px);} to { opacity: 1; transform: translateY(0);} }
.badge {
	font-size: 1.5rem;
	font-weight: 600;
	color: #845EC2;
	text-transform: uppercase;
	margin-bottom: 18px;
}
.price-block { text-align: center; display: flex; align-items: end; }
.price { font-size: 4rem; font-weight: 500; color: #2d2d2d; line-height: 1; }
.price-per { font-size: 1.25rem; font-weight: 400; margin-top: 4px; letter-spacing: 0.04em; }
.features {
	list-style: none;
	width: 100%;
	display: flex;
	flex-direction: column;
	gap: 12px;
	margin: 3rem 0;
}
.features li {
	display: flex; align-items: center; gap: 10px;
	font-size: 2rem; color: #2d2d2d; font-weight: 400;
	margin-left: 2rem !important;
}
.features li::before {
	content: ''; width: 6px; height: 6px;
	border-radius: 50%; background: #845EC2; flex-shrink: 0;
}
.book-btn {
	width: 100%;
	padding: 1.5rem 0;
	border-radius: 50px;
	border: none;
	background: #fff !important;
	color: #1a1230;
	font-size: 1.25rem;
	font-weight: 400 !important;
	text-transform: uppercase;
	letter-spacing: 0.24em !important;
	cursor: pointer;
	box-shadow: 0 2px 12px rgba(120,90,200,0.08);
	transition: background 0.2s, color 0.2s, box-shadow 0.2s, transform 0.15s;
}
.book-btn:hover { background: #7c5cbf; color: #fff; box-shadow: 0 6px 24px rgba(120,90,200,0.22); transform: translateY(-2px); }
.book-btn:active { transform: translateY(0); }
.book-btn:disabled {
	cursor: not-allowed;
	background-color: #c0392b !important;
	color: #FFF !important;
	opacity: 0.8;
}
.site-content {
    margin-top: -144px;
}
header:not(.sticky) {
    background: transparent !important;
    border: none !important;
}
/* ---------- Map ---------- */
.map-sec img, .ws-map-embed iframe {
	border: 6px solid #845EC2;
	border-radius: 2rem;
	width: 100%;
}

.lp-price-sec .sow-sub-headline span { color: #7b5cc9; }

/* ---------- Testimonials ---------- */
.sixth-sec { padding: 8rem 0; }
.sixth-sec h3 {
	font-weight: 900;
	font-size: 5.5rem;
	line-height: 100%;
	letter-spacing: -1%;
	text-align: center;
	text-transform: uppercase;
	margin-bottom: 4rem;
}
.sixth-sec h3 b { color: #845EC2; }
.testimonial-wrap .item p {
	font-weight: 400;
	font-size: 1.5rem;
	line-height: 2.75rem;
	text-align: center;
}
.wp-person { font-weight: 800; line-height: 120% !important; }
.wp-person span { font-weight: 300; font-size: 1rem; line-height: 20px; }
.testimonial-wrap .slide-card {
	border: none;
	border-radius: 10px;
	box-shadow: 0px 4px 30px 0px #2919421A;
	overflow: hidden;
	background: #fff;
	padding: 4rem 10%;
	text-align: center;
}
.testimonial-wrap .owl-item { opacity: 0.65; transition: opacity 0.25s ease; }
.testimonial-wrap .owl-item.center { opacity: 1; }
.testimonial-wrap .owl-nav { margin-top: 12px; text-align: center; }
.testimonial-wrap .owl-nav button.owl-prev,
.testimonial-wrap .owl-nav button.owl-next {
	background: transparent !important;
	color: #333 !important;
	font-size: 22px !important;
	margin: 0 8px;
	padding: 0 6px !important;
}
.testimonial-wrap .owl-nav button:hover { color: #7a49c9 !important; }

/* ---------- Photos & Videos gallery (new) ---------- */
.ws-gallery-sec { text-align: center; }
.ws-gallery-sec .sow-headline b { color: #845EC2; }
.ws-photo-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
	gap: 1.25rem;
	margin: 3rem auto 0;
	max-width: 1200px;
	padding: 0 1rem;
}
.ws-photo-item {
	display: block;
	border-radius: 14px;
	overflow: hidden;
	aspect-ratio: 4 / 3;
	box-shadow: 0 4px 18px rgba(132,94,194,0.18);
	transition: transform 0.25s ease, box-shadow 0.25s ease;
}
.ws-photo-item img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ws-photo-item:hover { transform: translateY(-4px); box-shadow: 0 10px 28px rgba(132,94,194,0.30); }

.ws-video-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
	gap: 1.5rem;
	margin: 2.5rem auto 0;
	max-width: 1200px;
	padding: 0 1rem;
}
.ws-video-item { text-align: center; }
.ws-video-item video,
.ws-video-embed iframe {
	width: 100%;
	border-radius: 14px;
	border: 4px solid #845EC2;
	aspect-ratio: 16 / 9;
}
.ws-video-embed { position: relative; }
.ws-video-caption { margin-top: 0.75rem; font-size: 1.1rem; color: #2d2d2d; }
.ws-hero-title-img { max-width: 80%; height: auto; margin-bottom:2rem; margin-top:2rem;}
.header-actions {
    display: none !important;
}
header:not(.sticky) .menu-header > .menu-item-has-children > a::after {
    filter: invert(1);
}
.menu-header{
	margin-right: 0 !important;
}

/* ---------- Responsive (from original breakpoints) ---------- */
@media only screen and (max-width:1750px) and (min-width:1440px){ html { font-size: 14px; } }
@media only screen and (max-width:1440px) and (min-width:1340px){ html { font-size: 12px; } }
@media only screen and (max-width:1340px){ html { font-size: 10px; } }
@media only screen and (max-width:1240px) and (min-width:960px){ html { font-size: 9px; } }

@media only screen and (max-width:959px){
	.wsec h3, .wsec .sow-sub-headline b, .fourth-sec h3.sow-headline { font-size: 3.5rem !important; line-height: 120% !important; }
	.whero-cont h2 { font-size: 3rem; line-height: 150%; margin: 20px 0; }
	.whero-cont.hero-xpert p { font-size: 1.25rem; }
	.wsec { margin-bottom: 4rem !important; }
	.sixth-sec { padding: 0 !important; }
	.sixth-sec h3 { font-size: 3.5rem !important; }
}

@media only screen and (min-width: 960px) {
    header:not(.sticky) .menu-header > li > a {
        color: #fff !important;
    }
	.funway .panel-grid-cell{
		max-width:50%;
	}
}
.ws-video-caption{display: none;}
@media only screen and (max-width:767px){
	.whero-cont.hero-xpert a{zoom:.75;}
	.ev-dts{margin-top:1rem; margin-bottom:0;}
	.date{line-height:100%;}
	.card{height:22rem;}
	.flex-section{flex-wrap: wrap;}
	
	.ws-hero-img{height: 700px;
    display: block;
    object-fit: cover;
    object-position: left;}
	.menu-toggle svg path{stroke:#fff;}
	.whero-cont { top: 180px; width: 89%; right: auto; left: 20px; }
	.lp-banner-boxes { flex-wrap: wrap; margin: -55% 6% 10%; }
	.lp-banner-boxes .panel-grid-cell { flex: 1 1 45%; }
	.dancer-name { left: auto; top: -8%; right: 0px; }
	.whero-cont.hero-xpert .a2 { background: #845ec2 !important; border-color: #845ec2 !important; }
	.pricing-card { width: 90%; }
	.price-cards { flex-wrap: wrap !important; }
	.panel-grid-cell .widget-title { top: -18px !important; left: 50%; transform: translateX(-50%); right: auto !important; }
	.ws-photo-grid { grid-template-columns: repeat(2, 1fr); }
	:not(.flex-section *) > .sow-headline, :not(.flex-section *) > .sow-sub-headline{padding-left:20px; padding-right:20px;}
	.panel-grid-cell .widget-title{font-size:10px !important;}
	.map-sec img, .ws-map-embed iframe{height:400px;}
	.ev-dts span{min-width:33%;}
}

/* ===================== Workshop Gallery (photos + videos combined) ===================== */
.ws-gallery-sec { text-align: center; }
.ws-gallery-sec .sow-headline b { color: #845EC2; }

/* One unified grid for photos + videos so every tile is the same size. */
.ws-gallery-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
	gap: 1.5rem;
	margin: 3rem auto 0;
	max-width: 1200px;
	padding: 0 1rem;
}
.ws-gallery-item {
	display: block;
	text-align: center;
}
/* The media box is identical for every tile (photo, video, embed). */
.ws-gallery-media {
	position: relative;
	border-radius: 14px;
	overflow: hidden;
	aspect-ratio: 16 / 9;
	box-shadow: 0 4px 18px rgba(132,94,194,0.18);
	transition: transform 0.25s ease, box-shadow 0.25s ease;
}
.ws-gallery-item:hover .ws-gallery-media {
	transform: translateY(-4px);
	box-shadow: 0 10px 28px rgba(132,94,194,0.30);
}
.ws-gallery-media img,
.ws-gallery-media video,
.ws-gallery-media iframe,
.ws-gallery-media .ws-video-embed,
.ws-gallery-media .ws-video-embed iframe {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	border: 0;
}
.ws-video-caption { margin-top: 0.75rem; font-size: 1.1rem; color: #2d2d2d; }

.group-offer-section {
	width: 50%;
	background: rgb(132 94 194 / 10%);
	border-radius: 20px;
	text-align: center;
	margin: 0 auto 2rem;
	padding: 2rem 1rem;
}

.group-offer-batch {
	display: inline-block;
	background: #845EC2;
	border-radius: 20px;
	padding: 0.75rem 1.25rem;
	font-size: 1rem;
	font-weight: 700;
	letter-spacing: 2px;
	text-transform: uppercase;
	color: #FFF;
	line-height: 1em;
}

.group-offer-section p {
	font-size: 2rem;
	margin-top: 1rem;
}

.group-offer-section p span {
	color: #845EC2 !important;
}

/* Mobile: two columns */
@media only screen and (max-width:767px){
	.ws-gallery-grid { grid-template-columns: repeat(1, 1fr); }
}

