/* =========================================================
   FLOWAIVO KIT — brand system
   Terminal / code aesthetic. Single family: JetBrains Mono.
   ========================================================= */

:root{
	--fw-bg:#0a0d12;
	--fw-surface:#11151c;
	--fw-surface-2:#161b23;
	--fw-border:#232a35;
	--fw-border-lit:#2f3a49;
	--fw-text:#c7d0da;
	--fw-head:#e8eef5;
	--fw-dim:#69758a;
	--fw-accent:#5eead4;
	--fw-accent-dim:#2b6e64;
	--fw-accent-glow:rgba(94,234,212,.14);
	--fw-warn:#f0a868;

	--fw-mono:'JetBrains Mono','Fira Code',ui-monospace,SFMono-Regular,Menlo,monospace;

	--fw-r:6px;
	--fw-r-lg:10px;
	--fw-gut:clamp(20px,5vw,64px);
	--fw-sec:clamp(64px,9vw,120px);
	--fw-max:1180px;
}

/* ---------- base ---------- */
body.fw-site{
	background:var(--fw-bg);
	color:var(--fw-text);
	font-family:var(--fw-mono);
	font-size:15px;
	line-height:1.75;
	-webkit-font-smoothing:antialiased;
}
body.fw-site h1,body.fw-site h2,body.fw-site h3,
body.fw-site h4,body.fw-site h5,body.fw-site h6{
	font-family:var(--fw-mono);
	color:var(--fw-head);
	font-weight:700;
	letter-spacing:-.02em;
	line-height:1.2;
	margin:0 0 .5em;
}
body.fw-site a{color:var(--fw-accent);text-decoration:none;}
body.fw-site a:hover{text-decoration:underline;}
body.fw-site ::selection{background:var(--fw-accent-dim);color:#04120f;}

.fw-wrap{max-width:var(--fw-max);margin-inline:auto;padding-inline:var(--fw-gut);}

/* ---------- structural markers ---------- */
/* "// label" eyebrow — marks a section the way a comment marks a code block */
.fw-eyebrow{
	font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;
	color:var(--fw-dim);font-weight:500;margin-bottom:14px;display:block;
}
.fw-eyebrow::before{content:'// ';color:var(--fw-accent-dim);}

/* "$ command" heading prompt */
.fw-prompt::before{content:'$ ';color:var(--fw-accent);font-weight:400;}

.fw-h1{font-size:clamp(2rem,5.2vw,3.4rem);font-weight:800;}
.fw-h2{font-size:clamp(1.5rem,3.4vw,2.25rem);font-weight:700;}
.fw-h3{font-size:clamp(1.05rem,2vw,1.3rem);font-weight:700;}
.fw-lede{font-size:clamp(.95rem,1.5vw,1.05rem);color:var(--fw-text);max-width:62ch;}
.fw-dim{color:var(--fw-dim);}
.fw-accent{color:var(--fw-accent);}

.fw-rule{height:1px;background:var(--fw-border);border:0;margin:0;}

/* ---------- terminal window: the signature device ---------- */
.fw-term{
	background:var(--fw-surface);
	border:1px solid var(--fw-border);
	border-radius:var(--fw-r-lg);
	overflow:hidden;
	box-shadow:0 24px 60px rgba(0,0,0,.45);
}
.fw-term__bar{
	display:flex;align-items:center;gap:10px;
	padding:11px 14px;background:var(--fw-surface-2);
	border-bottom:1px solid var(--fw-border);
}
.fw-term__dots{display:flex;gap:6px;flex:0 0 auto;}
.fw-term__dots i{width:10px;height:10px;border-radius:50%;background:var(--fw-border-lit);display:block;}
.fw-term__dots i:first-child{background:#3d4756;}
.fw-term__path{font-size:.72rem;color:var(--fw-dim);letter-spacing:.04em;}
.fw-term__body{padding:22px 20px;font-size:.86rem;line-height:1.95;}
.fw-term__body .ln{display:block;white-space:pre-wrap;}
.fw-term__body .ok{color:var(--fw-accent);}
.fw-term__body .cm{color:var(--fw-dim);}
.fw-term__body .wr{color:var(--fw-warn);}
.fw-caret{display:inline-block;width:8px;height:1.05em;background:var(--fw-accent);vertical-align:-.16em;animation:fw-blink 1.05s steps(1) infinite;}
@keyframes fw-blink{50%{opacity:0;}}

/* ---------- buttons ---------- */
body.fw-site a.fw-btn,.fw-btn{
	display:inline-flex;align-items:center;gap:9px;
	font-family:var(--fw-mono);font-size:.82rem;font-weight:600;letter-spacing:.02em;
	padding:.86em 1.5em;border-radius:var(--fw-r);
	border:1px solid var(--fw-accent-dim);
	background:var(--fw-accent);color:#04120f;
	text-decoration:none;
	transition:transform .16s ease,box-shadow .16s ease,background .16s ease;
}
.fw-btn:hover{background:#7df2df;transform:translateY(-2px);box-shadow:0 10px 26px var(--fw-accent-glow);text-decoration:none;}
body.fw-site a.fw-btn--ghost,.fw-btn--ghost{background:transparent;color:var(--fw-accent);border-color:var(--fw-border-lit);}
.fw-btn--ghost:hover{background:var(--fw-surface-2);border-color:var(--fw-accent-dim);box-shadow:none;}
.fw-btn::before{content:'> ';opacity:.55;}

/* ---------- cards ---------- */
.fw-grid{display:grid;gap:18px;}
.fw-grid--2{grid-template-columns:repeat(2,1fr);}
.fw-grid--3{grid-template-columns:repeat(3,1fr);}
.fw-grid--4{grid-template-columns:repeat(4,1fr);}

.fw-card{
	background:var(--fw-surface);
	border:1px solid var(--fw-border);
	border-radius:var(--fw-r-lg);
	padding:24px 22px;
	position:relative;
	transition:border-color .2s ease,transform .2s ease,box-shadow .2s ease;
	will-change:transform;
}
.fw-card:hover{border-color:var(--fw-accent-dim);transform:translateY(-3px);box-shadow:0 18px 40px rgba(0,0,0,.4);}
.fw-card__key{font-size:.7rem;color:var(--fw-accent-dim);letter-spacing:.14em;text-transform:uppercase;display:block;margin-bottom:10px;}
.fw-card__title{font-size:1.02rem;font-weight:700;color:var(--fw-head);margin:0 0 8px;}
.fw-card__text{font-size:.86rem;color:var(--fw-dim);line-height:1.8;margin:0;}
.fw-card__list{list-style:none;padding:0;margin:14px 0 0;font-size:.82rem;}
.fw-card__list li{padding-left:18px;position:relative;color:var(--fw-text);margin-bottom:6px;}
.fw-card__list li::before{content:'—';position:absolute;left:0;color:var(--fw-accent-dim);}

.fw-card--flag{border-color:var(--fw-accent-dim);}
.fw-card--flag::after{
	content:attr(data-flag);position:absolute;top:-9px;right:16px;
	background:var(--fw-accent);color:#04120f;font-size:.62rem;font-weight:700;
	letter-spacing:.12em;text-transform:uppercase;padding:2px 9px;border-radius:3px;
}

/* ---------- stats ---------- */
.fw-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--fw-border);border:1px solid var(--fw-border);border-radius:var(--fw-r-lg);overflow:hidden;}
.fw-stat{background:var(--fw-surface);padding:24px 18px;text-align:center;}
.fw-stat__n{font-size:clamp(1.6rem,3.6vw,2.3rem);font-weight:800;color:var(--fw-accent);line-height:1;display:block;}
.fw-stat__l{font-size:.7rem;color:var(--fw-dim);letter-spacing:.12em;text-transform:uppercase;margin-top:10px;display:block;}

/* ---------- process rail ---------- */
.fw-rail{position:relative;padding-left:34px;}
.fw-rail::before{content:'';position:absolute;left:9px;top:6px;bottom:6px;width:2px;background:var(--fw-border);}
.fw-rail__fill{position:absolute;left:9px;top:6px;width:2px;background:var(--fw-accent);height:0;transition:height .18s linear;}
.fw-step{position:relative;padding-bottom:30px;}
.fw-step:last-child{padding-bottom:0;}
.fw-step::before{
	content:'';position:absolute;left:-30px;top:7px;width:12px;height:12px;border-radius:50%;
	background:var(--fw-bg);border:2px solid var(--fw-border);transition:border-color .25s ease,box-shadow .25s ease;
}
.fw-step.is-on::before{border-color:var(--fw-accent);box-shadow:0 0 0 5px var(--fw-accent-glow);}
.fw-step__t{font-size:.95rem;font-weight:700;color:var(--fw-head);margin:0 0 5px;}
.fw-step__d{font-size:.84rem;color:var(--fw-dim);margin:0;}

/* ---------- marquee ---------- */
.fw-marquee{overflow:hidden;border-block:1px solid var(--fw-border);padding:16px 0;
	-webkit-mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent);
	mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent);}
