/* ==========================================================================
   Qdaddy's Pitmaster BBQ — Theme Styles
   Colors: Red #ed1c24 | Grey #b3c3c3 | Yellow #fbb040
   Fonts: Insignia (headings) | Inter (body)
   ========================================================================== */

@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap');

@font-face {
    font-family: 'Insignia';
    src: url('fonts/Insignia.ttf') format('truetype');
    font-weight: normal;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Insignia A';
    src: url('fonts/Insignia A Regular.otf') format('opentype');
    font-weight: normal;
    font-style: normal;
    font-display: swap;
}

:root {
    --qdaddys-red: #ed1c24;
    --qdaddys-grey: #b3c3c3;
    --qdaddys-yellow: #fbb040;
    --qdaddys-black: #000000;
    --qdaddys-white: #ffffff;
    --qdaddys-font-display: 'Insignia', 'Insignia A', Georgia, serif;
    --qdaddys-font-body: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
}

/* --------------------------------------------------------------------------
   Base
   -------------------------------------------------------------------------- */

html,
html body {
    background-color: var(--qdaddys-black);
}

.theme-qdaddys {
    font-family: var(--qdaddys-font-body);
    color: var(--qdaddys-white);
    background-color: var(--qdaddys-black);
}

/* --------------------------------------------------------------------------
   Responsive embeds / iframes
   -------------------------------------------------------------------------- */

.theme-qdaddys iframe {
    max-width: 100%;
    border: 0;
}

/* E-gift card embed sits in the empty column beside the photo and fills it. */
.theme-qdaddys .qdaddys-page-main .col-md-8:has(> iframe.egiftcardembed) {
    display: flex;
    flex-direction: column;
    min-height: 720px;
}

.theme-qdaddys iframe.egiftcardembed {
    display: block;
    flex: 1 1 auto;
    width: 100% !important;
    max-width: 100%;
    height: 720px;
    min-height: 720px;
    border: 0;
    background-color: #fff;
}

@media (min-width: 768px) {
    .theme-qdaddys .qdaddys-page-main .row:has(> .col-md-8 > iframe.egiftcardembed) {
        align-items: stretch;
    }

    .theme-qdaddys .qdaddys-page-main .col-md-8:has(> iframe.egiftcardembed) {
        position: relative;
        min-height: 720px;
    }

    .theme-qdaddys .qdaddys-page-main .col-md-8 > iframe.egiftcardembed {
        position: absolute;
        inset: 0;
        width: 100% !important;
        height: 100% !important;
        min-height: 0;
    }
}

/*
 * Location photo | map rows
 * Photos have inconsistent editor padding; maps were free-floating at 4:3.
 * Match map height to the photo column and square up spacing.
 */
.theme-qdaddys .row:has(> [class*="col-"] > iframe[src*="google.com/maps"]),
.theme-qdaddys .row:has(> [class*="col-"] > iframe[src*="maps.google."]) {
    align-items: stretch;
}

/* Drop empty spacer blocks that sat under some location photos */
.theme-qdaddys .row:has(> [class*="col-"] > iframe[src*="google.com/maps"]) .ccm-custom-style-container:not(:has(img)):not(:has(picture)):not(:has(iframe)),
.theme-qdaddys .row:has(> [class*="col-"] > iframe[src*="maps.google."]) .ccm-custom-style-container:not(:has(img)):not(:has(picture)):not(:has(iframe)) {
    display: none;
}

/* Neutralize editor padding so photo + map share the same box edges */
.theme-qdaddys .row:has(> [class*="col-"] > iframe[src*="google.com/maps"]) .ccm-custom-style-container,
.theme-qdaddys .row:has(> [class*="col-"] > iframe[src*="maps.google."]) .ccm-custom-style-container {
    margin: 0 !important;
    padding: 0 !important;
}

.theme-qdaddys .row:has(> [class*="col-"] > iframe[src*="google.com/maps"]) .ccm-image-block,
.theme-qdaddys .row:has(> [class*="col-"] > iframe[src*="maps.google."]) .ccm-image-block,
.theme-qdaddys .row:has(> [class*="col-"] > iframe[src*="google.com/maps"]) picture,
.theme-qdaddys .row:has(> [class*="col-"] > iframe[src*="maps.google."]) picture {
    display: block;
    width: 100%;
}

.theme-qdaddys .row:has(> [class*="col-"] > iframe[src*="google.com/maps"]) img.ccm-image-block,
.theme-qdaddys .row:has(> [class*="col-"] > iframe[src*="maps.google."]) img.ccm-image-block {
    width: 100%;
    height: auto;
    display: block;
}

@media (min-width: 768px) {
    .theme-qdaddys .row > [class*="col-"]:has(> iframe[src*="google.com/maps"]),
    .theme-qdaddys .row > [class*="col-"]:has(> iframe[src*="maps.google."]) {
        position: relative;
        display: block;
        min-height: 280px;
    }

    /* Fill the column height created by the sibling photo */
    .theme-qdaddys .row > [class*="col-"] > iframe[src*="google.com/maps"],
    .theme-qdaddys .row > [class*="col-"] > iframe[src*="maps.google."] {
        position: absolute;
        inset: 0;
        display: block;
        width: 100% !important;
        height: 100% !important;
        max-width: none;
        min-height: 0;
        aspect-ratio: auto;
    }
}

@media (max-width: 767.98px) {
    .theme-qdaddys .row > [class*="col-"] > iframe[src*="google.com/maps"],
    .theme-qdaddys .row > [class*="col-"] > iframe[src*="maps.google."] {
        display: block;
        width: 100% !important;
        max-width: 100%;
        height: auto !important;
        aspect-ratio: 4 / 3;
        min-height: 240px;
        margin: 1rem 0 0;
    }
}

/* Title/address under a photo|map row — kill leftover negative margins
   that pull the heading up over the media (Smithfield had margin-top:-62px). */
.theme-qdaddys .container:has(> .row > [class*="col-"] > iframe[src*="google.com/maps"]) + .container .ccm-custom-style-container,
.theme-qdaddys .container:has(> .row > [class*="col-"] > iframe[src*="maps.google."]) + .container .ccm-custom-style-container {
    margin-top: 0 !important;
    position: relative;
    z-index: 2;
}

/*
 * Video embeds — stay large and centered.
 * Avoid height:100% on wrappers (that collapsed the Vimeo player).
 * Neutralize editor padding hacks that were used to fake-center a fixed 640px embed.
 */
.theme-qdaddys .ccm-custom-style-container:has(> iframe[src*="youtube.com"]),
.theme-qdaddys .ccm-custom-style-container:has(> iframe[src*="youtube-nocookie.com"]),
.theme-qdaddys .ccm-custom-style-container:has(> iframe[src*="youtu.be"]),
.theme-qdaddys .ccm-custom-style-container:has(> iframe[src*="player.vimeo.com"]),
.theme-qdaddys .ccm-custom-style-container:has(> iframe[src*="vimeo.com"]) {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    max-width: 100%;
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
}

.theme-qdaddys iframe[src*="youtube.com"],
.theme-qdaddys iframe[src*="youtube-nocookie.com"],
.theme-qdaddys iframe[src*="youtu.be"],
.theme-qdaddys iframe[src*="player.vimeo.com"],
.theme-qdaddys iframe[src*="vimeo.com"] {
    display: block;
    width: 100% !important;
    max-width: 960px;
    height: auto !important;
    aspect-ratio: 16 / 9;
    min-height: 360px;
    margin-inline: auto;
}

/* Elfsight / other widget hosts */
.theme-qdaddys [class*="elfsight-app-"],
.theme-qdaddys .eapps-widget {
    max-width: 100%;
    width: 100%;
    overflow: hidden;
}

.theme-qdaddys .qdaddys-instagram {
    overflow-x: clip;
}


.theme-qdaddys .qdaddys-main {
    overflow-x: hidden;
    overflow-y: visible;
}

.theme-qdaddys h1,
.theme-qdaddys h2,
.theme-qdaddys h3,
.theme-qdaddys h4,
.theme-qdaddys h5,
.theme-qdaddys h6,
.theme-qdaddys .qdaddys-display,
.theme-qdaddys .qdaddys-section-heading {
    font-family: var(--qdaddys-font-display);
    font-weight: normal;
    letter-spacing: 0.02em;
}

.theme-qdaddys .qdaddys-body-text,
.theme-qdaddys p {
    font-family: var(--qdaddys-font-body);
    font-weight: 400;
    line-height: 1.7;
}

/* --------------------------------------------------------------------------
   Insignia Text Utility Classes
   Reusable across the site — combine one size + one color, e.g.:
   <span class="qdaddys-insignia qdaddys-insignia--lg qdaddys-insignia--grey">
   Sizes:  --lg (large) / --md (medium) / --sm (small)
   Colors: --white / --grey (#B3C3C3) / --yellow
   -------------------------------------------------------------------------- */

.qdaddys-insignia {
    font-family: var(--qdaddys-font-display);
    font-weight: normal;
    letter-spacing: 0.02em;
}

.qdaddys-insignia--lg {
    font-size: clamp(2.5rem, 6vw, 4.25rem);
    line-height: 1.1;
}

.qdaddys-insignia--md {
    font-size: clamp(1.5rem, 3.2vw, 2.1rem);
    line-height: 1.3;
}

.qdaddys-insignia--sm {
    font-size: clamp(1rem, 1.8vw, 1.25rem);
    line-height: 1.4;
}

.qdaddys-insignia--white {
    color: var(--qdaddys-white);
}

.qdaddys-insignia--grey {
    color: var(--qdaddys-grey); /* #B3C3C3 */
}

.qdaddys-insignia--yellow {
    color: var(--qdaddys-yellow);
}

/* --------------------------------------------------------------------------
   Buttons
   -------------------------------------------------------------------------- */

.theme-qdaddys .btn-qdaddys-red,
.theme-qdaddys .btn.btn-qdaddys-red {
    background-color: var(--qdaddys-red);
    border: 2px solid var(--qdaddys-red);
    color: var(--qdaddys-white);
    font-family: var(--qdaddys-font-body);
    font-weight: 700;
    font-size: 0.75rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    border-radius: 50px;
    padding: 0.6rem 1.5rem;
    text-decoration: none;
    display: inline-block;
    transition: opacity 0.2s ease;
}

.theme-qdaddys .btn-qdaddys-yellow,
.theme-qdaddys .btn.btn-qdaddys-yellow {
    background-color: var(--qdaddys-yellow);
    border: 2px solid var(--qdaddys-yellow);
    color: var(--qdaddys-black);
    font-family: var(--qdaddys-font-body);
    font-weight: 700;
    font-size: 0.75rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    border-radius: 50px;
    padding: 0.6rem 1.5rem;
    text-decoration: none;
    display: inline-block;
    transition: opacity 0.2s ease;
}

.theme-qdaddys .btn-qdaddys-black,
.theme-qdaddys .btn.btn-qdaddys-black {
    background-color: var(--qdaddys-black);
    border: 2px solid var(--qdaddys-black);
    color: var(--qdaddys-white);
    font-family: var(--qdaddys-font-body);
    font-weight: 700;
    font-size: 0.75rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    border-radius: 50px;
    padding: 0.6rem 1.5rem;
    text-decoration: none;
    display: inline-block;
    transition: opacity 0.2s ease;
}

.theme-qdaddys .btn-qdaddys-grey,
.theme-qdaddys .btn.btn-qdaddys-grey {
    background-color: var(--qdaddys-grey);
    border: 2px solid var(--qdaddys-grey);
    color: var(--qdaddys-black);
    font-family: var(--qdaddys-font-body);
    font-weight: 700;
    font-size: 0.75rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    border-radius: 50px;
    padding: 0.6rem 1.5rem;
    text-decoration: none;
    display: inline-block;
    transition: opacity 0.2s ease;
}

/* Hover / focus for every action button is defined once, in the
   "Unified button hover" section at the end of this file. */

.theme-qdaddys .formidable [data-formidable-type="submit"],
.theme-qdaddys .formidable .col-12:has(> button[type="submit"]),
.theme-qdaddys .formidable .col-12:has(> input[type="submit"]) {
    text-align: center;
}

.theme-qdaddys .formidable [data-formidable-type="submit"] .btn,
.theme-qdaddys .formidable [data-formidable-type="submit"] button,
.theme-qdaddys .formidable [data-formidable-type="submit"] input[type="submit"],
.theme-qdaddys .formidable button[type="submit"],
.theme-qdaddys .formidable input[type="submit"] {
    background-color: var(--qdaddys-yellow);
    border: 2px solid var(--qdaddys-yellow);
    color: var(--qdaddys-black);
    font-family: var(--qdaddys-font-body);
    font-weight: 700;
    font-size: 1rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    border-radius: 999px;
    padding: 0.8rem 2rem;
    line-height: 1.2;
    width: auto;
    box-shadow: none;
}

.theme-qdaddys .formidable [data-formidable-type="submit"] .btn:hover,
.theme-qdaddys .formidable [data-formidable-type="submit"] .btn:focus,
.theme-qdaddys .formidable [data-formidable-type="submit"] button:hover,
.theme-qdaddys .formidable [data-formidable-type="submit"] button:focus,
.theme-qdaddys .formidable [data-formidable-type="submit"] input[type="submit"]:hover,
.theme-qdaddys .formidable [data-formidable-type="submit"] input[type="submit"]:focus,
.theme-qdaddys .formidable button[type="submit"]:hover,
.theme-qdaddys .formidable button[type="submit"]:focus,
.theme-qdaddys .formidable input[type="submit"]:hover,
.theme-qdaddys .formidable input[type="submit"]:focus {
    background-color: var(--qdaddys-yellow);
    border-color: var(--qdaddys-yellow);
    color: var(--qdaddys-black);
    opacity: 0.85;
}

.theme-qdaddys .formidable .help-block,
.theme-qdaddys .formidable .form-text,
.theme-qdaddys .formidable .text-muted {
    color: var(--qdaddys-grey) !important;
}

.theme-qdaddys .formidable .form-group {
    margin-bottom: 2rem;
}

.theme-qdaddys .formidable .form-group:has(> .help-block) {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    column-gap: 0.35rem;
    align-items: baseline;
}

.theme-qdaddys .formidable .form-group:has(> .help-block) > .form-label {
    grid-column: 1;
    grid-row: 1;
    margin-bottom: 0.2rem;
}

.theme-qdaddys .formidable .form-group:has(> .help-block) > .text-danger {
    grid-column: 2;
    grid-row: 1;
    justify-self: start;
}

.theme-qdaddys .formidable .form-group:has(> .help-block) > .help-block {
    grid-column: 1 / -1;
    grid-row: 2;
    margin: 0 0 0.45rem;
}

.theme-qdaddys .formidable .form-group:has(> .help-block) > :not(.form-label):not(.text-danger):not(.help-block) {
    grid-column: 1 / -1;
    grid-row: 3;
}

/* --------------------------------------------------------------------------
   Header
   -------------------------------------------------------------------------- */

