@import url('https://fonts.googleapis.com/css?family=Montserrat:200,300,400,500,600,700&display=swap');

/*
	Custom Overrides for Solid State - v54
	Restored: Black/Gold Theme, Mobile Alignments, Explicit Footer Icons Fix
*/

/* --- 1. Font Overrides (Site-wide) --- */
body, input, select, textarea {
	font-family: "Montserrat", Helvetica, sans-serif;
	font-weight: 300;
}

h1, h2, h3, h4, h5, h6,
a.special:not(.button),
label,
input[type="submit"],
input[type="reset"],
input[type="button"],
button,
.button,
#header nav,
#banner p,
#menu .links li a {
	font-family: "Montserrat", Helvetica, sans-serif;
	font-weight: 700;
}

#menu .links li a { font-weight: 700; }

input[type="checkbox"] + label,
input[type="radio"] + label {
	font-family: "Montserrat", Helvetica, sans-serif;
	font-weight: 300;
}


/* --- 2. Custom Banner Styling --- */
:root { --logo-max-height: 30px; }

#banner .logo.custom-logo-wrapper {
    border: none; border-radius: 0; height: auto; width: auto;
    cursor: default; display: block; margin: 0 0 1.3em 0; 
}

#banner .logo .custom-logo-image {
    vertical-align: middle; display: inline-block;
    max-width: 100%; height: auto;
	max-height: var(--logo-max-height); margin-right: 2px;
}

#banner .logo .custom-logo-text-wrapper {
    font-family: 'Montserrat', Helvetica, sans-serif;
    font-size: 1.2em; font-weight: 400; letter-spacing: -0.03em;
    display: inline-block; position: relative; top: 0;
    vertical-align: middle; line-height: 1;
}

#banner .logo .logo-text-creative { color: #ffffff; }
#banner .logo .logo-text-edits { color: #f8c51d; }

#banner .inner h2.h2-name {
    font-family: 'Montserrat', Helvetica, sans-serif; font-weight: 600;
    color: #ffffff; margin-top: 1em;
    border-bottom: solid 2px rgba(255, 255, 255, 0.125);
    padding-bottom: 0.4em; margin-bottom: 0.8em; font-size: 2.25em; 
}

#banner .inner p.p-title {
    color: #f8c51d; font-family: 'Montserrat', Helvetica, sans-serif;
    font-weight: 500; margin: 0; font-size: 1.7em;
    text-transform: uppercase; line-height: 1.2; letter-spacing: 0.05em; 
}

#banner .inner p.p-subtitle {
    color: #ffffff; font-family: 'Montserrat', Helvetica, sans-serif;
    font-weight: 400; margin-top: 0.3em; margin-bottom: 0;
    font-size: 0.749em; letter-spacing: 0.34em;
    text-transform: uppercase; line-height: 1.5;
}


/* --- 3. Color Palette --- */
body {
	background-color: #0a0a0a;
	background-image: linear-gradient(to top, rgba(10, 10, 10, 0.8), rgba(10, 10, 10, 0.8)), url("../../images/bg.jpg");
}

@media screen and (max-width: 1280px) {
	#banner, #wrapper > header, #footer {
		background-color: #0a0a0a;
		background-image: linear-gradient(to top, rgba(10, 10, 10, 0.8), rgba(10, 10, 10, 0.8)), url("../../images/bg.jpg");
	}
}

