/*--------------------------------------------------------------
# Liva theme
# Warm showroom palette shared with the group's other display
# brand: cream surfaces, anthracite header/footer, red accent.
# Loaded after master.css and main.css and overrides them.
--------------------------------------------------------------*/

:root {
    --default-font: "Roboto", system-ui, -apple-system, "Segoe UI", "Helvetica Neue", Arial, sans-serif;
    --heading-font: "Raleway", sans-serif;
    --nav-font: "Poppins", sans-serif;

    --background-color: #ffffff;
    --default-color: #5f594f;
    --heading-color: #24272c;
    --accent-color: #c41717;
    --surface-color: #ffffff;
    --contrast-color: #ffffff;

    --anthracite: #1e2224;
    --sand: #a9a292;
    --cream: #fffbf0;

    --nav-color: #fffbf0;
    --nav-hover-color: #e2393c;
    --nav-mobile-background-color: #ffffff;
    --nav-dropdown-background-color: #ffffff;
    --nav-dropdown-color: #24272c;
    --nav-dropdown-hover-color: #c41717;

    --header-height: 96px;
}

@media (max-width: 1199px) {
    :root {
        --header-height: 80px;
    }
}

.light-background {
    --background-color: #ffffff;
    --surface-color: #ffffff;
}

.dark-background {
    --background-color: var(--anthracite);
    --default-color: #d9d3c5;
    --heading-color: #ffffff;
    --surface-color: #2a2f32;
    --contrast-color: #ffffff;
}

body {
    background-color: var(--background-color);
}

::selection {
    background: var(--accent-color);
    color: #fff;
}

/*--------------------------------------------------------------
# Header
--------------------------------------------------------------*/
.header {
    --background-color: var(--anthracite);
    background-color: var(--background-color);
    border-bottom: 2px solid rgba(169, 162, 146, 0.2);
}

.header .branding {
    min-height: var(--header-height);
    padding: 8px 0;
}

.header .logo img {
    max-height: 64px;
    transition: max-height 0.4s;
}

@media (max-width: 1199px) {
    .header .logo img {
        max-height: 54px;
    }
}

.scrolled .header {
    box-shadow: 0 4px 18px rgba(0, 0, 0, 0.25);
}

/* Pages with a photo hero/banner: transparent header until the page is scrolled */
.index-page:not(.scrolled) .header,
.has-hero:not(.scrolled) .header {
    background-color: transparent;
    border-bottom-color: transparent;
    box-shadow: none;
}

@media (min-width: 1200px) {
    .index-page:not(.scrolled) .header .logo img,
    .has-hero:not(.scrolled) .header .logo img {
        max-height: 80px;
    }

    .navmenu a,
    .navmenu a:focus {
        font-size: 15px;
        letter-spacing: 0.01em;
    }

    .navmenu>ul>li>a:before {
        background-color: var(--nav-hover-color);
    }

    .navmenu .megamenu-2 .desktop-megamenu {
        border: 1px solid rgba(169, 162, 146, 0.25);
    }
}

/* Pages start below the fixed header (was sized for the removed top bar) */
.top111 {
    margin-top: var(--header-height);
}

.topspace {
    margin-top: calc(var(--header-height) + 20px);
}

/* #id selector: products.css (loaded later on product pages) sets its own margin and height */
#breadcrumbs.breadcrumbs {
    margin-top: var(--header-height);
    height: auto;
    min-height: 80px;
    background-color: #ffffff;
    border-bottom: 1px solid #ececec;
}

@media (max-width: 767px) {
    #breadcrumbs.breadcrumbs .top-header {
        flex-direction: column;
        align-items: flex-start;
        gap: 6px;
    }

    #breadcrumbs.breadcrumbs .top-header ul {
        flex-wrap: wrap;
        font-size: 14px;
    }
}

/*--------------------------------------------------------------
# Shared elements
--------------------------------------------------------------*/
h1, h2, h3, h4, h5, h6 {
    font-family: var(--heading-font);
}

.section-title h2 {
    font-family: var(--nav-font);
    font-weight: 600;
    color: var(--heading-color);
}

.btn-theme {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 12px 28px;
    border-radius: 4px;
    background-color: var(--accent-color);
    color: #fff;
    font-family: var(--nav-font);
    font-weight: 500;
    font-size: 15px;
    transition: background-color 0.3s, gap 0.3s;
}

.btn-theme:hover,
.btn-theme:focus {
    background-color: #a11212;
    color: #fff;
    gap: 14px;
}

/*--------------------------------------------------------------
# Home: hero
--------------------------------------------------------------*/
.hero {
    position: relative;
    min-height: 100vh;
    min-height: 100dvh;
    padding: calc(var(--header-height) + 40px) 0 90px;
    display: flex;
    align-items: center;
    overflow: hidden;
    isolation: isolate;
}

.hero .hero-bg {
    position: absolute;
    inset: 0;
    z-index: -2;
}

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

/* Darkening so the white text stays readable over the bright showroom */
.hero::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(12, 14, 15, 0.55), rgba(12, 14, 15, 0.75));
    z-index: -1;
}

.hero h1 {
    margin: 0;
    font-family: var(--nav-font);
    font-size: 56px;
    font-weight: 700;
    line-height: 1.15;
    color: var(--cream);
    text-shadow: 0 2px 16px rgba(0, 0, 0, 0.35);
}

/* Red check before the headline; sized in em so it scales with the heading */
.hero h1 .hero-check {
    display: inline-block;
    width: 0.95em;
    height: 0.7em;
    margin-right: 0.22em;
    color: var(--accent-color);
    vertical-align: -0.02em;
    filter: drop-shadow(0 2px 8px rgba(0, 0, 0, 0.35));
}

.hero p {
    max-width: 900px;
    margin: 26px auto 0;
    font-size: 24px;
    font-weight: 400;
    line-height: 1.5;
    color: color-mix(in srgb, var(--cream), transparent 20%);
}

.hero .icon-box-container {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 14px;
    margin-top: 56px;
}

/* 140px keeps all eight boxes (7 categories + accessories) on one row on desktop */
.hero .icon-box {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: space-evenly;
    width: 140px;
    height: 140px;
    padding: 12px 10px;
    border: 1px solid color-mix(in srgb, var(--cream), transparent 75%);
    background-color: rgba(255, 255, 255, 0.14);
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
    text-align: center;
    transition: background-color 0.3s, border-color 0.3s, transform 0.3s;
    /* Boxes rise in one after another (--i is the box index, set in hero.blade.php).
       The animation uses `translate` so it does not fight the hover `transform`. */
    animation: hero-box-in 0.7s cubic-bezier(0.22, 1, 0.36, 1) both;
    animation-delay: calc(0.5s + var(--i, 0) * 0.09s);
}

@keyframes hero-box-in {
    from {
        opacity: 0;
        translate: 0 32px;
    }

    to {
        opacity: 1;
        translate: 0 0;
    }
}