.theme-qdaddys .qdaddys-header {
    background-color: var(--qdaddys-black);
    padding: 1.3rem 0;
    position: relative;
    z-index: 100;
}

.theme-qdaddys .qdaddys-header__inner {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    padding: 0 clamp(1rem, 3vw, 2rem) !important;
    max-width: 1400px !important;
    margin: 0 auto !important;
    width: 100% !important;
    box-sizing: border-box;
}

.theme-qdaddys .qdaddys-header__logo {
    padding: 0;
    margin: 0;
    flex-shrink: 1;
    min-width: 0;
    max-width: 100%;
}

/* max-width keeps the logo inside the screen at any size; height follows. */
.theme-qdaddys .qdaddys-header__logo img {
    display: block;
    max-height: clamp(203px, 29vw, 304px);
    max-width: 100%;
    width: auto;
    height: auto;
}

/* Tablets and phones: smaller logo, centered, menu button centered below. */
@media (max-width: 991.98px) {
    .theme-qdaddys .qdaddys-header__logo {
        flex: 0 0 100%;
        display: flex;
        justify-content: center;
    }

    .theme-qdaddys .qdaddys-header__logo img {
        width: min(100%, 420px);
        max-height: none;
    }

    .theme-qdaddys .qdaddys-header__toggle {
        margin: 0.75rem auto 0;
    }
}

.theme-qdaddys .qdaddys-header__toggle {
    border: none;
    background: transparent;
    padding: 0.5rem;
    margin-left: auto;
}

.theme-qdaddys .qdaddys-header__toggle .icon-bar {
    display: block;
    width: 25px;
    height: 2px;
    background-color: var(--qdaddys-white);
    transition: all 0.2s;
}

.theme-qdaddys .qdaddys-header__toggle .icon-bar + .icon-bar {
    margin-top: 5px;
}

.theme-qdaddys .qdaddys-header__toggle:not(.collapsed) .icon-bar:nth-of-type(1) {
    transform: rotate(45deg);
    transform-origin: 10% 10%;
}

.theme-qdaddys .qdaddys-header__toggle:not(.collapsed) .icon-bar:nth-of-type(2) {
    opacity: 0;
}

.theme-qdaddys .qdaddys-header__toggle:not(.collapsed) .icon-bar:nth-of-type(3) {
    transform: rotate(-45deg);
    transform-origin: 10% 90%;
}

.theme-qdaddys .qdaddys-header__nav-collapse {
    align-items: center;
    justify-content: flex-end;
    gap: 1.5rem;
}

.theme-qdaddys .qdaddys-header__menu {
    flex: 0 1 auto;
}

.theme-qdaddys .qdaddys-header__menu .navbar-nav,
.theme-qdaddys .qdaddys-header__menu .nav,
.theme-qdaddys .qdaddys-header__menu .ccm-block-autonav .nav {
    display: flex;
    flex-wrap: wrap;
    gap: 0.25rem 1.75rem;
    list-style: none;
    margin: 0;
    padding: 0;
    align-items: center;
    justify-content: center;
}

.theme-qdaddys .qdaddys-header__menu .ccm-block-autonav {
    background: none;
    border-radius: 0;
    padding: 0;
}

.theme-qdaddys .qdaddys-header__menu .nav-item {
    border: none;
}

.theme-qdaddys .qdaddys-header__menu .nav-item::before,
.theme-qdaddys .qdaddys-header__menu .nav-item::after {
    display: none;
    content: none;
}

.theme-qdaddys .qdaddys-header__menu .nav-link,
.theme-qdaddys .qdaddys-header__menu a {
    font-family: var(--qdaddys-font-display);
    color: var(--qdaddys-white);
    text-decoration: none;
    font-size: clamp(1rem, 2vw, 1.35rem);
    padding: 0.35rem 0;
    border: none;
    background: none;
    line-height: 1.2;
    transition: color 0.2s;
    white-space: nowrap;
}

.theme-qdaddys .qdaddys-header__menu .nav-link:hover,
.theme-qdaddys .qdaddys-header__menu a:hover,
.theme-qdaddys .qdaddys-header__menu .nav-link:focus,
.theme-qdaddys .qdaddys-header__menu a:focus {
    color: var(--qdaddys-yellow);
}

.theme-qdaddys .qdaddys-header__actions {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 0.5rem;
    flex-shrink: 0;
}

.theme-qdaddys .qdaddys-header__social {
    width: 100%;
    display: flex;
    justify-content: flex-end;
}

.theme-qdaddys .qdaddys-header__social .ccm-block-social-links ul,
.theme-qdaddys .qdaddys-header__social .qdaddys-social-links {
    display: flex;
    gap: 0.65rem;
    list-style: none;
    margin: 0;
    padding: 0;
    align-items: center;
    justify-content: flex-end;
}

.theme-qdaddys .qdaddys-header__social .ccm-block-social-links a,
.theme-qdaddys .qdaddys-header__social .qdaddys-social-links a {
    display: block;
    line-height: 0;
}

.theme-qdaddys .qdaddys-header__social .ccm-block-social-links svg {
    fill: var(--qdaddys-white);
    width: 44px;
    height: 44px;
}

.theme-qdaddys .qdaddys-header__social img {
    display: block;
    width: 44px;
    height: 44px;
}

.theme-qdaddys .qdaddys-header__cta {
    display: flex;
    gap: 0.75rem;
    align-items: center;
    justify-content: flex-end;
    flex-wrap: wrap;
}

.theme-qdaddys .qdaddys-header__cta .btn,
.theme-qdaddys .qdaddys-header__cta .btn-qdaddys-red,
.theme-qdaddys .qdaddys-header__cta .btn.btn-qdaddys-red,
.theme-qdaddys .qdaddys-header__cta .btn-qdaddys-yellow,
.theme-qdaddys .qdaddys-header__cta .btn.btn-qdaddys-yellow,
.theme-qdaddys .qdaddys-header__cta .btn-qdaddys-lg {
    white-space: nowrap;
    font-size: 1rem;
    padding: 0.8rem 2rem;
    letter-spacing: 0.08em;
    border-radius: 999px;
    line-height: 1.2;
}

@media (min-width: 992px) {
    .theme-qdaddys .qdaddys-header__nav-collapse {
        display: flex !important;
        flex: 1 1 auto;
        justify-content: space-between;
    }

    .theme-qdaddys .qdaddys-header__menu {
        margin-left: 2rem;
    }

    .theme-qdaddys .qdaddys-header__actions {
        margin-left: 1rem;
        align-items: flex-end;
    }

    .theme-qdaddys .qdaddys-header__toggle {
        display: none !important;
    }
}

div.theme-qdaddys.theme-atomik .qdaddys-header .navbar-toggler .icon-bar {
    transform: none;
    opacity: 1;
    background-color: var(--qdaddys-white);
}

div.theme-qdaddys.theme-atomik .qdaddys-header .qdaddys-header__toggle:not(.collapsed) .icon-bar:nth-of-type(1) {
    transform: rotate(45deg);
    transform-origin: 10% 10%;
}

div.theme-qdaddys.theme-atomik .qdaddys-header .qdaddys-header__toggle:not(.collapsed) .icon-bar:nth-of-type(2) {
    opacity: 0;
}

div.theme-qdaddys.theme-atomik .qdaddys-header .qdaddys-header__toggle:not(.collapsed) .icon-bar:nth-of-type(3) {
    transform: rotate(-45deg);
    transform-origin: 10% 90%;
}

/* --------------------------------------------------------------------------
   Hero
   -------------------------------------------------------------------------- */

.theme-qdaddys .qdaddys-hero {
    position: relative;
    width: 100%;
    overflow: hidden;
}

.theme-qdaddys .qdaddys-hero__video-wrap {
    position: relative;
    width: 100%;
    /* Match the video's 16:9 shape so nothing gets cropped */
    padding-bottom: 56.25%;
    overflow: hidden;
}

