/* ========================================
   Template : Terroir
   Terre, bois, farm-to-table, rustique chic
   PREMIUM
   ======================================== */

.menu-template.terroir-rustique {
    --t-primary: var(--custom-primary, #5a3e28);
    --t-secondary: var(--custom-secondary, #7a8b3c);
    --t-bg: var(--custom-bg, #f5f0e6);
    --t-text: var(--custom-text, #4a3f35);
    --t-heading-font: var(--custom-heading-font, 'Libre Baskerville', serif);
    --t-body-font: var(--custom-body-font, 'Lato', sans-serif);

    background: var(--t-bg);
    color: var(--t-text);
    padding: 60px 55px;
    text-align: center;
    border: 3px solid var(--t-primary);
    border-image: none;
    position: relative;
    box-shadow:
        0 4px 30px rgba(90, 62, 40, 0.1),
        inset 0 0 60px rgba(90, 62, 40, 0.03);
}

/* Wood-grain rustic texture using CSS gradients */
.terroir-rustique .menu-texture-overlay {
    background:
        repeating-linear-gradient(
            2deg,
            transparent,
            transparent 3px,
            rgba(90, 62, 40, 0.012) 3px,
            rgba(90, 62, 40, 0.012) 5px
        ),
        repeating-linear-gradient(
            178deg,
            transparent,
            transparent 7px,
            rgba(90, 62, 40, 0.008) 7px,
            rgba(90, 62, 40, 0.008) 9px
        ),
        repeating-linear-gradient(
            0deg,
            transparent,
            transparent 15px,
            rgba(90, 62, 40, 0.015) 15px,
            rgba(90, 62, 40, 0.015) 16px
        ),
        radial-gradient(ellipse at 25% 30%, rgba(122, 139, 60, 0.05) 0%, transparent 45%),
        radial-gradient(ellipse at 75% 65%, rgba(90, 62, 40, 0.06) 0%, transparent 40%);
}

/* Organic rustic double border with slightly rougher feel */
.terroir-rustique::before {
    content: '';
    position: absolute;
    inset: 7px;
    border: 1px solid var(--t-primary);
    opacity: 0.2;
    pointer-events: none;
    border-radius: 1px;
}

.terroir-rustique::after {
    content: '';
    position: absolute;
    inset: 12px;
    border: 1px dashed var(--t-secondary);
    opacity: 0.1;
    pointer-events: none;
}

/* Header */
.terroir-rustique .menu-header {
    margin-bottom: 48px;
    padding-bottom: 28px;
}

.terroir-rustique .menu-header-deco {
    font-size: 18px;
    color: var(--t-secondary);
    letter-spacing: 10px;
    margin-bottom: 18px;
    opacity: 0.6;
}

.terroir-rustique .menu-restaurant-logo {
    margin: 0 auto 18px;
}

.terroir-rustique .menu-restaurant-name {
    font-family: var(--t-heading-font);
    font-size: 2.5em;
    font-weight: 700;
    color: var(--t-primary);
    letter-spacing: 0.05em;
    margin-bottom: 10px;
    text-shadow: 0 1px 2px rgba(90, 62, 40, 0.06);
}

.terroir-rustique .menu-restaurant-subtitle {
    font-family: var(--t-body-font);
    font-size: 0.85em;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--t-secondary);
    font-weight: 400;
}

/* SVG ornament handles decoration now — no emoji */
.terroir-rustique .menu-header::after {
    content: '';
    display: block;
    margin: 22px auto 0;
    width: 70px;
    height: 1px;
    background: linear-gradient(
        90deg,
        transparent 0%,
        var(--t-secondary) 25%,
        var(--t-secondary) 75%,
        transparent 100%
    );
    opacity: 0.3;
}

/* Categories */
.terroir-rustique .menu-category {
    margin-bottom: 38px;
}

.terroir-rustique .menu-category-name {
    font-family: var(--t-heading-font);
    font-size: 1.2em;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--t-secondary);
    margin-bottom: 8px;
}

.terroir-rustique .menu-category-desc {
    font-size: 0.82em;
    font-style: italic;
    color: var(--t-text);
    opacity: 0.6;
    margin-bottom: 16px;
}

.terroir-rustique .menu-category-separator {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    margin-bottom: 22px;
}

.terroir-rustique .menu-category-separator::before,
.terroir-rustique .menu-category-separator::after {
    content: '';
    width: 55px;
    height: 1px;
    background: linear-gradient(
        90deg,
        transparent 0%,
        var(--t-secondary) 25%,
        var(--t-secondary) 75%,
        transparent 100%
    );
    opacity: 0.35;
}

/* Items with generous spacing */
.terroir-rustique .menu-item {
    margin-bottom: 16px;
    padding: 2px 18px;
}

.terroir-rustique .menu-item-header {
    display: flex;
    justify-content: center;
    align-items: baseline;
    gap: 10px;
}

.terroir-rustique .menu-item-name {
    font-family: var(--t-heading-font);
    font-size: 0.97em;
    font-weight: 400;
    color: var(--t-primary);
}

.terroir-rustique .menu-item-dots {
    flex: 1;
    border-bottom: 1px dotted var(--t-secondary);
    opacity: 0.3;
    min-width: 20px;
    margin-bottom: 4px;
}

.terroir-rustique .menu-item-price {
    font-family: var(--t-body-font);
    font-size: 0.94em;
    font-weight: 700;
    color: var(--t-secondary);
}

.terroir-rustique .menu-item-description {
    font-size: 0.8em;
    font-style: italic;
    color: var(--t-text);
    opacity: 0.5;
    margin-top: 4px;
}

/* Footer */
.terroir-rustique .menu-footer {
    margin-top: 48px;
    padding-top: 24px;
}

/* SVG ornament handles decoration now — no emoji */
.terroir-rustique .menu-footer::before {
    content: '';
    display: block;
    margin: 0 auto 18px;
    width: 70px;
    height: 1px;
    background: linear-gradient(
        90deg,
        transparent 0%,
        var(--t-secondary) 25%,
        var(--t-secondary) 75%,
        transparent 100%
    );
    opacity: 0.3;
}

.terroir-rustique .menu-restaurant-info {
    font-size: 0.78em;
    color: var(--t-text);
    opacity: 0.45;
    letter-spacing: 0.06em;
}

.terroir-rustique .menu-restaurant-info p {
    margin: 4px 0;
}