/* Wrapper Sections */
.wrapper, .wrapper.spotlight { background-color: #1a1a1a; }
.wrapper:before, .wrapper:after, .wrapper.spotlight:before, .wrapper.spotlight:after {
	background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100' height='100' viewBox='0 0 100 100' preserveAspectRatio='none'%3E%3Cpolygon points='0,100 100,0 100,100' style='fill:%231a1a1a%3B' /%3E%3C/svg%3E");
	box-shadow: inset 0 -1px 0 0 #1a1a1a, 0 1px 0 0 #1a1a1a;
}

.wrapper.style2, .wrapper.spotlight.style2 { background-color: #171717; }
.wrapper.style2:before, .wrapper.style2:after, .wrapper.spotlight.style2:before, .wrapper.spotlight.style2:after {
	background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100' height='100' viewBox='0 0 100 100' preserveAspectRatio='none'%3E%3Cpolygon points='0,100 100,0 100,100' style='fill:%23171717%3B' /%3E%3C/svg%3E");
	box-shadow: inset 0 -1px 0 0 #171717, 0 1px 0 0 #171717;
}

.wrapper.style3, .wrapper.spotlight.style3 { background-color: #131313; }
.wrapper.style3:before, .wrapper.style3:after, .wrapper.spotlight.style3:before, .wrapper.spotlight.style3:after {
	background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100' height='100' viewBox='0 0 100 100' preserveAspectRatio='none'%3E%3Cpolygon points='0,100 100,0 100,100' style='fill:%23131313%3B' /%3E%3C/svg%3E");
	box-shadow: inset 0 -1px 0 0 #131313, 0 1px 0 0 #131313;
}

/* Updated Article Layout for Aligned Buttons */
.features article { 
    background-color: #111; 
    display: flex;
    flex-direction: column;
}

/* Push the button to the very bottom of the card */
.features article .special {
    margin-top: auto;
    align-self: flex-start; /* Keeps the button left-aligned */
}


/* --- 4. Accent Color: #f8c51d --- */
a:hover { color: #f8c51d !important; border-bottom-color: transparent; }
a.special:not(.button):hover:before { background-color: rgba(240, 212, 5, 0.075); }
a.special:not(.button):active:before { background-color: rgba(240, 212, 5, 0.15); }

input[type="text"]:focus, input[type="password"]:focus, input[type="email"]:focus, input[type="tel"]:focus, select:focus, textarea:focus {
	border-color: #f8c51d;
}

input[type="checkbox"]:checked + label:before, input[type="radio"]:checked + label:before {
	background: #f8c51d; border-color: #f8c51d; color: #0a0a0a; 
}
input[type="checkbox"]:focus + label:before, input[type="radio"]:focus + label:before { border-color: #f8c51d; }

ul.pagination li > .page.active { background-color: #f8c51d; color: #0a0a0a !important; }

input[type="submit"].primary, input[type="reset"].primary, input[type="button"].primary, button.primary, .button.primary {
	background-color: #f8c51d; box-shadow: none; color: #0a0a0a !important; 
}
input[type="submit"].primary:hover, button.primary:hover, .button.primary:hover { background-color: #f2d91c; }
input[type="submit"].primary:active, button.primary:active, .button.primary:active { background-color: #e0c504; }
input[type="submit"].primary.icon:before, button.primary.icon:before, .button.primary.icon:before { color: rgba(10, 10, 10, 0.5); }

#menu .inner { background: rgba(240, 212, 5, 0.9); }
#menu .links li a { color: #0a0a0a !important; font-weight: 700; }
#menu h2 { color: #0a0a0a; }
#menu .close { background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' width='100' height='100' viewBox='0 0 100 100' preserveAspectRatio='none'%3e%3cstyle%3e line %7b stroke-width: 2px; stroke: %230a0a0a; %7d %3c/style%3e%3cline x1='25' y1='25' x2='75' y2='75' /%3e%3cline x1='75' y1='25' x2='25' y2='75' /%3e%3c/svg%3e"); }
#menu .links li a:hover { background: #e0c504; }
#menu h2 { border-bottom: solid 2px rgba(10, 10, 10, 0.125); }


/* --- 5. Responsive Typography --- */
@media screen and (max-width: 736px) {
	#banner .inner h2.h2-name { font-size: 1.5em; white-space: nowrap; }
	.mobile-break { display: block; }
	#banner .inner p.p-title { font-size: 1.36em; }
	#banner .inner p.p-subtitle { font-size: 0.6em; letter-spacing: 0.3em; }
}
@media screen and (min-width: 737px) { .mobile-break { display: none; } }


/* --- 6. Sticky Header & Layout --- */
#header { background-color: rgba(10, 10, 10, 0.95); }

/* Desktop: Ensure Header Text is visible */
#header h1 {
    color: #ffffff !important;
    opacity: 1;
    visibility: visible;
}

/* Desktop: Menu Button Styling */
#header nav a[href="#menu"] { 
    border: solid 2px #f8c51d;
    display: inline-block;
    vertical-align: middle; 
}
#header nav a[href="#menu"]:hover { background-color: rgba(240, 212, 5, 0.075); }
#header nav a[href="#menu"]:active { background-color: rgba(240, 212, 5, 0.15); }

/* --- MOBILE HEADER STRATEGY: ACTION-FIRST --- */
@media screen and (max-width: 736px) {
    
    /* 1. Hide the Header Text to clear space for buttons */
    #header h1 {
        display: none !important;
    }

    /* 2. Center the Navigation Bar (Buttons) */
    #header nav {
        position: relative; /* Override absolute positioning */
        right: auto;
        top: 0;
        width: 100%;
        height: 100%;
        display: flex;      /* Use Flexbox for easy centering */
        justify-content: center; 
        align-items: center;
    }
    
    /* 3. Mobile Menu Button Reset */
    #header nav a[href="#menu"] {
        border: 0; 
        box-shadow: none;
        margin-left: 0.5em; /* Slight gap between CV and Menu */
    }
}


/* --- 7. Showcase Styles --- */
#four .features article h3.major, #wrapper .wrapper .features article h3.major {
    margin-top: 1.5em; margin-bottom: 0.5em; color: #f8c51d; font-weight: 500; 
}
#four .features article p, #wrapper .wrapper .features article p {
    margin-top: 0.5em; margin-bottom: 1.3em;
}


/* --- 8. Footer Alignment --- */
#footer .inner .copyright li { font-size: 0.8em; font-weight: 300; color: rgba(255, 255, 255, 0.45); }

@media screen and (min-width: 981px) {
    #footer .inner .contact {
        padding-top: 1.5em; 
    }
}