.fw-marquee__track{display:flex;gap:38px;width:max-content;animation:fw-slide 34s linear infinite;}
.fw-marquee span{font-size:.8rem;color:var(--fw-dim);letter-spacing:.1em;text-transform:uppercase;white-space:nowrap;}
.fw-marquee span::before{content:'▪ ';color:var(--fw-accent-dim);}
.fw-marquee:hover .fw-marquee__track{animation-play-state:paused;}
@keyframes fw-slide{to{transform:translateX(-50%);}}

/* ---------- flow line (hero signature) ---------- */
.fw-flow{width:100%;height:auto;display:block;overflow:visible;}
.fw-flow path{fill:none;stroke:var(--fw-accent-dim);stroke-width:1.5;stroke-dasharray:var(--len);stroke-dashoffset:var(--len);}
.fw-flow.is-on path{animation:fw-draw 1.5s cubic-bezier(.6,.02,.2,1) forwards;}
.fw-flow circle{fill:var(--fw-bg);stroke:var(--fw-border-lit);stroke-width:1.5;opacity:0;}
.fw-flow.is-on circle{animation:fw-pop .4s ease forwards;}
.fw-flow text{fill:var(--fw-dim);font-family:var(--fw-mono);font-size:11px;letter-spacing:.06em;opacity:0;}
.fw-flow.is-on text{animation:fw-pop .4s ease forwards;}
@keyframes fw-draw{to{stroke-dashoffset:0;}}
@keyframes fw-pop{to{opacity:1;}}