@media (prefers-reduced-motion: reduce) {
    .hero .icon-box {
        animation: none;
    }
}

.hero .icon-box:hover,
.hero .icon-box:focus {
    background-color: rgba(255, 255, 255, 0.24);
    border-color: var(--accent-color);
    transform: translateY(-4px);
}

.hero .icon-box-image {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 76px;
    height: 76px;
    border-radius: 6px;
    background: #fff;
    overflow: hidden;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
}

.hero .icon-box-image img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.hero .icon-box h3 {
    margin: 8px 0 0;
    font-family: var(--nav-font);
    font-size: 14px;
    font-weight: 500;
    line-height: 1.25;
    color: var(--cream);
    text-shadow: 1px 1px 4px rgba(0, 0, 0, 0.8);
}

@media (max-width: 991px) {
    .hero h1 {
        font-size: 34px;
    }

    .hero p {
        font-size: 19px;
    }

    .hero .icon-box-container {
        gap: 12px;
        margin-top: 40px;
    }

    .hero .icon-box {
        width: 124px;
        height: 124px;
    }

    .hero .icon-box-image {
        width: 60px;
        height: 60px;
    }

    .hero .icon-box h3 {
        font-size: 13px;
    }
}

@media (max-width: 575px) {
    .hero h1 {
        font-size: 28px;
    }

    .hero p {
        font-size: 17px;
    }

    .hero .icon-box {
        width: calc(50% - 6px);
        max-width: 160px;
    }
}

/*--------------------------------------------------------------
# Home: introduction
--------------------------------------------------------------*/
.intro {
    padding: 90px 0 110px;
}

.intro .intro-card {
    background: var(--surface-color);
    box-shadow: 0 10px 40px rgba(36, 39, 44, 0.08);
}

.intro .intro-image {
    min-height: 380px;
    position: relative;
}

.intro .intro-image img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.intro .intro-content {
    padding: 56px 56px 56px 60px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
}

.intro-eyebrow {
    display: inline-block;
    font-family: var(--nav-font);
    font-size: 14px;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--accent-color);
}

.intro h2 {
    margin: 10px 0 20px;
    font-size: 34px;
    font-weight: 700;
    color: var(--heading-color);
}

.intro p {
    font-size: 17px;
    line-height: 1.75;
    margin-bottom: 28px;
}

@media (max-width: 1199px) {
    .intro .intro-content {
        padding: 40px 28px;
    }

    .intro h2 {
        font-size: 28px;
    }
}

/*--------------------------------------------------------------
# Footer
--------------------------------------------------------------*/
.footer.dark-background {
    --background-color: var(--anthracite);
    background:
        linear-gradient(rgba(20, 23, 24, 0.92), rgba(20, 23, 24, 0.96)),
        url("../img/hero/showroom.webp") center / cover no-repeat;
    border-top: 4px solid var(--accent-color);
}

.footer h4 {
    font-family: var(--nav-font);
    font-weight: 600;
    color: #fff;
}

.footer .footer-links ul a,
.footer .footer-contact p,
.footer .footer-contact a {
    color: #d9d3c5;
}

.footer .footer-links ul a:hover,
.footer .footer-contact a:hover {
    color: #fff;
}

.footer .social-links a {
    background: var(--sand);
    color: var(--anthracite);
    border-color: transparent;
}

.footer .social-links a:hover {
    background: var(--cream);
    color: var(--accent-color);
}

.footer .copyright {
    border-top: 1px solid rgba(169, 162, 146, 0.3);
}

.footer .copyright {
    background-color: transparent;
}

/*--------------------------------------------------------------
# Content pages (about us, parquet, ceramic, mattress)
--------------------------------------------------------------*/
.about .content header .badge {
    display: inline-block;
    margin-bottom: 10px;
    padding: 6px 14px;
    border-radius: 3px;
    background-color: var(--accent-color);
    color: #fff;
    font-family: var(--nav-font);
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.about .content header h1 {
    font-family: var(--nav-font);
    font-weight: 700;
    color: var(--heading-color);
}

/* Product category and accessories pages: plain white (the template used a
   faint red gradient that tints white-background product photos) */
.services {
    background: var(--background-color);
}

/*--------------------------------------------------------------
# Home: shared section headings
--------------------------------------------------------------*/
.home-heading {
    position: relative;
    margin: 0 0 14px;
    padding-bottom: 18px;
    text-align: center;
    font-family: var(--nav-font);
    font-size: 34px;
    font-weight: 700;
    color: var(--heading-color);
}

.home-heading::after {
    content: "";
    position: absolute;
    left: 50%;
    bottom: 0;
    width: 56px;
    height: 3px;
    margin-left: -28px;
    background: var(--accent-color);
}

.home-heading-light {
    color: #fff;
}

.home-subheading {
    max-width: 640px;
    margin: 0 auto 50px;
    text-align: center;
    font-size: 17px;
}

@media (max-width: 767px) {
    .home-heading {
        font-size: 27px;
    }
}

/*--------------------------------------------------------------
# Home: Liva in numbers
--------------------------------------------------------------*/
.stats {
    padding: 80px 0 90px;
    color: #d9d3c5;
    background:
        linear-gradient(rgba(20, 23, 24, 0.9), rgba(20, 23, 24, 0.94)),
        url("../img/hero/showroom.webp") center 70% / cover no-repeat;
}

.stats .home-heading {
    margin-bottom: 50px;
}

.stats .stat-item {
    height: 100%;
    padding: 30px 16px;
    text-align: center;
    border: 1px solid rgba(255, 255, 255, 0.12);
    background: rgba(255, 255, 255, 0.04);
    transition: border-color 0.3s, background-color 0.3s;
}

.stats .stat-item:hover {
    border-color: var(--accent-color);
    background: rgba(255, 255, 255, 0.07);
}

.stats .stat-item i {
    display: block;
    margin-bottom: 14px;
    font-size: 38px;
    line-height: 1;
    color: var(--accent-color);
}

.stats .stat-number {
    font-family: var(--nav-font);
    font-size: 44px;
    font-weight: 700;
    line-height: 1.1;
    color: #fff;
    font-variant-numeric: tabular-nums;
}

.stats .stat-item p {
    margin: 10px 0 0;
    font-family: var(--nav-font);
    font-size: 15px;
    font-weight: 500;
    letter-spacing: 0.02em;
}

@media (max-width: 767px) {
    .stats .stat-number {
        font-size: 32px;
    }

    .stats .stat-item i {
        font-size: 30px;
    }

    .stats .stat-item p {
        font-size: 13px;
    }
}

/*--------------------------------------------------------------
# Home: how we work
--------------------------------------------------------------*/
.process {
    padding: 90px 0 100px;
}

.process .process-steps {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 30px;
    position: relative;
}

/* Line joining the step icons on wide screens */
@media (min-width: 992px) {
    .process .process-steps::before {
        content: "";
        position: absolute;
        top: 44px;
        left: 12%;
        right: 12%;
        border-top: 2px dashed #e1ddd4;
    }
}

.process .process-step {
    position: relative;
    text-align: center;
}

.process .process-icon {
    position: relative;
    width: 88px;
    height: 88px;
    margin: 0 auto 22px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: #fff;
    border: 2px solid #ece8df;
    box-shadow: 0 8px 24px rgba(36, 39, 44, 0.08);
    transition: border-color 0.3s, transform 0.3s;
}

.process .process-step:hover .process-icon {
    border-color: var(--accent-color);
    transform: translateY(-4px);
}

.process .process-icon i {
    font-size: 34px;
    color: var(--heading-color);
}

.process .process-number {
    position: absolute;
    top: -4px;
    right: -6px;
    min-width: 32px;
    height: 32px;
    padding: 0 6px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 16px;
    background: var(--accent-color);
    color: #fff;
    font-family: var(--nav-font);
    font-size: 13px;
    font-weight: 600;
}

.process .process-step h3 {
    margin: 0 0 10px;
    font-family: var(--nav-font);
    font-size: 19px;
    font-weight: 600;
    color: var(--heading-color);
}

.process .process-step p {
    margin: 0;
    font-size: 15px;
    line-height: 1.7;
}

/*--------------------------------------------------------------
# Home: quote request band
--------------------------------------------------------------*/
.quote-band {
    padding: 56px 0;
    background: linear-gradient(120deg, #a11212, var(--accent-color) 55%, #d42424);
    color: #fff;
}

.quote-band .quote-band-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 30px;
}

.quote-band h2 {
    margin: 0;
    font-family: var(--nav-font);
    font-size: 30px;
    font-weight: 700;
    color: #fff;
}

.quote-band p {
    margin: 10px 0 0;
    font-size: 17px;
    color: rgba(255, 255, 255, 0.88);
}

.quote-band .quote-band-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
    flex-shrink: 0;
}

