/* FestiTale REV 1.7.8 — cache-safe visual stabilization
   Loaded after the existing home styles. All new components use ft178-* classes
   so old cached selectors cannot enlarge or reposition their images. */

/* ---------- HERO: readable labels, no decorative counters ---------- */
.ft178-hero-caption{
  left:16px!important; right:auto!important; top:16px!important; bottom:auto!important;
  width:auto!important; max-width:78%!important; padding:0!important;
  display:block!important; background:none!important; pointer-events:none;
}
.ft178-hero-caption strong{
  display:inline-block!important; max-width:100%!important; padding:9px 12px!important;
  border:1px solid rgba(255,255,255,.28); border-radius:999px;
  background:rgba(7,29,44,.78); backdrop-filter:blur(7px);
  color:#fff; font-family:FestiTaleSans,Arial,sans-serif!important;
  font-size:12px!important; font-weight:850!important; line-height:1.2!important;
  letter-spacing:.01em!important; white-space:normal!important; overflow:visible!important;
  text-shadow:none!important;
}

/* ---------- FLOW: illustration-led, no tiny labels/numbers ---------- */
.ft178-flow-grid{
  position:relative; margin-top:54px; display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr)); gap:24px;
}
.ft178-flow-grid:before{
  content:""; position:absolute; left:48px; right:48px; top:49px; height:2px;
  background:linear-gradient(90deg,rgba(242,111,91,.25),#f26f5b 18%,#f26f5b 82%,rgba(232,181,90,.28));
}
.ft178-flow-step{position:relative; z-index:1; min-width:0}
.ft178-flow-visual{
  width:100px; height:100px; margin:0 0 22px; display:grid; place-items:center;
  border:1px solid rgba(255,255,255,.18); border-radius:25px;
  background:#fffdf8; box-shadow:0 14px 34px rgba(0,0,0,.18);
}
.ft178-flow-visual img{
  display:block!important; width:76px!important; height:76px!important;
  max-width:76px!important; max-height:76px!important; object-fit:contain!important;
  border:0!important; border-radius:18px!important; box-shadow:none!important;
}
.ft178-flow-step h3{margin:0;color:#fff;font-size:18px;font-weight:850;line-height:1.25}
.ft178-flow-step p{max-width:250px;margin:9px 0 0;color:#c5d5dc;font-size:14px;line-height:1.58}

/* ---------- DEMO MISSION: two balanced columns, bounded visuals ---------- */
.ft178-demo{
  padding:clamp(82px,10vw,145px) 0; display:grid;
  grid-template-columns:minmax(340px,.82fr) minmax(500px,1.18fr);
  gap:clamp(48px,8vw,118px); align-items:center;
}
.ft178-demo-visual{
  position:relative; width:min(100%,520px); margin-inline:auto; overflow:hidden;
  aspect-ratio:.86; border-radius:4px 4px 54px 4px; background:#12344c;
  box-shadow:0 22px 55px rgba(7,29,44,.18);
}
.ft178-demo-visual>img{
  display:block!important; width:100%!important; height:100%!important; max-width:100%!important;
  object-fit:cover!important; object-position:center!important; border:0!important;
  border-radius:0!important; box-shadow:none!important;
}
.ft178-demo-visual:after{
  content:""; position:absolute; inset:auto 0 0; height:42%;
  background:linear-gradient(transparent,rgba(7,29,44,.8)); pointer-events:none;
}
.ft178-demo-chip{
  position:absolute; z-index:2; left:22px; top:22px; padding:9px 12px;
  border-radius:999px; background:#fffdf8; color:#12344c;
  font-size:9px; font-weight:900; letter-spacing:.13em; text-transform:uppercase;
  box-shadow:0 8px 22px rgba(7,29,44,.16);
}
.ft178-demo-visual strong{
  position:absolute; z-index:2; left:24px; right:24px; bottom:23px;
  color:#fff; font:550 clamp(27px,3vw,40px)/1.02 FestiTaleSerif,Georgia,serif;
}
.ft178-demo-copy{min-width:0}
.ft178-demo-copy h2{
  max-width:760px; margin:0; font-size:clamp(50px,6.1vw,86px); font-weight:500;
  line-height:.92; letter-spacing:-.045em; text-wrap:balance;
}
.ft178-demo-intro{max-width:720px;margin:22px 0 30px;color:var(--ft-muted);font-size:17px;line-height:1.62}
.ft178-mission{
  overflow:hidden; border:1px solid var(--ft-line); border-radius:24px;
  background:#fffdf8; box-shadow:0 14px 42px rgba(7,29,44,.07);
}
.ft178-mission-row{
  margin:0!important; padding:20px 22px!important; display:grid!important;
  grid-template-columns:68px minmax(0,1fr)!important; gap:18px!important; align-items:center!important;
}
.ft178-mission-row+ .ft178-mission-row{border-top:1px solid rgba(18,52,76,.12)}
.ft178-mission-row>figure{
  width:68px!important; height:68px!important; margin:0!important; overflow:hidden;
  border-radius:18px; background:#fff; box-shadow:0 7px 20px rgba(7,29,44,.08);
}
.ft178-mission-row>figure img{
  display:block!important; width:68px!important; height:68px!important;
  max-width:68px!important; max-height:68px!important; object-fit:cover!important;
  border:0!important; border-radius:18px!important; box-shadow:none!important; margin:0!important;
}
.ft178-mission-row>div{min-width:0}
.ft178-mission-row small,.ft178-mission-row strong,.ft178-mission-row b{
  display:block; margin:0 0 7px; color:var(--ft-coral-dark);
  font-size:10px; font-weight:900; letter-spacing:.13em; text-transform:uppercase;
}
.ft178-mission-row p,.ft178-mission-row span{
  display:block; margin:0; max-width:100%; color:var(--ft-ink);
  font-family:FestiTaleSans,Arial,sans-serif; font-size:15px; line-height:1.55;
}
.ft178-mission-row--read p{font:500 clamp(19px,1.8vw,23px)/1.34 FestiTaleSerif,Georgia,serif}
.ft178-mission-row--task{background:rgba(116,203,176,.12)}
.ft178-mission-row--success{background:#12344c}
.ft178-mission-row--success b{color:#ff8a76}
.ft178-mission-row--success span{color:#fff}
.ft178-notes{margin:22px 0 0!important;padding:0!important;display:flex!important;flex-wrap:wrap!important;gap:9px!important;list-style:none!important}
.ft178-notes li{
  margin:0!important;padding:8px 11px 8px 8px!important;display:flex!important;align-items:center!important;gap:8px!important;
  border:1px solid rgba(18,52,76,.16)!important;border-radius:999px!important;background:#fffdf8!important;
}
.ft178-notes li img{
  display:block!important;width:24px!important;height:24px!important;max-width:24px!important;max-height:24px!important;
  object-fit:cover!important;border-radius:7px!important;box-shadow:none!important;margin:0!important;
}
.ft178-notes li span{font-size:11px;font-weight:800;line-height:1.25}

/* ---------- QUALITY: image-backed cards, no ordered-list counters ---------- */
.home-quality.ft178-quality{grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr);gap:clamp(42px,6vw,86px);overflow:hidden}
.home-quality.ft178-quality h2{
  max-width:100%;font-size:clamp(46px,5.2vw,76px);line-height:.95;letter-spacing:-.035em;
  text-wrap:balance;overflow-wrap:normal;hyphens:auto;
}
.ft178-quality-grid{display:grid;gap:14px;min-width:0}
.ft178-quality-card{
  min-width:0;display:grid;grid-template-columns:132px minmax(0,1fr);gap:22px;align-items:center;
  padding:15px;border:1px solid rgba(18,52,76,.15);border-radius:22px;background:rgba(255,253,248,.48);
}
.ft178-quality-card figure{
  width:132px;height:100px;margin:0;overflow:hidden;border-radius:17px;background:#fffdf8;box-shadow:0 8px 22px rgba(7,29,44,.08)
}
.ft178-quality-card figure img{
  display:block!important;width:132px!important;height:100px!important;max-width:132px!important;max-height:100px!important;
  object-fit:cover!important;border-radius:17px!important;box-shadow:none!important;margin:0!important;
}
.ft178-quality-card strong{display:block;font-size:20px;line-height:1.25}
.ft178-quality-card p{margin:7px 0 0;color:#315761;font-size:14px;line-height:1.55}

/* ---------- OUTLOOK: restrained image-led cards ---------- */
.home-outlook.ft178-outlook{overflow:hidden}
.home-outlook.ft178-outlook>div:first-child{grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr);align-items:start}
.home-outlook.ft178-outlook h2{
  max-width:100%;font-size:clamp(50px,5.1vw,76px);line-height:.96;letter-spacing:-.035em;
  text-wrap:balance;overflow-wrap:normal;hyphens:auto;
}
.ft178-outlook-grid{margin-top:48px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.ft178-outlook-card{overflow:hidden;border:1px solid rgba(255,255,255,.16);border-radius:20px;background:rgba(255,255,255,.045)}
.ft178-outlook-card figure{margin:0;padding:16px;border-bottom:1px solid rgba(255,255,255,.11);background:linear-gradient(145deg,rgba(116,203,176,.13),rgba(255,255,255,.02))}
.ft178-outlook-card figure img{
  display:block!important;width:100%!important;height:auto!important;max-width:100%!important;aspect-ratio:4/3!important;
  object-fit:cover!important;border-radius:16px!important;box-shadow:none!important;margin:0!important;
}
.ft178-outlook-card>div{padding:22px 23px 25px}
.ft178-outlook-card h3{margin:0 0 10px;font-size:clamp(25px,2.25vw,32px);font-weight:550;line-height:1.04}
.ft178-outlook-card p{margin:0;color:#bdcfd7;font-size:14px;line-height:1.56}
.ft178-outlook>a{margin-top:32px;display:inline-flex;gap:18px;align-items:center;color:#fff;font-weight:850;text-underline-offset:5px}
.ft178-outlook>a span{color:var(--ft-mint)}

/* ---------- SOCIAL: bounded cards; SVGs can never expand ---------- */
.ft178-social{
  width:min(calc(100% - 2 * var(--ft-gutter)),var(--ft-max));margin:clamp(86px,10vw,140px) auto 0;
  padding:clamp(36px,5vw,64px);display:grid;grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr);
  gap:clamp(34px,6vw,78px);align-items:center;border:1px solid var(--ft-line);border-radius:var(--ft-radius);
  background:#fffdf8;box-shadow:var(--ft-shadow);overflow:hidden;
}
.ft178-social-copy{min-width:0}
.ft178-social-copy h2{margin:0;font-size:clamp(42px,4.9vw,68px);font-weight:500;line-height:.96;letter-spacing:-.035em;text-wrap:balance}
.ft178-social-copy>p:not(.eyebrow){max-width:590px;margin:20px 0 0;color:var(--ft-muted);font-size:15px;line-height:1.62}
.ft178-social-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;min-width:0}
.ft178-social-card{
  min-width:0;min-height:82px;padding:13px 14px;display:grid;grid-template-columns:50px minmax(0,1fr) 18px;
  gap:13px;align-items:center;border:1px solid var(--ft-line);border-radius:18px;background:#f7f2e8;text-decoration:none;
}
.ft178-social-card:hover{border-color:rgba(18,52,76,.34);box-shadow:0 10px 24px rgba(7,29,44,.07)}
.ft178-social-card>img{
  display:block!important;width:50px!important;height:50px!important;min-width:50px!important;min-height:50px!important;
  max-width:50px!important;max-height:50px!important;object-fit:contain!important;border-radius:14px!important;
  box-shadow:none!important;margin:0!important;padding:0!important;
}
.ft178-social-card span{min-width:0;display:flex;flex-direction:column;gap:2px}
.ft178-social-card strong{font-size:14px;line-height:1.2}
.ft178-social-card small{overflow:hidden;color:var(--ft-muted);font-size:9px;white-space:nowrap;text-overflow:ellipsis}
.ft178-social-card b{color:var(--ft-coral);font-size:16px}

/* ---------- RESPONSIVE ---------- */
@media(max-width:1120px){
  .ft178-demo{grid-template-columns:minmax(290px,.72fr) minmax(420px,1.28fr);gap:50px}
  .home-quality.ft178-quality{grid-template-columns:1fr}.ft178-quality-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .ft178-quality-card{grid-template-columns:1fr;align-items:start}.ft178-quality-card figure,.ft178-quality-card figure img{width:100%!important;max-width:100%!important;height:auto!important;max-height:none!important;aspect-ratio:4/3}
  .ft178-social{grid-template-columns:1fr}.ft178-social-copy{max-width:760px}
}

@media(max-width:760px){
  .ft178-hero-caption{left:10px!important;top:10px!important;max-width:82%!important}.ft178-hero-caption strong{font-size:10px!important;padding:7px 9px!important}
  .ft178-flow-grid{margin-top:38px;grid-template-columns:1fr;gap:0}.ft178-flow-grid:before{display:none}
  .ft178-flow-step{min-height:110px;padding:0 0 24px;display:grid;grid-template-columns:78px minmax(0,1fr);gap:16px;align-items:start}
  .ft178-flow-visual{width:78px;height:78px;margin:0;border-radius:20px}.ft178-flow-visual img{width:60px!important;height:60px!important;max-width:60px!important;max-height:60px!important}
  .ft178-flow-step h3{padding-top:4px;font-size:17px}.ft178-flow-step p{max-width:none;font-size:13px}

  .ft178-demo{padding:76px 0;grid-template-columns:1fr;gap:42px}.ft178-demo-visual{width:88%;aspect-ratio:1.08}.ft178-demo-chip{left:16px;top:16px}.ft178-demo-visual strong{left:18px;right:18px;bottom:18px;font-size:30px}
  .ft178-demo-copy h2{font-size:clamp(45px,13vw,57px);line-height:.96}.ft178-demo-intro{font-size:15px}
  .ft178-mission-row{grid-template-columns:54px minmax(0,1fr)!important;gap:13px!important;padding:17px!important}
  .ft178-mission-row>figure,.ft178-mission-row>figure img{width:54px!important;height:54px!important;max-width:54px!important;max-height:54px!important;border-radius:14px!important}
  .ft178-mission-row p,.ft178-mission-row span{font-size:13px}.ft178-mission-row--read p{font-size:19px}
  .ft178-notes{display:grid!important;grid-template-columns:1fr!important}.ft178-notes li{border-radius:14px!important}

  .home-quality.ft178-quality{padding:34px 22px}.home-quality.ft178-quality h2{font-size:clamp(41px,12vw,52px);line-height:.98}.ft178-quality-grid{grid-template-columns:1fr}
  .ft178-quality-card{grid-template-columns:94px minmax(0,1fr);gap:15px}.ft178-quality-card figure,.ft178-quality-card figure img{width:94px!important;height:76px!important;max-width:94px!important;max-height:76px!important;aspect-ratio:auto!important}.ft178-quality-card strong{font-size:17px}.ft178-quality-card p{font-size:13px}

  .home-outlook.ft178-outlook{padding:48px 22px}.home-outlook.ft178-outlook>div:first-child{grid-template-columns:1fr;gap:12px}.home-outlook.ft178-outlook h2{font-size:clamp(42px,12vw,55px);line-height:.98}
  .ft178-outlook-grid{margin-top:32px;grid-template-columns:1fr}.ft178-outlook-card{display:grid;grid-template-columns:108px minmax(0,1fr)}.ft178-outlook-card figure{padding:10px;border-right:1px solid rgba(255,255,255,.11);border-bottom:0;display:flex;align-items:center}.ft178-outlook-card figure img{aspect-ratio:1!important;border-radius:13px!important}.ft178-outlook-card>div{padding:18px 16px}.ft178-outlook-card h3{font-size:22px}.ft178-outlook-card p{font-size:12px}

  .ft178-social{width:calc(100% - 32px);margin-top:76px;padding:28px 20px;border-radius:22px;grid-template-columns:1fr}.ft178-social-copy h2{font-size:43px}.ft178-social-grid{grid-template-columns:1fr}.ft178-social-card{min-height:76px;grid-template-columns:46px minmax(0,1fr) 16px}.ft178-social-card>img{width:46px!important;height:46px!important;min-width:46px!important;min-height:46px!important;max-width:46px!important;max-height:46px!important}
}

@media(max-width:390px){
  .ft178-demo-visual{width:94%}.ft178-quality-card{grid-template-columns:82px minmax(0,1fr)}.ft178-quality-card figure,.ft178-quality-card figure img{width:82px!important;height:68px!important;max-width:82px!important;max-height:68px!important}
}

/* =====================================================================
   REV 1.7.9 - vertical compression + compact social strip
   ===================================================================== */
.ft178-flow-grid{margin-top:44px}
.ft178-demo{padding:clamp(64px,7.5vw,105px) 0}
.home-quality.ft178-quality{margin-top:clamp(68px,7.5vw,108px);padding:clamp(38px,5.2vw,68px)}
.home-code-access{margin-top:clamp(60px,7vw,96px)!important;padding:clamp(32px,4.8vw,58px)!important}
.home-outlook.ft178-outlook{margin-top:clamp(68px,7.5vw,108px);padding:clamp(38px,5.2vw,66px)}
.ft178-outlook-grid{margin-top:34px}
.brand-home .faq-section-v15{padding:clamp(62px,7vw,96px) 0!important}

.ft179-social-strip{
  width:min(calc(100% - 2 * var(--ft-gutter)),var(--ft-max));margin:clamp(48px,6vw,78px) auto 0;
  padding:22px 26px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:28px;align-items:center;
  border:1px solid var(--ft-line);border-radius:22px;background:#fffdf8;box-shadow:0 10px 34px rgba(7,29,44,.055)
}
.ft179-social-strip h2{margin:2px 0 0;font:520 clamp(26px,3vw,38px)/1.02 FestiTaleSerif,Georgia,serif;letter-spacing:-.025em}
.ft179-social-links{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:9px}
.ft179-social-links a{width:74px;min-height:72px;padding:8px 6px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;border:1px solid var(--ft-line);border-radius:16px;background:#f7f2e8;text-decoration:none}
.ft179-social-links a:hover{border-color:rgba(18,52,76,.35);box-shadow:0 7px 18px rgba(7,29,44,.06)}
.ft179-social-links img{display:block!important;width:38px!important;height:38px!important;max-width:38px!important;max-height:38px!important;object-fit:contain!important;margin:0!important;box-shadow:none!important;border-radius:10px!important}
.ft179-social-links span{font-size:9px;font-weight:800;color:var(--ft-ink)}
@media(max-width:760px){
  .ft178-demo{padding:62px 0}.home-quality.ft178-quality{margin-top:62px}.home-outlook.ft178-outlook{margin-top:62px}
  .ft179-social-strip{width:calc(100% - 32px);margin-top:48px;padding:20px;grid-template-columns:1fr;gap:18px}.ft179-social-links{justify-content:flex-start}.ft179-social-links a{width:64px;min-height:64px}.ft179-social-links img{width:34px!important;height:34px!important;max-width:34px!important;max-height:34px!important}.ft179-social-links span{font-size:8px}
}
