/* ============================================================
   Diktiosou — Mobile App Development Funnel
   Φορτώνεται ΜΟΝΟ στο apps.html. Χτίζει πάνω στα ίδια design tokens
   του style.css (--grad, --line, --mut, --ease, .btn, .glass, .reveal).
   ============================================================ */

/* ---------- shared layout helpers ---------- */
.fn-sec{padding:clamp(4rem,9vw,7.5rem) clamp(1rem,4vw,2.6rem);max-width:var(--max);margin:0 auto;position:relative}
.fn-sec--wide{max-width:none}
.fn-sec__head{max-width:74ch;margin:0 auto 3rem;text-align:center}
.fn-sec__head--left{margin-left:0;text-align:left}
.fn-sec__head h2{margin-bottom:1rem}
.fn-sec__head .lead{margin-inline:auto}
.fn-sec__head--left .lead{margin-inline:0}

.fn-kicker{font-family:'Space Grotesk',sans-serif;font-size:.74rem;letter-spacing:.26em;
  text-transform:uppercase;color:var(--cyan);margin:0 0 1rem;font-weight:500}

/* ============================================================
   HERO
   ============================================================ */
.fn-hero{position:relative;overflow:hidden;padding:clamp(7rem,14vw,10rem) clamp(1rem,4vw,2.6rem) clamp(3.5rem,7vw,5.5rem)}
.fn-hero__grid{max-width:var(--max);margin:0 auto;display:grid;grid-template-columns:1.12fr .88fr;
  gap:clamp(2rem,5vw,3.5rem);align-items:center}
