/**
Theme Name: Lifted 2026
Author: Charlie Kirby
Author URI: https://charliekirby.co.uk
Description: Astra is the fastest, fully customizable & beautiful theme suitable for blogs, personal portfolios and business websites. It is very lightweight (less than 50KB on frontend) and offers unparalleled speed. Built with SEO in mind, Astra comes with schema.org code integrated so search engines will love your site. Astra offers plenty of sidebar options and widget areas giving you a full control for customizations. Furthermore, we have included special features and templates so feel free to choose any of your favorite page builder plugin to create pages flexibly. Some of the other features: # WooCommerce Ready # Responsive # Compatible with major plugins # Translation Ready # Extendible with premium addons # Regularly updated # Designed, Developed, Maintained & Supported by Brainstorm Force. Looking for a perfect base theme? Look no further. Astra is fast, fully customizable and beautiful theme!
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: lifted-2026
Template: astra
*/
/* --- Lenis CSS --- */
html.lenis, html.lenis body { height: auto; }
.lenis.lenis-smooth { scroll-behavior: auto !important; }
.lenis.lenis-smooth [data-lenis-prevent] { overscroll-behavior: contain; }
.lenis.lenis-stopped { overflow: hidden; }
/*rotations*/

/* Rotations for Labels/Maps to keep them upright */
/* Mask Rotations (Static) */
/* Rotations: We rotate the mask container, but counter-rotate the image 
   so the person doesn't end up sideways! */
.mask-rotate-90  { transform: rotate(90deg); }
.mask-rotate-90 img { transform: rotate(-90deg) scale(1.05); }

.mask-rotate-180 { transform: rotate(180deg); }
.mask-rotate-180 img { transform: rotate(-180deg) scale(1.05); }

.mask-rotate-270 { transform: rotate(270deg); }
.mask-rotate-270 img { transform: rotate(-270deg) scale(1.05); }

.mask-rotate-0   { transform: rotate(0deg); }

/*.mask-rotate-90  { transform: rotate(90deg); }
.mask-rotate-90 img { transform: rotate(-90deg); }

.mask-rotate-180 { transform: rotate(180deg); }
.mask-rotate-180 img { transform: rotate(-180deg); }

.mask-rotate-270 { transform: rotate(270deg); }
.mask-rotate-270 img { transform: rotate(-270deg); }*/

.rotate-90  { transform: rotate(90deg); }
.rotate-90 .label-content { transform: rotate(-90deg); }

.rotate-180 { transform: rotate(180deg); }
.rotate-180 img { transform: rotate(-180deg); }

.location-map-link.rotate-180:hover {transform: rotate(180deg);}
.location-map-link.rotate-180:hover img { filter: grayscale(0) brightness(1); transform: scale(1.1) rotate(-180deg); }

.rotate-270 { transform: rotate(270deg); }
.rotate-270 .label-content { transform: rotate(-270deg); }

/* fixed header colour changes */
.main-header-bar.ast-sticky-active {
	box-shadow: none !important
}
/*logo animations*/
/* --- Header Logo Container --- */
/* 1. Ensure the container is ready for absolute positioning */
.site-branding {
    position: relative !important;
    display: flex;
    align-items: center;
}

/* 2. The House Icon - Invisible and slightly lower by default */
.hover-home-icon {
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(10px); /* Initial offset for the "lift" effect */
    opacity: 0;
    transition: all 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94);
    pointer-events: none; /* Clicks go through to the logo link */
    z-index: 10;
}
.hover-home-icon .home-icon-text {
	font-size: 16px;
}
/* 3. The Logo - Add transition for the fade/lift */
.site-branding .ast-logo-svg-icon svg, 
.site-branding .custom-logo-link {
    transition: all 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94) !important;
    display: block;
}

/* 4. The Hover State Trigger */
/* When hovering the branding area... */

/* Slide the logo UP and out */
.site-branding:hover .ast-logo-svg-icon svg {
    opacity: 0;
    transform: translateY(-15px);
    filter: blur(2px);
}

/* Slide the house UP into center */
.site-branding:hover .hover-home-icon {
    opacity: 1;
    transform: translateY(-50%); /* Centers it vertically */
}

