/* Community Pulse theme styles */
@font-face{font-family:'Geist';font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/geist-sans-latin-400-normal.woff2) format('woff2')}
@font-face{font-family:'Geist';font-style:normal;font-weight:500;font-display:swap;src:url(../fonts/geist-sans-latin-500-normal.woff2) format('woff2')}
@font-face{font-family:'Geist';font-style:normal;font-weight:600;font-display:swap;src:url(../fonts/geist-sans-latin-600-normal.woff2) format('woff2')}
@font-face{font-family:'Geist';font-style:normal;font-weight:700;font-display:swap;src:url(../fonts/geist-sans-latin-700-normal.woff2) format('woff2')}
@font-face{font-family:'Geist';font-style:normal;font-weight:800;font-display:swap;src:url(../fonts/geist-sans-latin-800-normal.woff2) format('woff2')}
@font-face{font-family:'Geist Mono';font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/geist-mono-latin-400-normal.woff2) format('woff2')}
@font-face{font-family:'Geist Mono';font-style:normal;font-weight:500;font-display:swap;src:url(../fonts/geist-mono-latin-500-normal.woff2) format('woff2')}
@font-face{font-family:'Geist Mono';font-style:normal;font-weight:600;font-display:swap;src:url(../fonts/geist-mono-latin-600-normal.woff2) format('woff2')}

