/*
Theme Name: Leather House
Theme URI: https://wpfrank.com/wordpress-themes/leather-house-premium/
Author: WP Frank
Author URI: https://wpfrank.com/
Description: Leather House is a sleek, fast, and SEO-friendly WordPress theme perfect for a wide range of websites including fashion stores, leather goods, handmade crafts, lifestyle and wellness brands, home décor, furniture shops, beauty salons, luxury product catalogs, personal portfolios, design agencies, barbershops, cafes, pet boutiques, and small businesses. Built for performance and Core Web Vitals, it is fully compatible with Gutenberg, Elementor, Bricks, Oxygen, and WooCommerce. With responsive design, RTL and translation readiness, and flexible customization options, Leather House empowers you to build a stylish, professional, and high-converting online presence. Experience the elegance and power of Leather House today at https://wpfrank.com/wordpress-themes/leather-house-premium/.
Version: 0.0.6
Tested up to: 6.4
Requires PHP: 5.6
License: GNU General Public License v2.0 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: leather-house
Tags: one-column, two-columns, right-sidebar, flexible-header, custom-background, custom-colors, custom-header, custom-menu, custom-logo, featured-image-header, featured-images, footer-widgets, full-width-template, sticky-post, theme-options, threaded-comments, translation-ready, blog, e-commerce, portfolio, editor-style, grid-layout

This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you have learned with others.
*/

/* gallery cross button style */
button.featherlight-close-icon.featherlight-close {
    background-color: var(--sp-primary);
    border: 1px solid var(--sp-white);
    top: 40px;
    right: 40px;
    border-radius: 0;
}

/* circle hover */
.is-style-circle figure.tiled-gallery__item:before {
    content: '';
    position: absolute;
    inset: 0;
    background: #000;
    border-radius: 100%;
    opacity: 0;
    visibility: hidden;
    transition: 0.65s;
}

.is-style-circle figure.tiled-gallery__item:hover:before,
.is-style-circle figure.tiled-gallery__item:focus:before {
    visibility: visible;
    opacity: 0.5;
}

/* circle spacing */
.wp-block-jetpack-tiled-gallery .tiled-gallery__row {
    margin-right: calc(-.4 * var(--bs-gutter-x));
    margin-left: calc(-.4 * var(--bs-gutter-x));
    --bs-gutter-x: 1.5rem;
}

.wp-block-jetpack-tiled-gallery .tiled-gallery__row > * {
    padding-right: calc(var(--bs-gutter-x) * .4);
    padding-left: calc(var(--bs-gutter-x) * .4);
}

.wp-block-jetpack-tiled-gallery .tiled-gallery__row:not(:last-child) {
    margin-bottom: 20px;
}

.wp-block-jetpack-tiled-gallery .tiled-gallery__row + .tiled-gallery__row {
    margin-top: 0;
}

.wp-block-jetpack-tiled-gallery .tiled-gallery__col + .tiled-gallery__col {
    margin-left: 0;
}

/* circle box shadow */
.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__item {
    border-radius: 50%;
    box-shadow: rgb(14 30 37 / 12%) 0 2px 4px 0, rgb(14 30 37 / 32%) 0 2px 16px 0;
}

.wp-block-jetpack-tiled-gallery.is-style-rectangular .tiled-gallery__item {
    width: 100% !important;
    height: 100% !important;
    box-shadow: rgb(14 30 37 / 12%) 0 2px 4px 0, rgb(14 30 37 / 32%) 0 2px 16px 0;
}

.wp-block-jetpack-tiled-gallery .tiled-gallery__item {
    box-shadow: rgb(14 30 37 / 12%) 0 2px 4px 0, rgb(14 30 37 / 32%) 0 2px 16px 0;
}

.wp-block-jetpack-tiled-gallery .tiled-gallery__gallery {
    justify-content: center;
}

.wp-block-jetpack-tiled-gallery.is-style-columns .tiled-gallery__item {
    width: 100% !important;
    margin-bottom: 20px;
}

.wp-block-jetpack-tiled-gallery.is-style-columns .tiled-gallery__item:last-child {
    margin-bottom: 0;
}

.wp-block-jetpack-tiled-gallery.is-style-columns .tiled-gallery__item {
    margin-top: 0;
}

.wp-block-table figcaption {
    text-align: center;
}

.sidebar .widget .wp-block-group .wp-block-image {
    margin-bottom: 0;
}

ul.wp-block-rss {
    list-style: disc;
}

.has-text-color a:hover,
.has-text-color a:focus {
    color: inherit;
}