.home .ast-primary-header-bar .site-branding {
    display: inline-flex;
    width: 0; /* Menu starts at the left margin */
    opacity: 0;
    overflow: hidden; 
    white-space: nowrap; 
    transition: none; /* We want GSAP to handle the timing, not CSS */
    margin-right: 0;
}
/* Ensure the SVG has a fixed width so it doesn't squash during the 'push' */
.ast-primary-header-bar .ast-logo-svg-icon svg {
    width: 250px; /* Adjust to your logo's actual width */
    height: auto;
    flex-shrink: 0; /* Prevents the SVG from shrinking */
}
/*white(default)*/
.ast-primary-header-bar.theme-white  svg path {
    fill: var(--ast-global-color-6); /* If your logo is an SVG */
}
.ast-primary-header-bar.theme-white  .ast-builder-grid-row{
    border-bottom: 1px solid var(--ast-global-color-6);
}
.ast-primary-header-bar.theme-white .main-header-menu .menu-item:not(.digital-nav-link) > .menu-link, .ast-primary-header-bar.theme-white .hover-home-icon .home-icon-text {
	color: var(--ast-global-color-6) !important;
}
.ast-primary-header-bar.theme-white .main-header-menu .menu-item:not(.digital-nav-link):hover > .menu-link {
	border-color: var(--ast-global-color-6) !important;
}
.ast-primary-header-bar.theme-white .main-header-menu .current-menu-item > .menu-link {
}
/*black*/
.ast-primary-header-bar.theme-black  svg path{
    fill: var(--ast-global-color-8); /* If your logo is an SVG */
}
.ast-primary-header-bar.theme-black .ast-builder-grid-row{
    border-bottom: 1px solid var(--ast-global-color-8);
}
.ast-primary-header-bar.theme-black .main-header-menu .menu-item:not(.digital-nav-link) > .menu-link, .ast-primary-header-bar.theme-black .hover-home-icon .home-icon-text {
	color: var(--ast-global-color-8) !important;
}
.ast-primary-header-bar.theme-black .main-header-menu .menu-item:not(.digital-nav-link):hover > .menu-link {
	border-color: var(--ast-global-color-8) !important;
}
.ast-primary-header-bar.theme-black .main-header-menu .current-menu-item > .menu-link {
}
/*blue*/
.ast-primary-header-bar.theme-blue  svg path{
    fill: var(--ast-global-color-0); /* If your logo is an SVG */
}
.ast-primary-header-bar.theme-blue  .ast-builder-grid-row{
    border-bottom: 1px solid var(--ast-global-color-0);
}
.ast-primary-header-bar.theme-blue .main-header-menu .menu-item:not(.digital-nav-link) > .menu-link, .ast-primary-header-bar.theme-blue .hover-home-icon .home-icon-text {
	color: var(--ast-global-color-0) !important;
}
.ast-primary-header-bar.theme-blue .main-header-menu .menu-item:not(.digital-nav-link):hover > .menu-link {
	border-color: var(--ast-global-color-0) !important;
}
.ast-primary-header-bar.theme-blue .main-header-menu .current-menu-item > .menu-link {
}
/* main menu */
.ast-primary-header-bar .ast-builder-grid-row {
	border-bottom: 1px solid var(--ast-global-color-6);
}
.main-header-menu .current-menu-item > .menu-link {
	color: var(--ast-global-color-6) !important;
}
.ast-desktop .ast-primary-header-bar .main-header-menu > .menu-item:first-of-type {
	margin-left: 20px
} 
.ast-desktop .ast-primary-header-bar .main-header-menu > .menu-item {
	margin: 0 20px
}
.main-header-menu .menu-item > .menu-link {
	border-radius: 10px;
	border: 1px solid transparent
}
.main-header-menu .menu-item.digital-nav-link .menu-link {
	background: linear-gradient(135deg, #00ff75 0%, #00cc5e 100%) !important;
	color: var(--ast-global-color-8) !important;
	border: 1px solid transparent
}
/*off canvas*/
.ast-mobile-popup-drawer.active .ast-mobile-popup-inner {
	background: radial-gradient(at 92% 91.5%, #009aff 0px, transparent 50%), radial-gradient(at 10.7% 90.2%, #0076ff 0px, transparent 50%), radial-gradient(at 88.7% 8.2%, #2e30ff 0px, transparent 50%), radial-gradient(at 64.2% 57.7%, #111db8 0px, transparent 50%) #111db8;
}
.ast-header-break-point .main-navigation ul .menu-item .menu-link {
	width: fit-content
}
.ast-header-break-point .main-navigation ul .menu-item.digital-nav-link {
	margin-left: 20px
}

.hero-track {
    height: 250vh; /* Scroll distance */
    position: relative;
    z-index: 1;
	background: #000;
}

.hero-sticky {
    position: sticky;
    top: 0;
    height: 100vh;
    width: 100%;
    overflow: hidden;
    background: #000;
    display: flex;
   align-items: center;
    max-width: 100% !important;
}

/* -- The Video & Background -- */
.hero-video {
    position: absolute;
    inset: 0; /* Shorthand for top:0, left:0, bottom:0, right:0 */
    width: 100%;
    height: 100%;
    z-index: -2;
}

.hero-video video {
    width: 100%;
    height: 100%;
    object-fit: cover; /* Ensures video fills screen without stretching */
}

.hero-bg {
	
	position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
	background: #000;
   /* background: radial-gradient(at 92% 91.5%, #009aff 0px, transparent 50%), radial-gradient(at 10.7% 90.2%, #0076ff 0px, transparent 50%), radial-gradient(at 88.7% 8.2%, #2e30ff 0px, transparent 50%), radial-gradient(at 64.2% 57.7%, #111db8 0px, transparent 50%) #111db8;
    mix-blend-mode: hard-light; 
	 opacity: .7;*/
    backdrop-filter: blur(40px) contrast(100%) brightness(100%);
    -webkit-backdrop-filter: blur(40px) contrast(100%) brightness(100%);
    z-index: 1;
	 opacity: .2;
}
.hero-logo-wrapper.is-svg svg {
	width: 300px
}
/* -- The Content -- */
.hero-text-container {
    z-index: 2;
    position: relative;
    width: 100%;
}

/* MAGIC FIX: This forces Stage 1 and Stage 2 to overlap perfectly in the 2/3 column */
.hero-text-stack {
}
.text-stage-1 { 
}
.text-stage-1, .text-stage-2 {
}
/* Typography */
.text-stage-1 h1, .text-stage-2 h3 { 
    color: var(--ast-global-color-6, #fff); 
}
.text-stage-2 h3{ 
    margin-bottom: 20px; 
}
.text-stage-2 { 
    opacity: 0; 
}
/* -- Scroll Indicator -- */
.scroll-indicator {
    position: absolute;
    bottom: 30px;
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    flex-direction: column;
    align-items: center;
    color: #fff;
    font-size: 10px;
    letter-spacing: 2px;
    z-index: 10;
}
.arrow-line {
    width: 1px;
    height: 50px;
    background: rgba(255,255,255,0.2);
    margin-top: 10px;
    position: relative;
    overflow: hidden;
}
.arrow-line::after {
    content: '';
    position: absolute;
    top: 0; left: 0; width: 100%; height: 100%;
    background: #fff;
    animation: arrow-down 2s infinite;
}
@keyframes arrow-down {
    0% { transform: translateY(-100%); }
    100% { transform: translateY(100%); }
}
.scroll-prompt-mouse {
    position: absolute;
    bottom: 30px;
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    flex-direction: column;
    align-items: center;
    z-index: 10;
}

/* The Frosted Oval */
.mouse-outline {
    width: 26px;
    height: 42px;
    border: 2px solid rgba(255, 255, 255, 0.75);
    border-radius: 20px;
    position: relative;
    display: flex;
    justify-content: center;
    margin-bottom: 12px;
}

/* The Blue Scrolling Dot */
.mouse-wheel {
    width: 4px;
    height: 8px;
    background: #fff; /* Brand Blue */
    border-radius: 4px;
    margin-top: 6px;
    box-shadow: 0 0 8px rgba(45, 49, 245, 0.6); /* Subtle glow */
    animation: mouse-scroll 1.5s cubic-bezier(0.15, 0.41, 0.69, 0.94) infinite;
}

.scroll-prompt-mouse .scroll-text {
    color: rgba(255, 255, 255, 0.75);
    font-size: 10px;
    letter-spacing: 3px;
}

@keyframes mouse-scroll {
    0% { opacity: 0; transform: translateY(0); }
    20% { opacity: 1; }
    100% { opacity: 0; transform: translateY(18px); }
}
/* --- The Content Section --- */
.site-content {
	position: relative;
    z-index: 20;
    background: #ffffff;
}
.has-lifted-hero .site-content{
	box-shadow: 0 -30px 100px rgba(0,0,0,0.3), 0 -10px 20px rgba(0,0,0,0.2);
}
.ast-single-post .entry-content a.button {
	text-decoration: none;
}
.ast-single-post .entry-content a:not(.show-link, .news-list-item-link), .news-list-item-link h6, .ast-comment-content a:not(.ast-comment-edit-reply-wrap a, .news-list-item-link) {
	padding: 2px 5px 2px;
	border-radius: 10px;
	transition: all .3s;
	display: inline-block;
}
.ast-single-post .entry-content a:not(.show-link, .news-list-item-link):hover, .news-list-item-link:hover h6 .ast-comment-content a:not(.ast-comment-edit-reply-wrap a):hover {
	color: var(--ast-global-color-6);
	background-color: var(--ast-global-color-0);
	text-decoration: none;
}
/*-- lifted section block -- */
/* --- Base Section Styles --- */
.lifted-section {
    padding: 100px 20px;
    position: relative;
    overflow: hidden;
}

/* --- Section Header (Title & Line) --- */
.section-header {
    margin-bottom: 60px;
	width: 100%;
	border-bottom: 1px solid var(--ast-global-color-0);
	padding-bottom: 20px
}

.section-top-title {
    margin: 0;
    text-transform: capitalize;
    font-weight: 400;
    color: var(--ast-global-color-0);
    white-space: nowrap;
}

/* --- Block Inner Spacing --- */
.section-inner-content .layout-columns {
    margin-bottom: 60px; /* Space between text and carousels */
}

/* --- Background Themes --- */
.bg-white { background-color: var(--ast-global-color-6); }
.bg-grey { background-color: var(--ast-global-color-5); }
.bg-blue { 
    background-color: var(--ast-global-color-0); 
    color: var(--ast-global-color-6); 
}
.bg-green-gradient {
    background: linear-gradient(135deg, #00ff75 0%, #00cc5e 100%);
}

/* Auto-invert text/line colors on blue backgrounds */
.bg-blue .section-top-title,
.bg-blue .section-inner-content h1,
.bg-blue .section-inner-content h2,
.bg-blue .section-inner-content h3,
.bg-blue .section-inner-content h4,
.bg-blue .section-inner-content h5,
.bg-blue .section-inner-content h6,
.bg-blue .section-inner-content p,
.bg-blue .section-inner-content p a{
    color: var(--ast-global-color-6);
}
.bg-blue .section-header {
    border-bottom-color: var(--ast-global-color-6);
}
.bg-blue .section-inner-content p a:hover {
	color: var(--ast-global-color-0);
	background-color: var(--ast-global-color-6);
}
/* Dark text/line colors on green backgrounds */
.bg-green-gradient .section-top-title,
.bg-green-gradient .section-inner-content h1,
.bg-green-gradient .section-inner-content h2,
.bg-green-gradient .section-inner-content h3,
.bg-green-gradient .section-inner-content h4,
.bg-green-gradient .section-inner-content h5,
.bg-green-gradient .section-inner-content h6,
.bg-green-gradient .section-inner-content p {
    color: var(--ast-global-color-8);
}
.bg-green-gradient .section-header {
    border-bottom-color: var(--ast-global-color-8);
}
.full-width-content {
	width: 100vw;
    position: relative;
	left: 50%;
    right: 50%;
    margin-left: -50vw;
    margin-right: -50vw;
}
/*show grid layout */
.shows-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(300px, calc(50% - 15px)), 1fr));
	gap: 30px;
	margin: 0 30px;
}
.show-grid-item {
	opacity: 0;
	transform: translateY(40px);
    will-change: transform, opacity;
}
/* --- Show Carousel Layout --- */
.shows-carousel-wrapper {
    width: 100%;
    overflow: hidden;
    position: relative;
    padding: 40px 0;
    display: flex;
    flex-direction: column;
    gap: 30px; /* Space between the two rows */
}

.show-row-track {
    display: flex;
    gap: 30px;
    width: max-content; /* Allows track to be wider than the screen */
}

/* Push the second row to the left initially so it has room to scroll right */
.show-row-right .show-row-track {
    transform: translateX(-20%);
}

.show-item {
    width: 300px; /* Adjust portrait width */
    aspect-ratio: 2 / 3; /* Forces a portrait shape */
    border-radius: 12px;
    overflow: hidden;
    flex-shrink: 0;
}
.shows-grid .show-item {
	 width: 100%;
}
.show-item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.4s ease;
}