body{margin:0;font-family:'Geist',-apple-system,'Segoe UI',system-ui,sans-serif;background:#FAF9F8;color:#0F084B;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
button{font-family:inherit}
.nl:hover{color:#0F084B!important;background:#F3F4F6}
.fl:hover{color:#0F084B!important}
.btn-o{transition:background .15s,transform .15s}.btn-o:hover{background:#E68200!important;transform:translateY(-1px)}
.btn-b:hover{background:#0189BE!important;color:#FFFFFF!important}
.btn-n:hover{background:#241578!important}
.btn-g{transition:background .15s,border-color .15s}.btn-g:hover{background:#FFFFFF!important;border-color:#0F084B!important}
.btn-gd:hover{background:rgba(255,255,255,.1)!important}
.card-h{transition:border-color .2s,transform .2s,box-shadow .2s}
.card-h:hover{border-color:rgba(2,169,234,.55)!important;transform:translateY(-2px);box-shadow:0 1px 2px rgba(15,8,75,.04),0 12px 32px rgba(15,8,75,.07)}
.pick{cursor:pointer;transition:background .15s,border-color .15s,color .15s,box-shadow .15s}
.pick:hover{border-color:rgba(2,169,234,.55)!important}
.lnk{color:#0F084B;font-weight:600;border-bottom:1.5px solid #02A9EA;padding-bottom:1px}
.lnk:hover{color:#0189BE}
.ta{cursor:pointer;transition:transform .55s cubic-bezier(.2,.7,.2,1),fill .45s}
.ta:hover{fill:#FF9000}
.cta{background:#0F084B;background-image:radial-gradient(600px 300px at 90% 0%,rgba(2,169,234,.35),transparent 60%),radial-gradient(500px 260px at 0% 100%,rgba(255,144,0,.18),transparent 60%)}
.dotbg{background-image:radial-gradient(rgba(15,8,75,.07) 1px,transparent 1px);background-size:22px 22px;-webkit-mask-image:linear-gradient(180deg,#000,transparent 85%);mask-image:linear-gradient(180deg,#000,transparent 85%)}
@keyframes up{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
.rv{animation:up .75s cubic-bezier(.2,.7,.2,1) both}
.d1{animation-delay:.08s}.d2{animation-delay:.16s}.d3{animation-delay:.24s}.d4{animation-delay:.32s}.d5{animation-delay:.4s}.d6{animation-delay:.48s}
@keyframes fade{from{opacity:0}to{opacity:1}}
.fade{animation:fade .45s ease both}
@keyframes type{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 0 0 0)}}
.tw1{display:inline-block;animation:type 1.1s steps(13) .5s both}
.tw2{display:inline-block;animation:type 1.1s steps(13) 1.7s both}
@keyframes blink{0%,50%{opacity:1}50.01%,100%{opacity:0}}
.caret{display:inline-block;width:4px;height:.86em;background:#0189BE;margin-left:6px;vertical-align:-0.06em;animation:blink 1s step-end infinite}
@keyframes grow{from{transform:scaleX(0)}to{transform:scaleX(1)}}
.bar{transform-origin:left center;animation:grow 1.1s cubic-bezier(.2,.7,.2,1) both}
@keyframes growy{from{transform:scaleY(0)}to{transform:scaleY(1)}}
.bary{transform-origin:center bottom;animation:growy 1s cubic-bezier(.2,.7,.2,1) both}
@keyframes rise{from{opacity:0;transform:rotateX(34deg) translateY(40px)}to{opacity:1;transform:rotateX(16deg)}}
.map3d{transform:rotateX(16deg);transform-origin:50% 55%;animation:rise 1.3s cubic-bezier(.2,.7,.2,1) .2s both}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(16,185,129,.55)}70%{box-shadow:0 0 0 9px rgba(16,185,129,0)}100%{box-shadow:0 0 0 0 rgba(16,185,129,0)}}
.live{animation:pulse 2s infinite}
@keyframes ping{0%{transform:scale(.6);opacity:.9}100%{transform:scale(2.4);opacity:0}}
.ping{animation:ping 1.8s cubic-bezier(0,0,.2,1) infinite}
@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
.float{animation:float 6s ease-in-out infinite}
@keyframes dash{to{stroke-dashoffset:0}}
.draw{stroke-dasharray:600;stroke-dashoffset:600;animation:dash 2.2s ease .4s forwards}
@keyframes shimmer{0%{background-position:-400px 0}100%{background-position:400px 0}}
.shim{background:linear-gradient(90deg,#F3F4F6 0,#EAF5FF 50%,#F3F4F6 100%);background-size:800px 100%;animation:shimmer 2.4s linear infinite}
@keyframes marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.marq{animation:marquee 40s linear infinite}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}


/* ---------- WordPress integration ---------- */
html{scroll-behavior:smooth}
body{margin:0;background:#FAF9F8}
.cp-hide{display:none!important}
.wp-site-blocks{padding:0!important}
.wp-site-blocks>*,.wp-site-blocks>*+*{margin-block-start:0!important;margin-block-end:0!important}
.cp-main{margin:0!important;padding:0!important}
.cp-content,.cp-content>*{margin:0!important;max-width:none!important}
.cp-content>*+*{margin-block-start:0!important}
header.wp-block-template-part{position:sticky;top:0;z-index:50;margin:0}
.admin-bar header.wp-block-template-part{top:32px}
footer.wp-block-template-part{margin:0}
.cp-header{position:relative}
.cp-header-bar{position:relative!important;top:auto!important}
.cp-header .nl.cp-active,.cp-mobile a.cp-active{color:#0F084B!important;background:#F3F4F6}
/* section gutters: 140px on a 1440 screen, shrinking to 20px on phones */
.cp-sec{padding-left:max(20px,calc((100% - 1160px) / 2))!important;padding-right:max(20px,calc((100% - 1160px) / 2))!important;box-sizing:border-box}
.cp-burger{display:none;border:1px solid rgba(150,154,151,.6);background:#fff;border-radius:10px;width:42px;height:42px;align-items:center;justify-content:center;cursor:pointer;position:absolute;right:20px;top:13px;z-index:61}
.cp-mobile{display:none}
svg.map3d{max-width:100%;height:auto}

/* ---------- blog (core blocks) ---------- */
.cp-blog-head{display:flex;flex-direction:column;gap:22px;padding-top:88px;padding-bottom:28px;background:#FAF9F8}
.cp-pills{display:flex;flex-wrap:wrap;gap:8px}
.cp-pill{font-size:13px;font-weight:700;padding:9px 16px;border-radius:999px;background:#fff;color:#0F084B;border:1px solid rgba(150,154,151,.32)}
.cp-pill:hover{border-color:rgba(2,169,234,.55)}
.cp-pill-on{background:#0F084B;color:#fff;border-color:#0F084B}
.cp-blog-list{padding-bottom:88px;background:#FAF9F8}
.cp-post-grid{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;list-style:none;margin:0;padding:0}
.cp-post-grid>li{margin:0}
.cp-post-card{background:#fff;border:1px solid rgba(150,154,151,.32);border-radius:20px;overflow:hidden;height:100%;display:flex;flex-direction:column;transition:border-color .2s,transform .2s,box-shadow .2s}
.cp-post-card:hover{border-color:rgba(2,169,234,.55);transform:translateY(-2px);box-shadow:0 12px 32px rgba(15,8,75,.07)}
.cp-post-card:not(:has(.cp-post-img))::before{content:"";display:block;aspect-ratio:16/9;background:#EAF5FF radial-gradient(rgba(15,8,75,.08) 1px,transparent 1px);background-size:auto,22px 22px}
.cp-post-img{margin:0!important}
.cp-post-img img{width:100%;object-fit:cover}
.cp-post-body{padding:20px;display:flex;flex-direction:column;gap:10px}
.cp-post-body>*{margin:0!important}
.cp-post-cat a{display:inline-block;background:#EAF5FF;color:#0F084B;font-size:11px;font-weight:700;padding:3px 9px;border-radius:999px}
.cp-post-title{font-size:17px!important;line-height:24px!important;font-weight:700!important;color:#0F084B}
.cp-post-excerpt{font-size:14px;line-height:21px;color:#6B6E6C}
.cp-post-excerpt .wp-block-post-excerpt__more-link{display:inline-block;margin-top:8px;color:#0F084B;font-weight:600;border-bottom:1.5px solid #02A9EA}
.cp-pager{margin-top:28px;display:flex;gap:12px;font-weight:600}
.cp-archive-hero{padding-top:72px;background:#FAF9F8}
.cp-archive-title{padding:0 max(20px,calc((100% - 1160px) / 2));margin:14px 0 0 0;font-size:52px;line-height:56px;letter-spacing:-1.8px;font-weight:800;color:#0F084B}
.cp-article-head{padding-top:56px;padding-bottom:32px;display:flex;flex-direction:column;gap:18px;background:#FAF9F8}
.cp-article-head>*{margin:0!important}
.cp-crumb{display:flex;gap:8px;font-size:13px;color:#6B6E6C}.cp-crumb a{color:#0F084B;font-weight:600;border-bottom:1.5px solid #02A9EA}
.cp-article-title{font-size:54px!important;line-height:58px!important;letter-spacing:-1.8px;font-weight:800!important;max-width:900px;color:#0F084B}
.cp-article-lede{font-size:18px;line-height:29px;color:#6B6E6C;max-width:760px}
.cp-article-meta{gap:14px;font-size:13px;color:#6B6E6C;border-top:1px solid rgba(150,154,151,.32);padding-top:16px}
.cp-article-img img{border-radius:24px}
.cp-article-body{display:flex;gap:64px;align-items:flex-start;padding-top:24px;padding-bottom:88px;background:#FAF9F8}
.cp-article-aside{width:280px;flex-shrink:0;position:sticky;top:96px}
.cp-article-content{flex:1;max-width:720px;font-size:18px;line-height:31px;color:#2A2A3A}
.cp-article-content h2{font-size:28px;line-height:34px;letter-spacing:-.6px;font-weight:800;color:#0F084B;margin:36px 0 10px}
.cp-article-content blockquote{border-left:4px solid #FF9000;background:#fff;border-radius:0 16px 16px 0;padding:20px 24px;margin:24px 0;font-size:20px;line-height:30px;font-weight:700;color:#0F084B}
.cp-article-content blockquote p{margin:0}
.cp-related-head{display:flex;flex-direction:column;gap:14px;padding-top:88px;padding-bottom:28px;background:#EAF5FF}
.cp-related{padding-bottom:88px;background:#EAF5FF}

/* ---------- responsive ---------- */
@media (max-width:1180px){
  .cp-sec,.cp-sec *{box-sizing:border-box}
  .cp-sec div,.cp-sec a,.cp-sec button{max-width:100%}
  .cp-sec .rv,.cp-sec .float{min-width:0}
  .cp-sec[style*="display: flex"]:not([style*="flex-direction: column"]),.cp-sec div[style*="display: flex"]:not([style*="flex-direction: column"]){flex-wrap:wrap}
  .cp-sec [style*="flex-shrink: 0"]{max-width:100%!important}
  .cp-sec [style*="grid-template-columns: repeat(4"],.cp-sec [style*="grid-template-columns: repeat(5"],.cp-sec [style*="grid-template-columns: repeat(7"]{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .cp-sec [style*="grid-template-columns: 2fr"],.cp-sec [style*="grid-template-columns: 1.4fr"],.cp-sec [style*="grid-template-columns: 1.6fr"]{grid-template-columns:1.4fr 1fr 1fr!important;font-size:13px}
}
@media (max-width:1100px){
  .cp-header-bar nav,.cp-header-bar>div:last-child{display:none!important}
  .cp-burger{display:flex}
  .cp-menu-open .cp-mobile{z-index:60;display:flex;flex-direction:column;position:absolute;left:0;right:0;top:68px;background:#fff;border-bottom:1px solid rgba(150,154,151,.32);padding:10px 20px 20px;box-shadow:0 24px 48px rgba(15,8,75,.12)}
  .cp-mobile a{padding:12px 4px;font-size:16px;font-weight:600;color:#0F084B;border-bottom:1px solid rgba(150,154,151,.2)}
  .cp-mobile .cp-mobile-cta{margin-top:14px;text-align:center;background:#FF9000;border-radius:999px;border:none}
  .cp-post-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .cp-article-body{flex-direction:column}.cp-article-aside{position:static;width:100%}
}
@media (max-width:760px){
  body{overflow-x:clip}
  .cp-sec span[style*="left: 498px"]{display:none!important}
  .cp-sec span[style*="position: absolute"][style*="border-radius: 50%"]{display:none}
  .cp-sec [style*="white-space: nowrap"]{white-space:normal!important;flex-wrap:wrap}
  .cp-sec [style*="display: inline-flex"]{flex-wrap:wrap}
  .cp-sec{padding-top:56px!important;padding-bottom:56px!important}
  .cp-sec [style*="grid-template-columns"]:not([style*="repeat(13"]):not([style*="repeat(8,"]):not([style*="repeat(12,"]):not([style*="border-radius: 16px; background: #F3F4F6"]){grid-template-columns:1fr!important}
  .cp-sec h1{font-size:40px!important;line-height:44px!important;letter-spacing:-1.2px!important}
  .cp-sec h2{font-size:30px!important;line-height:35px!important}
  .cp-sec [style*="font-size: 64px"],.cp-sec [style*="font-size: 60px"]{font-size:44px!important;line-height:48px!important}
  .cp-sec [style*="padding: 64px"],.cp-sec [style*="padding: 48px"],.cp-sec [style*="padding: 44px"]{padding:28px!important}
  .cp-sec .cta{flex-direction:column;align-items:flex-start!important}
  .cp-header-bar{padding-left:20px!important}
  .cp-post-grid{grid-template-columns:1fr}
  .cp-article-title{font-size:38px!important;line-height:42px!important}
}
.cp-article-content>*{margin:0}
.cp-article-content>*+*{margin-top:18px!important}
.cp-article-content>h2{margin-top:36px!important}
/* list rows with a leading icon keep the icon beside the text; wide comparison tables scroll sideways */
@media (max-width:1180px){
  .cp-sec .cp-li{flex-wrap:nowrap!important}
  .cp-sec .cp-cmp{overflow-x:auto;-webkit-overflow-scrolling:touch}
  .cp-sec .cp-cmp table{min-width:980px}
}

/* bullet rows: keep the tick beside its text on small screens */
.cp-sec [style*="align-items: flex-start; gap: 10px; font-size: 14px"],.cp-sec [style*="align-items: flex-start; gap: 10px; font-size: 15px"]{flex-wrap:nowrap!important}

/* ---- Contact form plugins (Contact Form 7 / WPForms): match the site style ---- */
.wpcf7 form,.wpforms-container .wpforms-form{display:flex;flex-direction:column;gap:14px;font-family:'Geist',system-ui,sans-serif;color:#0F084B}
.wpcf7 label,.wpforms-container .wpforms-field-label{display:block;font-size:13px!important;font-weight:600!important;color:#0F084B!important;margin-bottom:6px!important}
.wpcf7 input[type=text],.wpcf7 input[type=email],.wpcf7 input[type=tel],.wpcf7 select,.wpcf7 textarea,
.wpforms-container input[type=text],.wpforms-container input[type=email],.wpforms-container input[type=tel],.wpforms-container select,.wpforms-container textarea{
  width:100%!important;max-width:100%!important;box-sizing:border-box;background:#FAF9F8!important;border:1px solid rgba(150,154,151,.45)!important;border-radius:12px!important;
  padding:12px 14px!important;font:inherit;font-size:15px!important;color:#0F084B!important;box-shadow:none!important;transition:border-color .15s,box-shadow .15s}
.wpcf7 textarea,.wpforms-container textarea{min-height:140px;resize:vertical}
.wpcf7 input:focus,.wpcf7 select:focus,.wpcf7 textarea:focus,.wpforms-container input:focus,.wpforms-container select:focus,.wpforms-container textarea:focus{
  outline:none;border-color:#02A9EA!important;box-shadow:0 0 0 3px rgba(2,169,234,.2)!important;background:#FFFFFF!important}
.wpcf7 input[type=submit],.wpforms-container button[type=submit],.wpforms-container .wpforms-submit{
  align-self:flex-start;background:#FF9000!important;color:#0F084B!important;border:1px solid #FF9000!important;border-radius:999px!important;
  padding:13px 26px!important;font:inherit;font-size:15px!important;font-weight:600!important;cursor:pointer;transition:filter .15s}
.wpcf7 input[type=submit]:hover,.wpforms-container button[type=submit]:hover{filter:brightness(.95)}
.wpcf7 .wpcf7-not-valid-tip,.wpforms-container label.wpforms-error{color:#C2410C!important;font-size:13px!important;margin-top:4px}
.wpcf7 form .wpcf7-response-output{margin:4px 0 0!important;border-radius:12px;padding:12px 14px!important;font-size:14px;border-color:#02A9EA!important;background:#EAF5FF}
.wpcf7 form.invalid .wpcf7-response-output,.wpcf7 form.failed .wpcf7-response-output{border-color:#FF9000!important;background:#FFF4E5}
.cp-form-card{background:#FFFFFF;border:1px solid rgba(150,154,151,.32);border-radius:22px;padding:32px;box-shadow:0 12px 32px rgba(15,8,75,.06)}
.cp-form-note{font-size:13px;line-height:20px;color:#6B6E6C;margin-top:10px}
.wpcf7 form p{margin:0!important}
.wpcf7 label br{display:none}
.wpcf7 label .wpcf7-form-control-wrap{display:block;margin-top:6px}
.wpcf7 label>input,.wpcf7 label>select,.wpcf7 label>textarea{margin-top:6px}
.wpcf7 input,.wpcf7 select,.wpcf7 textarea,.wpforms-container input,.wpforms-container select,.wpforms-container textarea{font-weight:400!important}
.wpcf7 label,.wpforms-container .wpforms-field-label{margin-bottom:0!important}
.wpforms-container .wpforms-field{padding:0 0 4px!important}