.entry-content ul:last-child {
    margin-bottom: 0;
}

.wp-block-code.has-text-color code {
    color: inherit;
}

.sidebar .widget .wp-block-group .is-nowrap p {
    padding: 0;
}

/* Custom Css for Container */
.container-full {
    width: 100%;
    padding-right: 15px;
    padding-left: 15px;
    margin-right: auto;
    margin-left: auto;
}

@media (min-width: 576px) {
    .container-full {
        max-width: 540px;
    }
}

@media (min-width: 768px) {
    .container-full {
        max-width: 720px;
    }
}

@media (min-width: 992px) {
    .container-full {
        max-width: 1500px;
    }
}

@media (min-width: 1200px) {
    body.theme-boxed .container-full {
        max-width: 1470px;
        padding-left: 15px;
        padding-right: 15px;
    }
}

/* =========================================================
   DJ URBAN ELVIS CUSTOMISATION
   ========================================================= */

/* Color system and overrides */
:root {
    /* DJ brand colors */
    --dj-bg: #05040a;
    --dj-bg-alt: #11101a;
    --dj-surface: #181628;
    --dj-primary: #ff2b33;   /* red tone to match logo */
    --dj-primary-soft: rgba(255, 43, 51, 0.12);
    --dj-secondary: #11101a;
    --dj-accent: #ffffff;
    --dj-text-main: #f8f7ff;
    --dj-text-muted: #b4b1d5;
    --dj-border-soft: rgba(255, 255, 255, 0.08);

    /* Hook into existing theme variables */
    --sp-primary: var(--dj-primary);
    --sp-white: #ffffff;
}

/* Global body styling */
body {
    background-color: var(--dj-bg);
    color: var(--dj-text-main);
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
}

/* Standard content areas */
.site-content,
#content {
    background: radial-gradient(circle at top left, rgba(255, 43, 51, 0.12), transparent 55%),
                radial-gradient(circle at bottom right, rgba(255, 255, 255, 0.08), transparent 55%),
                var(--dj-bg);
}

/* Typography */
.entry-title,
.page-title,
h1, h2, h3, h4, h5, h6 {
    color: var(--dj-text-main);
    letter-spacing: 0.03em;
    text-transform: none;
}

.entry-title,
.page-title,
h1 {
    font-weight: 700;
}

/* Links */
a {
    color: var(--dj-primary);
    text-decoration: none;
    transition: color 0.2s ease, text-shadow 0.2s ease;
}

a:hover,
a:focus {
    color: var(--dj-accent);
    text-shadow: 0 0 8px rgba(255, 255, 255, 0.8);
}

/* Header and navigation */
.site-header {
    background: rgba(5, 4, 10, 0.96);
    backdrop-filter: blur(16px);
    border-bottom: 1px solid var(--dj-border-soft);
}

.site-branding .site-title a,
.site-branding .site-description {
    color: var(--dj-text-main);
}

.main-navigation a {
    color: var(--dj-text-muted);
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    font-size: 0.78rem;
}

.main-navigation li.current-menu-item > a,
.main-navigation a:hover,
.main-navigation a:focus {
    color: var(--dj-primary);
}

/* Booking call to action in menu */
.main-navigation .menu-item.booking-link > a {
    padding: 0.6rem 1.2rem;
    border-radius: 999px;
    border: 1px solid rgba(255, 43, 51, 0.7);
    background: linear-gradient(135deg, rgba(255, 43, 51, 0.25), rgba(255, 255, 255, 0.12));
    color: var(--dj-text-main);
}

.main-navigation .menu-item.booking-link > a:hover {
    border-color: var(--dj-accent);
    background: linear-gradient(135deg, rgba(255, 43, 51, 0.45), rgba(255, 255, 255, 0.24));
}

/* Mobile nav */
.menu-toggle {
    background: var(--dj-primary-soft);
    color: var(--dj-text-main);
    border-radius: 999px;
}