.quote-band .btn-quote,
.quote-band .btn-quote-outline {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 13px 26px;
    border-radius: 4px;
    font-family: var(--nav-font);
    font-size: 15px;
    font-weight: 600;
    white-space: nowrap;
    transition: background-color 0.3s, color 0.3s, gap 0.3s;
}

.quote-band .btn-quote {
    background: #fff;
    color: var(--accent-color);
}

.quote-band .btn-quote:hover {
    background: var(--anthracite);
    color: #fff;
    gap: 14px;
}

.quote-band .btn-quote-outline {
    border: 2px solid rgba(255, 255, 255, 0.7);
    color: #fff;
}

.quote-band .btn-quote-outline:hover {
    border-color: #fff;
    background: rgba(255, 255, 255, 0.12);
    color: #fff;
}

@media (max-width: 991px) {
    .quote-band .quote-band-inner {
        flex-direction: column;
        align-items: flex-start;
    }

    .quote-band h2 {
        font-size: 24px;
    }
}

/* The quote band sits directly on the footer: drop the footer's red top line */
.index-page .footer.dark-background,
.has-hero .footer.dark-background {
    border-top: 0;
}

/*--------------------------------------------------------------
# Inner page photo banner (sections/page-banner.blade.php)
--------------------------------------------------------------*/
.page-banner {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    padding: calc(var(--header-height) + 70px) 0 80px;
    color: #fff;
}

.page-banner .page-banner-bg {
    position: absolute;
    inset: 0;
    z-index: -2;
}

.page-banner .page-banner-bg img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 40%;
}

.page-banner::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    background: linear-gradient(90deg, rgba(12, 14, 15, 0.88) 0%, rgba(12, 14, 15, 0.7) 55%, rgba(12, 14, 15, 0.5) 100%);
}

.page-banner .page-banner-crumbs {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 16px;
    font-family: var(--nav-font);
    font-size: 14px;
    color: rgba(255, 255, 255, 0.75);
}

.page-banner .page-banner-crumbs a {
    color: rgba(255, 255, 255, 0.75);
}

.page-banner .page-banner-crumbs a:hover {
    color: #fff;
}

.page-banner .page-banner-crumbs i {
    font-size: 11px;
    color: var(--accent-color);
}

.page-banner h1 {
    position: relative;
    margin: 0;
    padding-left: 22px;
    font-family: var(--nav-font);
    font-size: 48px;
    font-weight: 700;
    color: #fff;
}

.page-banner h1::before {
    content: "";
    position: absolute;
    left: 0;
    top: 12%;
    bottom: 12%;
    width: 5px;
    background: var(--accent-color);
}

.page-banner p {
    max-width: 640px;
    margin: 16px 0 0 22px;
    font-size: 20px;
    color: rgba(255, 255, 255, 0.85);
}

@media (max-width: 767px) {
    .page-banner {
        padding: calc(var(--header-height) + 40px) 0 50px;
    }

    .page-banner h1 {
        font-size: 32px;
    }

    .page-banner p {
        font-size: 17px;
    }
}

/*--------------------------------------------------------------
# About: who we are
--------------------------------------------------------------*/
.about-who {
    padding: 100px 0 90px;
}

.about-who .about-who-image {
    position: relative;
    /* keeps the frame (::before, z-index -1) behind the photo but above the section */
    isolation: isolate;
    margin: 0 30px 30px 0;
}

/* Offset red frame behind the photo */
.about-who .about-who-image::before {
    content: "";
    position: absolute;
    inset: 30px -30px -30px 30px;
    border: 3px solid var(--accent-color);
    z-index: -1;
}

.about-who .about-who-image img {
    width: 100%;
    aspect-ratio: 5 / 4;
    object-fit: cover;
    display: block;
    box-shadow: 0 16px 40px rgba(36, 39, 44, 0.15);
}

.about-who .about-badge {
    position: absolute;
    left: -20px;
    bottom: 40px;
    min-width: 170px;
    padding: 20px 24px;
    background: var(--accent-color);
    color: #fff;
    box-shadow: 0 12px 30px rgba(196, 23, 23, 0.35);
}

.about-who .about-badge strong {
    display: block;
    font-family: var(--nav-font);
    font-size: 46px;
    font-weight: 700;
    line-height: 1;
}

.about-who .about-badge span {
    display: block;
    margin-top: 6px;
    font-family: var(--nav-font);
    font-size: 14px;
    font-weight: 500;
    letter-spacing: 0.04em;
}

.about-who .about-who-content h2 {
    margin: 10px 0 22px;
    font-family: var(--nav-font);
    font-size: 36px;
    font-weight: 700;
    color: var(--heading-color);
}

.about-who .about-who-content p {
    font-size: 17px;
    line-height: 1.8;
}

@media (max-width: 991px) {
    .about-who {
        padding: 60px 0;
    }

    .about-who .about-badge {
        left: 16px;
        bottom: 16px;
        min-width: 0;
        padding: 14px 18px;
    }

    .about-who .about-badge strong {
        font-size: 34px;
    }

    .about-who .about-who-content h2 {
        font-size: 28px;
    }
}

