/**
 * Kashkaval Garden - Custom Styles
 * Page-specific styles for index.html
 */

/* ========================================
   Perfect Square Grid System
   All cards maintain 1:1 aspect ratio
   ======================================== */

/* Small cards: Perfect squares using ::before pseudo-element */
.element-content,
.element-team-member,
.element-menu-featured,
.element-services,
.element-about-picture {
    position: relative;
}

.element-content .element-wrapper,
.element-team-member .element-wrapper,
.element-menu-featured .element-wrapper,
.element-services .element-wrapper,
.element-about-picture .element-wrapper {
    position: relative;
    width: 100%;
    height: auto !important;
    min-height: 0 !important;
}

/* Use ::before to create aspect ratio */
.element-content .element-wrapper::before,
.element-team-member .element-wrapper::before,
.element-menu-featured .element-wrapper::before,
.element-services .element-wrapper::before,
.element-about-picture .element-wrapper::before {
    content: "";
    display: block;
    padding-bottom: 100%; /* 1:1 aspect ratio */
}

/* Content inside wrapper needs to be absolutely positioned */
.element-content .element-wrapper > .element-box,
.element-content .element-wrapper > img,
.element-team-member .element-wrapper > .menu-featured-image,
.element-team-member .element-wrapper > .team-member-staff,
.element-team-member .element-wrapper > .team-member-mask-wrapper,
.element-team-member .element-wrapper > a,
.element-menu-featured .element-wrapper > .menu-featured-image,
.element-menu-featured .element-wrapper > .menu-featured-mask-wrapper,
.element-services .element-wrapper > .element-box,
.element-about-picture .element-wrapper > img,
.element-about-picture .element-wrapper > a {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

/* Large cards: Also perfect squares using ::before */
.element-big-image .element-wrapper,
.element-big-image-home .element-wrapper {
    position: relative;
    width: 100%;
    height: auto !important;
    min-height: 0 !important;
}

.element-big-image .element-wrapper::before,
.element-big-image-home .element-wrapper::before {
    content: "";
    display: block;
    padding-bottom: 100%; /* 1:1 aspect ratio */
}

.element-big-image .element-wrapper > img,
.element-big-image .element-wrapper > .element-big-image-mask,
.element-big-image-home .element-wrapper > img,
.element-big-image-home .element-wrapper > .element-big-image-mask {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

/* Intro/Hero sections maintain their own proportions */
.element-intro .element-wrapper {
    padding-bottom: 0;
    height: auto !important;
    min-height: 500px;
}

.element-intro .element-wrapper > * {
    position: relative;
}

/* Element box (for service cards) fills the square */
.element-services .element-box,
.element-content .element-box {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
}

.element-services .element-box-bg,
.element-content .element-box-bg {
    position: relative;
    width: 100%;
    height: 100%;
    overflow-y: auto;
    overflow-x: hidden;
}

/* Team member cards maintain square with proper mask positioning */
.element-team-member .menu-featured-image {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-size: cover;
    background-position: center;
}

.element-team-member .team-member-mask-wrapper,
.element-team-member .team-member-staff {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

/* Menu featured cards fill square */
.element-menu-featured .menu-featured-image {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-size: cover;
    background-position: center;
}

.element-menu-featured .menu-featured-mask-wrapper {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

/* About pictures fill square */
.element-about-picture img {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.element-about-picture .about-picture-mask {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

/* Big image mask and content fill the square */
.element-big-image .element-big-image-mask,
.element-big-image-home .element-big-image-mask {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    opacity: 0.85 !important;
}

/* Images in big-image cards fill the square */
.element-big-image img,
.element-big-image-home img {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    z-index: 1;
}

/* Mask sits on top of image */
.element-big-image .element-big-image-mask,
.element-big-image-home .element-big-image-mask {
    z-index: 2;
}

/* Mask content on top */
.element-big-image .mask-content,
.element-big-image-home .mask-content {
    z-index: 3;
}

/* Mobile: full width squares */
@media (max-width: 767px) {
    .element-content,
    .element-team-member,
    .element-menu-featured,
    .element-services,
    .element-about-picture,
    .element-big-image,
    .element-big-image-home {
        width: 100% !important;
    }
}

/* Tablet: 2 columns (50% each) */
@media (min-width: 768px) and (max-width: 991px) {
    .element-content,
    .element-team-member,
    .element-menu-featured,
    .element-services,
    .element-about-picture {
        width: 50% !important;
    }

    .element-big-image,
    .element-big-image-home {
        width: 100% !important;
    }
}

/* Desktop: 4 columns (25% each for small, 50% for large) */
@media (min-width: 992px) {
    .element-content,
    .element-team-member,
    .element-menu-featured,
    .element-services,
    .element-about-picture {
        width: 25% !important;
    }

    .element-content .element-wrapper,
    .element-team-member .element-wrapper,
    .element-menu-featured .element-wrapper,
    .element-services .element-wrapper,
    .element-about-picture .element-wrapper {
        height: auto !important;
        min-height: 0 !important;
    }

    .element-big-image,
    .element-big-image-home {
        width: 50% !important;
    }

    .element-big-image .element-wrapper,
    .element-big-image-home .element-wrapper {
        height: auto !important;
        min-height: 0 !important;
    }
}

/* ========================================
   End Perfect Square Grid System
   ======================================== */

/* ========================================
   About, Events, Contact Section Alignment
   Align with homepage design system
   ======================================== */

/* Phase 1: About Section Typography & Colors */

/* Fix About Title - Playfair Display Italic */
.about-title {
    font-family: var(--primary-font) !important;
    font-style: italic !important;
    font-weight: 700 !important;
}

/* About section - dark green background with cream text */
.element-big-content.about .element-wrapper {
    background: var(--dark-green) !important;
    color: var(--text-cream) !important;
}

/* About section title - cream color */
.element-big-content .element-big-content-title {
    color: var(--text-cream) !important;
}

/* Strong text in about title - gold accent */
.element-big-content .element-big-content-title strong {
    color: var(--primary-gold) !important;
}

/* Body text in about section - cream color */
.element-big-content.about .element-wrapper p {
    color: var(--text-cream) !important;
}

/* Strong text within paragraphs - gold accent */
.element-big-content.about .element-wrapper p strong {
    color: var(--primary-gold) !important;
}

/* Phase 2: Contact Section Updates */

/* Contact info box - dark background */
.element-contact-infos .element-box {
    background: var(--dark-green) !important;
}

.element-contact-infos .element-box-bg {
    background: var(--dark-green) !important;
}

/* Contact info text - cream color */
.element-contact-infos p {
    color: var(--text-cream) !important;
}

/* Contact info titles - gold accent */
.contact-info-title {
    color: var(--primary-gold) !important;
}

/* Phase 3: Events Section Polish */

/* Events section background consistency */
.element-intro.events .element-wrapper {
    background: var(--dark-green) !important;
}

/* Events iframe border and shadow */
.element-intro.events iframe {
    border: 1px solid rgba(155, 128, 74, 0.3);
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.3);
}

/* Menu section background - match dark green theme */
.element-intro.menu .element-wrapper {
    background: var(--dark-green) !important;
}

/* Menu iframe border and shadow */
.element-intro.menu iframe {
    border: 1px solid rgba(155, 128, 74, 0.3);
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.3);
}

/* Phase 4: About Picture Gallery */

/* About picture hover overlay - dark green */
.element-about-picture .about-picture-mask {
    background: rgba(19, 42, 31, 0.8) !important;
}

/* About picture icon - gold */
.element-about-picture .about-picture-content i,
.element-about-picture .about-picture-mask-content i {
    color: var(--primary-gold) !important;
    font-size: 32px;
}

/* Replicate homepage card styling on all sections */

/* Team member cards - consistent across all sections */
.element-team-member.about .team-member-text {
    color: var(--color-white) !important;
}

.element-team-member.about .team-member-title {
    font-family: var(--primary-font) !important;
    color: var(--color-white) !important;
}

.element-team-member.about .team-member-description {
    color: var(--text-cream) !important;
}

/* Service cards - dark background with cream text */
.element-services.about .element-box {
    background: var(--dark-green) !important;
}

.element-services.about .element-box-bg {
    background: var(--dark-green) !important;
}

.element-services.about .element-box-title span {
    color: var(--text-cream) !important;
}

.element-services.about .service-title {
    color: var(--text-cream) !important;
}

.element-services.about .service-description {
    color: var(--text-cream) !important;
}

/* Menu featured items - consistent styling */
.element-menu-featured.home .menu-featured-mask {
    background: rgba(19, 42, 31, 0.95) !important;
}

.element-menu-featured.home .menu-featured-title {
    color: var(--text-cream) !important;
}

.element-menu-featured.home .menu-featured-description {
    color: var(--text-cream) !important;
}

/* Contact section specific adjustments */
.element-contact-map .map-overlay {
    background: rgba(19, 42, 31, 0.5);
}

/* Catering services overlay text */
.element-contact-avaliable .element-contact-available-mask p {
    background: var(--dark-green) !important;
}

.catering-services-title {
    color: var(--primary-gold) !important;
}

/* Shared elements (home + about) - ensure consistent styling */
.element-services.home.about .element-box {
    background: var(--dark-green) !important;
}

.element-services.home.about .element-box-bg {
    background: var(--dark-green) !important;
}

.element-services.home.about .service-title,
.element-services.home.about .service-description,
.element-services.home.about .element-box-title span {
    color: var(--text-cream) !important;
}

/* Hours list styling */
.element-services .hours-list dt {
    color: var(--text-cream) !important;
}

.element-services .hours-list dd {
    color: var(--text-cream) !important;
}

/* Ensure all element-box backgrounds are dark green */
.element-box {
    background: var(--dark-green) !important;
}

.element-box-bg {
    background: var(--dark-green) !important;
}

/* Element box titles - cream color */
.element-box-title {
    color: var(--text-cream) !important;
}

.element-box-title span {
    color: var(--text-cream) !important;
}

/* Large hero images - paragraph text in cream color */
.element-big-image-home.home .mask-content p,
.element-big-image-home.about .mask-content p {
    color: var(--text-cream) !important;
}

/* Links in dark sections - cream color with gold hover */
.element-big-content.about a:not(.btn) {
    color: var(--primary-gold) !important;
}

.element-contact-infos a:not(.btn) {
    color: var(--primary-gold) !important;
}

.element-contact-avaliable a {
    color: var(--primary-gold) !important;
}

/* Ensure buttons maintain proper styling on dark backgrounds */
.element-big-content.about .btn,
.element-contact-infos .btn,
.element-services .btn {
    background: var(--button-background) !important;
    color: var(--button-text) !important;
    border-color: var(--button-background) !important;
}

.element-big-content.about .btn:hover,
.element-contact-infos .btn:hover,
.element-services .btn:hover {
    background: var(--button-hover) !important;
}

/* ========================================
   End About, Events, Contact Alignment
   ======================================== */

/* ========================================
   Page Loader
   ======================================== */

/* Loader tagline styling */
.loader-tagline {
    color: var(--primary-gold);
    font-family: "Playfair Display", serif !important;
    font-size: 20px;
    margin-top: 20px;
    margin-bottom: 0;
    /*padding: 20px;*/
    text-align: center;
    letter-spacing: -1px;
    font-weight: 300;
    font-style: italic;
}

/* ========================================
   General Page Styles
   ======================================== */

.intro-item-title {
    color: #9B804A;
    text-shadow: -1px 0 white, 0 1px white, 1px 0 white, 0 -1px white;
}

/* All h3 headers with cream fill and black outline */
h3,
.mask-content-title,
.team-member-title,
.menu-featured-title {
    color: var(--text-cream) !important;
    text-shadow: -2px -2px 0 black, 2px -2px 0 black, -2px 2px 0 black, 2px 2px 0 black, -3px 0 0 black, 3px 0 0 black, 0 -3px 0 black, 0 3px 0 black !important;
}

/* Team member description - thick black outline for readability */
.element-team-member .team-member-description {
    text-shadow: -2px -2px 0 black, 2px -2px 0 black, -2px 2px 0 black, 2px 2px 0 black, -3px 0 0 black, 3px 0 0 black, 0 -3px 0 black, 0 3px 0 black !important;
}

/* Large hero image text - thick black outline for all content */
.element-big-image-mask .mask-content p,
.element-big-image-mask .mask-content ul,
.element-big-image-mask .mask-content li {
    text-shadow: -2px -2px 0 black, 2px -2px 0 black, -2px 2px 0 black, 2px 2px 0 black, -3px 0 0 black, 3px 0 0 black, 0 -3px 0 black, 0 3px 0 black !important;
    font-size: 20px !important;
    line-height: 1.6 !important;
    margin-bottom: 15px !important;
}

/* Make strong text within paragraphs even more prominent */
.element-big-image-mask .mask-content p strong {
    font-size: 22px !important;
    font-weight: 700 !important;
}

/* Responsive text sizing */
@media (max-width: 991px) {
    .element-big-image-mask .mask-content p {
        font-size: 18px !important;
    }
    .element-big-image-mask .mask-content p strong {
        font-size: 20px !important;
    }
}

@media (max-width: 768px) {
    .element-big-image-mask .mask-content p {
        font-size: 15px !important;
        line-height: 1.5 !important;
    }
    .element-big-image-mask .mask-content p strong {
        font-size: 16px !important;
    }
    .element-big-image-mask .mask-content h3 {
        font-size: 20px !important;
        line-height: 1.3 !important;
    }
}

@media (max-width: 480px) {
    .element-big-image-mask .mask-content p {
        font-size: 13px !important;
        line-height: 1.4 !important;
        margin-bottom: 10px !important;
    }
    .element-big-image-mask .mask-content p strong {
        font-size: 14px !important;
    }
    .element-big-image-mask .mask-content h3 {
        font-size: 16px !important;
        line-height: 1.2 !important;
        margin-bottom: 8px !important;
        margin-top: 0 !important;
    }
    .element-big-image-mask .mask-content ul {
        font-size: 12px !important;
        line-height: 1.3 !important;
        margin-bottom: 8px !important;
        padding-left: 20px !important;
    }
    .element-big-image-mask .mask-content li {
        font-size: 12px !important;
        margin-bottom: 4px !important;
    }
    .element-big-image-mask .mask-content {
        padding: 15px !important;
    }
}

/* Large hero content - buttons at absolute bottom */
.element-big-image-mask .mask-content {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    padding: 30px !important;
    text-align: left;
    opacity: 1 !important;
}

/* Buttons side by side at bottom with spacing */
.element-big-image-mask .mask-content a.btn {
    display: inline-block;
    margin-right: 15px;
    margin-bottom: 0;
}

.element-big-image-mask .mask-content a.btn:last-of-type {
    margin-right: 0;
}

/* ========================================
   Fixed Header
   ======================================== */

/* Make header fixed at top while scrolling */
#header {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 1000;
    background: var(--dark-green);
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.3);
}

/* Add padding to main content to push everything below fixed header */
.main-content {
    padding-top: 315px !important;
}

/* Adjust for different screen sizes */
@media (max-width: 991px) {
    .main-content {
        padding-top: 280px !important;
    }
}

@media (max-width: 768px) {
    .main-content {
        padding-top: 250px !important;
    }
}

@media (max-width: 480px) {
    .main-content {
        padding-top: 220px !important;
    }
}

/* Ensure intro element has proper spacing */
.element-intro {
    margin-top: 0 !important;
}

/* Remove any inline top positioning that conflicts */
.element-intro[style*="top"] {
    top: 0 !important;
}



/* Logo width */
.navbar-brand img {
    width: 184px;
}

/* External link icon in navigation */
.navbar-nav a .fa-external-link {
    font-size: 10px;
    margin-left: 4px;
    opacity: 0.7;
    vertical-align: super;
}

/* ========================================
   Mobile & Responsive Iframe Styling
   ======================================== */

/* Mobile iframe styling */
@media (max-width: 768px) {
    .element.element-intro iframe {
        height: 120vh !important;
        min-height: 800px;
    }
}

@media (max-width: 480px) {
    .element.element-intro iframe {
        height: 150vh !important;
        min-height: 900px;
    }
}

/* Tablet iframe styling */
@media (max-width: 1024px) and (min-width: 769px) {
    .element.element-intro.menu iframe,
    .element.element-intro.restaurant-week iframe {
        height: 1200px !important;
    }

    .element.element-intro.events iframe {
        height: 900px !important;
    }

    .element.element-intro.catering iframe {
        height: 600px !important;
    }
}

/* Remove borders from all iframes */
.element-wrapper iframe {
    border: none;
}

.element.catering iframe {
    margin-top: 20px;
}

.map iframe {
    border: 0;
}

/* ========================================
   Promo Boxes Container
   ======================================== */

.promo-boxes-container {
    width: 100%;
    overflow: hidden;
    margin-top: 20px;
}

/* ========================================
   Valentine's Day Promo Box
   ======================================== */

.vday-promo-box {
    text-align: center;
    margin-top: 0;
    padding: 10px;
    background: linear-gradient(135deg, #ff9999, #ffcccc);
    border-radius: 10px;
    box-shadow: 0 4px 15px rgba(255, 153, 153, 0.4);
    display: inline-block;
    width: 48%;
    vertical-align: top;
    margin-right: 2%;
}

.vday-promo-box p:first-of-type {
    margin: 0 0 3px 0;
    color: #8b0000;
    font-weight: bold;
    font-size: 18px;
}

.vday-promo-box p:nth-of-type(2) {
    margin: 0 0 10px 0;
    color: #8b0000;
    font-size: 14px;
}

.vday-promo-box a {
    color: inherit;
    text-decoration: none;
}

.vday-promo-box a:hover {
    text-decoration: underline;
}

/* Valentine's Day button */
.vday-promo-btn {
    background: #8b0000;
    color: #ffcccc;
    border: 2px solid #ffcccc;
    width: auto;
    padding: 10px 20px;
    text-decoration: none;
    display: inline-block;
    border-radius: 20px;
    font-weight: 400;
    letter-spacing: 2px;
    text-transform: uppercase;
    font-size: 14px;
    transition: all 0.3s ease-in-out;
}

.vday-promo-btn:hover {
    background: #ffcccc;
    color: #8b0000;
    border-color: #8b0000;
    text-decoration: none;
}

/* ========================================
   Restaurant Week Promo Box
   ======================================== */

.rw-promo-box {
    text-align: center;
    margin-top: 0;
    padding: 10px;
    background: linear-gradient(135deg, #9B804A, #ffd700);
    border-radius: 10px;
    box-shadow: 0 4px 15px rgba(212, 175, 55, 0.4);
    display: inline-block;
    width: 48%;
    vertical-align: top;
}

.rw-promo-box p:first-of-type {
    margin: 0 0 10px 0;
    color: #2c1810;
    font-weight: bold;
    font-size: 18px;
}

.rw-promo-box p:nth-of-type(2) {
    margin: 0 0 10px 0;
    color: #2c1810;
    font-size: 14px;
}

/* Restaurant Week button */
.rw-promo-btn {
    background: #2c1810;
    color: #ffd700;
    border: 2px solid #ffd700;
    width: auto;
    padding: 10px 20px;
    text-decoration: none;
    display: inline-block;
    border-radius: 20px;
    font-weight: 400;
    letter-spacing: 2px;
    text-transform: uppercase;
    font-size: 14px;
    transition: all 0.3s ease-in-out;
}

.rw-promo-btn:hover {
    background: #1a1a1a !important;
    color: #ffed4e !important;
    transform: translateY(-2px);
    box-shadow: 0 4px 15px rgba(255, 237, 78, 0.4);
}

/* ========================================
   Testimonials Carousel Styles
   ======================================== */

.testimonials-section {
    background: linear-gradient(135deg, #2e1f1c 0%, #4a3c2f 100%);
    padding: 30px 20px 30px 20px;
    margin: 0;
}

.testimonials-container {
    max-width: 800px;
    margin: 0 auto;
}

.testimonials-header {
    text-align: center;
    margin-bottom: 20px;
}

.testimonials-title {
    font-size: 22px;
    font-style: italic;
    font-weight: 700;
    letter-spacing: -.5px;
    font-family: 'Playfair Display', serif;
    color: #9B804A;
    margin-bottom: 5px;
    margin-top: 0;
}

.testimonial-carousel {
    background: #e8dcc8;
    border-radius: 12px;
    padding: 15px 15px 35px 15px;
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.2);
    border: 1px solid rgba(155, 28, 28, 0.3);
    position: relative;
    overflow: hidden;
}

.testimonial-carousel .carousel-inner {
    position: relative;
    width: 100%;
    overflow: hidden;
    padding: 0;
    margin: 0;
}

.testimonial-carousel .carousel-inner .item {
    display: none;
    position: relative;
    min-height: 100px;
    padding: 0;
    margin: 0;
    -webkit-transition: 0.6s ease-in-out left;
    -o-transition: 0.6s ease-in-out left;
    transition: 0.6s ease-in-out left;
}

.testimonial-carousel .carousel-inner .item.active,
.testimonial-carousel .carousel-inner .item.next,
.testimonial-carousel .carousel-inner .item.prev {
    display: flex;
    align-items: center;
    justify-content: center;
}

.testimonial-carousel .carousel-inner .item.active {
    left: 0;
}

.testimonial-carousel .carousel-inner .item.next,
.testimonial-carousel .carousel-inner .item.prev {
    position: absolute;
    top: 0;
    width: 100%;
}

.testimonial-carousel .carousel-inner .item.next {
    left: 100%;
}

.testimonial-carousel .carousel-inner .item.prev {
    left: -100%;
}

.testimonial-carousel .carousel-inner .item.next.left,
.testimonial-carousel .carousel-inner .item.prev.right {
    left: 0;
}

.testimonial-carousel .carousel-inner .item.active.left {
    left: -100%;
}

.testimonial-carousel .carousel-inner .item.active.right {
    left: 100%;
}

.testimonial-content {
    text-align: center;
    color: #2e1f1c;
    padding: 10px 15px 20px 15px;
    width: 100%;
}

.testimonial-text {
    font-size: 1.3rem;
    line-height: 1.6;
    color: #2e1f1c;
    margin-bottom: 15px;
    margin-top: 5px;
    font-style: italic;
    font-weight: 700;
    position: relative;
    padding-left: 35px;
}

.testimonial-text:before {
    content: '"';
    font-size: 5rem;
    color: #9B804A;
    opacity: 0.4;
    position: absolute;
    top: -10px;
    left: 0;
    font-family: 'Playfair Display', serif;
    line-height: 1;
    z-index: 0;
}

.testimonial-author {
    font-size: 1.1rem;
    font-weight: 700;
    color: #9B804A;
    margin-bottom: 3px;
    margin-top: 0;
}

.testimonial-role {
    font-size: 0.95rem;
    color: #4a3c2f;
    font-style: italic;
    margin-top: 0;
    margin-bottom: 0;
}

.carousel-indicators {
    bottom: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.carousel-indicators li {
    background-color: #9B804A;
    opacity: 0.4;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    margin: 0 4px;
    border: 1px solid #9B804A;
    flex-shrink: 0;
}

.carousel-indicators .active {
    opacity: 1;
    background-color: #9B804A;
}

/* Carousel controls icon size */
.carousel-control .fa {
    font-size: 24px;
}

/* ========================================
   Testimonials - Responsive
   ======================================== */

@media (max-width: 992px) {
    .testimonials-section {
        padding: 25px 15px;
    }

    .testimonials-header {
        margin-bottom: 15px;
    }

    .testimonials-title {
        font-size: 20px;
    }

    .testimonial-carousel {
        padding: 12px 12px 32px 12px;
    }

    .testimonial-carousel .carousel-inner .item {
        min-height: 90px;
    }

    .testimonial-text {
        font-size: 1.25rem;
        line-height: 1.55;
        padding-left: 30px;
        margin-top: 5px;
        font-weight: 700;
    }

    .testimonial-text:before {
        font-size: 4.5rem;
        top: -8px;
        left: 0;
        opacity: 0.4;
    }

    .testimonial-author {
        font-size: 1.05rem;
    }

    .testimonial-role {
        font-size: 0.9rem;
    }
}

@media (max-width: 768px) {
    .testimonials-section {
        padding: 20px 12px;
    }

    .testimonials-header {
        margin-bottom: 12px;
    }

    .testimonials-title {
        font-size: 18px;
        margin-bottom: 3px;
    }

    .testimonial-carousel {
        padding: 12px 10px 30px 10px;
        border-radius: 10px;
    }

    .testimonial-carousel .carousel-inner .item {
        min-height: 80px;
    }

    .testimonial-text {
        font-size: 1.15rem;
        line-height: 1.5;
        padding-left: 25px;
        margin-top: 5px;
        margin-bottom: 12px;
        font-weight: 700;
    }

    .testimonial-text:before {
        font-size: 4rem;
        top: -8px;
        left: 0;
        opacity: 0.4;
    }

    .testimonial-author {
        font-size: 1rem;
    }

    .testimonial-role {
        font-size: 0.85rem;
    }

    .carousel-indicators {
        bottom: 6px;
    }

    .carousel-indicators li {
        width: 9px;
        height: 9px;
        margin: 0 3px;
    }
}

/* ========================================
   Promo Box Responsive Behavior
   ======================================== */

/* Desktop: hide mobile links, show full content */
.promo-mobile-link {
    display: none;
}

.promo-desktop-content {
    display: block;
}

/* Mobile: show compact links, hide full content */
@media (max-width: 768px) {
    .promo-boxes-container {
        margin-top: 15px;
    }

    .promo-mobile-link {
        display: block;
        color: inherit;
        text-decoration: none;
        font-weight: bold;
        font-size: 16px;
        padding: 8px;
    }

    .promo-desktop-content {
        display: none;
    }

    .vday-promo-box,
    .rw-promo-box {
        width: 48%;
        padding: 8px;
        margin-top: 0;
    }

    .vday-promo-box .promo-mobile-link {
        color: #8b0000;
    }

    .rw-promo-box .promo-mobile-link {
        color: #2c1810;
    }
}

/* ========================================
   Hero Image Hover Fix
   Keep text/button visible, brighten + zoom image
   ======================================== */

/* Keep mask content visible on hover */
.element-big-image-home .element-big-image-mask {
    opacity: 1 !important;
    pointer-events: auto !important;
}

.element-big-image-home .element-big-image-mask:hover {
    opacity: 1 !important;
}

.element-big-image-home .mask-content {
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
    position: relative;
    z-index: 10;
}

.element-big-image-home .element-big-image-mask:hover .mask-content {
    opacity: 1 !important;
    transform: translateX(0) !important;
    -webkit-transform: translateX(0) !important;
    -moz-transform: translateX(0) !important;
}

/* Image zoom and brighten on hover */
.element-big-image-home:hover .element-wrapper > img {
    transform: scale(1.05);
    filter: brightness(1.1);
}

/* Keep buttons clickable */
.element-big-image-home .mask-content .btn {
    pointer-events: auto !important;
    position: relative;
    z-index: 20;
}

/* ========================================
   Small / All Caps Text Styling
   Matching Square site Libre Franklin style
   ======================================== */

.element-box-title,
.element-box-title span,
.navbar-nav a,
.btn,
.menu-nav-button {
    font-family: "Libre Franklin", sans-serif !important;
    font-weight: 400 !important;
    line-height: 1.1 !important;
    letter-spacing: 0.01em !important;
    padding-left: 0.01em;
}

/* Apply cream color to small headers in dark boxes */
.element-box-title span {
    color: #F2EDE3 !important;
}

/* Ensure button text uses Libre Franklin */
.btn span,
.btn-rayen span {
    font-family: "Libre Franklin", sans-serif !important;
    font-weight: 400 !important;
    letter-spacing: 0.01em !important;
}

/* ========================================
   Large Heading Styling
   Playfair Display Italic for main headings
   ======================================== */

.service-title,
.contact-info-title,
.mask-content-title {
    font-family: "Playfair Display", serif !important;
    font-style: italic !important;
    font-weight: 700 !important;
}