/* ---------- accordion ---------- */
.fw-acc{border:1px solid var(--fw-border);border-radius:var(--fw-r-lg);overflow:hidden;background:var(--fw-surface);}
.fw-acc__item+.fw-acc__item{border-top:1px solid var(--fw-border);}
.fw-acc__btn{
	all:unset;box-sizing:border-box;display:flex;justify-content:space-between;align-items:center;gap:16px;
	width:100%;padding:17px 20px;cursor:pointer;font-family:var(--fw-mono);
	font-size:.88rem;font-weight:600;color:var(--fw-head);
}
.fw-acc__btn:hover{background:var(--fw-surface-2);}
.fw-acc__btn:focus-visible{outline:2px solid var(--fw-accent);outline-offset:-2px;}
.fw-acc__btn i{font-style:normal;color:var(--fw-accent);flex:0 0 auto;transition:transform .2s ease;}
.fw-acc__btn[aria-expanded="true"] i{transform:rotate(45deg);}
.fw-acc__panel{display:none;padding:0 20px 18px;font-size:.85rem;color:var(--fw-dim);line-height:1.85;}
.fw-acc__panel.is-open{display:block;}

/* ---------- calculator ---------- */
.fw-calc{background:var(--fw-surface);border:1px solid var(--fw-border);border-radius:var(--fw-r-lg);padding:26px 24px;}
.fw-calc__row{margin-bottom:20px;}
.fw-calc__row label{display:flex;justify-content:space-between;font-size:.78rem;color:var(--fw-dim);margin-bottom:9px;letter-spacing:.04em;}
.fw-calc__row label b{color:var(--fw-accent);font-weight:600;}
.fw-calc input[type=range]{width:100%;-webkit-appearance:none;appearance:none;background:transparent;height:22px;}
.fw-calc input[type=range]::-webkit-slider-runnable-track{height:3px;background:var(--fw-border-lit);border-radius:2px;}
.fw-calc input[type=range]::-moz-range-track{height:3px;background:var(--fw-border-lit);border-radius:2px;}
.fw-calc input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:15px;height:15px;border-radius:50%;background:var(--fw-accent);margin-top:-6px;border:0;cursor:pointer;}
.fw-calc input[type=range]::-moz-range-thumb{width:15px;height:15px;border-radius:50%;background:var(--fw-accent);border:0;cursor:pointer;}
.fw-calc input[type=range]:focus-visible{outline:2px solid var(--fw-accent);outline-offset:4px;}
.fw-calc__out{border-top:1px dashed var(--fw-border);margin-top:24px;padding-top:20px;display:grid;grid-template-columns:1fr 1fr;gap:16px;}
.fw-calc__out div span{display:block;font-size:.7rem;color:var(--fw-dim);letter-spacing:.12em;text-transform:uppercase;margin-bottom:7px;}
.fw-calc__out div b{font-size:1.5rem;color:var(--fw-accent);font-weight:800;}

