/* Al Madina Caterer's - small polish layer (hover/transition effects) */

.cat_service_box,
.cat_staff_box,
.cat_top_dish_section {
    transition: transform .3s ease, box-shadow .3s ease;
}

.cat_service_box:hover,
.cat_staff_box:hover,
.cat_top_dish_section:hover {
    transform: translateY(-6px);
    box-shadow: 0 12px 28px rgba(0, 0, 0, 0.12);
}

.cat_hover_img img {
    transition: transform .5s ease;
}

.cat_hover_img:hover img {
    transform: scale(1.06);
}

a.cat-btn,
a[style*="background:#CD3131"],
a[style*="background:#25D366"] {
    transition: opacity .25s ease, transform .2s ease;
}

a.cat-btn:hover,
a[style*="background:#CD3131"]:hover,
a[style*="background:#25D366"]:hover {
    opacity: .88;
    transform: translateY(-2px);
}

.totop a {
    transition: transform .25s ease;
}

.totop a:hover {
    transform: scale(1.08);
}

/* ---- Bigger heading / subheading text (site-wide) ---- */
span.cat_subheading {
    font-size: 32px !important;
    letter-spacing: 1px;
}

.cat_section_headings h4 {
    font-size: 40px !important;
}

.cat_top_heading h1 {
    font-size: 58px !important;
    line-height: 1.15 !important;
}

.cat_about_wrapper .cat_top_heading h1 {
    font-size: 74px !important;
    line-height: 1.1 !important;
}

h6.widget-title,
.footer h6.widget-title {
    font-size: 20px !important;
}

@media (max-width: 768px) {
    span.cat_subheading {
        font-size: 22px !important;
    }

    .cat_section_headings h4 {
        font-size: 28px !important;
    }

    .cat_top_heading h1 {
        font-size: 38px !important;
        line-height: 1.2 !important;
        padding-bottom: 15px !important;
    }

    .cat_about_wrapper .cat_top_heading h1 {
        font-size: 42px !important;
        line-height: 1.2 !important;
        padding-bottom: 15px !important;
    }

    h6.widget-title,
    .footer h6.widget-title {
        font-size: 18px !important;
    }
}

/* ---- Dark-background low-contrast text fixes ---- */
.cat_menus_content p {
    color: #cccccc !important;
}

.cat_best_service_wrapper .cat_best_service_content h6,
.cat_best_service_wrapper .cat_best_service_content p {
    color: #f0f0f0 !important;
}

/* ---- Footer column heading vertical alignment (desktop only) ---- */
@media (min-width: 992px) {
    .cat_footer .widget_links > h6.widget-title,
    .cat_footer .widget_cat_whours > h6.widget-title {
        margin-top: 70px;
    }
}

/* ---- Gallery page filter + grid (added for gallery.html) ---- */
.cat_gallery_filters {
    width: 100%;
    float: left;
    text-align: center;
    margin-bottom: 35px;
}

.cat_gallery_filters button {
    background: transparent;
    border: 1px solid #cd3131;
    color: #cd3131;
    padding: 8px 22px;
    margin: 5px;
    border-radius: 30px;
    text-transform: uppercase;
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 1px;
    cursor: pointer;
    transition: all .25s ease;
}

.cat_gallery_filters button.active,
.cat_gallery_filters button:hover {
    background: #cd3131;
    color: #fff;
}

.cat_gallery_item {
    margin-bottom: 30px;
}

.cat_gallery_item h6 {
    text-align: center;
    margin-top: 12px;
    font-size: 16px;
}

/* ---- Testimonial slider: stop nav dots overlapping quote text, star rating gold ---- */
.cat_testi_slider .owl-theme .owl-controls,
.cat_testi_slider .owl-theme .owl-dots {
    position: static !important;
    left: auto !important;
    bottom: auto !important;
    text-align: center;
    margin-top: 15px !important;
    clear: both;
    padding-bottom: 20px;
}

.cat_testi_data {
    padding-bottom: 40px !important;
}