/* ====================================================
   VIMEO CUSTOM CONTROLS
   ====================================================
*/
.vimeo-click-catcher { position: absolute; top: 0; left: 0; width: 100%; height: 100%; z-index: 100; cursor: pointer; }
.vimeo-controls-wrapper { position: absolute; top: 0; left: 0; width: 100%; height: 100%; opacity: 0; transition: opacity 0.3s ease-in-out; z-index: 101; pointer-events: none; }
.custom-video-wrapper:hover .vimeo-controls-wrapper { opacity: 1; }
.vimeo-replay-button { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); z-index: 102; background: rgba(10, 10, 10, 0.5); border: solid 2px rgba(240, 212, 5, 0.7); border-radius: 100%; width: 4.5em; height: 4.5em; line-height: 4.5em; text-align: center; cursor: pointer; transition: background-color 0.2s ease-in-out; pointer-events: all; }
.vimeo-replay-button .icon { font-size: 1.5em; color: rgba(240, 212, 5, 0.7); line-height: inherit; margin-left: 0.1em; }
.vimeo-replay-button:hover { background: rgba(240, 212, 5, 0.2); }
.vimeo-volume-button { position: absolute; top: 1em; right: 1em; z-index: 102; background: rgba(10, 10, 10, 0.5); border-radius: 5px; width: 2em; height: 2em; line-height: 2em; text-align: center; color: rgba(240, 212, 5, 0.7); cursor: pointer; pointer-events: all; }
.vimeo-volume-button .icon { font-size: 0.8em; line-height: inherit; }
.vimeo-volume-button:hover { background: rgba(240, 212, 5, 0.2); }
.vimeo-volume-slider { position: absolute; top: 1.25em; right: 2em; width: 6em; height: 2em; -webkit-appearance: none; background: transparent; cursor: pointer; z-index: 102; pointer-events: all; }
.vimeo-volume-slider::-webkit-slider-runnable-track { width: 100%; height: 5px; background: rgba(240, 212, 5, 0.7); border-radius: 3px; border: none; }
.vimeo-volume-slider::-webkit-slider-thumb { -webkit-appearance: none; border: solid 2px #0a0a0a; height: 1.2em; width: 1.2em; border-radius: 100%; background: #f8c51d; cursor: pointer; margin-top: -0.35em; box-shadow: 0 0 2px rgba(0,0,0,0.5); }
.vimeo-volume-slider::-moz-range-track { width: 100%; height: 5px; background: rgba(240, 212, 5, 0.7); border-radius: 3px; border: none; }
.vimeo-volume-slider::-moz-range-thumb { border: solid 2px #0a0a0a; height: 1.2em; width: 1.2em; border-radius: 100%; background: #f8c51d; cursor: pointer; }
.vimeo-bottom-bar { position: absolute; bottom: 0; left: 0; width: 100%; padding: 0.5em 1em 1em 1em; display: flex; align-items: center; gap: 10px; background: linear-gradient(to top, rgba(0,0,0,0.8), transparent); z-index: 102; pointer-events: none; }
.vimeo-time-display { font-family: "Montserrat", monospace; font-size: 0.7em; color: #fff; white-space: nowrap; min-width: 70px; text-shadow: 0 1px 2px rgba(0,0,0,0.8); }
.vimeo-progress-slider { -webkit-appearance: none; background: transparent; cursor: pointer; flex-grow: 1; height: 2em; pointer-events: all; }
.vimeo-progress-slider::-webkit-slider-runnable-track { width: 100%; height: 4px; background: rgba(255, 255, 255, 0.3); border-radius: 2px; border: none; }
.vimeo-progress-slider::-moz-range-track { width: 100%; height: 4px; background: rgba(255, 255, 255, 0.3); border-radius: 2px; border: none; }
.vimeo-progress-slider::-webkit-slider-thumb { -webkit-appearance: none; border: none; height: 1em; width: 1em; border-radius: 100%; background: #f8c51d; cursor: pointer; margin-top: -0.35em; box-shadow: 0 0 4px rgba(0,0,0,0.5); transition: transform 0.1s; }
.vimeo-progress-slider:hover::-webkit-slider-thumb { transform: scale(1.2); }
.vimeo-progress-slider::-moz-range-thumb { border: none; height: 1em; width: 1em; border-radius: 100%; background: #f8c51d; cursor: pointer; box-shadow: 0 0 4px rgba(0,0,0,0.5); }
.vimeo-fullscreen-button { background: transparent; border: none; color: rgba(255, 255, 255, 0.8); cursor: pointer; pointer-events: all; font-size: 1em; padding: 0 0.5em; transition: color 0.2s; }
.vimeo-fullscreen-button:hover { color: #f8c51d; background: transparent; }


/* --- 14. Subpage Header --- */
/* Updated selector to find <p> inside <div class="inner"> */
#wrapper header p {
    text-transform: none !important; /* Forces sentence case */
    font-family: "Montserrat", Helvetica, sans-serif;
    font-weight: 300; 
    font-size: 1em; 
    letter-spacing: 0.025em; 
    line-height: 1.65;
}


/* ====================================================
   15. HEADER CV BUTTON (LINKED WIDTH/HEIGHT)
   ====================================================
*/

:root {
    /* Desktop Size: 3.35em is larger than the standard 3em Menu button. */
    --cv-btn-height: 3.35em;
}

#header nav .cv-button-img {
    display: inline-block;
    height: var(--cv-btn-height);
    width: calc(var(--cv-btn-height) * 4.095); /* Auto-Width */
    
    margin-right: 0.5em;
    background-image: url('../../images/cv1.png');
    background-size: contain;
    background-position: center;
    background-repeat: no-repeat;
    vertical-align: middle; /* Align with Menu */
    
    border-bottom: none;
    transition: background-image 0.2s ease-in-out;
}

#header nav .cv-button-img:hover { background-image: url('../../images/cv2.png'); }
#header nav .cv-button-img .label { display: none; }

/* MOBILE OVERRIDE: 10% SMALLER */
@media screen and (max-width: 736px) {
    #header nav .cv-button-img {
         /* 2.5em = ~10% smaller than the original 2.75em mobile height */
         height: 2.5em; 
         width: calc(2.5em * 4.095);
    }
}


/* --- 16. Custom Thumbnails (Optimized for Speed) --- */
.vimeo-custom-thumb {
    position: absolute; 
    top: 0; 
    left: 0; 
    width: 100%; 
    height: 100%;
    
    /* NEW: Ensures the <img> tag fills the box perfectly without stretching */
    object-fit: cover; 
    
    z-index: 90; 
    transition: opacity 0.5s ease, visibility 0.5s;
    pointer-events: none; 
}

/* Hide thumb when playing */
.custom-video-wrapper:not(.is-paused) .vimeo-custom-thumb {
    opacity: 0; 
    visibility: hidden;
}

/* --- 21. Performance: Defer Offscreen Rendering --- */
/* This tells the browser: "Don't even calculate the layout for these videos until the user scrolls near them." */
.custom-video-wrapper {
    content-visibility: auto;
    contain-intrinsic-size: 100% 300px; /* Prevents the scrollbar from jumping */
}
/* --- 17. Banner Actor Button (Yellow Border) --- */

/* 1. Container Styling: Force Left Align & Remove Template Indentation */
#banner ul.actions { 
    margin-top: 1.5em; 
    margin-bottom: 0;
    
    /* Explicitly align flex items to the start (Left) */
    justify-content: flex-start; 
    
    /* Override default template negative margins to ensure it sits flush left */
    margin-left: 0;
    padding-left: 0;
}

/* 2. List Item Styling: Remove default padding */
#banner ul.actions li {
    padding-left: 0;
}

/* 3. The Button Styling */
#banner .actions #actor-site-button { 
    height: 3em; 
    line-height: 3em; 
    padding: 0 1.8em;
    
    /* Solid Yellow Box */
    box-shadow: inset 0 0 0 2px #f8c51d;
    color: #ffffff !important;
}