/* ---------- pricing ---------- */
.fw-price{font-size:2rem;font-weight:800;color:var(--fw-head);display:block;margin:4px 0 2px;}
.fw-price small{font-size:.72rem;color:var(--fw-dim);font-weight:400;letter-spacing:.06em;}

/* ---------- contact form ---------- */
.fw-form{display:grid;gap:14px;}
.fw-field label{display:block;font-size:.74rem;color:var(--fw-dim);letter-spacing:.1em;text-transform:uppercase;margin-bottom:7px;}
.fw-field input,.fw-field textarea,.fw-field select{
	width:100%;background:var(--fw-bg);border:1px solid var(--fw-border);border-radius:var(--fw-r);
	padding:12px 13px;color:var(--fw-text);font-family:var(--fw-mono);font-size:.88rem;
}
.fw-field input:focus,.fw-field textarea:focus,.fw-field select:focus{outline:none;border-color:var(--fw-accent-dim);box-shadow:0 0 0 3px var(--fw-accent-glow);}
.fw-field textarea{min-height:130px;resize:vertical;}

/* ---------- legal pages ---------- */
.fw-legal{max-width:820px;}
.fw-legal h2{font-size:1.12rem;margin:38px 0 12px;padding-bottom:9px;border-bottom:1px solid var(--fw-border);}
.fw-legal h2::before{content:'// ';color:var(--fw-accent-dim);font-weight:400;}
.fw-legal h3{font-size:.95rem;margin:22px 0 8px;color:var(--fw-text);}
.fw-legal p,.fw-legal li{font-size:.87rem;line-height:1.9;}
.fw-legal ul{padding-left:20px;}
.fw-legal li{margin-bottom:6px;}
.fw-legal .fw-meta{font-size:.76rem;color:var(--fw-dim);border:1px solid var(--fw-border);border-radius:var(--fw-r);padding:14px 16px;background:var(--fw-surface);}
.fw-legal .fw-meta b{color:var(--fw-text);font-weight:600;}