ul.cat_testi_icons li i.fa-star {
    color: #FFD700 !important;
    font-size: 16px;
    margin-right: 2px;
}

/* ---- Service page event image rows: consistent size for all images in a row ---- */
.cat_about_section .row img.cat_hover_img {
    height: 220px;
    width: 100%;
    object-fit: cover;
    display: block;
}

/* ---- "Book our service now" panel: animated call badge instead of bare text ---- */
.cat_menus_content {
    padding: 50px 0 40px 0 !important;
    text-align: center !important;
    display: flex;
    flex-direction: column;
    align-items: center;
}

.cat_call_badge {
    display: block;
    position: relative;
    width: 56px;
    height: 56px;
    float: none;
    margin: 0 auto 10px;
}

.cat_call_badge svg {
    width: 56px;
    height: 56px;
}

.cat_call_ring {
    fill: none;
    stroke: #CD3131;
    stroke-width: 2.5;
    opacity: 0;
    transform-origin: 60px 60px;
    animation: catCallPulse 2.4s ease-out infinite;
}

.cat_call_ring.r2 {
    animation-delay: 1.2s;
}

@keyframes catCallPulse {
    0% {
        transform: scale(0.75);
        opacity: 0.9;
    }

    100% {
        transform: scale(1.7);
        opacity: 0;
    }
}

.cat_call_eyebrow {
    width: 100%;
    float: none;
    clear: none;
    text-align: center !important;
    color: #e0a040 !important;
    font-size: 13px !important;
    letter-spacing: 2px;
    text-transform: uppercase;
    margin: 0 0 2px !important;
    padding: 0 !important;
}

.cat_menus_content h4 {
    float: none !important;
    width: 100% !important;
    text-align: center !important;
}

.cat_menus_content h4 a {
    color: #fff;
    text-decoration: none;
}

.cat_call_number {
    display: block;
    width: 100%;
    float: none;
    clear: none;
    text-align: center;
    color: #fff;
    font-family: "Abril Fatface";
    font-size: 30px;
    text-decoration: none;
    margin: 4px 0 18px;
}

.cat_call_number:hover {
    color: #CD3131;
}

.cat_call_whatsapp {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: #25D366;
    color: #fff !important;
    padding: 10px 22px;
    border-radius: 30px;
    text-decoration: none;
    font-weight: 600;
    font-size: 14px;
    clear: both;
    transition: transform .2s ease, opacity .2s ease;
}

.cat_call_whatsapp:hover {
    opacity: .88;
    transform: translateY(-2px);
}

@media (max-width: 991px) {
    .cat_menus_content {
        padding: 30px 0 30px 0 !important;
        text-align: center !important;
        align-items: center !important;
    }

    .cat_call_badge {
        margin-left: auto;
        margin-right: auto;
    }

    .cat_call_eyebrow,
    .cat_call_number {
        width: 100%;
        text-align: center !important;
    }
}

@media (min-width: 992px) {
    .cat_menus_content {
        padding-left: 15% !important;
        padding-right: 0 !important;
    }
}

/* ---- index.html custom header: one-line mobile header (logo / phone centered / hamburger), nav + CTA collapse below ---- */
#site-header-row1 {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 15px;
}

#site-header-row1>a {
    order: 1;
}

#site-nav {
    order: 2;
}

#site-header-phone {
    order: 3;
}

#site-nav-toggle {
    order: 4;
    display: none;
    background: transparent;
    border: none;
    color: #fff;
    font-size: 22px;
    line-height: 1;
    cursor: pointer;
    padding: 6px 4px;
}

#site-nav-actions {
    order: 5;
}

@media (min-width: 992px) {
    #site-nav {
        flex: 1;
    }

    #site-header-phone a {
        white-space: nowrap;
    }

    #site-nav-actions {
        display: flex;
        align-items: center;
    }
}