/*--------------------------------------------------------------
# About: vision and mission
--------------------------------------------------------------*/
.about-vm {
    padding: 0 0 90px;
}

.about-vm .vm-card {
    height: 100%;
    padding: 40px 36px;
    background: #fff;
    border: 1px solid #ece8df;
    border-top: 4px solid var(--accent-color);
    box-shadow: 0 10px 30px rgba(36, 39, 44, 0.06);
}

.about-vm .vm-card i {
    font-size: 40px;
    line-height: 1;
    color: var(--accent-color);
}

.about-vm .vm-card h3 {
    margin: 18px 0 12px;
    font-family: var(--nav-font);
    font-size: 24px;
    font-weight: 700;
    color: var(--heading-color);
}

.about-vm .vm-card p {
    margin: 0;
    font-size: 18px;
    line-height: 1.7;
}

/*--------------------------------------------------------------
# About: values
--------------------------------------------------------------*/
.about-values {
    padding: 90px 0 100px;
    background: #f7f7f7;
}

.about-values .home-heading {
    margin-bottom: 50px;
}

.about-values .values-grid {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 24px;
}

.about-values .value-card {
    flex: 0 1 calc((100% - 48px) / 3);
    min-width: 260px;
    padding: 34px 30px;
    background: #fff;
    border-bottom: 3px solid transparent;
    box-shadow: 0 8px 24px rgba(36, 39, 44, 0.06);
    transition: border-color 0.3s, transform 0.3s, box-shadow 0.3s;
}

.about-values .value-card:hover {
    border-bottom-color: var(--accent-color);
    transform: translateY(-4px);
    box-shadow: 0 16px 34px rgba(36, 39, 44, 0.1);
}

.about-values .value-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 60px;
    height: 60px;
    border-radius: 50%;
    background: color-mix(in srgb, var(--accent-color), transparent 90%);
    color: var(--accent-color);
    font-size: 26px;
}

.about-values .value-card h3 {
    margin: 20px 0 10px;
    font-family: var(--nav-font);
    font-size: 19px;
    font-weight: 600;
    color: var(--heading-color);
}

.about-values .value-card p {
    margin: 0;
    font-size: 15px;
    line-height: 1.7;
}

@media (max-width: 767px) {
    .about-values .value-card {
        flex-basis: 100%;
        min-width: 0;
    }
}

/*--------------------------------------------------------------
# About: collaboration
--------------------------------------------------------------*/
.about-collab {
    padding: 100px 0;
}

.about-collab .collab-box {
    position: relative;
    max-width: 920px;
    margin: 0 auto;
    padding: 50px 60px;
    text-align: center;
    background: var(--anthracite);
    color: #d9d3c5;
}

.about-collab .collab-box > i {
    position: absolute;
    top: -34px;
    left: 50%;
    transform: translateX(-50%);
    width: 68px;
    height: 68px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: var(--accent-color);
    color: #fff;
    font-size: 34px;
}

.about-collab h2 {
    margin: 10px 0 20px;
    font-family: var(--nav-font);
    font-size: 28px;
    font-weight: 700;
    color: #fff;
}

.about-collab .collab-text p {
    margin: 0;
    font-size: 18px;
    line-height: 1.8;
}

.about-collab .collab-text strong {
    color: #fff;
}

@media (max-width: 767px) {
    .about-collab .collab-box {
        padding: 50px 24px 36px;
    }
}

/*--------------------------------------------------------------
# Products menu (layouts/navmenu.blade.php, js/products-menu.js)
--------------------------------------------------------------*/
.products-menu > .title-dropdown::after {
    content: "\F282"; /* bi-chevron-down */
    font-family: "bootstrap-icons";
    font-size: 11px;
    margin-left: 6px;
    transition: transform 0.3s;
}

.products-menu > .title-dropdown.is-current {
    color: var(--nav-hover-color);
}

/* The header sets --heading-color to white; the menu panels are light. */
.products-menu .pm-panel,
.products-menu .pm-mobile {
    --heading-color: #24272c;
}

/* Shared: search box */
.pm-search {
    position: relative;
}

.pm-search > .bi-search {
    position: absolute;
    left: 14px;
    top: 21px;
    transform: translateY(-50%);
    font-size: 15px;
    line-height: 1;
    color: #8a857b;
    pointer-events: none;
}

.pm-search .pm-search-input {
    width: 100%;
    height: 42px;
    padding: 0 14px 0 40px;
    border: 1px solid #dedad2;
    border-radius: 4px;
    background: #fff;
    font-family: var(--default-font);
    font-size: 14px;
    color: var(--heading-color);
    transition: border-color 0.2s, box-shadow 0.2s;
}

.pm-search .pm-search-input:focus {
    outline: none;
    border-color: var(--accent-color);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent-color), transparent 85%);
}

.pm-search .pm-search-results {
    margin-top: 8px;
    max-height: 320px;
    overflow-y: auto;
    border: 1px solid #ece8df;
    border-radius: 4px;
    background: #fff;
}

.navmenu .pm-search .pm-search-results a {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 10px;
    padding: 8px 10px;
    border-bottom: 1px solid #f1eee8;
    color: var(--heading-color);
    font-size: 14px;
    white-space: normal;
}

.navmenu .pm-search .pm-search-results a:last-child {
    border-bottom: 0;
}

.navmenu .pm-search .pm-search-results a:hover,
.navmenu .pm-search .pm-search-results a.is-active {
    background: #fbf3f3;
    color: var(--accent-color);
}

.pm-search .pm-search-results img {
    flex: 0 0 auto;
    width: 44px;
    height: 32px;
    object-fit: contain;
    background: #fff;
}

.pm-search .pm-search-results strong {
    display: block;
    font-weight: 600;
    line-height: 1.2;
}

.pm-search .pm-search-results small {
    display: block;
    font-size: 12px;
    color: #8a857b;
}

.pm-search .pm-no-results {
    margin: 0;
    padding: 12px;
    font-size: 13px;
    color: #8a857b;
}

