/* Lumos front page. Generated from the approved Claude Design canvas. */
@font-face{font-family:"Quicksand";font-style:normal;font-weight:600;font-display:swap;src:url(../fonts/quicksand-latin-600-normal.woff2) format("woff2")}
@font-face{font-family:"Quicksand";font-style:normal;font-weight:700;font-display:swap;src:url(../fonts/quicksand-latin-700-normal.woff2) format("woff2")}
@font-face{font-family:"Atkinson Hyperlegible Next";font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/atkinson-hyperlegible-next-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"Atkinson Hyperlegible Next";font-style:normal;font-weight:500;font-display:swap;src:url(../fonts/atkinson-hyperlegible-next-latin-500-normal.woff2) format("woff2")}
@font-face{font-family:"Atkinson Hyperlegible Next";font-style:normal;font-weight:700;font-display:swap;src:url(../fonts/atkinson-hyperlegible-next-latin-700-normal.woff2) format("woff2")}

body.lumos-front{margin:0;background:#0F1B2B;-webkit-font-smoothing:antialiased}
#lumos-home,#lumos-home *{box-sizing:border-box}
#lumos-home img{max-width:100%}
#lumos-home a{color:#2B65A3}
#lumos-home a:hover{color:#24578F}
#lumos-home h1,#lumos-home h2,#lumos-home h3,#lumos-home p,#lumos-home blockquote{overflow-wrap:break-word}
.lx-skip{position:absolute;left:-9999px;top:8px;z-index:100;background:#F5CD7A;color:#13202F;padding:10px 16px;border-radius:10px;font-weight:700}
.lx-skip:focus{left:16px}


a{color:#2B65A3}a:hover{color:#24578F}
.lx-btn:hover{background:#24578F !important}
.lx-amber:hover{background:#F8DC9C !important}
.lx-glass:hover{background:rgba(255,255,255,.14) !important}
.lx-card:hover{border-color:#C9DCEE !important;box-shadow:0 16px 40px rgba(19,32,47,.10) !important;transform:translateY(-2px)}
.lx-step:hover{border-color:#A9C8E3 !important}
.lx-dnav a:hover{color:#FFFFFF !important}
@keyframes lx-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-12px)}}
@keyframes lx-twinkle{0%,100%{opacity:.2}50%{opacity:1}}
@keyframes lx-rise{from{opacity:0;transform:translateY(28px)}to{opacity:1;transform:none}}
@keyframes lx-assemble{from{opacity:0;transform:scale(.8) rotate(-6deg);filter:blur(8px)}to{opacity:1;transform:none;filter:none}}
@keyframes lx-glow{0%,100%{opacity:.65;transform:scale(1)}50%{opacity:1;transform:scale(1.08)}}
@keyframes lx-wave{0%,100%{transform:scaleY(.35)}50%{transform:scaleY(1)}}
@keyframes lx-grow{from{transform:scaleY(0)}to{transform:scaleY(1)}}
@keyframes lx-pop{0%{transform:scale(.6)}60%{transform:scale(1.18)}100%{transform:scale(1)}}
@keyframes lx-drift{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.lx-bf{transform-origin:50% 50%;animation:lx-assemble 2.6s cubic-bezier(.2,.7,.2,1) both,lx-float 8s ease-in-out 2.6s infinite}
.lx-bf circle:nth-child(3n){animation:lx-twinkle 3.2s ease-in-out infinite}
.lx-bf circle:nth-child(5n){animation:lx-twinkle 4.6s ease-in-out 1.2s infinite}
.lx-bf circle:nth-child(7n){animation:lx-twinkle 2.4s ease-in-out .6s infinite}
.lx-in0{animation:lx-rise .8s cubic-bezier(.2,.7,.2,1) .05s both}
.lx-in1{animation:lx-rise .9s cubic-bezier(.2,.7,.2,1) .15s both}
.lx-in2{animation:lx-rise .9s cubic-bezier(.2,.7,.2,1) .35s both}
.lx-in3{animation:lx-rise .9s cubic-bezier(.2,.7,.2,1) .5s both}
.lx-f1{animation:lx-rise .8s 1.2s both,lx-float 6s ease-in-out 2s infinite}
.lx-f2{animation:lx-rise .8s 1.5s both,lx-float 7s ease-in-out 2.3s infinite}
.lx-f3{animation:lx-rise .8s 1.8s both,lx-float 6.5s ease-in-out 2.6s infinite}
.lx-orb{animation:lx-glow 10s ease-in-out infinite}
.lx-reveal{animation:lx-rise linear both;animation-timeline:view();animation-range:entry 0% cover 28%}
.lx-bar{transform-origin:50% 50%;animation:lx-wave 1.4s ease-in-out infinite}
.lx-bar:nth-child(2n){animation-duration:1.1s}.lx-bar:nth-child(3n){animation-duration:1.7s}.lx-bar:nth-child(5n){animation-delay:.3s}
.lx-col{transform-box:fill-box;transform-origin:50% 100%;animation:lx-grow linear both;animation-timeline:view();animation-range:entry 10% cover 40%}
.lx-p1{animation:lx-float 7s ease-in-out infinite}.lx-p2{animation:lx-float 8s ease-in-out .8s infinite}.lx-p3{animation:lx-float 7.5s ease-in-out 1.6s infinite}
.lx-pop{animation:lx-pop .45s cubic-bezier(.2,.9,.3,1.4)}
.lx-track{display:flex;gap:56px;width:max-content;animation:lx-drift 40s linear infinite}
.lx-calm *,.lx-calm *::before{animation:none !important;transition:none !important}
@media (prefers-reduced-motion: reduce){*{animation:none !important;transition:none !important}}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #F5CD7A;outline-offset:3px;border-radius:12px}

/* ---------- header / mobile menu ---------- */
.lx-menu-btn{display:none;width:44px;height:44px;border-radius:12px;border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.06);align-items:center;justify-content:center;cursor:pointer;margin-left:auto}
@media (max-width:980px){
  .lx-menu-btn{display:inline-flex}
  .lx-header .lx-dnav{display:none !important;flex-basis:100% !important;flex-direction:column;gap:0 !important;order:5}
  .lx-header.is-open .lx-dnav{display:flex !important}
  .lx-header .lx-dnav a{padding:14px 0 !important;border-bottom:1px solid rgba(255,255,255,.08);font-size:17px}
  .lx-header [data-calm-toggle] span{display:none}
}
@media (max-width:520px){ .lx-header .lx-amber{display:none !important} }

/* ---------- responsive type and spacing ---------- */
@media (max-width:900px){
  #lumos-home section > div[style*="max-width: 1240px"]{padding-top:72px !important;padding-bottom:72px !important}
  #lumos-home h1{font-size:46px !important;letter-spacing:-1px !important}
  #lumos-home h2{font-size:36px !important}
  #top > div:last-child{height:440px !important}
  #lumos-home [style*="padding: 64px"]{padding:32px 22px !important}
  #lumos-home [style*="padding: 48px 56px"]{padding:32px 22px !important}
}
@media (max-width:560px){
  #lumos-home h1{font-size:38px !important}
  #lumos-home h2{font-size:30px !important}
  #lumos-home blockquote{font-size:26px !important}
  #top{padding-top:48px !important}
  #top > div:last-child{height:360px !important}
  #top .lx-f1,#top .lx-f3{display:none !important}
  #top .lx-f2{right:auto !important;left:50% !important;top:auto !important;bottom:8px !important;margin-left:-125px}
  #top > div:last-child svg.lx-bf{top:0 !important;height:300px !important}
  #app .lx-p1,#app .lx-p3{display:none}
}

/* ---------- FAQ ---------- */
.lx-faq{background:#FFFFFF;border-radius:22px;border:1px solid #E4EAF1}
.lx-faq summary{list-style:none;min-height:72px;padding:20px 24px;display:flex;align-items:center;justify-content:space-between;gap:16px;cursor:pointer;font-family:Quicksand,sans-serif;font-weight:700;font-size:20px;color:#13202F}
.lx-faq summary::-webkit-details-marker{display:none}
.lx-faq-sign{width:36px;height:36px;border-radius:999px;background:#E3EEF8;flex:none;position:relative}
.lx-faq-sign::before,.lx-faq-sign::after{content:"";position:absolute;left:50%;top:50%;width:14px;height:2.5px;border-radius:2px;background:#2B65A3;transform:translate(-50%,-50%)}
.lx-faq-sign::after{transform:translate(-50%,-50%) rotate(90deg)}
.lx-faq[open] .lx-faq-sign{background:#2B65A3}
.lx-faq[open] .lx-faq-sign::before{background:#FFFFFF}
.lx-faq[open] .lx-faq-sign::after{display:none}
.lx-faq p{margin:0;padding:0 24px 24px;font-size:17px}

/* ---------- blog ---------- */
.lx-filters button{min-height:44px;padding:0 18px;border-radius:999px;border:1px solid #E4EAF1;background:#FFFFFF;color:#34445A;font:inherit;font-weight:700;font-size:15px;cursor:pointer}
.lx-filters button[aria-pressed="true"]{background:#13202F;border-color:#13202F;color:#FFFFFF}
.lx-blog-grid{margin-top:40px;display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:20px}
.lx-post{display:flex;flex-direction:column;text-decoration:none !important;color:inherit !important;background:#FFFFFF;border:1px solid #E4EAF1;border-radius:26px;overflow:hidden;transition:all .25s}
.lx-post img{width:100%;aspect-ratio:16/10;object-fit:cover;display:block}
.lx-post-body{padding:22px;display:flex;flex-direction:column;gap:8px;flex:1}
.lx-post-meta{font-size:13px;font-weight:700;color:#5B6B7F}
.lx-post h3{margin:0;font-family:Quicksand,sans-serif;font-weight:700;font-size:20px;line-height:1.3;color:#13202F}
.lx-post p{margin:4px 0 0;font-size:17px;color:#34445A}
.lx-post-more{margin-top:auto;padding-top:6px;font-weight:700;font-size:15px;color:#2B65A3}
.lx-post-featured{grid-column:1/-1;flex-direction:row;flex-wrap:wrap;background:#F5F8FC;border-radius:32px}
.lx-post-featured img{flex:1 1 520px;min-width:0;width:auto;aspect-ratio:16/9}
.lx-post-featured .lx-post-body{flex:1 1 380px;padding:40px;justify-content:center}
.lx-post-featured .lx-post-meta{color:#8A5A0F}
.lx-post-featured h3{font-size:32px}
.lx-post[hidden]{display:none}
@media (max-width:640px){.lx-post-featured .lx-post-body{padding:24px}.lx-post-featured h3{font-size:24px}}

/* ---------- Fluent Forms restyle ---------- */
.lx-ff .fluentform .ff-el-group{margin-bottom:14px}
.lx-ff .fluentform .ff-el-input--label label{font-family:"Atkinson Hyperlegible Next",sans-serif;font-size:15px;font-weight:500}
.lx-ff .fluentform .ff-el-form-control{min-height:52px;border-radius:14px;padding:12px 16px;font:inherit;font-size:17px;box-shadow:none}
.lx-ff .fluentform textarea.ff-el-form-control{min-height:110px}
.lx-ff .fluentform .ff-btn-submit{width:100%;min-height:56px;border-radius:14px !important;border:0 !important;background:#F5CD7A !important;color:#13202F !important;font-family:"Atkinson Hyperlegible Next",sans-serif !important;font-weight:700 !important;font-size:18px !important;text-transform:none !important;letter-spacing:0 !important;cursor:pointer}
.lx-ff .fluentform .ff-btn-submit:hover{background:#F8DC9C !important}
.lx-ff-dark .fluentform .ff-el-input--label label,.lx-ff-dark .fluentform .ff-el-is-required.asterisk-right label:after{color:#EEF3F8}
.lx-ff-dark .fluentform .ff-el-form-control{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.16);color:#FFFFFF}
.lx-ff-dark .fluentform .ff-el-form-control::placeholder{color:#AFC0D2}
.lx-ff-dark .fluentform select.ff-el-form-control{background:#1F3350}
.lx-ff-band .fluentform .ff-el-input--label label{color:#FFFFFF}
.lx-ff-band .fluentform .ff-el-form-control{background:#FFFFFF;border:0;color:#13202F}
.lx-ff .fluentform .ff-el-form-control:focus{outline:3px solid #F5CD7A;outline-offset:2px}
.lx-ff .ff-message-success{border-radius:14px;background:#FBF1D3;color:#13202F;border:0}
.lx-ff .text-danger,.lx-ff .error{color:#FFC9C9}
.lx-ff-band .text-danger,.lx-ff-band .error{color:#FFFFFF}