/* Buttons and booking emphasis */
button,
input[type="button"],
input[type="reset"],
input[type="submit"],
.button,
.wp-block-button__link,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button {
    background: linear-gradient(135deg, var(--dj-primary), #000000);
    border-radius: 999px;
    border: none;
    color: #ffffff;
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    padding: 0.8rem 1.8rem;
    box-shadow: 0 0 24px rgba(255, 43, 51, 0.45);
    transition: transform 0.15s ease, box-shadow 0.15s ease, opacity 0.15s ease, filter 0.15s ease;
}

button:hover,
input[type="button"]:hover,
input[type="reset"]:hover,
input[type="submit"]:hover,
.button:hover,
.wp-block-button__link:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover {
    transform: translateY(-1px) scale(1.01);
    box-shadow: 0 0 32px rgba(255, 255, 255, 0.6);
    filter: brightness(1.05);
}

/* Dedicated booking button utility */
.dj-booking-btn {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
}

.dj-booking-btn::after {
    content: "→";
    font-size: 0.9em;
}

/* Booking form styling */
.dj-booking-form,
.wpcf7-form,
.wpforms-form {
    background: rgba(17, 16, 26, 0.96);
    border-radius: 18px;
    padding: 2rem;
    border: 1px solid var(--dj-border-soft);
    box-shadow: 0 24px 60px rgba(0, 0, 0, 0.7);
}

.dj-booking-form h2,
.dj-booking-form h3 {
    margin-bottom: 1rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    font-size: 0.86rem;
    color: var(--dj-text-muted);
}

.dj-booking-form strong,
.dj-booking-form label {
    color: var(--dj-text-main);
}

/* Inputs */
input[type="text"],
input[type="email"],
input[type="tel"],
input[type="url"],
input[type="number"],
input[type="date"],
textarea,
select {
    background: #0b0a12;
    border-radius: 12px;
    border: 1px solid var(--dj-border-soft);
    color: var(--dj-text-main);
    padding: 0.7rem 1rem;
    width: 100%;
    transition: border-color 0.15s ease, box-shadow 0.15s ease, background 0.15s ease;
}

input[type="text"]:focus,
input[type="email"]:focus,
input[type="tel"]:focus,
input[type="url"]:focus,
input[type="number"]:focus,
input[type="date"]:focus,
textarea:focus,
select:focus {
    border-color: var(--dj-primary);
    box-shadow: 0 0 0 1px rgba(255, 43, 51, 0.3);
    outline: none;
}

/* Hero section for DJ home page */
.dj-hero {
    position: relative;
    padding: 6rem 1.5rem 4rem;
    background: radial-gradient(circle at top left, rgba(255, 43, 51, 0.45), transparent 60%),
                radial-gradient(circle at bottom right, rgba(255, 255, 255, 0.35), transparent 60%),
                linear-gradient(135deg, #05040a, #0b0818);
    color: var(--dj-text-main);
    overflow: hidden;
}

.dj-hero::before,
.dj-hero::after {
    content: "";
    position: absolute;
    border-radius: 999px;
    filter: blur(45px);
    opacity: 0.4;
    pointer-events: none;
}

.dj-hero::before {
    width: 280px;
    height: 280px;
    top: -80px;
    right: 5%;
    background: radial-gradient(circle, rgba(255, 43, 51, 0.85), transparent 70%);
}

.dj-hero::after {
    width: 320px;
    height: 320px;
    bottom: -120px;
    left: -40px;
    background: radial-gradient(circle, rgba(255, 255, 255, 0.9), transparent 70%);
}

.dj-hero-inner {
    position: relative;
    z-index: 1;
    max-width: 1100px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: minmax(0, 3fr) minmax(0, 2fr);
    gap: 3rem;
    align-items: center;
}

.dj-hero-title {
    font-size: clamp(2.4rem, 4vw, 3.2rem);
    line-height: 1.1;
    margin-bottom: 1rem;
}

.dj-hero-subtitle {
    font-size: 0.98rem;
    color: var(--dj-text-muted);
    max-width: 28rem;
}

.dj-hero-badges {
    display: flex;
    flex-wrap: wrap;
    gap: 0.6rem;
    margin: 1.6rem 0 2rem;
}

.dj-hero-badge {
    padding: 0.35rem 0.9rem;
    border-radius: 999px;
    font-size: 0.75rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    border: 1px solid rgba(255, 255, 255, 0.16);
    background: rgba(5, 4, 10, 0.7);
    color: var(--dj-text-muted);
}

.dj-hero-cta {
    display: flex;
    flex-wrap: wrap;
    gap: 0.8rem;
    align-items: center;
}

.dj-hero-secondary {
    font-size: 0.86rem;
    color: var(--dj-text-muted);
}

/* Hero image container */
.dj-hero-media {
    position: relative;
    border-radius: 24px;
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, 0.12);
    background: radial-gradient(circle at top, rgba(255, 255, 255, 0.05), transparent 60%),
                #0b0814;
    box-shadow: 0 28px 80px rgba(0, 0, 0, 0.85);
}

.dj-hero-media img {
    display: block;
    width: 100%;
    height: auto;
}

/* Floating label on hero image */
.dj-hero-media-label {
    position: absolute;
    left: 1.1rem;
    bottom: 1.1rem;
    padding: 0.45rem 0.75rem;
    border-radius: 999px;
    background: rgba(5, 4, 10, 0.8);
    color: var(--dj-text-main);
    font-size: 0.75rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

/* Service cards for packages */
.dj-packages {
    margin: 4rem auto;
    max-width: 1100px;
}

.dj-packages-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1.5rem;
}

.dj-package-card {
    background: linear-gradient(150deg, rgba(24, 22, 40, 0.96), rgba(9, 8, 20, 0.96));
    border-radius: 18px;
    padding: 1.8rem 1.6rem;
    border: 1px solid rgba(255, 255, 255, 0.06);
    box-shadow: 0 20px 50px rgba(0, 0, 0, 0.8);
    display: flex;
    flex-direction: column;
    gap: 0.9rem;
}

.dj-package-label {
    font-size: 0.8rem;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--dj-text-muted);
}