/* Desktop: full-width panel */
@media (min-width: 1200px) {
    .products-menu .pm-mobile {
        display: none !important;
    }

    .products-menu:hover > .title-dropdown::after,
    .products-menu:focus-within > .title-dropdown::after {
        transform: rotate(180deg);
    }

    .products-menu .pm-panel {
        position: absolute;
        top: calc(100% + 8px);
        left: 12px;
        right: 12px;
        z-index: 99;
        display: grid;
        grid-template-columns: 210px minmax(0, 1fr) 280px;
        background: #fff;
        border-top: 3px solid var(--accent-color);
        box-shadow: 0 24px 50px rgba(0, 0, 0, 0.18);
        opacity: 0;
        visibility: hidden;
        transform: translateY(10px);
        transition: opacity 0.25s, transform 0.25s, visibility 0.25s;
        white-space: normal;
    }

    /* Invisible bridge so the panel stays open while the mouse moves down to it */
    .products-menu .pm-panel::before {
        content: "";
        position: absolute;
        left: 0;
        right: 0;
        bottom: 100%;
        height: 30px;
    }

    .products-menu:hover > .pm-panel,
    .products-menu:focus-within > .pm-panel {
        opacity: 1;
        visibility: visible;
        transform: none;
    }

    /* Sector tabs */
    .products-menu .pm-sectors {
        display: flex;
        flex-direction: column;
        padding: 18px 0;
        background: #f7f6f3;
        border-right: 1px solid #ece8df;
    }

    .products-menu .pm-sector {
        display: flex;
        align-items: center;
        gap: 10px;
        width: 100%;
        padding: 13px 22px;
        border: 0;
        border-left: 3px solid transparent;
        background: transparent;
        text-align: left;
        font-family: var(--nav-font);
        font-size: 14px;
        font-weight: 500;
        color: var(--heading-color);
        transition: background-color 0.2s, color 0.2s, border-color 0.2s;
    }

    .products-menu .pm-sector i {
        font-size: 16px;
        color: #8a857b;
    }

    .products-menu .pm-sector:hover,
    .products-menu .pm-sector.active {
        background: #fff;
        border-left-color: var(--accent-color);
        color: var(--accent-color);
    }

    .products-menu .pm-sector.active i,
    .products-menu .pm-sector:hover i {
        color: var(--accent-color);
    }

    /* Category cards */
    .products-menu .pm-content {
        padding: 24px 26px;
        max-height: calc(100vh - var(--header-height) - 60px);
        overflow-y: auto;
    }

    .products-menu .pm-grid {
        display: grid;
        grid-template-columns: repeat(4, minmax(0, 1fr));
        gap: 22px 20px;
    }

    .navmenu .products-menu .pm-card-head {
        display: flex;
        align-items: center;
        justify-content: flex-start;
        gap: 10px;
        padding: 0 0 10px;
        margin-bottom: 8px;
        border-bottom: 1px solid #ece8df;
        color: var(--heading-color);
    }

    .products-menu .pm-card-head img {
        flex: 0 0 auto;
        width: 48px;
        height: 48px;
        object-fit: contain;
        border: 1px solid #ece8df;
        border-radius: 4px;
        background: #fff;
    }

    .products-menu .pm-card-head strong {
        display: block;
        font-family: var(--nav-font);
        font-size: 14px;
        font-weight: 600;
        line-height: 1.25;
        white-space: normal;
    }

    .products-menu .pm-card-head small {
        display: block;
        margin-top: 2px;
        font-size: 12px;
        color: #8a857b;
        white-space: normal;
    }

    .navmenu .products-menu .pm-card-head:hover strong {
        color: var(--accent-color);
    }

    .navmenu .products-menu .pm-card ul {
        display: block;
        margin: 0;
        padding: 0;
        list-style: none;
    }

    .navmenu .products-menu .pm-card li {
        padding: 0;
    }

    .navmenu .products-menu .pm-card li a {
        display: block;
        position: relative;
        padding: 4px 0 4px 12px;
        font-family: var(--default-font);
        font-size: 13.5px;
        font-weight: 400;
        color: #5f594f;
        white-space: normal;
    }

    .navmenu .products-menu .pm-card li a::before {
        content: "";
        position: absolute;
        left: 0;
        top: 50%;
        width: 5px;
        height: 5px;
        margin-top: -2px;
        border-radius: 50%;
        background: #d1ccc2;
        visibility: visible;
        bottom: auto;
        transition: background-color 0.2s;
    }

    .navmenu .products-menu .pm-card li a:hover {
        color: var(--accent-color);
    }

    .navmenu .products-menu .pm-card li a:hover::before {
        background: var(--accent-color);
    }

    .navmenu .products-menu .pm-view-all {
        display: inline-flex;
        align-items: center;
        justify-content: flex-start;
        gap: 6px;
        margin-top: 6px;
        padding: 0;
        font-size: 13px;
        font-weight: 600;
        color: var(--accent-color);
    }

    .navmenu .products-menu .pm-view-all i {
        font-size: 12px;
        margin: 0;
    }

    /* Other sectors: one large card */
    .navmenu .products-menu .pm-sector-card {
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        justify-content: center;
        gap: 10px;
        min-height: 220px;
        padding: 30px;
        border: 1px solid #ece8df;
        background: #faf9f6;
        color: var(--heading-color);
        white-space: normal;
    }

    .products-menu .pm-sector-card > i {
        font-size: 40px;
        color: var(--accent-color);
    }

    .products-menu .pm-sector-card strong {
        font-family: var(--nav-font);
        font-size: 22px;
        font-weight: 600;
    }

    .products-menu .pm-sector-card span {
        display: inline-flex;
        align-items: center;
        gap: 6px;
        font-size: 14px;
        font-weight: 600;
        color: var(--accent-color);
    }

    .navmenu .products-menu .pm-sector-card:hover {
        border-color: var(--accent-color);
    }

    /* Right column: search + call to action */
    .products-menu .pm-side {
        display: flex;
        flex-direction: column;
        gap: 18px;
        padding: 24px 22px;
        background: #faf9f6;
        border-left: 1px solid #ece8df;
    }

    .products-menu .pm-cta {
        margin-top: auto;
        padding: 20px;
        background: var(--anthracite);
        color: #d9d3c5;
    }

    .products-menu .pm-cta strong {
        display: block;
        font-family: var(--nav-font);
        font-size: 16px;
        font-weight: 600;
        color: #fff;
    }

    .products-menu .pm-cta p {
        margin: 8px 0 14px;
        font-size: 13px;
        line-height: 1.6;
    }

    .navmenu .products-menu .pm-cta a {
        display: inline-flex;
        align-items: center;
        justify-content: flex-start;
        gap: 8px;
        padding: 9px 16px;
        border-radius: 4px;
        background: var(--accent-color);
        color: #fff;
        font-size: 13px;
        font-weight: 600;
    }

    .navmenu .products-menu .pm-cta a:hover {
        background: #a11212;
        color: #fff;
    }

    .navmenu .products-menu .pm-cta a i {
        font-size: 12px;
        margin: 0;
    }
}

