[data-nbc-core-module][aria-hidden="true"] { display: none; }
[data-nbc-core-module].is-open { display: block; }

[data-nbc-core-module] .modal__overlay {
  position: fixed;
  inset: 0;
  z-index: 101;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(0, 0, 0, .32);
  -webkit-backdrop-filter: blur(6px) saturate(108%);
  backdrop-filter: blur(6px) saturate(108%);
  will-change: opacity;
}

[data-nbc-core-module] .modal__container {
  z-index: 999999;
  box-sizing: border-box;
  width: auto;
  max-width: 768px;
  max-height: min(700px, calc(100dvh - 32px));
  margin: 16px;
  padding: 30px;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, .58);
  border-radius: 30px;
  background: rgba(255, 255, 255, .82) !important;
  box-shadow: 0 16px 36px rgba(14, 42, 72, .10), inset 0 1px 0 rgba(255, 255, 255, .82);
  will-change: transform;
}

[data-nbc-core-module] .modal__header { display:flex; align-items:center; justify-content:space-between; gap:16px; }
[data-nbc-core-module] .modal__title { box-sizing:border-box; margin:0; font-size:var(--wp--preset--font-size--large); }
[data-nbc-core-module] .modal__content { margin:20px 0; min-width:0; font-size:var(--wp--preset--font-size--medium); }
[data-nbc-core-module] .modal__footer { display:flex; align-items:center; flex-wrap:wrap; gap:8px; }

[data-nbc-core-module] .modal__close {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: 32px;
  height: 32px;
  margin: -12px -12px 0 0;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: transparent;
  color: rgba(6, 30, 63, .75);
  font: inherit;
  font-size: 28px;
  line-height: 1;
  cursor: pointer;
}
[data-nbc-core-module] .modal__close:hover { color:#061e3f; }
[data-nbc-core-module] .modal__close:focus-visible,
[data-nbc-core-module] .modal__btn:focus-visible,
[data-nbc-core-module] a:focus-visible { outline:2px solid #234c35; outline-offset:3px; box-shadow:none; }

[data-nbc-core-module] .modal__btn {
  margin: 0;
  padding: var(--wp--preset--spacing--20) var(--wp--preset--spacing--30);
  overflow: visible;
  border: 0;
  border-radius: 30px;
  background: transparent;
  color: #2a3845;
  font-size: var(--wp--preset--font-size--medium) !important;
  line-height: 1.15;
  text-transform: none;
  cursor: pointer;
}
[data-nbc-core-module] .modal__btn-primary { background:#0c121c !important; color:#fff; box-shadow:0 8px 22px rgba(7,19,34,.16), inset 0 1px 0 rgba(255,255,255,.14), inset 0 -1px 0 rgba(0,0,0,.12) !important; }

[data-nbc-core-module] .nbc-shop-heading { min-width:0; }
[data-nbc-core-module] .nbc-capsule { display:inline-block; margin:0 0 10px; padding:7px 12px; border-radius:999px; background:rgba(255,255,255,.72); color:#1d3344; font-size:.7rem; font-weight:700; letter-spacing:.08em; line-height:1; }
[data-nbc-core-module] .nbc-shop-platforms { display:grid; gap:0; margin-top:26px; padding-bottom:6px; }
[data-nbc-core-module] .nbc-shop-link-row { margin:0; padding:12px 0; }
[data-nbc-core-module] .nbc-shop-link-row + .nbc-shop-link-row { border-top:1px solid rgba(6,30,63,.14); }
[data-nbc-core-module] .nbc-shop-link-row:first-child { padding-top:0; }
[data-nbc-core-module] .nbc-shop-link-row:last-child { padding-bottom:0; }
[data-nbc-core-module] .nbc-shop-platform { color:#000 !important; text-decoration:none !important; }
[data-nbc-core-module] .nbc-shop-empty { margin:0; color:rgba(6,30,63,.7); }

#modal-nbc-shop-external .modal__container { width:min(92vw,520px); }
#modal-nbc-menu .modal__container { width:min(92vw,520px); max-width:520px; }
#modal-nbc-shop-external .modal__title { margin:19.2px 0 0; font-family:Cardo, serif; font-size:1.322rem; font-weight:700; line-height:1.125; }
#modal-nbc-contact-us .modal__container { width:min(92vw,640px); max-width:640px; display:flex; flex-direction:column; max-height:min(700px,calc(100dvh - 32px)); }
#modal-nbc-contact-us .modal__header, #modal-nbc-contact-us .modal__footer { flex-shrink:0; }
#modal-nbc-contact-us #nbc-contact-form-slot { flex:1; min-height:0; overflow-x:hidden; overflow-y:auto; scrollbar-gutter:stable; scrollbar-width:thin; scrollbar-color:rgba(29,51,68,.48) transparent; }
#modal-nbc-contact-us #nbc-contact-form-slot::-webkit-scrollbar { width:8px; }
#modal-nbc-contact-us #nbc-contact-form-slot::-webkit-scrollbar-track { background:transparent; margin-block:12px; }
#modal-nbc-contact-us #nbc-contact-form-slot::-webkit-scrollbar-thumb { background:rgba(29,51,68,.48); background-clip:padding-box; border:2px solid transparent; border-radius:999px; }
#modal-nbc-contact-us #nbc-contact-form-slot::-webkit-scrollbar-thumb:hover { background:rgba(29,51,68,.68); background-clip:padding-box; }
#modal-nbc-contact-us #nbc-contact-form-slot .nbc-contact-form-source { max-width:100%; }

@keyframes nbc-modal-fade-in { from { opacity:0; } to { opacity:1; } }
@keyframes nbc-modal-fade-out { from { opacity:1; } to { opacity:0; } }
@keyframes nbc-modal-slide-in { from { transform:translateY(15%); } to { transform:translateY(0); } }
@keyframes nbc-modal-slide-out { from { transform:translateY(0); } to { transform:translateY(-10%); } }
[data-nbc-core-module][aria-hidden="false"] .modal__overlay { animation:nbc-modal-fade-in .3s cubic-bezier(0,0,.2,1); }
[data-nbc-core-module][aria-hidden="false"] .modal__container { animation:nbc-modal-slide-in .3s cubic-bezier(0,0,.2,1); }
[data-nbc-core-module][aria-hidden="true"] .modal__overlay { animation:nbc-modal-fade-out .3s cubic-bezier(0,0,.2,1); }
[data-nbc-core-module][aria-hidden="true"] .modal__container { animation:nbc-modal-slide-out .3s cubic-bezier(0,0,.2,1); }
body.nbc-modal-open { overflow:hidden; }

@media (max-width:600px) {
  [data-nbc-core-module] .modal__container { width:auto; max-width:calc(100vw - 32px); margin:16px; padding:24px; border-radius:24px; }
  [data-nbc-core-module] .modal__footer { align-items:stretch; }
  [data-nbc-core-module] .modal__footer .modal__btn { flex:1 1 auto; }
}
@media (prefers-reduced-motion:reduce) {
  [data-nbc-core-module] .modal__overlay, [data-nbc-core-module] .modal__container { animation-duration:.01ms !important; animation-iteration-count:1 !important; }
}