@media (max-width: 991px) {
    #site-header-row1 {
        flex-wrap: nowrap;
    }

    #site-header-phone {
        flex: 1;
        text-align: center;
    }

    #site-header-phone a {
        font-size: 14px;
    }

    #site-nav-toggle {
        display: block;
    }

    #site-nav {
        display: none;
        order: 10;
        flex-basis: 100%;
        width: 100%;
    }

    #site-nav.is-open {
        display: block;
    }

    #site-nav ul {
        flex-direction: column !important;
        align-items: flex-start !important;
        justify-content: flex-start !important;
        gap: 14px !important;
        padding: 18px 0 10px !important;
    }

    #site-nav-actions {
        display: none;
        order: 11;
        flex-basis: 100%;
        width: 100%;
        justify-content: center;
        padding-bottom: 18px;
    }

    #site-nav-actions.is-open {
        display: flex !important;
    }
}

@media (max-width: 480px) {
    #site-header img {
        max-width: 90px !important;
    }
}

/* ---- Clean circular hamburger toggle instead of the odd oversized flaticon glyph ---- */
@media (max-width: 991px) {
    .menu_toggle {
        width: 46px !important;
        height: 46px !important;
        background: #CD3131;
        border-radius: 50%;
        display: flex !important;
        align-items: center;
        justify-content: center;
        box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
    }

    .menu_toggle i {
        font-size: 18px !important;
        color: #fff;
        position: static !important;
    }

    .menu_toggle i:before {
        font-size: 18px !important;
        color: #fff;
    }

    .menu_toggle span.menu_name {
        display: none !important;
    }
}

/* ---- Compact "Need Catering?" call panel on mobile ---- */
@media (max-width: 767px) {
    .cat_menus_content {
        padding: 20px 15px !important;
    }

    .cat_call_badge {
        width: 42px !important;
        height: 42px !important;
        margin: 0 auto 6px !important;
    }

    .cat_call_badge svg {
        width: 42px !important;
        height: 42px !important;
    }

    .cat_call_eyebrow {
        font-size: 11px !important;
        margin-bottom: 0 !important;
    }

    .cat_menus_content h4 {
        font-size: 18px !important;
        padding-bottom: 0 !important;
    }

    .cat_call_number {
        font-size: 22px !important;
        margin: 2px 0 12px !important;
    }

    .cat_call_whatsapp {
        padding: 8px 18px !important;
        font-size: 13px !important;
    }
}

/* ---- Booking form reused inline on the Contact page (originally an absolute-positioned hero overlay card) ---- */
.cat_book_inline.cat_book_service_wrapper {
    position: relative !important;
    right: auto !important;
    top: auto !important;
    left: auto !important;
    transform: none !important;
    -webkit-transform: none !important;
    width: 100% !important;
    max-width: 400px;
    margin: 0 auto;
}

.cat_book_inline .cat_book_service_form {
    width: 100%;
}

/* ---- FAQ accordion (homepage) ---- */
#faq .accordion-button {
    font-family: "Playfair Display", serif;
    font-weight: 600;
    font-size: 17px;
    color: #1a1a1a;
}

#faq .accordion-button:not(.collapsed) {
    color: #CD3131 !important;
    background-color: #fbf1f1 !important;
    box-shadow: none !important;
}

#faq .accordion-button:focus {
    box-shadow: none;
    border-color: rgba(205, 49, 49, 0.25);
}

#faq .accordion-item {
    border-color: #eee;
    margin-bottom: 10px;
    border-radius: 6px;
    overflow: hidden;
}

#faq .accordion-body {
    color: #555;
    font-size: 14.5px;
    line-height: 1.8;
}

.cat_book_inline.cat_book_wide {
    max-width: 100% !important;
    display: flow-root;
    background: #222;
    border-radius: 8px;
    box-shadow: 0 12px 32px rgba(0, 0, 0, .12);
}

.cat_book_wide .cat_book_service_heading {
    padding: 24px;
    background: transparent;
    border-bottom: 1px solid #444;
}