/* Mobile: search + accordion inside the slide-down menu */
@media (max-width: 1199px) {
    .products-menu .pm-panel {
        display: none;
    }

    .products-menu .pm-mobile {
        display: none;
        padding: 6px 20px 12px;
    }

    .products-menu .pm-mobile.dropdown-active {
        display: block;
    }

    /* The legacy mobile menu styles every icon inside an .active item as a red, rotated
       badge; the products menu is .active while open, so reset its icons. */
    .navmenu .products-menu .pm-mobile i {
        width: auto;
        height: auto;
        margin: 0;
        border-radius: 0;
        background: none;
        color: inherit;
        transform: none;
    }

    .navmenu .products-menu .pm-mobile .pm-search > .bi-search {
        transform: translateY(-50%);
        color: #8a857b;
    }

    .navmenu .products-menu .pm-mobile .pm-acc.is-open .pm-acc-toggle i {
        transform: rotate(180deg);
    }

    .products-menu.active > .title-dropdown::after {
        transform: rotate(180deg);
    }

    .products-menu .pm-mobile .pm-search {
        margin-bottom: 12px;
    }

    .products-menu .pm-mobile-sector {
        margin: 6px 0 4px;
        font-family: var(--nav-font);
        font-size: 12px;
        font-weight: 600;
        letter-spacing: 0.1em;
        text-transform: uppercase;
        color: #8a857b;
    }

    .products-menu .pm-acc {
        border-bottom: 1px solid #f0ede7;
    }

    .products-menu .pm-acc-toggle {
        display: flex;
        align-items: center;
        justify-content: space-between;
        width: 100%;
        padding: 11px 0;
        border: 0;
        background: transparent;
        text-align: left;
        font-family: var(--nav-font);
        font-size: 15px;
        font-weight: 500;
        color: var(--heading-color);
    }

    .products-menu .pm-acc-toggle small {
        font-weight: 400;
        color: #8a857b;
    }

    .products-menu .pm-acc-toggle i {
        font-size: 12px;
        transition: transform 0.25s;
    }

    .products-menu .pm-acc.is-open .pm-acc-toggle {
        color: var(--accent-color);
    }

    .products-menu .pm-acc.is-open .pm-acc-toggle i {
        transform: rotate(180deg);
    }

    .products-menu .pm-acc-body {
        display: none;
        padding: 0 0 10px 12px;
        border-left: 2px solid var(--accent-color);
        margin-bottom: 10px;
    }

    .products-menu .pm-acc.is-open .pm-acc-body {
        display: block;
    }

    .navmenu .products-menu .pm-acc-body a,
    .navmenu .products-menu .pm-mobile-link {
        display: block;
        padding: 7px 0;
        font-size: 14.5px;
        font-weight: 400;
        white-space: normal;
        color: #5f594f;
    }

    .navmenu .products-menu .pm-mobile-link {
        padding: 11px 0;
        border-bottom: 1px solid #f0ede7;
        font-family: var(--nav-font);
        font-size: 15px;
        font-weight: 500;
        color: var(--heading-color);
    }

    .navmenu .products-menu .pm-acc-body a.pm-view-all {
        font-weight: 600;
        color: var(--accent-color);
    }
}

/*--------------------------------------------------------------
# Mobile menu drawer (layouts/navmenu.blade.php; below 1200px)
# Items marked .mm-only exist only in the drawer.
--------------------------------------------------------------*/
@media (min-width: 1200px) {
    .navmenu .mm-only,
    .navmenu .mm-icon {
        display: none !important;
    }

    .navmenu .lang-switch {
        display: flex;
        gap: 6px;
    }

    .navmenu .lang-switch span {
        display: none;
    }

    .navmenu .lang-switch a:not(.is-current) {
        opacity: 0.6;
    }

    .navmenu .lang-switch a:hover {
        opacity: 1;
    }
}

@media (max-width: 1199px) {
    /* Dimmed page behind the drawer */
    .mobile-nav-active .navmenu {
        background: rgba(15, 17, 18, 0.6);
        backdrop-filter: blur(2px);
        -webkit-backdrop-filter: blur(2px);
    }

    /* The drawer itself, sliding in from the right */
    .mobile-nav-active .navmenu > ul {
        display: flex;
        flex-direction: column;
        inset: 0 0 0 auto;
        width: min(86vw, 380px);
        margin: 0;
        padding: 0;
        border: 0;
        border-radius: 0;
        background: #fff;
        box-shadow: -12px 0 40px rgba(0, 0, 0, 0.25);
        overflow-y: auto;
        overscroll-behavior: contain;
        animation: mm-slide-in 0.3s cubic-bezier(0.22, 1, 0.36, 1);
    }

    @keyframes mm-slide-in {
        from {
            transform: translateX(100%);
        }

        to {
            transform: none;
        }
    }

    /* Close button (the hamburger turns into an X) sits in the drawer header */
    .mobile-nav-active .mobile-nav-toggle {
        top: 26px;
        right: 20px;
        color: #24272c;
        font-size: 30px;
    }

    .navmenu .mm-head {
        padding: 18px 20px;
        border-bottom: 1px solid #f1eee8;
    }

    /* Not a menu row: no row padding or divider */
    .navmenu .mm-head .mm-logo,
    .navmenu .mm-contact .mm-mail,
    .navmenu .mm-contact .mm-whatsapp {
        border-bottom: 0;
    }

    .navmenu .mm-head .mm-logo {
        display: inline-block;
        width: auto;
        padding: 0;
    }

    .navmenu .mm-head img {
        height: 46px;
        width: auto;
    }

    .navmenu .mm-search {
        padding: 14px 20px 10px;
    }

    /* Menu items */
    .navmenu > ul > li > a,
    .navmenu > ul > li > button.title-dropdown {
        display: flex;
        align-items: center;
        justify-content: flex-start;
        gap: 14px;
        width: 100%;
        padding: 14px 20px;
        border-bottom: 1px solid #f1eee8;
        font-family: var(--nav-font);
        font-size: 16px;
        font-weight: 500;
        color: #24272c;
    }

    .navmenu > ul > li > a.active,
    .navmenu > ul > li > button.title-dropdown.is-current {
        color: var(--accent-color);
        background: #fbf6f6;
        box-shadow: inset 3px 0 0 var(--accent-color);
    }

    .navmenu a .mm-icon,
    .navmenu button .mm-icon {
        width: 22px;
        height: auto;
        margin: 0;
        border-radius: 0;
        background: none;
        font-size: 18px;
        line-height: 1;
        color: #8a857b;
        transform: none;
    }

    .navmenu a.active .mm-icon,
    .navmenu button.is-current .mm-icon {
        color: var(--accent-color);
    }

    .products-menu > .title-dropdown::after {
        margin-left: auto;
    }

    .products-menu .pm-mobile {
        padding: 4px 20px 10px 56px;
        border-bottom: 1px solid #f1eee8;
    }

    /* Language switch */
    .navmenu .lang-switch {
        display: flex;
        gap: 10px;
        padding: 16px 20px;
    }

    .navmenu .lang-switch a {
        flex: 1;
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 8px;
        padding: 10px;
        border: 1px solid #e6e2da;
        border-radius: 6px;
        font-size: 14px;
        font-weight: 600;
        color: #5f594f;
    }

    .navmenu .lang-switch a.is-current {
        border-color: var(--accent-color);
        background: #fbf6f6;
        color: var(--accent-color);
    }

    .navmenu .lang-switch img {
        width: 20px;
    }

    /* Quick contact at the bottom of the drawer */
    .navmenu .mm-contact {
        margin-top: auto;
        padding: 20px;
        background: #f7f6f3;
        border-top: 1px solid #ece8df;
    }

    .navmenu .mm-actions {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 10px;
    }

    .navmenu .mm-actions a {
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 8px;
        padding: 12px 8px;
        border-radius: 6px;
        font-family: var(--nav-font);
        font-size: 14px;
        font-weight: 600;
        white-space: nowrap;
        color: #fff;
    }

    .navmenu .mm-actions .mm-call {
        background: var(--anthracite);
    }

    .navmenu .mm-actions .mm-quote {
        background: var(--accent-color);
    }

    .navmenu .mm-actions a:hover {
        color: #fff;
        opacity: 0.9;
    }

    .navmenu .mm-contact .mm-whatsapp {
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 8px;
        margin-top: 10px;
        padding: 12px 8px;
        border-radius: 6px;
        background: #1fa855;
        font-family: var(--nav-font);
        font-size: 14px;
        font-weight: 600;
        color: #fff;
    }

    .navmenu .mm-contact .mm-whatsapp:hover {
        color: #fff;
        opacity: 0.9;
    }

    .navmenu .mm-contact .mm-mail {
        display: flex;
        align-items: center;
        justify-content: flex-start;
        gap: 8px;
        margin-top: 14px;
        padding: 0;
        font-size: 14px;
        font-weight: 400;
        color: #5f594f;
    }

    .navmenu .mm-social {
        display: flex;
        gap: 10px;
        margin-top: 12px;
    }

    .navmenu .mm-social a {
        display: flex;
        align-items: center;
        justify-content: center;
        width: 38px;
        height: 38px;
        padding: 0;
        border: 1px solid #e6e2da;
        border-radius: 50%;
        background: #fff;
        color: #24272c;
    }

    /* Undo the legacy round red icon badges inside the drawer's contact links */
    .navmenu .mm-contact a i,
    .navmenu .lang-switch a i {
        width: auto;
        height: auto;
        margin: 0;
        border-radius: 0;
        background: none;
        font-size: 16px;
        line-height: 1;
        color: inherit;
        transform: none;
    }
}

