:root {
  --zfsa-bg: #080910;
  --zfsa-surface: #11131d;
  --zfsa-surface-2: #171a27;
  --zfsa-text: #f8f8ff;
  --zfsa-muted: #a8adc2;
  --zfsa-border: rgba(255,255,255,.1);
  --zfsa-pink: #ff2d86;
  --zfsa-purple: #8a5cff;
  --zfsa-max: 1180px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body.zfsa-theme {
  margin: 0;
  background: radial-gradient(circle at top left, rgba(255,45,134,.18), transparent 30%), radial-gradient(circle at top right, rgba(138,92,255,.16), transparent 34%), var(--zfsa-bg);
  color: var(--zfsa-text);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  min-height: 100vh;
}
body.zfsa-theme a { color: inherit; }
.zfsa-site { min-height: 100vh; display: flex; flex-direction: column; }
.zfsa-main { flex: 1; padding-top: 88px; }

.zfsa-header {
  position: fixed;
  inset: 0 0 auto 0;
  z-index: 100;
  background: rgba(8,9,16,.82);
  border-bottom: 1px solid var(--zfsa-border);
  backdrop-filter: blur(22px);
}
.zfsa-header-inner {
  width: min(var(--zfsa-max), calc(100vw - 28px));
  margin: 0 auto;
  min-height: 72px;
  display: flex;
  align-items: center;
  gap: 18px;
}
.zfsa-brand {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: #fff !important;
  text-decoration: none !important;
  font-weight: 950;
  letter-spacing: -.03em;
  flex: 0 0 auto;
}
.zfsa-brand-mark {
  width: 42px;
  height: 42px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 14px;
  background: linear-gradient(135deg, var(--zfsa-pink), var(--zfsa-purple));
  box-shadow: 0 12px 36px rgba(255,45,134,.25);
}
.zfsa-brand-text { font-size: 18px; }
.custom-logo { max-height: 46px; width: auto; }
.zfsa-main-nav { flex: 1; }
.zfsa-main-nav ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
}
.zfsa-main-nav a {
  display: inline-flex;
  color: var(--zfsa-muted) !important;
  text-decoration: none !important;
  font-weight: 800;
  border-radius: 999px;
  padding: 10px 13px;
}
.zfsa-main-nav a:hover { background: rgba(255,255,255,.07); color: var(--zfsa-text) !important; }
.zfsa-header-right { flex: 0 0 auto; }

.zfsa-hero {
  width: min(var(--zfsa-max), calc(100vw - 28px));
  margin: 20px auto 12px;
  padding: 60px 26px;
  border: 1px solid var(--zfsa-border);
  border-radius: 34px;
  background: linear-gradient(135deg, rgba(255,45,134,.24), rgba(138,92,255,.12) 48%, rgba(255,255,255,.04)), url("data:image/svg+xml,%3Csvg width='120' height='120' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='white' fill-opacity='.055'%3E%3Ccircle cx='18' cy='18' r='2'/%3E%3Ccircle cx='72' cy='54' r='2'/%3E%3Ccircle cx='110' cy='92' r='2'/%3E%3C/g%3E%3C/svg%3E");
  overflow: hidden;
  position: relative;
}
.zfsa-hero-inner { max-width: 690px; }
.zfsa-eyebrow {
  display: inline-flex;
  border-radius: 999px;
  padding: 8px 12px;
  background: rgba(255,255,255,.1);
  color: #fff;
  font-weight: 900;
  margin-bottom: 18px;
}
.zfsa-hero h1 {
  font-size: clamp(42px, 7vw, 86px);
  line-height: .9;
  letter-spacing: -.065em;
  margin: 0 0 16px;
  color: #fff;
}
.zfsa-hero p {
  font-size: 18px;
  color: rgba(255,255,255,.8);
  max-width: 580px;
  margin: 0 0 24px;
}
.zfsa-hero-actions { display: flex; gap: 12px; flex-wrap: wrap; }
.zfsa-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  border: 1px solid var(--zfsa-border);
  background: rgba(255,255,255,.08);
  color: #fff !important;
  font-weight: 900;
  text-decoration: none !important;
  padding: 13px 18px;
}
.zfsa-btn-primary {
  border-color: transparent;
  background: linear-gradient(135deg, var(--zfsa-pink), var(--zfsa-purple));
  box-shadow: 0 15px 40px rgba(255,45,134,.24);
}