.show-item:hover img {
    transform: scale(1.05); /* Slight zoom on hover */
}

/* --- Fancy Tooltip --- */
.fancy-show-tooltip {
	top: 0;
	left: 0;
	position: fixed;
    pointer-events: none;
    z-index: 999999; /* Higher than Astra's header */
    background-color: var(--ast-global-color-0);
    color: var(--ast-global-color-6);
    padding: 12px 24px;
    border-radius: 50px;
    font-size: 20px;
    
    /* Center it on the point GSAP provides */
    transform: translate(-50%, 0%); 
    
    opacity: 0;
    visibility: hidden;
    display: block;
    will-change: transform;
}
:root {
    --max-width: 1412px;
    /* This calculates the exact pixel start of the 2/3 column */
    --grid-offset: calc((100vw - var(--max-width)) / 2 + (var(--max-width) / 3));
}

.team-carousel-section {
    width: 100vw;
    margin-left: calc(50% - 50vw);
    position: relative;
    padding: 0;
    overflow: hidden; /* Hide the slides that go off-screen to the right */
}

/* Align Nav Controls to the 2/3 margin */
.team-carousel-controls {
    max-width: var(--max-width);
    margin: 0 auto 30px auto; /* Center the container */
    padding-left: calc(var(--max-width) / 3); /* Push buttons to the 2/3 line */
    display: flex;
    gap: 15px;
    box-sizing: border-box;
}