/* ---------- footer ---------- */
.fw-footer{background:var(--fw-surface);border-top:1px solid var(--fw-border);padding:56px 0 26px;margin-top:var(--fw-sec);font-family:var(--fw-mono);}
.fw-footer__grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:34px;}
.fw-footer__brand>b{font-size:1.05rem;color:var(--fw-head);letter-spacing:-.02em;display:block;margin-bottom:12px;}
.fw-footer__brand>b::before{content:'>_ ';color:var(--fw-accent);}
.fw-footer__desc{font-size:.83rem;color:var(--fw-dim);line-height:1.85;margin:0 0 16px;max-width:44ch;}
.fw-footer__addr{font-size:.78rem;color:var(--fw-dim);font-style:normal;line-height:1.8;}
.fw-footer__addr b{display:block;color:var(--fw-text);font-size:.8rem;margin-bottom:4px;}
.fw-footer h4{font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;color:var(--fw-dim);margin:0 0 14px;font-weight:500;}
.fw-footer h4::before{content:'// ';color:var(--fw-accent-dim);}
.fw-footer ul{list-style:none;margin:0;padding:0;}
.fw-footer li{margin-bottom:8px;}
.fw-footer li a{font-size:.83rem;color:var(--fw-text);}
.fw-footer li a:hover{color:var(--fw-accent);text-decoration:none;}
.fw-footer__bar{
	border-top:1px solid var(--fw-border);margin-top:38px;padding-top:20px;
	display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;
	font-size:.75rem;color:var(--fw-dim);
}
.fw-footer__bar .fw-built{color:var(--fw-dim);}
.fw-footer__bar .fw-built b{color:var(--fw-accent);font-weight:600;}

/* ---------- reveal ---------- */
/* Only hide when JS is live (html.fw-js). Without JS the content stays visible. */
.fw-js .fw-rv{opacity:0;transform:translateY(18px);transition:opacity .6s ease,transform .6s cubic-bezier(.2,.7,.3,1);}
.fw-js .fw-rv.is-in{opacity:1;transform:none;}
.fw-js .fw-rv-stagger>*{opacity:0;transform:translateY(16px);transition:opacity .55s ease,transform .55s cubic-bezier(.2,.7,.3,1);}
.fw-js .fw-rv-stagger.is-in>*{opacity:1;transform:none;}
.fw-rv-stagger.is-in>*:nth-child(2){transition-delay:.07s;}
.fw-rv-stagger.is-in>*:nth-child(3){transition-delay:.14s;}
.fw-rv-stagger.is-in>*:nth-child(4){transition-delay:.21s;}
.fw-rv-stagger.is-in>*:nth-child(5){transition-delay:.28s;}
.fw-rv-stagger.is-in>*:nth-child(6){transition-delay:.35s;}

/* ---------- responsive ---------- */
@media(max-width:1000px){
	.fw-grid--4{grid-template-columns:repeat(2,1fr);}
	.fw-stats{grid-template-columns:repeat(2,1fr);}
	.fw-footer__grid{grid-template-columns:1fr 1fr;}
	.fw-footer__brand{grid-column:1/-1;}
}
@media(max-width:760px){
	.fw-grid--2,.fw-grid--3{grid-template-columns:1fr;}
	.fw-calc__out{grid-template-columns:1fr;}
	.fw-term__body{font-size:.78rem;padding:18px 15px;}
}
@media(max-width:520px){
	.fw-grid--4{grid-template-columns:1fr;}
	.fw-footer__grid{grid-template-columns:1fr;}
	.fw-footer__bar{flex-direction:column;}
}

/* ---------- a11y floor ---------- */
body.fw-site :focus-visible{outline:2px solid var(--fw-accent);outline-offset:3px;}
@media(prefers-reduced-motion:reduce){
	body.fw-site *,body.fw-site *::before,body.fw-site *::after{
		animation-duration:.001ms !important;animation-iteration-count:1 !important;transition-duration:.001ms !important;
	}
	.fw-rv,.fw-rv-stagger>*{opacity:1 !important;transform:none !important;}
	.fw-flow path{stroke-dashoffset:0 !important;}
	.fw-flow circle,.fw-flow text{opacity:1 !important;}
}

