/*
Theme Name: Faster Printing NY
Theme URI: https://fasterprintingny.com
Author: LH & R Services Corp
Description: Tema personalizado para Faster Printing NY. Portada dinámica de impresión y sistema de Proyectos de Impresión.
Version: 3.8.48-team-clean-rebuild
Text Domain: faster-printing-ny
*/

:root{
  --fp-c:#00a9e0;
  --fp-m:#ec008c;
  --fp-y:#ffd100;
  --fp-k:#171717;
  --fp-ink:#232323;
  --fp-paper:#ffffff;
  --fp-soft:#f6f7f9;
  --fp-line:#e7e9ee;
  --fp-radius:24px;
  --fp-shadow:0 24px 70px rgba(18,25,38,.16);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--fp-ink);background:#fff;overflow-x:hidden}
a{color:inherit;text-decoration:none}
img,video{max-width:100%;display:block}
.fp-wrap{width:min(1240px,calc(100% - 40px));margin-inline:auto}
.fp-btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:14px 22px;border-radius:999px;font-weight:800;border:1px solid transparent;transition:.25s ease}
.fp-btn:hover{transform:translateY(-2px)}
.fp-btn-primary{background:linear-gradient(90deg,var(--fp-m),#7b42ff,var(--fp-c));color:#fff;box-shadow:0 12px 30px rgba(236,0,140,.22)}
.fp-btn-ghost{border-color:rgba(23,23,23,.16);background:rgba(255,255,255,.86);backdrop-filter:blur(10px)}
.fp-kicker{display:inline-flex;align-items:center;gap:8px;font-size:.78rem;font-weight:900;letter-spacing:.12em;text-transform:uppercase;color:var(--fp-m)}
.fp-kicker:before{content:"";width:26px;height:5px;border-radius:99px;background:linear-gradient(90deg,var(--fp-c),var(--fp-m),var(--fp-y))}
.fp-title{font-size:clamp(2.2rem,5vw,5.4rem);line-height:.92;margin:18px 0 18px;font-weight:950;letter-spacing:-.055em}
.fp-gradient-text{background:linear-gradient(90deg,var(--fp-c),var(--fp-m),var(--fp-y));-webkit-background-clip:text;background-clip:text;color:transparent}

/* Header */
.fp-header{position:fixed;z-index:1000;left:0;right:0;top:0;padding:14px 0;transition:.25s ease}
.fp-header.is-scrolled{background:rgba(255,255,255,.9);backdrop-filter:blur(18px);box-shadow:0 10px 30px rgba(0,0,0,.06)}
.fp-header-inner{display:flex;align-items:center;justify-content:space-between;gap:20px}
.fp-brand{display:flex;align-items:center;gap:12px;font-weight:950;letter-spacing:-.03em}
.fp-brand img{height:52px;width:auto}
.fp-brand-fallback{font-size:1.16rem}.fp-brand-fallback b{color:var(--fp-m)}
.fp-nav{display:flex;gap:22px;align-items:center;font-weight:750;font-size:.94rem}
.fp-nav a{position:relative}.fp-nav a:after{content:"";position:absolute;left:0;right:100%;bottom:-7px;height:3px;background:linear-gradient(90deg,var(--fp-c),var(--fp-m));transition:.22s}.fp-nav a:hover:after{right:0}

/* Hero */
.fp-hero{position:relative;min-height:100vh;display:flex;align-items:center;padding:118px 0 70px;isolation:isolate;background:
radial-gradient(circle at 12% 18%,rgba(0,169,224,.12),transparent 25%),
radial-gradient(circle at 82% 16%,rgba(236,0,140,.12),transparent 24%),
radial-gradient(circle at 78% 84%,rgba(255,209,0,.17),transparent 24%),#fff}
.fp-hero:before{content:"";position:absolute;inset:0;z-index:-2;background-image:linear-gradient(rgba(23,23,23,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(23,23,23,.035) 1px,transparent 1px);background-size:36px 36px;mask-image:linear-gradient(to bottom,#000,transparent 88%)}
.fp-hero-grid{display:grid;grid-template-columns:.88fr 1.32fr;align-items:center;gap:40px}
.fp-hero-copy{position:relative;z-index:5}
.fp-hero-copy p{font-size:clamp(1.02rem,1.6vw,1.22rem);line-height:1.65;max-width:650px;color:#5d6470}
.fp-hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}
.fp-mini-proof{display:flex;gap:18px;align-items:center;margin-top:28px;font-size:.88rem;font-weight:800;color:#626a77}.fp-cmyk-dots{display:flex}.fp-cmyk-dots i{width:18px;height:18px;border:3px solid white;border-radius:50%;margin-left:-5px;box-shadow:0 2px 6px rgba(0,0,0,.1)}.fp-cmyk-dots i:nth-child(1){background:var(--fp-c)}.fp-cmyk-dots i:nth-child(2){background:var(--fp-m)}.fp-cmyk-dots i:nth-child(3){background:var(--fp-y)}.fp-cmyk-dots i:nth-child(4){background:var(--fp-k)}

/* Printer machine — Stage 2: large-format production printer */
.fp-printer-stage{position:relative;min-height:640px;display:grid;place-items:center;perspective:1500px}
.fp-printer-glow{position:absolute;width:90%;height:52%;top:25%;border-radius:50%;background:radial-gradient(circle,rgba(0,169,224,.12),rgba(236,0,140,.09) 44%,rgba(255,209,0,.07) 58%,transparent 72%);filter:blur(28px)}
.fp-printer{position:relative;width:min(100%,820px);height:610px;transform:rotateY(-2deg);transform-style:preserve-3d}
.fp-printer-body{position:absolute;z-index:12;left:2%;right:2%;top:7%;height:205px;border-radius:20px 20px 12px 12px;background:linear-gradient(180deg,#e9edf0 0 12%,#c8ced3 13% 20%,#20252a 21% 88%,#0f1215 89%);border:1px solid #aeb5bb;box-shadow:0 26px 48px rgba(18,25,32,.26),inset 0 1px 0 #fff}
.fp-printer-top{position:absolute;left:2.5%;right:2.5%;top:-13px;height:28px;border-radius:14px 14px 4px 4px;background:linear-gradient(180deg,#fafbfc,#b9c0c6);box-shadow:0 4px 10px rgba(0,0,0,.15)}
.fp-printer-brandbar{position:absolute;left:5%;top:22px;color:#20252a;z-index:20;font-size:.76rem;font-weight:950;letter-spacing:.14em}.fp-printer-brandbar span{color:var(--fp-m)}
.fp-printer-window{position:absolute;left:4%;right:4%;top:55px;height:105px;border-radius:7px;background:linear-gradient(180deg,#101317,#272d32 48%,#0b0d0f);overflow:hidden;box-shadow:inset 0 9px 18px #050607,inset 0 -2px 0 rgba(255,255,255,.08)}
.fp-printer-window:after{content:"";position:absolute;left:0;right:0;bottom:13px;height:3px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.18),transparent)}
.fp-printer-rail{position:absolute;left:4%;right:4%;top:34px;height:9px;border-radius:8px;background:linear-gradient(180deg,#899198,#32373c);box-shadow:0 4px 7px rgba(0,0,0,.5)}
.fp-printer-head{position:absolute;z-index:10;top:18px;left:8%;width:105px;height:61px;border-radius:7px;background:linear-gradient(180deg,#d9dde0 0 14%,#71787e 15% 28%,#24292e 29% 100%);box-shadow:0 8px 14px rgba(0,0,0,.55);animation:fpHead 2.25s ease-in-out infinite alternate}
.fp-printer-head:after{content:"";position:absolute;left:13px;right:13px;bottom:7px;height:4px;border-radius:5px;background:linear-gradient(90deg,var(--fp-c),var(--fp-m),var(--fp-y),#222)}
@keyframes fpHead{0%{left:7%}100%{left:79%}}
.fp-feed-slot{position:absolute;left:5%;right:5%;bottom:15px;height:20px;border-radius:2px 2px 8px 8px;background:linear-gradient(#050607,#30363b 45%,#070809);box-shadow:inset 0 4px 8px #000}
.fp-printer-stand{position:absolute;z-index:3;left:8%;right:8%;top:205px;height:385px}
.fp-printer-stand:before,.fp-printer-stand:after{content:"";position:absolute;top:0;width:48px;height:315px;border-radius:3px;background:linear-gradient(90deg,#15191d,#5b6268 45%,#20252a 75%,#101316);box-shadow:7px 12px 18px rgba(0,0,0,.2)}
.fp-printer-stand:before{left:4%}.fp-printer-stand:after{right:4%}
.fp-printer-stand i{position:absolute;bottom:53px;width:160px;height:20px;background:linear-gradient(#454c52,#14181b);border-radius:3px;box-shadow:0 8px 13px rgba(0,0,0,.2)}
.fp-printer-stand i:first-child{left:0}.fp-printer-stand i:nth-child(2){right:0}
.fp-printer-stand span{position:absolute;left:10%;right:10%;bottom:95px;height:16px;border-radius:8px;background:linear-gradient(#737b81,#1c2125);box-shadow:0 5px 9px rgba(0,0,0,.25)}
.fp-take-roll{position:absolute;z-index:6;left:14%;right:14%;top:510px;height:28px;border-radius:20px;background:linear-gradient(180deg,#737b82,#171b1f 48%,#050607);box-shadow:0 10px 18px rgba(0,0,0,.25)}
.fp-take-roll:before,.fp-take-roll:after{content:"";position:absolute;top:-6px;width:20px;height:40px;border-radius:5px;background:#252b30}.fp-take-roll:before{left:-15px}.fp-take-roll:after{right:-15px}
.fp-take-roll span{position:absolute;left:8%;right:8%;top:7px;height:7px;border-radius:8px;background:rgba(255,255,255,.14)}
.fp-material-shell{position:absolute;z-index:8;left:14%;right:14%;top:190px;height:340px;overflow:hidden;filter:drop-shadow(0 18px 20px rgba(0,0,0,.2));clip-path:polygon(1% 0,99% 0,94% 100%,6% 100%)}
.fp-material{position:absolute;inset:0;background:linear-gradient(90deg,#ececeb,#fff 7%,#fff 93%,#e9e9e7);box-shadow:inset 14px 0 18px rgba(0,0,0,.035),inset -14px 0 18px rgba(0,0,0,.035)}
.fp-project-print{position:absolute;inset:0;overflow:hidden;background:transparent}
.fp-project-print .fp-print-item{position:absolute;inset:0;opacity:0;transition:opacity .5s ease}.fp-project-print .fp-print-item.is-active{opacity:1}
.fp-project-print img,.fp-project-print video{width:100%;height:100%;object-fit:cover}
.fp-project-print .fp-reveal{position:absolute;left:0;right:0;top:0;height:100%;overflow:hidden;clip-path:inset(0 0 100% 0);animation:fpPrintReveal var(--fp-print-speed,5.7s) linear forwards}
.fp-project-print .fp-reveal:after{content:"";position:absolute;left:0;right:0;top:var(--fp-inkline,0%);height:2px;background:linear-gradient(90deg,transparent,var(--fp-c),var(--fp-m),var(--fp-y),transparent);box-shadow:0 2px 9px rgba(0,0,0,.22)}
@keyframes fpPrintReveal{0%{clip-path:inset(0 0 100% 0)}100%{clip-path:inset(0 0 0 0)}}
.fp-print-label{position:absolute;left:22px;right:22px;bottom:22px;color:#fff;text-shadow:0 2px 9px rgba(0,0,0,.55);z-index:20}.fp-print-label strong{font-size:1.08rem}.fp-print-label span{font-size:.7rem;font-weight:900;letter-spacing:.12em;text-transform:uppercase}
.fp-empty-print{position:absolute;inset:0;display:grid;place-items:center;text-align:center;padding:52px;color:#777e86;font-weight:750;background:linear-gradient(90deg,#f3f3f1,#fff 8%,#fff 92%,#f0f0ee)}
.fp-empty-print b{display:block;color:#282d31;font-size:1.1rem;margin-bottom:8px}

/* Stage1 projects preview */
.fp-stage1-section{padding:100px 0;background:var(--fp-soft)}
.fp-stage1-head{display:flex;justify-content:space-between;align-items:end;gap:24px;margin-bottom:32px}.fp-stage1-head h2{font-size:clamp(2rem,4vw,4rem);line-height:1;margin:12px 0 0;letter-spacing:-.045em}.fp-stage1-head p{max-width:520px;color:#69717d;line-height:1.6}
.fp-filterbar{display:flex;flex-wrap:wrap;gap:9px;margin:0 0 28px}.fp-filter{border:1px solid #dfe3e8;background:#fff;border-radius:999px;padding:10px 15px;font-weight:850;cursor:pointer}.fp-filter.is-active{background:var(--fp-k);color:#fff;border-color:var(--fp-k)}
.fp-project-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:18px}.fp-project-card{grid-column:span 4;min-height:340px;border-radius:22px;overflow:hidden;position:relative;background:#fff;box-shadow:0 14px 40px rgba(20,29,42,.08)}.fp-project-card:nth-child(5n+1){grid-column:span 7}.fp-project-card:nth-child(5n+2){grid-column:span 5}.fp-project-card-media{position:absolute;inset:0}.fp-project-card-media img,.fp-project-card-media video{width:100%;height:100%;object-fit:cover}.fp-project-card:after{content:"";position:absolute;inset:42% 0 0;background:linear-gradient(transparent,rgba(0,0,0,.78))}.fp-project-card-copy{position:absolute;z-index:4;left:22px;right:22px;bottom:20px;color:#fff}.fp-project-card-copy small{font-weight:900;text-transform:uppercase;letter-spacing:.12em;opacity:.8}.fp-project-card-copy h3{margin:7px 0 4px;font-size:1.4rem}.fp-project-card-copy p{margin:0;opacity:.85;font-size:.9rem}
.fp-project-empty{grid-column:1/-1;padding:54px;border:2px dashed #d4d8df;border-radius:24px;text-align:center;background:#fff;color:#69717d}

/* Admin-like explainer */
.fp-system-note{padding:44px 0 90px;background:var(--fp-soft)}.fp-system-panel{border-radius:28px;padding:32px;background:#fff;box-shadow:var(--fp-shadow);display:grid;grid-template-columns:1fr auto;gap:30px;align-items:center}.fp-system-panel h3{font-size:1.5rem;margin:0 0 8px}.fp-system-panel p{margin:0;color:#6b7480;line-height:1.55}.fp-chips{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.fp-chip{padding:9px 12px;border-radius:99px;background:#f0f2f5;font-size:.78rem;font-weight:850}.fp-chip:nth-child(4n+1){box-shadow:inset 3px 0 0 var(--fp-c)}.fp-chip:nth-child(4n+2){box-shadow:inset 3px 0 0 var(--fp-m)}.fp-chip:nth-child(4n+3){box-shadow:inset 3px 0 0 var(--fp-y)}.fp-chip:nth-child(4n+4){box-shadow:inset 3px 0 0 var(--fp-k)}

@media(max-width:980px){.fp-nav{display:none}.fp-hero-grid{grid-template-columns:1fr}.fp-hero{padding-top:105px}.fp-printer-stage{min-height:520px}.fp-printer{transform:none;height:540px}.fp-project-card,.fp-project-card:nth-child(n){grid-column:span 6}.fp-stage1-head{display:block}.fp-system-panel{grid-template-columns:1fr}.fp-chips{justify-content:flex-start}}
@media(max-width:620px){.fp-wrap{width:min(100% - 24px,1240px)}.fp-title{font-size:3.2rem}.fp-printer-stage{min-height:410px}.fp-printer{height:390px}.fp-printer-body{height:145px;top:4%}.fp-printer-window{top:43px;height:72px}.fp-printer-rail{top:23px}.fp-printer-head{top:11px;width:68px;height:43px}.fp-feed-slot{bottom:9px;height:14px}.fp-printer-brandbar{top:16px;font-size:.52rem}.fp-printer-stand{top:142px;height:245px}.fp-printer-stand:before,.fp-printer-stand:after{height:205px;width:30px}.fp-printer-stand i{bottom:20px;width:100px;height:14px}.fp-printer-stand span{bottom:48px}.fp-material-shell{top:134px;height:220px}.fp-take-roll{top:337px;height:20px}.fp-project-card,.fp-project-card:nth-child(n){grid-column:1/-1;min-height:300px}.fp-system-panel{padding:22px}}
/* Stage 3 visual refinement */
.fp-hero{min-height:calc(100vh - 76px);overflow:hidden;background:radial-gradient(circle at 8% 24%,rgba(0,169,224,.12),transparent 28%),radial-gradient(circle at 88% 14%,rgba(236,0,140,.10),transparent 27%),radial-gradient(circle at 80% 83%,rgba(255,209,0,.11),transparent 25%),linear-gradient(180deg,#fff,#fbfdff)}
.fp-hero-grid{gap:clamp(38px,5vw,86px);align-items:center;padding-top:70px;padding-bottom:60px}.fp-title{font-size:clamp(4rem,5.5vw,6.4rem);line-height:.86;letter-spacing:-.065em}.fp-lead{font-size:clamp(1.05rem,1.35vw,1.3rem);line-height:1.65}.fp-btn{min-height:54px;padding:0 25px;border-radius:16px}.fp-btn-primary{box-shadow:0 14px 30px rgba(236,0,140,.17)}
.fp-printer-stage{min-height:680px}.fp-printer{width:min(108%,900px);height:650px}.fp-printer-head{animation-duration:1.8s}
.fp-section{padding:110px 0}.fp-section h2{font-size:clamp(2.5rem,4vw,4.5rem);letter-spacing:-.045em;line-height:.97}.fp-section-head{max-width:800px;margin-bottom:48px}
.fp-service-card,.fp-process-card{border-radius:24px;border:1px solid #e5e9ed;background:#fff;box-shadow:0 14px 35px rgba(25,35,45,.06);transition:.28s}.fp-service-card:hover,.fp-process-card:hover{transform:translateY(-6px);box-shadow:0 22px 48px rgba(25,35,45,.1)}
.fp-service-card:nth-child(4n+1){border-top:4px solid #00a9e0}.fp-service-card:nth-child(4n+2){border-top:4px solid #ec008c}.fp-service-card:nth-child(4n+3){border-top:4px solid #ffd100}.fp-service-card:nth-child(4n+4){border-top:4px solid #252525}
.fp-projects-section{background:linear-gradient(135deg,#f5fbfe,#fff 42%,#fff7fc)!important}.fp-project-card{border-radius:26px;overflow:hidden;box-shadow:0 18px 45px rgba(20,28,35,.1)}.fp-project-card img,.fp-project-card video{transition:transform .5s}.fp-project-card:hover img,.fp-project-card:hover video{transform:scale(1.035)}
.fp-about{background:radial-gradient(circle at 10% 40%,rgba(0,169,224,.08),transparent 25%),radial-gradient(circle at 90% 70%,rgba(236,0,140,.07),transparent 25%),#fff}.fp-quote,.fp-contact{border-radius:30px}
footer{border-top:7px solid;border-image:linear-gradient(90deg,#00a9e0 0 25%,#ec008c 25% 50%,#ffd100 50% 75%,#252525 75%) 1}
@media(max-width:980px){.fp-hero{min-height:auto}.fp-printer-stage{min-height:570px}.fp-printer{height:550px;width:min(100%,760px)}}@media(max-width:620px){.fp-section{padding:78px 0}.fp-title{font-size:3.45rem}.fp-hero-grid{padding-top:38px}}

/* STAGE 4 — return to the original WOW / print-shop art direction */
body{background:#fff}
.fp-hero{min-height:850px;background:
 radial-gradient(circle at 6% 18%,rgba(0,169,224,.13),transparent 23%),
 radial-gradient(circle at 94% 12%,rgba(236,0,140,.12),transparent 24%),
 radial-gradient(circle at 87% 84%,rgba(255,209,0,.13),transparent 22%),
 #fff}
.fp-hero:after{content:"";position:absolute;inset:0;pointer-events:none;opacity:.32;background:
 radial-gradient(circle at 2% 70%,#00a9e0 0 2px,transparent 3px),
 radial-gradient(circle at 98% 42%,#ec008c 0 2px,transparent 3px),
 radial-gradient(circle at 93% 74%,#ffd100 0 2px,transparent 3px);background-size:31px 37px,39px 43px,47px 41px}
.fp-hero-copy{position:relative;z-index:5}
.fp-kicker{color:#1b1d20;font-weight:950}.fp-kicker:before{content:"";display:inline-block;width:34px;height:5px;border-radius:8px;margin-right:10px;vertical-align:middle;background:linear-gradient(90deg,#00a9e0 0 25%,#ec008c 25% 50%,#ffd100 50% 75%,#222 75%)}
.fp-title{font-weight:950;text-transform:uppercase;font-size:clamp(4.2rem,5.6vw,6.8rem);line-height:.83}
.fp-title .fp-gradient{background:linear-gradient(90deg,#00a9e0,#6859db 28%,#ec008c 53%,#ff7043 75%,#ffd100);-webkit-background-clip:text;background-clip:text;color:transparent}
.fp-lead{font-weight:550;color:#454c55}
.fp-btn-primary{background:linear-gradient(90deg,#096ce0,#6d4cf2,#ec008c);border:none}
.fp-printer-stage:before{content:"";position:absolute;width:90%;height:80%;right:-8%;top:10%;background:radial-gradient(ellipse,rgba(0,169,224,.10),transparent 55%);filter:blur(10px)}
.fp-printer-body{border-radius:14px;background:linear-gradient(180deg,#d9dde0 0 18%,#161a1e 19% 100%);box-shadow:0 35px 65px rgba(16,21,27,.28)}
.fp-printer-window{background:linear-gradient(180deg,#080a0d,#20252a 54%,#08090b)}
.fp-material-shell{filter:drop-shadow(0 22px 22px rgba(0,0,0,.24))}
.fp-project-print .fp-reveal:after{height:4px;box-shadow:0 0 14px rgba(236,0,140,.35)}
/* ink splash ornaments */
.fp-section{position:relative;overflow:hidden}
.fp-section:before,.fp-section:after{content:"";position:absolute;width:170px;height:170px;border-radius:50%;filter:blur(1px);opacity:.10;pointer-events:none}
.fp-section:before{left:-100px;top:70px;background:#00a9e0;box-shadow:38px 60px 0 -25px #ec008c,80px -22px 0 -38px #ffd100}
.fp-section:after{right:-110px;bottom:70px;background:#ec008c;box-shadow:-55px -38px 0 -32px #ffd100,-88px 34px 0 -42px #00a9e0}
.fp-section-head .fp-eyebrow{color:#ec008c}
.fp-section-head h2{font-weight:950;text-transform:uppercase}
.fp-services-grid{grid-template-columns:repeat(3,1fr);gap:22px}
.fp-service-card{min-height:250px;padding:30px 26px;border-radius:12px;position:relative;overflow:hidden}
.fp-service-card:after{content:"";position:absolute;left:0;right:0;bottom:0;height:5px;background:var(--card-accent,#00a9e0)}
.fp-service-card:nth-child(4n+1){--card-accent:#00a9e0}.fp-service-card:nth-child(4n+2){--card-accent:#ec008c}.fp-service-card:nth-child(4n+3){--card-accent:#ffd100}.fp-service-card:nth-child(4n+4){--card-accent:#202124}
.fp-service-card h3{font-size:1.22rem;text-transform:uppercase;font-weight:950}
.fp-projects-section{background:#fff!important}
.fp-project-grid{gap:14px}.fp-project-card{border-radius:10px;min-height:330px}
.fp-project-card:after{content:"";position:absolute;inset:auto 0 0;height:45%;background:linear-gradient(transparent,rgba(0,0,0,.78));pointer-events:none}
.fp-project-card .fp-project-info{position:relative;z-index:4}
.fp-process-grid{gap:16px}.fp-process-card{border-radius:12px;border-top:5px solid #00a9e0}.fp-process-card:nth-child(2){border-top-color:#ec008c}.fp-process-card:nth-child(3){border-top-color:#ffd100}.fp-process-card:nth-child(4){border-top-color:#222}
.fp-about{background:linear-gradient(135deg,#f6fbff,#fff 48%,#fff8fc)}
.fp-contact{background:linear-gradient(110deg,#006edc 0%,#6653df 30%,#ec008c 60%,#ff8a00 82%,#ffd100 100%);color:#fff;box-shadow:0 25px 55px rgba(120,50,120,.18)}
.fp-contact h2,.fp-contact p{color:#fff}
footer{background:#fff;color:#25282c}
footer a,footer p{color:#4d535a}
@media(max-width:980px){.fp-services-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:620px){.fp-services-grid{grid-template-columns:1fr}.fp-hero{min-height:auto}.fp-title{font-size:3.55rem}}


/* =========================================================
   STAGE 5 — REFERENCE RESET
   Clean white canvas + controlled CMYK + dynamic printer.
   ========================================================= */
.fp-hero:before,.fp-hero:after{content:none!important;display:none!important}
.fp-hero{min-height:790px;background:linear-gradient(90deg,#fff 0 47%,#fbfdff 63%,#fff 100%)!important;position:relative}
.fp-splash{position:absolute;pointer-events:none;border-radius:48% 52% 55% 45%;filter:blur(.1px);opacity:.12}
.fp-splash-c{width:320px;height:250px;left:-180px;top:150px;background:#00a9e0;transform:rotate(-18deg)}
.fp-splash-m{width:280px;height:220px;right:-160px;top:110px;background:#ec008c;transform:rotate(22deg)}
.fp-splash-y{width:250px;height:190px;right:4%;bottom:-110px;background:#ffd100}
.fp-hero-grid{grid-template-columns:minmax(430px,.92fr) minmax(580px,1.18fr);gap:50px;padding-top:82px;padding-bottom:48px;align-items:center}
.fp-hero-copy{z-index:10}
.fp-kicker{font-size:.8rem;text-transform:uppercase;letter-spacing:.1em;color:#23262a!important}.fp-kicker b{color:#ec008c}
.fp-title{font-size:clamp(4.4rem,6vw,7.1rem)!important;line-height:.82!important;letter-spacing:-.075em!important;text-transform:uppercase;margin:20px 0 14px;max-width:720px}
.fp-gradient-text{background:linear-gradient(90deg,#00a9e0 0%,#4d73df 23%,#ec008c 52%,#ff7a30 76%,#ffd100 100%);-webkit-background-clip:text;background-clip:text;color:transparent}
.fp-hero-subtitle{font-size:clamp(1.6rem,2.2vw,2.35rem);text-transform:uppercase;letter-spacing:-.035em;margin:0 0 18px}.fp-hero-subtitle span{color:#066fe5}
.fp-lead{font-size:1.05rem!important;line-height:1.65;max-width:620px;color:#4c545d}
.fp-hero-actions{display:flex;gap:14px;flex-wrap:wrap;margin:27px 0 28px}.fp-btn{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;font-weight:900}
.fp-btn-primary{background:linear-gradient(90deg,#086fe5,#216eea 55%,#ec008c)!important;color:#fff!important}
.fp-btn-ghost{background:#fff;border:1px solid #d9dde1;color:#20252a}
.fp-benefits{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;max-width:700px;padding-top:18px;border-top:1px solid #e8ebee}
.fp-benefits div{display:grid;gap:3px}.fp-benefits b{text-transform:uppercase;font-size:.73rem}.fp-benefits span{font-size:.78rem;color:#707780;line-height:1.35}

/* printer */
.fp-printer-stage{min-height:610px!important}
.fp-printer{width:min(100%,860px)!important;height:590px!important}
.fp-printer-glow{opacity:.72}
.fp-material-shell{top:190px!important;height:330px!important}
.fp-project-print img,.fp-project-print video{object-fit:cover!important}
.fp-print-label{background:linear-gradient(transparent,rgba(0,0,0,.62));left:0!important;right:0!important;bottom:0!important;padding:65px 28px 24px!important;text-align:left}.fp-print-label span{display:block}.fp-print-label strong{display:block;font-size:1.15rem}
.fp-empty-print{background:#fff!important}.fp-empty-print b{font-size:1.35rem;letter-spacing:.04em}.fp-empty-print span{display:block;margin-top:8px;color:#6d747c}

/* stats */
.fp-stats{background:#fff;border-top:1px solid #e8ebee;border-bottom:1px solid #e8ebee;box-shadow:0 10px 35px rgba(20,30,40,.05);position:relative;z-index:20}
.fp-stats-grid{display:grid;grid-template-columns:repeat(4,1fr)}
.fp-stats-grid>div{padding:25px 28px;display:flex;align-items:center;gap:15px;border-right:1px solid #e7eaed}.fp-stats-grid>div:last-child{border-right:0}
.fp-stats strong{font-size:2rem;letter-spacing:-.04em;color:#111}.fp-stats span{font-size:.8rem;font-weight:850;text-transform:uppercase;max-width:145px}

/* shared sections */
.fp-section{padding:95px 0!important;background:#fff}.fp-section:before,.fp-section:after{content:none!important;display:none!important}
.fp-section-head{margin-bottom:38px}.fp-section-head-split{display:grid;grid-template-columns:1.25fr .75fr;gap:70px;align-items:end}.fp-section-head-split p{max-width:500px;color:#626a73;line-height:1.65}
.fp-eyebrow{text-transform:uppercase;font-weight:950;font-size:.75rem;letter-spacing:.08em;color:#ec008c}
.fp-section h2{font-size:clamp(2.45rem,4vw,4.25rem)!important;line-height:.95!important;text-transform:none!important;margin-top:10px}
.fp-script{font-family:cursive;font-weight:500;color:#0873e6;text-transform:none}

/* services reference style */
.fp-services{background:linear-gradient(180deg,#fff,#fbfcfd)}
.fp-services-grid{display:grid;grid-template-columns:repeat(4,1fr)!important;gap:16px!important}
.fp-service-card{min-height:245px!important;padding:27px 23px!important;border:1px solid #e7eaed!important;border-radius:14px!important;box-shadow:0 12px 30px rgba(22,30,38,.07)!important;background:#fff!important;border-top:1px solid #e7eaed!important}
.fp-service-card:after{height:5px!important}.fp-service-card:hover{transform:translateY(-5px)}
.fp-service-icon{width:54px;height:54px;border-radius:16px;background:linear-gradient(135deg,#eaf8fd,#fff1f8);display:grid;place-items:center;font-size:1.6rem;margin-bottom:28px;border:1px solid #e2e8ec}
.fp-service-card h3{font-size:1rem!important;line-height:1.05;margin-bottom:12px}.fp-service-card p{font-size:.86rem;color:#636b74;line-height:1.5}.fp-service-card a{font-size:.78rem;font-weight:950;text-transform:uppercase;text-decoration:none;color:var(--card-accent,#0873e6)}

/* gallery */
.fp-projects-section{background:#fff!important;border-top:1px solid #eef0f2}
.fp-filterbar{display:flex;gap:9px;flex-wrap:wrap;margin:0 0 24px}.fp-filter{border:1px solid #dce1e5;background:#fff;border-radius:999px;padding:9px 15px;font-weight:850;cursor:pointer}.fp-filter.is-active{background:#111;color:#fff;border-color:#111}
.fp-project-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px!important}
.fp-project-card{position:relative;min-height:330px!important;border-radius:13px!important;background:#111;overflow:hidden;box-shadow:0 15px 32px rgba(17,25,33,.11)!important}
.fp-project-card-media{position:absolute;inset:0}.fp-project-card-media img,.fp-project-card-media video{width:100%;height:100%;object-fit:cover}.fp-project-card:after{height:60%!important}
.fp-project-card-copy{position:absolute;left:0;right:0;bottom:0;padding:26px;z-index:5;color:#fff}.fp-project-card-copy small{font-weight:900;text-transform:uppercase;letter-spacing:.06em}.fp-project-card-copy h3{font-size:1.35rem;margin:7px 0}.fp-project-card-copy p{margin:0;font-size:.85rem;color:#e7ebee}

/* process */
.fp-process{background:#f8fafb!important}
.fp-process-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:15px}.fp-process-grid article{background:#fff;border:1px solid #e4e8eb;border-radius:15px;padding:30px 25px;min-height:225px;box-shadow:0 12px 28px rgba(25,35,45,.05)}
.fp-process-grid article:nth-child(1){border-top:5px solid #00a9e0}.fp-process-grid article:nth-child(2){border-top:5px solid #ec008c}.fp-process-grid article:nth-child(3){border-top:5px solid #ffd100}.fp-process-grid article:nth-child(4){border-top:5px solid #222}
.fp-process-grid b{font-size:2.5rem;color:#d8dde2}.fp-process-grid h3{font-size:1.05rem;text-transform:uppercase}.fp-process-grid p{color:#66707a;line-height:1.55}

/* about */
.fp-about{background:#fff!important}.fp-about-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:75px;align-items:center}
.fp-about-art{min-height:430px;border-radius:24px;background:linear-gradient(135deg,#effaff,#fff5fb 55%,#fff9dd);display:grid;place-items:center;position:relative;overflow:hidden}
.fp-about-art:before{content:"";position:absolute;width:360px;height:360px;border-radius:50%;background:conic-gradient(#00a9e0,#ec008c,#ffd100,#222,#00a9e0);filter:blur(40px);opacity:.18}
.fp-ink-poster{position:relative;background:#111;color:#fff;padding:60px 46px;transform:rotate(-5deg);box-shadow:0 25px 40px rgba(0,0,0,.18);text-transform:uppercase}.fp-ink-poster span,.fp-ink-poster strong,.fp-ink-poster em{display:block}.fp-ink-poster span{color:#00a9e0;font-size:2rem}.fp-ink-poster strong{font-size:3rem}.fp-ink-poster em{color:#ec008c;font-size:1.5rem;font-style:normal}
.fp-about-grid p{font-size:1.05rem;line-height:1.7;color:#5d6670}.fp-about-points{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:25px}.fp-about-points span{font-weight:850}

/* CTA */
.fp-cta{background:linear-gradient(100deg,#0078dd 0%,#5e58dd 26%,#ec008c 54%,#ff7628 78%,#ffd100 100%);color:#fff;padding:48px 0;position:relative;overflow:hidden}
.fp-cta:after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 15% 20%,rgba(255,255,255,.16),transparent 20%),radial-gradient(circle at 90% 80%,rgba(255,255,255,.16),transparent 18%)}
.fp-cta-inner{display:flex;justify-content:space-between;gap:35px;align-items:center;position:relative;z-index:2}.fp-cta span{font-weight:900;text-transform:uppercase}.fp-cta h2{font-size:2.4rem;margin:5px 0}.fp-cta p{margin:0}.fp-btn-dark{background:#111;color:#fff;padding:18px 28px;border-radius:12px}

/* contact */
.fp-contact-section{background:#fff!important}.fp-contact-grid{display:grid;grid-template-columns:1fr .8fr;gap:65px;align-items:center}.fp-contact-card{padding:38px;border:1px solid #e2e6e9;border-radius:20px;box-shadow:0 18px 40px rgba(20,30,40,.08);background:#fff}

/* responsive */
@media(max-width:1100px){
 .fp-hero-grid{grid-template-columns:1fr}.fp-hero{min-height:auto}.fp-printer-stage{margin-top:-15px}
 .fp-services-grid{grid-template-columns:repeat(3,1fr)!important}.fp-project-grid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:780px){
 .fp-benefits{grid-template-columns:1fr}.fp-stats-grid{grid-template-columns:repeat(2,1fr)}.fp-stats-grid>div:nth-child(2){border-right:0}
 .fp-section-head-split,.fp-about-grid,.fp-contact-grid{grid-template-columns:1fr;gap:30px}
 .fp-services-grid{grid-template-columns:repeat(2,1fr)!important}.fp-process-grid{grid-template-columns:repeat(2,1fr)}
 .fp-cta-inner{display:grid}.fp-title{font-size:4.4rem!important}
}
@media(max-width:560px){
 .fp-services-grid,.fp-project-grid,.fp-process-grid{grid-template-columns:1fr!important}.fp-stats-grid{grid-template-columns:1fr}.fp-stats-grid>div{border-right:0;border-bottom:1px solid #e7eaed}
 .fp-title{font-size:3.45rem!important}.fp-hero-grid{padding-top:45px}.fp-printer-stage{min-height:420px!important}.fp-printer{height:390px!important}
 .fp-about-points{grid-template-columns:1fr}
}


/* =========================================================
   STAGE 6 — REAL PRINT MOTION + PORTFOLIO REFINEMENT
   ========================================================= */
.fp-printer-head{animation:fpHeadPass 1.45s cubic-bezier(.45,.02,.55,.98) infinite alternate!important}
@keyframes fpHeadPass{0%{left:6%}100%{left:79%}}
.fp-ink-pass{position:absolute;left:5%;right:5%;bottom:10px;height:2px;background:linear-gradient(90deg,transparent,#00a9e0 15%,#ec008c 45%,#ffd100 72%,transparent);opacity:.72;filter:blur(.2px);box-shadow:0 0 8px rgba(236,0,140,.28)}
.fp-paper-feed{position:absolute;left:0;right:0;top:0;height:14px;z-index:30;background:linear-gradient(180deg,rgba(0,0,0,.14),transparent);pointer-events:none}
.fp-project-print{background:#fff!important}
.fp-project-print .fp-print-item{opacity:0!important;z-index:1}
.fp-project-print .fp-print-item.is-active{opacity:1!important;z-index:2}
.fp-project-print .fp-reveal{
 inset:0!important;height:100%!important;
 clip-path:inset(0 0 100% 0);
 animation:fpPhysicalPrint 6.2s steps(62,end) forwards!important;
 transform:none!important;
}
@keyframes fpPhysicalPrint{
 0%{clip-path:inset(0 0 100% 0)}
 4%{clip-path:inset(0 0 97% 0)}
 100%{clip-path:inset(0 0 0 0)}
}
.fp-project-print .fp-reveal:before{
 content:"";position:absolute;z-index:25;left:0;right:0;bottom:0;height:3px;
 background:linear-gradient(90deg,transparent 0,#00a9e0 18%,#ec008c 45%,#ffd100 72%,transparent 100%);
 box-shadow:0 -3px 9px rgba(0,0,0,.12);opacity:.8;
}
.fp-project-print .fp-reveal:after{display:none!important}
.fp-project-print img,.fp-project-print video{display:block;width:100%;height:100%;object-fit:cover}
.fp-material-shell:before{
 content:"";position:absolute;z-index:40;left:0;right:0;top:0;height:24px;
 background:linear-gradient(180deg,rgba(15,18,20,.16),rgba(15,18,20,.035) 35%,transparent);
 pointer-events:none
}
/* subtle paper travel during production */
.fp-material-shell{animation:fpPaperBreath 1.45s ease-in-out infinite alternate}
@keyframes fpPaperBreath{from{transform:translateY(0)}to{transform:translateY(2px)}}

/* Services: stronger commercial-print presentation */
.fp-services-grid{gap:18px!important}
.fp-service-card{min-height:270px!important;padding:25px!important;isolation:isolate}
.fp-service-card:before{
 content:"";position:absolute;z-index:-1;right:-40px;top:-50px;width:125px;height:125px;border-radius:50%;
 background:var(--card-accent,#00a9e0);opacity:.055
}
.fp-service-icon{font-size:1.8rem!important;box-shadow:0 8px 18px rgba(25,35,45,.06)}
.fp-service-card h3{font-size:1.06rem!important}.fp-service-card p{min-height:64px}
.fp-service-card a{display:inline-flex;margin-top:10px;align-items:center;gap:5px}

/* Gallery: denser portfolio rhythm */
.fp-project-grid{grid-template-columns:repeat(12,1fr)!important;grid-auto-rows:170px;gap:15px!important}
.fp-project-card{grid-column:span 4;min-height:0!important;height:auto!important}
.fp-project-card:nth-child(5n+1){grid-column:span 6;grid-row:span 2}
.fp-project-card:nth-child(5n+2){grid-column:span 3;grid-row:span 2}
.fp-project-card:nth-child(5n+3){grid-column:span 3;grid-row:span 2}
.fp-project-card:nth-child(5n+4){grid-column:span 4;grid-row:span 2}
.fp-project-card:nth-child(5n+5){grid-column:span 8;grid-row:span 2}
.fp-project-card-media img,.fp-project-card-media video{transition:transform .55s ease,filter .55s ease}
.fp-project-card:hover .fp-project-card-media img,.fp-project-card:hover .fp-project-card-media video{transform:scale(1.045)}
.fp-project-card-copy{transform:translateY(5px);transition:transform .3s ease}.fp-project-card:hover .fp-project-card-copy{transform:translateY(0)}
.fp-project-card-copy h3{font-size:1.22rem!important}

/* tighten vertical rhythm to resemble reference */
.fp-services{padding-top:82px!important;padding-bottom:86px!important}
.fp-projects-section{padding-top:84px!important;padding-bottom:88px!important}
.fp-process{padding-top:82px!important;padding-bottom:84px!important}
.fp-about{padding-top:88px!important;padding-bottom:88px!important}

@media(max-width:900px){
 .fp-project-grid{grid-template-columns:repeat(2,1fr)!important;grid-auto-rows:300px}
 .fp-project-card,.fp-project-card:nth-child(n){grid-column:span 1!important;grid-row:span 1!important}
}
@media(max-width:560px){
 .fp-project-grid{grid-template-columns:1fr!important;grid-auto-rows:300px}
 .fp-material-shell{animation:none}
}


/* STAGE 6.1 HOTFIX — project visibility + no headline/printer overlap */
.fp-hero-grid{
  grid-template-columns:minmax(0,.86fr) minmax(0,1.14fr)!important;
  gap:clamp(72px,7vw,125px)!important;
}
.fp-hero-copy{max-width:650px!important}
.fp-title{
  font-size:clamp(4rem,5.25vw,6.25rem)!important;
  max-width:650px!important;
  overflow-wrap:normal!important;
  word-break:normal!important;
}
.fp-printer-stage{min-width:0!important}

/* Correct progressive reveal: the visible portion grows downward from the print slot. */
.fp-project-print .fp-reveal{
  clip-path:inset(0 0 100% 0);
  animation:fpPhysicalPrintFixed 6.2s linear forwards!important;
  will-change:clip-path;
}
@keyframes fpPhysicalPrintFixed{
  0%{clip-path:inset(0 0 100% 0)}
  3%{clip-path:inset(0 0 97% 0)}
  18%{clip-path:inset(0 0 82% 0)}
  36%{clip-path:inset(0 0 64% 0)}
  54%{clip-path:inset(0 0 46% 0)}
  72%{clip-path:inset(0 0 28% 0)}
  88%{clip-path:inset(0 0 12% 0)}
  100%{clip-path:inset(0 0 0 0)}
}
.fp-project-print .fp-print-item.is-active .fp-reveal{opacity:1!important;visibility:visible!important}
.fp-project-print .fp-print-item.is-active img,
.fp-project-print .fp-print-item.is-active video{opacity:1!important;visibility:visible!important}

/* On common desktop widths keep a safe visual lane between copy and printer. */
@media(min-width:1101px) and (max-width:1500px){
 .fp-wrap{width:min(92%,1380px)!important}
 .fp-hero-grid{grid-template-columns:minmax(460px,.82fr) minmax(610px,1.18fr)!important;gap:80px!important}
 .fp-title{font-size:clamp(4rem,5vw,5.75rem)!important}
}
@media(max-width:1100px){
 .fp-hero-grid{grid-template-columns:1fr!important;gap:25px!important}
 .fp-hero-copy{max-width:760px!important}
 .fp-title{max-width:760px!important}
}


/* STAGE 6.2 — printer reveal fix + controlled dynamic hero */

/* The print reveal must NOT have !important on clip-path:
   keyframes need authority to move from blank paper to the project image. */
.fp-project-print .fp-reveal{
  clip-path:inset(0 0 100% 0);
  animation:fpProjectDevelop 6.4s linear forwards!important;
}
@keyframes fpProjectDevelop{
  0%{clip-path:inset(0 0 100% 0)}
  5%{clip-path:inset(0 0 96% 0)}
  20%{clip-path:inset(0 0 80% 0)}
  40%{clip-path:inset(0 0 60% 0)}
  60%{clip-path:inset(0 0 40% 0)}
  80%{clip-path:inset(0 0 20% 0)}
  100%{clip-path:inset(0 0 0 0)}
}
.fp-project-print .fp-print-item:not(.is-active) .fp-reveal{animation:none!important;clip-path:inset(0 0 100% 0)}
.fp-project-print .fp-print-item.is-active .fp-reveal{animation:fpProjectDevelop 6.4s linear forwards!important}

/* moving ink line follows the approximate reveal area */
.fp-project-print .fp-print-item.is-active .fp-reveal:before{
  display:block!important;
  animation:fpInkTravel 6.4s linear forwards;
  top:0;bottom:auto
}
@keyframes fpInkTravel{
  0%{top:0;opacity:0}
  4%{opacity:.9}
  98%{top:calc(100% - 3px);opacity:.8}
  100%{top:calc(100% - 3px);opacity:0}
}

/* Hero enters with more life, without adding visual noise */
.fp-hero-copy{animation:fpHeroIn .75s ease-out both}
.fp-printer-stage{animation:fpPrinterIn .9s .08s ease-out both}
@keyframes fpHeroIn{from{opacity:0;transform:translateX(-22px)}to{opacity:1;transform:none}}
@keyframes fpPrinterIn{from{opacity:0;transform:translateX(26px) scale(.985)}to{opacity:1;transform:none}}

/* subtle CMYK atmosphere instead of repeated dots */
.fp-splash-c{animation:fpFloatC 7s ease-in-out infinite alternate}
.fp-splash-m{animation:fpFloatM 8s ease-in-out infinite alternate}
.fp-splash-y{animation:fpFloatY 9s ease-in-out infinite alternate}
@keyframes fpFloatC{to{transform:translate(22px,12px) rotate(-12deg) scale(1.06)}}
@keyframes fpFloatM{to{transform:translate(-18px,16px) rotate(15deg) scale(1.05)}}
@keyframes fpFloatY{to{transform:translate(-12px,-13px) scale(1.07)}}

/* make the headline feel printed, but keep it readable */
.fp-gradient-text{background-size:180% 100%;animation:fpGradientShift 6s ease-in-out infinite alternate}
@keyframes fpGradientShift{from{background-position:0% 50%}to{background-position:100% 50%}}

/* micro-interactions */
.fp-btn{transition:transform .22s ease,box-shadow .22s ease}
.fp-btn:hover{transform:translateY(-3px)}
.fp-btn-primary:hover{box-shadow:0 16px 34px rgba(236,0,140,.20)!important}
.fp-service-card,.fp-project-card{transition:transform .28s ease,box-shadow .28s ease}

/* printer keeps a restrained mechanical pulse */
.fp-printer-glow{animation:fpGlowPulse 3.2s ease-in-out infinite alternate}
@keyframes fpGlowPulse{from{opacity:.45;transform:scale(.98)}to{opacity:.82;transform:scale(1.025)}}

/* preserve safe lane between title and machine */
@media(min-width:1101px){
 .fp-hero-grid{align-items:center!important}
 .fp-hero-copy{padding-right:8px}
}
@media(prefers-reduced-motion:reduce){
 .fp-hero-copy,.fp-printer-stage,.fp-splash-c,.fp-splash-m,.fp-splash-y,.fp-gradient-text,.fp-printer-glow{animation:none!important}
}


/* =========================================================
   STAGE 7 — separated content architecture + service selling panels
   ========================================================= */
.fp-services-dynamic{grid-template-columns:repeat(4,1fr)!important}
.fp-service-card.fp-service-trigger{
 appearance:none;text-align:left;color:inherit;font:inherit;cursor:pointer;width:100%;
 position:relative;display:block
}
.fp-service-more{display:inline-flex;margin-top:10px;font-size:.77rem;font-weight:950;text-transform:uppercase;color:var(--card-accent,#0873e6)}
.fp-service-card:hover .fp-service-more{transform:translateX(4px)}
.fp-service-more{transition:transform .22s ease}
.fp-service-card:focus-visible{outline:3px solid rgba(0,169,224,.35);outline-offset:3px}

/* Service modal */
body.fp-modal-open{overflow:hidden}
.fp-service-modal{position:fixed;inset:0;z-index:99999;display:none}
.fp-service-modal.is-open{display:block}
.fp-service-modal-backdrop{position:absolute;inset:0;background:rgba(10,14,18,.66);backdrop-filter:blur(7px);animation:fpBackdropIn .2s ease both}
.fp-service-modal-panel{
 position:absolute;right:0;top:0;bottom:0;width:min(820px,92vw);overflow:auto;background:#fff;
 box-shadow:-30px 0 70px rgba(0,0,0,.24);padding:55px 48px 42px;animation:fpPanelIn .35s cubic-bezier(.2,.75,.25,1) both
}
@keyframes fpBackdropIn{from{opacity:0}to{opacity:1}}
@keyframes fpPanelIn{from{transform:translateX(45px);opacity:.6}to{transform:none;opacity:1}}
.fp-service-modal-close{position:sticky;z-index:20;float:right;top:0;width:44px;height:44px;border:0;border-radius:50%;background:#111;color:#fff;font-size:1.8rem;line-height:1;cursor:pointer}
.fp-service-modal-hero{padding:20px 0 34px;border-bottom:1px solid #e6eaed}
.fp-service-modal-hero h2{font-size:clamp(2.4rem,5vw,4.2rem);line-height:.92;letter-spacing:-.05em;margin:10px 0 16px}
.fp-service-modal-hero p{font-size:1.07rem;line-height:1.65;color:#5d6670;max-width:650px}
.fp-service-modal-projects{padding:32px 0}
.fp-modal-section-title{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:18px}
.fp-modal-section-title strong{font-size:1.25rem}.fp-modal-section-title span{font-size:.8rem;color:#777f87}
.fp-service-related-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}
.fp-service-related-grid article{border:1px solid #e4e8eb;border-radius:16px;overflow:hidden;background:#fff}
.fp-related-media{height:190px;background:#f0f2f3}.fp-related-media img,.fp-related-media video{width:100%;height:100%;object-fit:cover}
.fp-service-related-grid h3{font-size:1rem;margin:16px 16px 6px}.fp-service-related-grid p{font-size:.83rem;line-height:1.5;color:#69717a;margin:0 16px 18px}
.fp-service-empty{padding:30px;border-radius:17px;background:linear-gradient(135deg,#effaff,#fff4fa 55%,#fff9e2);border:1px solid #e5e9ec}
.fp-service-empty strong{font-size:1.2rem}.fp-service-empty p{line-height:1.6;color:#5f6870;margin-bottom:0}
.fp-service-modal-cta{display:flex;justify-content:space-between;align-items:center;gap:22px;padding:25px;border-radius:18px;background:#111;color:#fff}
.fp-service-modal-cta>div{display:grid;gap:4px}.fp-service-modal-cta strong{font-size:1.08rem}.fp-service-modal-cta span{font-size:.85rem;color:#d7dbe0}

/* make 26 service cards visually compact enough */
.fp-services-dynamic .fp-service-card{min-height:235px!important}
.fp-services-dynamic .fp-service-card p{min-height:58px}

@media(max-width:1100px){.fp-services-dynamic{grid-template-columns:repeat(3,1fr)!important}}
@media(max-width:780px){
 .fp-services-dynamic{grid-template-columns:repeat(2,1fr)!important}
 .fp-service-modal-panel{width:96vw;padding:42px 24px 30px}
 .fp-service-related-grid{grid-template-columns:1fr}
 .fp-service-modal-cta{display:grid}
}
@media(max-width:520px){.fp-services-dynamic{grid-template-columns:1fr!important}.fp-modal-section-title{align-items:start;display:grid}}


/* STAGE 7.1 — full artwork fit inside printer */
.fp-material-shell{
  background:#fff!important;
}
.fp-project-print{
  background:#fff!important;
}
.fp-project-print .fp-reveal{
  background:#fff!important;
}
.fp-project-print img,
.fp-project-print video{
  width:100%!important;
  height:100%!important;
  object-fit:contain!important;
  object-position:center top!important;
  background:#fff!important;
}
/* do not let label cover important artwork */
.fp-print-label{
  background:linear-gradient(transparent,rgba(0,0,0,.48))!important;
  padding:54px 22px 18px!important;
}


/* =========================================================
   STAGE 7.2 — BIGGER PRINTER + LARGER FULL-ARTWORK PAPER
   ========================================================= */

/* Give the printer more room on desktop */
@media(min-width:1101px){
  .fp-hero-grid{
    grid-template-columns:minmax(430px,.78fr) minmax(720px,1.22fr)!important;
    gap:clamp(70px,6vw,110px)!important;
  }
  .fp-hero-copy{max-width:610px!important}
  .fp-title{font-size:clamp(3.9rem,4.8vw,5.65rem)!important;max-width:610px!important}
  .fp-printer-stage{
    min-height:720px!important;
    margin-right:-55px;
  }
  .fp-printer{
    width:min(116%,980px)!important;
    height:700px!important;
  }

  /* larger machine head */
  .fp-printer-body{
    left:1%!important;right:1%!important;
    top:5%!important;
    height:225px!important;
  }
  .fp-printer-window{
    left:3.5%!important;right:3.5%!important;
    top:60px!important;height:118px!important;
  }
  .fp-printer-head{width:118px!important;height:66px!important}

  /* bigger support structure */
  .fp-printer-stand{
    left:5%!important;right:5%!important;
    top:218px!important;height:445px!important;
  }
  .fp-printer-stand:before,.fp-printer-stand:after{
    height:365px!important;
    width:54px!important;
  }
  .fp-printer-stand span{
    left:7%!important;right:7%!important;
    bottom:78px!important;
  }
  .fp-take-roll{
    left:9%!important;right:9%!important;
    top:625px!important;
    height:31px!important;
  }

  /* main fix: significantly larger printable material */
  .fp-material-shell{
    left:8%!important;
    right:8%!important;
    top:211px!important;
    height:415px!important;
    clip-path:polygon(1% 0,99% 0,96.5% 100%,3.5% 100%)!important;
  }
}

/* Artwork should always be completely visible */
.fp-project-print .fp-reveal{
  display:flex!important;
  align-items:flex-start!important;
  justify-content:center!important;
}
.fp-project-print img,
.fp-project-print video{
  width:100%!important;
  height:100%!important;
  object-fit:contain!important;
  object-position:center top!important;
  background:#fff!important;
}

/* Keep project identification from covering the artwork */
.fp-print-label{
  left:16px!important;
  right:auto!important;
  bottom:14px!important;
  width:auto!important;
  max-width:55%!important;
  padding:8px 12px!important;
  border-radius:8px!important;
  background:rgba(10,12,14,.68)!important;
  backdrop-filter:blur(5px);
}
.fp-print-label span{font-size:.58rem!important}
.fp-print-label strong{font-size:.78rem!important;margin-top:2px}

/* Make first impression feel larger without touching project data */
.fp-printer-glow{width:105%!important;height:62%!important}

/* Mid-size desktop */
@media(min-width:900px) and (max-width:1100px){
  .fp-printer-stage{min-height:650px!important}
  .fp-printer{width:min(100%,900px)!important;height:630px!important}
  .fp-material-shell{left:10%!important;right:10%!important;top:190px!important;height:370px!important}
}

/* Mobile/tablet stays proportional */
@media(max-width:899px){
  .fp-material-shell{left:11%!important;right:11%!important}
  .fp-print-label{max-width:70%!important}
}


/* =========================================================
   STAGE 7.3 — APPROVED HERO COMPOSITION
   Larger printer, single base, full artwork, tighter hero.
   ========================================================= */
@media(min-width:1101px){
  .fp-hero{
    min-height:760px!important;
  }
  .fp-hero-grid{
    grid-template-columns:minmax(430px,.78fr) minmax(760px,1.22fr)!important;
    gap:70px!important;
    padding-top:58px!important;
    padding-bottom:22px!important;
    align-items:start!important;
  }
  .fp-hero-copy{
    max-width:590px!important;
    padding-top:48px!important;
  }
  .fp-title{
    font-size:clamp(4.25rem,5vw,5.9rem)!important;
    max-width:590px!important;
  }
  .fp-printer-stage{
    min-height:660px!important;
    margin-top:0!important;
    margin-right:-65px!important;
  }
  .fp-printer{
    width:min(118%,1020px)!important;
    height:650px!important;
  }

  /* printer head/body proportion like approved mockup */
  .fp-printer-body{
    top:2%!important;
    height:238px!important;
    left:0!important;
    right:0!important;
  }
  .fp-printer-top{height:30px!important}
  .fp-printer-window{
    left:3%!important;
    right:3%!important;
    top:60px!important;
    height:132px!important;
  }
  .fp-printer-head{
    width:120px!important;
    height:68px!important;
  }

  /* wider artwork sheet */
  .fp-material-shell{
    left:6.5%!important;
    right:6.5%!important;
    top:224px!important;
    height:405px!important;
    clip-path:polygon(1.5% 0,98.5% 0,97% 100%,3% 100%)!important;
  }

  /* supports only, no duplicate visual base */
  .fp-printer-stand{
    left:5.5%!important;
    right:5.5%!important;
    top:229px!important;
    height:400px!important;
  }
  .fp-printer-stand:before,.fp-printer-stand:after{
    height:365px!important;
    width:48px!important;
    top:0!important;
  }
  .fp-printer-stand i{
    display:none!important;
  }
  .fp-printer-stand span{
    display:none!important;
  }

  /* remove second/duplicate lower bar; keep a single clean base */
  .fp-take-roll{
    left:7%!important;
    right:7%!important;
    top:619px!important;
    height:22px!important;
    border-radius:4px!important;
    background:linear-gradient(180deg,#3e444a,#111518)!important;
    box-shadow:0 8px 15px rgba(0,0,0,.22)!important;
  }
  .fp-take-roll:before,.fp-take-roll:after{
    top:-5px!important;
    height:32px!important;
    width:18px!important;
  }

  /* service section should begin close under the hero, like the approved reference */
  .fp-stats{
    margin-top:-4px!important;
  }
  .fp-services{
    padding-top:62px!important;
  }
}

/* keep full artwork visible */
.fp-project-print img,
.fp-project-print video{
  object-fit:contain!important;
  object-position:center top!important;
  background:#fff!important;
}

/* smaller production tag, positioned like a badge */
.fp-print-label{
  left:14px!important;
  bottom:12px!important;
  max-width:42%!important;
  padding:7px 11px!important;
  border-radius:999px!important;
  background:rgba(16,18,22,.78)!important;
}
.fp-print-label span{
  font-size:.56rem!important;
}
.fp-print-label strong{
  display:none!important;
}

/* slightly denser page feel */
.fp-benefits{
  margin-top:10px!important;
}
.fp-stats-grid>div{
  padding-top:20px!important;
  padding-bottom:20px!important;
}

/* responsive fallback */
@media(min-width:900px) and (max-width:1100px){
  .fp-printer-stage{min-height:610px!important}
  .fp-printer{width:min(100%,930px)!important;height:610px!important}
  .fp-material-shell{left:8%!important;right:8%!important;top:194px!important;height:360px!important}
  .fp-printer-stand i,.fp-printer-stand span{display:none!important}
  .fp-take-roll{top:548px!important;height:20px!important}
}


/* =========================================================
   STAGE 7.4 — MATCH APPROVED HERO MOCKUP
   ========================================================= */

/* Header */
.fp-header{
  height:82px!important;
  background:rgba(255,255,255,.97)!important;
  border-bottom:1px solid #edf0f2!important;
  box-shadow:0 8px 24px rgba(20,30,40,.035)!important;
}
.fp-header-inner{
  height:82px!important;
  display:grid!important;
  grid-template-columns:250px 1fr 370px!important;
  align-items:center!important;
  gap:28px!important;
}
.fp-brand{display:flex!important;align-items:center!important;text-decoration:none!important}
.fp-brand .custom-logo{max-width:210px!important;max-height:58px!important;width:auto!important;height:auto!important}
.fp-brand-fallback{display:flex!important;align-items:center!important;gap:10px!important}
.fp-brand-fallback>span{display:grid;line-height:.86}
.fp-brand-fallback strong{font-size:1.45rem;letter-spacing:-.04em;color:#15181b}
.fp-brand-fallback em{font-style:normal;font-size:.88rem;font-weight:950;color:#ec008c;letter-spacing:.08em}
.fp-brand-mark{display:grid;gap:4px;width:29px}
.fp-brand-mark b{display:block;height:6px;border-radius:5px;transform:skewX(-20deg)}
.fp-brand-mark b:nth-child(1){background:#00a9e0}.fp-brand-mark b:nth-child(2){background:#ffd100}.fp-brand-mark b:nth-child(3){background:#ec008c}
.fp-nav{display:flex!important;justify-content:center!important;align-items:center!important;gap:34px!important}
.fp-nav a{font-size:.82rem!important;font-weight:850!important;color:#171a1e!important;text-decoration:none!important;white-space:nowrap}
.fp-nav a:first-child{color:#ec008c!important}
.fp-header-actions{display:flex;align-items:center;justify-content:flex-end;gap:22px}
.fp-header-quote{min-height:46px!important;padding:0 21px!important;border-radius:15px!important;white-space:nowrap}
.fp-header-phone{display:grid;grid-template-columns:36px auto;grid-template-rows:auto auto;column-gap:9px;text-decoration:none;color:#1d2024;line-height:1.05}
.fp-header-phone>span{grid-row:1/3;width:36px;height:36px;border-radius:50%;border:1px solid #f1b6d4;color:#ec008c;display:grid;place-items:center}
.fp-header-phone b{font-size:.88rem}.fp-header-phone small{font-size:.68rem;color:#7b828a;margin-top:4px}

/* Hero exact visual rhythm */
.fp-hero{
  min-height:625px!important;
  background:#fff!important;
  overflow:hidden!important;
}
.fp-hero-grid{
  width:min(94%,1450px)!important;
  grid-template-columns:minmax(430px,500px) minmax(720px,1fr)!important;
  gap:48px!important;
  padding-top:38px!important;
  padding-bottom:0!important;
  align-items:center!important;
}
.fp-hero-copy{
  max-width:500px!important;
  padding-top:0!important;
  align-self:center!important;
}
.fp-kicker{
  font-size:.76rem!important;
  letter-spacing:.095em!important;
  margin-bottom:15px!important;
  display:block!important;
}
.fp-title{
  font-size:clamp(4.2rem,5vw,5.7rem)!important;
  line-height:.84!important;
  letter-spacing:-.065em!important;
  max-width:500px!important;
  margin:12px 0 10px!important;
}
.fp-hero-subtitle{
  font-size:clamp(1.65rem,2.15vw,2.25rem)!important;
  line-height:1.04!important;
  margin:14px 0 18px!important;
}
.fp-lead{
  max-width:475px!important;
  font-size:.98rem!important;
  line-height:1.58!important;
  margin-bottom:21px!important;
}
.fp-hero-actions{margin:0 0 24px!important}
.fp-benefits{
  max-width:500px!important;
  grid-template-columns:repeat(3,1fr)!important;
  gap:20px!important;
  margin-top:18px!important;
  padding-top:18px!important;
}
.fp-benefits b{font-size:.67rem!important}
.fp-benefits span{font-size:.7rem!important}

/* Approved printer geometry */
.fp-printer-stage{
  min-height:535px!important;
  margin:0!important;
  align-self:center!important;
  display:grid!important;
  place-items:center!important;
}
.fp-printer{
  width:860px!important;
  max-width:100%!important;
  height:520px!important;
  transform:none!important;
}
.fp-printer-glow{
  width:92%!important;
  height:55%!important;
  top:20%!important;
  opacity:.42!important;
}
.fp-printer-body{
  left:2%!important;
  right:2%!important;
  top:2%!important;
  height:205px!important;
  border-radius:16px!important;
  z-index:12!important;
}
.fp-printer-top{
  left:2%!important;
  right:2%!important;
  top:-13px!important;
  height:27px!important;
}
.fp-printer-brandbar{top:20px!important;left:5%!important}
.fp-printer-window{
  left:4%!important;
  right:4%!important;
  top:52px!important;
  height:108px!important;
}
.fp-printer-rail{top:31px!important}
.fp-printer-head{width:105px!important;height:60px!important;top:16px!important}
.fp-feed-slot{bottom:14px!important}

/* side columns frame the paper like the approved image */
.fp-printer-stand{
  left:5%!important;
  right:5%!important;
  top:188px!important;
  height:315px!important;
  z-index:5!important;
}
.fp-printer-stand:before,.fp-printer-stand:after{
  display:block!important;
  top:0!important;
  width:48px!important;
  height:290px!important;
  border-radius:0 0 9px 9px!important;
  background:linear-gradient(90deg,#171b1e,#4b5257 48%,#171a1d)!important;
  box-shadow:6px 10px 17px rgba(0,0,0,.18)!important;
}
.fp-printer-stand:before{left:0!important}.fp-printer-stand:after{right:0!important}
.fp-printer-stand i,.fp-printer-stand span{display:none!important}

/* paper fills the interior and shows the entire uploaded artwork */
.fp-material-shell{
  z-index:8!important;
  left:10.5%!important;
  right:10.5%!important;
  top:188px!important;
  height:300px!important;
  clip-path:none!important;
  overflow:hidden!important;
  filter:drop-shadow(0 10px 16px rgba(0,0,0,.12))!important;
  background:#fff!important;
}
.fp-material,.fp-project-print,.fp-project-print .fp-reveal{background:#fff!important}
.fp-project-print img,.fp-project-print video{
  width:100%!important;
  height:100%!important;
  object-fit:contain!important;
  object-position:center top!important;
  background:#fff!important;
}

/* exactly one bottom base */
.fp-take-roll{
  z-index:14!important;
  left:8%!important;
  right:8%!important;
  top:480px!important;
  height:16px!important;
  border-radius:3px!important;
  background:linear-gradient(180deg,#555c62,#15191c)!important;
  box-shadow:0 7px 13px rgba(0,0,0,.2)!important;
}
.fp-take-roll:before,.fp-take-roll:after{
  top:-4px!important;width:18px!important;height:28px!important;border-radius:4px!important
}
.fp-print-label{
  left:10px!important;bottom:10px!important;padding:6px 10px!important;max-width:40%!important;
  background:rgba(15,18,21,.78)!important;border-radius:999px!important
}

/* Controlled CMYK edge accents, like mockup */
.fp-splash-c{width:220px!important;height:250px!important;left:-150px!important;top:150px!important;opacity:.10!important}
.fp-splash-m{width:220px!important;height:220px!important;right:-145px!important;top:95px!important;opacity:.11!important}
.fp-splash-y{width:230px!important;height:180px!important;right:0!important;bottom:-130px!important;opacity:.10!important}

/* Services starts right after hero, matching generated reference */
.fp-services{
  padding-top:34px!important;
  padding-bottom:70px!important;
  border-top:1px solid #eef1f3!important;
}
.fp-services-heading{
  text-align:center!important;
  max-width:760px!important;
  margin:0 auto 28px!important;
  display:block!important;
}
.fp-services-heading .fp-eyebrow{
  color:#1c2024!important;
  letter-spacing:.16em!important;
  font-size:.78rem!important;
}
.fp-services-heading h2{
  font-size:2rem!important;
  margin:8px 0!important;
}
.fp-services-heading p{margin:0 auto!important;max-width:620px!important;color:#697079!important}
.fp-services-dynamic{
  grid-template-columns:repeat(6,1fr)!important;
  gap:12px!important;
}
.fp-services-dynamic .fp-service-card{
  min-height:180px!important;
  padding:20px 15px!important;
  text-align:center!important;
  border-radius:15px!important;
}
.fp-services-dynamic .fp-service-icon{
  margin:0 auto 15px!important;
  width:48px!important;height:48px!important;
}
.fp-services-dynamic .fp-service-card h3{
  font-size:.82rem!important;
  min-height:34px!important;
}
.fp-services-dynamic .fp-service-card p{display:none!important}
.fp-services-dynamic .fp-service-more{
  justify-content:center!important;
  font-size:.65rem!important;
  margin-top:8px!important;
}

/* Avoid old Stage 7.2/7.3 overrides creating duplicate geometry */
.fp-stats{display:none!important}

@media(max-width:1250px){
  .fp-header-inner{grid-template-columns:210px 1fr auto!important}
  .fp-header-phone{display:none!important}
  .fp-hero-grid{grid-template-columns:430px 1fr!important}
  .fp-printer{width:760px!important}
  .fp-services-dynamic{grid-template-columns:repeat(4,1fr)!important}
}
@media(max-width:980px){
  .fp-header-inner{display:flex!important;justify-content:space-between!important}
  .fp-nav{display:none!important}
  .fp-hero-grid{grid-template-columns:1fr!important;padding-top:35px!important}
  .fp-hero-copy{max-width:680px!important}
  .fp-printer-stage{min-height:520px!important}
  .fp-printer{width:min(100%,820px)!important}
  .fp-services-dynamic{grid-template-columns:repeat(3,1fr)!important}
}
@media(max-width:620px){
  .fp-header-quote{display:none!important}
  .fp-title{font-size:3.45rem!important}
  .fp-printer-stage{min-height:390px!important}
  .fp-printer{height:380px!important}
  .fp-material-shell{top:137px!important;height:215px!important}
  .fp-take-roll{top:346px!important}
  .fp-services-dynamic{grid-template-columns:repeat(2,1fr)!important}
}


/* =========================================================
   STAGE 7.5 — STRUCTURE MATCH TO APPROVED MOCKUP
   ========================================================= */

/* page width + header */
.fp-wrap{width:min(92%,1480px)!important}
.fp-header-inner{
  grid-template-columns:260px 1fr 400px!important;
  gap:30px!important;
}
.fp-brand .custom-logo{max-width:230px!important}
.fp-nav{gap:38px!important}
.fp-nav a{font-size:.86rem!important}
.fp-header-phone b{font-size:.95rem!important}

/* hero proportions closer to approved visual */
.fp-hero{
  min-height:640px!important;
  padding-top:0!important;
  background:
    radial-gradient(circle at 17% 50%,rgba(0,169,224,.045),transparent 24%),
    radial-gradient(circle at 84% 50%,rgba(236,0,140,.045),transparent 25%),
    #fff!important;
}
.fp-hero-grid{
  width:min(94%,1480px)!important;
  grid-template-columns:minmax(470px,520px) minmax(780px,1fr)!important;
  gap:42px!important;
  padding-top:34px!important;
  padding-bottom:0!important;
}
.fp-hero-copy{
  max-width:520px!important;
  padding-left:12px!important;
}
.fp-kicker{font-size:.78rem!important}
.fp-title{
  font-size:clamp(4.7rem,5.5vw,6.3rem)!important;
  line-height:.82!important;
  max-width:520px!important;
}
.fp-hero-subtitle{
  font-size:2.1rem!important;
  max-width:520px!important;
}
.fp-lead{
  max-width:500px!important;
  font-size:1rem!important;
}
.fp-benefits{
  max-width:520px!important;
  gap:18px!important;
}
.fp-benefits>div{
  position:relative;
  padding-left:0!important;
}

/* Ink splashes / halftone edge decoration */
.fp-hero-ink{
  position:absolute;
  pointer-events:none;
  z-index:1;
  top:60px;
  bottom:0;
  width:150px;
  opacity:.95;
}
.fp-hero-ink:before,.fp-hero-ink:after{
  content:"";
  position:absolute;
  inset:0;
}
.fp-hero-ink-left{
  left:0;
  background:
    radial-gradient(circle at 22% 24%,rgba(0,169,224,.88) 0 2px,transparent 3px),
    radial-gradient(circle at 16% 27%,rgba(0,169,224,.7) 0 3px,transparent 4px),
    radial-gradient(circle at 29% 33%,rgba(0,169,224,.55) 0 2px,transparent 3px),
    radial-gradient(circle at 17% 42%,rgba(92,83,218,.35) 0 3px,transparent 4px),
    radial-gradient(circle at 28% 56%,rgba(236,0,140,.22) 0 2px,transparent 3px);
  background-size:21px 21px,31px 31px,25px 25px,28px 28px,24px 24px;
}
.fp-hero-ink-left:before{
  left:-65px;top:80px;width:165px;height:250px;
  background:radial-gradient(ellipse,#00a9e0 0 30%,rgba(0,169,224,.7) 31% 48%,transparent 70%);
  filter:blur(4px);
  transform:rotate(-18deg);
}
.fp-hero-ink-left:after{
  top:380px;left:-25px;width:135px;height:210px;
  background:radial-gradient(ellipse,rgba(236,0,140,.34),rgba(92,83,218,.24) 48%,transparent 72%);
  filter:blur(5px);
}
.fp-hero-ink-right{
  right:0;
  background:
    radial-gradient(circle at 78% 25%,rgba(236,0,140,.88) 0 2px,transparent 3px),
    radial-gradient(circle at 84% 35%,rgba(236,0,140,.65) 0 3px,transparent 4px),
    radial-gradient(circle at 71% 48%,rgba(255,209,0,.5) 0 2px,transparent 3px),
    radial-gradient(circle at 82% 59%,rgba(255,122,48,.6) 0 3px,transparent 4px);
  background-size:22px 22px,30px 30px,24px 24px,27px 27px;
}
.fp-hero-ink-right:before{
  right:-55px;top:90px;width:165px;height:240px;
  background:radial-gradient(ellipse,#ec008c 0 30%,rgba(236,0,140,.65) 31% 48%,transparent 70%);
  filter:blur(4px);
  transform:rotate(16deg);
}
.fp-hero-ink-right:after{
  right:-35px;top:360px;width:160px;height:230px;
  background:radial-gradient(ellipse,#ffd100 0 23%,rgba(255,122,48,.58) 25% 46%,transparent 72%);
  filter:blur(5px);
}

/* printer exact layout emphasis */
.fp-printer-stage{
  min-height:545px!important;
  align-self:center!important;
}
.fp-printer{
  width:900px!important;
  height:535px!important;
}
.fp-printer-body{
  top:2%!important;
  height:212px!important;
  border-radius:15px!important;
}
.fp-printer-window{
  top:53px!important;
  height:112px!important;
}
.fp-printer-stand{
  top:192px!important;
  height:325px!important;
}
.fp-printer-stand:before,.fp-printer-stand:after{
  height:300px!important;
  width:52px!important;
}
.fp-material-shell{
  left:9.5%!important;
  right:9.5%!important;
  top:192px!important;
  height:305px!important;
}
.fp-take-roll{
  top:488px!important;
  left:7%!important;
  right:7%!important;
  height:18px!important;
}
.fp-project-print img,.fp-project-print video{
  object-fit:contain!important;
  object-position:center center!important;
}

/* hero splashes original circles hidden; edge ink replaces them */
.fp-splash{display:none!important}

/* service section like approved reference */
.fp-services{
  padding-top:18px!important;
  padding-bottom:28px!important;
  border-top:0!important;
  background:#fff!important;
}
.fp-services-heading h2,
.fp-services-heading p{
  display:none!important;
}
.fp-services-heading{
  margin:0 auto 18px!important;
}
.fp-services-heading .fp-eyebrow{
  display:inline-block;
  font-size:.9rem!important;
  letter-spacing:.15em!important;
  color:#15181c!important;
  position:relative;
  padding-bottom:10px;
}
.fp-services-heading .fp-eyebrow:after{
  content:"";
  position:absolute;
  left:50%;
  bottom:0;
  width:58px;
  height:3px;
  transform:translateX(-50%);
  border-radius:3px;
  background:linear-gradient(90deg,#ec008c 0 33%,#ffd100 33% 66%,#00a9e0 66%);
}
.fp-services-dynamic{
  grid-template-columns:repeat(6,1fr)!important;
  gap:14px!important;
  align-items:stretch!important;
}
.fp-services-dynamic .fp-service-card{
  min-height:165px!important;
  padding:18px 14px 16px!important;
  border-radius:14px!important;
  background:#fff!important;
  box-shadow:0 9px 26px rgba(25,35,45,.07)!important;
}
.fp-services-dynamic .fp-service-icon{
  width:50px!important;
  height:50px!important;
  margin:0 auto 13px!important;
  font-size:1.7rem!important;
}
.fp-services-dynamic .fp-service-card h3{
  min-height:38px!important;
  font-size:.78rem!important;
  line-height:1.15!important;
  margin:0 0 10px!important;
}
.fp-services-dynamic .fp-service-more{
  font-size:.62rem!important;
  margin-top:3px!important;
}
.fp-services-dynamic .fp-service-card:nth-child(n+7){
  display:none!important;
}

/* arrows on sides of first six service cards */
.fp-services .fp-wrap{position:relative}
.fp-services .fp-wrap:before,
.fp-services .fp-wrap:after{
  content:"‹";
  position:absolute;
  top:108px;
  width:44px;height:44px;
  border-radius:50%;
  background:#fff;
  display:grid;
  place-items:center;
  font-size:2rem;
  line-height:1;
  box-shadow:0 8px 22px rgba(25,35,45,.1);
  z-index:3;
}
.fp-services .fp-wrap:before{left:-56px}
.fp-services .fp-wrap:after{content:"›";right:-56px}

/* bottom benefit bar */
.fp-service-benefit-strip{
  margin:18px auto 0;
  min-height:58px;
  border:1px solid #e4e8ec;
  border-radius:14px;
  background:#fff;
  box-shadow:0 8px 22px rgba(25,35,45,.04);
  display:grid;
  grid-template-columns:repeat(5,1fr);
  align-items:center;
  gap:10px;
  padding:10px 20px;
}
.fp-service-benefit-strip span{
  display:flex;
  justify-content:center;
  align-items:center;
  gap:9px;
  font-size:.75rem;
  color:#32373d;
}
.fp-service-benefit-strip span:nth-child(1){color:#ec008c}
.fp-service-benefit-strip span:nth-child(2){color:#0873e6}
.fp-service-benefit-strip span:nth-child(3){color:#f4b400}
.fp-service-benefit-strip span:nth-child(4){color:#ec008c}
.fp-service-benefit-strip span:nth-child(5){color:#0873e6}
.fp-service-benefit-strip b{color:#25292d;font-weight:750}

/* bring next section lower so first screen matches mockup */
.fp-projects-section{margin-top:14px!important}

/* responsive */
@media(max-width:1300px){
  .fp-header-inner{grid-template-columns:220px 1fr auto!important}
  .fp-header-phone{display:none!important}
  .fp-hero-grid{grid-template-columns:450px 1fr!important}
  .fp-printer{width:820px!important}
  .fp-services-dynamic{grid-template-columns:repeat(4,1fr)!important}
  .fp-services-dynamic .fp-service-card:nth-child(n+5){display:none!important}
  .fp-service-benefit-strip{grid-template-columns:repeat(3,1fr)}
}
@media(max-width:980px){
  .fp-hero-ink{display:none!important}
  .fp-hero-grid{grid-template-columns:1fr!important}
  .fp-printer{width:min(100%,860px)!important}
  .fp-services-dynamic{grid-template-columns:repeat(3,1fr)!important}
  .fp-services-dynamic .fp-service-card:nth-child(n+4){display:none!important}
}
@media(max-width:620px){
  .fp-services-dynamic{grid-template-columns:repeat(2,1fr)!important}
  .fp-service-benefit-strip{grid-template-columns:1fr}
  .fp-services .fp-wrap:before,.fp-services .fp-wrap:after{display:none}
}


/* =========================================================
   STAGE 8 — WP-MANAGED SERVICES + REAL CAROUSEL
   ========================================================= */

/* Remove Stage 7.5 fake arrows / hidden cards */
.fp-services .fp-wrap:before,.fp-services .fp-wrap:after{display:none!important}
.fp-services-dynamic{display:none!important}

.fp-services-carousel{
  position:relative;
  display:grid;
  grid-template-columns:48px minmax(0,1fr) 48px;
  gap:12px;
  align-items:center;
}
.fp-services-viewport{
  overflow:hidden;
  padding:8px 3px 12px;
}
.fp-services-track{
  display:flex;
  gap:14px;
  transition:transform .48s cubic-bezier(.2,.72,.2,1);
  will-change:transform;
}
.fp-services-track .fp-service-card{
  min-height:168px!important;
  padding:18px 14px 15px!important;
  text-align:center!important;
  border-radius:14px!important;
  border:1px solid #e7eaed!important;
  background:#fff!important;
  box-shadow:0 9px 25px rgba(25,35,45,.07)!important;
  cursor:pointer;
  position:relative;
}
.fp-services-track .fp-service-card:after{
  content:"";
  position:absolute;
  left:16px;right:16px;bottom:0;height:3px;border-radius:5px;
  background:var(--card-accent,#ec008c)
}
.fp-services-track .fp-service-card:nth-child(4n+1){--card-accent:#ec008c}
.fp-services-track .fp-service-card:nth-child(4n+2){--card-accent:#0873e6}
.fp-services-track .fp-service-card:nth-child(4n+3){--card-accent:#f4b400}
.fp-services-track .fp-service-card:nth-child(4n+4){--card-accent:#222}
.fp-services-track .fp-service-icon{
  width:50px!important;height:50px!important;margin:0 auto 13px!important;
  font-size:1.65rem!important
}
.fp-services-track h3{
  min-height:35px!important;font-size:.79rem!important;line-height:1.15!important;
  margin:0 0 8px!important;text-transform:uppercase
}
.fp-services-track p{display:none!important}
.fp-services-track .fp-service-more{
  font-size:.61rem!important;margin-top:4px!important;justify-content:center!important
}
.fp-services-arrow{
  width:44px;height:44px;border-radius:50%;border:0;background:#fff;color:#121518;
  font-size:2rem;display:grid;place-items:center;cursor:pointer;
  box-shadow:0 8px 22px rgba(25,35,45,.11);transition:.2s
}
.fp-services-arrow:hover:not(:disabled){transform:scale(1.07)}
.fp-services-arrow:disabled{opacity:.28;cursor:default}

/* cleaner / richer ink sides */
.fp-hero-ink{width:165px!important;overflow:hidden}
.fp-hero-ink-left{
  background:
    radial-gradient(circle at 12% 15%,rgba(0,169,224,.82) 0 2px,transparent 3px),
    radial-gradient(circle at 26% 22%,rgba(0,169,224,.62) 0 3px,transparent 4px),
    radial-gradient(circle at 18% 36%,rgba(58,95,218,.35) 0 2px,transparent 3px),
    radial-gradient(circle at 31% 49%,rgba(113,76,210,.22) 0 2px,transparent 3px)!important;
  background-size:23px 23px,34px 34px,28px 28px,25px 25px!important
}
.fp-hero-ink-left:before{
  left:-88px!important;top:120px!important;width:225px!important;height:280px!important;
  background:
    radial-gradient(ellipse at 55% 45%,rgba(0,169,224,.95) 0 20%,rgba(0,169,224,.62) 22% 38%,rgba(0,169,224,.20) 48%,transparent 70%)!important;
  filter:blur(5px)!important
}
.fp-hero-ink-left:after{
  left:-75px!important;top:360px!important;width:210px!important;height:250px!important;
  background:radial-gradient(ellipse at 55% 45%,rgba(89,72,202,.38),rgba(236,0,140,.14) 44%,transparent 70%)!important
}
.fp-hero-ink-right{
  background:
    radial-gradient(circle at 88% 14%,rgba(236,0,140,.84) 0 2px,transparent 3px),
    radial-gradient(circle at 72% 26%,rgba(236,0,140,.64) 0 3px,transparent 4px),
    radial-gradient(circle at 82% 47%,rgba(255,122,48,.50) 0 2px,transparent 3px),
    radial-gradient(circle at 70% 62%,rgba(255,209,0,.54) 0 3px,transparent 4px)!important;
  background-size:24px 24px,35px 35px,29px 29px,26px 26px!important
}
.fp-hero-ink-right:before{
  right:-92px!important;top:110px!important;width:235px!important;height:280px!important;
  background:radial-gradient(ellipse at 45% 45%,rgba(236,0,140,.95) 0 20%,rgba(236,0,140,.60) 23% 39%,rgba(236,0,140,.18) 50%,transparent 72%)!important;
  filter:blur(5px)!important
}
.fp-hero-ink-right:after{
  right:-80px!important;top:360px!important;width:225px!important;height:260px!important;
  background:radial-gradient(ellipse at 45% 45%,rgba(255,209,0,.82),rgba(255,122,48,.42) 34%,rgba(236,0,140,.12) 54%,transparent 72%)!important
}

.fp-service-modal-icon{
  width:64px;height:64px;border-radius:18px;display:grid;place-items:center;
  font-size:2rem;background:linear-gradient(135deg,#effaff,#fff2f9);border:1px solid #e5e9ed;margin-bottom:18px
}

@media(max-width:980px){
  .fp-services-carousel{grid-template-columns:42px minmax(0,1fr) 42px}
}
@media(max-width:620px){
  .fp-services-carousel{grid-template-columns:38px minmax(0,1fr) 38px;gap:7px}
  .fp-services-arrow{width:36px;height:36px;font-size:1.6rem}
}


/* =========================================================
   STAGE 8.1 — FLUID CMYK SIDE INK
   Replaces dotted side columns with cleaner paint/ribbon forms.
   ========================================================= */

.fp-hero-ink{
  width:210px!important;
  top:70px!important;
  bottom:0!important;
  overflow:visible!important;
  opacity:1!important;
  filter:none!important;
  background:none!important;
}

/* LEFT: cyan + blue + magenta fluid ribbon */
.fp-hero-ink-left{
  left:-28px!important;
  background:none!important;
}
.fp-hero-ink-left:before{
  content:""!important;
  position:absolute!important;
  left:-95px!important;
  top:60px!important;
  width:245px!important;
  height:500px!important;
  border-radius:48% 52% 58% 42% / 34% 46% 54% 66%!important;
  background:
    radial-gradient(ellipse at 64% 20%, rgba(0,169,224,.96) 0 16%, rgba(0,169,224,.72) 18% 31%, transparent 48%),
    radial-gradient(ellipse at 70% 54%, rgba(35,114,224,.88) 0 18%, rgba(62,84,210,.52) 23% 40%, transparent 56%),
    radial-gradient(ellipse at 58% 84%, rgba(236,0,140,.76) 0 14%, rgba(236,0,140,.35) 22% 39%, transparent 56%)!important;
  filter:blur(1px)!important;
  transform:rotate(-7deg)!important;
  opacity:.98!important;
  box-shadow:none!important;
}
.fp-hero-ink-left:after{
  content:""!important;
  position:absolute!important;
  left:-78px!important;
  top:155px!important;
  width:250px!important;
  height:430px!important;
  border-radius:55% 45% 42% 58% / 50% 35% 65% 50%!important;
  background:
    conic-gradient(from 215deg at 72% 46%,
      transparent 0 8%,
      rgba(0,169,224,.82) 10% 18%,
      rgba(64,96,218,.64) 21% 29%,
      rgba(236,0,140,.60) 32% 40%,
      transparent 45% 100%)!important;
  filter:blur(3px)!important;
  opacity:.82!important;
  transform:rotate(9deg)!important;
}

/* RIGHT: yellow + orange + magenta + blue fluid ribbon */
.fp-hero-ink-right{
  right:-28px!important;
  background:none!important;
}
.fp-hero-ink-right:before{
  content:""!important;
  position:absolute!important;
  right:-105px!important;
  top:80px!important;
  width:260px!important;
  height:500px!important;
  border-radius:52% 48% 40% 60% / 38% 46% 54% 62%!important;
  background:
    radial-gradient(ellipse at 38% 18%, rgba(255,209,0,.98) 0 15%, rgba(255,160,20,.66) 20% 33%, transparent 50%),
    radial-gradient(ellipse at 34% 52%, rgba(236,0,140,.94) 0 17%, rgba(236,0,140,.56) 23% 40%, transparent 56%),
    radial-gradient(ellipse at 45% 86%, rgba(0,142,224,.70) 0 15%, rgba(76,73,205,.40) 24% 41%, transparent 58%)!important;
  filter:blur(1px)!important;
  transform:rotate(7deg)!important;
  opacity:.98!important;
  box-shadow:none!important;
}
.fp-hero-ink-right:after{
  content:""!important;
  position:absolute!important;
  right:-82px!important;
  top:155px!important;
  width:250px!important;
  height:440px!important;
  border-radius:45% 55% 60% 40% / 54% 39% 61% 46%!important;
  background:
    conic-gradient(from 30deg at 30% 48%,
      transparent 0 8%,
      rgba(255,209,0,.74) 10% 18%,
      rgba(255,112,46,.68) 21% 29%,
      rgba(236,0,140,.66) 32% 40%,
      rgba(0,169,224,.52) 43% 50%,
      transparent 54% 100%)!important;
  filter:blur(3px)!important;
  opacity:.80!important;
  transform:rotate(-10deg)!important;
}

/* small detached droplets for a natural paint feel */
.fp-hero:before{
  content:""!important;
  position:absolute!important;
  left:35px!important;
  top:110px!important;
  width:14px!important;
  height:14px!important;
  border-radius:50%!important;
  background:#00a9e0!important;
  box-shadow:
    28px 32px 0 -4px rgba(0,169,224,.82),
    62px 105px 0 -6px rgba(236,0,140,.65),
    14px 182px 0 -5px rgba(88,79,205,.55)!important;
  opacity:.75!important;
  z-index:1!important;
  pointer-events:none!important;
}
.fp-hero:after{
  content:""!important;
  position:absolute!important;
  right:42px!important;
  top:105px!important;
  width:13px!important;
  height:13px!important;
  border-radius:50%!important;
  background:#ec008c!important;
  box-shadow:
    -30px 42px 0 -4px rgba(236,0,140,.78),
    -62px 120px 0 -5px rgba(255,209,0,.72),
    -20px 218px 0 -5px rgba(255,118,44,.68)!important;
  opacity:.72!important;
  z-index:1!important;
  pointer-events:none!important;
}

/* keep content above decoration */
.fp-header,.fp-hero-grid,.fp-services{position:relative;z-index:3!important}

/* mobile: hide decorative ribbons for clarity */
@media(max-width:980px){
  .fp-hero-ink,.fp-hero:before,.fp-hero:after{display:none!important}
}


/* =========================================================
   STAGE 8.2 — IRREGULAR CMYK INK STROKES
   Cleaner, sharper side accents; no dots and no blurred ovals.
   ========================================================= */

.fp-hero{
  overflow:hidden!important;
}
.fp-hero-ink{
  display:block!important;
  position:absolute!important;
  top:78px!important;
  bottom:0!important;
  width:180px!important;
  opacity:1!important;
  pointer-events:none!important;
  z-index:1!important;
  background:none!important;
  filter:none!important;
}

/* LEFT SIDE */
.fp-hero-ink-left{
  left:-72px!important;
  transform:rotate(-4deg)!important;
}
.fp-hero-ink-left:before{
  content:""!important;
  position:absolute!important;
  left:0!important;
  top:78px!important;
  width:170px!important;
  height:410px!important;
  border-radius:0!important;
  background:
    linear-gradient(158deg, transparent 0 13%, rgba(0,169,224,.98) 14% 25%, transparent 26% 100%),
    linear-gradient(171deg, transparent 0 29%, rgba(0,118,224,.88) 30% 39%, transparent 40% 100%),
    linear-gradient(145deg, transparent 0 44%, rgba(116,72,200,.78) 45% 53%, transparent 54% 100%),
    linear-gradient(164deg, transparent 0 59%, rgba(236,0,140,.78) 60% 68%, transparent 69% 100%),
    linear-gradient(150deg, transparent 0 73%, rgba(255,112,62,.50) 74% 79%, transparent 80% 100%)!important;
  clip-path:polygon(0 2%,55% 0,38% 9%,78% 14%,48% 22%,91% 29%,50% 36%,78% 45%,43% 53%,90% 61%,54% 70%,76% 79%,35% 87%,62% 94%,0 100%)!important;
  filter:none!important;
  opacity:.96!important;
  transform:none!important;
}
.fp-hero-ink-left:after{
  content:""!important;
  position:absolute!important;
  left:52px!important;
  top:105px!important;
  width:74px!important;
  height:335px!important;
  border-radius:0!important;
  background:
    linear-gradient(180deg,rgba(0,169,224,.86),rgba(45,104,218,.76) 38%,rgba(236,0,140,.72) 76%,transparent 100%)!important;
  clip-path:polygon(28% 0,78% 7%,42% 18%,95% 30%,51% 41%,84% 53%,33% 65%,74% 77%,25% 89%,55% 100%,0 92%,19% 78%,0 64%,24% 49%,4% 35%,31% 21%,8% 10%)!important;
  filter:none!important;
  opacity:.52!important;
  transform:rotate(7deg)!important;
}

/* RIGHT SIDE */
.fp-hero-ink-right{
  right:-76px!important;
  transform:rotate(4deg)!important;
}
.fp-hero-ink-right:before{
  content:""!important;
  position:absolute!important;
  right:0!important;
  top:72px!important;
  width:178px!important;
  height:420px!important;
  border-radius:0!important;
  background:
    linear-gradient(202deg, transparent 0 12%, rgba(255,209,0,.98) 13% 24%, transparent 25% 100%),
    linear-gradient(190deg, transparent 0 28%, rgba(255,121,42,.90) 29% 38%, transparent 39% 100%),
    linear-gradient(214deg, transparent 0 43%, rgba(236,0,140,.92) 44% 54%, transparent 55% 100%),
    linear-gradient(196deg, transparent 0 59%, rgba(157,56,186,.74) 60% 67%, transparent 68% 100%),
    linear-gradient(208deg, transparent 0 73%, rgba(0,169,224,.82) 74% 82%, transparent 83% 100%)!important;
  clip-path:polygon(100% 0,43% 1%,64% 10%,21% 16%,55% 24%,8% 31%,49% 39%,19% 47%,60% 55%,10% 64%,48% 72%,23% 81%,66% 89%,39% 96%,100% 100%)!important;
  filter:none!important;
  opacity:.96!important;
  transform:none!important;
}
.fp-hero-ink-right:after{
  content:""!important;
  position:absolute!important;
  right:52px!important;
  top:103px!important;
  width:78px!important;
  height:340px!important;
  border-radius:0!important;
  background:
    linear-gradient(180deg,rgba(255,209,0,.80),rgba(255,104,42,.72) 31%,rgba(236,0,140,.75) 62%,rgba(0,150,224,.62) 100%)!important;
  clip-path:polygon(72% 0,21% 8%,59% 19%,4% 30%,47% 41%,15% 53%,67% 64%,24% 76%,76% 87%,44% 100%,100% 92%,79% 78%,100% 64%,73% 50%,96% 35%,69% 22%,92% 10%)!important;
  filter:none!important;
  opacity:.50!important;
  transform:rotate(-7deg)!important;
}

/* A few isolated ink drops only — no repetitive dot pattern */
.fp-hero:before{
  content:""!important;
  position:absolute!important;
  left:30px!important;
  top:172px!important;
  width:10px!important;height:10px!important;border-radius:50%!important;
  background:#00a9e0!important;
  box-shadow:
    48px -34px 0 -2px rgba(0,169,224,.8),
    71px 58px 0 -3px rgba(236,0,140,.72),
    25px 178px 0 -2px rgba(91,75,204,.62)!important;
  opacity:.9!important;
  z-index:2!important;
}
.fp-hero:after{
  content:""!important;
  position:absolute!important;
  right:34px!important;
  top:170px!important;
  width:10px!important;height:10px!important;border-radius:50%!important;
  background:#ec008c!important;
  box-shadow:
    -46px -28px 0 -2px rgba(255,209,0,.85),
    -68px 69px 0 -3px rgba(236,0,140,.75),
    -28px 188px 0 -2px rgba(0,169,224,.68)!important;
  opacity:.9!important;
  z-index:2!important;
}

/* Decoration stays behind all useful content */
.fp-hero-grid{position:relative!important;z-index:3!important}

@media(max-width:1180px){
  .fp-hero-ink{width:125px!important;opacity:.72!important}
}
@media(max-width:980px){
  .fp-hero-ink,.fp-hero:before,.fp-hero:after{display:none!important}
}


/* =========================================================
   STAGE 8.3 — FULL-HEIGHT GEOMETRIC CMYK EDGE ART
   Runs from top of hero through services.
   ========================================================= */

.fp-home-main{
  position:relative!important;
  overflow:hidden!important;
}

/* Disable previous hero-only paint effects */
.fp-hero-ink,
.fp-hero:before,
.fp-hero:after{
  display:none!important;
}

.fp-page-edge-art{
  position:absolute;
  top:0;
  width:190px;
  height:1120px;
  z-index:1;
  pointer-events:none;
  background-repeat:no-repeat;
  background-position:top center;
  background-size:190px 1000px;
  opacity:.94;
}

.fp-page-edge-left{
  left:-34px;
  background-image:url('assets/img/edge-left.svg');
}
.fp-page-edge-right{
  right:-34px;
  background-image:url('assets/img/edge-right.svg');
}

/* fade the edge artwork softly near the middle so it never competes with content */
.fp-page-edge-left{
  -webkit-mask-image:linear-gradient(to right,#000 0%,#000 62%,rgba(0,0,0,.75) 78%,transparent 100%);
  mask-image:linear-gradient(to right,#000 0%,#000 62%,rgba(0,0,0,.75) 78%,transparent 100%);
}
.fp-page-edge-right{
  -webkit-mask-image:linear-gradient(to left,#000 0%,#000 62%,rgba(0,0,0,.75) 78%,transparent 100%);
  mask-image:linear-gradient(to left,#000 0%,#000 62%,rgba(0,0,0,.75) 78%,transparent 100%);
}

/* content stays over the edge artwork */
.fp-hero,
.fp-services{
  position:relative!important;
  z-index:3!important;
  background-color:transparent!important;
}
.fp-projects-section,
.fp-process,
.fp-about,
.fp-cta,
.fp-contact-section{
  position:relative!important;
  z-index:4!important;
}

/* Keep decoration visible above AND below hero into services */
.fp-services{
  background:rgba(255,255,255,.94)!important;
}
.fp-hero{
  background:
    linear-gradient(90deg,rgba(255,255,255,.96),rgba(255,255,255,.90) 12%,rgba(255,255,255,.94) 50%,rgba(255,255,255,.90) 88%,rgba(255,255,255,.96))!important;
}

/* Slightly widen on large screens for stronger framing */
@media(min-width:1500px){
  .fp-page-edge-art{
    width:225px;
    background-size:225px 1120px;
    height:1200px;
  }
  .fp-page-edge-left{left:-28px}
  .fp-page-edge-right{right:-28px}
}

/* Tablet/mobile: reduce or remove to protect readability */
@media(max-width:1180px){
  .fp-page-edge-art{
    width:120px;
    background-size:120px 800px;
    opacity:.65;
  }
  .fp-page-edge-left{left:-42px}
  .fp-page-edge-right{right:-42px}
}
@media(max-width:900px){
  .fp-page-edge-art{display:none!important}
}


/* =========================================================
   STAGE 8.4 — STRONGER FULL-HEIGHT CMYK EDGES
   Makes the edge artwork clearly visible.
   ========================================================= */

.fp-page-edge-art{
  width:250px!important;
  height:1220px!important;
  background-size:250px 1180px!important;
  opacity:1!important;
  filter:none!important;
  -webkit-mask-image:none!important;
  mask-image:none!important;
}

.fp-page-edge-left{
  left:-18px!important;
}
.fp-page-edge-right{
  right:-18px!important;
}

/* Give the SVGs more visual punch with a subtle CMYK glow behind them */
.fp-page-edge-left:before,
.fp-page-edge-right:before{
  content:"";
  position:absolute;
  inset:80px 0 120px;
  z-index:-1;
  pointer-events:none;
  opacity:.26;
  filter:blur(28px);
}
.fp-page-edge-left:before{
  background:
    radial-gradient(circle at 25% 22%,#00a9e0 0 14%,transparent 33%),
    radial-gradient(circle at 30% 52%,#5d5bdd 0 13%,transparent 31%),
    radial-gradient(circle at 27% 78%,#ec008c 0 13%,transparent 31%);
}
.fp-page-edge-right:before{
  background:
    radial-gradient(circle at 75% 20%,#ffd100 0 14%,transparent 33%),
    radial-gradient(circle at 73% 48%,#ff742f 0 13%,transparent 31%),
    radial-gradient(circle at 76% 70%,#ec008c 0 14%,transparent 31%),
    radial-gradient(circle at 70% 88%,#00a9e0 0 11%,transparent 28%);
}

/* Keep white content area readable while still letting the edges show */
.fp-hero{
  background:rgba(255,255,255,.91)!important;
}
.fp-services{
  background:rgba(255,255,255,.90)!important;
}

/* Make the decoration begin higher and continue lower */
.fp-page-edge-art{
  top:20px!important;
}

/* Large screens: even stronger framing */
@media(min-width:1500px){
  .fp-page-edge-art{
    width:285px!important;
    height:1280px!important;
    background-size:285px 1230px!important;
  }
  .fp-page-edge-left{left:-20px!important}
  .fp-page-edge-right{right:-20px!important}
}

/* Mid-size desktop: still visible, not washed out */
@media(min-width:981px) and (max-width:1499px){
  .fp-page-edge-art{
    width:220px!important;
    background-size:220px 1080px!important;
    opacity:.98!important;
  }
  .fp-page-edge-left{left:-24px!important}
  .fp-page-edge-right{right:-24px!important}
}

/* Mobile remains clean */
@media(max-width:980px){
  .fp-page-edge-art{display:none!important}
}


/* =========================================================
   STAGE 9 — PREMIUM VISUAL LAYER
   Elevates the approved structure without changing functionality.
   ========================================================= */

:root{
  --fp-premium-shadow:0 24px 70px rgba(22,30,42,.10);
  --fp-premium-line:rgba(18,24,32,.08);
}

/* HERO: premium depth while keeping current composition */
.fp-hero{
  position:relative!important;
  isolation:isolate;
}
.fp-hero-grid:after{
  content:"";
  position:absolute;
  right:3%;
  top:17%;
  width:48%;
  height:64%;
  z-index:-1;
  border-radius:50%;
  background:
    radial-gradient(ellipse at center,rgba(0,169,224,.10),rgba(236,0,140,.055) 42%,rgba(255,209,0,.035) 62%,transparent 74%);
  filter:blur(18px);
  pointer-events:none;
}
.fp-printer{
  filter:drop-shadow(0 24px 24px rgba(20,27,35,.13))!important;
}
.fp-printer-head{
  box-shadow:0 18px 34px rgba(11,16,22,.20)!important;
}

/* Premium CMYK micro-rule under eyebrow */
.fp-eyebrow:after{
  content:"";
  display:inline-block;
  width:42px;height:3px;margin-left:10px;vertical-align:middle;border-radius:4px;
  background:linear-gradient(90deg,#00a9e0 0 25%,#6b5bd8 25% 48%,#ec008c 48% 72%,#ffd100 72%);
}

/* SERVICES: stronger showroom feeling */
.fp-services{
  padding-top:42px!important;
  padding-bottom:62px!important;
}
.fp-services:before{
  content:"";
  position:absolute;
  left:50%;top:0;transform:translateX(-50%);
  width:min(1180px,82%);height:1px;
  background:linear-gradient(90deg,transparent,#00a9e0 18%,#6a59d9 38%,#ec008c 58%,#ffd100 78%,transparent);
  opacity:.55;
}
.fp-services-track .fp-service-card{
  box-shadow:0 13px 34px rgba(21,29,40,.085)!important;
  transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease!important;
}
.fp-services-track .fp-service-card:hover{
  transform:translateY(-7px)!important;
  box-shadow:0 24px 48px rgba(21,29,40,.14)!important;
  border-color:rgba(236,0,140,.18)!important;
}
.fp-services-track .fp-service-card:hover .fp-service-icon{
  transform:scale(1.08) rotate(-3deg);
}
.fp-services-track .fp-service-icon{transition:transform .25s ease}

/* Benefit strip becomes a trust bar */
.fp-service-benefit-strip{
  margin-top:24px!important;
  padding:17px 22px!important;
  border:1px solid rgba(21,29,40,.07)!important;
  border-radius:16px!important;
  background:rgba(255,255,255,.88)!important;
  box-shadow:0 14px 34px rgba(21,29,40,.055)!important;
  backdrop-filter:blur(8px);
}

/* PROJECTS: turn into premium portfolio showroom */
.fp-projects-section{
  position:relative!important;
  padding-top:82px!important;
  padding-bottom:92px!important;
  overflow:hidden!important;
  background:
    radial-gradient(circle at 5% 15%,rgba(0,169,224,.08),transparent 24%),
    radial-gradient(circle at 95% 78%,rgba(236,0,140,.075),transparent 25%),
    linear-gradient(180deg,#fbfcfd 0%,#fff 50%,#fbfcfd 100%)!important;
}
.fp-projects-section:before{
  content:"";
  position:absolute;top:0;left:0;right:0;height:7px;
  background:linear-gradient(90deg,#00a9e0 0 25%,#675bd8 25% 45%,#ec008c 45% 68%,#ff6f32 68% 83%,#ffd100 83%);
}
.fp-projects-section:after{
  content:"FPNY";
  position:absolute;
  right:-24px;bottom:-50px;
  font-weight:900;font-size:12rem;line-height:1;letter-spacing:-.08em;
  color:rgba(18,24,32,.025);
  pointer-events:none;
}
.fp-projects-section .fp-section-heading{
  max-width:760px;
}
.fp-project-card{
  overflow:hidden!important;
  border-radius:18px!important;
  border:1px solid rgba(18,24,32,.07)!important;
  box-shadow:0 14px 38px rgba(18,24,32,.09)!important;
  transition:transform .3s ease,box-shadow .3s ease!important;
  background:#fff!important;
}
.fp-project-card:hover{
  transform:translateY(-8px)!important;
  box-shadow:0 28px 60px rgba(18,24,32,.16)!important;
}
.fp-project-card img,.fp-project-card video{
  transition:transform .45s ease!important;
}
.fp-project-card:hover img,.fp-project-card:hover video{
  transform:scale(1.045)!important;
}

/* PROCESS: give each step visual hierarchy */
.fp-process{
  position:relative!important;
  padding-top:86px!important;
  padding-bottom:88px!important;
}
.fp-process:before{
  content:"";
  position:absolute;left:8%;right:8%;top:48%;
  height:1px;
  background:linear-gradient(90deg,transparent,rgba(0,169,224,.22),rgba(236,0,140,.20),rgba(255,209,0,.22),transparent);
  z-index:0;
}

/* ABOUT / CTA: more brand energy */
.fp-about{
  position:relative!important;
  background:
    linear-gradient(135deg,rgba(0,169,224,.045),transparent 34%),
    linear-gradient(315deg,rgba(236,0,140,.045),transparent 34%),
    #fff!important;
}
.fp-cta{
  position:relative!important;
  overflow:hidden!important;
}
.fp-cta:before{
  content:"";
  position:absolute;inset:0;
  background:
    radial-gradient(circle at 5% 50%,rgba(0,169,224,.18),transparent 28%),
    radial-gradient(circle at 95% 50%,rgba(255,209,0,.18),transparent 28%);
  pointer-events:none;
}

/* Buttons feel more premium */
.fp-btn{
  transition:transform .22s ease,box-shadow .22s ease!important;
}
.fp-btn:hover{
  transform:translateY(-2px);
}
.fp-btn-primary:hover{
  box-shadow:0 14px 30px rgba(236,0,140,.22)!important;
}

/* Smooth reveal animation, accessibility safe */
@keyframes fpPremiumReveal{
  from{opacity:0;transform:translateY(18px)}
  to{opacity:1;transform:translateY(0)}
}
.fp-services .fp-section-heading,
.fp-projects-section .fp-section-heading,
.fp-process .fp-section-heading{
  animation:fpPremiumReveal .65s ease both;
}
@media(prefers-reduced-motion:reduce){
  *,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
}

/* Desktop edge art stays visible but no longer competes with content */
@media(min-width:981px){
  .fp-page-edge-art{opacity:.88!important}
}

/* Responsive premium polish */
@media(max-width:980px){
  .fp-projects-section{padding-top:58px!important;padding-bottom:64px!important}
  .fp-projects-section:after{font-size:7rem}
  .fp-process:before{display:none}
}


/* =========================================================
   STAGE 10 — PREMIUM STRUCTURAL REBUILD
   Hero + services become one connected visual stage.
   Portfolio becomes a large editorial showcase.
   ========================================================= */

.fp-home-main{background:#fff!important}

/* ONE CONNECTED STAGE: hero and services no longer feel like separate white blocks */
.fp-premium-stage{
  position:relative;
  overflow:hidden;
  isolation:isolate;
  background:
    radial-gradient(circle at 8% 24%,rgba(0,169,224,.13),transparent 23%),
    radial-gradient(circle at 92% 18%,rgba(236,0,140,.11),transparent 23%),
    radial-gradient(circle at 88% 83%,rgba(255,209,0,.12),transparent 21%),
    linear-gradient(180deg,#fff 0%,#fff 72%,#f8fafc 100%);
  padding-bottom:38px;
}
.fp-premium-stage:before{
  content:"";
  position:absolute;
  left:-4vw;right:-4vw;bottom:205px;height:190px;
  background:linear-gradient(102deg,
    rgba(0,169,224,.08) 0 18%,
    rgba(94,82,211,.06) 28%,
    rgba(236,0,140,.075) 50%,
    rgba(255,112,48,.06) 70%,
    rgba(255,209,0,.075) 100%);
  transform:skewY(-3deg);
  z-index:0;
}
.fp-premium-stage:after{
  content:"";
  position:absolute;
  left:0;right:0;bottom:0;height:5px;
  background:linear-gradient(90deg,#00a9e0,#575ed9 28%,#ec008c 53%,#ff6f32 76%,#ffd100);
  z-index:4;
}

.fp-premium-stage .fp-hero{
  min-height:650px!important;
  padding-bottom:10px!important;
  background:transparent!important;
  z-index:2!important;
}
.fp-premium-stage .fp-hero-grid{
  align-items:center!important;
  padding-top:34px!important;
}
.fp-premium-stage .fp-services{
  margin-top:-42px!important;
  padding-top:0!important;
  padding-bottom:38px!important;
  background:transparent!important;
  z-index:3!important;
}
.fp-premium-stage .fp-services .fp-wrap{
  position:relative;
  padding:28px 34px 24px!important;
  border:1px solid rgba(18,24,32,.07);
  border-radius:28px;
  background:rgba(255,255,255,.91);
  box-shadow:0 28px 70px rgba(18,24,32,.09);
  backdrop-filter:blur(14px);
}
.fp-premium-stage .fp-services .fp-section-heading{
  margin-top:0!important;
}

/* Edge art becomes framing, not decoration floating in white space */
.fp-premium-stage .fp-page-edge-art{
  opacity:1!important;
  z-index:0!important;
  width:260px!important;
  height:1080px!important;
  background-size:260px 1080px!important;
}
.fp-premium-stage .fp-page-edge-left{left:-52px!important}
.fp-premium-stage .fp-page-edge-right{right:-52px!important}

/* Printer gets its own visual pedestal */
.fp-printer-wrap{
  position:relative!important;
}
.fp-printer-wrap:before{
  content:"";
  position:absolute;
  left:8%;right:8%;bottom:2%;
  height:90px;
  border-radius:50%;
  background:radial-gradient(ellipse,rgba(20,28,38,.18),rgba(20,28,38,.05) 48%,transparent 72%);
  filter:blur(12px);
  z-index:-1;
}

/* PORTFOLIO SHOWCASE — less grid-like, more editorial */
.fp-portfolio-showcase{
  position:relative!important;
  padding:105px 0 115px!important;
  background:
    linear-gradient(135deg,rgba(0,169,224,.055),transparent 28%),
    linear-gradient(315deg,rgba(236,0,140,.055),transparent 28%),
    #0f141a!important;
  color:#fff!important;
}
.fp-portfolio-showcase .fp-section-heading,
.fp-portfolio-showcase .fp-section-heading h2,
.fp-portfolio-showcase .fp-section-heading p{
  color:#fff!important;
}
.fp-portfolio-showcase .fp-eyebrow{color:#7edfff!important}
.fp-portfolio-showcase:before{
  height:8px!important;
  background:linear-gradient(90deg,#00a9e0,#5e5bd8,#ec008c,#ff7134,#ffd100)!important;
}
.fp-portfolio-showcase:after{
  content:"WORK"!important;
  right:-15px!important;
  bottom:-70px!important;
  font-size:15rem!important;
  color:rgba(255,255,255,.025)!important;
}
.fp-portfolio-showcase .fp-projects-grid{
  display:grid!important;
  grid-template-columns:1.2fr .8fr .8fr!important;
  grid-auto-rows:minmax(230px,auto)!important;
  gap:18px!important;
  align-items:stretch!important;
}
.fp-portfolio-showcase .fp-project-card{
  position:relative!important;
  border:1px solid rgba(255,255,255,.12)!important;
  background:#171e26!important;
  color:#fff!important;
  border-radius:20px!important;
  overflow:hidden!important;
  min-height:290px!important;
}
.fp-portfolio-showcase .fp-project-card:first-child{
  grid-row:span 2!important;
  min-height:598px!important;
}
.fp-portfolio-showcase .fp-project-card h3,
.fp-portfolio-showcase .fp-project-card p{color:#fff!important}
.fp-portfolio-showcase .fp-project-card p{opacity:.72}
.fp-portfolio-showcase .fp-project-card img,
.fp-portfolio-showcase .fp-project-card video{
  min-height:220px!important;
  object-fit:cover!important;
}
.fp-portfolio-showcase .fp-project-card:first-child img,
.fp-portfolio-showcase .fp-project-card:first-child video{
  min-height:465px!important;
}

/* Process transitions back to white with a visual bridge */
.fp-process{
  background:#fff!important;
  padding-top:100px!important;
}
.fp-process:after{
  content:"";
  position:absolute;
  top:0;left:50%;transform:translateX(-50%);
  width:72px;height:7px;border-radius:0 0 8px 8px;
  background:linear-gradient(90deg,#00a9e0,#ec008c,#ffd100);
}

/* About feels like a designed editorial panel */
.fp-about{
  margin:0!important;
  padding-top:95px!important;
  padding-bottom:95px!important;
  background:
    linear-gradient(110deg,rgba(0,169,224,.075),transparent 34%),
    linear-gradient(290deg,rgba(236,0,140,.07),transparent 34%),
    #f7f9fb!important;
}

/* CTA becomes the visual closing punch */
.fp-cta{
  border-radius:0!important;
  background:
    linear-gradient(100deg,#0873e6 0%,#5d59d6 30%,#ec008c 62%,#ff7134 83%,#ffd100 120%)!important;
  color:#fff!important;
}
.fp-cta h2,.fp-cta p{color:#fff!important}

/* stronger vertical rhythm */
.fp-process + .fp-about,
.fp-about + .fp-cta{border-top:1px solid rgba(18,24,32,.06)}

@media(max-width:1180px){
  .fp-premium-stage .fp-services{margin-top:-20px!important}
  .fp-portfolio-showcase .fp-projects-grid{grid-template-columns:1fr 1fr!important}
  .fp-portfolio-showcase .fp-project-card:first-child{grid-row:auto!important;min-height:360px!important}
  .fp-portfolio-showcase .fp-project-card:first-child img,
  .fp-portfolio-showcase .fp-project-card:first-child video{min-height:250px!important}
}
@media(max-width:760px){
  .fp-premium-stage .fp-hero{min-height:auto!important}
  .fp-premium-stage .fp-services{margin-top:10px!important}
  .fp-premium-stage .fp-services .fp-wrap{padding:22px 14px!important;border-radius:20px}
  .fp-portfolio-showcase{padding:70px 0!important}
  .fp-portfolio-showcase .fp-projects-grid{grid-template-columns:1fr!important}
  .fp-portfolio-showcase .fp-project-card,
  .fp-portfolio-showcase .fp-project-card:first-child{min-height:300px!important}
}


/* =========================================================
   STAGE 11 — COMPACT PREMIUM PORTFOLIO / LOWER PAGE
   ========================================================= */

/* Bring portfolio content forward immediately */
.fp-portfolio-showcase{
  padding-top:62px!important;
  padding-bottom:76px!important;
}
.fp-portfolio-showcase .fp-section-heading{
  margin-bottom:30px!important;
}
.fp-portfolio-showcase .fp-section-heading h2{
  margin-bottom:10px!important;
}

/* Dense editorial gallery: no large empty gaps */
.fp-portfolio-showcase .fp-projects-grid{
  grid-template-columns:1.18fr .82fr .82fr!important;
  grid-auto-flow:dense!important;
  grid-auto-rows:215px!important;
  gap:16px!important;
}
.fp-portfolio-showcase .fp-project-card{
  min-height:0!important;
  height:100%!important;
  display:flex!important;
  flex-direction:column!important;
}
.fp-portfolio-showcase .fp-project-card:first-child{
  grid-row:span 2!important;
  min-height:446px!important;
}
.fp-portfolio-showcase .fp-project-card:nth-child(4n+4){
  grid-column:span 2!important;
}
.fp-portfolio-showcase .fp-project-card img,
.fp-portfolio-showcase .fp-project-card video{
  width:100%!important;
  height:100%!important;
  min-height:0!important;
  object-fit:cover!important;
}
.fp-portfolio-showcase .fp-project-card:first-child img,
.fp-portfolio-showcase .fp-project-card:first-child video{
  min-height:0!important;
}

/* If card copy overlays exist, keep the media visually dominant */
.fp-portfolio-showcase .fp-project-card > div:not(:first-child){
  position:relative;
  z-index:2;
}

/* Compact transition into Process */
.fp-process{
  padding-top:72px!important;
  padding-bottom:72px!important;
}
.fp-about{
  padding-top:74px!important;
  padding-bottom:74px!important;
}

/* Add visual continuity to lower half */
.fp-process,
.fp-about{
  overflow:hidden;
}
.fp-process:before{
  opacity:.7!important;
}
.fp-about:after{
  content:"";
  position:absolute;
  width:320px;height:320px;
  right:-170px;top:10%;
  border-radius:50%;
  background:conic-gradient(from 40deg,
    rgba(0,169,224,.13),
    rgba(94,82,211,.08),
    rgba(236,0,140,.13),
    rgba(255,209,0,.12),
    rgba(0,169,224,.13));
  filter:blur(2px);
  pointer-events:none;
}

/* Desktop gallery keeps an editorial mosaic */
@media(max-width:1180px){
  .fp-portfolio-showcase .fp-projects-grid{
    grid-template-columns:1fr 1fr!important;
    grid-auto-rows:240px!important;
  }
  .fp-portfolio-showcase .fp-project-card:first-child{
    grid-row:span 2!important;
    min-height:496px!important;
  }
  .fp-portfolio-showcase .fp-project-card:nth-child(4n+4){
    grid-column:auto!important;
  }
}
@media(max-width:760px){
  .fp-portfolio-showcase{padding-top:50px!important;padding-bottom:58px!important}
  .fp-portfolio-showcase .fp-projects-grid{
    display:grid!important;
    grid-template-columns:1fr!important;
    grid-auto-rows:auto!important;
  }
  .fp-portfolio-showcase .fp-project-card,
  .fp-portfolio-showcase .fp-project-card:first-child{
    grid-row:auto!important;
    grid-column:auto!important;
    min-height:320px!important;
  }
}


/* =========================================================
   STAGE 12 — PREMIUM LOWER FLOW
   Gallery → Process → About → Quote → Footer
   ========================================================= */

/* Portfolio ending: stronger visual bridge into Process */
.fp-portfolio-showcase{
  padding-bottom:64px!important;
}
.fp-portfolio-showcase .fp-wrap{
  position:relative;
  z-index:2;
}
.fp-portfolio-showcase:before{
  box-shadow:0 12px 36px rgba(236,0,140,.12);
}

/* PROCESS — designed timeline instead of empty white section */
.fp-process{
  position:relative!important;
  padding:78px 0 82px!important;
  background:
    radial-gradient(circle at 8% 18%,rgba(0,169,224,.09),transparent 22%),
    radial-gradient(circle at 92% 82%,rgba(255,209,0,.10),transparent 22%),
    linear-gradient(180deg,#fff,#f8fafc)!important;
}
.fp-process .fp-wrap{
  position:relative;
  z-index:2;
}
.fp-process-grid{
  position:relative!important;
  gap:18px!important;
}
.fp-process-grid:before{
  content:"";
  position:absolute;
  left:8%;right:8%;top:42px;
  height:3px;
  border-radius:5px;
  background:linear-gradient(90deg,#00a9e0,#5e5bd8,#ec008c,#ff7134,#ffd100);
  opacity:.48;
  z-index:0;
}
.fp-process-card,
.fp-process-step{
  position:relative!important;
  z-index:1;
  background:rgba(255,255,255,.94)!important;
  border:1px solid rgba(18,24,32,.075)!important;
  border-radius:20px!important;
  padding:28px 22px!important;
  box-shadow:0 16px 38px rgba(18,24,32,.07)!important;
  transition:transform .25s ease,box-shadow .25s ease!important;
}
.fp-process-card:hover,
.fp-process-step:hover{
  transform:translateY(-6px);
  box-shadow:0 26px 50px rgba(18,24,32,.12)!important;
}

/* ABOUT — split editorial showroom feeling */
.fp-about{
  position:relative!important;
  padding:82px 0!important;
  background:#f4f7fa!important;
}
.fp-about:before{
  content:"";
  position:absolute;
  left:0;top:0;bottom:0;width:9px;
  background:linear-gradient(180deg,#00a9e0,#5e5bd8,#ec008c,#ff7134,#ffd100);
}
.fp-about .fp-wrap{
  position:relative;
  z-index:2;
}
.fp-about-grid{
  gap:48px!important;
  align-items:center!important;
}
.fp-about-card,
.fp-about-content{
  position:relative;
}
.fp-about-card{
  background:#fff!important;
  border-radius:26px!important;
  padding:34px!important;
  box-shadow:0 24px 60px rgba(18,24,32,.09)!important;
  border:1px solid rgba(18,24,32,.06)!important;
}

/* Premium stats/trust accents where present */
.fp-stat,
.fp-about-stat{
  background:#fff!important;
  border:1px solid rgba(18,24,32,.07)!important;
  border-radius:16px!important;
  box-shadow:0 10px 28px rgba(18,24,32,.055)!important;
}

/* QUOTE / CTA — make it a real conversion section */
.fp-cta{
  position:relative!important;
  padding:76px 0!important;
  overflow:hidden!important;
  background:
    linear-gradient(105deg,#0874e8 0%,#555edc 27%,#ec008c 58%,#ff7134 80%,#ffd100 118%)!important;
}
.fp-cta:after{
  content:"";
  position:absolute;
  width:460px;height:460px;
  right:-160px;top:-210px;
  border:1px solid rgba(255,255,255,.25);
  border-radius:50%;
  box-shadow:
    0 0 0 48px rgba(255,255,255,.055),
    0 0 0 96px rgba(255,255,255,.035);
  pointer-events:none;
}
.fp-cta .fp-wrap{
  position:relative;
  z-index:2;
}
.fp-cta h2{
  font-size:clamp(2rem,4vw,3.5rem)!important;
  letter-spacing:-.045em!important;
}
.fp-cta .fp-btn,
.fp-cta a[class*="btn"]{
  background:#fff!important;
  color:#121820!important;
  border-color:#fff!important;
  box-shadow:0 16px 36px rgba(18,24,32,.18)!important;
}

/* FOOTER — substantial closing area instead of abrupt end */
.fp-footer,
footer.site-footer{
  position:relative!important;
  padding-top:54px!important;
  background:#10161d!important;
  color:rgba(255,255,255,.76)!important;
  border-top:0!important;
}
.fp-footer:before,
footer.site-footer:before{
  content:"";
  position:absolute;top:0;left:0;right:0;height:5px;
  background:linear-gradient(90deg,#00a9e0,#5e5bd8,#ec008c,#ff7134,#ffd100);
}
.fp-footer a,
footer.site-footer a{color:#fff!important}
.fp-footer h3,.fp-footer h4,
footer.site-footer h3,footer.site-footer h4{color:#fff!important}

/* Continuous rhythm: remove excessive gaps between lower sections */
.fp-portfolio-showcase + .fp-process,
.fp-process + .fp-about,
.fp-about + .fp-cta{
  margin-top:0!important;
}

/* Desktop subtle ink/print marks */
@media(min-width:981px){
  .fp-process:after{
    content:"";
    position:absolute;
    left:-80px;bottom:28px;
    width:220px;height:220px;
    border-radius:50%;
    background:
      radial-gradient(circle,rgba(0,169,224,.13) 0 22%,transparent 23%),
      radial-gradient(circle at 70% 38%,rgba(236,0,140,.11) 0 14%,transparent 15%);
    filter:blur(1px);
    opacity:.75;
  }
}

/* Responsive lower flow */
@media(max-width:760px){
  .fp-process{padding:58px 0!important}
  .fp-process-grid:before{display:none}
  .fp-about{padding:58px 0!important}
  .fp-about:before{width:5px}
  .fp-cta{padding:58px 0!important}
  .fp-footer,footer.site-footer{padding-top:42px!important}
}


/* =========================================================
   STAGE 13 — DYNAMIC PHOTO-FIRST PROJECT GALLERY
   ========================================================= */

.fp-portfolio-showcase{
  padding-top:58px!important;
  padding-bottom:72px!important;
}
.fp-portfolio-showcase .fp-section-head{
  margin-bottom:24px!important;
}
.fp-filterbar{
  margin-bottom:24px!important;
  display:flex;
  gap:8px;
  flex-wrap:wrap;
}
.fp-project-carousel{
  display:grid;
  grid-template-columns:52px minmax(0,1fr) 52px;
  align-items:center;
  gap:14px;
  position:relative;
}
.fp-project-viewport{
  overflow:hidden;
  border-radius:22px;
  padding:8px 2px 18px;
}
.fp-project-track{
  display:flex;
  gap:18px;
  transition:transform .58s cubic-bezier(.2,.75,.2,1);
  will-change:transform;
}
.fp-project-slide{
  position:relative;
  min-height:390px;
  border-radius:20px;
  overflow:hidden;
  background:#161c23;
  border:1px solid rgba(255,255,255,.10);
  box-shadow:0 18px 45px rgba(0,0,0,.22);
  cursor:default;
  transition:transform .3s ease,box-shadow .3s ease;
}
.fp-project-slide:hover{
  transform:translateY(-7px);
  box-shadow:0 28px 60px rgba(0,0,0,.30);
}
.fp-project-slide-media{
  position:absolute;
  inset:0;
}
.fp-project-slide-media img,
.fp-project-slide-media video{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  transition:transform .55s ease,filter .55s ease;
}
.fp-project-slide:hover .fp-project-slide-media img,
.fp-project-slide:hover .fp-project-slide-media video{
  transform:scale(1.045);
}
.fp-project-slide-copy{
  position:absolute;
  left:0;right:0;bottom:0;
  padding:65px 22px 22px;
  color:#fff;
  background:linear-gradient(transparent,rgba(7,10,14,.86));
}
.fp-project-slide-copy small{
  display:block;
  font-size:.68rem;
  text-transform:uppercase;
  letter-spacing:.08em;
  opacity:.78;
  margin-bottom:5px;
}
.fp-project-slide-copy h3{
  margin:0;
  color:#fff!important;
  font-size:1.2rem;
  line-height:1.1;
}
.fp-project-arrow{
  width:48px;height:48px;
  border:0;border-radius:50%;
  background:#fff;color:#10151b;
  font-size:2.1rem;line-height:1;
  display:grid;place-items:center;
  cursor:pointer;
  box-shadow:0 10px 28px rgba(0,0,0,.16);
  transition:.2s ease;
}
.fp-project-arrow:hover:not(:disabled){
  transform:scale(1.07);
}
.fp-project-arrow:disabled{
  opacity:.25;
  cursor:default;
}
.fp-project-carousel-status{
  margin:5px auto 0;
  width:140px;
  display:grid;
  grid-template-columns:24px 1fr 24px;
  gap:9px;
  align-items:center;
  color:rgba(255,255,255,.68);
  font-size:.72rem;
  text-align:center;
}
.fp-project-carousel-status i{
  height:2px;
  background:linear-gradient(90deg,#00a9e0,#ec008c,#ffd100);
  border-radius:5px;
}

/* photo-only projects need no text space */
.fp-project-slide:not(:has(.fp-project-slide-copy)){
  min-height:390px;
}

/* keep empty state elegant */
.fp-project-empty{
  min-height:260px;
  display:grid;
  place-items:center;
  text-align:center;
  color:rgba(255,255,255,.72);
  border:1px dashed rgba(255,255,255,.18);
  border-radius:20px;
  flex:1 0 100%;
}

/* filtered buttons on dark showcase */
.fp-portfolio-showcase .fp-filter{
  background:rgba(255,255,255,.08)!important;
  color:#fff!important;
  border-color:rgba(255,255,255,.14)!important;
}
.fp-portfolio-showcase .fp-filter.is-active{
  background:#fff!important;
  color:#111820!important;
  border-color:#fff!important;
}

@media(max-width:1050px){
  .fp-project-carousel{grid-template-columns:44px minmax(0,1fr) 44px;gap:10px}
  .fp-project-arrow{width:42px;height:42px}
  .fp-project-slide{min-height:360px}
}
@media(max-width:650px){
  .fp-project-carousel{grid-template-columns:38px minmax(0,1fr) 38px;gap:7px}
  .fp-project-arrow{width:36px;height:36px;font-size:1.7rem}
  .fp-project-slide{min-height:330px}
}


/* =========================================================
   STAGE 14 — MULTI-MEDIA PROJECT GALLERY / VISUAL SHOWCASE
   ========================================================= */

/* Richer background so the gallery no longer feels plain */
.fp-portfolio-showcase{
  background:
    radial-gradient(circle at 8% 18%,rgba(0,169,224,.16),transparent 26%),
    radial-gradient(circle at 92% 16%,rgba(236,0,140,.13),transparent 25%),
    radial-gradient(circle at 88% 88%,rgba(255,209,0,.10),transparent 24%),
    linear-gradient(145deg,#0b1118 0%,#111a24 45%,#0c1219 100%)!important;
}
.fp-portfolio-showcase .fp-section-head{
  position:relative;
  z-index:2;
}
.fp-portfolio-showcase .fp-section-head:after{
  content:"";
  position:absolute;
  right:0;top:15%;
  width:42%;height:170px;
  background:
    linear-gradient(130deg,transparent 0 25%,rgba(0,169,224,.12) 26% 35%,transparent 36% 48%,rgba(236,0,140,.10) 49% 58%,transparent 59% 100%);
  pointer-events:none;
}

/* Slides vary rhythmically so it feels curated instead of flat */
.fp-project-slide{
  min-height:360px!important;
  border-radius:22px!important;
}
.fp-project-slide:nth-child(5n+1){
  min-height:410px!important;
}
.fp-project-slide:nth-child(5n+2){
  min-height:330px!important;
  margin-top:36px;
}
.fp-project-slide:nth-child(5n+3){
  min-height:385px!important;
  margin-top:12px;
}
.fp-project-slide:nth-child(5n+4){
  min-height:345px!important;
  margin-top:46px;
}
.fp-project-slide:nth-child(5n+5){
  min-height:400px!important;
}
.fp-project-viewport{
  padding-top:14px!important;
  padding-bottom:32px!important;
}

/* first asset in each project gets a stronger visual treatment */
.fp-project-slide.is-project-lead{
  border-color:rgba(255,255,255,.18)!important;
}
.fp-project-slide.is-project-lead:before{
  content:"";
  position:absolute;
  inset:0;
  z-index:2;
  pointer-events:none;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.05);
  border-radius:inherit;
}
.fp-project-count{
  display:inline-flex;
  margin-top:8px;
  padding:5px 9px;
  border-radius:999px;
  background:rgba(255,255,255,.13);
  font-size:.62rem;
  font-weight:800;
  letter-spacing:.04em;
}
.fp-media-type-badge{
  position:absolute;
  top:14px;right:14px;
  z-index:4;
  padding:7px 10px;
  border-radius:999px;
  background:rgba(9,13,18,.78);
  color:#fff;
  font-size:.65rem;
  font-weight:800;
  backdrop-filter:blur(8px);
}
.fp-project-slide video{
  cursor:pointer;
}

/* Animated CMYK accent behind carousel */
.fp-project-carousel:before{
  content:"";
  position:absolute;
  left:7%;right:7%;bottom:-15px;height:70px;
  background:linear-gradient(90deg,rgba(0,169,224,.11),rgba(236,0,140,.09),rgba(255,209,0,.10));
  filter:blur(35px);
  pointer-events:none;
}

/* Project section copy gets less empty space */
.fp-portfolio-showcase .fp-section-head-split{
  align-items:end!important;
  gap:42px!important;
}
.fp-portfolio-showcase .fp-section-head-split>p{
  max-width:460px!important;
  padding:18px 20px;
  border-left:3px solid #ec008c;
  background:rgba(255,255,255,.045);
  border-radius:0 14px 14px 0;
}

/* Tablet/mobile: keep variation modest */
@media(max-width:1050px){
  .fp-project-slide:nth-child(n){margin-top:0!important;min-height:350px!important}
}
@media(max-width:650px){
  .fp-project-slide:nth-child(n){min-height:330px!important}
  .fp-portfolio-showcase .fp-section-head-split>p{padding:12px 14px}
}

/* =========================================================
   STAGE 15 — WIDE CINEMATIC MULTI-MEDIA SHOWCASE
   Keeps Stage 14 multi-upload system; enlarges only Projects.
   ========================================================= */
.fp-projects-section{
  padding:88px 0 96px!important;
  background:
    radial-gradient(circle at 0% 18%,rgba(0,169,224,.14),transparent 24%),
    radial-gradient(circle at 100% 22%,rgba(236,0,140,.12),transparent 23%),
    radial-gradient(circle at 78% 100%,rgba(255,209,0,.09),transparent 23%),
    linear-gradient(180deg,#fbfdff 0%,#fff 46%,#fffafd 100%)!important;
}
.fp-projects-section .fp-wrap{
  width:min(94vw,1600px)!important;
  max-width:none!important;
}
.fp-projects-section .fp-section-head-split{
  display:grid!important;
  grid-template-columns:minmax(0,1.25fr) minmax(320px,.75fr)!important;
  gap:80px!important;
  align-items:end!important;
  margin:0 0 34px!important;
}
.fp-projects-section .fp-section-head h2{
  margin:.12em 0 0!important;
  max-width:820px!important;
  font-size:clamp(3.6rem,5.4vw,6.5rem)!important;
  line-height:.86!important;
  letter-spacing:-.065em!important;
}
.fp-projects-section .fp-section-head-split>p{
  max-width:520px!important;
  margin:0 0 8px!important;
  padding:18px 22px!important;
  border-left:4px solid var(--fp-m)!important;
  border-radius:0 16px 16px 0!important;
  background:rgba(255,255,255,.72)!important;
  box-shadow:0 12px 34px rgba(20,28,38,.055)!important;
  backdrop-filter:blur(8px);
}
.fp-projects-section .fp-filterbar{margin:0 0 26px!important}
.fp-projects-section .fp-project-carousel{
  width:100%!important;
  display:grid!important;
  grid-template-columns:58px minmax(0,1fr) 58px!important;
  gap:16px!important;
  align-items:center!important;
  position:relative!important;
}
.fp-projects-section .fp-project-viewport{
  width:100%!important;
  overflow:hidden!important;
  border-radius:28px!important;
  padding:16px 4px 28px!important;
  background:linear-gradient(135deg,rgba(255,255,255,.86),rgba(255,255,255,.58))!important;
  box-shadow:0 28px 80px rgba(23,31,43,.09)!important;
  border:1px solid rgba(24,31,42,.055)!important;
}
.fp-projects-section .fp-project-track{gap:22px!important}
.fp-projects-section .fp-project-slide,
.fp-projects-section .fp-project-slide:nth-child(n){
  min-height:470px!important;
  margin-top:0!important;
  border-radius:24px!important;
  box-shadow:0 20px 48px rgba(18,25,35,.18)!important;
}
.fp-projects-section .fp-project-slide:nth-child(3n+2){min-height:430px!important;margin-top:24px!important}
.fp-projects-section .fp-project-slide:nth-child(3n+3){min-height:455px!important;margin-top:10px!important}
.fp-projects-section .fp-project-slide-media img,
.fp-projects-section .fp-project-slide-media video{object-fit:cover!important}
.fp-projects-section .fp-project-arrow{
  width:54px!important;height:54px!important;
  background:#fff!important;color:#121820!important;
  box-shadow:0 14px 34px rgba(18,25,35,.15)!important;
}
.fp-projects-section .fp-project-carousel-status{
  color:#68717d!important;
  margin-top:10px!important;
}
.fp-projects-section:after{
  content:"WORK"!important;
  right:-18px!important;bottom:-54px!important;
  font-size:13rem!important;
  color:rgba(22,29,38,.025)!important;
}
@media(max-width:1050px){
  .fp-projects-section .fp-section-head-split{grid-template-columns:1fr!important;gap:24px!important}
  .fp-projects-section .fp-section-head h2{font-size:clamp(3rem,8vw,5.2rem)!important}
  .fp-projects-section .fp-project-slide:nth-child(n){min-height:400px!important;margin-top:0!important}
}
@media(max-width:650px){
  .fp-projects-section{padding:62px 0 70px!important}
  .fp-projects-section .fp-wrap{width:min(94vw,1600px)!important}
  .fp-projects-section .fp-project-carousel{grid-template-columns:40px minmax(0,1fr) 40px!important;gap:7px!important}
  .fp-projects-section .fp-project-arrow{width:38px!important;height:38px!important}
  .fp-projects-section .fp-project-slide:nth-child(n){min-height:360px!important}
}


/* =========================================================
   STAGE 16 — SIMPLE DYNAMIC WORK WALL
   No categories, no filters, no project cards.
   ========================================================= */

.fp-work-wall-section{
  position:relative!important;
  padding:78px 0 86px!important;
  overflow:hidden!important;
  color:#fff!important;
  background:
    radial-gradient(circle at 5% 15%,rgba(0,169,224,.20),transparent 25%),
    radial-gradient(circle at 96% 20%,rgba(236,0,140,.18),transparent 24%),
    radial-gradient(circle at 80% 90%,rgba(255,209,0,.10),transparent 26%),
    linear-gradient(145deg,#0b1118,#111a24 48%,#090f15)!important;
}
.fp-work-wall-section:before{
  content:"";
  position:absolute;
  top:0;left:0;right:0;height:7px;
  background:linear-gradient(90deg,#00a9e0,#625bd8,#ec008c,#ff7036,#ffd100);
}
.fp-work-wall-head{
  display:grid!important;
  grid-template-columns:1fr .8fr;
  gap:70px;
  align-items:end;
  margin-bottom:34px!important;
}
.fp-work-wall-head h2{
  margin:10px 0 0!important;
  color:#fff!important;
  font-size:clamp(3rem,5vw,5.6rem)!important;
  line-height:.88!important;
  letter-spacing:-.06em!important;
}
.fp-work-wall-head p{
  max-width:520px;
  margin:0 0 8px;
  color:rgba(255,255,255,.70);
  font-size:1rem;
  line-height:1.65;
  padding:18px 20px;
  border-left:3px solid #ec008c;
  background:rgba(255,255,255,.04);
  border-radius:0 14px 14px 0;
}
.fp-work-wall-section .fp-eyebrow{color:#ff4aa8!important}

.fp-work-wall{
  position:relative;
  display:grid;
  gap:18px;
}
.fp-work-wall:before,
.fp-work-wall:after{
  content:"";
  position:absolute;
  top:0;bottom:0;
  width:11vw;
  z-index:5;
  pointer-events:none;
}
.fp-work-wall:before{left:0;background:linear-gradient(90deg,#0b1118,transparent)}
.fp-work-wall:after{right:0;background:linear-gradient(270deg,#0b1118,transparent)}

.fp-work-row{
  overflow:hidden;
  width:100%;
  padding:4px 0;
}
.fp-work-track{
  display:flex;
  width:max-content;
  gap:18px;
  will-change:transform;
}
.fp-work-tile{
  position:relative;
  flex:0 0 auto;
  width:clamp(270px,24vw,430px);
  height:260px;
  margin:0;
  overflow:hidden;
  border-radius:18px;
  background:#161d25;
  border:1px solid rgba(255,255,255,.11);
  box-shadow:0 18px 40px rgba(0,0,0,.25);
  transition:transform .28s ease,box-shadow .28s ease;
}
.fp-work-row-b .fp-work-tile{
  width:clamp(240px,20vw,360px);
  height:205px;
}
.fp-work-tile:nth-child(4n+2){width:clamp(320px,29vw,500px)}
.fp-work-row-b .fp-work-tile:nth-child(3n+1){width:clamp(300px,25vw,430px)}

.fp-work-tile img,
.fp-work-tile video{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .5s ease,filter .5s ease;
}
.fp-work-tile:hover{
  z-index:6;
  transform:translateY(-7px) scale(1.015);
  box-shadow:0 30px 65px rgba(0,0,0,.36);
}
.fp-work-tile:hover img,
.fp-work-tile:hover video{transform:scale(1.045)}

.fp-work-video-badge{
  position:absolute;
  right:13px;top:13px;
  width:34px;height:34px;
  border-radius:50%;
  display:grid;place-items:center;
  color:#fff;
  background:rgba(9,13,18,.72);
  backdrop-filter:blur(8px);
  font-size:.7rem;
}
.fp-work-empty{
  min-height:250px;
  display:grid;
  place-items:center;
  text-align:center;
  color:rgba(255,255,255,.7);
  border:1px dashed rgba(255,255,255,.20);
  border-radius:22px;
}

/* Hide all legacy project gallery/filter presentation */
.fp-work-wall-section .fp-filterbar,
.fp-work-wall-section .fp-project-carousel,
.fp-work-wall-section .fp-project-grid,
.fp-work-wall-section .fp-project-carousel-status{
  display:none!important;
}

/* Bring process closer; wall already creates strong transition */
.fp-work-wall-section + .fp-process{
  padding-top:70px!important;
}

@media(max-width:900px){
  .fp-work-wall-head{grid-template-columns:1fr;gap:22px}
  .fp-work-wall-head p{max-width:none}
  .fp-work-tile{width:340px;height:235px}
  .fp-work-row-b .fp-work-tile{width:300px;height:190px}
}
@media(max-width:600px){
  .fp-work-wall-section{padding:58px 0 62px!important}
  .fp-work-tile{width:270px;height:210px}
  .fp-work-row-b .fp-work-tile{width:240px;height:175px}
  .fp-work-wall:before,.fp-work-wall:after{width:7vw}
}


/* =========================================================
   STAGE 18 — PRINTER FULL IMAGE
   More vertical output area so portrait/square artwork is not
   clipped at the top. Keeps the printer itself unchanged.
   ========================================================= */
@media (min-width: 901px){
  .fp-printer-stage,
  .fp-hero-printer,
  .printer-stage,
  .hero-printer{
    overflow: visible !important;
  }

  /* Increase the visible paper/output window downward. */
  .fp-printer-paper,
  .fp-printer-output,
  .printer-paper,
  .printer-output{
    height: clamp(310px, 25vw, 430px) !important;
    min-height: 310px !important;
    max-height: none !important;
    overflow: hidden !important;
  }

  /* Always show the complete uploaded artwork inside the paper. */
  .fp-printer-paper img,
  .fp-printer-output img,
  .printer-paper img,
  .printer-output img,
  .fp-printer-paper video,
  .fp-printer-output video,
  .printer-paper video,
  .printer-output video{
    width: 100% !important;
    height: 100% !important;
    object-fit: contain !important;
    object-position: center top !important;
  }
}

/* Tablet/mobile: preserve full artwork without cropping. */
@media (max-width: 900px){
  .fp-printer-paper img,
  .fp-printer-output img,
  .printer-paper img,
  .printer-output img,
  .fp-printer-paper video,
  .fp-printer-output video,
  .printer-paper video,
  .printer-output video{
    object-fit: contain !important;
    object-position: center top !important;
  }
}

/* =========================================================
   STAGE 18.1 — PRINTER ARTWORK LOWER START
   Lower ONLY the printable paper/artwork area below the feed
   slot so the top of uploaded artwork remains fully visible.
   Printer body, hero copy and service section stay unchanged.
   ========================================================= */
@media (min-width: 901px){
  .fp-material-shell{
    top:225px !important;
    height:305px !important;
  }
  .fp-project-print img,
  .fp-project-print video{
    width:100% !important;
    height:100% !important;
    object-fit:contain !important;
    object-position:center top !important;
  }
}

/* =========================================================
   STAGE 18.2 — PRINTER BOTTOM FIT
   Keep the corrected top start from 18.1 and shorten only the
   printable artwork area at the bottom so it finishes above
   the lower printer rail instead of passing behind it.
   ========================================================= */
@media (min-width: 901px){
  .fp-material-shell{
    top:225px !important;
    height:280px !important;
  }
  .fp-project-print img,
  .fp-project-print video{
    width:100% !important;
    height:100% !important;
    object-fit:contain !important;
    object-position:center top !important;
  }
}


/* =========================================================
   STAGE 18.3 — PRINTER SAFE FRAME
   The paper/artwork ends ABOVE the lower rail. The full image
   scales inside this exact safe frame instead of passing behind it.
   ========================================================= */
@media (min-width:901px){
  .fp-material-shell{
    top:225px!important;
    height:248px!important;          /* 225 + 248 = 473, safely above rail at ~488 */
    overflow:hidden!important;
    background:#fff!important;
  }

  .fp-project-print,
  .fp-project-print .fp-print-item,
  .fp-project-print .fp-reveal{
    height:100%!important;
    max-height:100%!important;
    overflow:hidden!important;
  }

  .fp-project-print img,
  .fp-project-print video{
    display:block!important;
    width:100%!important;
    height:100%!important;
    max-height:100%!important;
    object-fit:contain!important;
    object-position:center top!important;
    background:#fff!important;
  }

  /* Keep lower rail visually in front, with a clean gap above it. */
  .fp-take-roll{
    z-index:30!important;
  }
}

/* Proportional safe frame on medium screens */
@media (min-width:701px) and (max-width:900px){
  .fp-material-shell{
    overflow:hidden!important;
  }
  .fp-project-print,
  .fp-project-print .fp-print-item,
  .fp-project-print .fp-reveal{
    height:100%!important;
    overflow:hidden!important;
  }
  .fp-project-print img,
  .fp-project-print video{
    width:100%!important;
    height:100%!important;
    object-fit:contain!important;
    object-position:center top!important;
  }
}


/* STAGE 18.4 — HARD STOP ABOVE LOWER RAIL */
@media (min-width:901px){
  .fp-material-shell{
    top:225px!important;
    height:245px!important;
    max-height:245px!important;
    overflow:hidden!important;
    clip-path:inset(0 0 0 0)!important;
    animation:none!important;
  }
  .fp-material,
  .fp-project-print,
  .fp-project-print .fp-print-item,
  .fp-project-print .fp-reveal{
    top:0!important;
    bottom:auto!important;
    height:245px!important;
    max-height:245px!important;
    overflow:hidden!important;
  }
  .fp-project-print img,
  .fp-project-print video{
    display:block!important;
    width:100%!important;
    height:245px!important;
    max-height:245px!important;
    object-fit:contain!important;
    object-position:center top!important;
    overflow:hidden!important;
    background:#fff!important;
  }
  .fp-take-roll{z-index:50!important;}
}


/* =========================================================
   STAGE 18.5 — PRINTER CENTERED FULL ARTWORK
   Keep the safe vertical frame, but make the paper itself
   narrower and centered so complete artwork reads larger.
   No stretching, no crop, no overlap behind lower rail.
   ========================================================= */
@media (min-width:901px){
  .fp-material-shell{
    top:225px!important;
    height:245px!important;
    left:19%!important;
    right:19%!important;
    width:auto!important;
    max-width:none!important;
    margin:0!important;
    overflow:hidden!important;
    background:#fff!important;
  }

  .fp-material,
  .fp-project-print,
  .fp-project-print .fp-print-item,
  .fp-project-print .fp-reveal{
    width:100%!important;
    height:245px!important;
    max-height:245px!important;
    overflow:hidden!important;
    background:#fff!important;
  }

  .fp-project-print img,
  .fp-project-print video{
    display:block!important;
    width:100%!important;
    height:100%!important;
    max-width:100%!important;
    max-height:245px!important;
    object-fit:contain!important;
    object-position:center center!important;
    background:#fff!important;
    margin:0 auto!important;
  }

  .fp-take-roll{
    z-index:60!important;
  }
}

/* Large desktop: slightly wider paper while preserving full artwork */
@media (min-width:1500px){
  .fp-material-shell{
    left:17.5%!important;
    right:17.5%!important;
  }
}

/* Medium desktop: keep proportion balanced */
@media (min-width:901px) and (max-width:1200px){
  .fp-material-shell{
    left:18%!important;
    right:18%!important;
  }
}


/* =========================================================
   STAGE 18.6 — CLEAN PRINTER OUTPUT
   Remove production badge, restore wide paper, maximize the
   artwork inside the safe vertical opening without distortion.
   ========================================================= */
@media (min-width:901px){
  .fp-material-shell{
    top:225px!important;
    height:245px!important;
    left:9.5%!important;
    right:9.5%!important;
    width:auto!important;
    max-width:none!important;
    overflow:hidden!important;
    background:#fff!important;
  }

  .fp-material,
  .fp-project-print,
  .fp-project-print .fp-print-item,
  .fp-project-print .fp-reveal{
    width:100%!important;
    height:245px!important;
    max-height:245px!important;
    overflow:hidden!important;
    background:#fff!important;
  }

  .fp-project-print img,
  .fp-project-print video{
    display:block!important;
    width:100%!important;
    height:100%!important;
    max-width:100%!important;
    max-height:245px!important;
    object-fit:contain!important;
    object-position:center center!important;
    margin:0 auto!important;
    background:#fff!important;
  }

  /* Production label is intentionally removed in this stage. */
  .fp-production-badge,
  .fp-production-status,
  .fp-printer-status,
  .fp-status-badge{
    display:none!important;
  }

  .fp-take-roll{z-index:60!important;}
}


/* =========================================================
   STAGE 18.7 — PRINTER FULLER ARTWORK / CLEAN OUTPUT
   Enlarges the artwork inside the existing paper opening,
   keeps it centered and contained, and removes residual status dots.
   Printer geometry and all other site sections remain unchanged.
   ========================================================= */
@media (min-width:901px){
  .fp-material-shell{
    top:225px!important;
    height:245px!important;
    left:9.5%!important;
    right:9.5%!important;
    overflow:hidden!important;
    background:#fff!important;
  }

  .fp-material,
  .fp-project-print,
  .fp-project-print .fp-print-item,
  .fp-project-print .fp-reveal{
    width:100%!important;
    height:245px!important;
    overflow:hidden!important;
    background:#fff!important;
  }

  .fp-project-print img,
  .fp-project-print video{
    display:block!important;
    width:100%!important;
    height:100%!important;
    max-width:none!important;
    max-height:none!important;
    object-fit:contain!important;
    object-position:center center!important;
    transform:scale(1.16)!important;
    transform-origin:center center!important;
    margin:0 auto!important;
    background:#fff!important;
  }

  .fp-production-badge,
  .fp-production-status,
  .fp-printer-status,
  .fp-status-badge,
  .fp-material-shell > .status,
  .fp-material-shell > .badge{
    display:none!important;
  }

  .fp-material-shell:before,
  .fp-material-shell:after,
  .fp-project-print:before,
  .fp-project-print:after{
    content:none!important;
    display:none!important;
  }

  .fp-take-roll{z-index:60!important;}
}


/* =========================================================
   STAGE 18.8 — PRINTER OUTPUT STRUCTURAL REBUILD
   Real output frame: taller opening, lower bottom rail, media-
   sized paper, no legacy paper overlays or status label.
   ========================================================= */
@media (min-width:901px){
  .fp-printer-stage{
    min-height:575px!important;
  }

  .fp-printer{
    height:560px!important;
  }

  /* Extend supports so the printed piece has more vertical room. */
  .fp-printer-stand{
    top:188px!important;
    height:350px!important;
  }
  .fp-printer-stand:before,
  .fp-printer-stand:after{
    height:330px!important;
  }

  /* Lower the physical bottom rail. */
  .fp-take-roll{
    top:520px!important;
    left:7%!important;
    right:7%!important;
    height:18px!important;
    z-index:60!important;
  }

  /* Paper becomes the exact media frame instead of a fixed wide white rectangle. */
  .fp-material-shell{
    --fp-output-width:420px;
    top:220px!important;
    left:50%!important;
    right:auto!important;
    width:min(var(--fp-output-width),82%)!important;
    height:292px!important;
    max-width:82%!important;
    transform:translateX(-50%)!important;
    animation:none!important;
    overflow:hidden!important;
    background:transparent!important;
    filter:drop-shadow(0 10px 16px rgba(0,0,0,.13))!important;
  }

  .fp-project-print,
  .fp-project-print .fp-print-item,
  .fp-project-print .fp-reveal{
    width:100%!important;
    height:100%!important;
    max-width:100%!important;
    max-height:100%!important;
    overflow:hidden!important;
    background:transparent!important;
  }

  .fp-project-print img,
  .fp-project-print video{
    display:block!important;
    width:100%!important;
    height:100%!important;
    max-width:100%!important;
    max-height:100%!important;
    object-fit:contain!important;
    object-position:center center!important;
    transform:none!important;
    margin:0!important;
    background:transparent!important;
  }

  /* Remove all legacy paper/badge/pill artifacts. */
  .fp-material,
  .fp-paper-feed,
  .fp-print-label,
  .fp-production-badge,
  .fp-production-status,
  .fp-printer-status,
  .fp-status-badge{
    display:none!important;
  }

  .fp-material-shell:before,
  .fp-material-shell:after,
  .fp-project-print:after{
    display:none!important;
    content:none!important;
  }

  /* Retain only the moving CMYK print line. */
  .fp-project-print .fp-reveal:before{
    display:block!important;
  }
}

@media (min-width:901px) and (max-width:1200px){
  .fp-printer{
    height:535px!important;
  }
  .fp-material-shell{
    top:215px!important;
    height:270px!important;
  }
  .fp-take-roll{
    top:492px!important;
  }
}


/* =========================================================
   STAGE 18.9 — PRINTER FULL-BLEED ARTWORK
   Matches the approved visual reference:
   large artwork, no white paper field, fills the printer opening.
   ========================================================= */
@media (min-width:901px){
  .fp-printer-stage{
    min-height:575px!important;
  }

  .fp-printer{
    height:560px!important;
  }

  .fp-printer-stand{
    top:188px!important;
    height:350px!important;
  }
  .fp-printer-stand:before,
  .fp-printer-stand:after{
    height:330px!important;
  }

  /* Wide output opening between the printer supports */
  .fp-material-shell{
    top:205px!important;
    left:8.5%!important;
    right:8.5%!important;
    width:auto!important;
    max-width:none!important;
    height:312px!important;
    transform:none!important;
    overflow:hidden!important;
    background:transparent!important;
    filter:drop-shadow(0 11px 18px rgba(0,0,0,.16))!important;
    animation:none!important;
  }

  .fp-project-print,
  .fp-project-print .fp-print-item,
  .fp-project-print .fp-reveal{
    position:absolute!important;
    inset:0!important;
    width:100%!important;
    height:100%!important;
    max-width:none!important;
    max-height:none!important;
    overflow:hidden!important;
    background:transparent!important;
  }

  /* Artwork becomes the visible "paper" itself */
  .fp-project-print img,
  .fp-project-print video{
    display:block!important;
    width:100%!important;
    height:100%!important;
    max-width:none!important;
    max-height:none!important;
    object-fit:cover!important;
    object-position:center center!important;
    transform:none!important;
    margin:0!important;
    background:transparent!important;
  }

  /* No legacy paper background, labels or status artifacts */
  .fp-material,
  .fp-paper-feed,
  .fp-print-label,
  .fp-production-badge,
  .fp-production-status,
  .fp-printer-status,
  .fp-status-badge{
    display:none!important;
  }

  .fp-material-shell:before,
  .fp-material-shell:after,
  .fp-project-print:after{
    content:none!important;
    display:none!important;
  }

  /* Bottom rail sits directly below the artwork */
  .fp-take-roll{
    top:518px!important;
    left:7%!important;
    right:7%!important;
    height:18px!important;
    z-index:70!important;
  }

  /* Keep the CMYK print reveal line only */
  .fp-project-print .fp-reveal:before{
    display:block!important;
  }
}

/* Medium desktop */
@media (min-width:901px) and (max-width:1200px){
  .fp-printer{
    height:535px!important;
  }
  .fp-material-shell{
    top:202px!important;
    left:9%!important;
    right:9%!important;
    height:286px!important;
  }
  .fp-take-roll{
    top:490px!important;
  }
}


/* STAGE 18.10 — keep the complete artwork visible inside printer */
@media (min-width:901px){
  .fp-material-shell{
    top:205px!important;
    left:8.5%!important;
    right:8.5%!important;
    width:auto!important;
    height:312px!important;
    background:transparent!important;
    overflow:hidden!important;
    display:flex!important;
    align-items:flex-start!important;
    justify-content:center!important;
  }
  .fp-project-print,
  .fp-project-print .fp-print-item,
  .fp-project-print .fp-reveal{
    inset:0!important;
    width:100%!important;
    height:100%!important;
    background:transparent!important;
  }
  .fp-project-print img,
  .fp-project-print video{
    width:100%!important;
    height:100%!important;
    object-fit:contain!important;
    object-position:center top!important;
    background:transparent!important;
  }
}


/* =========================================================
   STAGE 18.11 — LARGE COMPLETE PRINTER ARTWORK
   Full image visible, maximized inside the printer opening.
   ========================================================= */
@media (min-width:901px){
  .fp-printer-stage{min-height:575px!important;}
  .fp-printer{height:560px!important;}

  .fp-material-shell{
    top:205px!important;
    bottom:auto!important;
    left:7.4%!important;
    right:7.4%!important;
    width:auto!important;
    max-width:none!important;
    height:330px!important;
    overflow:hidden!important;
    background:transparent!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
  }

  .fp-project-print,
  .fp-project-print .fp-print-item,
  .fp-project-print .fp-reveal{
    position:absolute!important;
    inset:0!important;
    width:100%!important;
    height:100%!important;
    overflow:hidden!important;
    background:transparent!important;
  }

  .fp-project-print img,
  .fp-project-print video{
    display:block!important;
    width:100%!important;
    height:100%!important;
    max-width:100%!important;
    max-height:100%!important;
    object-fit:contain!important;
    object-position:center center!important;
    margin:0!important;
    transform:none!important;
    background:transparent!important;
  }

  .fp-take-roll{
    top:538px!important;
    left:7%!important;
    right:7%!important;
    z-index:80!important;
  }

  .fp-material,
  .fp-paper-feed,
  .fp-print-label,
  .fp-production-badge,
  .fp-production-status,
  .fp-printer-status,
  .fp-status-badge{display:none!important;}
}

@media (min-width:901px) and (max-width:1200px){
  .fp-material-shell{
    left:8%!important;
    right:8%!important;
    height:305px!important;
  }
  .fp-take-roll{top:515px!important;}
}


/* ============================================================
   STAGE 18.12 — PRINTER STRUCTURE REBUILD
   The artwork is no longer inside the legacy "paper" system.
   One clean viewport + one reveal layer. No paper background.
   ============================================================ */
.fp-output-window,
.fp-output-window *{box-sizing:border-box}

@media (min-width:901px){
  .fp-printer-stage{
    min-height:625px!important;
  }
  .fp-printer{
    width:min(100%,860px)!important;
    height:610px!important;
  }

  /* Taller lower printer structure so portrait/square work can be large AND complete */
  .fp-printer-stand{
    top:205px!important;
    height:390px!important;
  }
  .fp-printer-stand:before,
  .fp-printer-stand:after{
    height:365px!important;
  }

  /* Completely new output viewport */
  .fp-output-window{
    position:absolute;
    z-index:7;
    top:218px;
    left:10%;
    right:10%;
    height:350px;
    overflow:hidden;
    background:transparent;
    display:flex;
    align-items:flex-start;
    justify-content:center;
    pointer-events:none;
  }

  .fp-output-item{
    position:absolute;
    inset:0;
    display:flex;
    align-items:flex-start;
    justify-content:center;
    opacity:0;
    visibility:hidden;
    transition:opacity .38s ease;
  }
  .fp-output-item.is-active{
    opacity:1;
    visibility:visible;
  }

  .fp-output-reveal{
    position:absolute;
    inset:0;
    display:flex;
    align-items:flex-start;
    justify-content:center;
    overflow:hidden;
    clip-path:inset(0 0 100% 0);
  }
  .fp-output-item.is-active .fp-output-reveal{
    animation:fpOutputReveal 5.7s linear forwards;
  }

  /* Critical rule: full original image, maximum possible size, ZERO cropping */
  .fp-output-reveal img,
  .fp-output-reveal video{
    display:block;
    width:auto!important;
    height:100%!important;
    max-width:100%!important;
    max-height:100%!important;
    object-fit:contain!important;
    object-position:center top!important;
    margin:0!important;
    padding:0!important;
    transform:none!important;
    background:transparent!important;
    filter:drop-shadow(0 8px 12px rgba(0,0,0,.12));
  }

  /* Wide artwork can use full width while still staying complete */
  .fp-output-reveal img[width],
  .fp-output-reveal video{
    max-width:100%!important;
  }

  .fp-output-roll{
    top:568px!important;
    left:9%!important;
    right:9%!important;
    z-index:9!important;
  }

  /* Disable the old paper engine if any cached/legacy node survives */
  .fp-material-shell,
  .fp-project-print,
  .fp-paper-feed,
  .fp-material{
    display:none!important;
  }
}

@keyframes fpOutputReveal{
  0%{clip-path:inset(0 0 100% 0)}
  10%{clip-path:inset(0 0 92% 0)}
  100%{clip-path:inset(0 0 0 0)}
}

@media (min-width:901px) and (max-width:1200px){
  .fp-printer{height:585px!important}
  .fp-output-window{
    top:215px;
    left:10%;
    right:10%;
    height:325px;
  }
  .fp-output-roll{top:540px!important}
}

@media (max-width:900px){
  .fp-output-window{
    position:absolute;
    z-index:7;
    top:180px;
    left:12%;
    right:12%;
    height:270px;
    overflow:hidden;
    display:flex;
    justify-content:center;
    background:transparent;
  }
  .fp-output-item{position:absolute;inset:0;opacity:0;visibility:hidden}
  .fp-output-item.is-active{opacity:1;visibility:visible}
  .fp-output-reveal{position:absolute;inset:0;display:flex;justify-content:center;overflow:hidden}
  .fp-output-reveal img,.fp-output-reveal video{
    width:auto!important;height:100%!important;max-width:100%!important;object-fit:contain!important
  }
}

/* ============================================================
   STAGE 18.13 — HERO PRINTER PROPORTION BALANCE
   Desktop: reduce the complete printer assembly as ONE unit.
   Keeps Stage 18.12 output geometry untouched internally.
   ============================================================ */
@media (min-width:1201px){
  .fp-printer-stage{
    min-height:545px!important;
  }
  .fp-printer{
    transform:scale(.87)!important;
    transform-origin:top center!important;
  }
}


/* ==========================================================
   Stage 18.14 — REAL PRINTER SIZE 87%
   Reduce the actual printer viewport dimensions, not transform scale.
   Keeps the rebuilt Stage 18.12 internal image structure intact.
   ========================================================== */
@media (min-width: 1100px) {
  .hero-printer,
  .printer-wrap,
  .printer-stage,
  .printer-machine,
  .fp-printer,
  [class*="printer"][class*="hero"] {
    max-width: 760px !important;
  }

  /* Rebuilt viewport follows the machine's real width */
  .hero-printer .printer-viewport,
  .printer-wrap .printer-viewport,
  .printer-stage .printer-viewport,
  .fp-printer .printer-viewport {
    width: 100% !important;
  }
}


/* =========================================================
   STAGE 18.15 — BALANCED HERO PRINTER (84%)
   Reduce the COMPLETE rebuilt printer as one visual unit.
   Also reduce reserved stage height so the hero actually
   becomes more compact instead of keeping the same footprint.
   ========================================================= */
@media (min-width:1101px){
  .fp-printer-stage{
    min-height:520px!important;
    height:520px!important;
    display:grid!important;
    place-items:start center!important;
    overflow:visible!important;
  }

  .fp-printer{
    width:860px!important;
    max-width:860px!important;
    height:610px!important;
    transform:scale(.84)!important;
    transform-origin:center top!important;
    margin:0!important;
  }

  /* Keep printer centered within its hero column after scaling. */
  .fp-hero-grid{
    align-items:start!important;
  }
}

/* Slightly larger on medium desktop so it doesn't become too small */
@media (min-width:901px) and (max-width:1100px){
  .fp-printer-stage{
    min-height:500px!important;
    height:500px!important;
  }
  .fp-printer{
    transform:scale(.88)!important;
    transform-origin:center top!important;
  }
}

/* Do not apply desktop scaling on phones/tablets */
@media (max-width:900px){
  .fp-printer{
    transform:none!important;
  }
}


/* =========================================================
   STAGE 18.16 — SMALL PRINTER + HERO DEPTH
   Title is the protagonist; printer is a secondary visual.
   Adds subtle print-inspired background depth on the right.
   ========================================================= */
@media (min-width:1101px){
  .fp-printer-stage{
    min-height:410px!important;
    height:410px!important;
    display:grid!important;
    place-items:start center!important;
    position:relative!important;
  }

  .fp-printer{
    width:860px!important;
    max-width:860px!important;
    height:610px!important;
    transform:scale(.66)!important;
    transform-origin:center top!important;
    margin-top:12px!important;
    z-index:4!important;
  }

  /* Give the title more authority in the hero composition */
  .fp-hero-grid{
    grid-template-columns:minmax(600px,1.18fr) minmax(430px,.82fr)!important;
    gap:clamp(60px,6vw,105px)!important;
    align-items:center!important;
  }
  .fp-hero-copy{
    max-width:690px!important;
    position:relative!important;
    z-index:6!important;
  }

  /* Subtle background artwork behind/around the smaller printer */
  .fp-printer-stage:before{
    content:"";
    position:absolute;
    width:520px;
    height:330px;
    left:50%;
    top:45px;
    transform:translateX(-50%);
    border-radius:44% 56% 52% 48% / 42% 47% 53% 58%;
    background:
      radial-gradient(circle at 28% 35%,rgba(0,169,224,.16),transparent 34%),
      radial-gradient(circle at 72% 35%,rgba(236,0,140,.14),transparent 35%),
      radial-gradient(circle at 62% 78%,rgba(255,209,0,.13),transparent 34%);
    filter:blur(2px);
    z-index:1;
    pointer-events:none;
  }

  .fp-printer-stage:after{
    content:"";
    position:absolute;
    width:420px;
    height:260px;
    left:50%;
    top:95px;
    transform:translateX(-50%) rotate(-4deg);
    background:
      linear-gradient(115deg,
        transparent 0 18%,
        rgba(0,169,224,.055) 18% 25%,
        transparent 25% 39%,
        rgba(236,0,140,.05) 39% 46%,
        transparent 46% 60%,
        rgba(255,209,0,.055) 60% 67%,
        transparent 67% 100%);
    border-radius:28px;
    z-index:2;
    pointer-events:none;
  }

  /* Pull Services upward to use the newly freed space */
  .fp-services{
    margin-top:-28px!important;
  }
}

@media (min-width:901px) and (max-width:1100px){
  .fp-printer-stage{
    min-height:445px!important;
    height:445px!important;
  }
  .fp-printer{
    transform:scale(.74)!important;
    transform-origin:center top!important;
  }
}

/* Mobile/tablet keeps existing responsive structure */
@media (max-width:900px){
  .fp-printer{transform:none!important}
  .fp-printer-stage:before,
  .fp-printer-stage:after{display:none!important}
}


/* =========================================================
   STAGE 18.18 — DYNAMIC CMYK HERO
   Adds visual energy behind the printer without enlarging it.
   ========================================================= */

@keyframes fpnyCmykFloatA {
  0%,100% { transform: translate3d(0,0,0) rotate(-12deg) scale(1); opacity:.38; }
  50% { transform: translate3d(18px,-12px,0) rotate(-7deg) scale(1.06); opacity:.58; }
}
@keyframes fpnyCmykFloatB {
  0%,100% { transform: translate3d(0,0,0) rotate(10deg) scale(1); opacity:.28; }
  50% { transform: translate3d(-15px,14px,0) rotate(15deg) scale(1.08); opacity:.50; }
}
@keyframes fpnyCmykPulse {
  0%,100% { transform: scale(.96); opacity:.34; }
  50% { transform: scale(1.06); opacity:.62; }
}
@keyframes fpnyCmykSweep {
  0% { transform: translateX(-28%) rotate(-10deg); opacity:0; }
  18% { opacity:.36; }
  55% { opacity:.20; }
  100% { transform: translateX(36%) rotate(-10deg); opacity:0; }
}

.hero-printer,
.hero-visual,
.fpny-printer-wrap,
.printer-wrap {
  position: relative;
  isolation: isolate;
}

/* Soft CMYK energy field. Kept behind the printer so the headline remains dominant. */
.hero-printer::before,
.hero-visual::before,
.fpny-printer-wrap::before,
.printer-wrap::before {
  content:"";
  position:absolute;
  z-index:-2;
  inset:7% -8% 2% -8%;
  pointer-events:none;
  background:
    radial-gradient(circle at 28% 34%, rgba(0,174,239,.24) 0 7%, transparent 29%),
    radial-gradient(circle at 68% 31%, rgba(236,0,140,.20) 0 8%, transparent 30%),
    radial-gradient(circle at 63% 70%, rgba(255,214,0,.22) 0 7%, transparent 28%),
    radial-gradient(circle at 37% 73%, rgba(247,126,33,.16) 0 6%, transparent 27%);
  filter: blur(9px);
  animation: fpnyCmykPulse 7s ease-in-out infinite;
}

/* Diagonal ink strokes / production motion. */
.hero-printer::after,
.hero-visual::after,
.fpny-printer-wrap::after,
.printer-wrap::after {
  content:"";
  position:absolute;
  z-index:-1;
  width:72%;
  height:74%;
  right:3%;
  top:14%;
  pointer-events:none;
  border-radius:38%;
  background:
    linear-gradient(112deg, transparent 0 20%, rgba(0,174,239,.15) 20% 24%, transparent 24% 34%, rgba(236,0,140,.14) 34% 38%, transparent 38% 48%, rgba(255,214,0,.15) 48% 52%, transparent 52%),
    radial-gradient(circle, rgba(0,174,239,.25) 0 2px, transparent 2.5px) 0 0/24px 24px;
  filter: saturate(1.15);
  opacity:.68;
  animation: fpnyCmykFloatA 9s ease-in-out infinite;
}

/* Additional ambient strokes attached to the hero itself, away from the headline. */
.hero,
.hero-section,
.fpny-hero {
  position:relative;
  overflow:hidden;
}
.hero > .fpny-cmyk-motion,
.hero-section > .fpny-cmyk-motion,
.fpny-hero > .fpny-cmyk-motion { pointer-events:none; }

@media (prefers-reduced-motion: reduce) {
  .hero-printer::before,.hero-visual::before,.fpny-printer-wrap::before,.printer-wrap::before,
  .hero-printer::after,.hero-visual::after,.fpny-printer-wrap::after,.printer-wrap::after {
    animation:none !important;
  }
}

@media (max-width: 900px) {
  .hero-printer::before,.hero-visual::before,.fpny-printer-wrap::before,.printer-wrap::before {
    inset:8% 0 0 0;
    opacity:.65;
  }
  .hero-printer::after,.hero-visual::after,.fpny-printer-wrap::after,.printer-wrap::after {
    width:82%;
    right:8%;
    opacity:.42;
  }
}


/* STAGE 18.19 — HERO GAP BALANCE */
@media (min-width:1101px){
  .fp-hero-grid{
    grid-template-columns:minmax(590px,1.08fr) minmax(500px,.92fr)!important;
    column-gap:clamp(18px,2.1vw,38px)!important;
  }
  .fp-printer-stage{
    transform:translateX(-34px)!important;
    width:calc(100% + 34px)!important;
  }
  .fp-printer{
    transform:scale(.66)!important;
    transform-origin:center top!important;
  }
}
@media (min-width:1400px){
  .fp-printer-stage{
    transform:translateX(-48px)!important;
    width:calc(100% + 48px)!important;
  }
  .fp-hero-grid{column-gap:22px!important}
}
@media (min-width:901px) and (max-width:1100px){
  .fp-hero-grid{column-gap:28px!important}
  .fp-printer-stage{transform:translateX(-18px)!important}
}
@media (max-width:900px){
  .fp-printer-stage{transform:none!important;width:auto!important}
}


/* =========================================================
   STAGE 18.20 — HERO STRUCTURAL REBUILD
   Real two-column geometry + real CMYK background layer.
   ========================================================= */
@keyframes fpEnergyDrift{
  0%,100%{transform:translate3d(0,0,0) rotate(-7deg)}
  50%{transform:translate3d(12px,-8px,0) rotate(-4deg)}
}
@keyframes fpEnergyPulse{
  0%,100%{opacity:.38;transform:scale(.98)}
  50%{opacity:.68;transform:scale(1.04)}
}
@keyframes fpEnergyWord{
  0%,100%{opacity:.18;transform:translateY(0)}
  50%{opacity:.42;transform:translateY(-5px)}
}

/* Desktop hero is now an explicit centered composition rather than flexible leftovers. */
@media (min-width:1101px){
  .fp-hero .fp-wrap.fp-hero-grid{
    width:min(94vw,1420px)!important;
    max-width:1420px!important;
    margin-inline:auto!important;
    display:grid!important;
    grid-template-columns:minmax(560px,650px) 620px!important;
    justify-content:center!important;
    align-items:center!important;
    column-gap:8px!important;
    padding-top:28px!important;
  }

  .fp-hero-copy{
    width:100%!important;
    max-width:650px!important;
    margin:0!important;
    padding:0!important;
    justify-self:end!important;
  }

  .fp-title{
    max-width:630px!important;
  }

  /* Printer column is a fixed visual zone placed directly beside the title. */
  .fp-printer-stage{
    position:relative!important;
    width:620px!important;
    height:430px!important;
    min-height:430px!important;
    margin:0!important;
    transform:none!important;
    justify-self:start!important;
    overflow:visible!important;
    isolation:isolate!important;
  }

  .fp-printer{
    position:absolute!important;
    top:28px!important;
    left:50%!important;
    width:860px!important;
    max-width:none!important;
    height:610px!important;
    margin:0!important;
    transform:translateX(-50%) scale(.64)!important;
    transform-origin:center top!important;
    z-index:5!important;
  }

  /* Actual dynamic CMYK backdrop behind the printer. */
  .fp-hero-print-energy{
    position:absolute;
    z-index:1;
    inset:10px -58px 12px -58px;
    overflow:visible;
    pointer-events:none;
  }

  .fp-hero-print-energy:before{
    content:"";
    position:absolute;
    inset:5% 1% 4%;
    border-radius:48% 52% 44% 56% / 46% 44% 56% 54%;
    background:
      radial-gradient(circle at 29% 39%,rgba(0,169,224,.20),transparent 31%),
      radial-gradient(circle at 66% 37%,rgba(236,0,140,.17),transparent 34%),
      radial-gradient(circle at 69% 70%,rgba(255,209,0,.17),transparent 31%);
    filter:blur(8px);
    animation:fpEnergyPulse 6.8s ease-in-out infinite;
  }

  .fp-energy-stroke{
    position:absolute;
    display:block;
    width:460px;
    height:46px;
    left:62px;
    top:156px;
    border-radius:50%;
    filter:blur(.3px);
    transform:rotate(-14deg);
    opacity:.26;
    animation:fpEnergyDrift 8s ease-in-out infinite;
  }
  .fp-energy-c{background:linear-gradient(90deg,transparent,#00a9e0,transparent);top:128px}
  .fp-energy-m{background:linear-gradient(90deg,transparent,#ec008c,transparent);top:184px;left:90px;animation-delay:-2.3s}
  .fp-energy-y{background:linear-gradient(90deg,transparent,#ffd100,transparent);top:238px;left:128px;animation-delay:-4.6s}

  .fp-energy-halftone{
    position:absolute;
    width:330px;height:260px;
    right:44px;top:58px;
    opacity:.18;
    background:
      radial-gradient(circle,#ec008c 0 2px,transparent 2.6px) 0 0/18px 18px;
    mask-image:linear-gradient(135deg,transparent 2%,#000 35%,#000 68%,transparent 96%);
    transform:rotate(-9deg);
  }

  .fp-energy-word{
    position:absolute;
    font-weight:950;
    font-style:italic;
    letter-spacing:.04em;
    line-height:1;
    color:transparent;
    -webkit-text-stroke:1.5px rgba(18,24,32,.26);
    animation:fpEnergyWord 7s ease-in-out infinite;
  }
  .fp-energy-print{font-size:50px;left:36px;top:20px;-webkit-text-stroke-color:rgba(0,169,224,.43)}
  .fp-energy-design{font-size:42px;right:18px;top:54px;-webkit-text-stroke-color:rgba(236,0,140,.40);animation-delay:-1.6s}
  .fp-energy-signs{font-size:38px;right:-18px;top:112px;-webkit-text-stroke-color:rgba(255,174,0,.48);animation-delay:-3.2s}
  .fp-energy-dtf{font-size:38px;right:-4px;bottom:72px;-webkit-text-stroke-color:rgba(0,130,255,.38);animation-delay:-4.5s}
  .fp-energy-wraps{font-size:35px;right:-28px;bottom:18px;-webkit-text-stroke-color:rgba(236,0,140,.35);animation-delay:-5.4s}

  /* Services sits directly after the rebuilt hero. */
  .fp-premium-stage .fp-services{
    margin-top:-12px!important;
  }
}

@media (min-width:901px) and (max-width:1100px){
  .fp-hero .fp-wrap.fp-hero-grid{
    grid-template-columns:minmax(500px,1fr) minmax(430px,.82fr)!important;
    column-gap:12px!important;
  }
  .fp-printer-stage{transform:none!important;width:100%!important}
  .fp-hero-print-energy{opacity:.72}
}

@media (max-width:900px){
  .fp-hero-print-energy{display:none!important}
}

/* Respect reduced-motion preferences. */
@media (prefers-reduced-motion:reduce){
  .fp-hero-print-energy *,
  .fp-hero-print-energy:before{animation:none!important}
}


/* STAGE 18.21 — REFINED CMYK BACKGROUND */
@media (min-width:1101px){
  .fp-hero-print-energy{opacity:.84!important}
  .fp-hero-print-energy:before{opacity:.74!important;filter:blur(14px)!important}
  .fp-energy-stroke{opacity:.16!important;height:34px!important}
  .fp-energy-halftone{opacity:.10!important}
  .fp-energy-word{opacity:.04!important;-webkit-text-stroke-width:1px!important}
  .fp-energy-print{opacity:.07!important}
  .fp-energy-design{opacity:.055!important}
  .fp-energy-signs{opacity:.045!important}
  .fp-energy-dtf{opacity:.035!important}
  .fp-energy-wraps{opacity:.03!important}
}


/* =========================================================
   STAGE 18.22 — EDITABLE SAFE LOGO
   Any custom logo is constrained to the header without breaking layout.
   ========================================================= */
.fp-header .fp-brand{
  display:flex!important;
  align-items:center!important;
  justify-content:flex-start!important;
  width:auto!important;
  max-width:280px!important;
  height:64px!important;
  min-height:64px!important;
  overflow:hidden!important;
  flex:0 0 auto!important;
  text-decoration:none!important;
}

.fp-header .fp-brand .fp-custom-logo{
  display:block!important;
  width:min(var(--fpny-logo-width,180px),260px)!important;
  max-width:100%!important;
  height:54px!important;
  max-height:54px!important;
  object-fit:contain!important;
  object-position:left center!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
}

/* Neutralize WordPress custom-logo defaults if old cached markup appears briefly. */
.fp-header .custom-logo-link{
  display:flex!important;
  align-items:center!important;
  max-width:260px!important;
  max-height:56px!important;
  overflow:hidden!important;
}
.fp-header .custom-logo,
.fp-header .custom-logo-link img{
  width:min(var(--fpny-logo-width,180px),260px)!important;
  height:54px!important;
  max-width:260px!important;
  max-height:54px!important;
  object-fit:contain!important;
  object-position:left center!important;
}

@media (max-width:900px){
  .fp-header .fp-brand{
    height:56px!important;
    min-height:56px!important;
    max-width:220px!important;
  }
  .fp-header .fp-brand .fp-custom-logo,
  .fp-header .custom-logo,
  .fp-header .custom-logo-link img{
    width:min(var(--fpny-logo-width,165px),210px)!important;
    height:46px!important;
    max-height:46px!important;
  }
}


/* =========================================================
   STAGE 18.23 — FLEXIBLE LOGO + DEVELOPER CREDIT
   ========================================================= */
.fp-header .fp-brand{
  max-width:380px!important;
  overflow:visible!important;
}

.fp-header .fp-brand .fp-custom-logo{
  width:min(var(--fpny-logo-width,190px),360px)!important;
  max-width:360px!important;
  height:58px!important;
  max-height:58px!important;
  object-fit:contain!important;
  object-position:left center!important;
  background:transparent!important;
}

.fp-header .fp-brand .fp-included-logo{
  filter:drop-shadow(0 2px 5px rgba(18,24,32,.08));
}

.fp-footer-developer-credit{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  min-height:42px;
  padding:10px 18px;
  background:#0d131a;
  border-top:1px solid rgba(255,255,255,.08);
  color:rgba(255,255,255,.62);
  font-size:.78rem;
  letter-spacing:.01em;
  text-align:center;
}
.fp-footer-developer-credit a{
  color:#fff;
  font-weight:800;
  text-decoration:none;
  transition:opacity .2s ease,color .2s ease;
}
.fp-footer-developer-credit a:hover{
  color:#27b7e6;
}

@media (max-width:900px){
  .fp-header .fp-brand .fp-custom-logo{
    width:min(var(--fpny-logo-width,165px),240px)!important;
    max-width:240px!important;
    height:48px!important;
    max-height:48px!important;
  }
  .fp-footer-developer-credit{
    font-size:.72rem;
  }
}


/* =========================================================
   STAGE 18.24 — FLOATING LOGO / WORK WALL
   Decorative brand mark inside "Trabajos realizados".
   ========================================================= */
.fp-work-wall-section{
  position:relative!important;
  overflow:hidden!important;
}

.fp-work-floating-logo{
  position:absolute;
  z-index:2;
  right:5.5%;
  top:44px;
  width:clamp(135px,10vw,190px);
  opacity:.14;
  pointer-events:none;
  transform:rotate(-4deg);
  filter:drop-shadow(0 12px 28px rgba(0,0,0,.12));
}

.fp-work-floating-logo img{
  display:block;
  width:100%;
  height:auto;
  object-fit:contain;
  background:transparent;
}

@keyframes fpWorkLogoFloat{
  0%,100%{transform:translateY(0) rotate(-4deg)}
  50%{transform:translateY(-10px) rotate(-2deg)}
}

.fp-work-floating-logo{
  animation:fpWorkLogoFloat 7.5s ease-in-out infinite;
}

@media (max-width:1100px){
  .fp-work-floating-logo{
    right:3%;
    top:56px;
    width:145px;
    opacity:.11;
  }
}

@media (max-width:800px){
  .fp-work-floating-logo{
    width:105px;
    right:18px;
    top:24px;
    opacity:.09;
  }
}

@media (max-width:620px){
  .fp-work-floating-logo{
    display:none;
  }
}

@media (prefers-reduced-motion:reduce){
  .fp-work-floating-logo{animation:none!important}
}


/* =========================================================
   STAGE 18.25 — PRODUCTION CACHE + VISIBLE WORK LOGO
   ========================================================= */

/* Stronger logo presence in the dark "Trabajos realizados" area */
.fp-work-floating-logo{
  z-index:5!important;
  right:5%!important;
  top:34px!important;
  width:clamp(180px,13vw,245px)!important;
  opacity:.78!important;
  transform:rotate(-3deg)!important;
  filter:
    drop-shadow(0 8px 18px rgba(0,0,0,.42))
    drop-shadow(0 0 12px rgba(255,255,255,.12))!important;
}

.fp-work-floating-logo img{
  opacity:1!important;
  filter:brightness(1.22) contrast(1.08) saturate(1.15)!important;
}

@keyframes fpWorkLogoFloat1825{
  0%,100%{transform:translateY(0) rotate(-3deg)}
  50%{transform:translateY(-8px) rotate(-1deg)}
}
.fp-work-floating-logo{
  animation:fpWorkLogoFloat1825 7s ease-in-out infinite!important;
}

@media (max-width:1100px){
  .fp-work-floating-logo{
    width:175px!important;
    right:3%!important;
    opacity:.70!important;
  }
}
@media (max-width:800px){
  .fp-work-floating-logo{
    width:125px!important;
    right:16px!important;
    top:20px!important;
    opacity:.62!important;
  }
}
@media (max-width:620px){
  .fp-work-floating-logo{
    display:block!important;
    width:90px!important;
    right:12px!important;
    top:16px!important;
    opacity:.55!important;
  }
}
@media (prefers-reduced-motion:reduce){
  .fp-work-floating-logo{animation:none!important}
}


/* =========================================================
   STAGE 18.26 — GALLERY RESTORE + FLOATING CONTACT HUB
   ========================================================= */

/* Public empty gallery stays visually clean. */
.fp-work-wall-section .fp-work-empty{
  min-height:120px!important;
}

/* Floating action button */
.fp-contact-hub{
  position:fixed;
  right:24px;
  bottom:24px;
  z-index:9998;
  font-family:inherit;
}

.fp-contact-fab{
  display:flex;
  align-items:center;
  gap:10px;
  min-height:58px;
  padding:8px 18px 8px 9px;
  border:0;
  border-radius:999px;
  cursor:pointer;
  color:#fff;
  background:linear-gradient(105deg,#0679f7 0%,#6558df 38%,#ec008c 78%,#ff5b3d 100%);
  box-shadow:0 16px 40px rgba(25,35,55,.25),0 7px 20px rgba(236,0,140,.18);
  font-weight:850;
  transition:transform .2s ease,box-shadow .2s ease;
}
.fp-contact-fab:hover{transform:translateY(-2px);box-shadow:0 20px 46px rgba(25,35,55,.30)}
.fp-contact-fab-icon{
  display:grid;
  place-items:center;
  width:42px;height:42px;
  border-radius:50%;
  background:rgba(255,255,255,.17);
  font-size:1.25rem;
}
.fp-contact-fab-label{white-space:nowrap}

.fp-contact-panel{
  position:absolute;
  right:0;
  bottom:72px;
  width:min(390px,calc(100vw - 28px));
  max-height:min(690px,calc(100vh - 110px));
  overflow:hidden;
  border:1px solid rgba(18,24,32,.09);
  border-radius:24px;
  background:rgba(255,255,255,.985);
  box-shadow:0 28px 70px rgba(18,24,32,.25);
  opacity:0;
  visibility:hidden;
  transform:translateY(14px) scale(.97);
  transform-origin:bottom right;
  transition:opacity .22s ease,transform .22s ease,visibility .22s;
}
.fp-contact-hub.is-open .fp-contact-panel{
  opacity:1;visibility:visible;transform:none;
}

.fp-contact-panel-head{
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding:20px 20px 16px;
  color:#fff;
  background:
    radial-gradient(circle at 10% 20%,rgba(0,169,224,.45),transparent 36%),
    radial-gradient(circle at 90% 20%,rgba(236,0,140,.38),transparent 40%),
    #111923;
}
.fp-contact-panel-head span{display:block;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;opacity:.75}
.fp-contact-panel-head strong{display:block;font-size:1.35rem;margin-top:3px}
.fp-contact-close{
  width:36px;height:36px;border-radius:50%;border:1px solid rgba(255,255,255,.18);
  background:rgba(255,255,255,.08);color:#fff;font-size:1.35rem;cursor:pointer;
}

.fp-contact-panel-body{
  padding:18px 18px 20px;
  max-height:calc(min(690px,100vh - 110px) - 82px);
  overflow:auto;
}
.fp-contact-intro{margin:0 0 13px;color:#53606e;font-size:.88rem;line-height:1.45}

.fp-contact-services{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:7px;
  margin-bottom:16px;
}
.fp-contact-service{
  position:relative;
  cursor:pointer;
}
.fp-contact-service input{position:absolute;opacity:0;pointer-events:none}
.fp-contact-service span{
  display:flex;align-items:center;min-height:42px;
  padding:8px 10px;
  border:1px solid #e2e7ed;border-radius:12px;
  background:#f9fafc;
  color:#27313c;font-size:.75rem;font-weight:750;
  transition:.16s ease;
}
.fp-contact-service input:checked + span{
  color:#111923;
  border-color:#ec008c;
  background:linear-gradient(120deg,rgba(0,169,224,.08),rgba(236,0,140,.09),rgba(255,209,0,.08));
  box-shadow:inset 3px 0 0 #ec008c;
}

.fp-contact-field{display:block;margin-top:11px}
.fp-contact-field>span{display:block;margin-bottom:6px;font-size:.75rem;font-weight:850;color:#27313c}
.fp-contact-field input,.fp-contact-field textarea{
  width:100%;box-sizing:border-box;
  border:1px solid #dfe4ea;border-radius:12px;
  background:#fff;color:#151a20;
  padding:11px 12px;font:inherit;font-size:.84rem;
  outline:none;
}
.fp-contact-field input:focus,.fp-contact-field textarea:focus{
  border-color:#178df4;box-shadow:0 0 0 3px rgba(23,141,244,.09);
}

.fp-contact-send{
  display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:15px;
}
.fp-contact-channel{
  border:0;border-radius:13px;min-height:52px;padding:8px 10px;
  cursor:pointer;color:#fff;font:inherit;font-size:.76rem;
  display:flex;align-items:center;justify-content:center;gap:7px;
}
.fp-contact-channel span{font-size:1.05rem}
.fp-contact-email{background:linear-gradient(105deg,#0879f4,#6558df)}
.fp-contact-whatsapp{background:linear-gradient(105deg,#17a85b,#22c96f)}
.fp-contact-note{margin:11px 3px 0;font-size:.68rem;line-height:1.4;color:#74808c;text-align:center}

@media(max-width:620px){
  .fp-contact-hub{right:14px;bottom:14px}
  .fp-contact-fab{min-height:54px;padding-right:13px}
  .fp-contact-fab-label{font-size:.76rem}
  .fp-contact-panel{bottom:65px}
  .fp-contact-services{grid-template-columns:1fr}
}


/* =========================================================
   STAGE 18.27 — SOLID SMART CONTACT PANEL
   Higher contrast and accessibility; no transparent body.
   ========================================================= */
.fp-contact-panel{
  background:#ffffff!important;
  border:1px solid #dfe4ea!important;
  box-shadow:
    0 30px 80px rgba(18,24,32,.28),
    0 10px 28px rgba(18,24,32,.14)!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
}

.fp-contact-panel-head{
  background:
    linear-gradient(110deg,#0f1823 0%,#172334 58%,#231629 100%)!important;
  color:#fff!important;
  border-bottom:1px solid rgba(255,255,255,.08)!important;
}

.fp-contact-panel-body{
  background:#fff!important;
  color:#1b2430!important;
}

.fp-contact-intro{
  color:#53606e!important;
}

.fp-contact-services{
  background:#fff!important;
}

.fp-contact-service span{
  background:#f7f9fb!important;
  border:1px solid #dbe2e9!important;
  color:#1f2933!important;
  box-shadow:none!important;
}

.fp-contact-service span:hover{
  border-color:#b9c6d2!important;
  background:#f1f5f8!important;
}

.fp-contact-service input:checked + span{
  color:#111923!important;
  border-color:#ec008c!important;
  background:
    linear-gradient(120deg,#eef8fd 0%,#fff1f8 58%,#fff9e9 100%)!important;
  box-shadow:inset 4px 0 0 #ec008c!important;
}

.fp-contact-field>span{
  color:#27313c!important;
}

.fp-contact-field input,
.fp-contact-field textarea{
  background:#fff!important;
  color:#151a20!important;
  border:1px solid #cfd8e2!important;
}

.fp-contact-field input::placeholder,
.fp-contact-field textarea::placeholder{
  color:#8a96a3!important;
}

.fp-contact-email{
  background:linear-gradient(105deg,#0879f4,#6658df)!important;
  color:#fff!important;
}

.fp-contact-whatsapp{
  background:linear-gradient(105deg,#169a52,#22c96f)!important;
  color:#fff!important;
}

.fp-contact-note{
  color:#6e7b88!important;
}

.fp-contact-close{
  background:#ffffff14!important;
  border-color:#ffffff2a!important;
}

.fp-contact-close:hover{
  background:#ffffff24!important;
}

@media(max-width:620px){
  .fp-contact-panel{
    width:min(410px,calc(100vw - 18px))!important;
    right:-5px!important;
  }
}


/* =========================================================
   STAGE 18.28 — SERVICE MODAL: ALL PROJECT MEDIA
   Each related project shows every photo/video added to that entry.
   ========================================================= */
.fp-service-modal-projects .fp-service-related-grid{
  display:grid!important;
  grid-template-columns:1fr!important;
  gap:22px!important;
}

.fp-related-project{
  display:grid!important;
  grid-template-columns:minmax(0,1fr)!important;
  gap:0!important;
  overflow:hidden!important;
  border:1px solid rgba(18,24,32,.10)!important;
  border-radius:20px!important;
  background:#fff!important;
  box-shadow:0 14px 34px rgba(18,24,32,.07)!important;
}

.fp-related-project-media{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:8px!important;
  padding:10px!important;
  background:#f5f7f9!important;
}

.fp-related-project-media .fp-related-media{
  position:relative!important;
  margin:0!important;
  min-height:180px!important;
  overflow:hidden!important;
  border-radius:14px!important;
  background:#111!important;
}

.fp-related-project-media .fp-related-media.is-primary:first-child:nth-last-child(1){
  grid-column:1/-1!important;
  min-height:320px!important;
}

.fp-related-project-media .fp-related-media:first-child:nth-last-child(n+3){
  grid-column:1/-1!important;
  min-height:300px!important;
}

.fp-related-project-media img,
.fp-related-project-media video{
  display:block!important;
  width:100%!important;
  height:100%!important;
  min-height:180px!important;
  object-fit:cover!important;
  background:#111!important;
}

.fp-related-video-mark{
  position:absolute!important;
  left:10px!important;
  bottom:10px!important;
  display:inline-flex!important;
  align-items:center!important;
  gap:5px!important;
  padding:6px 9px!important;
  border-radius:999px!important;
  background:rgba(10,15,20,.78)!important;
  color:#fff!important;
  font-size:.68rem!important;
  font-weight:800!important;
  pointer-events:none!important;
}

.fp-related-project-copy{
  padding:15px 18px 17px!important;
}

.fp-related-project-copy h3{
  margin:0 0 6px!important;
  font-size:1.08rem!important;
}

.fp-related-project-copy p{
  margin:0 0 8px!important;
  color:#64707d!important;
  line-height:1.5!important;
}

.fp-related-count{
  display:inline-flex!important;
  padding:5px 9px!important;
  border-radius:999px!important;
  background:#f1f4f7!important;
  color:#566270!important;
  font-size:.68rem!important;
  font-weight:750!important;
}

@media(max-width:680px){
  .fp-related-project-media{
    grid-template-columns:1fr!important;
  }
  .fp-related-project-media .fp-related-media{
    grid-column:auto!important;
    min-height:230px!important;
  }
  .fp-related-project-media .fp-related-media:first-child:nth-last-child(n+3),
  .fp-related-project-media .fp-related-media.is-primary:first-child:nth-last-child(1){
    grid-column:auto!important;
    min-height:260px!important;
  }
}


/* =========================================================
   STAGE 18.29 — WORK SHOWCASE LAYOUT
   Reference-driven redesign of Trabajos realizados.
   ========================================================= */
.fp-work-wall-section{
  position:relative!important;
  overflow:hidden!important;
  padding:70px 0 74px!important;
  background:
    radial-gradient(circle at 12% 30%,rgba(0,169,224,.12),transparent 28%),
    radial-gradient(circle at 88% 18%,rgba(236,0,140,.12),transparent 31%),
    linear-gradient(115deg,#071d28 0%,#0d1722 56%,#241026 100%)!important;
  color:#fff!important;
}

.fp-work-wall-section .fp-work-floating-logo{
  display:none!important;
}

.fp-work-showcase-head{
  display:grid!important;
  grid-template-columns:minmax(0,1.05fr) minmax(420px,.95fr)!important;
  gap:70px!important;
  align-items:center!important;
  margin-bottom:34px!important;
}

.fp-work-showcase-title .fp-eyebrow{
  color:#ff2f93!important;
  font-weight:900!important;
}

.fp-work-showcase-title h2{
  margin:8px 0 0!important;
  color:#fff!important;
  font-size:clamp(4rem,5.5vw,6.7rem)!important;
  line-height:.84!important;
  letter-spacing:-.06em!important;
}

.fp-work-showcase-brand{
  display:grid!important;
  gap:24px!important;
  align-items:center!important;
}

.fp-work-showcase-brand>p{
  margin:0!important;
  padding:20px 24px!important;
  border-left:3px solid #ec008c!important;
  border-radius:0 16px 16px 0!important;
  background:#ffffff0d!important;
  color:rgba(255,255,255,.88)!important;
  font-size:1.04rem!important;
  line-height:1.6!important;
}

.fp-work-inline-logo{
  display:flex!important;
  justify-content:flex-end!important;
  padding-right:28px!important;
}

.fp-work-inline-logo img{
  display:block!important;
  width:clamp(220px,18vw,330px)!important;
  height:auto!important;
  max-height:112px!important;
  object-fit:contain!important;
  filter:
    brightness(1.12)
    contrast(1.08)
    saturate(1.14)
    drop-shadow(0 12px 26px rgba(0,0,0,.30))!important;
}

.fp-work-featured-shell{
  position:relative!important;
}

.fp-work-featured-row{
  display:grid!important;
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  gap:18px!important;
}

.fp-work-featured-card,
.fp-work-more-card{
  position:relative!important;
  margin:0!important;
  overflow:hidden!important;
  border-radius:18px!important;
  background:#09131b!important;
  box-shadow:0 18px 40px rgba(0,0,0,.22)!important;
  aspect-ratio:1.32/1!important;
}

.fp-work-featured-card img,
.fp-work-featured-card video,
.fp-work-more-card img,
.fp-work-more-card video{
  display:block!important;
  width:100%!important;
  height:100%!important;
  object-fit:cover!important;
  transition:transform .35s ease,filter .35s ease!important;
}

.fp-work-featured-card:hover img,
.fp-work-featured-card:hover video,
.fp-work-more-card:hover img,
.fp-work-more-card:hover video{
  transform:scale(1.035)!important;
  filter:saturate(1.06)!important;
}

.fp-work-more{
  margin-top:20px!important;
}

.fp-work-more[hidden]{
  display:none!important;
}

.fp-work-more-grid{
  display:grid!important;
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  gap:18px!important;
}

.fp-work-more-action{
  display:flex!important;
  justify-content:center!important;
  margin-top:30px!important;
}

.fp-work-more-btn{
  min-width:260px!important;
  min-height:58px!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:22px!important;
  padding:0 28px!important;
  border-radius:999px!important;
  border:2px solid transparent!important;
  color:#fff!important;
  font:inherit!important;
  font-weight:850!important;
  cursor:pointer!important;
  background:
    linear-gradient(#0f1720,#0f1720) padding-box,
    linear-gradient(90deg,#00a9e0,#5b62d9,#ec008c,#ff7b2b,#ffd100) border-box!important;
  box-shadow:0 14px 34px rgba(0,0,0,.22)!important;
  transition:transform .2s ease,box-shadow .2s ease!important;
}

.fp-work-more-btn:hover{
  transform:translateY(-2px)!important;
  box-shadow:0 18px 40px rgba(0,0,0,.28)!important;
}

.fp-work-more-btn b{
  font-size:1.25rem!important;
  line-height:1!important;
}

@media(max-width:1100px){
  .fp-work-showcase-head{
    grid-template-columns:1fr 1fr!important;
    gap:36px!important;
  }
  .fp-work-showcase-title h2{
    font-size:clamp(3.4rem,6vw,5.3rem)!important;
  }
  .fp-work-featured-row,
  .fp-work-more-grid{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
}

@media(max-width:760px){
  .fp-work-wall-section{padding:54px 0 58px!important}
  .fp-work-showcase-head{
    grid-template-columns:1fr!important;
    gap:24px!important;
  }
  .fp-work-showcase-brand{
    gap:16px!important;
  }
  .fp-work-inline-logo{
    justify-content:flex-start!important;
    padding-right:0!important;
  }
  .fp-work-inline-logo img{
    width:210px!important;
    max-height:88px!important;
  }
}

@media(max-width:560px){
  .fp-work-featured-row,
  .fp-work-more-grid{
    grid-template-columns:1fr!important;
  }
  .fp-work-more-btn{
    width:100%!important;
    min-width:0!important;
  }
}


/* =========================================================
   STAGE 18.30 — DYNAMIC MOVING WORK GALLERY
   Header from 18.29 + continuous multi-row moving gallery.
   ========================================================= */

@keyframes fpWorkMarqueeLeft{
  from{transform:translate3d(0,0,0)}
  to{transform:translate3d(-50%,0,0)}
}
@keyframes fpWorkMarqueeRight{
  from{transform:translate3d(-50%,0,0)}
  to{transform:translate3d(0,0,0)}
}

.fp-work-dynamic{
  position:relative!important;
  width:100%!important;
  overflow:hidden!important;
  margin-top:4px!important;
  padding:4px 0 8px!important;
}

.fp-work-dynamic:before,
.fp-work-dynamic:after{
  content:"";
  position:absolute;
  top:0;bottom:0;
  width:110px;
  z-index:4;
  pointer-events:none;
}
.fp-work-dynamic:before{
  left:0;
  background:linear-gradient(90deg,#081c27 0%,rgba(8,28,39,.88) 32%,transparent 100%);
}
.fp-work-dynamic:after{
  right:0;
  background:linear-gradient(270deg,#211025 0%,rgba(33,16,37,.88) 32%,transparent 100%);
}

.fp-work-marquee{
  overflow:hidden!important;
  width:100%!important;
  margin:0!important;
  padding:0 0 12px!important;
}

.fp-work-marquee-track{
  display:flex!important;
  width:max-content!important;
  gap:16px!important;
  will-change:transform!important;
}

.fp-work-marquee-a .fp-work-marquee-track{
  animation:fpWorkMarqueeLeft 42s linear infinite!important;
}
.fp-work-marquee-b .fp-work-marquee-track{
  animation:fpWorkMarqueeRight 47s linear infinite!important;
}

.fp-work-marquee:hover .fp-work-marquee-track{
  animation-play-state:paused!important;
}

.fp-work-marquee-card{
  position:relative!important;
  flex:0 0 clamp(290px,24vw,430px)!important;
  margin:0!important;
  aspect-ratio:1.45/1!important;
  overflow:hidden!important;
  border-radius:18px!important;
  background:#071019!important;
  box-shadow:0 18px 42px rgba(0,0,0,.20)!important;
}

.fp-work-marquee-card img,
.fp-work-marquee-card video{
  display:block!important;
  width:100%!important;
  height:100%!important;
  object-fit:cover!important;
  transition:transform .35s ease,filter .35s ease!important;
}

.fp-work-marquee-card:hover img,
.fp-work-marquee-card:hover video{
  transform:scale(1.035)!important;
  filter:saturate(1.07)!important;
}

/* Expanded full gallery remains static and easy to inspect. */
.fp-work-more{
  margin-top:28px!important;
}
.fp-work-more[hidden]{
  display:none!important;
}
.fp-work-more-grid{
  display:grid!important;
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  gap:18px!important;
}
.fp-work-more-card{
  position:relative!important;
  margin:0!important;
  overflow:hidden!important;
  border-radius:18px!important;
  aspect-ratio:1.35/1!important;
  background:#071019!important;
  box-shadow:0 16px 34px rgba(0,0,0,.18)!important;
}
.fp-work-more-card img,
.fp-work-more-card video{
  display:block!important;
  width:100%!important;
  height:100%!important;
  object-fit:cover!important;
}

.fp-work-more-action{
  display:flex!important;
  justify-content:center!important;
  margin-top:28px!important;
}

.fp-work-more-btn{
  min-width:270px!important;
}

@media(max-width:1100px){
  .fp-work-marquee-card{
    flex-basis:360px!important;
  }
  .fp-work-more-grid{
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
  }
}

@media(max-width:760px){
  .fp-work-dynamic:before,
  .fp-work-dynamic:after{
    width:52px!important;
  }
  .fp-work-marquee-card{
    flex-basis:300px!important;
  }
  .fp-work-more-grid{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
}

@media(max-width:520px){
  .fp-work-marquee-card{
    flex-basis:265px!important;
  }
  .fp-work-more-grid{
    grid-template-columns:1fr!important;
  }
}

@media(prefers-reduced-motion:reduce){
  .fp-work-marquee-track{
    animation:none!important;
  }
}


/* =========================================================
   STAGE 18.31 — PREMIUM PROCESS JOURNEY
   ========================================================= */
.fp-process-premium{
  position:relative!important;
  overflow:hidden!important;
  padding:92px 0 106px!important;
  background:
    radial-gradient(circle at 8% 14%,rgba(0,169,224,.11),transparent 26%),
    radial-gradient(circle at 90% 82%,rgba(255,209,0,.10),transparent 24%),
    linear-gradient(180deg,#ffffff 0%,#f8fafc 100%)!important;
}

.fp-process-premium .fp-wrap{
  position:relative!important;
  z-index:3!important;
}

.fp-process-orb{
  position:absolute;
  pointer-events:none;
  border-radius:50%;
  filter:blur(2px);
  opacity:.65;
}
.fp-process-orb-a{
  width:260px;height:260px;
  left:-100px;top:80px;
  background:radial-gradient(circle,rgba(0,169,224,.16),transparent 68%);
}
.fp-process-orb-b{
  width:320px;height:320px;
  right:-120px;bottom:-80px;
  background:radial-gradient(circle,rgba(236,0,140,.12),transparent 68%);
}

.fp-process-head{
  display:grid!important;
  grid-template-columns:minmax(0,1.05fr) minmax(360px,.75fr)!important;
  gap:80px!important;
  align-items:end!important;
  margin-bottom:54px!important;
}

.fp-process-head .fp-section-head{
  margin:0!important;
}

.fp-process-head .fp-section-head h2{
  margin:.12em 0 0!important;
  font-size:clamp(3.8rem,5.25vw,6.2rem)!important;
  line-height:.88!important;
  letter-spacing:-.06em!important;
  max-width:770px!important;
}

.fp-process-intro{
  position:relative!important;
  padding:18px 22px 18px 24px!important;
  border-left:3px solid #ec008c!important;
  border-radius:0 18px 18px 0!important;
  background:rgba(255,255,255,.72)!important;
  box-shadow:0 16px 40px rgba(18,24,32,.055)!important;
}

.fp-process-kicker{
  display:block!important;
  margin-bottom:6px!important;
  color:#ec008c!important;
  font-size:.72rem!important;
  font-weight:950!important;
  letter-spacing:.12em!important;
  text-transform:uppercase!important;
}

.fp-process-intro p{
  margin:0!important;
  color:#66727f!important;
  line-height:1.55!important;
}

.fp-process-journey{
  position:relative!important;
  display:grid!important;
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  gap:18px!important;
  padding-top:28px!important;
}

.fp-process-line{
  position:absolute!important;
  left:7%!important;
  right:7%!important;
  top:57px!important;
  height:4px!important;
  border-radius:999px!important;
  overflow:hidden!important;
  background:#e8edf2!important;
  z-index:0!important;
}

.fp-process-line span{
  display:block!important;
  width:100%!important;
  height:100%!important;
  background:linear-gradient(90deg,#00a9e0 0%,#4d74da 28%,#ec008c 54%,#ff7c32 78%,#ffd100 100%)!important;
  transform-origin:left center!important;
  animation:fpProcessLineGlow 4.8s ease-in-out infinite!important;
}

@keyframes fpProcessLineGlow{
  0%,100%{opacity:.62;filter:saturate(1)}
  50%{opacity:1;filter:saturate(1.25)}
}

.fp-process-step{
  position:relative!important;
  z-index:2!important;
  min-height:285px!important;
  padding:24px 24px 26px!important;
  border:1px solid rgba(18,24,32,.075)!important;
  border-radius:24px!important;
  background:rgba(255,255,255,.96)!important;
  box-shadow:0 20px 48px rgba(18,24,32,.075)!important;
  overflow:hidden!important;
  transition:transform .28s ease,box-shadow .28s ease,border-color .28s ease!important;
}

.fp-process-step:before{
  content:""!important;
  position:absolute!important;
  left:0!important;
  top:0!important;
  width:100%!important;
  height:5px!important;
  background:var(--fp-step-accent)!important;
}

.fp-process-step:after{
  content:""!important;
  position:absolute!important;
  width:150px!important;
  height:150px!important;
  right:-58px!important;
  bottom:-64px!important;
  border-radius:50%!important;
  background:var(--fp-step-soft)!important;
  pointer-events:none!important;
}

.fp-process-step:hover{
  transform:translateY(-8px)!important;
  box-shadow:0 28px 62px rgba(18,24,32,.12)!important;
  border-color:rgba(18,24,32,.12)!important;
}

.fp-process-step-1{--fp-step-accent:#00a9e0;--fp-step-soft:rgba(0,169,224,.10)}
.fp-process-step-2{--fp-step-accent:#ec008c;--fp-step-soft:rgba(236,0,140,.09)}
.fp-process-step-3{--fp-step-accent:#ffd100;--fp-step-soft:rgba(255,209,0,.13)}
.fp-process-step-4{--fp-step-accent:#20242a;--fp-step-soft:rgba(18,24,32,.07)}

.fp-process-step-top{
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  margin-bottom:34px!important;
}

.fp-process-icon{
  display:grid!important;
  place-items:center!important;
  width:56px!important;
  height:56px!important;
  border-radius:18px!important;
  background:linear-gradient(145deg,#fff,#f1f5f8)!important;
  border:1px solid rgba(18,24,32,.07)!important;
  box-shadow:0 10px 24px rgba(18,24,32,.08)!important;
  color:var(--fp-step-accent)!important;
  font-size:1.45rem!important;
  font-weight:900!important;
}

.fp-process-step-top b{
  font-size:3.25rem!important;
  line-height:1!important;
  letter-spacing:-.06em!important;
  color:#e6ebef!important;
  font-weight:950!important;
}

.fp-process-label{
  display:inline-flex!important;
  margin-bottom:8px!important;
  color:var(--fp-step-accent)!important;
  font-size:.68rem!important;
  font-weight:950!important;
  letter-spacing:.12em!important;
}

.fp-process-step h3{
  margin:0 0 10px!important;
  color:#171b20!important;
  font-size:1.13rem!important;
  line-height:1.2!important;
}

.fp-process-step p{
  margin:0!important;
  max-width:95%!important;
  color:#6b7682!important;
  line-height:1.55!important;
  font-size:.91rem!important;
}

@media(max-width:1050px){
  .fp-process-head{
    grid-template-columns:1fr!important;
    gap:28px!important;
  }
  .fp-process-intro{
    max-width:620px!important;
  }
  .fp-process-journey{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
  .fp-process-line{
    display:none!important;
  }
}

@media(max-width:620px){
  .fp-process-premium{
    padding:68px 0 72px!important;
  }
  .fp-process-head .fp-section-head h2{
    font-size:3.4rem!important;
  }
  .fp-process-journey{
    grid-template-columns:1fr!important;
  }
  .fp-process-step{
    min-height:0!important;
  }
}

@media(prefers-reduced-motion:reduce){
  .fp-process-line span{animation:none!important}
  .fp-process-step{transition:none!important}
}


/* =========================================================
   STAGE 18.32 — INTERACTIVE PROCESS + BRAND LOGO
   ========================================================= */
.fp-process-intro{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto!important;
  align-items:center!important;
  gap:22px!important;
}

.fp-process-intro-copy{
  min-width:0!important;
}

.fp-process-brand{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:210px!important;
  min-width:210px!important;
  padding-left:20px!important;
  border-left:1px solid rgba(18,24,32,.08)!important;
}

.fp-process-brand img{
  display:block!important;
  width:190px!important;
  max-height:92px!important;
  object-fit:contain!important;
  filter:
    brightness(1.08)
    contrast(1.06)
    saturate(1.10)
    drop-shadow(0 10px 22px rgba(18,24,32,.10))!important;
  transition:transform .3s ease,filter .3s ease!important;
}

.fp-process-intro:hover .fp-process-brand img{
  transform:translateY(-3px) scale(1.025)!important;
  filter:
    brightness(1.12)
    contrast(1.08)
    saturate(1.15)
    drop-shadow(0 15px 26px rgba(18,24,32,.14))!important;
}

/* Progressive line with moving indicator */
.fp-process-line{
  overflow:visible!important;
}

.fp-process-line span{
  position:absolute!important;
  inset:0!important;
  width:auto!important;
  background:
    linear-gradient(90deg,#00a9e0 0%,#4d74da 28%,#ec008c 54%,#ff7c32 78%,#ffd100 100%)!important;
  clip-path:inset(0 calc(100% - var(--fp-process-progress,0%)) 0 0)!important;
  transition:clip-path .42s cubic-bezier(.2,.8,.2,1)!important;
  animation:none!important;
}

.fp-process-line i{
  position:absolute!important;
  top:50%!important;
  left:-9px;
  width:18px!important;
  height:18px!important;
  border-radius:50%!important;
  transform:translateY(-50%)!important;
  background:#fff!important;
  border:4px solid #00a9e0!important;
  box-shadow:0 0 0 6px rgba(0,169,224,.10),0 5px 16px rgba(18,24,32,.14)!important;
  transition:left .42s cubic-bezier(.2,.8,.2,1),border-color .25s ease,box-shadow .25s ease!important;
  z-index:3!important;
}

/* Entrance animation */
.fp-process-step{
  opacity:.88!important;
  transform:translateY(14px) scale(.985)!important;
  transition:
    transform .32s ease,
    box-shadow .32s ease,
    border-color .32s ease,
    opacity .32s ease!important;
}

.fp-process-journey.is-visible .fp-process-step{
  opacity:1!important;
  transform:none!important;
}

.fp-process-journey.is-visible .fp-process-step-1{transition-delay:.02s!important}
.fp-process-journey.is-visible .fp-process-step-2{transition-delay:.09s!important}
.fp-process-journey.is-visible .fp-process-step-3{transition-delay:.16s!important}
.fp-process-journey.is-visible .fp-process-step-4{transition-delay:.23s!important}

/* Active state */
.fp-process-step.is-process-active{
  transform:translateY(-12px) scale(1.018)!important;
  box-shadow:0 32px 70px rgba(18,24,32,.14)!important;
  border-color:var(--fp-step-accent)!important;
}

.fp-process-step.is-process-active .fp-process-icon{
  color:#fff!important;
  background:var(--fp-step-accent)!important;
  box-shadow:0 12px 28px var(--fp-step-soft)!important;
  transform:rotate(-4deg) scale(1.08)!important;
}

.fp-process-step.is-process-active .fp-process-step-top b{
  color:var(--fp-step-accent)!important;
  opacity:.16!important;
}

.fp-process-step.is-process-active:after{
  transform:scale(1.25)!important;
  opacity:1!important;
}

.fp-process-icon,
.fp-process-step:after{
  transition:transform .3s ease,background .3s ease,color .3s ease,opacity .3s ease!important;
}

.fp-process-step.is-process-passed{
  opacity:.92!important;
}

.fp-process-step.is-process-passed .fp-process-icon{
  border-color:var(--fp-step-accent)!important;
}

@media(max-width:1050px){
  .fp-process-intro{
    grid-template-columns:1fr!important;
  }
  .fp-process-brand{
    width:auto!important;
    min-width:0!important;
    justify-content:flex-start!important;
    padding-left:0!important;
    padding-top:14px!important;
    border-left:0!important;
    border-top:1px solid rgba(18,24,32,.08)!important;
  }
  .fp-process-brand img{
    width:180px!important;
  }
}

@media(max-width:620px){
  .fp-process-brand img{
    width:160px!important;
  }
  .fp-process-step.is-process-active{
    transform:translateY(-6px) scale(1.008)!important;
  }
}

@media(prefers-reduced-motion:reduce){
  .fp-process-step,
  .fp-process-icon,
  .fp-process-brand img,
  .fp-process-line span,
  .fp-process-line i{
    transition:none!important;
  }
}


/* =========================================================
   STAGE 18.33 — PREMIUM ABOUT / MISSION / VISION
   ========================================================= */
.fp-about-premium{
  position:relative!important;
  overflow:hidden!important;
  padding:94px 0 104px!important;
  background:
    radial-gradient(circle at 10% 20%,rgba(0,169,224,.06),transparent 24%),
    radial-gradient(circle at 92% 82%,rgba(236,0,140,.06),transparent 24%),
    #fff!important;
}

.fp-about-premium .fp-about-grid{
  display:grid!important;
  grid-template-columns:minmax(360px,.82fr) minmax(0,1.18fr)!important;
  gap:70px!important;
  align-items:stretch!important;
}

.fp-about-premium .fp-about-art{
  min-height:100%!important;
}

.fp-about-brand-panel{
  position:relative!important;
  min-height:100%!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:center!important;
  padding:54px 34px!important;
  overflow:hidden!important;
  border-radius:30px!important;
  background:
    radial-gradient(circle at 25% 20%,rgba(0,169,224,.16),transparent 34%),
    radial-gradient(circle at 75% 20%,rgba(236,0,140,.13),transparent 36%),
    linear-gradient(145deg,#0a1119 0%,#101821 56%,#18111d 100%)!important;
  box-shadow:0 26px 70px rgba(18,24,32,.18)!important;
}

.fp-about-brand-panel:before{
  content:""!important;
  position:absolute!important;
  inset:0!important;
  background:
    linear-gradient(125deg,transparent 0 34%,rgba(255,255,255,.035) 34% 41%,transparent 41% 58%,rgba(255,255,255,.025) 58% 64%,transparent 64%)!important;
  pointer-events:none!important;
}

.fp-about-brand-glow{
  position:absolute!important;
  width:300px!important;
  height:300px!important;
  border-radius:50%!important;
  background:radial-gradient(circle,rgba(255,255,255,.11),transparent 66%)!important;
  filter:blur(4px)!important;
}

.fp-about-brand-logo{
  position:relative!important;
  z-index:2!important;
  width:min(86%,360px)!important;
  height:auto!important;
  object-fit:contain!important;
  filter:
    brightness(1.18)
    contrast(1.08)
    saturate(1.16)
    drop-shadow(0 18px 34px rgba(0,0,0,.34))!important;
  transition:transform .35s ease,filter .35s ease!important;
}

.fp-about-brand-panel:hover .fp-about-brand-logo{
  transform:translateY(-6px) scale(1.025)!important;
  filter:
    brightness(1.22)
    contrast(1.10)
    saturate(1.20)
    drop-shadow(0 24px 42px rgba(0,0,0,.42))!important;
}

.fp-about-brand-tagline{
  position:relative!important;
  z-index:2!important;
  display:flex!important;
  flex-wrap:wrap!important;
  justify-content:center!important;
  gap:8px!important;
  margin-top:26px!important;
  color:rgba(255,255,255,.70)!important;
  font-size:.68rem!important;
  font-weight:900!important;
  letter-spacing:.12em!important;
}
.fp-about-brand-tagline i{color:#ec008c!important;font-style:normal!important}

.fp-about-content h2{
  margin:.15em 0 18px!important;
  font-size:clamp(3.4rem,4.6vw,5.5rem)!important;
  line-height:.9!important;
  letter-spacing:-.055em!important;
}

.fp-about-lead{
  max-width:850px!important;
  margin:0 0 28px!important;
  color:#5f6c79!important;
  font-size:1.02rem!important;
  line-height:1.65!important;
}

.fp-about-mv-grid{
  display:grid!important;
  grid-template-columns:1fr 1fr!important;
  gap:18px!important;
  margin:0 0 24px!important;
}

.fp-about-mv-card{
  position:relative!important;
  padding:24px 24px 26px!important;
  border:1px solid rgba(18,24,32,.08)!important;
  border-radius:22px!important;
  background:#fff!important;
  box-shadow:0 16px 38px rgba(18,24,32,.065)!important;
  overflow:hidden!important;
  transition:transform .28s ease,box-shadow .28s ease,border-color .28s ease!important;
}

.fp-about-mv-card:before{
  content:""!important;
  position:absolute!important;
  left:0!important;
  top:0!important;
  width:100%!important;
  height:5px!important;
}

.fp-about-mission:before{
  background:linear-gradient(90deg,#00a9e0,#4d74da)!important;
}
.fp-about-vision:before{
  background:linear-gradient(90deg,#ec008c,#ff7b2b,#ffd100)!important;
}

.fp-about-mv-card:hover{
  transform:translateY(-6px)!important;
  box-shadow:0 24px 52px rgba(18,24,32,.11)!important;
  border-color:rgba(18,24,32,.12)!important;
}

.fp-about-mv-label{
  display:inline-flex!important;
  margin-bottom:8px!important;
  color:#ec008c!important;
  font-size:.68rem!important;
  font-weight:950!important;
  letter-spacing:.12em!important;
  text-transform:uppercase!important;
}

.fp-about-mission .fp-about-mv-label{color:#00a9e0!important}
.fp-about-vision .fp-about-mv-label{color:#ec008c!important}

.fp-about-mv-card h3{
  margin:0 0 10px!important;
  color:#161b21!important;
  font-size:1.18rem!important;
}

.fp-about-mv-card p{
  margin:0!important;
  color:#66727f!important;
  font-size:.87rem!important;
  line-height:1.62!important;
}

.fp-about-premium .fp-about-points{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:10px 14px!important;
  margin-top:0!important;
}

.fp-about-premium .fp-about-points span{
  padding:10px 12px!important;
  border-radius:12px!important;
  background:#f7f9fb!important;
  color:#27313c!important;
  font-size:.8rem!important;
  font-weight:750!important;
}

@media(max-width:1100px){
  .fp-about-premium .fp-about-grid{
    grid-template-columns:1fr!important;
    gap:38px!important;
  }
  .fp-about-brand-panel{
    min-height:360px!important;
  }
}

@media(max-width:760px){
  .fp-about-premium{
    padding:70px 0 76px!important;
  }
  .fp-about-mv-grid{
    grid-template-columns:1fr!important;
  }
  .fp-about-premium .fp-about-points{
    grid-template-columns:1fr!important;
  }
  .fp-about-brand-panel{
    min-height:300px!important;
    padding:40px 24px!important;
  }
  .fp-about-brand-logo{
    width:min(88%,290px)!important;
  }
}

/* Stage 18.34 — Owner profile */
.fp-owner-section{display:grid!important;grid-template-columns:minmax(300px,.78fr) minmax(0,1.22fr)!important;gap:64px!important;align-items:center!important;margin-top:70px!important;padding-top:62px!important;border-top:1px solid rgba(18,24,32,.08)!important}
.fp-owner-photo-wrap{position:relative!important;max-width:430px!important;margin:auto!important}
.fp-owner-photo-accent{position:absolute!important;inset:-16px 18px 18px -16px!important;border-radius:32px!important;background:linear-gradient(135deg,#00a9e0 0%,#ec008c 52%,#ffd100 100%)!important;opacity:.18!important;filter:blur(1px)!important}
.fp-owner-photo{position:relative!important;display:block!important;width:100%!important;max-height:500px!important;object-fit:cover!important;object-position:center top!important;border-radius:28px!important;background:#fff!important;box-shadow:0 28px 65px rgba(16,25,36,.16)!important}
.fp-owner-content h2{margin:8px 0 6px!important;font-size:clamp(2.5rem,4vw,4.8rem)!important;line-height:.96!important;letter-spacing:-.055em!important}
.fp-owner-role{margin:0 0 24px!important;color:#536170!important;font-weight:800!important;letter-spacing:.02em!important}
.fp-owner-content blockquote{position:relative!important;margin:0!important;padding:26px 28px 26px 34px!important;border-left:4px solid #ec008c!important;border-radius:0 20px 20px 0!important;background:linear-gradient(120deg,#f7fbff,#fff7fb 55%,#fffaf0)!important;color:#27313c!important;font-size:1.08rem!important;line-height:1.7!important;font-weight:600!important;box-shadow:0 16px 40px rgba(18,24,32,.055)!important}
.fp-owner-values{display:flex!important;flex-wrap:wrap!important;gap:10px!important;margin-top:24px!important}
.fp-owner-values span{padding:9px 14px!important;border:1px solid rgba(18,24,32,.09)!important;border-radius:999px!important;background:#fff!important;color:#27313c!important;font-size:.78rem!important;font-weight:850!important;box-shadow:0 8px 22px rgba(18,24,32,.045)!important}
@media(max-width:900px){.fp-owner-section{grid-template-columns:1fr!important;gap:34px!important;margin-top:50px!important;padding-top:46px!important}.fp-owner-photo-wrap{max-width:360px!important}.fp-owner-content{text-align:center!important}.fp-owner-content blockquote{text-align:left!important}.fp-owner-values{justify-content:center!important}}
@media(max-width:560px){.fp-owner-section{margin-top:38px!important;padding-top:38px!important}.fp-owner-photo-wrap{max-width:300px!important}.fp-owner-photo{max-height:390px!important;border-radius:22px!important}.fp-owner-content blockquote{padding:22px!important;font-size:.96rem!important}.fp-owner-values span{font-size:.72rem!important}}


/* =========================================================
   STAGE 18.36 — ADAPTIVE DYNAMIC TEAM
   ========================================================= */
.fp-team-section{
  margin-top:58px!important;
  padding-top:42px!important;
  border-top:1px solid rgba(18,24,32,.08)!important;
}

.fp-team-head{
  display:grid!important;
  grid-template-columns:minmax(0,1.1fr) minmax(320px,.72fr)!important;
  gap:60px!important;
  align-items:end!important;
  margin-bottom:30px!important;
}

.fp-team-head h2{
  margin:.1em 0 0!important;
  font-size:clamp(2.8rem,4.3vw,5rem)!important;
  line-height:.9!important;
  letter-spacing:-.055em!important;
}

.fp-team-head>p{
  margin:0!important;
  padding:16px 20px!important;
  border-left:3px solid #ec008c!important;
  border-radius:0 14px 14px 0!important;
  background:#f8fafc!important;
  color:#65717e!important;
  line-height:1.6!important;
}

.fp-team-carousel{
  display:grid!important;
  grid-template-columns:48px minmax(0,1fr) 48px!important;
  gap:12px!important;
  align-items:center!important;
}

.fp-team-viewport{
  overflow:hidden!important;
  min-width:0!important;
}

.fp-team-track{
  display:flex!important;
  gap:18px!important;
  transition:transform .55s cubic-bezier(.2,.8,.2,1)!important;
  will-change:transform!important;
}

.fp-team-card{
  position:relative!important;
  overflow:hidden!important;
  display:grid!important;
  grid-template-columns:42% 58%!important;
  min-height:360px!important;
  border:1px solid rgba(18,24,32,.08)!important;
  border-radius:26px!important;
  background:#fff!important;
  box-shadow:0 20px 52px rgba(18,24,32,.085)!important;
  transition:transform .28s ease,box-shadow .28s ease!important;
}

.fp-team-card:hover{
  transform:translateY(-6px)!important;
  box-shadow:0 28px 62px rgba(18,24,32,.13)!important;
}

.fp-team-photo-wrap{
  position:relative!important;
  min-height:360px!important;
  overflow:hidden!important;
  background:
    radial-gradient(circle at 25% 20%,rgba(0,169,224,.18),transparent 38%),
    radial-gradient(circle at 75% 80%,rgba(236,0,140,.16),transparent 40%),
    #101821!important;
}

.fp-team-photo{
  width:100%!important;
  height:100%!important;
  object-fit:cover!important;
  object-position:center top!important;
  display:block!important;
}

.fp-team-photo-placeholder{
  width:100%!important;
  height:100%!important;
  min-height:360px!important;
  display:grid!important;
  place-items:center!important;
  color:#fff!important;
  font-size:6rem!important;
  font-weight:950!important;
}

.fp-team-photo-accent{
  position:absolute!important;
  inset:auto 0 0 0!important;
  height:5px!important;
  background:linear-gradient(90deg,#00a9e0,#ec008c,#ffd100)!important;
}

.fp-team-card-content{
  display:flex!important;
  flex-direction:column!important;
  justify-content:center!important;
  padding:28px 26px!important;
}

.fp-team-kicker{
  color:#ec008c!important;
  font-size:.66rem!important;
  font-weight:950!important;
  letter-spacing:.12em!important;
  text-transform:uppercase!important;
}

.fp-team-card h3{
  margin:7px 0 4px!important;
  color:#171b20!important;
  font-size:1.6rem!important;
  line-height:1.05!important;
}

.fp-team-role{
  margin:0 0 15px!important;
  color:#00a9e0!important;
  font-size:.78rem!important;
  font-weight:850!important;
}

.fp-team-bio{
  margin:0 0 18px!important;
  color:#65717e!important;
  line-height:1.55!important;
  font-size:.87rem!important;
}

.fp-team-values{
  display:flex!important;
  flex-wrap:wrap!important;
  gap:7px!important;
}

.fp-team-values span{
  padding:6px 9px!important;
  border-radius:999px!important;
  background:#f2f5f8!important;
  color:#4d5a67!important;
  font-size:.65rem!important;
  font-weight:750!important;
}

.fp-team-arrow{
  width:44px!important;
  height:44px!important;
  border-radius:50%!important;
  border:1px solid #dfe5ea!important;
  background:#fff!important;
  color:#17202a!important;
  font-size:1.6rem!important;
  cursor:pointer!important;
  box-shadow:0 10px 24px rgba(18,24,32,.07)!important;
  transition:transform .18s ease,opacity .18s ease!important;
}
.fp-team-arrow:hover:not(:disabled){transform:scale(1.06)!important}
.fp-team-arrow:disabled{opacity:.28!important;cursor:default!important}

.fp-team-dots{
  display:flex!important;
  justify-content:center!important;
  gap:7px!important;
  margin-top:18px!important;
}
.fp-team-dots button{
  width:8px!important;
  height:8px!important;
  padding:0!important;
  border:0!important;
  border-radius:999px!important;
  background:#cfd7de!important;
  cursor:pointer!important;
  transition:width .2s ease,background .2s ease!important;
}
.fp-team-dots button.is-active{
  width:26px!important;
  background:linear-gradient(90deg,#00a9e0,#ec008c)!important;
}

@media(max-width:1180px){
  .fp-team-card{
    grid-template-columns:40% 60%!important;
  }
}

@media(max-width:760px){
  .fp-team-head{
    grid-template-columns:1fr!important;
    gap:22px!important;
  }
  .fp-team-carousel{
    grid-template-columns:38px minmax(0,1fr) 38px!important;
    gap:6px!important;
  }
  .fp-team-card{
    grid-template-columns:1fr!important;
    min-height:0!important;
  }
  .fp-team-photo-wrap{
    min-height:330px!important;
  }
  .fp-team-card-content{
    padding:24px 22px 26px!important;
  }
  .fp-team-arrow{
    width:36px!important;height:36px!important;font-size:1.3rem!important;
  }
}

@media(prefers-reduced-motion:reduce){
  .fp-team-track,
  .fp-team-card{transition:none!important}
}


/* STAGE 18.36 — member-count adaptive presentation */
.fp-team-carousel:not(.has-overflow){grid-template-columns:minmax(0,1fr)!important;max-width:100%!important}
.fp-team-carousel:not(.has-overflow) .fp-team-viewport{grid-column:1!important}
.fp-team-arrow[hidden],.fp-team-dots[hidden]{display:none!important}

/* One member becomes a centered feature profile instead of a small carousel card. */
.fp-team-carousel.is-single .fp-team-viewport{max-width:1080px!important;width:100%!important;margin:0 auto!important}
.fp-team-carousel.is-single .fp-team-card{grid-template-columns:minmax(300px,38%) 1fr!important;min-height:440px!important}
.fp-team-carousel.is-single .fp-team-photo-wrap{min-height:440px!important}
.fp-team-carousel.is-single .fp-team-card-content{padding:44px 52px!important}
.fp-team-carousel.is-single .fp-team-card h3{font-size:clamp(2rem,3vw,3.2rem)!important}
.fp-team-carousel.is-single .fp-team-role{font-size:1rem!important;margin-bottom:20px!important}
.fp-team-carousel.is-single .fp-team-bio{font-size:1.03rem!important;line-height:1.72!important;max-width:650px!important}
.fp-team-carousel.is-single .fp-team-values span{font-size:.76rem!important;padding:8px 12px!important}

/* Two or three members fill the row. Their vertical card layout keeps all text readable. */
.fp-team-carousel.is-pair .fp-team-card,
.fp-team-carousel.is-trio .fp-team-card{grid-template-columns:1fr!important;min-height:0!important;align-content:start!important}
.fp-team-carousel.is-pair .fp-team-photo-wrap{min-height:330px!important;height:330px!important}
.fp-team-carousel.is-trio .fp-team-photo-wrap{min-height:270px!important;height:270px!important}
.fp-team-carousel.is-pair .fp-team-card-content,
.fp-team-carousel.is-trio .fp-team-card-content{justify-content:flex-start!important;padding:28px!important}
.fp-team-carousel.is-pair .fp-team-bio,
.fp-team-carousel.is-trio .fp-team-bio{font-size:.9rem!important;line-height:1.62!important}

@media(max-width:1180px){
  .fp-team-carousel.is-single .fp-team-card{grid-template-columns:40% 60%!important}
  .fp-team-carousel.is-single .fp-team-card-content{padding:34px!important}
  .fp-team-carousel.is-trio .fp-team-photo-wrap{min-height:320px!important;height:320px!important}
}
@media(max-width:760px){
  .fp-team-carousel.is-single .fp-team-card{grid-template-columns:1fr!important;min-height:0!important}
  .fp-team-carousel.is-single .fp-team-photo-wrap{min-height:390px!important;height:390px!important}
  .fp-team-carousel.is-single .fp-team-card-content{padding:28px 24px 30px!important}
  .fp-team-carousel.is-single .fp-team-card h3{font-size:2rem!important}
  .fp-team-carousel.is-pair .fp-team-photo-wrap,
  .fp-team-carousel.is-trio .fp-team-photo-wrap{min-height:340px!important;height:340px!important}
}


/* =========================================================
   STAGE 18.37 — ABOUT / TEAM DEPTH BACKGROUND
   Subtle CMYK atmosphere without competing with content.
   ========================================================= */
@keyframes fpAboutFloatA{
  0%,100%{transform:translate3d(0,0,0) rotate(-8deg) scale(1)}
  50%{transform:translate3d(18px,-10px,0) rotate(-4deg) scale(1.04)}
}
@keyframes fpAboutFloatB{
  0%,100%{transform:translate3d(0,0,0) rotate(8deg) scale(1)}
  50%{transform:translate3d(-14px,12px,0) rotate(12deg) scale(1.05)}
}
@keyframes fpAboutPulse{
  0%,100%{opacity:.22;transform:scale(.98)}
  50%{opacity:.38;transform:scale(1.04)}
}

.fp-about-premium{
  position:relative!important;
  isolation:isolate!important;
  background:
    radial-gradient(circle at 12% 18%,rgba(0,169,224,.10),transparent 30%),
    radial-gradient(circle at 88% 28%,rgba(236,0,140,.08),transparent 31%),
    radial-gradient(circle at 72% 88%,rgba(255,209,0,.08),transparent 30%),
    linear-gradient(180deg,#fff 0%,#fbfcfe 100%)!important;
}

.fp-about-premium:before{
  content:""!important;
  position:absolute!important;
  z-index:-2!important;
  width:520px!important;
  height:520px!important;
  right:-120px!important;
  top:130px!important;
  border-radius:44% 56% 58% 42% / 40% 44% 56% 60%!important;
  background:
    radial-gradient(circle at 30% 30%,rgba(236,0,140,.14),transparent 46%),
    radial-gradient(circle at 68% 65%,rgba(255,209,0,.12),transparent 48%)!important;
  filter:blur(6px)!important;
  animation:fpAboutFloatB 13s ease-in-out infinite!important;
  pointer-events:none!important;
}

.fp-about-premium:after{
  content:""!important;
  position:absolute!important;
  z-index:-2!important;
  width:430px!important;
  height:430px!important;
  left:-150px!important;
  bottom:80px!important;
  border-radius:50%!important;
  background:
    radial-gradient(circle at 55% 45%,rgba(0,169,224,.13),transparent 55%),
    radial-gradient(circle at 65% 70%,rgba(77,116,218,.10),transparent 50%)!important;
  filter:blur(5px)!important;
  animation:fpAboutFloatA 14s ease-in-out infinite!important;
  pointer-events:none!important;
}

/* Watermark-style CMYK forms behind mission/team content */
.fp-about-premium .fp-about-grid,
.fp-about-premium .fp-team-section{
  position:relative!important;
  z-index:2!important;
}

.fp-about-premium .fp-team-section:before{
  content:""!important;
  position:absolute!important;
  z-index:-1!important;
  right:-4%!important;
  top:72px!important;
  width:360px!important;
  height:300px!important;
  opacity:.16!important;
  background:
    linear-gradient(125deg,transparent 0 12%,rgba(0,169,224,.22) 12% 19%,transparent 19% 30%,rgba(236,0,140,.20) 30% 37%,transparent 37% 48%,rgba(255,209,0,.20) 48% 55%,transparent 55%)!important;
  transform:rotate(-8deg)!important;
  animation:fpAboutFloatA 15s ease-in-out infinite!important;
  pointer-events:none!important;
}

.fp-about-premium .fp-team-section:after{
  content:""!important;
  position:absolute!important;
  z-index:-1!important;
  right:10%!important;
  bottom:40px!important;
  width:260px!important;
  height:220px!important;
  opacity:.10!important;
  background:
    radial-gradient(circle,#ec008c 0 2px,transparent 2.6px) 0 0/20px 20px!important;
  mask-image:linear-gradient(135deg,transparent 3%,#000 32%,#000 72%,transparent 97%)!important;
  animation:fpAboutPulse 9s ease-in-out infinite!important;
  pointer-events:none!important;
}

/* Very subtle extra shape behind the about content area */
.fp-about-content:before{
  content:""!important;
  position:absolute!important;
  z-index:-1!important;
  width:210px!important;
  height:210px!important;
  right:-35px!important;
  top:22px!important;
  border-radius:50%!important;
  background:radial-gradient(circle,rgba(255,209,0,.12),transparent 68%)!important;
  animation:fpAboutPulse 10s ease-in-out infinite!important;
  pointer-events:none!important;
}
.fp-about-content{
  position:relative!important;
  z-index:1!important;
}

@media(max-width:1100px){
  .fp-about-premium:before{
    width:390px!important;
    height:390px!important;
    right:-120px!important;
  }
  .fp-about-premium .fp-team-section:before{
    width:260px!important;
    height:220px!important;
    opacity:.11!important;
  }
}

@media(max-width:760px){
  .fp-about-premium:before,
  .fp-about-premium:after{
    opacity:.58!important;
  }
  .fp-about-premium .fp-team-section:before{
    right:-18%!important;
    top:110px!important;
    opacity:.08!important;
  }
  .fp-about-premium .fp-team-section:after{
    display:none!important;
  }
}

@media(prefers-reduced-motion:reduce){
  .fp-about-premium:before,
  .fp-about-premium:after,
  .fp-about-premium .fp-team-section:before,
  .fp-about-premium .fp-team-section:after,
  .fp-about-content:before{
    animation:none!important;
  }
}


/* =========================================================
   STAGE 18.38 — PREMIUM DARK TEAM STAGE
   Keeps the dynamic Team backend/carrusel; upgrades presentation.
   ========================================================= */

.fp-about-premium .fp-team-section{
  position:relative!important;
  z-index:3!important;
  margin-top:64px!important;
  margin-left:calc(50% - 50vw)!important;
  margin-right:calc(50% - 50vw)!important;
  padding:74px max(6vw,24px) 78px!important;
  overflow:hidden!important;
  color:#fff!important;
  background:
    radial-gradient(circle at 12% 22%,rgba(0,174,239,.18),transparent 28%),
    radial-gradient(circle at 88% 24%,rgba(236,0,140,.17),transparent 29%),
    radial-gradient(circle at 70% 92%,rgba(255,196,0,.08),transparent 24%),
    linear-gradient(115deg,#071a25 0%,#0c1723 43%,#201226 72%,#2d0c28 100%)!important;
  border-top:1px solid rgba(255,255,255,.07)!important;
  border-bottom:1px solid rgba(255,255,255,.07)!important;
}

/* oversized print-language watermark */
.fp-about-premium .fp-team-section:before{
  content:"PRINT  ·  DESIGN  ·  SIGNS  ·  BRANDING"!important;
  position:absolute!important;
  z-index:0!important;
  left:50%!important;
  top:50%!important;
  width:max-content!important;
  height:auto!important;
  transform:translate(-50%,-50%) rotate(-7deg)!important;
  font-size:clamp(64px,9vw,168px)!important;
  line-height:.85!important;
  font-weight:900!important;
  letter-spacing:-.055em!important;
  white-space:nowrap!important;
  color:rgba(255,255,255,.027)!important;
  background:none!important;
  opacity:1!important;
  pointer-events:none!important;
  animation:none!important;
}

/* subtle halftone */
.fp-about-premium .fp-team-section:after{
  content:""!important;
  position:absolute!important;
  z-index:0!important;
  right:-30px!important;
  top:18px!important;
  width:380px!important;
  height:330px!important;
  opacity:.13!important;
  background:radial-gradient(circle,rgba(255,255,255,.65) 0 1.3px,transparent 1.8px) 0 0/18px 18px!important;
  mask-image:radial-gradient(circle at center,#000,transparent 72%)!important;
  pointer-events:none!important;
  animation:fpAboutFloatB 16s ease-in-out infinite!important;
}

.fp-team-section > *{
  position:relative!important;
  z-index:2!important;
}

.fp-team-section .fp-eyebrow,
.fp-team-section [class*="eyebrow"]{
  color:#ff2b92!important;
}

.fp-team-section h2,
.fp-team-section h3{
  color:#fff!important;
}

.fp-team-section .fp-team-intro,
.fp-team-section .fp-team-intro p,
.fp-team-section .fp-team-description{
  color:rgba(255,255,255,.76)!important;
}

/* Cards on glass, while preserving adaptive widths/classes */
.fp-team-section .fp-team-card{
  overflow:hidden!important;
  color:#fff!important;
  background:linear-gradient(145deg,rgba(255,255,255,.105),rgba(255,255,255,.055))!important;
  border:1px solid rgba(255,255,255,.13)!important;
  box-shadow:0 26px 70px rgba(0,0,0,.24)!important;
  backdrop-filter:blur(12px)!important;
  -webkit-backdrop-filter:blur(12px)!important;
  border-radius:28px!important;
}

.fp-team-section .fp-team-card h3,
.fp-team-section .fp-team-card h4,
.fp-team-section .fp-team-card strong{
  color:#fff!important;
}
.fp-team-section .fp-team-card p{
  color:rgba(255,255,255,.72)!important;
}
.fp-team-section .fp-team-card [class*="role"],
.fp-team-section .fp-team-card [class*="position"]{
  color:#20bdf2!important;
}
.fp-team-section .fp-team-card img{
  filter:saturate(.98) contrast(1.02)!important;
}

/* Make a single member feel like a hero rather than a small card */
.fp-team-section .fp-team-track[data-count="1"] .fp-team-card,
.fp-team-section .fp-team-grid[data-count="1"] .fp-team-card,
.fp-team-section.is-single .fp-team-card{
  width:min(100%,1040px)!important;
  max-width:1040px!important;
  min-height:410px!important;
  margin-inline:auto!important;
}

/* Common single-card fallback for the current rendered structure */
.fp-team-section .fp-team-card:only-child{
  width:min(100%,1040px)!important;
  max-width:1040px!important;
  min-height:410px!important;
  margin-inline:auto!important;
}

/* Chips */
.fp-team-section .fp-team-card [class*="tag"],
.fp-team-section .fp-team-card [class*="chip"]{
  color:rgba(255,255,255,.88)!important;
  background:rgba(255,255,255,.09)!important;
  border:1px solid rgba(255,255,255,.08)!important;
}

/* Slider controls on dark background */
.fp-team-section button[class*="prev"],
.fp-team-section button[class*="next"],
.fp-team-section [class*="arrow"]{
  color:#fff!important;
  background:rgba(255,255,255,.09)!important;
  border-color:rgba(255,255,255,.15)!important;
  box-shadow:0 10px 28px rgba(0,0,0,.18)!important;
}

/* Decorative CMYK rails */
.fp-team-section .fp-team-card:before{
  content:""!important;
  position:absolute!important;
  left:0!important;
  top:0!important;
  width:100%!important;
  height:4px!important;
  background:linear-gradient(90deg,#00aeef 0 25%,#ec008c 25% 52%,#ffca05 52% 77%,#fff 77% 100%)!important;
  z-index:4!important;
}

/* On larger screens give the stage more breathing room */
@media(min-width:1100px){
  .fp-about-premium .fp-team-section{
    padding-left:max(8vw,90px)!important;
    padding-right:max(8vw,90px)!important;
  }
}

/* Mobile stays premium but compact */
@media(max-width:760px){
  .fp-about-premium .fp-team-section{
    margin-top:42px!important;
    padding:48px 18px 52px!important;
  }
  .fp-about-premium .fp-team-section:before{
    font-size:72px!important;
    opacity:.7!important;
  }
  .fp-team-section .fp-team-card:only-child{
    min-height:0!important;
    border-radius:22px!important;
  }
}

@media(prefers-reduced-motion:reduce){
  .fp-about-premium .fp-team-section:after{
    animation:none!important;
  }
}


/* =========================================================
   STAGE 18.39 — FULL-WIDTH PREMIUM TEAM LAYOUT FIX
   Fixes the narrow dark panel caused by the parent container.
   ========================================================= */

.fp-about-premium{
  overflow:visible!important;
}

/* Escape every constrained parent safely and span the viewport */
.fp-about-premium .fp-team-section{
  width:100vw!important;
  max-width:none!important;
  box-sizing:border-box!important;
  position:relative!important;
  left:50%!important;
  right:auto!important;
  margin-left:-50vw!important;
  margin-right:0!important;
  margin-top:58px!important;
  padding:64px 0 68px!important;
  min-height:0!important;
}

/* Re-center the actual section children in a professional content width */
.fp-about-premium .fp-team-section > *{
  width:min(1540px,calc(100% - 96px))!important;
  max-width:1540px!important;
  margin-left:auto!important;
  margin-right:auto!important;
  box-sizing:border-box!important;
}

/* Header: title left, intro right, without crushing either side */
.fp-team-section .fp-team-head,
.fp-team-section .fp-team-header{
  display:grid!important;
  grid-template-columns:minmax(0,1.05fr) minmax(340px,.95fr)!important;
  align-items:end!important;
  gap:56px!important;
  margin-bottom:34px!important;
}

.fp-team-section .fp-team-head h2,
.fp-team-section .fp-team-header h2{
  max-width:760px!important;
  font-size:clamp(48px,5.2vw,88px)!important;
  line-height:.91!important;
  letter-spacing:-.055em!important;
}

.fp-team-section .fp-team-intro{
  max-width:620px!important;
  justify-self:end!important;
}

/* One employee = premium horizontal hero */
.fp-team-section .fp-team-card:only-child{
  display:grid!important;
  grid-template-columns:minmax(300px,38%) minmax(0,62%)!important;
  width:min(100%,1120px)!important;
  max-width:1120px!important;
  min-height:430px!important;
  margin:0 auto!important;
  align-items:stretch!important;
}

.fp-team-section .fp-team-card:only-child .fp-team-photo,
.fp-team-section .fp-team-card:only-child [class*="photo"],
.fp-team-section .fp-team-card:only-child [class*="image"]{
  height:100%!important;
  min-height:430px!important;
}

.fp-team-section .fp-team-card:only-child img{
  width:100%!important;
  height:100%!important;
  max-height:500px!important;
  object-fit:contain!important;
  object-position:center bottom!important;
}

/* Prevent legacy widths/transforms from shrinking the adaptive track */
.fp-team-section .fp-team-track,
.fp-team-section .fp-team-grid,
.fp-team-section [class*="team-list"],
.fp-team-section [class*="team-slider"]{
  max-width:100%!important;
  box-sizing:border-box!important;
}

/* Less empty vertical space after the team */
.fp-team-section + *,
.fp-about-premium .fp-team-section + *{
  margin-top:0!important;
}

@media(max-width:1000px){
  .fp-about-premium .fp-team-section > *{
    width:min(100% - 48px,1540px)!important;
  }
  .fp-team-section .fp-team-head,
  .fp-team-section .fp-team-header{
    grid-template-columns:1fr!important;
    gap:22px!important;
  }
  .fp-team-section .fp-team-intro{
    justify-self:start!important;
  }
}

@media(max-width:760px){
  .fp-about-premium .fp-team-section{
    margin-top:42px!important;
    padding:48px 0 52px!important;
  }
  .fp-about-premium .fp-team-section > *{
    width:calc(100% - 32px)!important;
  }
  .fp-team-section .fp-team-card:only-child{
    display:block!important;
    width:100%!important;
    min-height:0!important;
  }
  .fp-team-section .fp-team-card:only-child .fp-team-photo,
  .fp-team-section .fp-team-card:only-child [class*="photo"],
  .fp-team-section .fp-team-card:only-child [class*="image"]{
    min-height:300px!important;
    height:330px!important;
  }
  .fp-team-section .fp-team-card:only-child img{
    max-height:330px!important;
  }
}


/* =========================================================
   STAGE 18.40 — TEAM BRAND WATERMARK + PHOTO FIX
   Approved presentation: no white intro box, real member photo,
   horizontal hero card, Faster Printing logo watermark.
   ========================================================= */

/* Keep the team stage full-width and uncluttered. */
.fp-about-premium .fp-team-section{
  position:relative!important;
  width:100vw!important;
  max-width:none!important;
  left:50%!important;
  margin-left:-50vw!important;
  margin-right:0!important;
  padding:64px 0 72px!important;
  overflow:hidden!important;
  background:
    radial-gradient(circle at 10% 28%,rgba(0,174,239,.18),transparent 29%),
    radial-gradient(circle at 91% 24%,rgba(236,0,140,.18),transparent 30%),
    linear-gradient(112deg,#071b27 0%,#0c1723 46%,#211126 74%,#310b29 100%)!important;
}

/* Remove the previous PRINT/DESIGN/SIGNS watermark entirely. */
.fp-about-premium .fp-team-section:before{
  display:none!important;
  content:none!important;
}

/* Keep only subtle halftone detail. */
.fp-about-premium .fp-team-section:after{
  right:-32px!important;
  top:28px!important;
  width:360px!important;
  height:320px!important;
  opacity:.10!important;
}

/* Actual Faster Printing logo as the background watermark. */
.fp-team-brand-watermark{
  position:absolute!important;
  z-index:0!important;
  right:7%!important;
  top:50%!important;
  width:clamp(340px,31vw,620px)!important;
  transform:translateY(-48%)!important;
  pointer-events:none!important;
  opacity:.105!important;
  filter:grayscale(.08) brightness(1.18) contrast(1.05)!important;
}

.fp-team-brand-watermark img{
  display:block!important;
  width:100%!important;
  height:auto!important;
  object-fit:contain!important;
}

/* No white descriptive box in the Team heading. */
.fp-team-section .fp-team-head{
  display:block!important;
  margin-bottom:30px!important;
}
.fp-team-section .fp-team-head > p,
.fp-team-section .fp-team-head .fp-team-intro,
.fp-team-section .fp-team-description{
  display:none!important;
}

.fp-team-section .fp-team-head h2{
  max-width:760px!important;
  font-size:clamp(48px,5vw,84px)!important;
  line-height:.91!important;
  letter-spacing:-.055em!important;
}

/* Make sure all actual team content sits above watermark. */
.fp-team-section > *:not(.fp-team-brand-watermark){
  position:relative!important;
  z-index:2!important;
  width:min(1540px,calc(100% - 96px))!important;
  max-width:1540px!important;
  margin-left:auto!important;
  margin-right:auto!important;
  box-sizing:border-box!important;
}

/* Restore and protect member images. */
.fp-team-photo-wrap{
  position:relative!important;
  min-height:420px!important;
  overflow:hidden!important;
  background:
    radial-gradient(circle at 28% 18%,rgba(0,174,239,.20),transparent 42%),
    linear-gradient(180deg,#10202c,#0b1119)!important;
}

.fp-team-photo{
  display:block!important;
  width:100%!important;
  height:100%!important;
  min-height:420px!important;
  object-fit:contain!important;
  object-position:center bottom!important;
  opacity:1!important;
  visibility:visible!important;
  filter:none!important;
}

/* One member = large horizontal executive card. */
.fp-team-section .fp-team-track{
  justify-content:center!important;
}

.fp-team-section .fp-team-card:only-child{
  display:grid!important;
  grid-template-columns:minmax(330px,40%) minmax(0,60%)!important;
  width:min(100%,1100px)!important;
  max-width:1100px!important;
  min-height:420px!important;
  margin-inline:auto!important;
  overflow:hidden!important;
  border-radius:28px!important;
  background:
    linear-gradient(145deg,rgba(255,255,255,.09),rgba(255,255,255,.045))!important;
  border:1px solid rgba(255,255,255,.15)!important;
  box-shadow:0 28px 72px rgba(0,0,0,.28)!important;
  backdrop-filter:blur(10px)!important;
  -webkit-backdrop-filter:blur(10px)!important;
}

.fp-team-section .fp-team-card:only-child .fp-team-card-content{
  padding:42px 42px!important;
  justify-content:center!important;
}

.fp-team-section .fp-team-card h3{
  color:#fff!important;
  font-size:clamp(1.9rem,2.2vw,2.7rem)!important;
}

.fp-team-section .fp-team-role{
  color:#22bff2!important;
}

.fp-team-section .fp-team-bio{
  color:rgba(255,255,255,.80)!important;
  font-size:.98rem!important;
  line-height:1.65!important;
  max-width:680px!important;
}

.fp-team-section .fp-team-values span{
  color:#fff!important;
  background:rgba(255,255,255,.08)!important;
  border:1px solid rgba(255,255,255,.14)!important;
}

/* Hide carousel UI when there is only one member. */
.fp-team-carousel:has(.fp-team-card:only-child) .fp-team-arrow,
.fp-team-section:has(.fp-team-card:only-child) .fp-team-dots{
  display:none!important;
}

/* Multi-member behavior remains carousel-based. */
.fp-team-section .fp-team-arrow{
  color:#fff!important;
  background:rgba(255,255,255,.08)!important;
  border-color:rgba(255,255,255,.15)!important;
}

@media(max-width:1000px){
  .fp-team-section > *:not(.fp-team-brand-watermark){
    width:min(100% - 48px,1540px)!important;
  }
  .fp-team-brand-watermark{
    right:-6%!important;
    width:470px!important;
    opacity:.07!important;
  }
}

@media(max-width:760px){
  .fp-about-premium .fp-team-section{
    padding:50px 0 56px!important;
  }
  .fp-team-section > *:not(.fp-team-brand-watermark){
    width:calc(100% - 32px)!important;
  }
  .fp-team-brand-watermark{
    right:-25%!important;
    top:25%!important;
    width:360px!important;
    opacity:.055!important;
  }
  .fp-team-section .fp-team-card:only-child{
    display:block!important;
    width:100%!important;
    min-height:0!important;
  }
  .fp-team-photo-wrap,
  .fp-team-photo{
    min-height:330px!important;
    height:330px!important;
  }
  .fp-team-section .fp-team-card:only-child .fp-team-card-content{
    padding:26px 22px 28px!important;
  }
}

/* Fallback for browsers without :has(): arrows stay subtle, photo still works. */
@supports not selector(:has(*)){
  .fp-team-section .fp-team-dots{
    margin-top:16px!important;
  }
}


/* =========================================================
   STAGE 18.41 — TEAM FEATURED IMAGE HARD FIX
   Featured Image must fill the member visual area.
   ========================================================= */
.fp-team-section .fp-team-photo-wrap{
  display:flex!important;
  align-items:flex-end!important;
  justify-content:center!important;
  position:relative!important;
  min-width:0!important;
  overflow:hidden!important;
  background:
    radial-gradient(circle at 35% 20%,rgba(0,174,239,.26),transparent 43%),
    radial-gradient(circle at 76% 38%,rgba(236,0,140,.22),transparent 48%),
    linear-gradient(135deg,#092235,#181126)!important;
}

.fp-team-section .fp-team-photo{
  display:block!important;
  position:relative!important;
  z-index:2!important;
  width:100%!important;
  height:100%!important;
  min-width:100%!important;
  min-height:420px!important;
  max-width:none!important;
  max-height:none!important;
  margin:0!important;
  padding:0!important;
  opacity:1!important;
  visibility:visible!important;
  object-fit:contain!important;
  object-position:center bottom!important;
  background:transparent!important;
  filter:none!important;
  transform:none!important;
}

.fp-team-section .fp-team-photo-placeholder{
  position:relative!important;
  z-index:2!important;
}

/* The CMYK strip belongs on the card edge, never over the portrait. */
.fp-team-section .fp-team-photo-accent{
  left:0!important;
  right:0!important;
  bottom:0!important;
  width:100%!important;
  height:4px!important;
  z-index:4!important;
  background:linear-gradient(90deg,#00aeef,#6a63de,#ec008c,#ff7a32,#ffd100)!important;
}

@media(max-width:760px){
  .fp-team-section .fp-team-photo{
    min-height:330px!important;
    height:330px!important;
  }
}


/* =========================================================
   STAGE 18.42 — DIRECT TEAM IMAGE RENDER
   Final hard override for WordPress Featured Image display.
   ========================================================= */
.fp-team-section .fp-team-card .fp-team-photo-wrap{
  position:relative!important;
  display:flex!important;
  align-items:flex-end!important;
  justify-content:center!important;
  overflow:hidden!important;
  min-height:430px!important;
  background:linear-gradient(135deg,#08233a 0%,#17213a 42%,#4e103c 100%)!important;
}

.fp-team-section .fp-team-card .fp-team-photo-wrap > img.fp-team-photo{
  display:block!important;
  position:absolute!important;
  z-index:3!important;
  left:0!important;
  right:0!important;
  bottom:0!important;
  top:0!important;
  width:100%!important;
  height:100%!important;
  min-width:0!important;
  min-height:0!important;
  max-width:none!important;
  max-height:none!important;
  margin:0!important;
  padding:0!important;
  opacity:1!important;
  visibility:visible!important;
  object-fit:contain!important;
  object-position:center bottom!important;
  mix-blend-mode:normal!important;
  filter:none!important;
  transform:none!important;
}

.fp-team-section .fp-team-card .fp-team-photo-accent{
  z-index:5!important;
}

@media(max-width:760px){
  .fp-team-section .fp-team-card .fp-team-photo-wrap{
    min-height:350px!important;
    height:350px!important;
  }
}


/* =========================================================
   STAGE 18.43 — TEAM PHOTO MARKUP FIX
   Direct wp_get_attachment_image() output from Featured Image.
   ========================================================= */
.fp-team-photo-wrap{
  position:relative!important;
  overflow:hidden!important;
  background:
    radial-gradient(circle at 25% 18%,rgba(0,174,239,.22),transparent 40%),
    radial-gradient(circle at 75% 45%,rgba(236,0,140,.18),transparent 48%),
    linear-gradient(135deg,#082136,#28132e)!important;
}

.fp-team-photo-wrap img.fp-team-photo,
.fp-team-photo-wrap img[class*="wp-image-"]{
  display:block!important;
  position:absolute!important;
  inset:0!important;
  z-index:3!important;
  width:100%!important;
  height:100%!important;
  max-width:none!important;
  max-height:none!important;
  min-width:0!important;
  min-height:0!important;
  margin:0!important;
  padding:0!important;
  opacity:1!important;
  visibility:visible!important;
  object-fit:contain!important;
  object-position:center bottom!important;
  background:transparent!important;
  mix-blend-mode:normal!important;
  filter:none!important;
  transform:none!important;
}

.fp-team-photo-wrap .fp-team-photo-placeholder{
  position:absolute!important;
  inset:0!important;
  z-index:2!important;
  display:grid!important;
  place-items:center!important;
}

.fp-team-photo-wrap .fp-team-photo-accent{
  position:absolute!important;
  left:0!important;
  right:0!important;
  bottom:0!important;
  z-index:5!important;
  height:4px!important;
}


/* =========================================================
   STAGE 18.44 — TEAM REFERENCE LAYOUT
   Photo-led executive card matching the approved visual direction.
   ========================================================= */

.fp-about-premium .fp-team-section{
  position:relative!important;
  width:100vw!important;
  max-width:none!important;
  left:50%!important;
  margin-left:-50vw!important;
  margin-right:0!important;
  padding:68px 0 78px!important;
  overflow:hidden!important;
  background:
    radial-gradient(circle at 8% 28%,rgba(0,174,239,.22),transparent 28%),
    radial-gradient(circle at 93% 24%,rgba(236,0,140,.20),transparent 30%),
    linear-gradient(112deg,#061923 0%,#0a1420 47%,#201026 73%,#300b29 100%)!important;
}

/* Logo watermark */
.fp-team-brand-watermark{
  position:absolute!important;
  z-index:0!important;
  right:6%!important;
  top:51%!important;
  width:clamp(360px,32vw,650px)!important;
  transform:translateY(-48%)!important;
  opacity:.11!important;
  pointer-events:none!important;
  filter:grayscale(.05) brightness(1.15) contrast(1.05)!important;
}
.fp-team-brand-watermark img{
  width:100%!important;
  height:auto!important;
  display:block!important;
}

/* Extra light accent behind watermark */
.fp-team-bg-accent{
  position:absolute!important;
  z-index:0!important;
  right:0!important;
  top:0!important;
  width:42%!important;
  height:100%!important;
  background:
    radial-gradient(circle at 82% 34%,rgba(236,0,140,.10),transparent 40%),
    radial-gradient(circle at 56% 70%,rgba(0,174,239,.07),transparent 36%)!important;
  pointer-events:none!important;
}

/* Halftone on far right */
.fp-about-premium .fp-team-section:after{
  content:""!important;
  position:absolute!important;
  z-index:0!important;
  right:-20px!important;
  top:24px!important;
  width:310px!important;
  height:310px!important;
  opacity:.12!important;
  background:radial-gradient(circle,rgba(255,255,255,.58) 0 1.25px,transparent 1.8px) 0 0/18px 18px!important;
  mask-image:radial-gradient(circle,#000,transparent 72%)!important;
  pointer-events:none!important;
}

/* Team header */
.fp-team-section > *:not(.fp-team-brand-watermark):not(.fp-team-bg-accent){
  position:relative!important;
  z-index:2!important;
  width:min(1540px,calc(100% - 96px))!important;
  max-width:1540px!important;
  margin-left:auto!important;
  margin-right:auto!important;
  box-sizing:border-box!important;
}

.fp-team-section .fp-team-head{
  display:block!important;
  margin-bottom:30px!important;
}

.fp-team-section .fp-team-head h2{
  max-width:860px!important;
  margin:.10em 0 0!important;
  color:#fff!important;
  font-size:clamp(50px,5.2vw,88px)!important;
  line-height:.90!important;
  letter-spacing:-.055em!important;
}

/* Main card */
.fp-team-section .fp-team-track{
  justify-content:center!important;
  align-items:stretch!important;
}

.fp-team-section .fp-team-card:only-child{
  display:grid!important;
  grid-template-columns:minmax(360px,40%) minmax(0,60%)!important;
  width:min(100%,1160px)!important;
  max-width:1160px!important;
  min-height:440px!important;
  margin-inline:auto!important;
  overflow:hidden!important;
  position:relative!important;
  border-radius:30px!important;
  color:#fff!important;
  background:
    linear-gradient(145deg,rgba(255,255,255,.08),rgba(255,255,255,.035))!important;
  border:1px solid rgba(255,255,255,.16)!important;
  box-shadow:0 30px 80px rgba(0,0,0,.30)!important;
  backdrop-filter:blur(11px)!important;
  -webkit-backdrop-filter:blur(11px)!important;
}

/* CMYK outline */
.fp-team-section .fp-team-card:only-child:before{
  content:""!important;
  position:absolute!important;
  inset:0!important;
  z-index:8!important;
  border-radius:30px!important;
  padding:2px!important;
  background:linear-gradient(90deg,#00aeef 0%,#5f62de 22%,#ec008c 48%,#ff6a3a 72%,#ffd100 100%)!important;
  -webkit-mask:
    linear-gradient(#000 0 0) content-box,
    linear-gradient(#000 0 0)!important;
  -webkit-mask-composite:xor!important;
  mask-composite:exclude!important;
  pointer-events:none!important;
}

/* Portrait area */
.fp-team-section .fp-team-photo-wrap{
  position:relative!important;
  min-height:440px!important;
  height:100%!important;
  overflow:hidden!important;
  display:flex!important;
  align-items:flex-end!important;
  justify-content:center!important;
  background:
    radial-gradient(circle at 28% 28%,rgba(0,174,239,.38),transparent 42%),
    radial-gradient(circle at 72% 46%,rgba(236,0,140,.34),transparent 45%),
    linear-gradient(135deg,#083d73 0%,#183875 34%,#7b1b7a 70%,#c0147a 100%)!important;
}

/* Critical: the portrait must always be visible on top of the gradient */
.fp-team-section .fp-team-photo-wrap > img.fp-team-photo{
  display:block!important;
  position:absolute!important;
  z-index:4!important;
  inset:0!important;
  width:100%!important;
  height:100%!important;
  max-width:none!important;
  max-height:none!important;
  min-width:0!important;
  min-height:0!important;
  margin:0!important;
  padding:0!important;
  opacity:1!important;
  visibility:visible!important;
  object-fit:contain!important;
  object-position:center bottom!important;
  mix-blend-mode:normal!important;
  filter:none!important;
  transform:none!important;
  background:transparent!important;
}

.fp-team-photo-glow{
  position:absolute!important;
  z-index:2!important;
  left:10%!important;
  right:10%!important;
  bottom:-10%!important;
  height:52%!important;
  border-radius:50%!important;
  background:radial-gradient(circle,rgba(255,255,255,.12),transparent 68%)!important;
  pointer-events:none!important;
}

.fp-team-photo-accent{
  display:none!important;
}

/* Content side */
.fp-team-section .fp-team-card:only-child .fp-team-card-content{
  display:flex!important;
  flex-direction:column!important;
  justify-content:center!important;
  padding:44px 48px!important;
  position:relative!important;
  z-index:3!important;
}

.fp-team-section .fp-team-kicker{
  color:#ff2b92!important;
  font-size:.70rem!important;
  font-weight:950!important;
  letter-spacing:.13em!important;
  text-transform:uppercase!important;
}

.fp-team-section .fp-team-card h3{
  margin:8px 0 6px!important;
  color:#fff!important;
  font-size:clamp(2.2rem,2.6vw,3rem)!important;
  line-height:1.0!important;
}

.fp-team-section .fp-team-role{
  margin:0 0 20px!important;
  color:#20c7f3!important;
  font-size:.92rem!important;
  font-weight:850!important;
}

.fp-team-section .fp-team-bio{
  max-width:700px!important;
  margin:0 0 22px!important;
  color:rgba(255,255,255,.84)!important;
  font-size:1rem!important;
  line-height:1.65!important;
}

.fp-team-section .fp-team-values{
  display:flex!important;
  flex-wrap:wrap!important;
  gap:9px!important;
}

.fp-team-section .fp-team-values span{
  padding:8px 12px!important;
  border-radius:999px!important;
  color:#fff!important;
  background:rgba(255,255,255,.07)!important;
  border:1px solid rgba(255,255,255,.16)!important;
  font-size:.72rem!important;
  font-weight:800!important;
}

/* Hide carousel controls when there is only one member */
.fp-team-carousel:has(.fp-team-card:only-child) .fp-team-arrow,
.fp-team-section:has(.fp-team-card:only-child) .fp-team-dots{
  display:none!important;
}

/* Keep multi-member carousel behavior */
.fp-team-section .fp-team-arrow{
  color:#fff!important;
  background:rgba(255,255,255,.08)!important;
  border-color:rgba(255,255,255,.15)!important;
}

@media(max-width:1000px){
  .fp-team-section > *:not(.fp-team-brand-watermark):not(.fp-team-bg-accent){
    width:min(100% - 48px,1540px)!important;
  }
  .fp-team-brand-watermark{
    right:-5%!important;
    width:470px!important;
    opacity:.075!important;
  }
  .fp-team-section .fp-team-card:only-child{
    grid-template-columns:minmax(300px,42%) minmax(0,58%)!important;
  }
}

@media(max-width:760px){
  .fp-about-premium .fp-team-section{
    padding:52px 0 58px!important;
  }
  .fp-team-section > *:not(.fp-team-brand-watermark):not(.fp-team-bg-accent){
    width:calc(100% - 32px)!important;
  }
  .fp-team-brand-watermark{
    right:-24%!important;
    top:30%!important;
    width:350px!important;
    opacity:.05!important;
  }
  .fp-team-section .fp-team-card:only-child{
    display:block!important;
    width:100%!important;
    min-height:0!important;
  }
  .fp-team-section .fp-team-photo-wrap{
    min-height:360px!important;
    height:360px!important;
  }
  .fp-team-section .fp-team-card:only-child .fp-team-card-content{
    padding:28px 22px 30px!important;
  }
}


/* =========================================================
   STAGE 18.45 — TEAM BACKGROUND WATERMARK PRO
   Cleaner, more intentional Faster Printing background logo.
   ========================================================= */

/* Reposition the existing logo so its silhouette is intentional,
   centered in the upper-right composition and not clipped by edges. */
.fp-team-brand-watermark{
  position:absolute!important;
  z-index:1!important;
  top:46px!important;
  right:8.5%!important;
  width:clamp(410px,31vw,610px)!important;
  transform:none!important;
  opacity:.105!important;
  overflow:visible!important;
  pointer-events:none!important;
  filter:grayscale(.35) brightness(1.2) contrast(.92)!important;
}

.fp-team-brand-watermark img{
  display:block!important;
  width:100%!important;
  height:auto!important;
  max-width:none!important;
  opacity:1!important;
  object-fit:contain!important;
}

/* Soft halo makes the watermark readable as a deliberate brand element. */
.fp-team-brand-watermark:before{
  content:""!important;
  position:absolute!important;
  z-index:-1!important;
  inset:-18% -12%!important;
  border-radius:50%!important;
  background:radial-gradient(circle,
    rgba(255,255,255,.035) 0%,
    rgba(0,174,239,.018) 38%,
    transparent 70%)!important;
  pointer-events:none!important;
}

/* Keep the member card visually in front of the watermark. */
.fp-team-section .fp-team-carousel,
.fp-team-section .fp-team-track{
  position:relative!important;
  z-index:4!important;
}

/* Refine the right-side halftone so it frames the logo instead of competing. */
.fp-about-premium .fp-team-section:after{
  right:14px!important;
  top:18px!important;
  width:280px!important;
  height:280px!important;
  opacity:.13!important;
}

/* Add a very subtle cyan halftone counterweight at lower-left. */
.fp-about-premium .fp-team-section:before{
  content:""!important;
  position:absolute!important;
  z-index:0!important;
  left:-45px!important;
  bottom:-45px!important;
  width:260px!important;
  height:260px!important;
  opacity:.09!important;
  background:radial-gradient(circle,rgba(0,174,239,.75) 0 1.35px,transparent 1.9px) 0 0/18px 18px!important;
  mask-image:radial-gradient(circle,#000,transparent 72%)!important;
  -webkit-mask-image:radial-gradient(circle,#000,transparent 72%)!important;
  pointer-events:none!important;
}

@media(max-width:1000px){
  .fp-team-brand-watermark{
    top:70px!important;
    right:3%!important;
    width:420px!important;
    opacity:.08!important;
  }
}

@media(max-width:760px){
  .fp-team-brand-watermark{
    top:92px!important;
    right:-8%!important;
    width:300px!important;
    opacity:.055!important;
  }
  .fp-about-premium .fp-team-section:after{
    width:190px!important;
    height:190px!important;
  }
}


/* =========================================================
   STAGE 18.46 — STRUCTURAL TEAM WATERMARK
   Direct HTML watermark layer. This intentionally overrides all
   previous watermark experiments.
   ========================================================= */

.fp-team-brand-watermark{
  display:none!important;
}

.fp-about-premium .fp-team-section{
  position:relative!important;
  overflow:hidden!important;
}

/* New structural watermark layer */
.fp-team-watermark-stage{
  position:absolute!important;
  z-index:1!important;
  top:78px!important;
  right:6%!important;
  width:min(34vw,620px)!important;
  height:auto!important;
  opacity:.14!important;
  pointer-events:none!important;
  display:block!important;
  transform:none!important;
  filter:none!important;
}

.fp-team-watermark-logo{
  display:block!important;
  width:100%!important;
  height:auto!important;
  max-width:none!important;
  opacity:1!important;
  filter:grayscale(.45) brightness(1.22) contrast(.88)!important;
  mix-blend-mode:screen!important;
}

/* Ensure the heading and cards always sit above the new watermark */
.fp-team-section .fp-team-head,
.fp-team-section .fp-team-carousel,
.fp-team-section .fp-team-dots{
  position:relative!important;
  z-index:4!important;
}

/* Push the single profile card slightly lower for cleaner balance */
.fp-team-section .fp-team-carousel{
  margin-top:26px!important;
}

/* Cleaner card placement */
.fp-team-section .fp-team-card:only-child{
  margin-left:auto!important;
  margin-right:auto!important;
}

/* Keep watermark clearly away from viewport edges */
@media(min-width:1200px){
  .fp-team-watermark-stage{
    top:72px!important;
    right:8%!important;
    width:min(31vw,590px)!important;
  }
}

@media(max-width:1000px){
  .fp-team-watermark-stage{
    top:96px!important;
    right:2%!important;
    width:420px!important;
    opacity:.10!important;
  }
}

@media(max-width:760px){
  .fp-team-watermark-stage{
    top:115px!important;
    right:-3%!important;
    width:280px!important;
    opacity:.06!important;
  }
}


/* =========================================================
   STAGE 18.47 — TEAM BALANCE PRO
   Better scale/distribution when only one team member exists.
   ========================================================= */

@media(min-width:1001px){
  .fp-team-section{
    padding-top:58px!important;
    padding-bottom:62px!important;
    min-height:0!important;
  }

  .fp-team-section .fp-team-head{
    max-width:1180px!important;
    margin-left:auto!important;
    margin-right:auto!important;
  }

  .fp-team-section .fp-team-head h2{
    font-size:clamp(52px,4.25vw,76px)!important;
    line-height:.91!important;
    letter-spacing:-.045em!important;
    max-width:760px!important;
  }

  .fp-team-section .fp-team-carousel{
    max-width:1180px!important;
    margin:30px auto 0!important;
  }

  /* Single member: make the profile the visual hero */
  .fp-team-section .fp-team-carousel:has(.fp-team-card:only-child){
    display:flex!important;
    justify-content:center!important;
    align-items:center!important;
  }

  .fp-team-section .fp-team-card:only-child{
    width:min(900px,78vw)!important;
    max-width:900px!important;
    min-height:410px!important;
    margin:0 auto!important;
    transform:none!important;
  }

  .fp-team-section .fp-team-card:only-child .fp-team-photo{
    width:38%!important;
    min-width:300px!important;
  }

  .fp-team-section .fp-team-card:only-child .fp-team-content{
    width:62%!important;
    padding:42px 46px!important;
  }

  .fp-team-section .fp-team-card:only-child .fp-team-content h3{
    font-size:clamp(34px,2.6vw,48px)!important;
    line-height:1!important;
  }

  .fp-team-section .fp-team-card:only-child .fp-team-content p{
    font-size:16px!important;
    line-height:1.65!important;
  }

  /* Background logo remains large but quieter and farther right */
  .fp-team-watermark-stage{
    top:105px!important;
    right:4.5%!important;
    width:min(38vw,650px)!important;
    opacity:.075!important;
  }
}

/* Two members: use the available width cleanly */
@media(min-width:1001px){
  .fp-team-section .fp-team-carousel:has(.fp-team-card:nth-child(2):last-child){
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:28px!important;
  }
  .fp-team-section .fp-team-carousel:has(.fp-team-card:nth-child(2):last-child) .fp-team-card{
    width:100%!important;
    max-width:none!important;
  }
}

/* Mobile/tablet stays compact and readable */
@media(max-width:1000px){
  .fp-team-section{
    padding-top:48px!important;
    padding-bottom:52px!important;
  }
  .fp-team-section .fp-team-head h2{
    font-size:clamp(40px,8vw,62px)!important;
  }
}


/* =========================================================
   STAGE 18.48 — CLEAN TEAM REBUILD
   New standalone Team component. Old team styling cannot affect
   the one-member layout because all primary classes are unique.
   ========================================================= */
.fp-team-clean{
  position:relative!important;
  width:100vw!important;
  max-width:none!important;
  left:50%!important;
  margin-left:-50vw!important;
  margin-top:56px!important;
  overflow:hidden!important;
  padding:68px 0 74px!important;
  color:#fff!important;
  background:
    radial-gradient(circle at 8% 30%,rgba(0,174,239,.18),transparent 28%),
    radial-gradient(circle at 92% 25%,rgba(236,0,140,.18),transparent 30%),
    linear-gradient(112deg,#061923 0%,#0a1420 47%,#201026 73%,#300b29 100%)!important;
}

.fp-team-clean-inner{
  position:relative!important;
  z-index:3!important;
  width:min(1380px,calc(100% - 64px))!important;
  margin:0 auto!important;
}

.fp-team-clean-head{
  margin:0 0 32px!important;
}

.fp-team-clean-head h2{
  margin:.1em 0 0!important;
  color:#fff!important;
  font-size:clamp(48px,4.8vw,82px)!important;
  line-height:.91!important;
  letter-spacing:-.055em!important;
  max-width:850px!important;
}

.fp-team-clean-bg-logo{
  position:absolute!important;
  z-index:1!important;
  top:72px!important;
  right:7%!important;
  width:min(33vw,560px)!important;
  opacity:.075!important;
  pointer-events:none!important;
}

.fp-team-clean-bg-logo img{
  display:block!important;
  width:100%!important;
  height:auto!important;
  filter:grayscale(.35) brightness(1.18) contrast(.9)!important;
}

/* SINGLE MEMBER */
.fp-team-clean-single{
  position:relative!important;
  display:grid!important;
  grid-template-columns:minmax(360px,42%) minmax(0,58%)!important;
  width:min(1120px,100%)!important;
  min-height:430px!important;
  margin:0 auto!important;
  overflow:hidden!important;
  border-radius:28px!important;
  background:linear-gradient(145deg,rgba(255,255,255,.075),rgba(255,255,255,.035))!important;
  border:1px solid rgba(255,255,255,.14)!important;
  box-shadow:0 28px 70px rgba(0,0,0,.28)!important;
}

.fp-team-clean-single:before{
  content:""!important;
  position:absolute!important;
  inset:0!important;
  z-index:5!important;
  border-radius:28px!important;
  padding:2px!important;
  background:linear-gradient(90deg,#00aeef,#675fde,#ec008c,#ff6a3a,#ffd100)!important;
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0)!important;
  -webkit-mask-composite:xor!important;
  mask-composite:exclude!important;
  pointer-events:none!important;
}

.fp-team-clean-photo{
  position:relative!important;
  min-height:430px!important;
  overflow:hidden!important;
  display:flex!important;
  align-items:flex-end!important;
  justify-content:center!important;
  background:
    radial-gradient(circle at 28% 26%,rgba(0,174,239,.42),transparent 42%),
    radial-gradient(circle at 74% 48%,rgba(236,0,140,.32),transparent 46%),
    linear-gradient(135deg,#083d73 0%,#183875 34%,#7b1b7a 70%,#c0147a 100%)!important;
}

.fp-team-clean-photo img{
  display:block!important;
  width:100%!important;
  height:100%!important;
  object-fit:contain!important;
  object-position:center bottom!important;
}

.fp-team-clean-placeholder{
  display:grid!important;
  place-items:center!important;
  width:100%!important;
  min-height:430px!important;
  font-size:6rem!important;
  font-weight:900!important;
}

.fp-team-clean-copy{
  display:flex!important;
  flex-direction:column!important;
  justify-content:center!important;
  padding:44px 48px!important;
}

.fp-team-clean-kicker{
  color:#ff2b92!important;
  font-size:.72rem!important;
  font-weight:950!important;
  letter-spacing:.13em!important;
  text-transform:uppercase!important;
}

.fp-team-clean-copy h3{
  margin:8px 0 6px!important;
  color:#fff!important;
  font-size:clamp(2.2rem,2.8vw,3.2rem)!important;
  line-height:1!important;
}

.fp-team-clean-role{
  margin:0 0 20px!important;
  color:#21c7f3!important;
  font-weight:850!important;
}

.fp-team-clean-bio{
  margin:0 0 22px!important;
  max-width:680px!important;
  color:rgba(255,255,255,.84)!important;
  line-height:1.65!important;
  font-size:1rem!important;
}

.fp-team-clean-values{
  display:flex!important;
  flex-wrap:wrap!important;
  gap:9px!important;
}

.fp-team-clean-values span{
  padding:8px 12px!important;
  border-radius:999px!important;
  color:#fff!important;
  background:rgba(255,255,255,.07)!important;
  border:1px solid rgba(255,255,255,.16)!important;
  font-size:.72rem!important;
  font-weight:800!important;
}

/* TWO OR THREE MEMBERS */
.fp-team-clean-grid{
  display:grid!important;
  gap:22px!important;
}
.fp-team-clean-grid-2{grid-template-columns:repeat(2,minmax(0,1fr))!important}
.fp-team-clean-grid-3{grid-template-columns:repeat(3,minmax(0,1fr))!important}

.fp-team-clean-card{
  overflow:hidden!important;
  border-radius:22px!important;
  background:rgba(255,255,255,.06)!important;
  border:1px solid rgba(255,255,255,.12)!important;
  box-shadow:0 20px 50px rgba(0,0,0,.22)!important;
}
.fp-team-clean-card-photo{
  height:320px!important;
  background:linear-gradient(135deg,#073a70,#6a1c75)!important;
}
.fp-team-clean-card-photo img{
  width:100%!important;
  height:100%!important;
  object-fit:contain!important;
  object-position:center bottom!important;
}
.fp-team-clean-card-copy{padding:20px 22px 24px!important}
.fp-team-clean-card-copy h3{margin:0 0 5px!important;color:#fff!important}
.fp-team-clean-card-copy p{margin:0!important;color:#22c6f2!important}

/* FOUR OR MORE: EXISTING CAROUSEL JS */
.fp-team-clean-carousel{
  display:grid!important;
  grid-template-columns:44px minmax(0,1fr) 44px!important;
  gap:12px!important;
  align-items:center!important;
}

@media(max-width:900px){
  .fp-team-clean-inner{width:calc(100% - 36px)!important}
  .fp-team-clean-single{grid-template-columns:1fr!important}
  .fp-team-clean-photo{min-height:360px!important;height:360px!important}
  .fp-team-clean-copy{padding:28px 24px 32px!important}
  .fp-team-clean-grid-2,.fp-team-clean-grid-3{grid-template-columns:1fr!important}
  .fp-team-clean-bg-logo{right:-10%!important;top:100px!important;width:360px!important;opacity:.05!important}
}

@media(max-width:560px){
  .fp-team-clean{padding:52px 0 58px!important}
  .fp-team-clean-head h2{font-size:42px!important}
}