/*--------------------------------------------------------------
# Media gallery (media.blade.php)
--------------------------------------------------------------*/
.media-gallery {
    padding: 0 0 90px;
}

/* Filters stay under the header while scrolling through the photos */
.media-gallery .media-filters {
    position: sticky;
    top: var(--header-height);
    z-index: 5;
    margin-bottom: 30px;
    padding: 16px 0;
    background: rgba(255, 255, 255, 0.96);
    border-bottom: 1px solid #ece8df;
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
}

.media-gallery .portfolio-filters {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 8px;
    margin: 0;
}

.media-gallery .portfolio-filters button {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 9px 16px;
    border: 1px solid #e6e2da;
    border-radius: 50px;
    background: #fff;
    font-family: var(--nav-font);
    font-size: 14px;
    font-weight: 500;
    line-height: 1.2;
    color: var(--heading-color);
    cursor: pointer;
    transition: background-color 0.2s, border-color 0.2s, color 0.2s;
}

.media-gallery .portfolio-filters button:focus-visible {
    outline: 2px solid var(--accent-color);
    outline-offset: 2px;
}

/* Tiles fade in when a filter shows them */
.media-gallery .media-item.is-entering {
    animation: media-in 0.35s ease-out;
}

@keyframes media-in {
    from {
        opacity: 0;
        transform: translateY(8px);
    }

    to {
        opacity: 1;
        transform: none;
    }
}

.media-gallery .portfolio-filters button span {
    min-width: 22px;
    padding: 2px 7px;
    border-radius: 11px;
    background: #f1eee8;
    font-size: 12px;
    font-weight: 600;
    text-align: center;
    color: #5f594f;
}

.media-gallery .portfolio-filters button:hover {
    border-color: var(--accent-color);
    color: var(--accent-color);
}

.media-gallery .portfolio-filters button.filter-active {
    border-color: var(--accent-color);
    background: var(--accent-color);
    color: #fff;
}

.media-gallery .portfolio-filters button.filter-active span {
    background: rgba(255, 255, 255, 0.25);
    color: #fff;
}

@media (max-width: 767px) {
    /* One scrollable row of filters on phones */
    .media-gallery .portfolio-filters {
        flex-wrap: nowrap;
        justify-content: flex-start;
        overflow-x: auto;
        scrollbar-width: none;
    }

    .media-gallery .portfolio-filters::-webkit-scrollbar {
        display: none;
    }

    .media-gallery .portfolio-filters button {
        flex: 0 0 auto;
        font-size: 13px;
        padding: 8px 13px;
    }
}

/* Photo / video tiles */
.media-gallery .media-card {
    position: relative;
    display: block;
    overflow: hidden;
    aspect-ratio: 4 / 3;
    background: #f1eee8;
}

.media-gallery .media-card img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.5s ease;
}

.media-gallery .media-card::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(12, 14, 15, 0.8) 0%, rgba(12, 14, 15, 0) 50%);
    transition: background-color 0.3s;
}

.media-gallery .media-card:hover img {
    transform: scale(1.06);
}

.media-gallery .media-card:hover::after {
    background-color: rgba(12, 14, 15, 0.15);
}

.media-gallery .media-caption {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 1;
    padding: 12px 14px;
    color: #fff;
}

.media-gallery .media-caption strong {
    display: block;
    font-family: var(--nav-font);
    font-size: 15px;
    font-weight: 600;
    line-height: 1.3;
}

.media-gallery .media-caption small {
    display: block;
    margin-top: 2px;
    font-size: 12px;
    color: rgba(255, 255, 255, 0.75);
}

.media-gallery .media-zoom {
    position: absolute;
    top: 12px;
    right: 12px;
    z-index: 1;
    width: 36px;
    height: 36px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: var(--accent-color);
    color: #fff;
    font-size: 15px;
    opacity: 0;
    transform: scale(0.8);
    transition: opacity 0.3s, transform 0.3s;
}

.media-gallery .media-card:hover .media-zoom,
.media-gallery .media-card:focus-visible .media-zoom {
    opacity: 1;
    transform: none;
}

.media-gallery .media-play {
    position: absolute;
    top: 50%;
    left: 50%;
    z-index: 1;
    width: 60px;
    height: 60px;
    margin: -38px 0 0 -30px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: var(--accent-color);
    color: #fff;
    font-size: 30px;
    box-shadow: 0 0 0 8px rgba(196, 23, 23, 0.3);
    transition: transform 0.3s;
}

.media-gallery .media-card:hover .media-play {
    transform: scale(1.08);
}

@media (max-width: 575px) {
    .media-gallery .media-caption {
        padding: 8px 10px;
    }

    .media-gallery .media-caption strong {
        font-size: 13px;
    }

    .media-gallery .media-caption small {
        display: none;
    }

    .media-gallery .media-play {
        width: 46px;
        height: 46px;
        margin: -28px 0 0 -23px;
        font-size: 24px;
    }
}

