:root {
    --brand-50: #f5f3ea;
    --brand-100: #ece5d4;
    --brand-300: #c1b48d;
    --brand-500: #7c8a4d;
    --brand-700: #48522f;
    --accent: #c96f3a;
    --text-main: #2f3424;
    --text-muted: #677053;
    --surface: #fffdfa;
    --line: #e4dccd;
    --shadow: 0 14px 35px rgba(72, 82, 47, 0.08);
    --radius-lg: 22px;
    --radius-md: 16px;
}

body {
    background: linear-gradient(180deg, #f7f4ed 0%, #fbfaf7 280px, #f6f6f2 100%);
    color: var(--text-main);
    font-family: "Noto Sans KR", "Apple SD Gothic Neo", sans-serif;
}

a {
    color: var(--brand-700);
}

.site-header,
.admin-header {
    background-color: rgba(255, 253, 250, 0.95);
    backdrop-filter: blur(14px);
    border-bottom: 1px solid rgba(122, 138, 77, 0.12);
}

.site-header .navbar,
.admin-header .navbar {
    padding-top: 0.9rem;
    padding-bottom: 0.9rem;
}

.site-logo {
    width: 34px;
    height: 34px;
    object-fit: cover;
    border-radius: 10px;
    margin-right: 0.5rem;
}

.hero-card,
.content-card,
.product-card,
.summary-card,
.info-card,
.admin-panel {
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow);
}

.hero-card {
    padding: 1.5rem;
    background:
        radial-gradient(circle at top right, rgba(201, 111, 58, 0.12), transparent 28%),
        radial-gradient(circle at bottom left, rgba(124, 138, 77, 0.16), transparent 30%),
        var(--surface);
}

.section-title {
    font-size: 1.35rem;
    font-weight: 700;
    margin-bottom: 1rem;
}

.section-subtitle {
    color: var(--text-muted);
    margin-bottom: 1rem;
}

.btn-main {
    background-color: var(--brand-500);
    border-color: var(--brand-500);
    color: #fff;
}

.btn-main:hover,
.btn-main:focus {
    background-color: var(--brand-700);
    border-color: var(--brand-700);
    color: #fff;
}

.btn-outline-main {
    border-color: var(--brand-300);
    color: var(--brand-700);
    background-color: #fff;
}

.btn-outline-main:hover {
    background-color: var(--brand-50);
    border-color: var(--brand-500);
    color: var(--brand-700);
}

.btn-disabled-main,
.btn-disabled-main:disabled {
    background-color: #ece8dc;
    border: 1px solid #d3cab8;
    color: #8a8f7d;
    cursor: not-allowed;
    box-shadow: none;
}

.btn-disabled-main:hover,
.btn-disabled-main:focus {
    background-color: #ece8dc;
    border-color: #d3cab8;
    color: #8a8f7d;
}

.quick-button-grid .btn {
    min-height: 56px;
    font-weight: 600;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    line-height: 1.25;
    padding: 0.75rem 1rem;
}

.product-card {
    overflow: hidden;
    height: 100%;
}

.product-card img {
    width: 100%;
    height: 180px;
    object-fit: cover;
    background: #f1eee6;
}

.product-card .card-body {
    padding: 1rem;
}

.featured-marquee {
    position: relative;
}

.featured-marquee-viewport {
    overflow: hidden;
    padding: 0.25rem 0;
}

.featured-marquee-track {
    display: flex;
    align-items: stretch;
    gap: 1rem;
    width: max-content;
    animation: featured-marquee-scroll 42s linear infinite;
}

.featured-marquee:hover .featured-marquee-track {
    animation-play-state: paused;
}

.featured-marquee-item {
    width: min(280px, 78vw);
    flex: 0 0 auto;
}

.product-meta {
    font-size: 0.92rem;
    color: var(--text-muted);
}

.price-text {
    font-size: 1.2rem;
    font-weight: 800;
    color: var(--brand-700);
}

