/* Refined public components. Every rule is scoped to Noli-owned markup. */
body.nolis-ui-modern{
  --nv-forest:#b50101;--nv-forest-2:#7f1d22;--nv-cream:#faf6ed;--nv-paper:#fffdf8;
  --nv-wine:#b50101;--nv-gold:#d0a958;--nv-ink:#263129;--nv-muted:#6b756e;--nv-line:#d9e1d9
}
body.nolis-ui-modern .nolis-nb-form,body.nolis-ui-modern .nsm-card,
body.nolis-ui-modern .nsm-schedule-day,body.nolis-ui-modern .nsm-event-card,
body.nolis-ui-modern .nolis-detail-box{font-family:Inter,Outfit,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
body.nolis-ui-modern .nolis-nb-form:not(.nolis-form-card-dark){
  --red:var(--nv-forest);background:linear-gradient(155deg,#fffdf8,#fbf7ef);border:1px solid rgba(181,1,1,.15);
  border-radius:26px;box-shadow:0 28px 70px rgba(181,1,1,.14);color:var(--nv-ink)
}
body.nolis-ui-modern .nolis-nb-form h2{font-family:Georgia,"Times New Roman",serif;letter-spacing:-.025em;color:var(--nv-ink)}
body.nolis-ui-modern .nolis-form-kicker{color:var(--nv-wine)}
body.nolis-ui-modern .nolis-form-intro{color:var(--nv-muted)}
body.nolis-ui-modern .nolis-nb-form label{color:#35423a;text-transform:none;letter-spacing:0;font-size:14px}
body.nolis-ui-modern .nolis-nb-form input[type=text],body.nolis-ui-modern .nolis-nb-form input[type=email],
body.nolis-ui-modern .nolis-nb-form input[type=tel],body.nolis-ui-modern .nolis-nb-form input[type=date],
body.nolis-ui-modern .nolis-nb-form input[type=file],body.nolis-ui-modern .nolis-nb-form select,
body.nolis-ui-modern .nolis-nb-form textarea{
  min-height:52px;border:1px solid #cbd6cc!important;border-radius:12px!important;background:#fff!important;
  color:#18231d!important;-webkit-text-fill-color:#18231d!important;box-shadow:0 2px 7px rgba(181,1,1,.025)!important
}
body.nolis-ui-modern .nolis-nb-form textarea{min-height:132px}
body.nolis-ui-modern .nolis-nb-form input:focus,body.nolis-ui-modern .nolis-nb-form select:focus,
body.nolis-ui-modern .nolis-nb-form textarea:focus{border-color:var(--nv-forest)!important;outline:3px solid rgba(208,169,88,.32)!important;outline-offset:1px!important;box-shadow:none!important}
body.nolis-ui-modern .nolis-form-btn,body.nolis-ui-modern .nolis-popup-submit{
  min-height:52px;border-radius:999px!important;background:var(--nv-forest)!important;color:#fff!important;
  box-shadow:0 13px 30px rgba(181,1,1,.23)!important;transition:transform .18s ease,background .18s ease,box-shadow .18s ease!important
}
body.nolis-ui-modern .nolis-form-btn:hover,body.nolis-ui-modern .nolis-form-btn:focus-visible,
body.nolis-ui-modern .nolis-popup-submit:hover{background:var(--nv-forest-2)!important;transform:translateY(-1px)}
body.nolis-ui-modern .nolis-form-btn[disabled],body.nolis-ui-modern .nolis-popup-submit[disabled]{opacity:.68;cursor:wait;transform:none}
body.nolis-ui-modern .nolis-consent,body.nolis-ui-modern .nolis-checks{background:#f2f5ee;border-color:#d3ded3}
body.nolis-ui-modern .nolis-form-progress{height:5px;margin:-8px 0 25px;border-radius:999px;background:#e2e7df;overflow:hidden}
body.nolis-ui-modern .nolis-form-progress>span{display:block;height:100%;width:0;border-radius:inherit;background:linear-gradient(90deg,var(--nv-gold),var(--nv-forest));transition:width .22s ease}
body.nolis-ui-modern .nolis-field-help{display:block;margin:7px 0 0;color:var(--nv-muted);font-size:12px;font-weight:600}
body.nolis-ui-modern .nolis-field-error{display:block;margin:7px 0 0;color:#992f3c;font-size:13px;font-weight:800}
body.nolis-ui-modern .nolis-nb-form [aria-invalid=true]{border-color:#b53b49!important;outline:3px solid rgba(181,59,73,.13)!important}
body.nolis-ui-modern .nolis-form-message,body.nolis-ui-modern .nolis-contact-status{border-radius:13px}
body.nolis-ui-modern .nolis-form-success{max-width:860px!important;padding:clamp(34px,5vw,58px) clamp(24px,5vw,64px)!important;text-align:center;overflow-wrap:anywhere}
body.nolis-ui-modern .nolis-form-success h2{max-width:760px;margin:0 auto 18px!important;font-size:clamp(34px,4.5vw,54px)!important;line-height:1.08!important;text-wrap:balance}
body.nolis-ui-modern .nolis-success-icon{background:var(--nv-forest);box-shadow:0 10px 24px rgba(181,1,1,.2);margin-bottom:22px}
body.nolis-ui-modern .nolis-success-copy{max-width:690px;margin:0 auto;color:#27332c;font-size:clamp(16px,1.5vw,19px);line-height:1.65}
body.nolis-ui-modern .nolis-success-copy p{margin:0 0 12px}
body.nolis-ui-modern .nolis-success-copy p:last-child{margin-bottom:0}
body.nolis-ui-modern .nolis-success-contact{display:grid;justify-items:center;gap:6px;max-width:720px;margin:30px auto 0;padding:24px 20px 0;border-top:1px solid rgba(181,1,1,.16)}
body.nolis-ui-modern .nolis-success-help-label{color:#665f5a;font-size:16px}
body.nolis-ui-modern .nolis-success-phone,body.nolis-ui-modern .nolis-success-email{display:inline-flex;align-items:center;justify-content:center;color:var(--nv-forest)!important;font-size:17px;font-weight:850;text-decoration:none}
body.nolis-ui-modern .nolis-success-phone:hover,body.nolis-ui-modern .nolis-success-email:hover{text-decoration:underline}

/* Menu discovery and legibility */
body.nolis-ui-modern .nolis-shortcode-menu{--nsm-accent:var(--nv-forest)}
body.nolis-ui-modern .nsm-header h2{font-family:Georgia,"Times New Roman",serif;letter-spacing:-.025em}
body.nolis-ui-modern .nsm-tabs{position:sticky;top:10px;z-index:8;width:max-content;max-width:calc(100% - 20px);padding:8px;
  border:1px solid rgba(181,1,1,.14);border-radius:999px;background:rgba(255,253,248,.92);box-shadow:0 12px 30px rgba(181,1,1,.1);backdrop-filter:blur(12px)}
body.nolis-ui-modern .nsm-tab{border:0;border-radius:999px;color:var(--nv-forest);padding:11px 20px}
body.nolis-ui-modern .nsm-tab.is-active{background:var(--nv-forest);color:#fff;box-shadow:none}
body.nolis-ui-modern .nsm-card,body.nolis-ui-modern .nsm-schedule-day,body.nolis-ui-modern .nsm-event-card{
  border:1px solid rgba(181,1,1,.13);border-radius:20px;background:rgba(255,253,248,.98);box-shadow:0 18px 45px rgba(181,1,1,.11)
}
body.nolis-ui-modern .nsm-card h3,body.nolis-ui-modern .nsm-event-card h3{font-family:Georgia,"Times New Roman",serif;text-transform:none;letter-spacing:-.01em;color:var(--nv-ink)}
body.nolis-ui-modern .nsm-items{border-left-color:rgba(181,1,1,.33)}
body.nolis-ui-modern .nsm-item{border-bottom-color:#e2e7e1}
body.nolis-ui-modern .nsm-item-name{color:var(--nv-ink);font-weight:800}
body.nolis-ui-modern .nsm-price{color:var(--nv-wine)}

/* Accessible popups, lightboxes, and contact widget */
body.nolis-ui-modern .nolis-popup-card,body.nolis-ui-modern .nolis-contact-modal-card{
  border-radius:24px!important;box-shadow:0 34px 100px rgba(43,10,10,.35)!important
}
body.nolis-ui-modern .nolis-gallery-lightbox:focus{outline:0}
body.nolis-ui-modern .nolis-gallery-close:focus-visible,body.nolis-ui-modern .nolis-gallery-prev:focus-visible,
body.nolis-ui-modern .nolis-gallery-next:focus-visible,body.nolis-ui-modern .nsm-tab:focus-visible,
body.nolis-ui-modern .nolis-contact-launcher:focus-visible{outline:3px solid #f1cb74!important;outline-offset:3px!important}
body.nolis-ui-modern .nolis-contact-launcher{box-shadow:0 13px 34px rgba(181,1,1,.24)!important}
body.nolis-ui-modern .nolis-frontend-live{position:fixed;clip:rect(0 0 0 0);clip-path:inset(50%);width:1px;height:1px;overflow:hidden;white-space:nowrap}

@media(max-width:720px){
  body.nolis-ui-modern .nolis-nb-form:not(.nolis-form-card-dark){border-radius:19px;padding:25px 18px}
  body.nolis-ui-modern .nolis-form-success{padding:30px 20px!important;border-radius:20px!important}
  body.nolis-ui-modern .nolis-form-success h2{font-size:clamp(30px,10vw,42px)!important;line-height:1.12!important}
  body.nolis-ui-modern .nolis-success-copy{font-size:16px;line-height:1.6}
  body.nolis-ui-modern .nsm-tabs{position:relative;top:auto;width:100%;max-width:100%;border-radius:18px}
  body.nolis-ui-modern .nsm-tab{width:100%}
}
@media(prefers-reduced-motion:reduce){
  body.nolis-ui-modern .nolis-nb-form *,body.nolis-ui-modern .nolis-shortcode-menu *,
  body.nolis-ui-modern .nolis-popup-card *,body.nolis-ui-modern .nolis-contact-widget *{
    scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important
  }
}

/* Structural marketing/content presets. All retain contrast-safe fallbacks. */
body.nolis-ui-modern [class*="editorial_hospitality"]{--nolis-component-space:clamp(24px,5vw,64px);font-family:Georgia,"Times New Roman",serif}body.nolis-ui-modern [class*="editorial_hospitality"] h1,body.nolis-ui-modern [class*="editorial_hospitality"] h2{padding-bottom:.35em;border-bottom:1px solid var(--nolis-gold-500,#d9ba5a)}
body.nolis-ui-modern [class*="contemporary_cards"]{display:grid;gap:16px}body.nolis-ui-modern [class*="contemporary_cards"]>*{border:1px solid var(--nolis-border,#d8e3dd);border-radius:16px;background:var(--nolis-cream-50,#fffdf8);box-shadow:var(--nolis-shadow-sm,0 2px 8px rgba(43,10,10,.08))}
body.nolis-ui-modern [class*="minimal_luxury"]{padding:clamp(28px,6vw,76px);border:1px solid var(--nolis-gold-300,#ead58f);background:var(--nolis-cream-50,#fffdf8);color:var(--nolis-ink-950,#2b0a0a)}
body.nolis-ui-modern [class*="image_led_promotion"]{position:relative;overflow:hidden;background:linear-gradient(rgba(43,10,10,.78),rgba(43,10,10,.78)),var(--nolis-preset-image,none) center/cover;color:#fff}body.nolis-ui-modern [class*="image_led_promotion"] :is(h1,h2,h3,p,label){color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.35)}
body.nolis-ui-modern [class*="compact_utility"]{padding:8px 12px;font-size:.92rem;line-height:1.35}body.nolis-ui-modern [class*="compact_utility"] :is(button,.button,a){min-height:38px}
body.nolis-ui-modern [class*="bold_event_campaign"]{padding:clamp(26px,5vw,70px);background:var(--nolis-green-900,#4a0808);color:#fff;border-left:8px solid var(--nolis-gold-500,#d9ba5a)}body.nolis-ui-modern [class*="bold_event_campaign"] :is(h1,h2,h3,p,label){color:#fff}body.nolis-ui-modern [class*="bold_event_campaign"] :is(button,.button){background:var(--nolis-gold-500,#d9ba5a);color:var(--nolis-green-950,#350606)}

/* 2.2.0 compact forms: reservation has no completion bar; mobile forms never show one. */
body.nolis-ui-modern form[data-nolis-form-type="reservation"] ~ .nolis-form-progress,
body.nolis-ui-modern .nolis-form-shell-reservation .nolis-form-progress{display:none!important}
@media(max-width:782px){body.nolis-ui-modern .nolis-form-progress{display:none!important}}