/* The Wrapper & Track */
.team-carousel-wrapper {
    width: 100%;
    cursor: grab;
    overflow: visible; 
	touch-action: pan-y;
}

.team-carousel-track {
    display: flex;
    gap: 30px;
    /* Start the track at the 2/3 line */
    padding-left: var(--grid-offset); 
    will-change: transform;
}

.team-card {
    flex: 0 0 200px; /* Card size */
    user-select: none;
}

/* --- Styled Navigation Arrows --- */
.team-nav {
    width: 50px;
    height: 50px;
    border-radius: 50%;
    border: none;
    background: transparent;
    color: var(--ast-global-color-0);
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: all 0.3s ease;
    padding: 0;
}
.bg-blue .team-nav {
	color: var(--ast-global-color-6);
}
.bg-green .team-nav {
	color: var(--ast-global-color-8);
}
.team-nav svg {
    width: 50px;
    height: auto;
    fill: currentColor;
}

.team-nav:hover {
    background: var(--ast-global-color-0);
   color: var(--ast-global-color-6);
}
.bg-blue .team-nav:hover {
	background: var(--ast-global-color-6);
   color: var(--ast-global-color-0);
}
.bg-green .team-nav:hover {
	background: var(--ast-global-color-8);
   color: var(--ast-global-color-6);
}
.team-nav:disabled {
    opacity: 0.3;
    cursor: not-allowed;
}
/* --- THE MASKING --- */
.team-image-mask {
    width: 100%;
    aspect-ratio: 473 / 468;
    clip-path: url(#lifted-mask);
    overflow: hidden;
    background: #e0e0e0; /* Fallback grey */
}

.team-image-mask img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.5s ease;
}
.team-info h5 { 
	margin: 5px 0 30px;
	font-size: 1.3rem !important
}
.team-info p {
	opacity: 0;
	margin-bottom: 0;
	transition: all .3s
}
.team-card:hover .team-info p {
	opacity: 1
}/* --- Global Modal Reset --- */
.team-modal, .show-modal {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100dvh;
    z-index: 9999999; /* Above everything */
    display: flex;
    align-items: center;
    justify-content: center;
    visibility: hidden;
    pointer-events: none;
}
.team-modal.is-open, .show-modal.is-open {
    pointer-events: auto;
}
.modal-overlay {
    position: absolute;
    inset: 0;
    background: rgba(10, 10, 30, 0.85); /* Darker, sophisticated backdrop */
    backdrop-filter: blur(8px); /* Modern blur effect */
    opacity: 0;
}

.modal-container {
    position: relative;
    background: var(--ast-global-color-6);
    width: 90%;
    max-width: 1000px;
    height: auto;
    max-height: 85dvh;
    border-radius: 30px;
    overflow: hidden; /* Contains the interior scroll */
    box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.5);
    opacity: 0;
    transform: scale(0.9) translateY(30px);
	display: flex; /* Makes the interior fill the space */
    flex-direction: column;
}
.modal-ajax-target {
    height: 100%;
   
	flex-direction: column;
    min-height: 0;
	 flex: 1;
	/* IMPORTANT for flex overflow fix */
	/* 1. Tell it to fill remaining space in the flex parent   overflow: hidden;
    flex: 1 1 auto; 
    /* 2. CRITICAL: Forces Safari to respect flex bounds instead of expanding infinitely 
    min-height: 0; 
    overflow: hidden;
    width: 100%;
	*/
}
/* --- Interior Layout --- */
/* Custom scrollbar for the modal bio */
.modal-bio-content::-webkit-scrollbar {
    width: 6px;
}

.modal-bio-content::-webkit-scrollbar-track {
    background: #f1f1f1;
}

.modal-bio-content::-webkit-scrollbar-thumb {
    background: var(--ast-global-color-0);
    border-radius: 10px;
}

/* Ensure links in the bio stand out */
.bio-body a {
    color: var(--ast-global-color-0);
    font-weight: 600;
    transition: opacity 0.2s;
}

.bio-body a:hover {
    opacity: 0.7;
}