#banner .actions #actor-site-button:hover {
    /* Invert slightly on hover */
    color: #f8c51d !important;
    background-color: rgba(248, 197, 29, 0.05);
}

/* --- 18. Custom IMDB Icon in Footer --- */
ul.contact li.custom-imdb-icon:before {
    content: '' !important; 
    background-image: url('../../images/imdb.png');
    
    /* UPDATED: 2.4em fills 96% of the circle */
    background-size: 2.4em; 
    
    background-position: center;
    background-repeat: no-repeat;
    color: transparent !important;
    border: solid 2px rgba(255, 255, 255, 0.125) !important; /* Ensure circle border stays for IMDB too */
}
/* --- 20. Film Festival Layout Fix (v6 - Image & Credits Only) --- */

.festival-container {
    display: flex;
    flex-direction: column; /* Vertical Stack: Image top, Credits bottom */
    align-items: flex-start; /* Left Align */
    gap: 1.5em;
    margin-top: 2em;
    margin-bottom: 1.5em; /* Add space between credits and the Watch button */
    text-align: left;
}

.festival-laurel {
    flex: 0 0 auto;         
    width: 150px;           
    margin: 0; 
}

.festival-laurel img {
    width: 100%;
    height: auto;
    display: block;
}

.festival-content {
    display: block;
    width: 100%;
}