/* Lightbox captions */
.glightbox-clean .gslide-title {
    margin-bottom: 4px;
    font-family: var(--nav-font);
    font-weight: 600;
}

.glightbox-clean .gslide-desc {
    color: #8a857b;
}

/*--------------------------------------------------------------
# Contact page (contact.blade.php)
--------------------------------------------------------------*/
/* Quick contact cards, overlapping the banner */
.contact-quick {
    position: relative;
    z-index: 2;
    margin-top: -40px;
    padding: 0 0 50px;
}

.contact-quick .quick-card {
    height: 100%;
    display: flex;
    flex-direction: column;
    padding: 26px 24px;
    background: #fff;
    border-top: 3px solid var(--accent-color);
    box-shadow: 0 12px 32px rgba(36, 39, 44, 0.1);
}

.contact-quick .quick-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 50px;
    height: 50px;
    border-radius: 50%;
    background: color-mix(in srgb, var(--accent-color), transparent 90%);
    color: var(--accent-color);
    font-size: 22px;
}

.contact-quick .is-whatsapp {
    border-top-color: #1fa855;
}

.contact-quick .is-whatsapp .quick-icon {
    background: #e7f6ed;
    color: #1fa855;
}

.contact-quick .quick-card h3 {
    margin: 16px 0 6px;
    font-family: var(--nav-font);
    font-size: 18px;
    font-weight: 600;
    color: var(--heading-color);
}

.contact-quick .quick-card p {
    margin: 0 0 14px;
    font-size: 15px;
    line-height: 1.6;
}

.contact-quick .quick-link {
    margin-top: auto;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-family: var(--nav-font);
    font-size: 14px;
    font-weight: 600;
    color: var(--accent-color);
    transition: gap 0.2s;
}

.contact-quick .quick-link:hover {
    gap: 10px;
}

.contact-quick .is-whatsapp .quick-link {
    color: #1a8f48;
}

/* Form and side cards */
.contact-main {
    padding: 20px 0 90px;
}

.contact-main .contact-form-card {
    height: 100%;
    padding: 40px;
    background: #fff;
    border: 1px solid #ece8df;
    box-shadow: 0 10px 30px rgba(36, 39, 44, 0.06);
}

.contact-main .contact-form-card h2 {
    margin: 0 0 8px;
    font-family: var(--nav-font);
    font-size: 28px;
    font-weight: 700;
    color: var(--heading-color);
}

.contact-main .contact-form-intro {
    margin-bottom: 26px;
    font-size: 15px;
}

.contact-main .form-label {
    margin-bottom: 6px;
    font-family: var(--nav-font);
    font-size: 14px;
    font-weight: 500;
    color: var(--heading-color);
}

.contact-main .form-label span {
    color: var(--accent-color);
}

.contact-main .form-control,
.contact-main .form-select {
    padding: 12px 14px;
    border: 1px solid #dedad2;
    border-radius: 4px;
    background-color: #fff;
    font-size: 15px;
    color: var(--heading-color);
    box-shadow: none;
}

.contact-main .form-control:focus,
.contact-main .form-select:focus {
    border-color: var(--accent-color);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent-color), transparent 85%);
}

.contact-main .form-check {
    padding: 14px 16px 14px 44px;
    background: #faf9f6;
    border: 1px solid #ece8df;
}

.contact-main .form-check-input {
    margin-left: -28px;
    margin-top: 3px;
    width: 18px;
    height: 18px;
    border-color: #bdb7ab;
}

.contact-main .form-check-input:checked {
    background-color: var(--accent-color);
    border-color: var(--accent-color);
}

.contact-main .form-check-label {
    font-size: 14px;
    line-height: 1.6;
}

.contact-main .form-check-label a {
    font-weight: 600;
    text-decoration: underline;
}

.contact-main .contact-form-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    flex-wrap: wrap;
    margin-top: 8px;
}

.contact-main .contact-form-footer p {
    color: #8a857b;
}

.contact-main .contact-form-footer .btn-theme {
    border: 0;
}

.contact-main .contact-form-footer .btn-theme:disabled {
    opacity: 0.6;
    cursor: wait;
}

.contact-main .contact-aside {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.contact-main .aside-card {
    padding: 28px;
    background: #faf9f6;
    border: 1px solid #ece8df;
}

.contact-main .aside-card h3 {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 0 0 16px;
    font-family: var(--nav-font);
    font-size: 18px;
    font-weight: 600;
    color: var(--heading-color);
}

.contact-main .aside-card h3 i {
    color: var(--accent-color);
}

.contact-main .hours-list {
    margin: 0;
    padding: 0;
    list-style: none;
}

.contact-main .hours-list li {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    padding: 10px 0;
    border-bottom: 1px dashed #dedad2;
    font-size: 15px;
}

.contact-main .hours-list li:last-child {
    border-bottom: 0;
}

.contact-main .hours-list strong {
    font-weight: 600;
    color: var(--heading-color);
}

.contact-main .hours-list strong.is-closed {
    color: var(--accent-color);
}

.contact-main .aside-social {
    display: flex;
    gap: 10px;
}

.contact-main .aside-social a {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    border-radius: 50%;
    background: #fff;
    border: 1px solid #e6e2da;
    color: var(--heading-color);
    font-size: 17px;
    transition: background-color 0.2s, color 0.2s, border-color 0.2s;
}

.contact-main .aside-social a:hover {
    background: var(--accent-color);
    border-color: var(--accent-color);
    color: #fff;
}

.contact-main .aside-card.is-dark {
    background: var(--anthracite);
    border-color: var(--anthracite);
    color: #d9d3c5;
}

.contact-main .aside-card.is-dark h3 {
    color: #fff;
}

.contact-main .aside-card.is-dark p {
    font-size: 14px;
}

.contact-main .aside-phone {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-family: var(--nav-font);
    font-size: 20px;
    font-weight: 700;
    color: #fff;
}

.contact-main .aside-phone:hover {
    color: #fff;
    opacity: 0.85;
}

@media (max-width: 767px) {
    .contact-quick {
        margin-top: -24px;
    }

    .contact-main .contact-form-card {
        padding: 26px 20px;
    }
}

/* Map with a directions button in the corner (Google's own place card stays top left) */
.contact-map {
    position: relative;
    padding: 0;
}

.contact-map iframe {
    display: block;
    width: 100%;
    height: 440px;
    border: 0;
    filter: grayscale(0.2);
}

.contact-map .map-directions {
    position: absolute;
    right: 24px;
    bottom: 24px;
    border: 0;
    box-shadow: 0 10px 28px rgba(0, 0, 0, 0.25);
}

@media (max-width: 767px) {
    .contact-map iframe {
        height: 320px;
    }

    .contact-map .map-directions {
        right: 16px;
        bottom: 16px;
    }
}
