/* Sale Drawer — site styles. Layout lives inline in the templates (straight from the design files);
   this sheet holds the base, animations, interactive states and long-form content styles. */
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:#FAFAFC;color:#0F172A;font-family:'Public Sans',system-ui,-apple-system,'Segoe UI',sans-serif;-webkit-font-smoothing:antialiased;overflow-x:hidden}
a{color:#1E4E79;text-decoration:none}a:hover{color:#163C5E}
img,svg{max-width:100%}
[hidden]{display:none!important}
:focus-visible{outline:2px solid #0E8A94;outline-offset:3px;border-radius:6px}
::selection{background:#CFE8F5;color:#0B2239}
:target{scroll-margin-top:90px}
[id]{scroll-margin-top:90px}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

@keyframes drawerIn{from{transform:translateX(56px);opacity:0}to{transform:none;opacity:1}}
@keyframes sheetIn{from{transform:translateY(40px);opacity:0}to{transform:none;opacity:1}}
@keyframes fadeUp{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}
@keyframes floaty{0%,100%{transform:translateY(0) rotate(-3deg)}50%{transform:translateY(-9px) rotate(-1deg)}}
@keyframes floaty2{0%,100%{transform:translateY(0) rotate(3deg)}50%{transform:translateY(-7px) rotate(5deg)}}
@keyframes marquee{to{transform:translateX(-50%)}}
@keyframes wiggle{0%,100%{transform:rotate(-5deg)}50%{transform:rotate(4deg)}}
@keyframes pulseDot{0%,100%{box-shadow:0 0 0 0 rgba(14,138,148,0.5)}60%{box-shadow:0 0 0 8px rgba(14,138,148,0)}}
@keyframes grow{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@supports (animation-timeline: scroll()){[data-progress]{animation:grow linear both;animation-timeline:scroll(root)}}

@media (max-width:760px){[data-desktop]{display:none!important}[data-mobile]{display:flex!important}}
#mobile-menu:not([hidden]){display:flex}

/* ---- Hover / active / focus states from the design (style-hover → class) ---- */
.hv1:focus-within{top:12px!important}
@media (hover:hover){.hv2:hover{color:#0F172A!important}}
@media (hover:hover){.hv3:hover{transform:translateY(-2px)!important;box-shadow:0 12px 28px rgba(30,78,121,0.45)!important;color:#ffffff!important}}
.hv3:active{transform:scale(0.97)!important}
@media (hover:hover){.hv4:hover{background:#EEF7FC!important;color:#1E4E79!important}}
@media (hover:hover){.hv5:hover{transform:translateY(-2px)!important;box-shadow:0 18px 42px rgba(30,78,121,0.5)!important;color:#ffffff!important}}
.hv5:active{transform:scale(0.97)!important}
@media (hover:hover){.hv6:hover{transform:translateY(-2px)!important;border-color:#C7CBDA!important;color:#0F172A!important}}
.hv6:active{transform:scale(0.97)!important}
@media (hover:hover){.hv7:hover{transform:translateY(-4px)!important;box-shadow:0 20px 44px rgba(15,23,42,0.1)!important}}
@media (hover:hover){.hv8:hover{transform:rotate(0deg) translateY(-4px)!important}}
@media (hover:hover){.hv9:hover{transform:translateY(-6px)!important;box-shadow:0 38px 80px rgba(15,23,42,0.18)!important}}
@media (hover:hover){.hv10:hover{background:#1E4E79!important}}
@media (hover:hover){.hv11:hover{transform:translateY(-5px)!important;border-color:rgba(169,219,242,0.45)!important}}
@media (hover:hover){.hv12:hover{border-color:rgba(255,255,255,0.5)!important;color:#ffffff!important;transform:translateY(-2px)!important}}
@media (hover:hover){.hv13:hover{background:#FAFAFC!important}}
@media (hover:hover){.hv14:hover{background:#ECFDF5!important;color:#047857!important}}
@media (hover:hover){.hv15:hover{transform:translateY(-2px)!important;color:#ffffff!important}}
.hv15:active{transform:scale(0.97)!important}
@media (hover:hover){.hv16:hover{transform:translateY(-4px)!important;box-shadow:0 20px 48px rgba(15,23,42,0.09)!important}}
@media (hover:hover){.hv17:hover{background:#1E4E79!important;color:#ffffff!important}}
@media (hover:hover){.hv18:hover{color:#0E8A94!important}}
@media (hover:hover){.hv19:hover{color:#1E4E79!important}}
@media (hover:hover){.hv20:hover{border-color:rgba(255,255,255,0.5)!important;color:#ffffff!important}}
@media (hover:hover){.hv21:hover{color:#CDEBF7!important}}
@media (hover:hover){.hv22:hover{color:#ffffff!important}}
@media (hover:hover){.hv23:hover{transform:translateY(-4px)!important;box-shadow:0 24px 52px rgba(15,23,42,0.11)!important}}
.hv24:focus-within{border-color:#0E8A94!important}
@media (hover:hover){.hv25:hover{transform:translateY(-4px)!important;box-shadow:0 20px 44px rgba(15,23,42,0.1)!important;border-color:#CFE8F5!important;color:#0F172A!important}}
@media (hover:hover){.hv26:hover{border-color:#CFE8F5!important;transform:translateY(-2px)!important;color:#0F172A!important}}
@media (hover:hover){.hv27:hover{transform:translateY(-2px)!important;color:#ffffff!important}}
@media (hover:hover){.hv28:hover{border-color:#C7CBDA!important;color:#0F172A!important}}

/* ---- FAQ accordion ---- */
.faq{background:#fff;border-radius:16px;border:1px solid #E9EAF0;box-shadow:0 2px 6px rgba(15,23,42,.03);transition:border-color .3s ease,box-shadow .3s ease}
.faq.is-open{border-color:#CFE8F5;box-shadow:0 16px 38px rgba(30,78,121,.10)}
.faq-icon{width:30px;height:30px;border-radius:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:18px;font-weight:600;line-height:1;background:#EEF7FC;color:#1E4E79;transition:transform .35s cubic-bezier(.22,1,.36,1),background .3s ease,color .3s ease}
.faq.is-open .faq-icon{background:linear-gradient(135deg,#1E4E79,#0E8A94);color:#fff;transform:rotate(45deg)}
.faq-body{display:grid;grid-template-rows:0fr;transition:grid-template-rows .4s cubic-bezier(.22,1,.36,1)}
.faq.is-open .faq-body{grid-template-rows:1fr}
.faq-text{margin:0;padding:0 22px 22px;font-size:15px;line-height:1.7;color:#475569;opacity:0;transform:translateY(-6px);transition:opacity .3s ease .05s,transform .35s ease}
.faq.is-open .faq-text{opacity:1;transform:none}
.no-js .faq-body{grid-template-rows:1fr}.no-js .faq-text{opacity:1;transform:none}

/* ---- Live configurator (home) ---- */
.seg{padding:9px 17px;border-radius:9px;font-size:14px;font-weight:600;color:#64748B;background:transparent;border:none;cursor:pointer;font-family:'Public Sans',sans-serif;transition:all .18s ease}
.seg:hover{color:#0F172A}
.seg.is-active{background:linear-gradient(135deg,#1E4E79,#0E8A94);color:#fff;box-shadow:0 6px 16px rgba(30,78,121,.35)}
.demo-drawer{position:absolute;background:#fff;display:flex;flex-direction:column;overflow:hidden;z-index:3;top:0;bottom:0;width:min(320px,74%);box-shadow:-14px 0 40px rgba(15,23,42,.16);animation:drawerIn .45s cubic-bezier(.22,1,.36,1) both}
.demo-drawer.pos-right{right:0}
.demo-drawer.pos-left{left:0;box-shadow:14px 0 40px rgba(15,23,42,.16)}
.demo-drawer.pos-bottom{top:auto;left:0;right:0;width:auto;height:64%;border-radius:18px 18px 0 0;box-shadow:0 -14px 40px rgba(15,23,42,.16);animation-name:sheetIn}
.demo-launcher{position:absolute;background:#FF632C;color:#fff;border:none;cursor:pointer;font-weight:800;z-index:3;font-family:'Public Sans',sans-serif}
.demo-launcher.is-tab{font-size:12px;letter-spacing:.08em;padding:13px 8px;box-shadow:0 8px 22px rgba(255,99,44,.3);writing-mode:vertical-rl;top:36%}
.demo-launcher.is-tab.pos-right{right:0;border-radius:10px 0 0 10px}
.demo-launcher.is-tab.pos-left{left:0;border-radius:0 10px 10px 0}
.demo-launcher.is-tab.pos-bottom{writing-mode:horizontal-tb;top:auto;bottom:0;left:50%;transform:translateX(-50%);padding:9px 20px;border-radius:10px 10px 0 0}
.demo-launcher.is-bubble{bottom:16px;right:16px;width:54px;height:54px;border-radius:50%;font-size:19px;box-shadow:0 10px 26px rgba(255,99,44,.4);font-family:'Bricolage Grotesque',sans-serif}

/* ---- Docs ---- */
.docs-search{position:relative}
.docs-results{position:absolute;left:0;right:0;top:calc(100% + 8px);z-index:20;background:#fff;border:1px solid #E2E4EC;border-radius:14px;box-shadow:0 24px 60px rgba(15,23,42,.14);max-height:min(420px,60vh);overflow:auto;padding:6px;text-align:left}
.docs-results a{display:block;padding:11px 12px;border-radius:10px;color:#0F172A}
.docs-results a:hover,.docs-results a[aria-selected="true"]{background:#EEF7FC;color:#1E4E79}
.docs-results a strong{display:block;font-size:14.5px}
.docs-results a span{display:block;font-size:13px;color:#64748B;margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.docs-results .empty{padding:14px 12px;font-size:14px;color:#64748B}
.doc-layout{display:grid;grid-template-columns:240px minmax(0,1fr);gap:56px;align-items:start}
.doc-nav{position:sticky;top:90px;display:flex;flex-direction:column;gap:2px}
@media (max-width:900px){.doc-layout{grid-template-columns:1fr;gap:28px}.doc-nav{position:static;display:none}}
.toc{background:#fff;border:1px solid #E9EAF0;border-radius:16px;padding:18px 20px;margin:0 0 34px}
.toc ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:6px}
.prose .toc li{margin:0}
.prose .toc a{font-size:14.5px;font-weight:600;text-decoration:none}
.doc-pager{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:56px;padding-top:28px;border-top:1px solid #E9EAF0}
.doc-pager a{display:flex;flex-direction:column;gap:3px;border:1px solid #E9EAF0;border-radius:14px;padding:16px 18px;background:#fff;transition:border-color .18s,transform .18s}
.doc-pager a:hover{border-color:#CFE8F5;transform:translateY(-2px)}
.doc-pager span{font-size:12.5px;font-weight:700;color:#64748B}
.doc-pager strong{font-size:15.5px;color:#0F172A}

/* ---- Long-form content (docs + blog) ---- */
.prose{font-size:16.5px;line-height:1.75;color:#334155}
.prose>:first-child{margin-top:0}
.prose h2{font-family:'Bricolage Grotesque',sans-serif;font-weight:800;font-size:clamp(24px,3vw,30px);letter-spacing:-.02em;line-height:1.15;color:#0F172A;margin:2.1em 0 .55em}
.prose h3{font-family:'Bricolage Grotesque',sans-serif;font-weight:800;font-size:20px;letter-spacing:-.01em;color:#0F172A;margin:1.7em 0 .45em}
.prose h2 .anchor,.prose h3 .anchor{margin-left:.35em;color:#CBD0DE;font-weight:600;opacity:0;transition:opacity .15s}
.prose h2:hover .anchor,.prose h3:hover .anchor,.prose .anchor:focus{opacity:1}
.prose p{margin:0 0 1.1em}
.prose a{font-weight:600;text-decoration:underline;text-decoration-color:#CFE8F5;text-underline-offset:3px;text-decoration-thickness:2px}
.prose a:hover{text-decoration-color:#0E8A94}
.prose a.anchor{text-decoration:none}
.prose ul,.prose ol{padding-left:1.3em;margin:0 0 1.2em}
.prose li{margin:.35em 0}
.prose li::marker{color:#0E8A94;font-weight:700}
.prose strong{color:#0F172A}
.prose code{font-family:'IBM Plex Mono',monospace;font-size:.86em;background:#F1F5F9;border:1px solid #E9EAF0;border-radius:6px;padding:.12em .4em;color:#0F172A}
.prose pre{background:#0B2239;color:#E2E8F0;border-radius:14px;padding:18px 20px;overflow:auto;font-size:14px;line-height:1.6;margin:0 0 1.4em}
.prose pre code{background:none;border:none;padding:0;color:inherit;font-size:inherit}
.prose blockquote{margin:0 0 1.3em;padding:14px 20px;border-left:4px solid #0E8A94;background:#F2FAFD;border-radius:0 12px 12px 0;color:#164E63}
.prose blockquote p:last-child{margin:0}
.prose table{display:block;overflow-x:auto;border-collapse:collapse;width:100%;margin:0 0 1.4em;font-size:15px}
.prose th,.prose td{border-bottom:1px solid #E9EAF0;padding:10px 12px;text-align:left;vertical-align:top}
.prose th{font-weight:800;color:#0F172A;background:#F8FAFC}
.prose hr{border:none;border-top:1px solid #E9EAF0;margin:2.4em 0}
.prose img{border-radius:14px;height:auto}

@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}html{scroll-behavior:auto}}