.zfsa-content-wrap,
.zfsa-page-wrap {
  width: min(var(--zfsa-max), calc(100vw - 28px));
  margin: 0 auto 40px;
}
.zfsa-page-messages { width: min(960px, calc(100vw - 20px)); }
.zfsa-entry,
.zfsa-page-entry,
.zfsa-comments {
  color: var(--zfsa-text);
}
.zfsa-entry > h1,
.zfsa-page-entry > h1 { color: #fff; letter-spacing: -.03em; }
.zfsa-entry-content img { max-width: 100%; height: auto; }
.zfsa-entry-content a { color: #fff; }

.zfsa-single-card,
.zfsa-comments {
  background: rgba(255,255,255,.045);
  border: 1px solid var(--zfsa-border);
  border-radius: 28px;
  padding: 22px;
  margin-bottom: 18px;
}
.zfsa-single-head {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 18px;
}
.zfsa-single-head img { border-radius: 999px; }
.zfsa-single-head h1 { margin: 0 0 4px; color: #fff; }
.zfsa-single-head p { margin: 0; color: var(--zfsa-muted); }
.zfsa-single-media img {
  width: 100%;
  border-radius: 22px;
  margin-bottom: 18px;
}
.zfsa-comments input,
.zfsa-comments textarea {
  width: 100%;
  background: rgba(0,0,0,.28);
  color: #fff;
  border: 1px solid var(--zfsa-border);
  border-radius: 16px;
  padding: 12px 14px;
}
.zfsa-comments .submit {
  width: auto;
  border-radius: 999px;
  background: linear-gradient(135deg, var(--zfsa-pink), var(--zfsa-purple));
  border-color: transparent;
  font-weight: 900;
  cursor: pointer;
}

.zfsa-footer {
  margin-top: 60px;
  border-top: 1px solid var(--zfsa-border);
  background: linear-gradient(135deg, rgba(255,45,134,.08), rgba(138,92,255,.08)), rgba(10,11,18,.92);
}
.zfsa-footer-inner {
  width: min(var(--zfsa-max), calc(100vw - 28px));
  margin: 0 auto;
  padding: 34px 0;
  display: grid;
  grid-template-columns: 1.45fr 1fr 1fr 1fr 1fr;
  gap: 24px;
}
.zfsa-footer p,
.zfsa-footer a { color: var(--zfsa-muted) !important; }
.zfsa-footer a { display: block; text-decoration: none !important; margin: 7px 0; }
.zfsa-footer h3 { margin: 0 0 10px; color: #fff; }

@media (max-width: 920px) {
  .zfsa-main-nav { display: none; }
  .zfsa-header-inner { justify-content: space-between; }
  .zfsa-hero { padding: 42px 20px; }
  .zfsa-footer-inner { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 560px) {
  .zfsa-brand-text { max-width: 150px; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
  .zfsa-header-inner { width: calc(100vw - 20px); min-height: 66px; }
  .zfsa-main { padding-top: 76px; }
  .zfsa-hero h1 { font-size: 44px; }
  .zfsa-hero p { font-size: 16px; }
  .zfsa-header-right .zfsc-icon-link:nth-child(1),
  .zfsa-header-right .zfsc-icon-link:nth-child(2) { display: none; }
  .zfsa-footer { display: none; }
}

/* WordPress admin bar overlap fix
   Keeps the fixed ZF Social header below the WP admin toolbar so the logo/nav are not cut off while logged in. */
body.admin-bar .zfsa-header {
  top: 32px;
}
body.admin-bar .zfsa-main {
  padding-top: 120px;
}
@media screen and (max-width: 782px) {
  body.admin-bar .zfsa-header {
    top: 46px;
  }
  body.admin-bar .zfsa-main {
    padding-top: 134px;
  }
}
@media screen and (max-width: 560px) {
  body.admin-bar .zfsa-main {
    padding-top: 126px;
  }
}

/* 1.1.6 Navy/blue brand refresh + remove hero + configurable page background support */
:root{
  --zfsa-bg:#f3f7ff;
  --zfsa-surface:#ffffff;
  --zfsa-surface-2:#e8f0ff;
  --zfsa-text:#0b2a66;
  --zfsa-muted:#51668f;
  --zfsa-border:rgba(11,42,102,.16);
  --zfsa-pink:#0b2a66;
  --zfsa-purple:#1e63d7;
}
body.zfsa-theme{
  color:var(--zfsa-text);
  background:#f3f7ff;
}
.zfsa-header{
  background:rgba(255,255,255,.88);
  border-bottom:1px solid var(--zfsa-border);
  box-shadow:0 10px 34px rgba(11,42,102,.08);
}
.zfsa-brand,.zfsa-main-nav a,.zfsa-entry,.zfsa-page-entry,.zfsa-entry-content a{color:var(--zfsa-text)!important;}
.zfsa-main-nav a{font-weight:900;}
.zfsa-main-nav a:hover{background:rgba(30,99,215,.09);color:#0b2a66!important;}
.zfsa-brand-mark,.zfsa-btn-primary,.zfsa-comments .submit{background:linear-gradient(135deg,#0b2a66,#1e63d7 58%,#38bdf8)!important;box-shadow:0 12px 32px rgba(30,99,215,.24)!important;}
.zfsa-hero{display:none!important;}
.zfsa-main{padding-top:88px;}
.zfsa-content-wrap,.zfsa-page-wrap{width:min(1280px,calc(100vw - 28px));}
.zfsa-page-messages{width:min(1280px,calc(100vw - 14px))!important;}
.zfsa-entry > h1,.zfsa-page-entry > h1,.zfsa-footer h3,.zfsa-single-head h1{color:var(--zfsa-text)!important;}
.zfsa-single-card,.zfsa-comments{background:rgba(255,255,255,.82);border-color:var(--zfsa-border);box-shadow:0 18px 48px rgba(11,42,102,.11);}
.zfsa-footer{background:rgba(255,255,255,.88);border-top:1px solid var(--zfsa-border);}
.zfsa-footer p,.zfsa-footer a{color:var(--zfsa-muted)!important;}
@media (max-width:920px){.zfsa-main-nav{display:none!important}.zfsa-main{padding-bottom:88px}.zfsa-header-right .zfsc-icon-link:not(.zfsc-watch-trigger),.zfsa-header-right .zfsc-badge-wrap{display:none!important}}


/* 1.1.8 Give the full-page messenger the whole content width and keep mobile navigation visible at the bottom. */
body.zfsc-messages-page .zfsa-main{
  padding-bottom:0!important;
}
body.zfsc-messages-page .zfsa-page-wrap,
.zfsa-page-messages{
  width:min(1500px,calc(100vw - 14px))!important;
  max-width:none!important;
  margin-bottom:12px!important;
}
body.zfsc-messages-page .zfsa-page-entry,
body.zfsc-messages-page .zfsa-entry-content{
  height:auto!important;
}
@media (max-width:920px){
  body.zfsc-messages-page .zfsa-main{padding-bottom:88px!important;}
}

/* v1.2.4: stronger background image visibility and docked full-screen messenger shell */
body.zfsc-messages-page .zfsa-header,
body.zfsc-messages-page .zfsa-footer,
body.zfsc-messages-page .zfsa-main-nav,
body.zfsc-messages-page .zfsa-header-right{
  display:none!important;
}
body.zfsc-messages-page .zfsa-main,
body.zfsc-messages-page .zfsa-page-wrap,
body.zfsc-messages-page .zfsa-page-entry,
body.zfsc-messages-page .zfsa-entry-content{
  width:100%!important;
  max-width:none!important;
  margin:0!important;
  padding:0!important;
}
body.zfsc-messages-page .zfsa-site{min-height:100dvh!important;}
body.zfsc-messages-page .zfsa-main{padding-top:0!important;padding-bottom:0!important;}
body.admin-bar.zfsc-messages-page .zfsa-main{padding-top:32px!important;}
@media(max-width:780px){
  body.zfsc-messages-page .zfsa-main{padding-bottom:72px!important;}
  body.admin-bar.zfsc-messages-page .zfsa-main{padding-top:46px!important;}
}