.dj-package-title {
    font-size: 1.15rem;
    font-weight: 600;
    color: #ffffff;
}

.dj-package-price {
    font-size: 1.45rem;
    font-weight: 700;
    color: var(--dj-primary);
}

.dj-package-meta {
    font-size: 0.85rem;
    color: var(--dj-text-muted);
}

.dj-package-list {
    list-style: none;
    margin: 0.6rem 0 1.2rem;
    padding: 0;
}

.dj-package-list li {
    position: relative;
    padding-left: 1.2rem;
    font-size: 0.9rem;
    color: var(--dj-text-main);
    margin-bottom: 0.3rem;
}

.dj-package-list li::before {
    content: "•";
    position: absolute;
    left: 0;
    top: 0;
    color: var(--dj-accent);
}

/* Highlight card for main package */
.dj-package-card.is-featured {
    border-color: rgba(255, 43, 51, 0.85);
    box-shadow: 0 30px 70px rgba(255, 43, 51, 0.45);
}

/* Testimonials section */
.dj-testimonials {
    max-width: 980px;
    margin: 4rem auto;
}

.dj-testimonial-card {
    background: rgba(17, 16, 26, 0.96);
    border-radius: 20px;
    padding: 1.6rem 1.8rem;
    border: 1px solid var(--dj-border-soft);
    position: relative;
    overflow: hidden;
}

.dj-testimonial-card::before {
    content: "“";
    position: absolute;
    font-size: 5rem;
    line-height: 1;
    color: rgba(255, 255, 255, 0.06);
    top: 0.2rem;
    right: 1.2rem;
}

.dj-testimonial-quote {
    font-size: 0.98rem;
    color: var(--dj-text-main);
}

.dj-testimonial-meta {
    margin-top: 0.8rem;
    font-size: 0.82rem;
    color: var(--dj-text-muted);
}

/* Gallery tweaks for DJ photos */
.wp-block-jetpack-tiled-gallery .tiled-gallery__item img {
    filter: contrast(1.05) saturate(1.1);
    transition: transform 0.35s ease, filter 0.35s ease;
}

.wp-block-jetpack-tiled-gallery .tiled-gallery__item:hover img {
    transform: scale(1.04);
    filter: contrast(1.15) saturate(1.25);
}

/* Footer styling */
.site-footer {
    background: #05040a;
    border-top: 1px solid var(--dj-border-soft);
    color: var(--dj-text-muted);
    padding-top: 2.5rem;
    padding-bottom: 2.5rem;
}

.site-footer a {
    color: var(--dj-text-muted);
}

.site-footer a:hover {
    color: var(--dj-primary);
}

/* Badge row in footer for partners etc */
.dj-footer-badges {
    display: flex;
    flex-wrap: wrap;
    gap: 0.7rem;
    margin-top: 1rem;
}

.dj-footer-badge {
    padding: 0.35rem 0.75rem;
    border-radius: 999px;
    border: 1px solid var(--dj-border-soft);
    font-size: 0.72rem;
    text-transform: uppercase;
    letter-spacing: 0.07em;
}

/* =========================================================
   LOGO AND CONTACT BRANDING FOR DJ URBAN ELVIS
   ========================================================= */

/* Logo sizing utility classes */
.dj-logo-sm {
    width: 80px;
    height: auto;
}

.dj-logo-md {
    width: 140px;
    height: auto;
}

.dj-logo-lg {
    width: 220px;
    height: auto;
}

/* Logo container glow */
.dj-logo-glow {
    display: inline-block;
    border-radius: 50%;
    padding: 6px;
    background: radial-gradient(
        circle,
        rgba(255, 43, 51, 0.5),
        rgba(2