.modal-bio-content{
    display: grid;
    grid-template-columns: 250px 1fr;
    gap: 50px;
    padding: 60px;
  
    overflow-y: auto; 
    height: 100%; 
    max-height: 85dvh;
    
    -webkit-overflow-scrolling: touch;
    touch-action: pan-y;
	
	flex: 1;
    min-height: 0;
}
/*
.modal-bio-content {
    display: grid;
    grid-template-columns: 250px 1fr;
    gap: 50px;
    padding: 60px;
    
   
    overflow-y: auto; 
    height: 100%; 
    
    
    overscroll-behavior-y: contain; 
    
   
    -webkit-overflow-scrolling: touch; 
}*/
.modal-image {
    width: 100%;
    aspect-ratio: 473/468;
    clip-path: url(#lifted-mask); /* Using the same brand mask */
    background: #f0f0f0;
}

.modal-image img {
    width: 250px;
    height: 250px;
    object-fit: cover;
}

.modal-text h3 {
    margin-bottom: 5px;
    color: var(--ast-global-color-0);
}

.modal-text .job-title {
    color: var(--ast-global-color-7);
    letter-spacing: 1px;
    margin-bottom: 30px;
    display: block;
}

.bio-body {
    font-size: 18px;
    line-height: 1.6;
    color: #444;
}
/*show modal specific*/
.show-modal .modal-container {
	background: var(--ast-global-color-8);
	color:var(--ast-global-color-6);
	max-width: none;
	height: 85dvh;
}
.modal-show-content {
	display: flex;
	flex-direction: column;
	height: 100%;
}
.modal-show-image {
    position: relative;
    display: flex; 
	height: 100%;
}
.modal-show-image img {
    display: block;
    width: 100%;
	object-fit: cover;
	height: 100%;
}/*
.modal-show-image::after {
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 100px; 
    background: linear-gradient(
        to bottom, 
        rgba(10, 10, 10, 0) 0%, 
        #0a0a0a 100%
    );
    pointer-events: none; 
}*/
.modal-show-text{
	padding: 60px 33% 60px 60px;
	position: absolute;
	bottom: 0;
	width: 100%;
	background: linear-gradient(
	to bottom, 
	rgba(10, 10, 10, 0) 0%, 
	rgba(10, 10, 10, .9) 50%
	)
}
.modal-show-text h3 {
	color:var(--ast-global-color-6);
	margin-bottom: 10px
}
.modal-show-text p:last-of-type {
	margin-bottom: 0;
}
/* Close Button Styling */
.modal-controls {
	display: flex;
	justify-content: flex-end;
	gap: 10px;
	margin-bottom: 10px;
	position: absolute;
	top: 25px;
	right: 25px;
	z-index: 10;
}
.modal-controls button {
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: #f4f4f4;
    border: none;
    cursor: pointer;
    z-index: 10;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background 0.3s ease;
}

.modal-controls button svg { width: 24px; fill: var(--ast-global-color-8); }
.modal-controls button:hover { background: var(--ast-global-color-0); }
.modal-controls button:hover svg { fill: var(--ast-global-color-6); }

@media (max-width: 768px) {
   /* .modal-bio-content { grid-template-columns: 1fr; padding: 40px; } */
	.modal-bio-content {
        grid-template-columns: 1fr; /* Stack image and text */
        padding: 20px; /* Reduce padding for smaller screens */
        gap: 20px;
    }
    .modal-image img {
        margin: 0 auto;
        display: block;
		width: 100%;
		height: 100%;
    }

	.modal-show-text{
		padding: 30px 20px 20px;
	}
}
/*awards/image carousel*/
.team-carousel-track.generic-carousel .team-card {
	flex: 0 0 320px;
}
.carousel-card-content {
	text-align: center; 
	padding: 2px 0
}
.carousel-card-image.carousel-card-image-image {
	height: 70px;
	margin: 10px;
	display: flex;
	justify-content: center;
	align-items: center;
}
.carousel-card-image.carousel-card-image-image img {
	width: 180px;
	height: auto;
}
.carousel-card-image-icon {
	font-size: 2rem;
	color: var(--ast-global-color-0);
}
.carousel-card-text {
	font-size: .75rem;
	padding: 0 10px;
}
.carousel-card-text p {
	margin-bottom: 5px;
	line-height: 1.2;
}
.carousel-card-text p:last-of-type {
	margin-bottom: 0;
}
/* --- news  --- */
/* --- Kinetic List Section --- */
.news-split-section {
    padding: 20px 0;
    max-width: var(--max-width, 1500px);
    margin: 0 auto;
}

.news-split-grid {
    display: grid;
    grid-template-columns: 2fr 1fr;
    gap: 80px;
    align-items: stretch; /* Crucial for Sticky to work */
}

/* --- LEFT COLUMN: Tighter List --- */
.news-list-column {
    display: flex;
    flex-direction: column;
}

.news-list-item {
    padding: 24px 0; /* Reduced from 50px */
    transition: opacity 0.3s;
	border-bottom: 1px solid var(--ast-global-color-0);
}
.news-list-item:last-of-type {
	border-bottom: none;
}
.news-meta {
    font-size: 13px;
    text-transform: uppercase;
    margin-bottom: 1px; /* Tighter spacing */
    display: block;
	color: var(--ast-global-color-0)
} 
.news-list-item a h6 {
	margin-bottom: 10px
}
.news-list-item a p {
	color: var(--ast-global-color-4);
	padding: 0 5px;
	margin-bottom: 10px;
	font-size: .85rem;
}
.news-list-item a .button {
	margin: 0 6px;
	font-size: .85rem;
}
.news-list-item a:hover {
	background: transparent
}
.news-list-item a:hover h6{
	color: var(--ast-global-color-6);
	background-color: var(--ast-global-color-0);
}
.news-list-item a:hover p {
	color: var(--ast-global-color-4)
}
.news-list-item a:hover span.button {
	transition: all .3s;
	color: var(--ast-global-color-6);
	background: var(--ast-global-color-0);
	border-color: var(--ast-global-color-0);
}
/* --- RIGHT COLUMN: Sticky Masks --- */
.news-image-column {
    position: relative;
	height: 100%;
}

.news-image-sticky-wrapper {
	position: relative;
     /* height: 450px; Reduced slightly to ensure it fits average laptop screens */
    width: 100%;
    /* Removed background & border-radius so the SVG mask dictates the shape */
	/* aspect-ratio ensures the container has height even if children are absolute */
    aspect-ratio: 1 / 1; 
    max-width: 600px; /* Optional: cap the size */
    margin-top: 20px;
    will-change: transform;
}

/* Outer GSAP Container */
.news-preview-image {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    clip-path: inset(100% 0 0 0); 
    z-index: 1;
}

.news-preview-image.is-active {
    clip-path: inset(0 0 0 0);
    z-index: 2;
}

/* Inner Brand Mask Container */
.news-preview-mask {
    width: 100%;
    aspect-ratio: 1/1; /* Keeps the mask perfectly proportioned */
    clip-path: url(#lifted-mask);
    
}
.news-preview-image:nth-of-type(4n) .news-preview-mask{
 background: var(--ast-global-color-3);
}

.news-preview-image:nth-of-type(4n + 1) .news-preview-mask{
 background: var(--ast-global-color-2);
}

.news-preview-image:nth-of-type(4n + 2) .news-preview-mask{
  background: var(--ast-global-color-1);
}

.news-preview-image:nth-of-type(4n + 3) .news-preview-mask{
  background: var(--ast-global-color-0);
}

.news-preview-mask img {
    width: 100%;
	aspect-ratio: 1/1; 
    object-fit: cover;
}

/* ZERO STATE STYLES */
.news-zero-state {
    position: relative;
    background: var(--ast-global-color-0);
    color: #fff;
    border-radius: 30px;
    padding: 120px 40px;
    text-align: center;
    overflow: hidden;
}

.news-zero-bg {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 800px;
    height: 800px;
    fill: var(--ast-global-color-6);
    opacity: 0.05; /* Barely visible */
    pointer-events: none;
}

.zero-content { position: relative; z-index: 2; max-width: 600px; margin: 0 auto; }
.zero-content h2 { font-size: 54px; margin-bottom: 20px; }
.zero-content p { font-size: 18px; margin-bottom: 40px; opacity: 0.9; }
.mobile-only {
    display: none;
}
@media (hover: none) and (pointer: coarse) {

    .news-split-grid {
        display: block;
    }

    .news-image-column {
        display: none;
    }

    .mobile-only {
        display: block;
        margin-bottom: 15px;
    }
	.news-item-image {
		width: 150px;
		aspect-ratio: 1/1;
		clip-path: url(#lifted-mask);
		background: var(--ast-global-color-0);
	}
    .news-item-image img {
        width: 100%;
        aspect-ratio: 1 / 1;
        object-fit: cover;
		
    }

    /* optional: nicer spacing */
    .news-list-item {
        padding: 20px 0;
    }
}
/* --- Single Template Wrapper --- */
/* hero slider */
.slider {
 overflow: hidden;
 width: 100vw;
position: absolute;
top: 0;
bottom: 0;
left: 0;
right: 0;
max-width: 100% !important;
z-index: 0;
}
 
.slider .slide {
 position: absolute;
 top: 0;
 left: 0;
 width: 100%;
 height: 100%;
 background-size: cover;
 background-position: center;
}

/* --- Scroll Prompt --- */
.hero-scroll-prompt {
    position: absolute;
    bottom: 40px;
    left: 40px;
    color: #fff;
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: 2px;
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.hero-scroll-prompt .scroll-line {
    width: 1px;
    height: 60px;
    background: rgba(255,255,255,0.3);
    position: relative;
}

.hero-scroll-prompt .scroll-line::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 1px;
    height: 30px;
    background: #fff;
    animation: scrollLineDrop 2s infinite ease-in-out;
}

@keyframes scrollLineDrop {
    0% { top: 0; height: 0; }
    50% { top: 0; height: 30px; }
    100% { top: 60px; height: 0; }
}
.wp-singular:not(.ast-narrow-container, .page) #content > .ast-container {
	max-width: 100%;
	padding: 0;
}
.lifted-single-template {
    position: relative;
    width: 100%;
	margin-bottom: 0
}

/* --- The Fixed Hero (Acts like a GSAP Pin) --- */
.single-hero-fixed {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100vh;
    z-index: 1;
    overflow: hidden;
    background: #2e30ff; /* Fallback color */	
}

.single-hero-fixed .hero-bg-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.single-hero-fixed .hero-gradient-overlay {
    position: absolute;
    inset: 0;
    /* Adjust this to match your exact brand gradient */
    background: linear-gradient(135deg, rgba(46,48,255,0.7) 0%, rgba(46,48,255,1) 100%);
}

/* --- The Scrolling Main Content --- */
.single-main-scrollable {
    position: relative;
    z-index: 2;
    background: #ffffff; /* Page background color */
    padding-bottom: 120px;
	margin-top: 170px
}
.single-content-area {
	padding: 0 20px;
}
/* --- Shared Grid --- */
.single-grid-layout {
    max-width: 1500px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 33.33% 66.66%;
}

/* --- The Dynamic Header --- */
.single-dynamic-header {
    margin-bottom: 80px; /* Space between title and content */
    will-change: transform; /* Performance boost for GSAP */
}

.meta-column {
    display: flex;
    flex-direction: column;
    font-weight: 700;
    font-size: 13px;
    text-transform: uppercase;
    letter-spacing: 1px;
    gap: 10px;
}

.title-column {
	padding: 0 20px;
}

/* --- The Content Area & Sticky Sidebar --- */
.sidebar-column {
    position: relative;
    height: 100%;
}

.sticky-sidebar-inner {
    display: flex;
    flex-direction: column;
    gap: 30px;
}

.sticky-title {
    font-size: 24px;
    line-height: 1.2;
    margin: 0;
    color: #2e30ff; /* Brand blue */
}

.sticky-meta {
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: 1px;
    font-weight: 700;
    color: #8e8e8e; /* Or whichever grey fits */
}
.small-thumbnail-mask {
    width: 100%;
    max-width: 350px;
    aspect-ratio: 1/1;
    clip-path: url(#lifted-mask);
    background: #f4f4f4;
}

.small-thumbnail-mask img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.post-content-inner {
	padding: 0 20px
}
/* --- Blockquotes (Premium Editorial Style) --- */
.post-content-inner blockquote {
    margin: 2.5em 0;
    padding: 0 0 0 30px;
    border-left: 4px solid #2e30ff; /* Brand blue accent */
    font-size: 26px;
    font-style: italic;
    font-weight: 500;
    line-height: 1.4;
    color: #000;
}

.post-content-inner blockquote p {
    margin-bottom: 0;
}

/* Style the citation if they use <cite> in the editor */
.post-content-inner blockquote cite {
    display: block;
    font-size: 14px;
    font-style: normal;
    margin-top: 15px;
    color: #8e8e8e;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1px;
}

/* --- Lists --- */
.post-content-inner ul, 
.post-content-inner ol {
    margin: 1.5em 0 1.5em 20px;
    padding: 0;
}

.post-content-inner li {
    margin-bottom: 10px;
}

.post-content-inner ul li::marker {
    color: #2e30ff; /* Makes bullet points brand blue */
}

/* --- WordPress Standard Image Alignments --- */
.post-content-inner img {
    max-width: 100%;
    height: auto;
    border-radius: 8px; /* Soften standard images slightly */
}

/* Standard WP alignment classes */
.alignleft {
    float: left;
    margin: 0.5em 1.5em 1.5em 0;
    max-width: 50%;
}

.alignright {
    float: right;
    margin: 0.5em 0 1.5em 1.5em;
    max-width: 50%;
}

.aligncenter {
    display: block;
    margin: 1.5em auto;
    text-align: center;
}

/* Captions */
.wp-caption,
.post-content-inner figure {
    margin-bottom: 1.5em;
    max-width: 100%;
}

.wp-caption-text,
.post-content-inner figcaption {
    font-size: 14px;
    color: #8e8e8e;
    margin-top: 10px;
    text-align: center;
    font-style: italic;
}
.socials {
	list-style: none;
	column-gap: 20px;
	margin-left: 0
}
.socials li:first-of-type {
	width: 100%;
}
.socials li {
	margin-bottom: 0;
}
.socials li a {
	margin-bottom: 10px;
	display: inline-block;
}
/* Clearfix to ensure floats don't break the layout */
.post-content-inner::after {
    content: "";
    display: table;
    clear: both;
}
/*single jobs*/
.job-footer {
	font-size: .8rem;
	margin-top: 1.5rem;
}
.job-footer p {
	margin-bottom: .5rem
}
/*archive pages*/
#primary.ast-blog-layout-5-grid {
	margin-top: 145px
}
.archive-title-filter-wrap {
	background: var(--ast-global-color-5);
	border-radius: 20px;
	padding: 10px 20px;
	margin: 0px -20px 50px;
}
.archive-title-filter-wrap .archive-title {
	width: 33.33%
}
.ast-post-filter ul {
	margin-bottom: 0
}
a.ast-post-filter-single {
	border-radius: 10px;
	border: 1px solid var(--ast-global-color-1);
	color: var(--ast-global-color-1);
	transition: all .3s
}
a.ast-post-filter-single:hover {
	border: 1px solid var(--ast-global-color-0);
	background: var(--ast-global-color-0);
	color: var(--ast-global-color-6);
}
a.ast-post-filter-single.active, a.ast-post-filter-single.active:hover {
	border: 1px solid var(--ast-global-color-0);
	color: var(--ast-global-color-0);
	background: transparent;
}
.ast-blog-layout-4-grid .ast-article-post, .ast-blog-layout-5-grid .ast-article-post, .ast-blog-layout-6-grid .ast-article-post {
	border-bottom: 1px solid var(--ast-global-color-4);
	padding-bottom: 40px
}
.ast-blog-layout-5-grid .ast-blog-featured-section {
	width: 33.33%;
}
.blog-layout-5 .post-thumb-img-content {
	max-width: 300px;
	clip-path: url(#lifted-mask);
}

.ast-blog-layout-5-grid .post-content {
	width: 66.66%;
	padding-left: 20px;
	display: flex;
	flex-direction: column;
}
.blog .entry-title a, .archive .entry-title, .archive .entry-title a, .search .entry-title, .search .entry-title a {
	padding: 2px 5px 2px;
	border-radius: 10px;
}
.blog .entry-title a:hover, .archive .entry-title a:hover, .search .entry-title a:hover {
	text-decoration: none;
	background: var(--ast-global-color-0);
	color: var(--ast-global-color-6);
}
.ast-blog-layout-5-grid .post-content>.entry-header{
	margin-bottom: 5px
}
.ast-blog-layout-5-grid .post-content>.read-more{
	margin-top: auto;
	margin-bottom: 0
}
.ast-load-more {
	border-radius: 100px;
	background: var(--ast-global-color-5);
	border: none
}
/*"productions" cpt archives*/
.post-type-archive-show #primary.ast-blog-layout-5-grid, .post-type-archive-digital #primary.ast-blog-layout-5-grid, .post-type-archive-podcast #primary.ast-blog-layout-5-grid {
	margin-top: 45px !important
}
/*slider */
:root {
	--swiper-theme-color: var(--ast-global-color-6);
	--swiper-pagination-bullet-inactive-color: var(--ast-global-color-0);
	--swiper-pagination-bullet-inactive-opacity: 1;
}
.swiper-pagination-bullet {
	border: 1px solid var(--ast-global-color-6)
}
.production-slider {
	padding: 50px;
	background: var(--ast-global-color-0);
	position: relative;
	width: 100%;
}
.swiper-wrapper {
    pointer-events: none;
}
.production-slide {
	pointer-events: auto;
}
.production-slide-inner .production-poster {
	margin-bottom: 20px;
	border-radius: 12px;
    overflow: hidden;
}
.production-slide-inner .production-poster img {
    transition: transform 0.4s ease;
}
.production-slide-inner:hover .production-poster img {
    transform: scale(1.05); /* Slight zoom on hover */
}
.production-slide-inner .production-name {
	text-align: center;
}
.production-slide-inner .production-name p{
	display: inline-block;
	color: var(--ast-global-color-6);
	margin-bottom: 0;
	padding: 5px 20px;
	border: 1px solid var(--ast-global-color-6);
	border-radius: 100px;
	transition: all 0.4s ease;
	opacity: 0;
}
.production-slide-inner:hover .production-name p {
	color: var(--ast-global-color-0);
	background:  var(--ast-global-color-6);
	opacity: 1
}
.swiper-slide-active .production-slide-inner .production-name p {
	opacity: 1
}
/* --- Footer --- */
.footer-maps-grid {
    display: flex;
    gap: 40px;
    align-items: flex-end;
	flex-direction: row
}

.footer-location-item {
    display: flex;
    align-items: flex-end;
    position: relative;
}
.footer-location-item:first-of-type {
	align-items: flex-start;
}

/* --- THE LABELS --- */
.location-label-box {
    width: 180px;
    aspect-ratio: 1/1;
    clip-path: url(#lifted-mask);
    display: flex;
    align-items: center;
	justify-content: center;
    padding: 10px;
    position: relative;
    z-index: 1;
    margin-right: 10px; 
}

.location-label-box {
    background: var(--ast-global-color-0);
    color: var(--ast-global-color-6);
}

.label-content strong {
    display: block;
}

.label-content p {
    font-size: 13px;
    line-height: 1.4;
    margin: 0;
    opacity: 0.8;
}

/* --- THE MAPS --- */
.location-map-link {
    width: 60%;
    aspect-ratio: 1/1;
    display: block;
    position: relative;
    z-index: 2;
    transition: transform 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}

.location-map-mask {
    width: 100%;
    height: 100%;
    clip-path: url(#lifted-mask);
    background: #222;
    overflow: hidden;
}

.location-map-mask img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    filter: grayscale(1) brightness(0.8) contrast(1.2); /* Custom map styling */
    transition: filter 0.3s ease, transform 0.6s ease;
}

.location-map-link:hover { transform: scale(1.03) translateY(-5px); }
.location-map-link:hover img { filter: grayscale(0) brightness(1); transform: scale(1.1); }

.get-in-touch-footer-links a, .ast-footer-copyright a{
	color: var(--ast-global-color-6);
	padding: 2px 5px 2px;
	border-radius: 10px;
	transition: all .3s;
}
.get-in-touch-footer-links a:hover, .ast-footer-copyright a:hover{
	color: var(--ast-global-color-0);
	background: var(--ast-global-color-6);
	text-decoration: none;
}
.site-footer {
    position: relative;
    z-index: 100; /* Sits BEHIND the site content */
    background: var(--ast-global-color-8);
    color: var(--ast-global-color-6);
    overflow: hidden; /* Hides the parallax overflow */
}
.site-primary-footer-inner-wrap {
	border-top: 1px solid var(--ast-global-color-6);
	padding-top: 45px
}
.site-primary-footer-wrap[data-section="section-primary-footer-builder"] .ast-builder-grid-row {
	grid-template-columns: 33.33% 66.66% !important;
}
.footer-nav-wrap .astra-footer-horizontal-menu a {
	padding: 0 0.5em !important;
	border-radius: 8px;
}
#ast-scroll-top {
	z-index: 1000;
	clip-path: url(#lifted-mask);
}
@media (max-width: 1387px) {

}
@media (max-width: 921px) {
	.page.ast-page-builder-template:not(.home) .entry-content{
		margin-top: 50px;
	}
	.hero-logo-wrapper.is-svg svg {
		width: 150px
	}
	.text-stage-1 {
		margin-bottom: 20px
	}
	.lifted-section {
		padding: 50px 20px;
	}
	.section-header {
		margin-bottom: 30px
	}
	.section-inner-content .layout-columns .wp-block-column:empty{
		display: none;
	}
	.section-inner-content .acf-innerblocks-container > .wp-block-columns.ast-container {
		padding: 0!important;
		margin-bottom: 30px;
	}
	.shows-carousel-wrapper {
		gap: 15px;
		padding: 20px 0;
	}
	.show-row-track {
		gap: 15px
	}
	.show-item {
		width: 150px
	}
	.team-carousel-track {
		padding-left: 20px
	}
	.team-carousel-controls {
		padding-left: 20px;
	}
	.post-content-inner {
		padding: 0
	}
   .site-primary-footer-wrap[data-section="section-primary-footer-builder"] .ast-builder-grid-row {
		grid-template-columns: 1fr !important;
	}
	.footer-maps-grid {
		flex-direction: column
	}
}
@media (max-width: 768px) {
	.single-main-scrollable {
		margin-top: 100px
	}
	/* --- Shared Grid --- */
	.single-grid-layout {
		grid-template-columns: 100%;
		gap: 20px;
	}
}
@media (max-width: 544px) {
	.small-thumbnail-mask {
		max-width: 200px;
	}
}/* 
 * Generated by clampgenerator.com 
 * Font size: 16px to 20px
 * Viewport: 320vw to 1500vw
 */

html { font-size: 20px; }

/* Typography Sizes */
h1, .cg-h1 {
  font-size: clamp(1.60rem, calc(1.168rem + 2.699vw), 3.80rem) !important;
}

h2, .cg-h2 {
  font-size: clamp(1.44rem, calc(1.134rem + 1.914vw), 3.00rem) !important;
}

h3, .cg-h3 {
  font-size: clamp(1.20rem, calc(0.964rem + 1.472vw), 2.40rem) !important;
}

h4, .cg-h4 {
  font-size: clamp(1.04rem, calc(0.871rem + 1.055vw), 1.90rem) !important;
}

h5, .cg-h5 {
  font-size: clamp(0.88rem, calc(0.758rem + 0.761vw), 1.50rem) !important;
}

h6, .cg-h6 {
  font-size: clamp(0.80rem, calc(0.702rem + 0.613vw), 1.30rem) !important;
}

body, .cg-base {
  font-size: clamp(0.80rem, calc(0.761rem + 0.245vw), 1.00rem) !important;
}

small, .cg-small {
  font-size: clamp(0.70rem, calc(0.666rem + 0.215vw), 0.88rem) !important;
}