.theme-qdaddys .qdaddys-hero__video {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.theme-qdaddys .qdaddys-hero__content {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    pointer-events: none;
}

.theme-qdaddys .qdaddys-hero__content .ccm-area {
    pointer-events: auto;
}

/* --------------------------------------------------------------------------
   About Section
   -------------------------------------------------------------------------- */

.theme-qdaddys .qdaddys-about {
    position: relative;
    background-color: var(--qdaddys-black);
    padding: clamp(3.5rem, 7vw, 5.5rem) 0 clamp(4.5rem, 9vw, 6.5rem);
    overflow: hidden;
    isolation: isolate;
}

/* Static flame JPG → layered art we can animate without a video */
.theme-qdaddys .qdaddys-about__fire-art {
    position: absolute;
    inset: 0;
    z-index: 0;
    pointer-events: none;
    overflow: hidden;
}

.theme-qdaddys .qdaddys-about__fire-art-img {
    position: absolute;
    left: -8%;
    bottom: 0;
    width: 118%;
    height: 100%;
    object-fit: cover;
    object-position: left bottom;
    user-select: none;
    transform-origin: 18% 100%;
    will-change: transform, opacity, filter;
}

/* Base plate — soft brightness pulse only */
.theme-qdaddys .qdaddys-about__fire-art-img--base {
    animation: qdaddys-fire-art-base 5.5s ease-in-out infinite;
}

/* Heat shimmer — blurred duplicate, screen-blended, masked to flame zone */
.theme-qdaddys .qdaddys-about__fire-art-img--heat {
    mix-blend-mode: screen;
    opacity: 0.55;
    filter: blur(10px) saturate(1.35) brightness(1.2);
    -webkit-mask-image: radial-gradient(ellipse 70% 75% at 18% 100%, #000 0%, #000 42%, transparent 78%);
    mask-image: radial-gradient(ellipse 70% 75% at 18% 100%, #000 0%, #000 42%, transparent 78%);
    animation: qdaddys-fire-art-heat 3.6s ease-in-out infinite;
}

/* Hot core flicker — tighter mask on the brightest flame */
.theme-qdaddys .qdaddys-about__fire-art-img--spark {
    mix-blend-mode: color-dodge;
    opacity: 0.35;
    filter: blur(2px) contrast(1.25) brightness(1.15);
    -webkit-mask-image: radial-gradient(ellipse 45% 55% at 14% 100%, #000 0%, #000 30%, transparent 65%);
    mask-image: radial-gradient(ellipse 45% 55% at 14% 100%, #000 0%, #000 30%, transparent 65%);
    animation: qdaddys-fire-art-spark 2.4s ease-in-out infinite;
    animation-delay: -0.7s;
}

@keyframes qdaddys-fire-art-base {
    0%, 100% {
        transform: scale3d(1.01, 1.01, 1);
        filter: brightness(1) saturate(1);
    }
    35% {
        transform: scale3d(1.025, 1.04, 1);
        filter: brightness(1.08) saturate(1.12);
    }
    65% {
        transform: scale3d(1.015, 1.02, 1);
        filter: brightness(0.96) saturate(1.05);
    }
}

@keyframes qdaddys-fire-art-heat {
    0%, 100% {
        opacity: 0.4;
        transform: scale3d(1.03, 1.06, 1) translate3d(0, 0, 0) skewX(0deg);
    }
    25% {
        opacity: 0.7;
        transform: scale3d(1.06, 1.12, 1) translate3d(1.2%, -1.5%, 0) skewX(1.2deg);
    }
    55% {
        opacity: 0.35;
        transform: scale3d(1.04, 1.08, 1) translate3d(-1%, -0.5%, 0) skewX(-1deg);
    }
    80% {
        opacity: 0.65;
        transform: scale3d(1.07, 1.14, 1) translate3d(0.6%, -2%, 0) skewX(0.6deg);
    }
}

@keyframes qdaddys-fire-art-spark {
    0%, 100% {
        opacity: 0.22;
        transform: scale3d(1.04, 1.08, 1) translate3d(0, 0, 0);
    }
    18% {
        opacity: 0.55;
        transform: scale3d(1.08, 1.16, 1) translate3d(-0.8%, -2%, 0);
    }
    40% {
        opacity: 0.18;
        transform: scale3d(1.05, 1.1, 1) translate3d(1%, -0.8%, 0);
    }
    62% {
        opacity: 0.6;
        transform: scale3d(1.1, 1.2, 1) translate3d(0.4%, -2.5%, 0);
    }
    82% {
        opacity: 0.28;
        transform: scale3d(1.06, 1.12, 1) translate3d(-0.5%, -1%, 0);
    }
}

.theme-qdaddys .qdaddys-about::before {
    content: '';
    position: absolute;
    inset: 0;
    z-index: 0;
    pointer-events: none;
    background:
        linear-gradient(
            to bottom,
            rgba(0, 0, 0, 0.88) 0%,
            rgba(0, 0, 0, 0.76) 40%,
            rgba(0, 0, 0, 0.55) 65%,
            rgba(0, 0, 0, 0.28) 85%,
            rgba(0, 0, 0, 0.12) 100%
        ),
        /* Soften any remaining left-edge crop */
        linear-gradient(
            to right,
            rgba(0, 0, 0, 0.55) 0%,
            rgba(0, 0, 0, 0.15) 8%,
            transparent 18%
        );
}

/* Keep ::after as a wide heat haze so scale never reveals bare black */
.theme-qdaddys .qdaddys-about::after {
    content: '';
    position: absolute;
    left: -18%;
    bottom: -18%;
    width: 72%;
    height: 58%;
    z-index: 0;
    pointer-events: none;
    background: radial-gradient(
        ellipse 70% 65% at 40% 85%,
        rgba(255, 170, 55, 0.38) 0%,
        rgba(255, 100, 25, 0.18) 38%,
        transparent 72%
    );
    mix-blend-mode: screen;
    transform-origin: 35% 100%;
    will-change: transform, opacity, filter;
    animation: qdaddys-fire-flicker 4.2s ease-in-out infinite;
}

.theme-qdaddys .qdaddys-about__fire {
    position: absolute;
    inset: 0;
    z-index: 0;
    pointer-events: none;
    overflow: hidden;
}

.theme-qdaddys .qdaddys-about__fire-glow {
    position: absolute;
    left: -12%;
    bottom: -20%;
    width: 55%;
    height: 55%;
    mix-blend-mode: screen;
    transform-origin: 30% 100%;
    will-change: transform, opacity, filter;
}

.theme-qdaddys .qdaddys-about__fire-glow--1 {
    background: radial-gradient(
        ellipse 55% 70% at 32% 100%,
        rgba(255, 220, 120, 0.55) 0%,
        rgba(255, 140, 40, 0.28) 28%,
        transparent 62%
    );
    animation: qdaddys-fire-glow-a 3.4s ease-in-out infinite;
}

.theme-qdaddys .qdaddys-about__fire-glow--2 {
    width: 48%;
    height: 48%;
    left: -4%;
    background: radial-gradient(
        ellipse 45% 60% at 28% 100%,
        rgba(255, 90, 20, 0.4) 0%,
        rgba(255, 60, 10, 0.15) 40%,
        transparent 68%
    );
    animation: qdaddys-fire-glow-b 2.7s ease-in-out infinite;
    animation-delay: -0.8s;
}

.theme-qdaddys .qdaddys-about__fire-glow--3 {
    width: 40%;
    height: 42%;
    left: 2%;
    bottom: -12%;
    filter: blur(6px);
    background: radial-gradient(
        ellipse 50% 55% at 35% 100%,
        rgba(255, 240, 180, 0.35) 0%,
        transparent 58%
    );
    animation: qdaddys-fire-glow-c 1.9s ease-in-out infinite;
    animation-delay: -0.4s;
}

/* Never scale below 1 — shrinking was what flashed sharp black beside the flame crop */
@keyframes qdaddys-fire-flicker {
    0%, 100% {
        opacity: 0.8;
        transform: scale3d(1.02, 1.04, 1) translate3d(0, 0, 0);
        filter: brightness(1);
    }
    22% {
        opacity: 0.92;
        transform: scale3d(1.05, 1.1, 1) translate3d(0.6%, -1.2%, 0);
        filter: brightness(1.18);
    }
    45% {
        opacity: 0.7;
        transform: scale3d(1.03, 1.06, 1) translate3d(-0.5%, -0.4%, 0);
        filter: brightness(0.95);
    }
    68% {
        opacity: 1;
        transform: scale3d(1.07, 1.14, 1) translate3d(0.4%, -1.8%, 0);
        filter: brightness(1.28);
    }
    86% {
        opacity: 0.78;
        transform: scale3d(1.04, 1.08, 1) translate3d(-0.3%, -0.8%, 0);
        filter: brightness(1.05);
    }
}

@keyframes qdaddys-fire-glow-a {
    0%, 100% {
        opacity: 0.75;
        transform: scale3d(1.02, 1.05, 1) translate3d(0, 0, 0) skewX(0deg);
    }
    30% {
        opacity: 1;
        transform: scale3d(1.06, 1.14, 1) translate3d(1%, -2%, 0) skewX(1deg);
    }
    60% {
        opacity: 0.65;
        transform: scale3d(1.03, 1.07, 1) translate3d(-1%, -0.5%, 0) skewX(-0.8deg);
    }
}

@keyframes qdaddys-fire-glow-b {
    0%, 100% {
        opacity: 0.55;
        transform: scale3d(1.04, 1.06, 1) translate3d(0, 0, 0);
    }
    40% {
        opacity: 0.9;
        transform: scale3d(1.08, 1.18, 1) translate3d(-1.5%, -2.5%, 0);
    }
    70% {
        opacity: 0.45;
        transform: scale3d(1.03, 1.08, 1) translate3d(1%, -1%, 0);
    }
}

@keyframes qdaddys-fire-glow-c {
    0%, 100% {
        opacity: 0.4;
        transform: scale3d(1.05, 1.08, 1);
        filter: blur(6px) brightness(1);
    }
    50% {
        opacity: 0.75;
        transform: scale3d(1.1, 1.22, 1) translate3d(0, -2%, 0);
        filter: blur(8px) brightness(1.35);
    }
}

.theme-qdaddys .qdaddys-about > .container {
    position: relative;
    z-index: 1;
}

.theme-qdaddys .qdaddys-about .qdaddys-about__lead,
.theme-qdaddys .qdaddys-about__text p,
.theme-qdaddys .qdaddys-about .ccm-block-content p,
.theme-qdaddys .qdaddys-about p {
    text-shadow: 0 1px 3px rgba(0, 0, 0, 0.9), 0 0 14px rgba(0, 0, 0, 0.8);
}

.theme-qdaddys .qdaddys-about__embers {
    position: absolute;
    left: 0;
    bottom: 0;
    width: 70%;
    height: 48%;
    z-index: 0;
    pointer-events: none;
    overflow: hidden;
}

.theme-qdaddys .qdaddys-about__ember {
    position: absolute;
    left: var(--x, 10%);
    bottom: 2%;
    width: var(--size, 4px);
    height: var(--size, 4px);
    border-radius: 50%;
    background: radial-gradient(circle, #fff6d0 0%, #ffb347 40%, #ff6a00 70%, transparent 100%);
    box-shadow: 0 0 5px 1px rgba(255, 150, 40, 0.55);
    opacity: 0;
    will-change: transform, opacity;
    animation: qdaddys-ember-rise var(--dur, 5s) cubic-bezier(0.22, 0.6, 0.35, 1) var(--delay, 0s) infinite;
}

@keyframes qdaddys-ember-rise {
    0% {
        transform: translate3d(0, 8px, 0) scale(0.4);
        opacity: 0;
    }
    8% {
        opacity: 0.9;
    }
    35% {
        transform: translate3d(calc(var(--drift, 12px) * 0.45), -45px, 0) scale(1);
        opacity: 0.85;
    }
    70% {
        transform: translate3d(var(--drift, 12px), -95px, 0) scale(0.7);
        opacity: 0.45;
    }
    100% {
        transform: translate3d(calc(var(--drift, 12px) * 1.35), -150px, 0) scale(0.2);
        opacity: 0;
    }
}

@media (prefers-reduced-motion: reduce) {
    .theme-qdaddys .qdaddys-about::after,
    .theme-qdaddys .qdaddys-about__fire-glow,
    .theme-qdaddys .qdaddys-about__flame,
    .theme-qdaddys .qdaddys-about__fire-art-img {
        animation: none !important;
    }

    .theme-qdaddys .qdaddys-about::after {
        opacity: 0.75;
    }

    .theme-qdaddys .qdaddys-about__fire-art-img--heat,
    .theme-qdaddys .qdaddys-about__fire-art-img--spark {
        opacity: 0;
    }

    .theme-qdaddys .qdaddys-about__ember {
        animation: none;
        opacity: 0;
    }
}

.theme-qdaddys .qdaddys-about__flame {
    position: absolute;
    top: -8%;
    left: -2%;
    z-index: 0;
    width: min(26vw, 340px);
    height: auto;
    opacity: 0.14;
    filter: blur(1px);
    pointer-events: none;
    user-select: none;
    transform-origin: 40% 80%;
    animation: qdaddys-flame-mark 7s ease-in-out infinite;
}

@keyframes qdaddys-flame-mark {
    0%, 100% {
        opacity: 0.12;
        transform: scale(1) translate3d(0, 0, 0);
        filter: blur(1px) brightness(1);
    }
    40% {
        opacity: 0.18;
        transform: scale(1.02) translate3d(0, -1%, 0);
        filter: blur(1.2px) brightness(1.15);
    }
    70% {
        opacity: 0.14;
        transform: scale(1.01) translate3d(0.5%, 0, 0);
        filter: blur(1px) brightness(1.05);
    }
}

.theme-qdaddys .qdaddys-about__header {
    margin-bottom: clamp(1.75rem, 4vw, 2.75rem);
}

.theme-qdaddys .qdaddys-about__heading {
    display: flex;
    align-items: center;
    gap: clamp(1rem, 3vw, 2rem);
    color: var(--qdaddys-white);
    font-size: clamp(2.5rem, 6vw, 4.25rem);
    margin: 0;
    line-height: 1.05;
    white-space: nowrap;
}

.theme-qdaddys .qdaddys-about__heading::after {
    content: '';
    flex: 1 1 auto;
    height: 2px;
    background-color: var(--qdaddys-yellow);
    min-width: 2rem;
}

.theme-qdaddys .qdaddys-about__heading .qdaddys-accent {
    color: var(--qdaddys-yellow);
}

.theme-qdaddys .qdaddys-about__photo {
    display: block;
    width: 100%;
    max-width: 420px;
    height: auto;
    border-radius: 0;
    box-shadow: 0 25px 50px rgba(0, 0, 0, 0.55), 0 0 0 1px rgba(255, 255, 255, 0.06);
}

.theme-qdaddys .qdaddys-about__text {
    position: relative;
    z-index: 1;
}

.theme-qdaddys .qdaddys-about__text p {
    text-shadow: 0 1px 6px rgba(0, 0, 0, 0.85);
}

.theme-qdaddys .qdaddys-about__body {
    position: relative;
    z-index: 1;
}

.theme-qdaddys .qdaddys-about__lead,
.theme-qdaddys .qdaddys-about .qdaddys-about__lead {
    font-family: var(--qdaddys-font-display); /* Insignia */
    font-weight: normal;
    letter-spacing: 0.02em;
    font-size: clamp(1.5rem, 3.2vw, 2.1rem);
    line-height: 1.3;
    color: var(--qdaddys-grey); /* #B3C3C3 */
    margin-bottom: 1.5rem;
}

/* Keep the lead paragraph's styling intact even when Concrete wraps it in
   a .ccm-block-content div (higher-specificity .ccm-block-content p rule
   below would otherwise override its color/size). */
.theme-qdaddys .qdaddys-about .ccm-block-content .qdaddys-about__lead {
    font-family: var(--qdaddys-font-display); /* Insignia */
    font-weight: normal;
    letter-spacing: 0.02em;
    font-size: clamp(1.5rem, 3.2vw, 2.1rem);
    line-height: 1.3;
    color: var(--qdaddys-grey); /* #B3C3C3 */
    margin-bottom: 1.5rem;
}

.theme-qdaddys .qdaddys-about__text p,
.theme-qdaddys .qdaddys-about .ccm-block-content p,
.theme-qdaddys .qdaddys-about p {
    font-family: var(--qdaddys-font-body);
    font-weight: 400;
    font-size: clamp(0.95rem, 1.8vw, 1.05rem);
    line-height: 1.75;
    color: var(--qdaddys-white);
    margin-bottom: 1rem;
}

.theme-qdaddys .qdaddys-about .qdaddys-section-heading,
.theme-qdaddys .qdaddys-about h2:not(.qdaddys-about__heading) {
    color: var(--qdaddys-yellow);
    font-size: clamp(2rem, 5vw, 3.5rem);
    margin-bottom: 2rem;
}

.theme-qdaddys .qdaddys-about .ccm-image img {
    max-width: 100%;
    height: auto;
}

/* --------------------------------------------------------------------------
   Locations Section — unified wood block
   -------------------------------------------------------------------------- */

.theme-qdaddys .qdaddys-locations {
    padding: 0;
    background: none;
}

.theme-qdaddys .qdaddys-locations-wood {
    position: relative;
    background-color: #7a5230;
    overflow: hidden;
}

.theme-qdaddys .qdaddys-locations-wood__wall {
    position: absolute;
    top: -14%;
    left: -14%;
    width: 128%;
    height: 128%;
    object-fit: cover;
    z-index: 0;
    pointer-events: none;
    will-change: transform;
    transform: translate3d(0, 0, 0);
}

.theme-qdaddys .qdaddys-locations-wood__overlay {
    position: relative;
    z-index: 1;
    width: 100%;
    padding: clamp(2rem, 5vw, 3.5rem) 0 clamp(1.5rem, 3vw, 2.5rem);
}

.theme-qdaddys .qdaddys-locations-wood__floor-wrap {
    position: relative;
    z-index: 1;
    overflow: hidden;
    width: 100%;
    aspect-ratio: 1925 / 381;
}

.theme-qdaddys .qdaddys-locations-wood__floor-strip {
    position: absolute;
    top: -6%;
    left: -6%;
    width: 112%;
    height: 112%;
    object-fit: cover;
    display: block;
    will-change: transform;
    transform: translate3d(0, 0, 0);
}

@media (prefers-reduced-motion: reduce) {
    .theme-qdaddys .qdaddys-locations-wood__wall,
    .theme-qdaddys .qdaddys-locations-wood__floor-strip {
        transform: none !important;
    }
}

.theme-qdaddys .qdaddys-locations-wood__overlay a,
.theme-qdaddys .qdaddys-locations-wood__overlay button,
.theme-qdaddys .qdaddys-locations-wood__overlay input,
.theme-qdaddys .qdaddys-locations-wood__overlay select,
.theme-qdaddys .qdaddys-locations-wood__overlay textarea {
    pointer-events: auto;
}

.theme-qdaddys .qdaddys-locations-wood__content {
    position: relative;
    z-index: 1;
    padding: 0 15px;
    flex: 0 1 auto;
    width: 100%;
    max-width: 100%;
}

.theme-qdaddys .qdaddys-locations-wood .qdaddys-section-heading,
.theme-qdaddys .qdaddys-locations-wood h2 {
    color: var(--qdaddys-white);
    font-size: clamp(2.25rem, 6vw, 4rem);
    line-height: 1.25;
    text-align: center;
    margin-bottom: 2.5rem;
    text-shadow: 2px 3px 4px rgba(0, 0, 0, 0.6), 0 1px 2px rgba(0, 0, 0, 0.5);
}

.theme-qdaddys .qdaddys-locations-wood__floor,
.theme-qdaddys .qdaddys-locations-wood__floor-image {
    display: none;
}

.theme-qdaddys .qdaddys-locations__welcome,
.theme-qdaddys .qdaddys-locations__welcome-image {
    display: none;
}

.theme-qdaddys .qdaddys-location-card {
    text-align: center;
    margin-bottom: 2rem;
    width: 100%;
}

.theme-qdaddys .qdaddys-location-card picture,
.theme-qdaddys .qdaddys-location-card .ccm-image-block {
    display: block;
    width: 100%;
}

.theme-qdaddys .qdaddys-locations-wood .qdaddys-location-card > .ccm-custom-style-container {
    padding-top: 0;
}

.theme-qdaddys .qdaddys-locations-wood .qdaddys-location-card__address {
    margin-top: 1rem;
}

.theme-qdaddys .qdaddys-location-card img,
.theme-qdaddys .qdaddys-location-card__image img {
    display: block;
    width: 100%;
    max-width: 100%;
    height: auto;
    aspect-ratio: 538 / 380;
    object-fit: cover;
    object-position: center;
    border-radius: 0;
    box-shadow: 0 12px 24px rgba(0, 0, 0, 0.45);
}

/* Desktop: lock photos to one fixed size instead of growing with the column
   (they were upscaling past their 538x380 source on wide screens). */
@media (min-width: 992px) {
    .theme-qdaddys .qdaddys-location-card img,
    .theme-qdaddys .qdaddys-location-card img.ccm-image-block,
    .theme-qdaddys .qdaddys-location-card__image img {
        width: 400px;
        margin-left: auto;
        margin-right: auto;
    }
}

.theme-qdaddys .qdaddys-location-card__title {
    font-family: var(--qdaddys-font-body);
    font-weight: 800;
    font-size: 1.1rem;
    color: var(--qdaddys-white);
    margin: 1rem 0 0.25rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    text-shadow: 0 1px 3px rgba(0, 0, 0, 0.45);
}

.theme-qdaddys .qdaddys-locations-wood .qdaddys-location-card__title {
    display: none;
}

.theme-qdaddys .qdaddys-location-card__address {
    font-family: var(--qdaddys-font-body);
    font-weight: 600;
    font-size: clamp(1.3rem, 2.6vw, 1.7rem);
    line-height: 1.35;
    color: var(--qdaddys-white);
    margin-bottom: 0.4rem;
    text-shadow: 1px 2px 3px rgba(0, 0, 0, 0.6), 0 1px 2px rgba(0, 0, 0, 0.45);
}

.theme-qdaddys .qdaddys-location-card__phone {
    font-family: var(--qdaddys-font-body);
    font-weight: 800;
    font-size: clamp(1.5rem, 3vw, 2rem);
    color: var(--qdaddys-white);
    margin-bottom: 1.25rem;
    text-shadow: 2px 3px 4px rgba(0, 0, 0, 0.6), 0 1px 2px rgba(0, 0, 0, 0.5);
}

.theme-qdaddys .qdaddys-location-card__actions {
    display: flex;
    flex-direction: column;
    gap: 0.6rem;
    align-items: center;
}

.theme-qdaddys .qdaddys-location-card__actions .btn {
    min-width: 190px;
    font-size: 0.95rem;
    padding: 0.85rem 2.5rem;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.4);
}

/* --------------------------------------------------------------------------
   Social Section
   -------------------------------------------------------------------------- */

.theme-qdaddys .qdaddys-social-section {
    position: relative;
    background-color: var(--qdaddys-black);
    padding: 4rem 0;
    isolation: isolate;
    overflow: hidden;
}

.theme-qdaddys .qdaddys-social-section__smoke {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 0;
    pointer-events: none;
    overflow: hidden;
}

.theme-qdaddys .qdaddys-social-section .container {
    position: relative;
    z-index: 1;
}

.theme-qdaddys .qdaddys-social-section .qdaddys-section-heading,
.theme-qdaddys .qdaddys-social-section h2 {
    color: var(--qdaddys-white);
    font-size: clamp(2.5rem, 6vw, 4.25rem);
    line-height: 1.15;
    margin-bottom: 1.5rem;
}

.theme-qdaddys .qdaddys-section-heading__line-wrap {
    display: flex;
    align-items: center;
    gap: 1.25rem;
    width: 100%;
}

.theme-qdaddys .qdaddys-section-heading__line-wrap::after {
    content: '';
    flex: 1 1 auto;
    height: 2px;
    background-color: var(--qdaddys-white);
    min-width: 2rem;
}

.theme-qdaddys .qdaddys-social-section .ccm-block-social-links ul {
    display: flex;
    gap: 1rem;
    list-style: none;
    padding: 0;
    margin: 1rem 0;
}

.theme-qdaddys .qdaddys-social-section .ccm-block-social-links a {
    color: var(--qdaddys-white);
    font-size: 2.5rem;
}

.theme-qdaddys .qdaddys-social-section .ccm-block-social-links svg {
    fill: var(--qdaddys-white);
    width: 48px;
    height: 48px;
}

/* --------------------------------------------------------------------------
   Email Sign Up
   -------------------------------------------------------------------------- */

.theme-qdaddys .qdaddys-email-signup {
    background-color: var(--qdaddys-yellow);
    padding: 3rem 0;
}

.theme-qdaddys .qdaddys-container-email {
    text-align: center;
    max-width: 900px;
    margin: 0 auto;
}

.theme-qdaddys .qdaddys-email-signup .qdaddys-section-heading,
.theme-qdaddys .qdaddys-email-signup h2 {
    color: var(--qdaddys-black);
    font-size: clamp(2.25rem, 6vw, 3.75rem);
    margin-bottom: 0.5rem;
}

.theme-qdaddys .qdaddys-email-signup .ccm-block-content p,
.theme-qdaddys .qdaddys-email-signup p {
    color: var(--qdaddys-black);
    font-family: var(--qdaddys-font-body);
    font-weight: 500;
}

.theme-qdaddys .qdaddys-email-signup__prompt {
    font-size: 1rem;
    margin: 0 auto 1.5rem;
}

.theme-qdaddys .qdaddys-email-signup__form {
    display: flex;
    justify-content: center;
    align-items: stretch;
    gap: 1rem;
    flex-wrap: wrap;
    margin-top: 0;
}

.theme-qdaddys .qdaddys-email-signup__input-group {
    display: flex;
    align-items: stretch;
    border: 2px solid var(--qdaddys-black);
    border-radius: 8px;
    overflow: hidden;
    flex: 1 1 420px;
    max-width: 460px;
}

.theme-qdaddys .qdaddys-email-signup__label {
    display: flex;
    align-items: center;
    background-color: #8a6123;
    color: var(--qdaddys-white);
    font-family: var(--qdaddys-font-body);
    font-weight: 700;
    padding: 0 1.25rem;
    white-space: nowrap;
}

.theme-qdaddys .qdaddys-email-signup__input-group input[type="email"] {
    flex: 1;
    min-width: 0;
    border: none;
    padding: 0.85rem 1rem;
    background-color: #573d16;
    color: var(--qdaddys-white);
    font-family: var(--qdaddys-font-body);
}

.theme-qdaddys .qdaddys-email-signup__input-group input[type="email"]::placeholder {
    color: rgba(255, 255, 255, 0.6);
}

.theme-qdaddys .qdaddys-email-signup__submit {
    background-color: var(--qdaddys-black);
    color: var(--qdaddys-white);
    border: none;
    border-radius: 50px;
    padding: 0.85rem 2.25rem;
    font-family: var(--qdaddys-font-body);
    font-weight: 700;
    font-size: 1rem;
    text-transform: none;
    letter-spacing: normal;
    cursor: pointer;
    flex-shrink: 0;
}


/* --------------------------------------------------------------------------
   Instagram + Footer smoke bridge
   -------------------------------------------------------------------------- */

.theme-qdaddys .qdaddys-smoke-bridge {
    position: relative;
    background-color: var(--qdaddys-black);
    isolation: isolate;
}

.theme-qdaddys .qdaddys-smoke-bridge__smoke {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 0;
    pointer-events: none;
    overflow: hidden;
}

.theme-qdaddys .qdaddys-smoke-bridge__smoke-layer {
    position: absolute;
    top: -20%;
    left: -20%;
    width: 140%;
    height: 140%;
    object-fit: cover;
    will-change: transform, opacity;
    transform-origin: 50% 70%;
}

.theme-qdaddys .qdaddys-smoke-bridge__smoke-layer--1 {
    object-position: right bottom;
    opacity: 0.9;
    animation: qdaddys-smoke-billow-1 28s ease-in-out infinite;
}

.theme-qdaddys .qdaddys-smoke-bridge__smoke-layer--2 {
    object-position: left top;
    opacity: 0.4;
    mix-blend-mode: screen;
    filter: blur(1px);
    animation: qdaddys-smoke-billow-2 38s ease-in-out infinite;
    animation-delay: -12s;
}

.theme-qdaddys .qdaddys-smoke-bridge__smoke-layer--3 {
    object-position: center top;
    opacity: 0.3;
    mix-blend-mode: screen;
    filter: blur(2px);
    animation: qdaddys-smoke-billow-3 22s ease-in-out infinite;
    animation-delay: -6s;
}

/* Shared organic smoke motion — visible billow without looking twitchy */
@keyframes qdaddys-smoke-billow-1 {
    0%   { transform: translate3d(0%, 4%, 0) scale(1.05) rotate(0deg); opacity: 0.75; }
    25%  { transform: translate3d(-4%, -2%, 0) scale(1.12) rotate(0.8deg); opacity: 1; }
    50%  { transform: translate3d(3%, -5%, 0) scale(1.18) rotate(-0.6deg); opacity: 0.7; }
    75%  { transform: translate3d(-2%, 1%, 0) scale(1.1) rotate(0.5deg); opacity: 0.95; }
    100% { transform: translate3d(0%, 4%, 0) scale(1.05) rotate(0deg); opacity: 0.75; }
}

@keyframes qdaddys-smoke-billow-2 {
    0%   { transform: scale(-1.15, 1.15) translate3d(0%, 2%, 0) rotate(0deg); opacity: 0.35; }
    33%  { transform: scale(-1.25, 1.25) translate3d(5%, -4%, 0) rotate(-1deg); opacity: 0.55; }
    66%  { transform: scale(-1.2, 1.2) translate3d(-4%, -2%, 0) rotate(0.8deg); opacity: 0.28; }
    100% { transform: scale(-1.15, 1.15) translate3d(0%, 2%, 0) rotate(0deg); opacity: 0.35; }
}

@keyframes qdaddys-smoke-billow-3 {
    0%   { transform: translate3d(2%, 5%, 0) scale(1.2) rotate(-1deg); opacity: 0.25; }
    40%  { transform: translate3d(-5%, -1%, 0) scale(1.35) rotate(1.2deg); opacity: 0.45; }
    70%  { transform: translate3d(4%, -4%, 0) scale(1.28) rotate(-0.8deg); opacity: 0.2; }
    100% { transform: translate3d(2%, 5%, 0) scale(1.2) rotate(-1deg); opacity: 0.25; }
}

/* Legacy aliases if any older markup still references drift names */
@keyframes qdaddys-smoke-drift-1 {
    0%, 100% { transform: translate3d(0, 0, 0); }
}

@keyframes qdaddys-smoke-drift-2 {
    0%, 100% { transform: translate3d(0, 0, 0); }
}

@media (prefers-reduced-motion: reduce) {
    .theme-qdaddys .qdaddys-smoke-bridge__smoke-layer--1,
    .theme-qdaddys .qdaddys-smoke-bridge__smoke-layer--2,
    .theme-qdaddys .qdaddys-smoke-bridge__smoke-layer--3,
    .theme-qdaddys .qdaddys-footer__smoke-layer {
        animation: none !important;
        filter: none;
    }
    .theme-qdaddys .qdaddys-smoke-bridge__smoke-layer--1,
    .theme-qdaddys .qdaddys-footer__smoke-layer--1 {
        opacity: 0.9;
    }
    .theme-qdaddys .qdaddys-smoke-bridge__smoke-layer--2,
    .theme-qdaddys .qdaddys-footer__smoke-layer--2 {
        opacity: 0.35;
    }
    .theme-qdaddys .qdaddys-smoke-bridge__smoke-layer--3,
    .theme-qdaddys .qdaddys-footer__smoke-layer--3 {
        opacity: 0.22;
    }
}

.theme-qdaddys .qdaddys-instagram {
    position: relative;
    z-index: 1;
    background-color: transparent;
    padding: 2.5rem 0 0;
}

.theme-qdaddys .qdaddys-instagram--smoke-bridge {
    padding-bottom: 0;
    margin-bottom: 0;
    overflow: visible;
}

.theme-qdaddys .qdaddys-instagram .container {
    position: relative;
    z-index: 1;
}

.theme-qdaddys .qdaddys-instagram-feed {
    max-width: 935px;
    margin: 0 auto;
    position: relative;
    z-index: 1;
}

.theme-qdaddys .qdaddys-instagram-feed__header,
.theme-qdaddys .qdaddys-instagram-feed__grid,
.theme-qdaddys .qdaddys-instagram-feed__load-more {
    position: relative;
    z-index: 1;
}

.theme-qdaddys .qdaddys-instagram-feed__load-more {
    text-align: center;
    padding: 0 0 3rem;
}

.theme-qdaddys .qdaddys-instagram .ccm-block-gallery,
.theme-qdaddys .qdaddys-instagram .ccm-gallery {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 0.5rem;
}

.theme-qdaddys .qdaddys-instagram .ccm-gallery-row {
    display: contents;
}

.theme-qdaddys .qdaddys-instagram .ccm-block-gallery img,
.theme-qdaddys .qdaddys-instagram .ccm-gallery img {
    width: 100%;
    height: auto;
    aspect-ratio: 1;
    object-fit: cover;
}

/* --------------------------------------------------------------------------
   Footer — override Atomik Bedrock preset (div.theme-atomik footer { #f3f3f3 })
   -------------------------------------------------------------------------- */

div.theme-qdaddys.theme-atomik footer.qdaddys-footer,
div.theme-qdaddys footer.qdaddys-footer {
    background-color: transparent !important;
    color: var(--qdaddys-white) !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}

div.theme-qdaddys.theme-atomik footer.qdaddys-footer a:not(.btn-qdaddys-find-location):not(.btn-qdaddys-red):not(.btn-qdaddys-yellow):not(.btn-qdaddys-grey),
div.theme-qdaddys footer.qdaddys-footer a:not(.btn-qdaddys-find-location):not(.btn-qdaddys-red):not(.btn-qdaddys-yellow):not(.btn-qdaddys-grey) {
    color: var(--qdaddys-white);
}

.theme-qdaddys .qdaddys-footer {
    color: var(--qdaddys-white);
    position: relative;
    z-index: 1;
    margin-top: 0;
    background-color: transparent;
}

.theme-qdaddys .qdaddys-footer__smoke-zone {
    position: relative;
    z-index: 1;
    padding: 0 0 2.5rem;
    background-color: var(--qdaddys-black);
    color: var(--qdaddys-white);
    overflow: hidden;
    isolation: isolate;
}

/* Absolute decorative layers only — never affect footer height */
.theme-qdaddys .qdaddys-footer__smoke {
    position: absolute;
    inset: 0;
    z-index: 0;
    pointer-events: none;
    overflow: hidden;
}

.theme-qdaddys .qdaddys-footer__smoke-layer {
    position: absolute;
    display: block;
    top: -20%;
    left: -20%;
    width: 140%;
    height: 140%;
    max-width: none;
    background: url('../images/black-smoke.png') center / cover no-repeat;
    will-change: transform, opacity;
    transform-origin: 50% 80%;
}

.theme-qdaddys .qdaddys-footer__smoke-layer--1 {
    background-position: right bottom;
    opacity: 0.92;
    animation: qdaddys-smoke-billow-1 28s ease-in-out infinite;
}

.theme-qdaddys .qdaddys-footer__smoke-layer--2 {
    background-position: left center;
    opacity: 0.45;
    mix-blend-mode: screen;
    filter: blur(1.5px);
    animation: qdaddys-smoke-billow-2 38s ease-in-out infinite;
    animation-delay: -10s;
}

.theme-qdaddys .qdaddys-footer__smoke-layer--3 {
    background-position: center top;
    opacity: 0.3;
    mix-blend-mode: screen;
    filter: blur(2.5px);
    animation: qdaddys-smoke-billow-3 22s ease-in-out infinite;
    animation-delay: -5s;
}

/* Home continuous bridge already covers this zone — keep footer size normal,
   still allow a light extra layer so motion reads in the locations band. */
.theme-qdaddys .qdaddys-footer--in-smoke-bridge .qdaddys-footer__smoke-zone {
    background-color: transparent;
}

.theme-qdaddys .qdaddys-footer--in-smoke-bridge .qdaddys-footer__smoke-layer--1 {
    opacity: 0.55;
}

.theme-qdaddys .qdaddys-footer__smoke-zone > .container {
    position: relative;
    z-index: 1;
}

.theme-qdaddys .qdaddys-footer__top {
    position: relative;
    z-index: 1;
    padding: 1.5rem 0 2rem;
}

.theme-qdaddys .qdaddys-footer__logo-col img {
    max-height: 120px;
    width: auto;
}

.theme-qdaddys .btn-qdaddys-find-location,
.theme-qdaddys .btn.btn-qdaddys-find-location,
div.theme-qdaddys footer.qdaddys-footer a.btn-qdaddys-find-location {
    background-color: var(--qdaddys-grey); /* #B3C3C3 */
    border: none;
    color: var(--qdaddys-black) !important;
    font-family: var(--qdaddys-font-body);
    font-weight: 700;
    font-size: 1.3rem;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    border-radius: 50px;
    padding: 1.6rem 2.9rem;
    text-decoration: none;
    display: inline-block;
    white-space: nowrap;
}


.theme-qdaddys .qdaddys-footer__find-location {
    display: flex;
    justify-content: flex-end;
    align-items: center;
}

.theme-qdaddys .qdaddys-footer__locations {
    position: relative;
    z-index: 1;
    padding: 0 0 1rem;
    background: transparent;
}

.theme-qdaddys .qdaddys-footer-location {
    position: relative;
    margin-bottom: 1.25rem;
    padding-left: calc(40px + 0.9rem);
    min-height: 40px;
}

.theme-qdaddys .qdaddys-footer-location__pin {
    position: absolute;
    top: 0.15rem;
    left: 0;
    margin: 0;
    width: 40px;
    height: 40px;
}

.theme-qdaddys .qdaddys-footer__locations h3,
.theme-qdaddys .qdaddys-footer__locations .location-title {
    font-family: var(--qdaddys-font-display);
    font-weight: normal;
    font-size: 1.75rem;
    text-transform: none;
    letter-spacing: 0.01em;
    margin-bottom: 0.35rem;
    color: var(--qdaddys-grey);
}

.theme-qdaddys .qdaddys-footer__locations p {
    font-family: var(--qdaddys-font-body);
    font-weight: 600;
    font-size: 1.05rem;
    margin-bottom: 0.15rem;
    color: var(--qdaddys-white) !important;
}

.theme-qdaddys .qdaddys-footer-location__phone {
    font-weight: 800 !important;
    font-size: 1.2rem !important;
    margin-top: 0.25rem !important;
}

.theme-qdaddys .qdaddys-footer__black-zone {
    background-color: var(--qdaddys-black);
    position: relative;
    z-index: 2;
    padding-top: 0.5rem;
}

.theme-qdaddys .qdaddys-footer__contact {
    padding: 2rem 0 1.5rem;
}

.theme-qdaddys .qdaddys-footer-contact p {
    margin-bottom: 0.35rem;
    font-family: var(--qdaddys-font-body);
    font-size: 0.9rem;
}

.theme-qdaddys .qdaddys-footer-contact__label {
    color: var(--qdaddys-yellow);
    font-weight: 700;
    margin-right: 0.35rem;
}

.theme-qdaddys .qdaddys-footer-contact a {
    color: var(--qdaddys-white);
    text-decoration: none;
    font-weight: 600;
}

.theme-qdaddys .qdaddys-footer-contact a:hover {
    color: var(--qdaddys-yellow);
}

.theme-qdaddys .qdaddys-footer__social {
    display: flex;
    justify-content: flex-end;
    align-items: center;
}

.theme-qdaddys .qdaddys-social-links--footer {
    gap: 1rem;
}

.theme-qdaddys .qdaddys-footer__social .ccm-block-social-links ul {
    display: flex;
    gap: 1rem;
    list-style: none;
    padding: 0;
    margin: 0;
    justify-content: flex-end;
}

.theme-qdaddys .qdaddys-footer__loyalty {
    padding: 1.25rem 0 1.75rem;
    border-top: 1px solid rgba(255, 255, 255, 0.12);
}

.theme-qdaddys .qdaddys-footer__loyalty .row {
    align-items: center;
}

.theme-qdaddys .qdaddys-footer-loyalty {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    gap: 1.5rem;
    flex-wrap: wrap;
}

.theme-qdaddys .qdaddys-footer-loyalty__text {
    flex: 1 1 280px;
    max-width: 420px;
    margin: 0;
    font-family: var(--qdaddys-font-body);
    font-weight: 400;
    font-size: 0.95rem;
    line-height: 1.5;
    text-align: left;
    color: var(--qdaddys-white);
}

.theme-qdaddys .qdaddys-footer-loyalty__form {
    display: flex;
    align-items: stretch;
    flex: 1 1 280px;
    max-width: 420px;
    background-color: #2a2a2a;
    border: 1px solid rgba(255, 255, 255, 0.55);
    border-radius: 2px;
    overflow: hidden;
}

.theme-qdaddys .qdaddys-footer-loyalty__submit {
    order: -1;
    background: transparent;
    color: var(--qdaddys-white);
    border: none;
    border-right: 1px solid rgba(255, 255, 255, 0.55);
    padding: 0.75rem 1.1rem;
    font-family: var(--qdaddys-font-body);
    font-weight: 700;
    font-size: 0.78rem;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    white-space: nowrap;
    cursor: pointer;
}

.theme-qdaddys .qdaddys-footer-loyalty__form input[type="email"] {
    flex: 1;
    min-width: 0;
    padding: 0.75rem 1rem;
    border: none;
    border-radius: 0;
    background-color: transparent;
    font-family: var(--qdaddys-font-body);
    color: var(--qdaddys-white);
}

.theme-qdaddys .qdaddys-footer-loyalty__form input[type="email"]::placeholder {
    color: rgba(255, 255, 255, 0.35);
}

.theme-qdaddys .qdaddys-footer__cta {
    padding: 2rem 0 2.25rem;
    text-align: center;
}

.theme-qdaddys .qdaddys-footer-cta {
    display: flex;
    gap: clamp(1rem, 3vw, 2rem);
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
}

.theme-qdaddys .qdaddys-footer-cta .btn-qdaddys-red,
.theme-qdaddys .qdaddys-footer-cta .btn.btn-qdaddys-red,
.theme-qdaddys .qdaddys-footer-cta .btn-qdaddys-yellow,
.theme-qdaddys .qdaddys-footer-cta .btn.btn-qdaddys-yellow,
.theme-qdaddys .qdaddys-footer__cta .btn-qdaddys-lg {
    min-width: clamp(180px, 22vw, 240px);
    padding: 0.95rem 2.75rem;
    font-size: clamp(0.85rem, 1.5vw, 1rem);
    font-weight: 800;
    letter-spacing: 0.1em;
    border-radius: 999px;
    border-width: 0;
    line-height: 1.2;
    text-align: center;
}

.theme-qdaddys .qdaddys-footer-cta .btn-qdaddys-red,
.theme-qdaddys .qdaddys-footer-cta .btn.btn-qdaddys-red,
.theme-qdaddys .qdaddys-footer__cta a.btn-qdaddys-red {
    color: var(--qdaddys-white) !important;
}

.theme-qdaddys .qdaddys-footer-cta .btn-qdaddys-yellow,
.theme-qdaddys .qdaddys-footer-cta .btn.btn-qdaddys-yellow,
.theme-qdaddys .qdaddys-footer__cta a.btn-qdaddys-yellow {
    color: var(--qdaddys-black) !important;
}

.theme-qdaddys .btn-qdaddys-lg {
    font-size: 1rem;
    padding: 0.95rem 2.75rem;
}

.theme-qdaddys .qdaddys-footer__nav {
    padding: 0 0 2rem;
    text-align: center;
}

.theme-qdaddys .qdaddys-footer-nav,
.theme-qdaddys .qdaddys-footer__nav .nav {
    display: flex;
    gap: 1.25rem 2rem;
    list-style: none;
    padding: 0;
    margin: 0;
    justify-content: center;
    flex-wrap: wrap;
}

.theme-qdaddys .qdaddys-footer__nav .nav-link,
.theme-qdaddys .qdaddys-footer__nav a {
    font-family: var(--qdaddys-font-display);
    color: var(--qdaddys-white);
    text-decoration: none;
    font-size: 1rem;
}

.theme-qdaddys .qdaddys-footer__nav .nav-link:hover,
.theme-qdaddys .qdaddys-footer__nav a:hover {
    color: var(--qdaddys-yellow);
}

.theme-qdaddys .qdaddys-footer__branding {
    background-color: var(--qdaddys-white);
    color: var(--qdaddys-black);
    padding: 1rem 0;
}

.theme-qdaddys .qdaddys-footer__branding p,
.theme-qdaddys .qdaddys-footer__branding a {
    color: var(--qdaddys-black);
    font-family: var(--qdaddys-font-body);
    font-size: 0.85rem;
    margin: 0;
}

.theme-qdaddys .qdaddys-footer__legal {
    font-size: 0.8rem;
}

/* --------------------------------------------------------------------------
   Inner Pages
   -------------------------------------------------------------------------- */

.theme-qdaddys .qdaddys-page-header {
    background-color: var(--qdaddys-black);
    padding: 3rem 0 1rem;
}

/* Catering pages: let the header hero run edge to edge. */
.theme-qdaddys .qdaddys-page-header--catering > .container,
.theme-qdaddys .qdaddys-page-header--catering-form > .container {
    max-width: none;
    padding-left: 0;
    padding-right: 0;
}

.theme-qdaddys .qdaddys-page-header .qdaddys-social-tagline {
    justify-content: center;
    width: 100%;
}

.theme-qdaddys .qdaddys-page-main {
    background-color: var(--qdaddys-black);
    padding: 2rem 0 4rem;
    color: var(--qdaddys-white);
}

.theme-qdaddys .qdaddys-page-footer {
    background-color: var(--qdaddys-black);
    padding: 0 0 2rem;
}

.theme-qdaddys .qdaddys-page-main a {
    color: var(--qdaddys-yellow);
}

/* --------------------------------------------------------------------------
   Container: About Two Column
   -------------------------------------------------------------------------- */

.theme-qdaddys .qdaddys-container-about .row.qdaddys-about__body {
    align-items: flex-start;
}

.theme-qdaddys .qdaddys-container-about .qdaddys-about__photo,
.theme-qdaddys .qdaddys-container-about .ccm-image img {
    max-width: 420px;
    width: 100%;
}

/* --------------------------------------------------------------------------
   Container: Location Cards Grid
   -------------------------------------------------------------------------- */

.theme-qdaddys .qdaddys-container-locations .row {
    justify-content: center;
}

/* --------------------------------------------------------------------------
   Container: Social Two Column
   -------------------------------------------------------------------------- */

.theme-qdaddys .qdaddys-container-social .row {
    align-items: center;
}

/* --------------------------------------------------------------------------
   Responsive
   -------------------------------------------------------------------------- */

@media (max-width: 991.98px) {
    .theme-qdaddys .qdaddys-header__nav-collapse {
        align-items: stretch;
        width: 100%;
        padding: 1rem 0 0.5rem;
    }

    .theme-qdaddys .qdaddys-header__menu .navbar-nav,
    .theme-qdaddys .qdaddys-header__menu .nav,
    .theme-qdaddys .qdaddys-header__menu .ccm-block-autonav .nav {
        flex-direction: column;
        gap: 0.5rem;
    }

    .theme-qdaddys .qdaddys-header__menu .nav-link,
    .theme-qdaddys .qdaddys-header__menu a {
        padding: 0.5rem 0;
    }

    .theme-qdaddys .qdaddys-header__actions {
        flex-direction: column;
        align-items: center;
        width: 100%;
        padding-top: 0.75rem;
        gap: 0.85rem;
    }

    .theme-qdaddys .qdaddys-header__social {
        justify-content: center;
    }

    .theme-qdaddys .qdaddys-header__social .ccm-block-social-links ul,
    .theme-qdaddys .qdaddys-header__social .qdaddys-social-links {
        justify-content: center;
    }

    .theme-qdaddys .qdaddys-header__cta {
        justify-content: center;
        flex-wrap: wrap;
    }

    /* The buttons sit inside an editor <p>, so center the text too */
    .theme-qdaddys .qdaddys-header__cta .ccm-block-content,
    .theme-qdaddys .qdaddys-header__cta p {
        width: 100%;
        text-align: center;
    }

    .theme-qdaddys .qdaddys-instagram .ccm-block-gallery,
    .theme-qdaddys .qdaddys-instagram .ccm-gallery {
        grid-template-columns: repeat(2, 1fr);
    }

    .theme-qdaddys .qdaddys-about__heading {
        white-space: normal;
        flex-wrap: wrap;
    }

    .theme-qdaddys .qdaddys-about__heading::after {
        flex: 1 1 100%;
        margin-top: 0.75rem;
    }

    .theme-qdaddys .qdaddys-about__photo,
    .theme-qdaddys .qdaddys-container-about .ccm-image img {
        max-width: 100%;
    }

    .theme-qdaddys .qdaddys-about__flame {
        width: min(55vw, 340px);
        opacity: 0.16;
    }
}

@media (max-width: 575.98px) {
    .theme-qdaddys .qdaddys-instagram .ccm-block-gallery,
    .theme-qdaddys .qdaddys-instagram .ccm-gallery {
        grid-template-columns: 1fr 1fr;
    }
}

.theme-qdaddys .qdaddys-instagram .btn-qdaddys-grey,
.theme-qdaddys .qdaddys-instagram .btn.btn-qdaddys-grey {
    background-color: rgba(255, 255, 255, 0.16);
    border-color: rgba(255, 255, 255, 0.16);
    color: var(--qdaddys-white);
    font-size: 0.95rem;
    letter-spacing: normal;
    text-transform: none;
    border-radius: 10px;
}

.theme-qdaddys .qdaddys-instagram .btn-qdaddys-grey:hover,
.theme-qdaddys .qdaddys-instagram .btn.btn-qdaddys-grey:hover {
    color: var(--qdaddys-white);
}

.theme-qdaddys .btn-qdaddys-outline,
.theme-qdaddys .btn.btn-qdaddys-outline {
    background-color: transparent;
    border: 2px solid var(--qdaddys-white);
    color: var(--qdaddys-white);
    font-family: var(--qdaddys-font-body);
    font-weight: 700;
    font-size: 0.75rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    border-radius: 50px;
    padding: 0.6rem 1.5rem;
    text-decoration: none;
    display: inline-block;
}


/* --------------------------------------------------------------------------
   Social Links List
   -------------------------------------------------------------------------- */

.theme-qdaddys .qdaddys-social-links {
    display: flex;
    gap: 0.75rem;
    list-style: none;
    margin: 0;
    padding: 0;
    align-items: center;
}

.theme-qdaddys .qdaddys-social-links a {
    display: block;
    line-height: 0;
}

.theme-qdaddys .qdaddys-social-links--large {
    gap: 1rem;
    margin: 1.5rem 0;
}

.theme-qdaddys .qdaddys-social-tagline {
    font-family: var(--qdaddys-font-display);
    color: var(--qdaddys-white);
    font-size: clamp(2rem, 5vw, 3.5rem);
    line-height: 1.1;
    display: flex;
    align-items: center;
    gap: 0.65rem;
    flex-wrap: wrap;
}

.theme-qdaddys .qdaddys-social-tagline__logo {
    vertical-align: middle;
    width: clamp(48px, 6vw, 64px);
    height: clamp(48px, 6vw, 64px);
}

.theme-qdaddys .qdaddys-social-subline {
    font-family: var(--qdaddys-font-display);
    color: var(--qdaddys-grey); /* #B3C3C3 */
    font-size: clamp(1.05rem, 2vw, 1.3rem);
    margin-top: 0.5rem;
}

.theme-qdaddys .qdaddys-footer__loyalty p {
    font-weight: 300;
}

.theme-qdaddys .visually-hidden {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

/* --------------------------------------------------------------------------
   Instagram Feed Default
   -------------------------------------------------------------------------- */

.theme-qdaddys .qdaddys-instagram-feed__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1.25rem;
    flex-wrap: wrap;
}

.theme-qdaddys .qdaddys-instagram-feed__profile {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.theme-qdaddys .qdaddys-instagram-feed__avatar {
    width: 56px;
    height: 56px;
    flex-shrink: 0;
    border-radius: 50%;
    border: 2px solid rgba(255, 255, 255, 0.2);
}

.theme-qdaddys .qdaddys-instagram-feed__meta {
    display: flex;
    flex-direction: column;
}

.theme-qdaddys .qdaddys-instagram-feed__meta strong {
    font-family: var(--qdaddys-font-body);
    font-weight: 700;
    font-size: 1rem;
    color: var(--qdaddys-white);
}

.theme-qdaddys .qdaddys-instagram-feed__meta span {
    font-family: var(--qdaddys-font-body);
    font-size: 0.85rem;
    color: var(--qdaddys-grey);
}

.theme-qdaddys .qdaddys-instagram-feed__stats {
    font-weight: 600;
    color: var(--qdaddys-white) !important;
    margin-top: 0.15rem;
}

.theme-qdaddys .qdaddys-instagram .btn.qdaddys-instagram-feed__follow {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    background-color: #3a3a3a;
    border-color: #3a3a3a;
    color: var(--qdaddys-white);
}

.theme-qdaddys .qdaddys-instagram .btn.qdaddys-instagram-feed__follow:hover {
    background-color: #3a3a3a;
    border-color: #3a3a3a;
    color: var(--qdaddys-white);
}

.theme-qdaddys .qdaddys-instagram-feed__follow-icon {
    width: 18px;
    height: 18px;
    flex-shrink: 0;
}

.theme-qdaddys .qdaddys-instagram-feed__grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1rem;
    margin-bottom: 1.75rem;
}

.theme-qdaddys .qdaddys-instagram-feed__post {
    display: block;
    overflow: hidden;
    line-height: 0;
}

.theme-qdaddys .qdaddys-instagram-feed__grid img {
    width: 100%;
    aspect-ratio: 1;
    object-fit: cover;
    display: block;
    transition: opacity 0.2s ease;
    position: relative;
    z-index: 1;
    background-color: var(--qdaddys-black);
}

.theme-qdaddys .qdaddys-instagram-feed__post:hover img {
    opacity: 0.85;
}

@media (max-width: 767.98px) {
    .theme-qdaddys .qdaddys-footer__logo-col img {
        max-height: 88px;
    }

    /* Mobile footer: center the logo, button, and locations */
    .theme-qdaddys .qdaddys-footer__logo-col {
        text-align: center;
    }

    .theme-qdaddys .qdaddys-footer-location {
        padding-left: 0;
        text-align: center;
    }

    .theme-qdaddys .qdaddys-footer-location__pin {
        position: static;
        display: block;
        margin: 0 auto 0.5rem;
    }

    .theme-qdaddys .btn-qdaddys-find-location,
    .theme-qdaddys .btn.btn-qdaddys-find-location,
    div.theme-qdaddys footer.qdaddys-footer a.btn-qdaddys-find-location {
        font-size: 0.95rem;
        letter-spacing: 0.04em;
        padding: 1rem 1.8rem;
    }
}

@media (max-width: 991.98px) {
    .theme-qdaddys .qdaddys-instagram-feed__grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .theme-qdaddys .qdaddys-footer__find-location {
        justify-content: flex-start;
        margin-top: 1.25rem;
    }

    .theme-qdaddys .qdaddys-footer__social {
        justify-content: flex-start;
        margin-top: 1.25rem;
    }

    .theme-qdaddys .qdaddys-footer-loyalty {
        flex-direction: column;
        align-items: stretch;
        text-align: left;
    }

    .theme-qdaddys .qdaddys-footer-loyalty__text {
        max-width: none;
        text-align: left;
    }

    .theme-qdaddys .qdaddys-footer-loyalty__form {
        max-width: none;
        width: 100%;
    }

    .theme-qdaddys .qdaddys-footer-cta .btn-qdaddys-red,
    .theme-qdaddys .qdaddys-footer-cta .btn.btn-qdaddys-red,
    .theme-qdaddys .qdaddys-footer-cta .btn-qdaddys-yellow,
    .theme-qdaddys .qdaddys-footer-cta .btn.btn-qdaddys-yellow,
    .theme-qdaddys .qdaddys-footer__cta .btn-qdaddys-lg {
        min-width: min(100%, 240px);
        width: min(100%, 240px);
    }
}

@media (max-width: 575.98px) {
    .theme-qdaddys .qdaddys-instagram-feed__header {
        flex-direction: column;
        align-items: flex-start;
    }

    .theme-qdaddys .btn-qdaddys-find-location {
        white-space: normal;
        text-align: center;
    }
}

/* --------------------------------------------------------------------------
   Fire background
   Dark field with animated flame glow along the sides and bottom,
   matching the Specials mock. Apply .qdaddys-fire-bg to a section.
   -------------------------------------------------------------------------- */

.theme-qdaddys .qdaddys-fire-bg {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    background-color: #070707;
    background-image:
        radial-gradient(ellipse 16% 48% at 0% 96%, rgba(255, 214, 90, 0.95), transparent 64%),
        radial-gradient(ellipse 16% 48% at 100% 96%, rgba(255, 186, 40, 0.9), transparent 64%),
        radial-gradient(ellipse 26% 88% at -4% 100%, rgba(255, 78, 0, 0.92), transparent 70%),
        radial-gradient(ellipse 26% 88% at 104% 100%, rgba(255, 56, 0, 0.88), transparent 70%),
        radial-gradient(ellipse 42% 34% at 22% 108%, rgba(255, 120, 10, 0.85), transparent 72%),
        radial-gradient(ellipse 42% 34% at 78% 108%, rgba(220, 28, 8, 0.82), transparent 72%),
        radial-gradient(ellipse 110% 32% at 50% 112%, rgba(255, 70, 0, 0.78), transparent 68%),
        radial-gradient(ellipse 70% 16% at 50% 102%, rgba(255, 196, 50, 0.7), transparent 74%),
        linear-gradient(180deg, #050505 0%, #0c0a09 34%, #1c0904 100%);
}

.theme-qdaddys .qdaddys-fire-bg::before,
.theme-qdaddys .qdaddys-fire-bg::after {
    content: "";
    position: absolute;
    pointer-events: none;
}

.theme-qdaddys .qdaddys-fire-bg::before {
    inset: auto 0 0 0;
    height: 92%;
    z-index: 0;
    background:
        radial-gradient(ellipse 20% 82% at 0% 100%, rgba(255, 196, 48, 0.95), transparent 66%),
        radial-gradient(ellipse 20% 82% at 100% 100%, rgba(255, 130, 16, 0.9), transparent 66%),
        radial-gradient(ellipse 36% 28% at 28% 104%, rgba(255, 220, 90, 0.75), transparent 70%),
        radial-gradient(ellipse 36% 28% at 72% 104%, rgba(255, 90, 10, 0.7), transparent 70%),
        radial-gradient(ellipse 100% 38% at 50% 108%, rgba(255, 64, 0, 0.82), transparent 68%);
    mix-blend-mode: screen;
    animation: qdaddys-fire-bg-glow 2.2s ease-in-out infinite;
}

.theme-qdaddys .qdaddys-fire-bg::after {
    left: 2%;
    bottom: 2%;
    width: 4px;
    height: 4px;
    z-index: 0;
    border-radius: 50%;
    background: #fff6d0;
    box-shadow:
        6vw 8px 0 1px #ffd27a,
        12vw -18px 0 #ff6a00,
        19vw 24px 0 1px #fff1c2,
        26vw -6px 0 #ff4d00,
        33vw 30px 0 #ffb347,
        41vw 6px 0 1px #ffe08a,
        49vw -22px 0 #ff5a12,
        56vw 18px 0 #fff6d0,
        63vw -4px 0 1px #ff8a1e,
        71vw 28px 0 #ff4d00,
        78vw 4px 0 #ffb347,
        85vw -16px 0 1px #ffe08a,
        92vw 20px 0 #ff6a00,
        97vw -8px 0 #ffd27a,
        15vw 46px 0 #ff9a1a,
        38vw 52px 0 #fff1c2,
        60vw 40px 0 #ff4d00,
        82vw 48px 0 #ffb347;
    opacity: 0.95;
    animation: qdaddys-fire-bg-sparks 3.8s linear infinite;
}

.theme-qdaddys .qdaddys-fire-bg > * {
    position: relative;
    z-index: 1;
}

/* Specials page: the class is added to main, whose sections are otherwise solid black. */
.theme-qdaddys main.qdaddys-main.qdaddys-fire-bg > .qdaddys-page-header,
.theme-qdaddys main.qdaddys-main.qdaddys-fire-bg > .qdaddys-page-main,
.theme-qdaddys main.qdaddys-main.qdaddys-fire-bg > .qdaddys-page-footer {
    background-color: transparent;
}

.theme-qdaddys main.qdaddys-main.qdaddys-fire-bg .qdaddys-page-header h1 {
    color: #f9b04a;
}

/* Beat the theme paragraph rule so card type matches the specials mock:
   medium date, bold title and price, black on every banner. */
.theme-qdaddys .qdaddys-special p.qdaddys-special__date,
.theme-qdaddys .qdaddys-special p.qdaddys-special__title,
.theme-qdaddys .qdaddys-special p.qdaddys-special__price {
    margin: 0;
    font-family: Inter, "Segoe UI", sans-serif;
    line-height: 1.2;
    color: #111111;
}

.theme-qdaddys .qdaddys-special p.qdaddys-special__date {
    font-size: 0.95rem;
    font-weight: 500;
}

.theme-qdaddys .qdaddys-special p.qdaddys-special__title {
    margin-top: 0.15rem;
    font-size: 1.2rem;
    font-weight: 700;
}

.theme-qdaddys .qdaddys-special p.qdaddys-special__price {
    margin-top: 0.2rem;
    font-size: 1.45rem;
    font-weight: 700;
}

.theme-qdaddys .qdaddys-fire-bg > .qdaddys-fire-bg__embers {
    position: absolute;
    inset: 0;
    z-index: 0;
    overflow: hidden;
    pointer-events: none;
}

.theme-qdaddys .qdaddys-fire-bg__ember {
    position: absolute;
    left: var(--x, 10%);
    bottom: 2%;
    width: var(--size, 5px);
    height: var(--size, 5px);
    border-radius: 50%;
    background: radial-gradient(circle, #fff6d0 0%, #ffb347 36%, #ff4d00 70%, transparent 100%);
    box-shadow: 0 0 8px 2px rgba(255, 120, 20, 0.8);
    opacity: 0;
    animation: qdaddys-fire-bg-ember var(--dur, 4.4s) cubic-bezier(0.22, 0.6, 0.35, 1) var(--delay, 0s) infinite;
}

@keyframes qdaddys-fire-bg-glow {
    0%, 100% {
        opacity: 0.55;
    }
    32% {
        opacity: 1;
    }
    58% {
        opacity: 0.42;
    }
    78% {
        opacity: 0.88;
    }
}

@keyframes qdaddys-fire-bg-sparks {
    0% {
        transform: translate3d(0, 36px, 0);
        opacity: 0;
    }
    8% {
        opacity: 1;
    }
    100% {
        transform: translate3d(0, -460px, 0);
        opacity: 0;
    }
}

@keyframes qdaddys-fire-bg-ember {
    0% {
        transform: translate3d(0, 16px, 0) scale(0.35);
        opacity: 0;
    }
    12% {
        opacity: 1;
    }
    45% {
        transform: translate3d(calc(var(--drift, 16px) * 0.5), -160px, 0) scale(1);
        opacity: 0.95;
    }
    100% {
        transform: translate3d(var(--drift, 16px), -380px, 0) scale(0.2);
        opacity: 0;
    }
}

.theme-qdaddys .qdaddys-specials {
    padding: 3.5rem 0 4.5rem;
}

.theme-qdaddys .qdaddys-specials__heading {
    text-align: center;
    margin-bottom: 2.25rem;
}

.theme-qdaddys .qdaddys-specials__heading h1,
.theme-qdaddys .qdaddys-specials__heading h2,
.theme-qdaddys .qdaddys-specials__heading h3,
.theme-qdaddys .qdaddys-specials__heading p {
    color: var(--qdaddys-yellow);
    font-family: var(--qdaddys-font-display);
    font-size: clamp(2.4rem, 5vw, 3.5rem);
    line-height: 1.05;
    margin: 0;
}

.theme-qdaddys .qdaddys-specials__items > .ccm-area {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1.75rem 1.25rem;
    align-items: stretch;
}

.theme-qdaddys .qdaddys-specials__items > .ccm-area > .ccm-area-footer {
    grid-column: 1 / -1;
}

@media (max-width: 991.98px) {
    .theme-qdaddys .qdaddys-specials__items > .ccm-area {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 575.98px) {
    .theme-qdaddys .qdaddys-specials__items > .ccm-area {
        grid-template-columns: 1fr;
    }
}

@media (prefers-reduced-motion: reduce) {
    .theme-qdaddys .qdaddys-fire-bg::before,
    .theme-qdaddys .qdaddys-fire-bg::after,
    .theme-qdaddys .qdaddys-fire-bg__ember {
        animation: none;
    }

    .theme-qdaddys .qdaddys-fire-bg::before {
        opacity: 0.8;
    }

    .theme-qdaddys .qdaddys-fire-bg::after,
    .theme-qdaddys .qdaddys-fire-bg__ember {
        opacity: 0.45;
    }
}

html.ccm-edit-mode .theme-qdaddys .qdaddys-fire-bg::before,
html.ccm-edit-mode .theme-qdaddys .qdaddys-fire-bg::after,
html.ccm-edit-mode .theme-qdaddys .qdaddys-fire-bg__ember {
    animation: none;
}

/* --------------------------------------------------------------------------
   Ember smoke background (Work Here)
   A quieter cousin of the specials fire. The layer is fixed to the viewport
   so the glow sits at the bottom of the screen while scrolling; clip-path on
   main keeps it from showing behind the header and footer.
   -------------------------------------------------------------------------- */

.theme-qdaddys main.qdaddys-main.qdaddys-ember-bg {
    position: relative;
    isolation: isolate;
    clip-path: inset(0);
    background-color: var(--qdaddys-black);
}

.theme-qdaddys main.qdaddys-main.qdaddys-ember-bg > .qdaddys-page-header,
.theme-qdaddys main.qdaddys-main.qdaddys-ember-bg > .qdaddys-page-main,
.theme-qdaddys main.qdaddys-main.qdaddys-ember-bg > .qdaddys-page-footer {
    position: relative;
    z-index: 1;
    background-color: transparent;
}

.theme-qdaddys .qdaddys-ember-bg__layer {
    position: fixed;
    inset: 0;
    z-index: 0;
    overflow: hidden;
    pointer-events: none;
}

.theme-qdaddys .qdaddys-ember-bg__image {
    position: absolute;
    left: -10%;
    bottom: -6%;
    width: 120%;
    height: 75%;
    background: url("../images/ember-smoke-bg.jpg") center bottom / cover no-repeat;
    will-change: transform, opacity;
}

.theme-qdaddys .qdaddys-ember-bg__image--base {
    opacity: 0.32;
    animation: qdaddys-ember-bg-breathe 16s ease-in-out infinite;
}

/* Mirrored copy drifting the other way makes the static sparks shimmer. */
.theme-qdaddys .qdaddys-ember-bg__image--drift {
    opacity: 0.14;
    mix-blend-mode: screen;
    animation: qdaddys-ember-bg-drift 26s ease-in-out infinite;
    animation-delay: -9s;
}

.theme-qdaddys .qdaddys-ember-bg__ember {
    position: absolute;
    left: var(--x, 10%);
    bottom: 0;
    width: var(--size, 4px);
    height: var(--size, 4px);
    border-radius: 50%;
    background: radial-gradient(circle, #fff1c2 0%, #ffb347 40%, #ff4d00 75%, transparent 100%);
    box-shadow: 0 0 6px 1px rgba(255, 120, 20, 0.6);
    opacity: 0;
    animation: qdaddys-ember-bg-rise var(--dur, 9s) cubic-bezier(0.25, 0.6, 0.4, 1) var(--delay, 0s) infinite;
}

@keyframes qdaddys-ember-bg-breathe {
    0%, 100% { transform: translate3d(0, 2%, 0) scale(1); opacity: 0.26; }
    50%      { transform: translate3d(-2%, -1%, 0) scale(1.05); opacity: 0.38; }
}

@keyframes qdaddys-ember-bg-drift {
    0%, 100% { transform: scaleX(-1) translate3d(-3%, 3%, 0) scale(1.08); opacity: 0.08; }
    50%      { transform: scaleX(-1) translate3d(3%, -3%, 0) scale(1.14); opacity: 0.2; }
}

@keyframes qdaddys-ember-bg-rise {
    0%   { transform: translate3d(0, 0, 0) scale(0.4); opacity: 0; }
    15%  { opacity: 0.55; }
    60%  { transform: translate3d(calc(var(--drift, 16px) * 0.6), -30vh, 0) scale(1); opacity: 0.4; }
    100% { transform: translate3d(var(--drift, 16px), -55vh, 0) scale(0.2); opacity: 0; }
}

@media (prefers-reduced-motion: reduce) {
    .theme-qdaddys .qdaddys-ember-bg__image,
    .theme-qdaddys .qdaddys-ember-bg__ember {
        animation: none;
    }

    .theme-qdaddys .qdaddys-ember-bg__ember {
        display: none;
    }
}

html.ccm-edit-mode .theme-qdaddys .qdaddys-ember-bg__image,
html.ccm-edit-mode .theme-qdaddys .qdaddys-ember-bg__ember {
    animation: none;
}

html.ccm-edit-mode .theme-qdaddys .qdaddys-ember-bg__ember {
    display: none;
}

/* Edit mode: clip-path, overflow:hidden and the z-index layers these
   backgrounds add would clip Concrete's drag chrome and block block drag. */
html.ccm-edit-mode .theme-qdaddys main.qdaddys-main.qdaddys-ember-bg,
html.ccm-edit-mode .theme-qdaddys .qdaddys-fire-bg {
    clip-path: none !important;
    overflow: visible !important;
    isolation: auto !important;
}

html.ccm-edit-mode .theme-qdaddys main.qdaddys-main.qdaddys-ember-bg > *,
html.ccm-edit-mode .theme-qdaddys .qdaddys-fire-bg > * {
    z-index: auto !important;
}

html.ccm-edit-mode .theme-qdaddys .qdaddys-ember-bg__layer,
html.ccm-edit-mode .theme-qdaddys .qdaddys-fire-bg__embers,
html.ccm-edit-mode .theme-qdaddys .qdaddys-fire-bg::before,
html.ccm-edit-mode .theme-qdaddys .qdaddys-fire-bg::after {
    display: none !important;
}

/* --------------------------------------------------------------------------
   Edit Mode
   Every template renders the same markup while editing. Only the effects
   that get in Concrete's way are switched off:
   - decorative layers (video, fire, smoke, wood) are hidden;
   - section wrappers stop clipping (overflow) and stop creating stacking
     contexts (isolation / z-index), so block menus, drop zones and the drag
     helper are not cut off or painted underneath the page.
   Concrete puts .ccm-edit-mode on <html> while the page is being edited.
   -------------------------------------------------------------------------- */

/* Bootstrap's smooth scroll breaks Concrete drag-and-drop (concretecms #10701). */
html.ccm-edit-mode {
    scroll-behavior: auto !important;
}

/* The idle inline-toolbar container is full width at z-index 1150 and sits
   over the page. Let clicks through until Concrete shows the editor bar. */
html.ccm-edit-mode #ccm-inline-toolbar-container:not(.ccm-inline-toolbar-affixed),
html.ccm-edit-mode #ccm-inline-toolbar-container:not(.ccm-inline-toolbar-affixed) * {
    pointer-events: none !important;
}

html.ccm-edit-mode #ccm-inline-toolbar-container[style*="opacity: 1"] .ccm-inline-toolbar,
html.ccm-edit-mode #ccm-inline-toolbar-container[style*="opacity: 1"] .ccm-inline-toolbar *,
html.ccm-edit-mode #ccm-inline-toolbar-container.ccm-inline-toolbar-affixed,
html.ccm-edit-mode #ccm-inline-toolbar-container.ccm-inline-toolbar-affixed * {
    pointer-events: auto !important;
}

/* Elfsight injects fixed overlays above the toolbar (z-index 1000). */
body:has(#ccm-toolbar) [class*="elfsight-app-"],
body:has(#ccm-toolbar) .eapps-widget,
body:has(#ccm-toolbar) .eapps-widget-toolbar,
body:has(#ccm-toolbar) iframe[src*="elfsight"],
body:has(#ccm-toolbar) iframe[src*="e-apps"] {
    display: none !important;
}

/* Decorative layers */
html.ccm-edit-mode .theme-qdaddys .qdaddys-hero__video-wrap,
html.ccm-edit-mode .theme-qdaddys .qdaddys-about__fire-art,
html.ccm-edit-mode .theme-qdaddys .qdaddys-about__fire,
html.ccm-edit-mode .theme-qdaddys .qdaddys-about__embers,
html.ccm-edit-mode .theme-qdaddys .qdaddys-about__flame,
html.ccm-edit-mode .theme-qdaddys .qdaddys-about::before,
html.ccm-edit-mode .theme-qdaddys .qdaddys-about::after,
html.ccm-edit-mode .theme-qdaddys .qdaddys-locations-wood__wall,
html.ccm-edit-mode .theme-qdaddys .qdaddys-locations-wood__floor-wrap,
html.ccm-edit-mode .theme-qdaddys .qdaddys-social-section__smoke,
html.ccm-edit-mode .theme-qdaddys .qdaddys-smoke-bridge__smoke,
html.ccm-edit-mode .theme-qdaddys .qdaddys-footer__smoke {
    display: none;
}

/* Hero text normally floats over the video; put it in normal flow. */
html.ccm-edit-mode .theme-qdaddys .qdaddys-hero__content {
    position: relative;
    inset: auto;
    min-height: 200px;
    background: rgba(0, 0, 0, 0.5);
    pointer-events: auto;
}

/* Section wrappers: no clipping, no stacking contexts. */
html.ccm-edit-mode .theme-qdaddys .qdaddys-header,
html.ccm-edit-mode .theme-qdaddys .qdaddys-main,
html.ccm-edit-mode .theme-qdaddys .qdaddys-hero,
html.ccm-edit-mode .theme-qdaddys .qdaddys-about,
html.ccm-edit-mode .theme-qdaddys .qdaddys-locations-wood,
html.ccm-edit-mode .theme-qdaddys .qdaddys-social-section,
html.ccm-edit-mode .theme-qdaddys .qdaddys-smoke-bridge,
html.ccm-edit-mode .theme-qdaddys .qdaddys-instagram,
html.ccm-edit-mode .theme-qdaddys .qdaddys-footer,
html.ccm-edit-mode .theme-qdaddys .qdaddys-footer__smoke-zone {
    overflow: visible;
    isolation: auto;
}

/* On hover, Concrete lays a click catcher (#ccm-menu-click-proxy, z-index
   500) over the block and relies on the block's move icon (z-index 600)
   staying above it. Any theme wrapper with its own z-index or isolation
   traps the icon underneath, and the block can't be dragged. Those
   z-indexes only lift content above the hidden decorative layers, so
   drop them all while editing. */
html.ccm-edit-mode .theme-qdaddys [class*="qdaddys-"],
html.ccm-edit-mode .theme-qdaddys .container {
    z-index: auto !important;
    isolation: auto !important;
}

/* Keep the oversized logo from crowding the toolbar. */
html.ccm-edit-mode .theme-qdaddys .qdaddys-header__logo img {
    max-height: 96px;
    width: auto;
}

/* --------------------------------------------------------------------------
   Catering containers (Catering Intro / Holiday / Banner / Wedding)
   Full-bleed sections that break out of the page's .container.
   -------------------------------------------------------------------------- */

.theme-qdaddys .qdaddys-page-main:has(.qdaddys-cater) {
    padding-top: 0;
    padding-bottom: 0;
}

.theme-qdaddys .qdaddys-page-header--catering {
    padding-top: 0;
    padding-bottom: 0;
}

.theme-qdaddys .qdaddys-page-header--catering .ccm-block-hero-image-text {
    display: flex;
    align-items: flex-end;
    justify-content: center;
    padding-bottom: 2.5rem;
}

/* Outranks Atomik's Bebas Neue hero heading rule. */
.theme-qdaddys .qdaddys-page-header--catering div.ccm-block-hero-image div.ccm-block-hero-image-text h1,
.theme-qdaddys .qdaddys-page-header--catering div.ccm-block-hero-image div.ccm-block-hero-image-text h2 {
    font-family: var(--qdaddys-font-display);
    font-size: clamp(2.75rem, 6vw, 5.5rem);
    color: var(--qdaddys-white);
    margin: 0;
}

.theme-qdaddys .qdaddys-cater {
    position: relative;
    width: 100vw;
    margin-left: calc(50% - 50vw);
    overflow: hidden;
}

.theme-qdaddys .qdaddys-cater__inner {
    position: relative;
    z-index: 1;
}

.theme-qdaddys .qdaddys-cater a.btn {
    box-shadow: 0 6px 10px rgba(0, 0, 0, 0.3);
}

/* Paragraphs that hold only buttons line them up in a row. */
.theme-qdaddys .qdaddys-cater__copy p:has(> a.btn) {
    display: flex;
    flex-wrap: wrap;
    gap: 1.25rem 1.5rem;
    margin-top: 2.5rem;
}

/* Sized so both buttons fit side by side in the half-width column down to
   992px; below that the column is full width. Never break inside a button. */
.theme-qdaddys .qdaddys-cater__copy a.btn {
    flex: 0 0 auto;
    white-space: nowrap;
    font-size: clamp(0.85rem, 0.55rem + 0.45vw, 1rem);
    padding: 0.85rem clamp(1.4rem, 2vw, 2.25rem);
}

.theme-qdaddys .qdaddys-cater img {
    max-width: 100%;
    height: auto;
}

/* Intro: Q logo, menu image and the location order buttons on white. */
.theme-qdaddys .qdaddys-cater-intro {
    background-color: var(--qdaddys-white);
    color: #111111;
    padding: 1.5rem 0 4.5rem;
}

.theme-qdaddys .qdaddys-cater-intro__watermark {
    position: absolute;
    top: 6%;
    left: -6%;
    width: min(34vw, 560px);
    pointer-events: none;
}

.theme-qdaddys .qdaddys-cater-intro__logo {
    display: block;
    width: clamp(96px, 9vw, 165px);
    margin: 0 auto 2.5rem;
}

.theme-qdaddys .qdaddys-cater-intro__locations {
    text-align: center;
}

.theme-qdaddys .qdaddys-cater-intro__locations a.btn {
    font-size: clamp(1rem, 1.3vw, 1.3rem);
    line-height: 1.25;
    padding: 1.1rem 2.25rem;
    min-width: min(100%, 330px);
    max-width: 360px;
    white-space: normal;
    margin: 1.75rem 0;
}

.theme-qdaddys .qdaddys-cater-intro__locations p,
.theme-qdaddys .qdaddys-cater-intro__locations h2,
.theme-qdaddys .qdaddys-cater-intro__locations h3,
.theme-qdaddys .qdaddys-cater-intro__locations h4 {
    color: #111111;
}

.theme-qdaddys .qdaddys-cater-intro__locations h2,
.theme-qdaddys .qdaddys-cater-intro__locations h3,
.theme-qdaddys .qdaddys-cater-intro__locations h4 {
    font-size: clamp(1.25rem, 1.8vw, 1.75rem);
    line-height: 1.35;
    margin-top: 2.5rem;
}

/* Holiday: dark section, photo left, copy right. */
.theme-qdaddys .qdaddys-cater-holiday {
    background: linear-gradient(180deg, #030001 0%, #0a0302 55%, #2b0b03 100%);
    color: var(--qdaddys-white);
    padding: 4.5rem 0 0;
}

/* The photo runs down to the banner, as in the mock. */
.theme-qdaddys .qdaddys-cater-holiday .qdaddys-cater__media {
    align-self: flex-end;
}

.theme-qdaddys .qdaddys-cater-holiday .qdaddys-cater__copy {
    padding-bottom: 4rem;
}

.theme-qdaddys .qdaddys-cater__media img {
    display: block;
    width: 100%;
    object-fit: cover;
}

.theme-qdaddys .qdaddys-cater-holiday .qdaddys-cater__copy {
    padding-left: clamp(1rem, 4vw, 4rem);
}

.theme-qdaddys .qdaddys-cater-holiday h2 {
    color: var(--qdaddys-yellow);
    font-size: clamp(2.25rem, 4vw, 3.6rem);
    text-transform: uppercase;
    text-align: center;
    margin-bottom: 1.5rem;
}

.theme-qdaddys .qdaddys-cater-holiday h3 {
    color: var(--qdaddys-white);
    font-size: clamp(1.4rem, 2.2vw, 2rem);
    line-height: 1.25;
    text-align: center;
    margin-bottom: 1.5rem;
}

.theme-qdaddys .qdaddys-cater-holiday p {
    color: var(--qdaddys-white);
    font-size: 1.15rem;
    line-height: 1.45;
}

/* Guarantee banner: red band with a Q watermark on the right. */
.theme-qdaddys .qdaddys-cater-banner {
    background-color: #d31f2c;
    color: var(--qdaddys-white);
    padding: 3.5rem 0;
    text-align: center;
}

.theme-qdaddys .qdaddys-cater-banner__watermark {
    position: absolute;
    top: -12%;
    right: 4%;
    width: clamp(160px, 16vw, 300px);
    filter: brightness(0);
    opacity: 0.12;
    pointer-events: none;
}

.theme-qdaddys .qdaddys-cater-banner h2,
.theme-qdaddys .qdaddys-cater-banner h3,
.theme-qdaddys .qdaddys-cater-banner p {
    font-family: var(--qdaddys-font-display);
    color: var(--qdaddys-white);
    font-size: clamp(1.6rem, 3vw, 2.75rem);
    line-height: 1.25;
    margin: 0;
}

/* Wedding: white section, copy left, three-photo grid right. */
.theme-qdaddys .qdaddys-cater-wedding {
    background-color: var(--qdaddys-white);
    color: #111111;
    padding: 4rem 0;
}

.theme-qdaddys .qdaddys-cater-wedding .qdaddys-cater__copy {
    padding-right: clamp(1rem, 4vw, 4rem);
}

.theme-qdaddys .qdaddys-cater-wedding h2 {
    font-family: var(--qdaddys-font-body);
    font-weight: 700;
    font-size: clamp(2rem, 3.4vw, 4rem);
    line-height: 1.1;
    letter-spacing: 0;
    text-transform: uppercase;
    color: #111111;
    text-align: center;
    margin-bottom: 1.75rem;
}

.theme-qdaddys .qdaddys-cater-wedding h3 {
    font-family: var(--qdaddys-font-display);
    font-size: clamp(1.4rem, 2vw, 2.1rem);
    line-height: 1.25;
    color: #d31f2c;
    text-align: center;
    margin-bottom: 2.5rem;
}

.theme-qdaddys .qdaddys-cater-wedding p {
    color: #111111;
    font-size: 1.15rem;
    line-height: 1.45;
}

.theme-qdaddys .qdaddys-cater-wedding__photos > .ccm-area,
.theme-qdaddys .qdaddys-cater-wedding__photos:not(:has(> .ccm-area)) {
    display: grid;
    grid-template-columns: minmax(0, 43fr) minmax(0, 57fr);
    gap: 0.75rem;
}

.theme-qdaddys .qdaddys-cater-wedding__photos .ccm-area-footer {
    grid-column: 1 / -1;
}

.theme-qdaddys .qdaddys-cater-wedding__photos img {
    display: block;
    width: 100%;
    height: 100%;
    aspect-ratio: 283 / 373;
    object-fit: cover;
}

.theme-qdaddys .qdaddys-cater-wedding__photos > .ccm-area > :nth-child(2) img,
.theme-qdaddys .qdaddys-cater-wedding__photos:not(:has(> .ccm-area)) > :nth-child(2) img {
    aspect-ratio: 369 / 373;
}

/* Third photo runs across the bottom. */
.theme-qdaddys .qdaddys-cater-wedding__photos > .ccm-area > :nth-child(3),
.theme-qdaddys .qdaddys-cater-wedding__photos:not(:has(> .ccm-area)) > :nth-child(3) {
    grid-column: 1 / -1;
}

.theme-qdaddys .qdaddys-cater-wedding__photos > .ccm-area > :nth-child(3) img,
.theme-qdaddys .qdaddys-cater-wedding__photos:not(:has(> .ccm-area)) > :nth-child(3) img {
    aspect-ratio: 665 / 442;
}

/* FAQ pop-up. */
.theme-qdaddys dialog.qdaddys-cater-faqs {
    width: min(92vw, 760px);
    max-height: 85vh;
    padding: 0;
    border: 0;
    border-radius: 12px;
    background-color: var(--qdaddys-white);
    color: #111111;
    box-shadow: 0 20px 50px rgba(0, 0, 0, 0.5);
}

.theme-qdaddys dialog.qdaddys-cater-faqs::backdrop {
    background: rgba(0, 0, 0, 0.7);
}

.theme-qdaddys .qdaddys-cater-faqs__body {
    padding: 2.5rem clamp(1.25rem, 4vw, 3rem);
}

.theme-qdaddys .qdaddys-cater-faqs__body h2,
.theme-qdaddys .qdaddys-cater-faqs__body h3 {
    color: #111111;
    text-align: center;
    margin-bottom: 1.5rem;
}

.theme-qdaddys .qdaddys-cater-faqs__body p {
    color: #111111;
    line-height: 1.55;
}

.theme-qdaddys .qdaddys-cater-faqs__close {
    position: sticky;
    top: 0;
    float: right;
    margin: 0.5rem 0.75rem 0 0;
    border: 0;
    background: transparent;
    color: #111111;
    font-size: 2.25rem;
    line-height: 1;
    cursor: pointer;
}

/* In edit mode the FAQs sit inline under the section so they can be edited. */
html.ccm-edit-mode .theme-qdaddys .qdaddys-cater-faqs--editing {
    background-color: #f2f2f2;
    color: #111111;
    padding: 1.5rem;
    margin: 0 auto 2rem;
    max-width: 960px;
    border: 2px dashed #999999;
}

html.ccm-edit-mode .theme-qdaddys .qdaddys-cater-faqs__note {
    font-size: 0.85rem;
    font-weight: 600;
    color: #555555;
}

html.ccm-edit-mode .theme-qdaddys .qdaddys-cater {
    overflow: visible;
}

@media (max-width: 991.98px) {
    .theme-qdaddys .qdaddys-cater-holiday,
    .theme-qdaddys .qdaddys-cater-wedding {
        padding: 3rem 0;
    }

    .theme-qdaddys .qdaddys-cater-holiday .qdaddys-cater__copy {
        padding-bottom: 0;
    }

    .theme-qdaddys .qdaddys-cater-holiday .qdaddys-cater__copy,
    .theme-qdaddys .qdaddys-cater-wedding .qdaddys-cater__copy {
        padding-left: calc(var(--bs-gutter-x, 1.5rem) * 0.5);
        padding-right: calc(var(--bs-gutter-x, 1.5rem) * 0.5);
    }

    .theme-qdaddys .qdaddys-cater__media,
    .theme-qdaddys .qdaddys-cater-intro__menu {
        margin-bottom: 2rem;
    }

    .theme-qdaddys .qdaddys-cater-wedding__photos {
        margin-top: 2rem;
    }

    .theme-qdaddys .qdaddys-cater__copy p:has(> a.btn) {
        justify-content: center;
    }

    .theme-qdaddys .qdaddys-cater-banner__watermark {
        opacity: 0.08;
    }
}

/* --------------------------------------------------------------------------
   Unified button hover
   Every action button on the site gets the same hover action: a gentle dim.
   Text and background colours never change on hover, so a button looks the
   same wherever it sits. The hover itself is limited to mouse / trackpad
   devices so tapped buttons on phones don't stay dimmed. Keyboard focus
   gets the same dim. Add new button classes to both selector lists.
   -------------------------------------------------------------------------- */

.theme-qdaddys .btn-qdaddys-red,
.theme-qdaddys .btn-qdaddys-yellow,
.theme-qdaddys .btn-qdaddys-black,
.theme-qdaddys .btn-qdaddys-grey,
.theme-qdaddys .btn-qdaddys-outline,
.theme-qdaddys .btn-qdaddys-find-location,
.theme-qdaddys .qdaddys-main .btn-primary,
.theme-qdaddys .formidable button[type="submit"],
.theme-qdaddys .formidable input[type="submit"],
.theme-qdaddys .qdaddys-email-signup__submit,
.theme-qdaddys .qdaddys-footer-loyalty__submit {
    transition: opacity 0.2s ease;
}

@media (hover: hover) {
    .theme-qdaddys .btn-qdaddys-red:hover,
    .theme-qdaddys .btn-qdaddys-yellow:hover,
    .theme-qdaddys .btn-qdaddys-black:hover,
    .theme-qdaddys .btn-qdaddys-grey:hover,
    .theme-qdaddys .btn-qdaddys-outline:hover,
    .theme-qdaddys .btn-qdaddys-find-location:hover,
    .theme-qdaddys .qdaddys-main .btn-primary:hover,
    .theme-qdaddys .formidable button[type="submit"]:hover,
    .theme-qdaddys .formidable input[type="submit"]:hover,
    .theme-qdaddys .qdaddys-email-signup__submit:hover,
    .theme-qdaddys .qdaddys-footer-loyalty__submit:hover {
        opacity: 0.85;
    }
}

.theme-qdaddys .btn-qdaddys-red:focus-visible,
.theme-qdaddys .btn-qdaddys-yellow:focus-visible,
.theme-qdaddys .btn-qdaddys-black:focus-visible,
.theme-qdaddys .btn-qdaddys-grey:focus-visible,
.theme-qdaddys .btn-qdaddys-outline:focus-visible,
.theme-qdaddys .btn-qdaddys-find-location:focus-visible,
.theme-qdaddys .qdaddys-main .btn-primary:focus-visible,
.theme-qdaddys .formidable button[type="submit"]:focus-visible,
.theme-qdaddys .formidable input[type="submit"]:focus-visible,
.theme-qdaddys .qdaddys-email-signup__submit:focus-visible,
.theme-qdaddys .qdaddys-footer-loyalty__submit:focus-visible {
    opacity: 0.85;
}

/* Six header links (Home … Contact): tighten spacing on small desktops so
   the menu stays on one row next to the Mobile Order / Catering buttons. */
@media (min-width: 992px) and (max-width: 1199.98px) {
    .theme-qdaddys .qdaddys-header__menu {
        margin-left: 1rem;
    }

    .theme-qdaddys .qdaddys-header__menu .navbar-nav,
    .theme-qdaddys .qdaddys-header__menu .nav,
    .theme-qdaddys .qdaddys-header__menu .ccm-block-autonav .nav {
        column-gap: 1rem;
    }
}

/* --------------------------------------------------------------------------
   Phone numbers
   iOS Safari turns plain phone numbers into tap-to-call links and paints them
   with the site link colour (dark orange). Keep them the colour of the
   surrounding text (white on the location cards).
   -------------------------------------------------------------------------- */

.theme-qdaddys a[x-apple-data-detectors],
.theme-qdaddys .qdaddys-location-card__phone a,
.theme-qdaddys .qdaddys-footer-location__phone a {
    color: inherit !important;
    text-decoration: none !important;
    font: inherit !important;
}

/* --------------------------------------------------------------------------
   Mobile: CMS "Design" side margins
   Blocks given fixed left/right margins in the CMS (e.g. the bordered
   "We're Hiring" box on Work Here, 124px each side) collapse to a sliver on
   phones. Drop the side margins below the md breakpoint and give boxed
   text a little inner breathing room.
   -------------------------------------------------------------------------- */

@media (max-width: 767.98px) {
    .theme-qdaddys .qdaddys-page-main .ccm-custom-style-container {
        margin-left: 0;
        margin-right: 0;
    }

    .theme-qdaddys .qdaddys-page-main .ccm-custom-style-container:has(> .ccm-block-content) {
        padding-left: 1rem;
        padding-right: 1rem;
    }
}

/* --------------------------------------------------------------------------
   Hello Bar
   Site-wide announcement strip under the header ("Hello Bar" global area,
   rendered in elements/header.php only when it has content). Whatever is
   typed into it is restyled to match: centred white display text on orange.
   -------------------------------------------------------------------------- */

.theme-qdaddys .qdaddys-hello-bar {
    --qdaddys-hello-bar-bg: #ce7801;
    position: relative;
    z-index: 99;
    background-color: var(--qdaddys-hello-bar-bg);
    color: var(--qdaddys-white);
    text-align: center;
}

.theme-qdaddys .qdaddys-hello-bar__inner {
    margin-left: auto;
    margin-right: auto;
    padding-top: 0.8rem;
    padding-bottom: 0.8rem;
}

.theme-qdaddys .qdaddys-hello-bar,
.theme-qdaddys .qdaddys-hello-bar__inner :is(p, h1, h2, h3, h4, h5, h6, span, strong, b) {
    font-family: var(--qdaddys-font-display);
    font-size: clamp(1.05rem, 2vw, 1.4rem);
    font-weight: 400;
    line-height: 1.3;
    letter-spacing: 0.02em;
    color: var(--qdaddys-white);
    text-align: center;
    text-transform: none;
    margin: 0;
}

.theme-qdaddys .qdaddys-hello-bar__inner :is(p, h1, h2, h3, h4, h5, h6) + :is(p, h1, h2, h3, h4, h5, h6) {
    margin-top: 0.25rem;
}

.theme-qdaddys .qdaddys-hello-bar a,
div.theme-qdaddys.theme-atomik .qdaddys-hello-bar a {
    color: var(--qdaddys-white);
    text-decoration: none;
    transition: opacity 0.2s ease;
}

@media (hover: hover) {
    .theme-qdaddys .qdaddys-hello-bar a:hover {
        color: var(--qdaddys-white);
        opacity: 0.85;
    }
}

.theme-qdaddys .qdaddys-hello-bar a:focus-visible {
    color: var(--qdaddys-white);
    opacity: 0.85;
    outline: 2px solid var(--qdaddys-white);
    outline-offset: 3px;
}

.theme-qdaddys .qdaddys-hello-bar img {
    max-height: 2.5rem;
    width: auto;
    vertical-align: middle;
}

/* Edit mode: keep the empty area visible and easy to find. */
html.ccm-edit-mode .theme-qdaddys .qdaddys-hello-bar__inner {
    min-height: 3rem;
}

/* --------------------------------------------------------------------------
   Mobile footer: center everything and keep it off the screen edges
   (kept at the end so it wins over the earlier left/right alignments)
   -------------------------------------------------------------------------- */

@media (max-width: 991.98px) {
    .theme-qdaddys .qdaddys-footer__contact,
    .theme-qdaddys .qdaddys-footer__loyalty {
        padding-left: 15px;
        padding-right: 15px;
    }

    .theme-qdaddys .qdaddys-footer-contact p {
        text-align: center;
    }

    .theme-qdaddys .qdaddys-footer__social,
    .theme-qdaddys .qdaddys-footer__social .ccm-block-social-links ul,
    .theme-qdaddys .qdaddys-footer__social .qdaddys-social-links {
        justify-content: center;
    }
}

@media (max-width: 767.98px) {
    .theme-qdaddys .qdaddys-footer__find-location {
        justify-content: center;
    }

    /* The editor saved this paragraph with an inline right-align */
    .theme-qdaddys .qdaddys-footer-loyalty__text {
        text-align: center !important;
        max-width: none;
        margin-bottom: 0.75rem;
    }

    .theme-qdaddys .qdaddys-footer-loyalty__form {
        margin: 0 auto;
    }
}