/* =========================================================
   SITE CHROME — header + footer rendered as Elementor templates
   ========================================================= */

.fw-hdr{
	position:sticky;top:0;z-index:999;
	background:rgba(10,13,18,.86);
	backdrop-filter:saturate(140%) blur(10px);
	-webkit-backdrop-filter:saturate(140%) blur(10px);
	border-bottom:1px solid var(--fw-border);
}
.fw-hdr__in{
	max-width:var(--fw-max);margin-inline:auto;padding-inline:var(--fw-gut);
	display:flex;align-items:center;gap:26px;height:66px;
}
body.fw-site a.fw-hdr__brand{
	font-family:var(--fw-mono);font-size:1.02rem;font-weight:700;color:var(--fw-head);
	letter-spacing:-.02em;text-decoration:none;flex:0 0 auto;
}
.fw-hdr__brand::before{content:'>_ ';color:var(--fw-accent);}
.fw-hdr__nav{display:flex;align-items:center;gap:22px;margin-left:auto;}
body.fw-site a.fw-hdr__link{
	font-family:var(--fw-mono);font-size:.83rem;font-weight:500;color:var(--fw-text);
	text-decoration:none;padding:6px 0;position:relative;white-space:nowrap;
}
body.fw-site a.fw-hdr__link:hover{color:var(--fw-accent);}
.fw-hdr__link::after{
	content:'';position:absolute;left:0;right:0;bottom:0;height:1px;
	background:var(--fw-accent);transform:scaleX(0);transform-origin:left;transition:transform .2s ease;
}
.fw-hdr__link:hover::after,.fw-hdr__link[aria-current="page"]::after{transform:scaleX(1);}
.fw-hdr__link[aria-current="page"]{color:var(--fw-accent);}
.fw-hdr .fw-btn{padding:.6em 1.1em;font-size:.78rem;}

.fw-hdr__burger{
	all:unset;box-sizing:border-box;display:none;margin-left:auto;cursor:pointer;
	width:40px;height:36px;border:1px solid var(--fw-border);border-radius:var(--fw-r);
	align-items:center;justify-content:center;flex-direction:column;gap:4px;
}
.fw-hdr__burger:focus-visible{outline:2px solid var(--fw-accent);outline-offset:2px;}
.fw-hdr__burger i{display:block;width:16px;height:1.5px;background:var(--fw-text);transition:transform .22s ease,opacity .22s ease;}
.fw-hdr__burger[aria-expanded="true"] i:nth-child(1){transform:translateY(5.5px) rotate(45deg);}
.fw-hdr__burger[aria-expanded="true"] i:nth-child(2){opacity:0;}
.fw-hdr__burger[aria-expanded="true"] i:nth-child(3){transform:translateY(-5.5px) rotate(-45deg);}

@media(max-width:900px){
	.fw-hdr__burger{display:flex;}
	.fw-hdr__nav{
		position:absolute;left:0;right:0;top:100%;
		flex-direction:column;align-items:stretch;gap:0;margin:0;
		background:var(--fw-surface);border-bottom:1px solid var(--fw-border);
		padding:8px 0;display:none;
	}
	.fw-hdr__nav.is-open{display:flex;}
	body.fw-site a.fw-hdr__link{padding:13px var(--fw-gut);font-size:.9rem;}
	.fw-hdr__link::after{display:none;}
	.fw-hdr__nav .fw-btn{margin:10px var(--fw-gut) 6px;justify-content:center;}
}

/* footer contact block */
.fw-footer__addr a{color:var(--fw-text);}
.fw-footer__addr a:hover{color:var(--fw-accent);}
.fw-footer__tel{color:var(--fw-accent);font-weight:600;}