.festival-credits {
    font-size: 0.9em;
    opacity: 0.9;
    line-height: 1.6;
    color: #ffffff;
    display: block;
}

/* --- MOBILE SPECIFICS --- */
@media screen and (max-width: 736px) {
    .festival-laurel {
        width: 130px;
    }
}

/* --- 22. Mobile Fixes for Banner Button --- */
@media screen and (max-width: 480px) {
    #banner ul.actions {
        /* CRITICAL: 'align-items' handles left alignment when in column mode */
        display: flex !important;
        flex-direction: column !important;
        align-items: flex-start !important; 
        
        margin-left: 0 !important; 
        padding-left: 0 !important;
        width: 100% !important;
    }
    
    #banner ul.actions li {
        /* Override template's forcing of centered text */
        display: block !important;
        width: auto !important; 
        padding: 0 !important; 
        margin: 0 !important;
        text-align: left !important;
    }

    #banner ul.actions li .button {
        /* Stop the button from stretching 100% width */
        width: auto !important;
        display: inline-block !important;
        margin-left: 0 !important;
    }
}

/* --- 23. RESTORE FOOTER ICON DESIGN & CONTENT (EXPLICIT OVERRIDES) --- */

/* Step 1: Re-establish the Circle container. 
   We apply generic values here, but specific fonts in the next steps.
*/
ul.contact li:before {
    box-sizing: border-box;
    border-radius: 100%;
    border: solid 2px rgba(255, 255, 255, 0.125); 
    width: 2.5em;
    height: 2.5em;
    
    /* Positioning & Layout */
    position: absolute;
    top: 0;
    left: 0;
    display: inline-block;
    
    /* Text/Icon Alignment */
    line-height: 2.35em; 
    text-align: center;
    font-size: 0.8em;
    color: #ffffff;
    font-style: normal;
    
    /* SAFETY: Ensure it doesn't inherit Montserrat */
    font-family: inherit; 
}

/* Step 2: Explicitly force correct Font Family, Weight, and Content for each icon 
   The use of !important ensures we beat any conflicts with the template's default styles.
*/

/* Map Marker */
ul.contact li.fa-map-marker-alt:before { 
    content: "\f3c5" !important; 
    font-family: "Font Awesome 5 Free" !important; 
    font-weight: 900 !important; 
}

/* Envelope (Email) */
ul.contact li.fa-envelope:before { 
    content: "\f0e0" !important; 
    font-family: "Font Awesome 5 Free" !important; 
    font-weight: 900 !important; 
}

/* Download Icon */
ul.contact li.fa-download:before { 
    content: "\f019" !important; 
    font-family: "Font Awesome 5 Free" !important; 
    font-weight: 900 !important; 
}

/* LinkedIn (Requires 'Brands' font family) */
ul.contact li.fa-linkedin-in:before { 
    content: "\f0e1" !important; 
    font-family: "Font Awesome 5 Brands" !important; 
    font-weight: 400 !important; 
}

/* IMDB (Image Override) */
ul.contact li.custom-imdb-icon:before {
    content: '' !important; 
    background-image: url('../../images/imdb.png');
    background-size: 2.4em; 
    background-position: center;
    background-repeat: no-repeat;
    color: transparent !important; 
}
/* --- 24. Desktop Alignment Spacer --- */
/* Adjusted to 50px because the left description text is longer than the right */
.credit-alignment-spacer {
    height: 40px; 
    display: block;
}

/* Remove this space on mobile so it stacks naturally */
@media screen and (max-width: 736px) {
    .credit-alignment-spacer { display: none; } 
}