.cat_book_wide .cat_book_service_heading .cat_book_service_icon i:before { font-size: 28px; }
.cat_book_wide .cat_book_service_heading h4 { font-size: 28px; line-height: 1.25; }
.cat_book_wide .cat_book_service_form { display: block; padding: 28px 32px 32px; background: transparent; }
.cat_book_wide .cat_book_service_form > form { width: 100%; min-width: 0; }
.cat_book_wide .cat_book_service_form .cat_book_form_box label { margin-bottom: 8px; }
.cat_book_wide .cat_book_service_form .cat_book_form_box .form-control { height: 48px; font-size: 16px; border-color: #888; }
.cat_book_wide .cat_book_service_form .cat_book_form_box textarea.form-control { height: auto; min-height: 120px; }
.cat_book_wide .cat_book_service_form .cat_book_form_box span.cat_cal_icon { top: 44px; pointer-events: none; }
.cat_book_wide #u_date { padding-right: 36px; }
.cat_book_wide #err2:empty { display: none; }
.cat_book_wide .cat_book_service_form .cat_button { margin: 0; float: none; text-align: right; }
.cat_book_wide .cat_button .btn { min-width: 180px; min-height: 48px; }

@media (max-width: 767px) {
    .cat_book_wide .cat_book_service_form { padding: 22px 18px; }
    .cat_book_wide .cat_button .btn { width: 100%; }
}

.cat_book_wide .cat_book_service_form > form {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px;
}

.cat_book_wide .cat_book_service_form .cat_book_form_box {
    width: auto;
    float: none;
    margin: 0;
}

.cat_book_wide .cat_book_service_form .cat_book_form_box.cat_book_full,
.cat_book_wide .cat_book_service_form .cat_button,
.cat_book_wide .cat_book_service_form #err2 {
    grid-column: 1 / -1;
}

.cat_book_wide .cat_book_service_form select.form-control {
    color: #fff;
    background-color: transparent;
}

.cat_book_wide .cat_book_service_form select.form-control option {
    color: #1d1d1d;
}

.cat_book_wide .cat_book_service_form textarea.form-control {
    height: auto;
    resize: vertical;
}

