/* Byens Nyt Nyhedsbrev – formular og popup */
:root { --bnn-accent: #d6232f; }

.bnn-box { font-family: inherit; color: #111; }
.bnn-kicker { margin: 0 0 6px; font-size: 12px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--bnn-accent); }
.bnn-title { margin: 0 0 10px; font-size: 28px; line-height: 1.15; font-weight: 700; color: #111; }
.bnn-text { margin: 0 0 22px; font-size: 16px; line-height: 1.5; color: #222; }
.bnn-form { margin: 0; }
.bnn-areas { border: 0; margin: 0 0 18px; padding: 0; }
.bnn-label { display: block; margin: 0 0 8px; padding: 0; font-size: 14px; font-weight: 700; color: #111; }
.bnn-check { display: flex; align-items: center; gap: 6px; margin: 0 0 6px; font-size: 16px; cursor: pointer; }
.bnn-check input { width: 16px; height: 16px; margin: 0; accent-color: var(--bnn-accent); }
.bnn-input { display: block; width: 100%; box-sizing: border-box; margin: 0 0 16px; padding: 11px 16px; font-size: 16px; border: 1px solid #dcdcdc; border-radius: 2px; background: #f7f7f7; color: #111; }
.bnn-input:focus { outline: 2px solid var(--bnn-accent); outline-offset: 1px; background: #fff; }
.bnn-btn { display: block; width: 100%; padding: 13px 18px; border: 0; border-radius: 2px; background: var(--bnn-accent); color: #fff; font-size: 17px; font-weight: 700; cursor: pointer; transition: filter .15s; }
.bnn-btn:hover, .bnn-btn:focus-visible { filter: brightness(.9); }
.bnn-btn[disabled] { opacity: .6; cursor: wait; }
.bnn-btn--ghost { background: transparent; color: #111; border: 1px solid #ccc; margin-top: 10px; }
/* Temaets/Elementors knapstil må ikke overskrive formularen. */
.bnn-box .bnn-btn, .bnn-box button.bnn-btn, .bnn-box a.bnn-btn { display: block !important; width: 100% !important; box-sizing: border-box; padding: 13px 18px !important; border: 0 !important; border-radius: 2px !important; background: var(--bnn-accent) !important; color: #fff !important; font-size: 17px !important; font-weight: 700 !important; line-height: 1.3 !important; text-transform: none !important; letter-spacing: 0 !important; box-shadow: none !important; }
.bnn-box .bnn-btn.bnn-btn--ghost { background: transparent !important; color: #111 !important; border: 1px solid #ccc !important; }
.bnn-box .bnn-btn:hover, .bnn-box .bnn-btn:focus-visible { background: var(--bnn-accent) !important; color: #fff !important; filter: brightness(.9); }
.bnn-box .bnn-btn.bnn-btn--ghost:hover { background: #f3f3f3 !important; color: #111 !important; }
.bnn-note { margin: 18px 0 0; font-size: 13px; color: #666; }
.bnn-note a { color: inherit; }
.bnn-msg:empty { display: none; }
.bnn-msg { margin-top: 14px; padding: 12px 14px; font-size: 15px; line-height: 1.45; background: #f3f8f3; border-left: 4px solid #2e7d32; }
.bnn-msg.is-error { background: #fdf2f2; border-left-color: var(--bnn-accent); }
.bnn-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }

/* Inline (kortkode, Elementor, siden) */
.bnn-inline { max-width: 520px; padding: 28px 32px; background: #fff; border-top: 4px solid var(--bnn-accent); box-shadow: 0 1px 3px rgba(0,0,0,.08); }
.bnn-page { margin: 0 auto; }

/* Popup */
.bnn-popup[hidden] { display: none; }
.bnn-popup { position: fixed; inset: 0; z-index: 99999; display: flex; align-items: center; justify-content: center; padding: 16px; }
.bnn-overlay { position: absolute; inset: 0; background: rgba(40, 48, 66, .62); }
.bnn-dialog { position: relative; width: 100%; max-width: 460px; max-height: calc(100vh - 32px); overflow: auto; box-sizing: border-box; padding: 32px; background: #fff; border-top: 4px solid var(--bnn-accent); box-shadow: 0 20px 60px rgba(0,0,0,.35); animation: bnn-in .25s ease-out; }
.bnn-close { position: absolute; top: 14px; right: 14px; width: 22px; height: 22px; padding: 0; border: 1.5px solid #111; border-radius: 0; background: #fff; color: #111; font-size: 18px; line-height: 18px; cursor: pointer; }
.bnn-close:hover { background: #111; color: #fff; }
html.bnn-lock { overflow: hidden; }
@keyframes bnn-in { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .bnn-dialog { animation: none; } }
@media (max-width: 480px) {
	.bnn-dialog, .bnn-inline { padding: 24px 20px; }
	.bnn-title { font-size: 23px; }
}