.fn-hero h1{font-size:clamp(1.95rem,3.5vw,3.1rem);letter-spacing:-.03em;margin-bottom:1.1rem;max-width:17ch}
.fn-hero__sub{color:#c3cbdd;font-size:1.06rem;max-width:56ch}
.fn-hero__sub strong{color:var(--txt);font-weight:700}
.fn-hero__lede{color:var(--mut);font-size:1rem;max-width:56ch}
.fn-hero__cta{display:flex;gap:.8rem;flex-wrap:wrap;margin:2rem 0 1.6rem}
.fn-hero__note{font-size:.84rem;color:var(--mut);display:flex;align-items:center;gap:.5rem;margin:0}
.fn-hero__note b{color:var(--txt);font-weight:700}

.fn-ticks{list-style:none;padding:0;margin:1.8rem 0 0;display:flex;flex-wrap:wrap;gap:.5rem .9rem}
.fn-ticks li{font-size:.85rem;color:var(--mut);display:flex;align-items:center;gap:.45rem}
.fn-ticks li::before{content:"";width:16px;height:16px;flex:0 0 16px;border-radius:50%;
  background:var(--grad);opacity:.9;
  -webkit-mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M20 6L9 17l-5-5' fill='none' stroke='black' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'/></svg>") center/12px no-repeat;
  mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M20 6L9 17l-5-5' fill='none' stroke='black' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'/></svg>") center/12px no-repeat}

/* ---------- device mockups (pure CSS, χωρίς εικόνες) ---------- */
.fn-devices{position:relative;display:grid;place-items:center;min-height:clamp(340px,40vw,500px);perspective:1600px}
.fn-devices::before{content:"";position:absolute;width:78%;aspect-ratio:1;border-radius:50%;
  background:radial-gradient(circle,color-mix(in srgb,var(--violet) 34%,transparent),transparent 62%);
  filter:blur(50px);opacity:.7}

.fn-phone{position:relative;border-radius:42px;background:linear-gradient(160deg,#20263a,#0a0e1a 60%);
  padding:9px;box-shadow:0 60px 110px -45px rgba(0,0,0,.95),0 0 0 1px rgba(255,255,255,.10),
  inset 0 1px 0 rgba(255,255,255,.22)}
.fn-phone__screen{position:relative;border-radius:34px;overflow:hidden;background:#070b16;
  width:100%;height:100%;display:block}
.fn-phone--ios{width:clamp(186px,17.5vw,222px);aspect-ratio:9/19.5;z-index:2;
  transform:rotateY(-13deg) rotateX(5deg) translateZ(40px)}
.fn-phone--android{width:clamp(126px,12vw,152px);aspect-ratio:9/19;position:absolute;
  right:4%;bottom:8%;z-index:1;border-radius:32px;
  transform:rotateY(-13deg) rotateX(5deg) translateZ(-40px) translateY(6%)}
.fn-phone--android .fn-phone__screen{border-radius:25px}
.fn-devices.is-float .fn-phone--ios{animation:fnBob 9s ease-in-out infinite}
.fn-devices.is-float .fn-phone--android{animation:fnBob 9s ease-in-out -3s infinite}
@keyframes fnBob{50%{transform:rotateY(-13deg) rotateX(5deg) translateZ(40px) translateY(-16px)}}
.fn-devices.is-float .fn-phone--android{animation-name:fnBobB}
@keyframes fnBobB{50%{transform:rotateY(-13deg) rotateX(5deg) translateZ(-40px) translateY(calc(6% - 12px))}}

.fn-phone__island{position:absolute;top:9px;left:50%;transform:translateX(-50%);z-index:6;
  width:32%;height:18px;border-radius:100px;background:#04060d}
.fn-phone--android .fn-phone__island{width:8px;height:8px;top:8px}

/* οθόνες που εναλλάσσονται */
.fn-screen{position:absolute;inset:0;padding:34px 14px 14px;display:flex;flex-direction:column;gap:9px;
  background:linear-gradient(175deg,rgba(56,189,248,.12),rgba(8,12,24,.98) 42%);
  opacity:0;transform:translateY(10px) scale(.99);
  transition:opacity .8s var(--ease),transform .8s var(--ease)}
.fn-screen.is-on{opacity:1;transform:none}
.fn-phone--android .fn-screen{padding:22px 11px 11px}

.fn-screen__top{display:flex;align-items:center;justify-content:space-between;margin-bottom:2px}
.fn-screen__title{font-family:'Space Grotesk',sans-serif;font-size:.72rem;letter-spacing:.02em;color:var(--txt)}
.fn-screen__dot{width:20px;height:20px;border-radius:50%;background:var(--grad);opacity:.9}
.fn-phone--android .fn-screen__title{font-size:.6rem}

.fn-sk{border-radius:9px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.07)}
.fn-sk--hero{height:34%;background:linear-gradient(140deg,color-mix(in srgb,var(--cyan) 34%,transparent),
  color-mix(in srgb,var(--violet) 30%,transparent));border:0}
.fn-sk--row{height:12%}
.fn-sk--line{height:7px;width:62%;border-radius:100px}
.fn-sk--line.s{width:38%}
.fn-sk--grid{flex:1;display:grid;grid-template-columns:1fr 1fr;gap:8px;background:none;border:0}
.fn-sk--grid i{border-radius:9px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.07)}
.fn-sk--grid i:nth-child(1){background:linear-gradient(140deg,color-mix(in srgb,var(--cyan) 26%,transparent),transparent)}
.fn-sk--grid i:nth-child(4){background:linear-gradient(140deg,color-mix(in srgb,var(--pink) 22%,transparent),transparent)}
.fn-sk--bar{height:34px;border-radius:100px;background:var(--grad);opacity:.92;margin-top:auto}
.fn-sk--tabs{height:36px;border-radius:12px;display:flex;gap:6px;padding:5px;background:rgba(255,255,255,.05);
  border:1px solid rgba(255,255,255,.07);margin-top:auto}
.fn-sk--tabs i{flex:1;border-radius:8px;background:rgba(255,255,255,.10)}
.fn-sk--tabs i:first-child{background:var(--grad)}

/* κουκκίδες εναλλαγής οθονών */
.fn-devices__dots{position:absolute;bottom:-6px;left:50%;transform:translateX(-50%);display:flex;gap:.4rem;z-index:5}
.fn-devices__dots i{width:6px;height:6px;border-radius:50%;background:rgba(255,255,255,.2);transition:background .4s,width .4s}
.fn-devices__dots i.is-on{width:20px;border-radius:100px;background:var(--grad)}

/* κάρτα «push notification» που πετάει πάνω από το κινητό */
.fn-push{position:absolute;left:-6%;top:16%;z-index:5;width:min(240px,64%);
  border:1px solid var(--line);border-radius:18px;padding:.7rem .85rem;
  background:linear-gradient(160deg,rgba(255,255,255,.14),rgba(255,255,255,.04)),rgba(8,12,24,.9);
  backdrop-filter:blur(18px) saturate(160%);-webkit-backdrop-filter:blur(18px) saturate(160%);
  box-shadow:0 30px 60px -30px rgba(0,0,0,.95);
  display:flex;gap:.6rem;align-items:flex-start;animation:fnPush 9s var(--ease) infinite}
.fn-push i{flex:0 0 26px;height:26px;border-radius:8px;background:var(--grad)}
.fn-push b{display:block;font-family:'Space Grotesk',sans-serif;font-size:.76rem;color:var(--txt)}
.fn-push span{font-size:.72rem;color:var(--mut);line-height:1.4}
@keyframes fnPush{0%,8%{opacity:0;transform:translateY(-14px) scale(.96)}
  16%,46%{opacity:1;transform:none}56%,100%{opacity:0;transform:translateY(-10px) scale(.98)}}

/* ============================================================
   PAIN POINTS
   ============================================================ */
.fn-pains{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}
.fn-pain{border:1px solid var(--line);border-radius:22px;padding:1.4rem 1.5rem;
  background:linear-gradient(180deg,rgba(255,255,255,.05),rgba(255,255,255,.014));
  transition:border-color .4s var(--ease),transform .4s var(--ease)}
.fn-pain:hover{border-color:color-mix(in srgb,var(--cyan) 40%,transparent);transform:translateY(-4px)}
.fn-pain b{display:block;font-family:'Space Grotesk',sans-serif;font-size:1rem;margin-bottom:.4rem}
.fn-pain p{color:var(--mut);font-size:.92rem;margin:0}
.fn-pain__x{width:26px;height:26px;border-radius:9px;display:grid;place-items:center;margin-bottom:.9rem;
  background:rgba(255,154,154,.12);border:1px solid rgba(255,154,154,.28);color:#ff9a9a;
  font-family:'Space Grotesk',sans-serif;font-size:.85rem}
.fn-turn{margin-top:2.4rem;text-align:center;border:1px solid var(--line);border-radius:26px;
  padding:2rem 1.6rem;background:linear-gradient(160deg,rgba(255,255,255,.07),rgba(255,255,255,.02))}
.fn-turn p{font-family:'Space Grotesk',sans-serif;font-size:clamp(1.15rem,2.4vw,1.7rem);
  line-height:1.35;margin:0 auto;max-width:34ch;color:var(--txt)}

/* ============================================================
   WHAT WE BUILD
   ============================================================ */
.fn-types{display:grid;grid-template-columns:repeat(3,1fr);gap:1.1rem}
.fn-type{position:relative;border:1px solid var(--line);border-radius:26px;padding:1.6rem 1.6rem 1.7rem;
  background:linear-gradient(180deg,rgba(255,255,255,.055),rgba(255,255,255,.015));overflow:hidden;
  transition:transform .5s var(--ease),border-color .4s,box-shadow .5s var(--ease)}
.fn-type::after{content:"";position:absolute;inset:auto -30% -60% auto;width:70%;aspect-ratio:1;border-radius:50%;
  background:radial-gradient(circle,color-mix(in srgb,var(--cyan) 22%,transparent),transparent 65%);
  opacity:0;transition:opacity .5s}
.fn-type:hover{transform:translateY(-6px);border-color:color-mix(in srgb,var(--cyan) 38%,transparent);
  box-shadow:0 40px 80px -45px rgba(0,0,0,.9)}
.fn-type:hover::after{opacity:1}
.fn-type__ico{width:44px;height:44px;border-radius:14px;display:grid;place-items:center;margin-bottom:1rem;
  border:1px solid var(--line);background:rgba(255,255,255,.05);position:relative;z-index:1}
.fn-type__ico svg{width:22px;height:22px;fill:none;stroke:url(#fnGrad);stroke-width:1.7;
  stroke-linecap:round;stroke-linejoin:round}
.fn-type h3{font-size:1.15rem;margin-bottom:.5rem;position:relative;z-index:1}
.fn-type>p{color:var(--mut);font-size:.9rem;position:relative;z-index:1;margin-bottom:.9rem}
.fn-type ul{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:.4rem;position:relative;z-index:1}
.fn-type ul li{font-size:.74rem;color:var(--mut);border:1px solid var(--line);border-radius:100px;
  padding:.28rem .65rem;background:rgba(255,255,255,.03)}

/* ============================================================
   ΤΙ ΠΕΡΙΛΑΜΒΑΝΕΙ — επεξηγηματικό grid
   ============================================================ */
.fn-inc{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(3,1fr);gap:1px;
  background:var(--line);border:1px solid var(--line);border-radius:26px;overflow:hidden}
.fn-inc li{background:rgba(8,12,24,.72);padding:1.25rem 1.3rem;
  backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);transition:background .35s}
.fn-inc li:hover{background:rgba(255,255,255,.06)}
.fn-inc b{display:flex;align-items:center;gap:.55rem;font-family:'Space Grotesk',sans-serif;
  font-size:.98rem;color:var(--txt);margin-bottom:.35rem}
.fn-inc b::before{content:"";flex:0 0 18px;width:18px;height:18px;border-radius:50%;background:var(--grad);
  -webkit-mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M20 6L9 17l-5-5' fill='none' stroke='black' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/></svg>") center/13px no-repeat;
  mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M20 6L9 17l-5-5' fill='none' stroke='black' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/></svg>") center/13px no-repeat}
.fn-inc span{display:block;color:var(--mut);font-size:.85rem;line-height:1.5;padding-left:1.55rem}

/* ============================================================
   ROI / VALUE
   ============================================================ */
.fn-value{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,5vw,4rem);align-items:center}
.fn-value__list{list-style:none;padding:0;margin:1.8rem 0 0;display:grid;gap:.75rem}
.fn-value__list li{border-left:2px solid color-mix(in srgb,var(--violet) 55%,transparent);padding-left:1rem}
.fn-value__list b{display:block;font-family:'Space Grotesk',sans-serif;font-size:.98rem}
.fn-value__list span{color:var(--mut);font-size:.9rem}

.fn-dash{border:1px solid var(--line);border-radius:26px;overflow:hidden;background:rgba(9,12,26,.9);
  box-shadow:0 50px 100px -45px rgba(0,0,0,.9);
  backdrop-filter:blur(22px) saturate(165%);-webkit-backdrop-filter:blur(22px) saturate(165%)}
.fn-dash__bar{display:flex;align-items:center;gap:.4rem;padding:.7rem .9rem;border-bottom:1px solid var(--line);
  background:rgba(255,255,255,.03)}
.fn-dash__bar i{width:9px;height:9px;border-radius:50%;background:#2b3350}
.fn-dash__bar span{margin-left:.7rem;font-family:'Space Grotesk',sans-serif;font-size:.78rem;color:var(--mut)}
.fn-dash__body{padding:1.2rem}
.fn-dash__kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:.7rem;margin-bottom:1rem}
.fn-dash__kpis div{border:1px solid var(--line);border-radius:14px;padding:.75rem .85rem;background:rgba(255,255,255,.02)}
.fn-dash__kpis small{display:block;font-size:.68rem;color:var(--mut);letter-spacing:.05em}
.fn-dash__kpis b{font-family:'Space Grotesk',sans-serif;font-size:1.2rem}
.fn-dash__chart{display:flex;align-items:flex-end;gap:.4rem;height:120px;padding:.6rem;
  border:1px solid var(--line);border-radius:14px;background:rgba(255,255,255,.02)}
.fn-dash__chart i{flex:1;height:var(--h);border-radius:5px 5px 2px 2px;background:var(--grad);opacity:.85;
  transform-origin:bottom;animation:grow 1.4s var(--ease) both}
.fn-dash__note{font-size:.74rem;color:var(--mut);margin:.9rem 0 0;text-align:center}

/* ============================================================
   TRUST
   ============================================================ */
.fn-trust__line{font-family:'Space Grotesk',sans-serif;font-size:clamp(1.1rem,2.2vw,1.5rem);
  text-align:center;color:var(--txt);margin:0 auto 2.6rem;max-width:32ch}
.fn-proof{display:grid;grid-template-columns:repeat(3,1fr);gap:1.1rem}
.fn-proof__item{border:1px solid var(--line);border-radius:26px;padding:1.5rem;
  background:linear-gradient(180deg,rgba(255,255,255,.05),rgba(255,255,255,.014));
  transition:border-color .4s,transform .4s var(--ease)}
.fn-proof__item:hover{border-color:color-mix(in srgb,var(--cyan) 38%,transparent);transform:translateY(-5px)}
.fn-proof__tag{font-family:'Space Grotesk',sans-serif;font-size:.68rem;letter-spacing:.16em;
  text-transform:uppercase;color:var(--cyan);display:inline-block;margin-bottom:.7rem}
.fn-proof__item h3{font-size:1.1rem;margin-bottom:.5rem}
.fn-proof__item p{color:var(--mut);font-size:.9rem;margin:0}
.fn-proof__item .link{display:inline-block;margin-top:.9rem;font-size:.88rem}

/* ============================================================
   PRICING
   ============================================================ */
.fn-plans{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem;align-items:start}
.fn-plan{position:relative;border:1px solid var(--line);border-radius:28px;padding:1.9rem 1.7rem 2rem;
  background:linear-gradient(180deg,rgba(255,255,255,.055),rgba(255,255,255,.015));
  display:flex;flex-direction:column;
  transition:transform .5s var(--ease),border-color .4s,box-shadow .5s var(--ease)}
.fn-plan:hover{transform:translateY(-6px);box-shadow:0 45px 90px -50px rgba(0,0,0,.95)}
.fn-plan__name{font-family:'Space Grotesk',sans-serif;font-size:.78rem;letter-spacing:.22em;
  text-transform:uppercase;color:var(--cyan)}
.fn-plan__for{color:var(--mut);font-size:.88rem;margin:.5rem 0 1.3rem}
/* μέγεθος + χρόνος αντί για τιμή */
.fn-plan__meta{display:grid;grid-template-columns:1fr 1fr;gap:.6rem;margin:0 0 1.2rem}
.fn-plan__meta div{border:1px solid var(--line);border-radius:14px;padding:.7rem .8rem;
  background:rgba(255,255,255,.03)}
.fn-plan__meta small{display:block;font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;
  color:var(--mut);margin-bottom:.2rem}
.fn-plan__meta b{font-family:'Space Grotesk',sans-serif;font-size:.94rem;
  background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.fn-plan__what{font-size:.88rem;color:var(--mut);line-height:1.6;margin:0 0 1.4rem;
  border-left:2px solid color-mix(in srgb,var(--cyan) 45%,transparent);padding-left:.9rem}
.fn-plan__what b{color:var(--txt);font-weight:700}
.fn-plan__feats{list-style:none;padding:0;margin:0 0 1.8rem;display:grid;gap:.55rem}
.fn-plan__feats li{font-size:.9rem;color:var(--mut);display:flex;gap:.55rem;align-items:flex-start;line-height:1.5}
.fn-plan__feats li::before{content:"";flex:0 0 16px;width:16px;height:16px;margin-top:.22rem;border-radius:50%;
  background:var(--grad);opacity:.85;
  -webkit-mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M20 6L9 17l-5-5' fill='none' stroke='black' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'/></svg>") center/12px no-repeat;
  mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M20 6L9 17l-5-5' fill='none' stroke='black' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'/></svg>") center/12px no-repeat}
.fn-plan .btn{margin-top:auto;justify-content:center;width:100%}

.fn-plan--hot{border-color:color-mix(in srgb,var(--cyan) 45%,transparent);
  background:linear-gradient(180deg,color-mix(in srgb,var(--violet) 16%,transparent),rgba(255,255,255,.02));
  box-shadow:0 45px 95px -50px color-mix(in srgb,var(--violet) 85%,transparent);
  transform:translateY(-14px)}
.fn-plan--hot:hover{transform:translateY(-20px)}
.fn-plan__badge{position:absolute;top:-13px;left:50%;transform:translateX(-50%);white-space:nowrap;
  font-family:'Space Grotesk',sans-serif;font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;
  padding:.42rem .95rem;border-radius:100px;color:#04060e;background:var(--grad);
  box-shadow:0 12px 26px -10px color-mix(in srgb,var(--cyan) 90%,transparent)}
.fn-plans__foot{text-align:center;color:var(--mut);font-size:.86rem;margin:2.4rem auto 0;max-width:62ch}

/* ============================================================
   PROCESS TIMELINE
   ============================================================ */
.fn-flow{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:.5rem .9rem;
  margin:0 0 3rem;padding:0;list-style:none}
.fn-flow li{font-family:'Space Grotesk',sans-serif;font-size:.8rem;letter-spacing:.12em;text-transform:uppercase;
  color:var(--mut);border:1px solid var(--line);border-radius:100px;padding:.45rem 1rem;
  background:rgba(255,255,255,.03)}
.fn-flow li:last-child{color:var(--txt);border-color:color-mix(in srgb,var(--cyan) 45%,transparent)}
.fn-flow span{color:var(--cyan)}

.fn-steps{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem}
.fn-steps li{border-top:1px solid var(--line);padding-top:1.3rem;position:relative}
.fn-steps li::after{content:"";position:absolute;top:-1px;left:0;width:0;height:1px;background:var(--grad);
  transition:width 1s var(--ease) .15s}
.fn-steps li.in::after{width:100%}
.fn-steps__n{font-family:'Space Grotesk',sans-serif;font-size:.78rem;letter-spacing:.24em;color:var(--cyan)}
.fn-steps h3{margin:.45rem 0 .5rem;font-size:1.12rem}
.fn-steps p{color:var(--mut);font-size:.9rem;margin:0 0 .7rem}
.fn-steps__out{font-size:.82rem;color:var(--txt);opacity:.9;margin:0!important;
  border-left:2px solid color-mix(in srgb,var(--cyan) 50%,transparent);padding-left:.8rem}

/* ============================================================
   ESTIMATOR
   ============================================================ */
.fn-est-wrap{border-block:1px solid var(--line);
  background:radial-gradient(80% 90% at 50% 0%,color-mix(in srgb,var(--cyan) 10%,transparent),transparent 60%),var(--bg2)}
.fn-est{max-width:920px;margin:0 auto;border:1px solid var(--line);border-radius:28px;overflow:hidden;
  background:linear-gradient(160deg,rgba(255,255,255,.09),rgba(255,255,255,.022));
  backdrop-filter:blur(22px) saturate(165%);-webkit-backdrop-filter:blur(22px) saturate(165%);
  box-shadow:0 50px 110px -55px rgba(0,0,0,.95)}
.fn-est__head{padding:1.1rem 1.5rem;border-bottom:1px solid var(--line);display:flex;align-items:center;
  gap:1rem;flex-wrap:wrap}
.fn-est__count{font-family:'Space Grotesk',sans-serif;font-size:.76rem;letter-spacing:.18em;color:var(--mut);
  text-transform:uppercase}
.fn-est__bar{flex:1;min-width:120px;height:4px;border-radius:100px;background:rgba(255,255,255,.10);overflow:hidden}
.fn-est__bar i{display:block;height:100%;width:0;background:var(--grad);transition:width .5s var(--ease)}
.fn-est__body{padding:clamp(1.5rem,4vw,2.4rem)}

.fn-q{border:0;padding:0;margin:0;min-width:0}
.fn-q[hidden]{display:none}
.fn-q legend{padding:0;font-family:'Space Grotesk',sans-serif;font-weight:700;
  font-size:clamp(1.2rem,2.4vw,1.6rem);line-height:1.25;margin-bottom:.4rem;color:var(--txt)}
.fn-q__hint{color:var(--mut);font-size:.88rem;margin:0 0 1.4rem}
.fn-opts{display:grid;grid-template-columns:repeat(4,1fr);gap:.7rem}
.fn-opts--2{grid-template-columns:repeat(2,1fr);max-width:460px}
.fn-opts--3{grid-template-columns:repeat(3,1fr);max-width:640px}
.fn-opt{position:relative;display:block;cursor:pointer}
/* Το radio μένει πραγματικό και εστιάσιμο (screen readers + πλήκτρα βέλη),
   απλώς είναι οπτικά κρυμμένο — δεν χρησιμοποιούμε opacity:0 γιατί κάποιοι
   a11y engines το θεωρούν κρυφό στοιχείο. */
.fn-opt input{position:absolute;width:1px;height:1px;margin:0;padding:0;border:0;overflow:hidden;
  white-space:nowrap;clip:rect(0 0 0 0);clip-path:inset(50%)}
.fn-opt span{display:flex;align-items:center;justify-content:center;text-align:center;min-height:58px;
  padding:.8rem .7rem;border:1px solid var(--line);border-radius:16px;font-size:.9rem;color:var(--mut);
  background:rgba(255,255,255,.03);transition:border-color .3s,color .3s,background .3s,transform .3s var(--ease)}
.fn-opt:hover span{color:var(--txt);border-color:color-mix(in srgb,var(--cyan) 40%,transparent);transform:translateY(-2px)}
.fn-opt input:focus-visible + span{outline:2px solid var(--cyan);outline-offset:3px}
.fn-opt input:focus + span{border-color:color-mix(in srgb,var(--cyan) 55%,transparent)}
.fn-opt input:checked + span{color:var(--txt);border-color:transparent;
  background:linear-gradient(160deg,color-mix(in srgb,var(--cyan) 26%,transparent),
    color-mix(in srgb,var(--violet) 24%,transparent));
  box-shadow:0 0 0 1px color-mix(in srgb,var(--cyan) 60%,transparent),
    0 14px 34px -18px color-mix(in srgb,var(--cyan) 90%,transparent)}

.fn-est__nav{display:flex;align-items:center;gap:.8rem;margin-top:1.8rem;flex-wrap:wrap}
.fn-est__back{background:none;border:0;cursor:pointer;color:var(--mut);font:inherit;font-size:.88rem;
  padding:.6rem .2rem;font-family:'Space Grotesk',sans-serif}
.fn-est__back:hover{color:var(--txt)}
.fn-est__back[hidden]{display:none}

/* αποτέλεσμα */
.fn-result{text-align:center}
.fn-result[hidden]{display:none}
.fn-result__label{color:var(--mut);font-size:.9rem;margin:0 0 .6rem}
.fn-result__tier{font-family:'Space Grotesk',sans-serif;font-size:clamp(1.6rem,4vw,2.4rem);line-height:1.15;
  background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent;margin:0 0 .8rem}
.fn-result__why{color:var(--mut);font-size:.95rem;line-height:1.65;max-width:56ch;margin:0 auto 1.8rem}

.fn-result__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.7rem;margin:0 0 1.6rem;text-align:left}
.fn-result__grid div{border:1px solid var(--line);border-radius:16px;padding:.85rem .95rem;
  background:rgba(255,255,255,.03)}
.fn-result__grid small{display:block;font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;
  color:var(--mut);margin-bottom:.25rem}
.fn-result__grid b{font-family:'Space Grotesk',sans-serif;font-size:.98rem;color:var(--txt)}

.fn-result__needs{text-align:left;border:1px solid var(--line);border-radius:18px;padding:1.1rem 1.2rem;
  background:rgba(255,255,255,.025);margin:0 0 1.6rem}
.fn-result__needs[hidden]{display:none}
.fn-result__needs-title{font-family:'Space Grotesk',sans-serif;font-size:.85rem;color:var(--txt);margin:0 0 .7rem}
.fn-result__needs ul{list-style:none;padding:0;margin:0;display:grid;gap:.5rem}
.fn-result__needs li{font-size:.88rem;color:var(--mut);display:flex;gap:.55rem;align-items:flex-start;line-height:1.5}
.fn-result__needs li::before{content:"";flex:0 0 16px;width:16px;height:16px;margin-top:.2rem;border-radius:50%;
  background:var(--grad);opacity:.85;
  -webkit-mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M12 5v14M5 12h14' fill='none' stroke='black' stroke-width='3' stroke-linecap='round'/></svg>") center/11px no-repeat;
  mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M12 5v14M5 12h14' fill='none' stroke='black' stroke-width='3' stroke-linecap='round'/></svg>") center/11px no-repeat}

.fn-result__disclaimer{color:var(--mut);font-size:.82rem;max-width:56ch;margin:.4rem auto 1.8rem;line-height:1.55}
.fn-result__summary{list-style:none;padding:0;margin:0 0 1.8rem;display:flex;flex-wrap:wrap;
  gap:.4rem;justify-content:center}
.fn-result__summary li{font-size:.75rem;color:var(--mut);border:1px solid var(--line);border-radius:100px;
  padding:.3rem .75rem;background:rgba(255,255,255,.03)}
.fn-result__acts{display:flex;gap:.7rem;justify-content:center;flex-wrap:wrap}

/* ============================================================
   LEAD FORM
   ============================================================ */
.fn-lead{max-width:820px;margin:0 auto}
.fn-form{display:grid;gap:1rem;text-align:left;margin-top:2.2rem}
.fn-form__row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.fn-form label{display:grid;gap:.4rem;font-size:.82rem;color:var(--mut);letter-spacing:.04em}
.fn-form input,.fn-form select,.fn-form textarea{
  font:inherit;font-size:.95rem;color:var(--txt);background:rgba(255,255,255,.04);
  border:1px solid var(--line);border-radius:14px;padding:.85rem 1rem;outline:none;width:100%;resize:vertical;
  backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);
  transition:border-color .3s,box-shadow .3s}
.fn-form input:focus,.fn-form select:focus,.fn-form textarea:focus{
  border-color:var(--cyan);box-shadow:0 0 0 3px color-mix(in srgb,var(--cyan) 18%,transparent)}
.fn-form select option{background:#0a0e1c}
.fn-form input[aria-invalid="true"],.fn-form select[aria-invalid="true"]{border-color:#ff9a9a}
.fn-form__consent{font-size:.8rem;color:var(--mut);line-height:1.6;margin:0}
.fn-form__consent a{color:var(--cyan);border-bottom:1px solid rgba(255,255,255,.18)}
.fn-form .btn{justify-self:start}
.fn-form__note{font-size:.88rem;color:#7dffc0;margin:0;min-height:1.3em}
.fn-form__note.err{color:#ff9a9a}
.fn-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}

/* ---------- success / qualification ---------- */
.fn-success{border:1px solid var(--line);border-radius:28px;padding:clamp(1.8rem,4vw,2.8rem);text-align:center;
  background:linear-gradient(160deg,rgba(255,255,255,.09),rgba(255,255,255,.022));
  backdrop-filter:blur(22px) saturate(165%);-webkit-backdrop-filter:blur(22px) saturate(165%);
  margin-top:2.2rem}
.fn-success[hidden]{display:none}
.fn-success__ico{width:64px;height:64px;border-radius:22px;margin:0 auto 1.3rem;display:grid;place-items:center;
  background:var(--grad);color:#04060e}
.fn-success__ico svg{width:30px;height:30px;fill:none;stroke:currentColor;stroke-width:2.6;
  stroke-linecap:round;stroke-linejoin:round}
.fn-success h2{font-size:clamp(1.6rem,3.4vw,2.3rem);margin-bottom:.9rem}
.fn-success p{color:var(--mut);max-width:56ch;margin:0 auto 1rem}
.fn-success__steps{list-style:none;padding:0;margin:1.8rem auto;display:grid;grid-template-columns:repeat(3,1fr);
  gap:.8rem;max-width:640px;text-align:left}
.fn-success__steps li{border:1px solid var(--line);border-radius:16px;padding:.9rem 1rem;
  background:rgba(255,255,255,.03);font-size:.85rem;color:var(--mut)}
.fn-success__steps b{display:block;font-family:'Space Grotesk',sans-serif;color:var(--txt);
  font-size:.8rem;letter-spacing:.14em;text-transform:uppercase;margin-bottom:.3rem;
  background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.fn-cal{margin-top:1.6rem}
.fn-cal iframe{width:100%;min-height:640px;border:0;border-radius:20px;background:rgba(255,255,255,.03)}
.fn-cal__fallback{display:grid;gap:.9rem;justify-items:center}

/* ============================================================
   FAQ
   ============================================================ */
.fn-faq{max-width:820px;margin:0 auto;display:grid;gap:.7rem}
.fn-faq details{border:1px solid var(--line);border-radius:20px;background:rgba(255,255,255,.03);
  overflow:hidden;transition:border-color .35s,background .35s}
.fn-faq details[open]{border-color:color-mix(in srgb,var(--cyan) 35%,transparent);background:rgba(255,255,255,.055)}
.fn-faq summary{cursor:pointer;list-style:none;padding:1.15rem 3.2rem 1.15rem 1.3rem;position:relative;
  font-family:'Space Grotesk',sans-serif;font-weight:700;font-size:1rem;color:var(--txt)}
.fn-faq summary::-webkit-details-marker{display:none}
.fn-faq summary:focus-visible{outline:2px solid var(--cyan);outline-offset:-3px;border-radius:20px}
.fn-faq summary::after{content:"";position:absolute;right:1.3rem;top:50%;width:12px;height:12px;
  margin-top:-6px;border-right:2px solid var(--cyan);border-bottom:2px solid var(--cyan);
  transform:rotate(45deg);transition:transform .35s var(--ease)}
.fn-faq details[open] summary::after{transform:rotate(-135deg)}
.fn-faq__a{padding:0 1.3rem 1.3rem;color:var(--mut);font-size:.93rem;margin:0}

/* ============================================================
   FINAL CTA
   ============================================================ */
.fn-final{border-top:1px solid var(--line);text-align:center;position:relative;overflow:hidden;
  background:radial-gradient(70% 90% at 50% 0%,color-mix(in srgb,var(--violet) 20%,transparent),transparent 62%)}
.fn-final h2{font-size:clamp(1.9rem,4.4vw,3.2rem);max-width:20ch;margin:0 auto 1rem}
.fn-final p{color:var(--mut);margin-bottom:2rem}
.fn-final__acts{display:flex;gap:.8rem;justify-content:center;flex-wrap:wrap}

/* ============================================================
   STICKY MOBILE CTA
   ============================================================ */
.fn-sticky{position:fixed;left:0;right:0;bottom:0;z-index:930;display:none;padding:.7rem .9rem
  calc(.7rem + env(safe-area-inset-bottom,0px));
  background:linear-gradient(to top,rgba(3,7,15,.97),rgba(3,7,15,.8));
  border-top:1px solid var(--line);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);
  transform:translateY(110%);transition:transform .5s var(--ease)}
.fn-sticky.is-in{transform:none}
/* όσο φαίνεται το cookie banner, το sticky CTA κατεβαίνει για να μην στοιβάζονται */
body:has(.cc.is-in) .fn-sticky.is-in{transform:translateY(110%)}
.fn-sticky .btn{width:100%;justify-content:center}
@media(max-width:860px){.fn-sticky{display:block}body{padding-bottom:0}}

/* ============================================================
   EXIT INTENT
   ============================================================ */
.fn-exit{position:fixed;inset:0;z-index:9600;display:grid;place-items:center;padding:1.2rem;
  background:rgba(3,5,12,.72);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
  opacity:0;pointer-events:none;visibility:hidden;
  transition:opacity .4s var(--ease),visibility .4s}
.fn-exit.is-in{opacity:1;pointer-events:auto;visibility:visible}
.fn-exit__box{width:min(520px,100%);border:1px solid var(--line);border-radius:28px;padding:2rem 1.8rem;
  text-align:center;position:relative;
  background:linear-gradient(160deg,rgba(255,255,255,.11),rgba(255,255,255,.03)),rgba(8,12,24,.92);
  backdrop-filter:blur(26px) saturate(170%);-webkit-backdrop-filter:blur(26px) saturate(170%);
  box-shadow:0 50px 110px -45px rgba(0,0,0,.95),inset 0 1px 0 rgba(255,255,255,.18);
  transform:translateY(24px) scale(.97);transition:transform .5s var(--ease)}
.fn-exit.is-in .fn-exit__box{transform:none}
.fn-exit h2{font-size:clamp(1.4rem,3vw,1.9rem);margin-bottom:.8rem}
.fn-exit p{color:var(--mut);font-size:.95rem;margin-bottom:1.6rem}
.fn-exit__close{position:absolute;top:.8rem;right:.8rem;width:36px;height:36px;border-radius:50%;
  border:1px solid var(--line);background:rgba(255,255,255,.05);color:var(--mut);cursor:pointer;
  font-size:1.1rem;line-height:1;display:grid;place-items:center;transition:color .3s,border-color .3s}
.fn-exit__close:hover{color:var(--txt);border-color:var(--cyan)}
.fn-exit__skip{display:block;margin:1rem auto 0;background:none;border:0;cursor:pointer;color:var(--mut);
  font:inherit;font-size:.84rem;text-decoration:underline;text-underline-offset:4px;padding:.4rem}
.fn-exit__skip:hover{color:var(--txt)}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media(max-width:1024px){
  .fn-hero__grid{grid-template-columns:1fr;gap:2.5rem}
  .fn-devices{order:-1;min-height:auto;padding-bottom:2rem}
  .fn-phone--ios{width:min(240px,58vw)}
  .fn-phone--android{width:min(168px,40vw);right:8%}
  .fn-push{left:0;width:min(230px,58%)}
  .fn-pains,.fn-types,.fn-proof{grid-template-columns:repeat(2,1fr)}
  .fn-inc{grid-template-columns:repeat(2,1fr)}
  .fn-value{grid-template-columns:1fr}
  .fn-steps{grid-template-columns:repeat(2,1fr)}
  .fn-plans{grid-template-columns:1fr;max-width:520px;margin-inline:auto}
  .fn-plan--hot{transform:none;order:-1}
  .fn-plan--hot:hover{transform:translateY(-6px)}
  .fn-opts{grid-template-columns:repeat(3,1fr)}
}
@media(max-width:860px){
  /* χώρος για το sticky CTA */
  .fn-final{padding-bottom:7rem}
  .foot{padding-bottom:6.5rem}
}
@media(max-width:640px){
  .fn-sec{padding-left:1.1rem;padding-right:1.1rem}
  .fn-hero{padding-left:1.1rem;padding-right:1.1rem}
  .fn-hero h1{font-size:clamp(2rem,8.6vw,2.9rem)}
  .fn-hero__cta .btn{flex:1 1 100%;justify-content:center}
  .fn-pains,.fn-types,.fn-proof,.fn-steps{grid-template-columns:1fr}
  .fn-inc{grid-template-columns:1fr}
  .fn-plan__meta,.fn-result__grid{grid-template-columns:1fr}
  .fn-form__row{grid-template-columns:1fr}
  .fn-form .btn{justify-self:stretch;justify-content:center}
  .fn-opts,.fn-opts--3{grid-template-columns:repeat(2,1fr)}
  .fn-success__steps{grid-template-columns:1fr}
  .fn-dash__kpis{grid-template-columns:1fr}
  .fn-phone--android{display:none}
  .fn-phone--ios{width:min(230px,64vw);transform:none}
  .fn-devices.is-float .fn-phone--ios{animation:none}
  .fn-push{left:auto;right:0;top:6%;width:min(210px,72%)}
  .fn-est__head{padding:.9rem 1.1rem}
  .fn-result__acts .btn{flex:1 1 100%;justify-content:center}
}

@media(prefers-reduced-motion:reduce){
  .fn-devices.is-float .fn-phone--ios,
  .fn-devices.is-float .fn-phone--android,
  .fn-push{animation:none}
  .fn-push{opacity:1}
}
