/* KCHFest 2026 stall page refresh.
   This layer only changes presentation; existing forms, links and JS hooks remain intact. */

body.has-floating-share.stall-page-v3 {
    --stall-v3-ink: #21140e;
    --stall-v3-muted: #6d5749;
    --stall-v3-orange: #d95318;
    --stall-v3-orange-dark: #9f350e;
    --stall-v3-cream: #fff8f0;
    --stall-v3-surface: #fffdf9;
    --stall-v3-border: rgba(142, 67, 25, 0.14);
    --stall-v3-shadow: 0 18px 42px rgba(76, 35, 13, 0.11);
    padding-bottom: calc(90px + env(safe-area-inset-bottom, 0px));
}

body.has-floating-share.stall-page-v3 .stall-profile-section {
    background:
        radial-gradient(circle at 88% 6%, rgba(255, 205, 104, 0.38), transparent 35%),
        linear-gradient(145deg, #6f2e14 0%, #a94013 48%, #df8a08 100%) !important;
    border-radius: 0 0 30px 30px !important;
    margin-bottom: 22px !important;
    padding: clamp(22px, 4vw, 44px) 20px 30px !important;
}

body.has-floating-share.stall-page-v3 .stall-profile-container {
    align-items: stretch !important;
    display: grid !important;
    gap: 18px !important;
    grid-template-areas:
        "visual info"
        "visual actions";
    grid-template-columns: minmax(230px, 0.7fr) minmax(0, 1.7fr) !important;
    margin: 0 auto !important;
    max-width: 1120px !important;
    width: 100% !important;
}

body.has-floating-share.stall-page-v3 .stall-profile-visual {
    border: 1px solid rgba(255, 255, 255, 0.34);
    border-radius: 24px;
    box-shadow: 0 18px 38px rgba(48, 20, 8, 0.26);
    grid-area: visual;
    min-height: 270px;
    overflow: hidden;
    position: relative;
}

body.has-floating-share.stall-page-v3 .stall-cover-backdrop {
    height: 100%;
    inset: 0;
    overflow: hidden;
    position: absolute;
    width: 100%;
}

body.has-floating-share.stall-page-v3 .stall-cover-backdrop::after {
    background: linear-gradient(180deg, rgba(34, 16, 7, 0.05) 20%, rgba(34, 16, 7, 0.7) 100%);
    content: "";
    inset: 0;
    position: absolute;
}

body.has-floating-share.stall-page-v3 .stall-cover-backdrop img {
    filter: saturate(1.04);
    height: 100%;
    object-fit: cover;
    transform: scale(1.02);
    width: 100%;
}

body.has-floating-share.stall-page-v3 .stall-cover-backdrop-placeholder {
    align-items: center;
    background: linear-gradient(145deg, rgba(255, 244, 229, 0.32), rgba(129, 48, 12, 0.45));
    color: rgba(255, 255, 255, 0.72);
    display: flex;
    font-size: 4rem;
    justify-content: center;
}

body.has-floating-share.stall-page-v3 .stall-avatar-container {
    bottom: 18px;
    height: auto !important;
    left: 18px;
    margin: 0 !important;
    position: absolute;
    width: auto !important;
    z-index: 2;
}

body.has-floating-share.stall-page-v3 .stall-avatar,
body.has-floating-share.stall-page-v3 .stall-avatar-placeholder {
    border: 3px solid rgba(255, 251, 246, 0.9) !important;
    border-radius: 20px !important;
    box-shadow: 0 12px 28px rgba(31, 13, 5, 0.3) !important;
    height: 92px !important;
    width: 92px !important;
}

body.has-floating-share.stall-page-v3 .stall-profile-info {
    align-self: stretch !important;
    background: rgba(255, 252, 247, 0.96) !important;
    border: 1px solid rgba(255, 255, 255, 0.68) !important;
    border-radius: 24px !important;
    box-shadow: var(--stall-v3-shadow) !important;
    grid-area: info;
    padding: clamp(18px, 2.4vw, 28px) !important;
    text-align: left !important;
}

body.has-floating-share.stall-page-v3 .stall-profile-title {
    --stall-title-size: clamp(1.75rem, 3.5vw, 2.7rem);
    align-items: flex-start !important;
    color: var(--stall-v3-ink) !important;
    font-size: var(--stall-title-size) !important;
    gap: 9px !important;
    justify-content: flex-start !important;
    line-height: 1.08 !important;
    margin: 0 0 12px !important;
    white-space: normal !important;
}

body.has-floating-share.stall-page-v3 .stall-profile-title-text {
    display: -webkit-box !important;
    max-width: calc(100% - 38px) !important;
    overflow: hidden !important;
    overflow-wrap: anywhere;
    text-overflow: clip !important;
    white-space: normal !important;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

body.has-floating-share.stall-page-v3 .stall-profile-title .verified-badge {
    height: 24px !important;
    margin-top: 4px !important;
    width: 24px !important;
}

body.has-floating-share.stall-page-v3 .stall-profile-number,
body.has-floating-share.stall-page-v3 .stall-profile-rating {
    margin: 0 8px 10px 0 !important;
    min-height: 40px;
    padding: 8px 13px !important;
    vertical-align: middle;
}

body.has-floating-share.stall-page-v3 .stall-profile-number {
    background: #fff2e3 !important;
    color: #8f2f0d !important;
}

body.has-floating-share.stall-page-v3 .stall-profile-description {
    background: transparent !important;
    border: 0 !important;
    border-top: 1px solid var(--stall-v3-border) !important;
    border-radius: 0 !important;
    margin: 4px 0 0 !important;
    padding: 14px 0 0 !important;
}

body.has-floating-share.stall-page-v3 .description-title {
    color: var(--stall-v3-orange-dark) !important;
    font-size: 0.78rem !important;
    font-weight: 900 !important;
    justify-content: flex-start !important;
    letter-spacing: 0.08em !important;
    margin-bottom: 7px !important;
    text-transform: uppercase !important;
}

body.has-floating-share.stall-page-v3 .description-title::before,
body.has-floating-share.stall-page-v3 .description-title::after {
    display: none !important;
}

body.has-floating-share.stall-page-v3 .description-text {
    color: #49382f !important;
    font-size: 0.98rem !important;
    line-height: 1.55 !important;
    margin: 0 !important;
    text-align: left !important;
}

body.has-floating-share.stall-page-v3 .description-text:not(.expanded) {
    display: -webkit-box !important;
    max-height: 4.7em !important;
    overflow: hidden !important;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
}

body.has-floating-share.stall-page-v3 .description-text.expanded {
    display: block !important;
    max-height: none !important;
}

body.has-floating-share.stall-page-v3 .description-expand-btn {
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    color: var(--stall-v3-orange-dark) !important;
    font-size: 0.86rem !important;
    margin: 8px 0 0 !important;
    min-height: 40px;
    padding: 4px 0 !important;
}

body.has-floating-share.stall-page-v3 .stall-plan-actions {
    align-items: stretch !important;
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 10px !important;
    grid-area: actions;
    justify-content: flex-start !important;
    width: 100% !important;
}

body.has-floating-share.stall-page-v3 .stall-plan-actions .btn {
    border-radius: 15px !important;
    justify-content: center !important;
    min-height: 48px !important;
    padding: 0 16px !important;
}

body.has-floating-share.stall-page-v3 .stall-plan-actions .stall-action-primary {
    flex: 1 1 210px;
}

body.has-floating-share.stall-page-v3 .stall-add-food-form .btn {
    width: 100% !important;
}

body.has-floating-share.stall-page-v3 .stall-navigate-button {
    background: var(--stall-v3-orange) !important;
    border-color: var(--stall-v3-orange) !important;
    color: #fff !important;
}

body.has-floating-share.stall-page-v3 .stall-add-food-button {
    background: var(--stall-v3-cream) !important;
    border-color: rgba(255, 255, 255, 0.82) !important;
    color: var(--stall-v3-ink) !important;
}

body.has-floating-share.stall-page-v3 .stall-action-utility {
    flex: 0 1 auto;
}

body.has-floating-share.stall-page-v3 .stall-love-button,
body.has-floating-share.stall-page-v3 .stall-plan-link,
body.has-floating-share.stall-page-v3 .stall-share-button {
    background: rgba(255, 249, 241, 0.94) !important;
    border: 1px solid rgba(255, 255, 255, 0.72) !important;
    color: #7d2d10 !important;
}

body.has-floating-share.stall-page-v3 .stall-love-button.is-loved {
    background: #bb3440 !important;
    border-color: #bb3440 !important;
    color: #fff !important;
}

body.has-floating-share.stall-page-v3 .stall-share-action {
    position: relative;
}

body.has-floating-share.stall-page-v3 .stall-share-action .stall-share-button {
    width: 100% !important;
}

body.has-floating-share.stall-page-v3 .stall-share-action .floating-share-menu {
    bottom: calc(100% + 10px) !important;
    left: auto !important;
    right: 0 !important;
    top: auto !important;
    z-index: 1080 !important;
}

body.has-floating-share.stall-page-v3 .stall-content {
    max-width: 1120px !important;
    padding-left: 18px !important;
    padding-right: 18px !important;
}

body.has-floating-share.stall-page-v3 .stall-section {
    background: rgba(255, 253, 249, 0.96) !important;
    border: 1px solid var(--stall-v3-border) !important;
    border-radius: 22px !important;
    box-shadow: var(--stall-v3-shadow) !important;
    margin: 0 0 20px !important;
    overflow: hidden;
    padding: clamp(18px, 3vw, 28px) !important;
}

body.has-floating-share.stall-page-v3 .section-title {
    font-size: clamp(1.25rem, 2.5vw, 1.7rem) !important;
    margin: 0 0 18px !important;
    padding: 0 0 13px !important;
}

body.has-floating-share.stall-page-v3 .section-title i {
    border-radius: 11px !important;
    flex-basis: 38px !important;
    height: 38px !important;
    width: 38px !important;
}

body.has-floating-share.stall-page-v3 .menu-grid {
    gap: 16px !important;
}

body.has-floating-share.stall-page-v3 .menu-item-card,
body.has-floating-share.stall-page-v3 .review-card,
body.has-floating-share.stall-page-v3 .review-form-card {
    box-shadow: 0 10px 25px rgba(76, 35, 13, 0.08) !important;
}

body.has-floating-share.stall-page-v3 .menu-item-content {
    padding: 17px !important;
}

body.has-floating-share.stall-page-v3 .menu-item-header {
    align-items: flex-start;
    gap: 10px;
}

body.has-floating-share.stall-page-v3 .menu-item-price {
    flex: 0 0 auto;
    font-size: 0.9rem;
    padding: 5px 9px !important;
}

body.has-floating-share.stall-page-v3 .gallery-small-grid {
    gap: 12px !important;
}

body.has-floating-share.stall-page-v3 .gallery-small-item,
body.has-floating-share.stall-page-v3 .gallery-single-item,
body.has-floating-share.stall-page-v3 .gallery-featured,
body.has-floating-share.stall-page-v3 .gallery-thumbnail,
body.has-floating-share.stall-page-v3 .gallery-more {
    border-radius: 16px !important;
    box-shadow: 0 9px 22px rgba(76, 35, 13, 0.09) !important;
}

body.has-floating-share.stall-page-v3 .stall-section--reviews .alert-info {
    background: #e9f8fb !important;
    border: 1px solid #a8e0e8 !important;
    border-radius: 14px !important;
    color: #0c5260 !important;
    margin: 0 !important;
    padding: 14px 16px !important;
}

body.has-floating-share.stall-page-v3 .reviews-upcoming .reviews-list:has(.no-reviews) {
    display: none !important;
}

body.has-floating-share.stall-page-v3 .no-reviews {
    min-height: 0 !important;
    padding: 30px 16px !important;
}

@media (max-width: 768px) {
    body.has-floating-share.stall-page-v3 .stall-profile-section {
        border-radius: 0 0 24px 24px !important;
        padding: 16px 14px 22px !important;
    }

    body.has-floating-share.stall-page-v3 .stall-profile-container {
        display: grid !important;
        gap: 12px !important;
        grid-template-areas:
            "visual"
            "info"
            "actions";
        grid-template-columns: minmax(0, 1fr) !important;
        max-width: 680px !important;
        width: 100% !important;
    }

    body.has-floating-share.stall-page-v3 .stall-profile-visual {
        border-radius: 20px !important;
        min-height: 174px !important;
        overflow: visible;
    }

    body.has-floating-share.stall-page-v3 .stall-cover-backdrop {
        border-radius: inherit;
    }

    body.has-floating-share.stall-page-v3 .stall-avatar-container {
        bottom: -32px !important;
        left: 50% !important;
        transform: translateX(-50%);
    }

    body.has-floating-share.stall-page-v3 .stall-avatar,
    body.has-floating-share.stall-page-v3 .stall-avatar-placeholder {
        border-radius: 18px !important;
        height: 84px !important;
        width: 84px !important;
    }

    body.has-floating-share.stall-page-v3 .stall-profile-info {
        border-radius: 20px !important;
        margin-top: -12px !important;
        padding: 48px 16px 16px !important;
        text-align: left !important;
    }

    body.has-floating-share.stall-page-v3 .stall-profile-title {
        --stall-title-size: clamp(1.55rem, 8vw, 2rem);
        justify-content: flex-start !important;
        margin-bottom: 10px !important;
    }

    body.has-floating-share.stall-page-v3 .stall-profile-number,
    body.has-floating-share.stall-page-v3 .stall-profile-rating {
        justify-content: flex-start !important;
        margin-left: 0 !important;
        margin-right: 6px !important;
    }

    body.has-floating-share.stall-page-v3 .description-title {
        justify-content: flex-start !important;
    }

    body.has-floating-share.stall-page-v3 .stall-plan-actions {
        display: grid !important;
        gap: 9px !important;
        grid-template-columns: repeat(6, minmax(0, 1fr)) !important;
    }

    body.has-floating-share.stall-page-v3 .stall-plan-actions .stall-navigate-button {
        grid-column: span 3;
        order: 1;
    }

    body.has-floating-share.stall-page-v3 .stall-plan-actions .stall-add-food-button,
    body.has-floating-share.stall-page-v3 .stall-plan-actions .stall-add-food-form {
        grid-column: span 3;
        order: 2;
    }

    body.has-floating-share.stall-page-v3 .stall-plan-actions .stall-love-button {
        grid-column: span 2;
        order: 3;
    }

    body.has-floating-share.stall-page-v3 .stall-plan-actions .stall-plan-link {
        grid-column: span 2;
        order: 4;
    }

    body.has-floating-share.stall-page-v3 .stall-plan-actions .stall-share-action {
        grid-column: span 2;
        order: 5;
    }

    body.has-floating-share.stall-page-v3 .stall-plan-actions .btn {
        font-size: 0.88rem !important;
        min-height: 48px !important;
        padding: 0 10px !important;
        width: 100% !important;
    }

    body.has-floating-share.stall-page-v3 .stall-share-button span {
        display: inline-block;
        max-width: 74px;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    body.has-floating-share.stall-page-v3 .stall-content {
        padding-left: 12px !important;
        padding-right: 12px !important;
    }

    body.has-floating-share.stall-page-v3 .stall-section {
        border-radius: 18px !important;
        margin-bottom: 14px !important;
        padding: 16px !important;
    }

    body.has-floating-share.stall-page-v3 .section-title {
        margin-bottom: 14px !important;
    }

    body.has-floating-share.stall-page-v3 .menu-grid {
        gap: 12px !important;
        grid-template-columns: minmax(0, 1fr) !important;
    }

    body.has-floating-share.stall-page-v3 .menu-item-card.has-image {
        display: grid !important;
        grid-template-columns: 112px minmax(0, 1fr) !important;
        grid-template-rows: minmax(0, 1fr) !important;
        min-height: 168px !important;
    }

    body.has-floating-share.stall-page-v3 .menu-item-image {
        aspect-ratio: auto !important;
        height: 100% !important;
        min-height: 168px !important;
        width: 112px !important;
    }

    body.has-floating-share.stall-page-v3 .menu-item-content {
        padding: 13px !important;
    }

    body.has-floating-share.stall-page-v3 .menu-item-header {
        display: block !important;
    }

    body.has-floating-share.stall-page-v3 .menu-item-name {
        font-size: 1rem !important;
        margin-bottom: 7px !important;
    }

    body.has-floating-share.stall-page-v3 .menu-item-price {
        display: inline-flex;
        margin-bottom: 7px;
    }

    body.has-floating-share.stall-page-v3 .menu-item-description {
        font-size: 0.86rem !important;
        -webkit-line-clamp: 2 !important;
    }

    body.has-floating-share.stall-page-v3 .menu-item-plan-form {
        padding-top: 8px !important;
    }

    body.has-floating-share.stall-page-v3 .menu-item-plan-btn,
    body.has-floating-share.stall-page-v3 .menu-love-button {
        min-height: 40px !important;
    }

    body.has-floating-share.stall-page-v3 .social-share-section {
        display: none !important;
    }
}

@media (max-width: 390px) {
    body.has-floating-share.stall-page-v3 .stall-profile-section {
        padding-left: 10px !important;
        padding-right: 10px !important;
    }

    body.has-floating-share.stall-page-v3 .stall-plan-actions .btn {
        font-size: 0.8rem !important;
        padding-left: 7px !important;
        padding-right: 7px !important;
    }

    body.has-floating-share.stall-page-v3 .menu-item-card.has-image {
        grid-template-columns: 100px minmax(0, 1fr) !important;
    }

    body.has-floating-share.stall-page-v3 .menu-item-image {
        width: 100px !important;
    }
}

@media (prefers-reduced-motion: reduce) {
    body.has-floating-share.stall-page-v3 *,
    body.has-floating-share.stall-page-v3 *::before,
    body.has-floating-share.stall-page-v3 *::after {
        scroll-behavior: auto !important;
        transition-duration: 0.01ms !important;
    }
}

/* Compact mobile composition: content first, matching the home screen's light surfaces. */
@media (max-width: 768px) {
    body.has-floating-share.stall-page-v3 .stall-profile-section {
        background: #f5f2ee !important;
        border-bottom: 1px solid rgba(126, 62, 25, 0.1) !important;
        border-radius: 0 !important;
        margin-bottom: 8px !important;
        padding: 14px 12px 16px !important;
    }

    body.has-floating-share.stall-page-v3 .stall-profile-section::before,
    body.has-floating-share.stall-page-v3 .stall-profile-section::after {
        display: none !important;
    }

    body.has-floating-share.stall-page-v3 .stall-profile-container {
        gap: 10px !important;
        max-width: 680px !important;
        width: 100% !important;
    }

    body.has-floating-share.stall-page-v3 .stall-profile-visual {
        border: 1px solid rgba(126, 62, 25, 0.13) !important;
        border-radius: 18px !important;
        box-shadow: 0 8px 22px rgba(67, 35, 18, 0.08) !important;
        min-height: 148px !important;
        overflow: hidden !important;
    }

    body.has-floating-share.stall-page-v3 .stall-cover-backdrop::after {
        background: linear-gradient(180deg, transparent 45%, rgba(30, 14, 6, 0.36) 100%) !important;
    }

    body.has-floating-share.stall-page-v3 .stall-avatar-container {
        bottom: 12px !important;
        left: 12px !important;
        margin: 0 !important;
        transform: none !important;
    }

    body.has-floating-share.stall-page-v3 .stall-avatar,
    body.has-floating-share.stall-page-v3 .stall-avatar-placeholder {
        border-radius: 15px !important;
        height: 68px !important;
        width: 68px !important;
    }

    body.has-floating-share.stall-page-v3 .stall-profile-info {
        background: #fffdf9 !important;
        border: 1px solid rgba(126, 62, 25, 0.12) !important;
        border-radius: 18px !important;
        box-shadow: 0 8px 22px rgba(67, 35, 18, 0.055) !important;
        margin: 0 !important;
        padding: 15px !important;
        text-align: left !important;
    }

    body.has-floating-share.stall-page-v3 .stall-profile-title {
        --stall-title-size: clamp(1.45rem, 7vw, 1.85rem);
        align-items: center !important;
        justify-content: flex-start !important;
        line-height: 1.12 !important;
        margin: 0 0 10px !important;
    }

    body.has-floating-share.stall-page-v3 .stall-profile-title-text {
        display: -webkit-box !important;
        max-width: calc(100% - 34px) !important;
        overflow: hidden !important;
        white-space: normal !important;
        -webkit-box-orient: vertical;
        -webkit-line-clamp: 2;
    }

    body.has-floating-share.stall-page-v3 .stall-profile-number,
    body.has-floating-share.stall-page-v3 .stall-profile-rating {
        font-size: 0.84rem !important;
        margin: 0 6px 0 0 !important;
        padding: 7px 10px !important;
    }

    body.has-floating-share.stall-page-v3 .stall-profile-description {
        background: transparent !important;
        border: 0 !important;
        border-top: 1px solid rgba(126, 62, 25, 0.1) !important;
        border-radius: 0 !important;
        margin-top: 12px !important;
        padding: 12px 0 0 !important;
    }

    body.has-floating-share.stall-page-v3 .description-title {
        font-size: 0.82rem !important;
        margin-bottom: 6px !important;
    }

    body.has-floating-share.stall-page-v3 .description-text {
        display: -webkit-box;
        font-size: 0.9rem !important;
        line-height: 1.55 !important;
        margin: 0 !important;
        max-height: none !important;
        overflow: hidden !important;
        -webkit-box-orient: vertical;
        -webkit-line-clamp: 3;
    }

    body.has-floating-share.stall-page-v3 .description-expand-btn {
        background: transparent !important;
        box-shadow: none !important;
        color: var(--stall-v3-orange-dark) !important;
        margin-top: 6px !important;
        padding: 4px 0 !important;
    }

    body.has-floating-share.stall-page-v3 .stall-plan-actions {
        background: #fffdf9;
        border: 1px solid rgba(126, 62, 25, 0.12);
        border-radius: 18px;
        gap: 7px !important;
        padding: 8px;
    }

    body.has-floating-share.stall-page-v3 .stall-plan-actions .btn {
        border-radius: 13px !important;
        font-size: 0.8rem !important;
        min-height: 43px !important;
        padding: 0 7px !important;
    }

    body.has-floating-share.stall-page-v3 .stall-plan-actions .stall-navigate-button,
    body.has-floating-share.stall-page-v3 .stall-plan-actions .stall-add-food-button {
        background: #b9430f !important;
        border-color: #b9430f !important;
        color: #fff !important;
    }

    body.has-floating-share.stall-page-v3 .stall-plan-actions .stall-love-button,
    body.has-floating-share.stall-page-v3 .stall-plan-actions .stall-plan-link,
    body.has-floating-share.stall-page-v3 .stall-plan-actions .stall-share-button {
        background: #fffaf4 !important;
        border-color: rgba(169, 66, 20, 0.18) !important;
        color: #713116 !important;
    }

    body.has-floating-share.stall-page-v3 .stall-profile-title {
        align-items: start !important;
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) auto !important;
        text-align: left !important;
        width: 100% !important;
    }

    body.has-floating-share.stall-page-v3 .stall-profile-title-text,
    body.has-floating-share.stall-page-v3 .stall-profile-title:has(.verified-badge) .stall-profile-title-text {
        display: -webkit-box !important;
        max-width: none !important;
        min-width: 0 !important;
        overflow: hidden !important;
        text-align: left !important;
        text-overflow: ellipsis !important;
        text-wrap: balance;
        white-space: normal !important;
        -webkit-box-orient: vertical;
        -webkit-line-clamp: 2;
    }

    body.has-floating-share.stall-page-v3 .stall-profile-title.is-long {
        --stall-title-size: clamp(1.27rem, 5.8vw, 1.55rem);
    }

    body.has-floating-share.stall-page-v3 .stall-profile-title.is-very-long {
        --stall-title-size: clamp(1.08rem, 4.9vw, 1.3rem);
        line-height: 1.18 !important;
    }

    body.has-floating-share.stall-page-v3 .stall-profile-title .verified-badge {
        align-self: start !important;
        height: 24px !important;
        margin-top: 2px !important;
        width: 24px !important;
    }
}
