/* ==========================================================
   NEXUS BUILDER — εμφάνιση σχεδίων (δημόσια σελίδα + προεπισκόπηση του editor)
   Ουδέτερα χρώματα που «κουμπώνουν» σε κάθε θέμα· τα χρώματα της ενότητας/widget
   έρχονται από τις ρυθμίσεις του σχεδίου.
   ========================================================== */
.nb { --nb-accent: #4f46e5; --nb-gap: 28px; width: 100%; }
.nb-section { position: relative; background-size: cover; background-position: center; background-repeat: no-repeat; }
.nb-inner { max-width: 1140px; margin: 0 auto; padding: 0 20px; }
.nb-full .nb-inner { max-width: none; }
.nb-row { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: var(--nb-gap); align-items: start; }
.nb-span-1 { grid-column: span 1; } .nb-span-2 { grid-column: span 2; } .nb-span-3 { grid-column: span 3; }
.nb-span-4 { grid-column: span 4; } .nb-span-5 { grid-column: span 5; } .nb-span-6 { grid-column: span 6; }
.nb-span-7 { grid-column: span 7; } .nb-span-8 { grid-column: span 8; } .nb-span-9 { grid-column: span 9; }
.nb-span-10 { grid-column: span 10; } .nb-span-11 { grid-column: span 11; } .nb-span-12 { grid-column: span 12; }
.nb-col { min-width: 0; }

.nb-w { margin: 0 0 18px; }
.nb-w:last-child { margin-bottom: 0; }
.nb-a-left { text-align: left; } .nb-a-center { text-align: center; } .nb-a-right { text-align: right; }
.nb-heading { line-height: 1.15; overflow-wrap: anywhere; }
h1.nb-heading { font-size: 2.8rem; } h2.nb-heading { font-size: 2.1rem; } h3.nb-heading { font-size: 1.6rem; } h4.nb-heading { font-size: 1.25rem; }
.nb-text { line-height: 1.7; overflow-wrap: anywhere; }
.nb-text p, .nb-text ul, .nb-text ol { margin: 0 0 1em; }
.nb-text ul, .nb-text ol { padding-left: 1.3em; }
.nb-text a { color: var(--nb-accent); }
.nb-image { margin-left: 0; margin-right: 0; }
.nb-image img { max-width: 100%; height: auto; display: inline-block; }
.nb-btn { display: inline-flex; align-items: center; justify-content: center; min-height: 46px; padding: 0 24px; border-radius: 8px; font-weight: 700; text-decoration: none; border: 2px solid var(--nb-accent); transition: transform .15s, filter .15s; }
.nb-btn:hover { transform: translateY(-1px); filter: brightness(1.08); }
.nb-btn-primary { background: var(--nb-accent); color: #fff; }
.nb-btn-outline { background: transparent; color: var(--nb-accent); }
.nb-btn-dark { background: #0f172a; border-color: #0f172a; color: #fff; }
.nb-divider { border: 0; border-top: 2px solid rgba(127, 127, 127, .35); margin-left: auto; margin-right: auto; }
.nb-video { position: relative; aspect-ratio: 16 / 9; border-radius: 10px; overflow: hidden; background: #000; }
.nb-video iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.nb-iconbox .nb-icon { font-size: 2.2rem; color: var(--nb-accent); margin-bottom: 10px; display: inline-block; }
.nb-iconbox h3 { margin: 0 0 6px; font-size: 1.25rem; }
.nb-iconbox p { margin: 0; opacity: .8; }
.nb-posts { display: grid; gap: 22px; }
.nb-cols-1 { grid-template-columns: minmax(0, 1fr); } .nb-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.nb-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); } .nb-cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.nb-post-img { display: block; aspect-ratio: 16 / 10; overflow: hidden; border-radius: 8px; margin-bottom: 8px; background: rgba(127, 127, 127, .15); }
.nb-post-img img { width: 100%; height: 100%; object-fit: cover; }
.nb-post h3 { font-size: 1.1rem; margin: 0 0 4px; overflow-wrap: anywhere; }
.nb-post h3 a { color: inherit; text-decoration: none; }
.nb-post p { margin: 0; opacity: .75; font-size: .92rem; }

@media (max-width: 768px) {
    .nb { --nb-gap: 18px; }
    .nb-row { grid-template-columns: minmax(0, 1fr); }
    .nb-row > .nb-col { grid-column: auto; }
    h1.nb-heading { font-size: 2rem; } h2.nb-heading { font-size: 1.6rem; } h3.nb-heading { font-size: 1.3rem; }
    .nb-cols-2, .nb-cols-3, .nb-cols-4 { grid-template-columns: minmax(0, 1fr); }
    .nb-inner { padding: 0 16px; }
}

/* ===== Φόρμα επικοινωνίας (γύρος 54) ===== */
.nb-contact { max-width: 640px; }
.nb-contact h3 { margin: 0 0 8px; }
.nb-cf { display: flex; flex-direction: column; gap: 12px; margin-top: 10px; }
.nb-cf label { display: flex; flex-direction: column; gap: 4px; font-weight: 600; font-size: 14px; }
.nb-cf input, .nb-cf textarea { width: 100%; box-sizing: border-box; padding: 10px 12px; border: 1px solid rgba(128,128,128,.4); border-radius: 8px; background: rgba(255,255,255,.04); color: inherit; font: inherit; font-weight: 400; }
.nb-cf textarea { resize: vertical; min-height: 120px; }
.nb-cf .nb-btn { align-self: flex-start; }
.nb-cf-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.nb-cf-ok { padding: 14px 16px; border-radius: 8px; background: rgba(34,197,94,.14); border: 1px solid rgba(34,197,94,.4); }
.nb-cf-err { padding: 10px 14px; border-radius: 8px; background: rgba(220,38,38,.12); border: 1px solid rgba(220,38,38,.4); }
@media (max-width: 600px) { .nb-cf .nb-btn { align-self: stretch; text-align: center; } }