.qty-box {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.qty-box .form-control {
    text-align: center;
    max-width: 84px;
    min-height: 48px;
    font-size: 1.1rem;
}

.qty-box .btn {
    width: 44px;
    height: 44px;
    padding: 0;
    font-size: 1.2rem;
}

.sticky-action-bar {
    position: sticky;
    bottom: 16px;
    z-index: 20;
}

.sticky-action-inner {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
    background: rgba(47, 52, 36, 0.92);
    color: #fff;
    padding: 0.9rem 1rem;
    border-radius: 18px;
    box-shadow: 0 18px 38px rgba(47, 52, 36, 0.24);
}

.form-control,
.form-select,
.btn {
    border-radius: 14px;
}

.form-control,
.form-select {
    min-height: 52px;
}

textarea.form-control {
    min-height: 120px;
}

.reservation-item {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    padding: 0.9rem 0;
    border-bottom: 1px solid var(--line);
}

.reservation-item:last-child {
    border-bottom: 0;
}

.notice-item {
    padding: 1rem 0;
    border-bottom: 1px solid var(--line);
}

.notice-item:last-child {
    border-bottom: 0;
}

.site-footer {
    margin-top: 3rem;
    background-color: #e9e3d5;
    border-top: 1px solid rgba(72, 82, 47, 0.12);
}

.footer-title {
    font-size: 1.1rem;
    font-weight: 700;
}

.helper-text {
    color: var(--text-muted);
    font-size: 0.95rem;
}

.pickup-time-highlight {
    color: #c43c2f;
    font-weight: 800;
}

.empty-state {
    padding: 2rem 1rem;
    text-align: center;
    color: var(--text-muted);
}

.rich-content {
    color: var(--text-main);
    line-height: 1.7;
    word-break: keep-all;
}

.rich-content > *:last-child {
    margin-bottom: 0;
}

.rich-content img {
    max-width: 100%;
    height: auto;
    border-radius: 12px;
}

.rich-content table {
    width: 100%;
    margin-bottom: 1rem;
}

.product-rich-content {
    max-height: 220px;
    overflow: auto;
    padding-right: 0.25rem;
}

.notice-rich-content {
    margin-top: 0.5rem;
}

.notice-list-accordion {
    display: grid;
    gap: 0.85rem;
}

.notice-card-details {
    border: 1px solid var(--line);
    border-radius: 18px;
    background: #fffdfa;
    overflow: hidden;
}

.notice-card-summary {
    list-style: none;
    cursor: pointer;
    padding: 1rem 1.1rem;
}

.notice-card-summary::-webkit-details-marker {
    display: none;
}

.notice-card-title-row {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    align-items: flex-start;
}

.notice-preview {
    margin-top: 0.5rem;
    color: var(--text-muted);
}

.notice-card-body {
    padding: 0 1.1rem 1rem;
    border-top: 1px solid var(--line);
}

.capture-card {
    background: #fffdfa;
    border: 1px solid var(--line);
    border-radius: 24px;
    box-shadow: var(--shadow);
    padding: 1.25rem;
}

.capture-card-header {
    padding-bottom: 1rem;
    margin-bottom: 1rem;
    border-bottom: 1px solid var(--line);
}

.capture-card-grid {
    display: grid;
    gap: 1rem;
}

.map-info-card {
    background:
        linear-gradient(135deg, rgba(124, 138, 77, 0.08), rgba(201, 111, 58, 0.08)),
        var(--surface);
}

.map-link-box {
    border: 1px dashed var(--brand-300);
    border-radius: 18px;
    padding: 1rem 1.1rem;
    background: rgba(255, 255, 255, 0.75);
}

@keyframes featured-marquee-scroll {
    0% {
        transform: translateX(0);
    }

    100% {
        transform: translateX(calc(-50% - 0.5rem));
    }
}

@media (min-width: 768px) {
    .hero-card {
        padding: 2rem;
    }

    .section-title {
        font-size: 1.55rem;
    }

    .capture-card {
        padding: 1.75rem;
    }
}

@media (max-width: 767.98px) {
    .featured-marquee-item {
        width: min(240px, 82vw);
    }

    .featured-marquee-track {
        animation-duration: 34s;
    }
}
