/* Nine identities; all native content remains editable and unchanged. */
:root[data-vibes-season-identity="christmas"]{--vs-ink:#123c2e;--vs-ivory:#fff5df;--vs-paper:#eedfc2;--vs-gold:#edc66e;--vs-muted:#526149;--vs-secondary:#651f32;--vs-surface:#fffaf0;--vs-art:url('art/christmas.svg');--vs-mobile-art:url('art/christmas-mobile.svg');--vs-pattern:radial-gradient(circle at 12px 12px,#b6934520 1px,transparent 2px)}
:root[data-vibes-season-identity="new-year"]{--vs-ink:#151c36;--vs-ivory:#fff5df;--vs-paper:#eee2c9;--vs-gold:#f2cc80;--vs-muted:#59576c;--vs-secondary:#2c254b;--vs-surface:#fffbf3;--vs-art:url('art/new-year.svg');--vs-mobile-art:url('art/new-year-mobile.svg');--vs-pattern:radial-gradient(circle at 12px 12px,#be934730 1px,transparent 2px)}
:root[data-vibes-season-identity="valentine"]{--vs-ink:#561e39;--vs-ivory:#fff2ee;--vs-paper:#f6dce2;--vs-gold:#f4bcba;--vs-muted:#74505d;--vs-secondary:#842d4b;--vs-surface:#fff8f5;--vs-art:url('art/valentine.svg');--vs-mobile-art:url('art/valentine-mobile.svg');--vs-pattern:radial-gradient(ellipse at 12px 12px,#a6345812 5px,transparent 6px)}
:root[data-vibes-season-identity="carnival"]{--vs-ink:#35205e;--vs-ivory:#fff5e6;--vs-paper:#e7dff4;--vs-gold:#ffd67e;--vs-muted:#655575;--vs-secondary:#075e66;--vs-surface:#fffbf4;--vs-art:url('art/carnival.svg');--vs-mobile-art:url('art/carnival-mobile.svg');--vs-pattern:repeating-linear-gradient(135deg,transparent 0 22px,#6e489010 22px 24px)}
:root[data-vibes-season-identity="easter"]{--vs-ink:#2c4937;--vs-ivory:#fff9e9;--vs-paper:#e4e9cb;--vs-gold:#f2cf76;--vs-muted:#57624c;--vs-secondary:#64513b;--vs-surface:#fffdf5;--vs-art:url('art/easter.svg');--vs-mobile-art:url('art/easter-mobile.svg');--vs-pattern:radial-gradient(circle at 12px 12px,#78936622 2px,transparent 3px)}
:root[data-vibes-season-identity="easter-monday"]{--vs-ink:#214d42;--vs-ivory:#fff9e9;--vs-paper:#e0e8d3;--vs-gold:#f3ce7b;--vs-muted:#50694f;--vs-secondary:#6d4330;--vs-surface:#fffdf2;--vs-art:url('art/easter-monday.svg');--vs-mobile-art:url('art/easter-monday-mobile.svg');--vs-pattern:repeating-linear-gradient(0deg,#6986630d 0 12px,transparent 12px 24px),repeating-linear-gradient(90deg,#6986630d 0 12px,transparent 12px 24px)}
:root[data-vibes-season-identity="mothers-day"]{--vs-ink:#493449;--vs-ivory:#fff6f0;--vs-paper:#eddfeb;--vs-gold:#f1c4cf;--vs-muted:#655565;--vs-secondary:#435d48;--vs-surface:#fffbf8;--vs-art:url('art/mothers-day.svg');--vs-mobile-art:url('art/mothers-day-mobile.svg');--vs-pattern:radial-gradient(ellipse at 12px 12px,#9f658318 3px,transparent 4px)}
:root[data-vibes-season-identity="anniversary"]{--vs-ink:#252825;--vs-ivory:#fff7df;--vs-paper:#eee0bb;--vs-gold:#efc86f;--vs-muted:#685a3c;--vs-secondary:#3a3b33;--vs-surface:#fffbed;--vs-art:url('art/anniversary.svg');--vs-mobile-art:url('art/anniversary-mobile.svg');--vs-pattern:repeating-linear-gradient(135deg,transparent 0 28px,#b2842712 28px 29px)}
:root[data-vibes-season-identity="halloween"]{--vs-ink:#321e42;--vs-ivory:#fff3e4;--vs-paper:#f0ddc7;--vs-gold:#ffbd75;--vs-muted:#6b5366;--vs-secondary:#733a26;--vs-surface:#fff9ee;--vs-art:url('art/halloween.svg');--vs-mobile-art:url('art/halloween-mobile.svg');--vs-pattern:radial-gradient(circle at 12px 12px,#85512a20 1px,transparent 2px)}
:root .vibes-header{border-bottom-width:2px}
:root .vibes-footer{border-top:3px solid transparent}
/* WP global styles can define the palette on body; override both scopes. */
:root[data-vibes-season-identity],:root[data-vibes-season-identity] body{--wp--preset--color--ink:var(--vs-ink);--wp--preset--color--ivory:var(--vs-ivory);--wp--preset--color--paper:var(--vs-paper);--wp--preset--color--brass:var(--vs-gold);--wp--preset--color--muted:var(--vs-muted);--vibes-ink:var(--vs-ink);--vibes-ivory:var(--vs-ivory);--vibes-paper:var(--vs-paper);--vibes-brass:var(--vs-gold);--vibes-season-accent:var(--vs-gold);--vibes-season-soft:color-mix(in srgb,var(--vs-gold) 18%,transparent);--vibes-border:color-mix(in srgb,var(--vs-ink) 24%,transparent)}
:root[data-vibes-season-identity] body{background:var(--vs-ivory);color:var(--vs-ink)}
:root[data-vibes-season-identity] .vibes-header{background:var(--vs-ink);color:var(--vs-ivory);border-bottom:2px solid var(--vs-gold)}
:root[data-vibes-season-identity] .vibes-header::after{content:"";display:block;position:absolute;inset:auto 0 -12px;height:13px;background:radial-gradient(ellipse at 50% 2px,var(--vs-gold) 0 3px,transparent 4px) 0 0/42px 13px repeat-x;pointer-events:none}
:root[data-vibes-season-identity] .vibes-hero{background:var(--vs-ink);color:var(--vs-ivory)}
:root[data-vibes-season-identity] .vibes-hero::after{content:"";position:absolute;inset:0 0 0 auto;width:min(1100px,78%);z-index:1;background:var(--vs-art) no-repeat right top/contain;pointer-events:none;opacity:.9}
:root[data-vibes-season-identity] .vibes-hero>.wp-block-cover__background{background:linear-gradient(90deg,var(--vs-ink) 0%,color-mix(in srgb,var(--vs-ink) 96%,transparent) 32%,color-mix(in srgb,var(--vs-ink) 62%,transparent) 68%,color-mix(in srgb,var(--vs-secondary) 45%,transparent))!important}
:root[data-vibes-season-identity] .vibes-hero h1 em{color:var(--vs-gold)}
:root[data-vibes-season-identity] .vibes-ribbon{background:var(--vs-secondary);color:var(--vs-ivory);border-block:1px solid var(--vs-gold)}
:root[data-vibes-season-identity] :is(.vibes-intro,.vibes-social,.vibes-visit,.vibes-menu-section,.vibes-gallery){background-color:var(--vs-ivory);background-image:var(--vs-pattern);background-size:48px 48px}
:root[data-vibes-season-identity] .vibes-food{background:var(--vs-paper)}
:root[data-vibes-season-identity] .vibes-directions-card{background:var(--vs-paper)}
:root[data-vibes-season-identity] :is(.vibes-experience,.vibes-reviews,.vibes-page-intro){background-color:var(--vs-ink);color:var(--vs-ivory)}
:root[data-vibes-season-identity] .vibes-reviews :is(p,h2,h3,.vibes-eyebrow,.vibes-reviews-source,.vibes-review-source,.vibes-reviews-score,.vibes-verified-reviews__source,.vibes-verified-reviews__author){color:var(--vs-ivory)}
:root[data-vibes-season-identity] .vibes-reviews a{color:var(--vs-gold)}
:root[data-vibes-season-identity] .vibes-page-intro{position:relative;isolation:isolate;overflow:hidden}
:root[data-vibes-season-identity] .vibes-page-intro::after{content:"";position:absolute;inset:0 0 0 auto;width:min(660px,55%);z-index:-1;background:var(--vs-art) no-repeat right center/contain;opacity:.45;pointer-events:none}
:root[data-vibes-season-identity] :is(.vibes-food-card,.vibes-dishes-featured__card,.vibes-event,.vibes-contact-choice){border-color:var(--vs-gold)}
:root[data-vibes-season-identity] :is(.vibes-events__item,.vibes-dish--card){background:var(--vs-surface);color:var(--vs-ink);border-color:var(--vs-gold);box-shadow:inset 0 0 0 1px var(--vs-gold)}
:root[data-vibes-season-identity] .vibes-verified-reviews__item{border-color:var(--vs-gold)}
:root[data-vibes-season-identity] :is(.vibes-menu__categories a,.vibes-events__pagination a){background:var(--vs-surface);color:var(--vs-ink);border-color:var(--vs-muted)}
:root[data-vibes-season-identity] .vibes-menu__search input::placeholder{color:var(--vs-ink);opacity:1}
:root[data-vibes-season-identity] .vibes-food-card{background:var(--vs-surface);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--vs-gold) 70%,transparent),0 8px 24px color-mix(in srgb,var(--vs-ink) 8%,transparent)}
/* Keep the text inset in the neutral state too, before the seasonal response. */
:root .vibes-food-card > :is(h3,p){padding-inline:clamp(1rem,2vw,1.5rem);min-width:0;overflow-wrap:anywhere}
:root .vibes-food-card > p:last-of-type{padding-bottom:clamp(1rem,2vw,1.5rem)}
:root[data-vibes-season-identity] :is(.vibes-food-card p,.vibes-empty-events,.vibes-directions-note,.vibes-visit-row dt){color:var(--vs-muted)}
:root[data-vibes-season-identity] :is(.wp-block-button:not(.is-style-outline)>.wp-block-button__link,.vibes-booking-link){background:var(--vs-gold);color:var(--vs-ink);border-color:var(--vs-gold)}
:root[data-vibes-season-identity] .wp-block-button.is-style-outline>.wp-block-button__link{border-color:currentColor}
:root[data-vibes-season-identity] :is(.wp-block-button__link,.vibes-booking-link):hover{background:var(--vs-paper);color:var(--vs-ink);border-color:var(--vs-gold)}
:root[data-vibes-season-identity] .vibes-mobile-actions{background:var(--vs-surface);color:var(--vs-ink);border-color:var(--vs-gold)}
:root[data-vibes-season-identity] .vibes-footer{position:relative;isolation:isolate;overflow:hidden;background:var(--vs-secondary);color:var(--vs-ivory);border-top:3px solid var(--vs-gold)}
:root[data-vibes-season-identity] .vibes-footer::before{content:"";position:absolute;z-index:-1;pointer-events:none;inset:0 0 auto auto;width:min(850px,80%);height:360px;background:var(--vs-art) no-repeat right top/contain;opacity:.14}
:root[data-vibes-season-identity] :is(.vibes-footer-details h3,.vibes-footer-bottom){color:var(--vs-ivory)}
:root[data-vibes-season-identity] a:focus-visible,:root[data-vibes-season-identity] button:focus-visible{outline-color:var(--vs-gold);box-shadow:0 0 0 2px var(--vs-ink)}
:root[data-vibes-season-identity] [data-vibes-seasonal-label]:not([hidden]){color:var(--vs-gold);background:var(--vs-ink);border:1px solid var(--vs-gold);padding:.55rem .85rem;border-radius:3px;font-size:clamp(.65rem,.9vw,.85rem);line-height:1.5;letter-spacing:.07em;text-transform:uppercase}
.vibes-seasonal-numeral{display:none}
.vibes-seasonal-scene{position:absolute;inset:-12% -3% auto auto;width:min(950px,80%);height:100%;opacity:.9;pointer-events:none;color:var(--vs-gold);text-align:right;font:700 clamp(4rem,11vw,11rem)/1 Georgia,serif;padding:16% 9% 0 0;text-shadow:0 3px 25px var(--vs-ink)}
.vibes-seasonal-particles{position:absolute;inset:0 0 0 55%;pointer-events:none;opacity:.7;background:radial-gradient(circle at 12% 24%,var(--vs-gold) 1px,transparent 2px),radial-gradient(circle at 82% 15%,var(--vs-ivory) 2px,transparent 3px),radial-gradient(circle at 55% 78%,var(--vs-ivory) 1px,transparent 2px);background-size:140px 170px,210px 250px,190px 210px;animation:vibes-seasonal-drift 4s ease-out 1 both}
:root[data-vibes-season-identity="new-year"] .vibes-seasonal-scene{padding-top:8%;font-size:clamp(3rem,9vw,8rem)}
:root[data-vibes-season-identity="anniversary"] .vibes-seasonal-scene{padding-top:19%;font-size:clamp(2.5rem,7vw,6rem)}
:root[data-vibes-season-identity="christmas"] .vibes-seasonal-particles{background-size:110px 150px,170px 210px,145px 180px;background-image:radial-gradient(circle at 12% 24%,#fff7df 1.5px,transparent 2.5px),radial-gradient(circle at 82% 15%,#fff7df 2px,transparent 3px),radial-gradient(circle at 55% 78%,#fff7df 1px,transparent 2px)}
:root[data-vibes-season-intensity="secondaria"] .vibes-seasonal-particles{display:none}
:root[data-vibes-season-intensity="secondaria"] .vibes-seasonal-scene{opacity:.8}
@keyframes vibes-seasonal-drift{from{opacity:0;transform:translateY(-22px)}to{opacity:.7;transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){.vibes-seasonal-particles{animation:none!important}}
/* Reserve scenic reading width only while a seasonal identity is active. */
@media(min-width:600px){
 :root[data-vibes-season-identity] .vibes-page-intro :is(h1,p,.vibes-eyebrow){max-width:65%;margin-inline:0 auto;overflow-wrap:anywhere}
 :root[data-vibes-season-identity] .vibes-page-intro::after{width:30%;background-size:200% auto;opacity:.95}
}
/* Seasonal tablet row below the badge. */
@media(min-width:600px) and (max-width:999.98px){
 :root[data-vibes-season-identity] .vibes-hero-top{position:relative;margin-bottom:5.5rem}
 :root[data-vibes-season-identity="new-year"] .vibes-seasonal-scene,:root[data-vibes-season-identity="anniversary"] .vibes-seasonal-scene{display:none}
 :root[data-vibes-season-identity] .vibes-seasonal-numeral{display:block;position:absolute;inset:calc(100% + .5rem) 0 auto auto;max-width:100%;box-sizing:border-box;padding:.4rem .7rem;color:var(--vs-gold);background:var(--vs-ink);font:700 3rem/1.1 Georgia,serif;overflow-wrap:anywhere;pointer-events:none}
}
/* Mobile art has a dedicated band after the label row; nothing crosses H1 or CTA. */
@media(max-width:599.98px){
 .vibes-seasonal-scene,.vibes-seasonal-particles{display:none}
 :root[data-vibes-season-identity] .vibes-hero::after{display:none}
 /* Seasonal geometry; neutral and expired states retain the base layout. */
 :root[data-vibes-season-identity] .vibes-hero-top{position:relative;min-height:3.5rem;padding-bottom:110px;margin-bottom:2rem;box-sizing:content-box}
 :root[data-vibes-season-identity]:not([data-vibes-season-identity="christmas"]) .vibes-hero-top::after{content:"";position:absolute;inset:auto 0 0;height:110px;background:var(--vs-mobile-art) no-repeat right center/contain;pointer-events:none}
 :root[data-vibes-season-identity] .vibes-seasonal-numeral{display:block;position:absolute;inset:auto auto 25px 0;max-width:42%;font:700 clamp(1.7rem,8vw,2.5rem)/1.1 Georgia,serif;color:var(--vs-gold);overflow-wrap:anywhere;pointer-events:none}
 :root[data-vibes-season-identity] .vibes-hero>.wp-block-cover__background{background:linear-gradient(90deg,color-mix(in srgb,var(--vs-ink) 88%,transparent),color-mix(in srgb,var(--vs-ink) 80%,transparent) 58%,color-mix(in srgb,var(--vs-ink) 76%,transparent))!important}
 :root[data-vibes-season-identity="christmas"] .vibes-hero::after{display:block;inset:0 0 0 auto;width:100%;height:100%;background-image:var(--vs-mobile-art);background-size:100% auto;background-position:center top;opacity:.96}
 /* Internal pages keep their introduction readable below a separate scenic band. */
 :root[data-vibes-season-identity] .vibes-page-intro{padding-top:calc(120px + 2.5rem)}
 :root[data-vibes-season-identity] .vibes-page-intro::after{inset:10px 0 auto;width:100%;height:120px;background:var(--vs-mobile-art) no-repeat right center/contain;opacity:.95}
 :root[data-vibes-season-identity="christmas"] .vibes-page-intro::after{background-image:url('art/christmas-strip.svg');background-position:center top;background-size:contain}
}
@media print{:root[data-vibes-season-identity] .vibes-header::after,:root[data-vibes-season-identity] .vibes-hero::after,:root[data-vibes-season-identity] .vibes-footer::before,:root[data-vibes-season-identity] .vibes-page-intro::after,:root[data-vibes-season-identity] .vibes-hero-top::after,.vibes-seasonal-numeral{display:none!important}:root[data-vibes-season-identity] body{background:#fff!important;color:#000!important}}