@media (min-width: 768px) and (max-width: 991px) {
    .cat_book_wide .cat_book_service_form > form {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 767px) {
    .cat_book_wide .cat_book_service_form > form {
        grid-template-columns: 1fr;
    }
}

/* ---- Page-title header (cat_top_wrapper / cat_heading_wrapper / cat_menu_wrapper): ----
   the "Catering / Services" logo+heading column keeps style.css's desktop
   min-height:469px (meant to match its two-column sibling) all the way down
   to 480px — style.css/responsive.css only reset .cat_about_wrapper .cat_menu_wrapper
   (the dark call-panel side) at the 768-991 and 480-767 breakpoints, and only reset
   .cat_about_wrapper .cat_heading_wrapper itself below 480px. That leaves a tall,
   mostly-empty block above the breadcrumbs on small tablets / large phones
   (about-us, menu, service, contact, gallery). Reset it in step with the panel side. */
@media (max-width: 991px) {
    .cat_about_wrapper .cat_heading_wrapper {
        min-height: auto !important;
    }
}

/* ---- Mobile nav toggle (fa-bars circle): style.css/responsive.css keep it
   position:fixed (needed so it stays reachable while the page scrolls, since
   .cat_top_wrapper is not itself sticky) but the "top" offset changes at nearly
   every breakpoint (9%, 50px, 6%, 9% again...), which is fragile and, at some
   viewport heights, sits close enough to the heading text/logo to feel cramped.
   Pin it to a single, consistent corner offset on all mobile/tablet widths instead. */
@media (max-width: 991px) {
    .menu_toggle {
        top: 14px !important;
        right: 4% !important;
        bottom: auto !important;
    }
}

/* ---- Home page testimonial slider: the client photo column uses
   `.cat_testi_img img { width:auto !important }` from style.css so the photo
   keeps its natural aspect ratio inside the fixed-width desktop column. Below
   the md breakpoint that column becomes 100%-wide, but the image still renders
   at its native pixel width — wider than a phone screen — forcing the whole
   page to scroll horizontally. Constrain it back to the column on mobile. */
@media (max-width: 767px) {
    .cat_testi_img img {
        width: 100% !important;
        height: auto;
    }
}

/* ---- Home page hero text: the hero heading/paragraph/buttons are inline-styled
   for desktop only (h1 at 52px inside a position:absolute box capped at
   max-width:50% of the hero). Below 768px that leaves a ~180px-wide column for a
   52px display heading, forcing ugly word-by-word wrapping. Scale it down and
   free up the width on tablets/phones. */
@media (max-width: 768px) {
    .cat_simple_hero {
        height: 480px !important;
    }

    .cat_simple_hero_text {
        left: 6% !important;
        max-width: 88% !important;
    }

    .cat_simple_hero_text h1 {
        font-size: 30px !important;
        line-height: 1.25 !important;
        margin-bottom: 10px !important;
    }

    .cat_simple_hero_text span {
        font-size: 14px !important;
        margin-bottom: 6px !important;
    }

    .cat_simple_hero_text p {
        font-size: 14px !important;
        line-height: 1.6 !important;
        margin-bottom: 18px !important;
    }

    .cat_simple_hero_text a {
        padding: 10px 20px !important;
        font-size: 12px !important;
        margin-bottom: 8px !important;
    }
}

@media (max-width: 420px) {
    .cat_simple_hero {
        height: 440px !important;
    }

    .cat_simple_hero_text h1 {
        font-size: 24px !important;
    }

    .cat_top_heading h1 {
        font-size: 32px !important;
    }

    .cat_about_wrapper .cat_top_heading h1 {
        font-size: 34px !important;
    }

    .cat_section_headings h4 {
        font-size: 24px !important;
    }

    span.cat_subheading {
        font-size: 18px !important;
    }
}

/* ---- Home page "Live Counters" section: heading/padding are inline-styled at a
   fixed desktop size (h4 at 34px, 30px left padding) with no mobile scale-down. */
@media (max-width: 768px) {
    .cat_news_wrapper {
        padding: 45px 0 !important;
    }

    .cat_news_data {
        padding: 20px 0 0 0 !important;
    }

    .cat_news_data h4 {
        font-size: 22px !important;
        line-height: 1.35 !important;
    }
}

/* Shared responsive layout for the published pages. */
#site-header.scroll-header {
    position: fixed !important;
    top: 0;
    left: 0;
    right: 0;
    z-index: 1000000001 !important;
    transition: transform .2s ease;
    max-height: 100dvh;
    overflow-y: auto;
}
#site-header.scroll-header.is-hidden { transform: translateY(-100%); }
@media (prefers-reduced-motion: reduce) {
    #site-header.scroll-header { transition: none; }
}
#site-header { padding: 8px 0 !important; }
#site-header-row1 { gap: 12px; }
#site-header-row1 > a { flex-shrink: 0; }
.site-phone-label { display: none; }
#site-header img { width: 150px; max-width: 150px !important; max-height: 114px; object-fit: contain; }
#site-nav ul { gap: 20px !important; }
#site-nav a { display: block; padding: 10px 0; }
#site-nav a[aria-current="page"] { color: #ef6262 !important; }
#site-header a:focus-visible, #site-nav-toggle:focus-visible { outline: 2px solid #fff; outline-offset: 4px; }
.cat-page-title .cat_heading_wrapper,
.cat-page-title .cat_menu_wrapper { min-height: 0 !important; height: 100%; padding: 0; z-index: 1; }
.cat-page-title .cat_heading_wrapper { display: flex; align-items: center; }
.cat-page-title .cat_top_heading { padding: 30px 24px !important; }
.cat-page-title .cat_top_heading h2 { font-size: 26px; line-height: 1.3; }
.cat-page-title .cat_top_heading h1 { font-size: 48px !important; padding: 4px 0 0 !important; line-height: 1.15 !important; }
.cat-page-title .cat_heading_img { display: none; }
.cat-page-title .cat_menus_content { padding: 24px !important; }
.cat-page-title .cat_call_badge { display: none; }
.cat-page-title .cat_call_number { font-size: 26px; margin: 4px 0 12px; }
.cat-page-title .cat_menus_content h4 { font-size: 22px; }
.cat_bread_wrapper { padding: 14px 0; }
.cat_breadcrumbs { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.cat_breadcrumbs h3 { font-size: 24px; }
.cat_bread_wrapper .breadcrumb { padding: 0; }
.cat_dishmenu_wrapper .cat_dish_img { background: #fff; }
.cat_dishmenu_wrapper .cat_dish_img > img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.cat_dishmenu_wrapper .cat_dish_img .cat_dish_img_caption { display: none; }
.cat_dishmenu_wrapper .cat_dish_price { position: static; transform: none; display: block; padding: 16px 10px; color: #333; }
.cat_dishmenu_wrapper .cat_dish_price .cat_dish_pri { transform: none; }
.cat_dishmenu_wrapper .cat_dish_price h5 { color: #222; font-size: 20px; padding-bottom: 8px; }
.cat_dishmenu_wrapper .cat_dish_dolar { color: #b52626; font-size: 19px; }
@media (min-width: 992px) and (max-width: 1199px) {
    #site-nav ul { gap: 12px !important; }
    #site-header-phone a { font-size: 13px; }
    #site-nav-actions a { padding: 10px 12px !important; }
}
@media (max-width: 991px) {
    #site-header-row1 { display: grid; grid-template-columns: 114px minmax(0, 1fr) 44px; gap: 0 10px; }
    #site-header-row1 > a { grid-column: 1; grid-row: 1; }
    #site-header img { width: 114px; max-width: 114px !important; max-height: 86px; }
    #site-header-phone { display: none; grid-column: 1 / -1; grid-row: 3; padding: 4px 0 12px; text-align: left; }
    #site-header-phone.is-open { display: block; }
    #site-header-phone a { display: flex; align-items: center; gap: 12px; padding: 14px 16px; border: 1px solid #49403c; border-radius: 8px; background: #231d19; font-size: 16px; }
    #site-header-phone .fa-phone { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 50%; background: #cd3131; color: #fff; }
    #site-header-phone .site-phone-label { display: block; color: #e0bc90; font-size: 12px; line-height: 1.5; font-weight: 500; }
    #site-nav-toggle { grid-column: 3; grid-row: 1; width: 44px; height: 44px; padding: 0; border: 1px solid #555; border-radius: 6px; }
    #site-nav { grid-column: 1 / -1; grid-row: 2; }
    #site-nav ul { gap: 0 !important; padding: 10px 0 !important; align-items: stretch !important; }
    #site-nav li { width: 100%; }
    #site-nav a { padding: 12px; border-bottom: 1px solid #333; min-height: 44px; }
    #site-nav-actions { grid-column: 1 / -1; grid-row: 4; padding: 0 0 12px; }
    #site-nav-actions a { width: 100%; text-align: center; }
    .cat-page-title:before, .cat-page-title:after { display: none; }
    .cat-page-title .cat_heading_wrapper { background: #fff; justify-content: center; }
    .cat-page-title .cat_top_heading { padding: 24px 15px !important; text-align: center; }
    .cat-page-title .cat_top_heading h2 { font-size: 22px; }
    .cat-page-title .cat_top_heading h1 { font-size: 36px !important; }
    .cat-page-title .cat_menu_wrapper { background: #1d1d1d; }
    .cat-page-title .cat_about_wrapper > .row > div { padding: 0 15px; }
    .cat-page-title .cat_menus_content { padding: 16px !important; }
    .cat-page-title .cat_call_eyebrow { display: none; }
    .cat-page-title .cat_menus_content h4 { font-size: 18px !important; }
    .cat-page-title .cat_call_number { font-size: 22px !important; margin: 3px 0 10px !important; }
    .cat_simple_hero { height: auto !important; min-height: 420px; display: flex; align-items: center; }
    .cat_simple_hero_text { position: relative !important; top: auto !important; left: auto !important; transform: none !important; max-width: 680px !important; padding: 48px 24px; }
    .cat_simple_hero_text h1 { font-size: 36px !important; }
    .cat_simple_hero_text a { margin: 6px 8px 0 0 !important; }
}
@media (max-width: 767px) {
    img, iframe { max-width: 100%; }
    .cat_simple_hero_text { padding: 36px 20px; }
    .cat_simple_hero_text h1 { font-size: 30px !important; }
    .cat_simple_hero_text span { letter-spacing: 1px !important; }
    .cat_breadcrumbs h3 { font-size: 20px; }
    .cat_bread_wrapper .breadcrumb li, .cat_bread_wrapper .breadcrumb li a { font-size: 13px; }
    .cat_service_wrapper, .cat_about_section, .cat_dishes_wrapper, .cat_contact_wrapper,
    .cat_gallery_wrapper, .cat_blog_wrapper, .cat_recipe_wrapper { padding-top: 40px; padding-bottom: 40px; }
    .cat_section_headings { margin-bottom: 28px; }
    .cat_section_headings h4 { line-height: 1.25; }
    .cat_dishmenu_wrapper .cat_dish_img_wrapper > .row { margin: 0; gap: 16px; }
    .cat_dishmenu_wrapper .cat_dish_img_wrapper > .row > div { flex: 0 0 100%; max-width: 100%; }
    .cat_dishmenu_wrapper .cat_dish_img { margin: 0 !important; }
    .cat_book_wide .cat_book_service_form { min-width: 0; }
    .cat_book_wide .cat_book_form_box, .cat_book_wide .form-control { min-width: 0; }
    .cat_book_wide input, .cat_book_wide select, .cat_book_wide textarea { font-size: 16px; }
    .cat_footer .widget { overflow-wrap: anywhere; }
    .cat_testi_img img { max-width: 100%; }
    .cat-btn { margin-bottom: 10px; }
}
@media (prefers-reduced-motion: reduce) {
    .wow { visibility: visible !important; animation: none !important; }
    .cat_call_ring { animation: none; }
}
@media (max-width: 767px) {
    /* Content remains readable on touch devices without scroll animations. */
    .wow { visibility: visible !important; animation: none !important; transform: none !important; }
    .cat_breadcrumbs h3 { width: auto; flex: 1; text-align: left; }
    .cat_bread_wrapper .breadcrumb { width: auto; display: flex; flex-wrap: wrap; justify-content: flex-end; }
    .cat_bread_wrapper .breadcrumb li { width: auto; }
    .cat-page-title > .container { padding: 0; }
    .cat-page-title .cat_about_wrapper > .row { margin: 0; }
    .cat-page-title .cat_about_wrapper > .row > div { padding: 0; }
    .cat_contact_info_wrapper { padding: 36px 0 12px; }
    .cat_contact_info_box { margin-bottom: 28px; }
}
@media (max-width: 767px) {
    .cat_dish_img .cat_dish_name { position: static; width: 100%; padding: 14px 16px; display: flow-root; }
    .cat_dish_img:has(.cat_dish_name) .cat_dish_img_caption { display: none; }
    .cat_footer aside.widget { margin-bottom: 28px; }
    .cat_footer h6.widget-title { margin-bottom: 12px; }
    .cat_footer .widget_links li a { display: inline-block; padding: 8px 0; }
    .cat_footer .widget_cat_whours a { color: #eee; display: inline-block; padding: 8px 0; }
    .cat_contact_info_box span.cat_contact_icon i:before { font-size: 48px; }
}

/* Desktop footer text columns: requested 1-inch vertical offset. */
@media (min-width: 992px) {
    .cat_footer .widget_links,
    .cat_footer .widget_cat_whours {
        padding-top: 1in;
    }
}
