/* Frontx Nexus: WordPress-specific additions. main.css is the untouched static-site stylesheet. */

/* ---- admin bar offset for the fixed glass header ---- */
.admin-bar .site-header { top: 32px; }
@media (max-width: 980px) { .admin-bar .nav { top: calc(78px + 32px); height: calc(100dvh - 78px - 32px); } }
@media (max-width: 782px) {
  .admin-bar .site-header { top: 46px; }
  .admin-bar .nav { top: calc(78px + 46px); height: calc(100dvh - 78px - 46px); }
}
@media (max-width: 640px) { .admin-bar .nav { top: calc(70px + 46px); height: calc(100dvh - 70px - 46px); } }
@media (max-width: 600px) { .admin-bar .site-header:not(.scrolled) { top: 46px; } .admin-bar .site-header.scrolled { top: 0; } }

/* ---- accessibility helpers ---- */
.screen-reader-text { border: 0; clip: rect(1px, 1px, 1px, 1px); clip-path: inset(50%); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute !important; width: 1px; word-wrap: normal !important; }
.screen-reader-text:focus { background: #0B0F15; color: var(--cyan); clip: auto !important; clip-path: none; display: block; height: auto; left: 8px; top: 8px; padding: 12px 18px; width: auto; z-index: 100000; border-radius: 10px; }
.skip-link { position: absolute; }

/* ---- Elementor: sections are full width, no gaps, widgets carry their own spacing ---- */
.elementor-section.fx-sec > .elementor-container { max-width: none; }
.elementor-section.fx-sec > .elementor-container > .elementor-column > .elementor-widget-wrap,
.elementor-section.fx-sec > .elementor-container > .elementor-column > .elementor-element-populated { padding: 0; }
.elementor-widget[class*="elementor-widget-frontx-"] { margin: 0; margin-block-end: 0 !important; width: 100%; }
.elementor-widget[class*="elementor-widget-frontx-"] > .elementor-widget-container { margin: 0; padding: 0; }
.elementor-widget[class*="elementor-widget-frontx-"]:not(:last-child) { margin-bottom: 0; }
.frontx-builder-page .elementor-section-wrap, .frontx-builder-page .e-con-inner { max-width: none; }
/* Editor preview: show everything immediately (no reveal-on-scroll), keep motifs behind content */
body.elementor-editor-active .reveal, body.elementor-editor-preview .reveal { opacity: 1 !important; transform: none; }
body.elementor-editor-active .draw { stroke-dashoffset: 0; animation: none; }

/* ---- forms ---- */
.fx-hp { position: absolute !important; left: -10000px; top: auto; width: 1px; height: 1px; overflow: hidden; }
.fx-form-msg { margin: 0 0 12px; padding: 12px 16px; border-radius: 12px; font-size: .9rem; color: #FFC9C9; background: rgba(255, 92, 92, .1); border: 1px solid rgba(255, 92, 92, .35); }
.fx-form-msg[hidden] { display: none; }
.newsletter + .fx-form-msg { max-width: 480px; margin: 14px auto 0; }
button[aria-busy="true"] { opacity: .7; cursor: progress; }
.fx-toast { position: fixed; left: 50%; bottom: 24px; transform: translateX(-50%); z-index: 200; padding: 14px 20px; border-radius: 14px; background: rgba(11, 15, 21, .96); border: 1px solid rgba(0, 229, 255, .4); color: #fff; font-size: .92rem; box-shadow: 0 20px 50px -15px rgba(0, 0, 0, .8); max-width: calc(100% - 32px); }
.fx-toast.err { border-color: rgba(255, 92, 92, .5); }

/* ---- images inside the design's placeholders ---- */
.post-visual > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.member .ph { overflow: hidden; }
.member .ph img { width: 100%; height: 100%; object-fit: cover; }

/* ---- WordPress menus / pagination ---- */
.nav .sub-menu { display: none; }
.fx-pagination { margin-top: 44px; }
.fx-pagination .page-numbers { padding: 10px 16px; min-width: 44px; display: inline-flex; align-items: center; justify-content: center; border-radius: 100px; border: 1px solid var(--line-2); background: rgba(255,255,255,.02); font-size: .9rem; color: #E1E7EE; transition: all .25s; }
.fx-pagination .page-numbers svg { width: 16px; height: 16px; }
.fx-pagination a.page-numbers:hover { border-color: rgba(0,229,255,.5); }
.fx-pagination .page-numbers.current { background: var(--cyan); color: #021216; border-color: var(--cyan); }

/* ---- article / page content typography ---- */
.fx-article { max-width: 760px; margin: 0 auto; }
.fx-prose { color: var(--text-2); font-size: 1.08rem; line-height: 1.8; }
.fx-prose > * + * { margin-top: 1.1em; }
.fx-prose h2 { font-size: clamp(1.5rem, 2.6vw, 2rem); margin: 1.8em 0 .5em; color: #fff; }
.fx-prose h3 { font-size: 1.3rem; margin: 1.6em 0 .5em; color: #fff; }
.fx-prose h4 { font-size: 1.1rem; margin: 1.4em 0 .4em; color: #fff; }
.fx-prose p { margin: 0 0 1.1em; }
.fx-prose a { color: var(--cyan); text-decoration: underline; text-decoration-color: rgba(0,229,255,.4); text-underline-offset: 3px; }
.fx-prose a:hover { text-decoration-color: var(--cyan); }
.fx-prose strong, .fx-prose b { color: #fff; }
.fx-prose ul, .fx-prose ol { padding-left: 1.3em; margin: 0 0 1.2em; }
.fx-prose li { margin: .45em 0; }
.fx-prose ul li::marker { color: var(--cyan); }
.fx-prose blockquote { margin: 1.6em 0; padding: 22px 26px; border-left: 3px solid var(--cyan); border-radius: 0 14px 14px 0; background: rgba(0,229,255,.05); font: 500 1.2rem/1.5 var(--head); color: #fff; }
.fx-prose img, .fx-prose video, .fx-prose iframe { max-width: 100%; height: auto; border-radius: 14px; }
.fx-prose figure { margin: 1.6em 0; }
.fx-prose figcaption, .fx-prose .wp-caption-text { font-size: .85rem; color: var(--muted); margin-top: 8px; text-align: center; }
.fx-prose pre, .fx-prose code { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: .9em; background: rgba(255,255,255,.05); border: 1px solid var(--line); border-radius: 8px; }
.fx-prose code { padding: 2px 6px; }
.fx-prose pre { padding: 18px; overflow-x: auto; }
.fx-prose pre code { border: 0; padding: 0; background: none; }
.fx-prose table { width: 100%; border-collapse: collapse; font-size: .95rem; }
.fx-prose th, .fx-prose td { padding: 12px 14px; border-bottom: 1px solid var(--line); text-align: left; }
.fx-prose hr { border: 0; border-top: 1px solid var(--line); margin: 2.2em 0; }
.fx-prose .alignwide { max-width: 1000px; margin-left: auto; margin-right: auto; }
.fx-prose .alignfull { width: 100vw; max-width: 100vw; margin-left: calc(50% - 50vw); }
.fx-prose .alignleft { float: left; margin: .3em 1.4em 1em 0; }
.fx-prose .alignright { float: right; margin: .3em 0 1em 1.4em; }
.fx-prose .aligncenter { margin-left: auto; margin-right: auto; }
.fx-prose .wp-block-button__link { display: inline-flex; padding: 14px 26px; border-radius: 12px; background: var(--cyan); color: #021216; font: 600 .98rem/1 var(--head); text-decoration: none; }

/* ---- single post ---- */
.fx-post-hero .meta { justify-content: center; margin-bottom: 18px; }
.fx-post-hero h1 { font-size: clamp(2.1rem, 5vw, 3.6rem); max-width: 940px; margin-left: auto; margin-right: auto; }
.fx-post-hero .lead { max-width: 720px; }
.fx-post-cover { height: 380px; position: relative; overflow: hidden; border-radius: var(--radius); margin: 0 auto 56px; max-width: 1000px; }
.fx-post-cover > svg, .fx-post-cover > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.fx-post-foot { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; margin-top: 44px; padding-top: 26px; border-top: 1px solid var(--line); }
.fx-tag { font-size: .8rem; padding: 6px 12px; border-radius: 100px; border: 1px solid var(--line-2); color: #D5DCE5; }
.fx-tag:hover { border-color: var(--cyan); color: var(--cyan); }
.fx-postnav { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-top: 40px; }
.fx-postnav a { display: block; padding: 22px 24px; }
.fx-postnav small { display: block; color: var(--muted); font-size: .8rem; margin-bottom: 6px; }
.fx-postnav b { font: 600 1.02rem/1.35 var(--head); }
.fx-postnav .next { text-align: right; }
@media (max-width: 640px) {
  .fx-post-cover { height: 220px; margin-bottom: 36px; }
  .fx-postnav { grid-template-columns: 1fr; }
}

/* ---- comments ---- */
.fx-comments { max-width: 760px; margin: 70px auto 0; }
.fx-comments h2 { font-size: 1.6rem; }
.fx-comments ol, .fx-comments ul.children { list-style: none; padding: 0; margin: 0; }
.fx-comments ul.children { margin-left: 28px; }
.fx-comments .comment-body { padding: 22px 24px; margin-bottom: 14px; border: 1px solid var(--line); border-radius: 16px; background: rgba(255,255,255,.025); }
.fx-comments .comment-author { display: flex; align-items: center; gap: 12px; font-family: var(--head); }
.fx-comments .comment-author img { border-radius: 50%; }
.fx-comments .comment-author .says { display: none; }
.fx-comments .comment-metadata, .fx-comments .comment-metadata a { font-size: .8rem; color: var(--muted); }
.fx-comments .comment-content { color: var(--text-2); margin-top: 10px; }
.fx-comments .reply a { color: var(--cyan); font: 600 .85rem var(--head); }
.fx-comments .comment-respond { margin-top: 40px; padding: 32px; border: 1px solid var(--line); border-radius: var(--radius); background: rgba(255,255,255,.03); }
.fx-comments .comment-form p { margin-bottom: 16px; }
.fx-comments .comment-form label { display: block; font-size: .85rem; color: #E1E7EE; margin-bottom: 6px; }
.fx-comments .comment-form input[type="text"], .fx-comments .comment-form input[type="email"], .fx-comments .comment-form input[type="url"], .fx-comments .comment-form textarea {
  width: 100%; padding: 14px 16px; border-radius: 12px; border: 1px solid var(--line-2); background: rgba(255,255,255,.06); color: #fff; font: inherit; }
.fx-comments .comment-form textarea { min-height: 140px; }
.fx-comments .comment-form .form-submit input { cursor: pointer; display: inline-flex; padding: 14px 26px; border-radius: 12px; border: 0; background: var(--cyan); color: #021216; font: 600 .98rem/1 var(--head); }
.fx-comments .comment-form-cookies-consent { display: flex; gap: 10px; align-items: flex-start; }
.fx-comments .comment-form-cookies-consent label { margin: 0; }

/* ---- search form ---- */
.fx-search { display: flex; gap: 10px; max-width: 520px; margin: 26px auto 0; }
.fx-search input[type="search"] { flex: 1; width: 100%; padding: 14px 16px; border-radius: 12px; border: 1px solid var(--line-2); background: rgba(255,255,255,.06); color: #fff; font: inherit; }
.fx-search input[type="search"]:focus { outline: none; border-color: var(--cyan); box-shadow: 0 0 0 4px rgba(0,229,255,.12); }
@media (max-width: 640px) { .fx-search { flex-direction: column; } }

/* ---- 404 ---- */
.fx-404 .big404 { font: 700 clamp(5rem, 16vw, 11rem)/1 var(--head); letter-spacing: -.06em; margin-bottom: 10px; text-shadow: 0 0 60px rgba(0,229,255,.35); }
.fx-404 .hero-actions { justify-content: center; }
