/* Palette (from the FM Creative logo and original theme)
   plum #780040, black #000, ink #1a1a1a, grey text #555, line #e3e3e3, soft #f4f4f4, white #fff
   CMYK strip (cyan #10a8e0, magenta #e82890, yellow #f0e838, black) only as the thin footer rule */
:root{
  --plum:#780040; --plum-d:#5c0031; --black:#000; --ink:#1a1a1a; --grey:#555; --line:#e3e3e3; --soft:#f4f4f4; --white:#fff;
  --cyan:#10a8e0; --magenta:#e82890; --yellow:#f0e838;
  --wrap:1180px; --gut:20px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font:400 17px/1.65 Barlow,system-ui,sans-serif;color:var(--ink);background:var(--white);-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto;display:block}
a{color:inherit}
h1,h2,h3{font-family:"Barlow Condensed",Barlow,sans-serif;line-height:1.08;margin:0 0 .5em;color:var(--black);letter-spacing:.005em}
h1{font-size:clamp(2.4rem,5.4vw,4.2rem);font-weight:700}
h2{font-size:clamp(1.8rem,3.2vw,2.6rem);font-weight:700}
h3{font-size:1.4rem;font-weight:600}
p{margin:0 0 1em}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 var(--gut)}
.narrow{max-width:820px}
.muted{color:var(--grey)}
.small{font-size:.92rem}
.lead{font-size:1.2rem;color:var(--grey);max-width:34em}
.sub-lead{font-size:1.1rem;color:var(--grey);max-width:40em;margin-bottom:1.6rem}
.skip{position:absolute;left:-999px;top:0;background:var(--plum);color:#fff;padding:.6rem 1rem;z-index:100}
.skip:focus{left:0}

/* buttons: rectangular, no pills */
.btn{display:inline-block;font:600 1rem Barlow,sans-serif;text-decoration:none;padding:.8rem 1.5rem;border:2px solid var(--plum);border-radius:2px;cursor:pointer;transition:background .15s,color .15s}
.btn-solid{background:var(--plum);color:#fff}
.btn-solid:hover{background:var(--plum-d);border-color:var(--plum-d)}
.btn-line{background:transparent;color:var(--plum)}
.btn-line:hover{background:var(--plum);color:#fff}
.btn.light{background:#fff;color:var(--plum);border-color:#fff}
.btn.light:hover{background:var(--soft)}
.btn-line.light{background:transparent;color:#fff;border-color:#fff}
.btn-line.light:hover{background:#fff;color:var(--plum)}
.actions{display:flex;flex-wrap:wrap;gap:.8rem;margin:1.4rem 0 1rem}
.text-link{color:var(--plum);font-weight:600;text-decoration:underline;text-underline-offset:3px}
.text-link:hover{color:var(--plum-d)}

/* header */
.site-header{position:sticky;top:0;z-index:50;background:#fff;border-bottom:1px solid var(--line)}
.bar{display:flex;align-items:center;justify-content:space-between;min-height:72px;gap:1rem}
.brand img{height:62px;width:auto}
.nav{display:flex;align-items:center;gap:1.6rem}
.nav a{text-decoration:none;font-weight:500;font-size:1rem;padding:.4rem 0;border-bottom:2px solid transparent}
.nav a:hover,.nav a[aria-current="page"]{border-bottom-color:var(--plum);color:var(--plum)}
.nav .nav-cta{color:#fff;padding:.6rem 1.2rem;border:2px solid var(--plum);margin-left:.4rem}
.nav .nav-cta:hover{color:#fff;border-color:var(--plum-d);background:var(--plum-d)}
.has-sub{position:relative}
.has-sub .sub{display:none;grid-template-columns:repeat(3,200px);gap:0 .5rem;position:absolute;left:-12rem;top:100%;padding:1rem .8rem .6rem;background:#fff;border:1px solid var(--line);box-shadow:0 12px 28px rgba(0,0,0,.1);padding:.5rem 0}
.has-sub:hover .sub,.has-sub:focus-within .sub{display:grid}
.has-sub .sub a{display:block;padding:.5rem 1.1rem;border:0}
.has-sub .sub a:hover{background:var(--soft)}
.menu-btn{display:none;background:none;border:2px solid var(--black);padding:.45rem .9rem;font:600 1rem Barlow,sans-serif;border-radius:2px}

/* hero */
.hero{background:var(--soft)}
.hero-in{display:grid;grid-template-columns:1.05fr 1fr;gap:3rem;align-items:center;padding-top:3.5rem;padding-bottom:3.5rem}
.hero-img img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:2px}
.page-hero{background:var(--soft);border-bottom:1px solid var(--line)}
.ph-in{display:grid;gap:2.5rem;align-items:center;padding-top:3rem;padding-bottom:3rem}
.page-hero.has-img .ph-in{grid-template-columns:1.2fr 1fr}
.ph-img img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:2px}
.crumbs{font-size:.92rem;color:var(--grey);margin-bottom:1rem}
.crumbs a{text-decoration:none;color:var(--plum)}
.crumbs a:hover{text-decoration:underline}

/* sections */
.section{padding:4.5rem 0}
.section.alt{background:var(--soft)}
.split{display:grid;grid-template-columns:1fr 1fr;gap:3.5rem;align-items:start}
.img-frame img{width:100%;border-radius:2px;aspect-ratio:4/3;object-fit:cover}
.head-row{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-bottom:1.4rem}
.head-row h2{margin:0}

.rows{border-top:1px solid var(--line)}
.row-link{display:grid;grid-template-columns:260px 1fr auto;gap:1.5rem;align-items:center;padding:1.15rem 0;border-bottom:1px solid var(--line);text-decoration:none}
.rl-name{font:700 1.5rem "Barlow Condensed",sans-serif;color:var(--black)}
.rl-desc{color:var(--grey)}
.rl-go{color:var(--plum);font-weight:600}
.row-link:hover .rl-name,.row-link:hover .rl-go{color:var(--plum)}

.tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}
.tile{position:relative;display:block;overflow:hidden;border-radius:2px;background:var(--soft);aspect-ratio:4/3;text-decoration:none}
.tile img{width:100%;height:100%;object-fit:cover;transition:transform .4s}
.tile:hover img{transform:scale(1.04)}
.tile span{position:absolute;left:0;right:0;bottom:0;padding:.6rem .9rem;color:#fff;font-weight:600;background:rgba(0,0,0,.6)}

.logos{display:grid;grid-template-columns:repeat(6,1fr);gap:1.5rem;align-items:center}
.logos img{max-height:56px;width:auto;margin:0 auto;object-fit:contain;mix-blend-mode:multiply}
.logo-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}
.logo-cell{background:#fff;display:flex;align-items:center;justify-content:center;padding:2rem;min-height:150px}
.logo-cell img{max-height:80px;width:auto;object-fit:contain}

.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:2rem}
.card{text-decoration:none;display:block}
.card-img{overflow:hidden;border-radius:2px;margin-bottom:1rem;background:var(--soft)}
.card-img img{width:100%;aspect-ratio:4/3;object-fit:cover;transition:transform .4s}
.card:hover .card-img img{transform:scale(1.04)}
.card h3{margin-bottom:.3rem}
.card:hover h3{color:var(--plum)}
.card p{color:var(--grey);margin:0}

.cols-4{display:grid;grid-template-columns:repeat(4,1fr);gap:2rem;margin:1.6rem 0}
.cols-4 p{color:var(--grey)}
.check{list-style:none;padding:0;margin:0 0 1.5rem}
.check li{padding:.55rem 0 .55rem 1.6rem;border-bottom:1px solid var(--line);position:relative}
.check li::before{content:"";position:absolute;left:0;top:1.15rem;width:.7rem;height:.7rem;background:var(--plum)}
.side-links{display:flex;flex-direction:column}
.side-links a{padding:.55rem 0;border-bottom:1px solid var(--line);text-decoration:none}
.side-links a:hover{color:var(--plum)}
.people{display:grid;grid-template-columns:repeat(2,minmax(0,320px));gap:2rem;margin-bottom:1.5rem}
.person{margin:0}
.person img{width:100%;aspect-ratio:1/1;object-fit:cover;object-position:top;border-radius:2px;background:var(--soft)}
.person figcaption{padding-top:.7rem}
.person strong{display:block;font:700 1.35rem "Barlow Condensed",sans-serif}
.person span{color:var(--grey)}
.plain-list{list-style:none;padding:0;margin:0}
.plain-list li{padding:.4rem 0}

/* gallery */
.filters{display:flex;flex-wrap:wrap;gap:.4rem 1.4rem;margin-bottom:2rem;border-bottom:1px solid var(--line)}
.f{background:none;border:0;border-bottom:3px solid transparent;font:600 1rem Barlow,sans-serif;padding:.6rem 0;cursor:pointer;color:var(--grey)}
.f.on,.f:hover{color:var(--plum);border-bottom-color:var(--plum)}
.masonry{columns:3;column-gap:1rem}
.masonry figure{margin:0 0 1rem;break-inside:avoid}
.masonry figure[hidden]{display:none}
.zoom{padding:0;border:0;background:var(--soft);display:block;width:100%;cursor:zoom-in;border-radius:2px;overflow:hidden}
.zoom img{width:100%}
.masonry figcaption{font-size:.92rem;color:var(--grey);padding-top:.35rem}
.lightbox{position:fixed;inset:0;background:rgba(0,0,0,.9);z-index:200;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:1.5rem}
.lightbox[hidden]{display:none}
.lightbox img{max-height:82vh;max-width:94vw;object-fit:contain}
.lightbox p{color:#fff;margin:.8rem 0 0}
.lb-close{position:absolute;top:1rem;right:1rem;background:none;color:#fff;border:2px solid #fff;padding:.4rem .9rem;font:600 1rem Barlow,sans-serif;cursor:pointer;border-radius:2px}

/* faq */
.faq details{border-bottom:1px solid var(--line);padding:1.1rem 0}
.faq summary{font:700 1.4rem "Barlow Condensed",sans-serif;cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:1rem}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";color:var(--plum);font-size:1.6rem;line-height:1}
.faq details[open] summary::after{content:"-"}
.faq p{margin:.8rem 0 0;color:var(--grey)}

/* forms */
.form{display:grid;gap:1rem}
.form label{display:grid;gap:.35rem;font-weight:600;font-size:.95rem}
.form input,.form select,.form textarea{font:400 1rem Barlow,sans-serif;padding:.75rem .85rem;border:1px solid #b9b9b9;border-radius:2px;background:#fff;width:100%;color:var(--ink)}
.form input:focus,.form select:focus,.form textarea:focus{outline:2px solid var(--plum);outline-offset:1px;border-color:var(--plum)}
.form .two{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.form .btn{justify-self:start}
.hp{position:absolute;left:-9999px;height:0;overflow:hidden}
.form-status{margin:0;font-weight:600}
.form-status.ok{color:var(--plum)}
.form-status.err{color:#b00020}
.places{display:grid;grid-template-columns:1fr 1fr;gap:2rem}
.places h2{font-size:1.7rem}
.hours{border-collapse:collapse;width:100%}
.hours th{text-align:left;font-weight:500;padding:.4rem 1rem .4rem 0}
.hours td{text-align:right;font-weight:600}

/* cta band + footer */
.band{background:var(--plum);color:#fff}
.band-in{display:flex;align-items:center;justify-content:space-between;gap:2rem;padding-top:3.2rem;padding-bottom:3.2rem;flex-wrap:wrap}
.band h2{color:#fff;margin:0;max-width:26em}
.band-actions{display:flex;gap:.8rem;flex-wrap:wrap}
.cmyk{display:flex;height:6px}
.cmyk i{flex:1}
.cmyk i:nth-child(1){background:var(--cyan)}
.cmyk i:nth-child(2){background:var(--magenta)}
.cmyk i:nth-child(3){background:var(--yellow)}
.cmyk i:nth-child(4){background:var(--black)}
.site-footer{background:var(--soft);padding-top:3.5rem}
.foot-grid{display:grid;grid-template-columns:1fr 1.2fr 1fr 1.3fr;gap:2.5rem;padding-bottom:2.5rem}
.site-footer h3{font-size:1.15rem;margin-bottom:.8rem}
.foot-links{display:flex;flex-direction:column;gap:.35rem}
.foot-links a{text-decoration:none;color:var(--grey)}
.foot-links a:hover,.site-footer p a:hover{color:var(--plum)}
.site-footer p{margin:0 0 .8rem}
.legal{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:1.2rem;padding-bottom:1.5rem;font-size:.92rem;color:var(--grey)}

@media (max-width:980px){
  .hero-in,.split,.page-hero.has-img .ph-in{grid-template-columns:1fr}
  .cards{grid-template-columns:repeat(2,1fr)}
  .logos{grid-template-columns:repeat(3,1fr)}
  .logo-grid{grid-template-columns:repeat(2,1fr)}
  .cols-4{grid-template-columns:repeat(2,1fr)}
  .foot-grid{grid-template-columns:1fr 1fr}
  .masonry{columns:2}
  .row-link{grid-template-columns:1fr auto}
  .rl-desc{grid-column:1/-1;order:3}
}
@media (max-width:820px){
  .menu-btn{display:block}
  .nav{display:none;position:absolute;left:0;right:0;top:100%;background:#fff;flex-direction:column;align-items:stretch;gap:0;padding:.5rem var(--gut) 1.2rem;border-bottom:1px solid var(--line);max-height:80vh;overflow:auto}
  .nav.open{display:flex}
  .nav a{padding:.7rem 0;border-bottom:1px solid var(--line)}
  .nav .nav-cta{margin:.8rem 0 0;text-align:center}
  .has-sub .sub{display:block;position:static;box-shadow:none;border:0;padding:0 0 0 1rem}
  .has-sub .sub a{font-size:.95rem;padding:.45rem 0;color:var(--grey)}
}
@media (max-width:600px){
  body{font-size:16px}
  .section{padding:3rem 0}
  .tiles,.cards,.cols-4,.places,.form .two{grid-template-columns:1fr}
  .people{grid-template-columns:1fr 1fr}
  .masonry{columns:1}
  .logos{grid-template-columns:repeat(2,1fr)}
  .foot-grid{grid-template-columns:1fr}
  .hero-in{padding-top:2rem;padding-bottom:2rem}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}

/* v2: home hero, tiles, steps, marquee, motion */
.hero2{position:relative;min-height:600px;display:flex;align-items:center;background:var(--black);overflow:hidden}
.hero2-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center}
.hero2 .wrap{position:relative;width:100%;padding-top:3rem;padding-bottom:3rem}
.hero2-panel{background:#fff;max-width:600px;padding:2.5rem 2.5rem 2rem;position:relative}
.hero2-panel::before,.hero2-panel::after{content:"";position:absolute;width:26px;height:26px;border:2px solid var(--black)}
.hero2-panel::before{top:-12px;left:-12px;border-right:0;border-bottom:0}
.hero2-panel::after{bottom:-12px;right:-12px;border-left:0;border-top:0}
.hero2 h1{font-size:clamp(2.3rem,4.6vw,3.6rem)}
.hero2 .lead{font-size:1.15rem}
.rot{color:var(--plum);font-weight:600;display:inline-block;transition:opacity .3s}
.rot.out{opacity:0}
.draw{background:linear-gradient(var(--plum),var(--plum)) no-repeat 0 100%/0 .12em;transition:background-size .9s .4s ease-out}
.go .draw,.draw.go{background-size:100% .12em}
.cmyk.reg i{transform:translateX(0);animation:reg .9s ease-out both}
.cmyk.reg i:nth-child(1){--x:-60px}
.cmyk.reg i:nth-child(2){--x:40px}
.cmyk.reg i:nth-child(3){--x:-30px}
.cmyk.reg i:nth-child(4){--x:60px}
@keyframes reg{from{transform:translateX(var(--x));opacity:.3}to{transform:none;opacity:1}}
.stiles{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}
.stiles.three{grid-template-columns:repeat(3,1fr)}
.stile{position:relative;display:block;overflow:hidden;aspect-ratio:4/3;background:var(--soft);text-decoration:none;border-radius:2px}
.stile img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.stile:hover img{transform:scale(1.05)}
.stile span{position:absolute;left:0;right:0;bottom:0;background:var(--black);color:#fff;font:700 1.35rem "Barlow Condensed",sans-serif;padding:.65rem 1rem;transition:background .2s}
.stile:hover span{background:var(--plum)}
.cols-3{display:grid;grid-template-columns:repeat(3,1fr);gap:2.5rem}
.cols-3 p{color:var(--grey)}
.visit p{color:var(--ink)}
.open-now{font-weight:600;color:var(--plum)}
.steps{list-style:none;margin:1.5rem 0 0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:2rem}
.steps li{border-top:3px solid var(--black);padding-top:1rem}
.steps .n{display:block;font:700 3.2rem/1 "Barlow Condensed",sans-serif;color:var(--plum);margin-bottom:.4rem}
.steps h3{margin-bottom:.3rem}
.steps p{color:var(--grey);margin:0}
.marquee{overflow:hidden}
.marquee-track{display:flex;gap:4rem;align-items:center;width:max-content;animation:mq 40s linear infinite}
.marquee:hover .marquee-track{animation-play-state:paused}
.marquee img{height:56px;width:auto;object-fit:contain;mix-blend-mode:multiply}
@keyframes mq{to{transform:translateX(-50%)}}
.rv{opacity:0;transform:translateY(16px);transition:opacity .4s ease-out,transform .4s ease-out}
.rv.in{opacity:1;transform:none}
.mbar{display:none}
@media (max-width:820px){
  .mbar{display:grid;grid-template-columns:repeat(3,1fr);position:fixed;left:0;right:0;bottom:0;z-index:60;background:#fff;border-top:1px solid var(--line)}
  .mbar a{text-align:center;padding:.9rem .5rem;font-weight:600;text-decoration:none;color:var(--plum)}
  .mbar a:last-child{background:var(--plum);color:#fff}
  .mbar a+a{border-left:1px solid var(--line)}
  body{padding-bottom:52px}
  .hero2{min-height:0}
  .hero2-bg{position:relative;height:240px}
  .hero2{display:block}
  .hero2 .wrap{padding:0}
  .hero2-panel{max-width:none;padding:1.8rem var(--gut) 1.5rem}
  .hero2-panel::before,.hero2-panel::after{display:none}
  .steps,.cols-3{grid-template-columns:1fr 1fr}
}
@media (max-width:600px){
  .steps,.cols-3{grid-template-columns:1fr}
  .stiles,.stiles.three{grid-template-columns:1fr 1fr;gap:.6rem}
  .stile span{font-size:1.05rem;padding:.5rem .7rem}
}
@media (prefers-reduced-motion:reduce){
  .rv{opacity:1;transform:none}
  .draw{background-size:100% .12em}
  .marquee-track{animation:none}
  .cmyk.reg i{animation:none}
}

/* v3: grouped menu, specs, guided form, lightbox nav */
.sg strong{display:block;font:700 1rem "Barlow Condensed",sans-serif;padding:.3rem 1.1rem;color:var(--plum);border-bottom:1px solid var(--line);margin-bottom:.3rem}
.has-sub .sub a.sg-all{grid-column:1/-1;border-top:1px solid var(--line);margin-top:.5rem;font-weight:600;color:var(--plum)}
.tiles.four{grid-template-columns:repeat(4,1fr)}
.tiles.three-sm{grid-template-columns:repeat(3,1fr);gap:.6rem}
.tiles.three-sm .tile{aspect-ratio:3/4}
.steps.big{grid-template-columns:repeat(2,1fr);gap:2.5rem 3rem}
.specs{margin:0}
.specs div{display:grid;grid-template-columns:160px 1fr;gap:1rem;padding:1rem 0;border-bottom:1px solid var(--line)}
.specs dt{font:700 1.4rem "Barlow Condensed",sans-serif}
.specs dd{margin:0;color:var(--grey)}
.grp{display:grid;gap:1rem}
.grp[hidden]{display:none}
.lb-nav{position:absolute;top:50%;transform:translateY(-50%);background:none;color:#fff;border:2px solid #fff;padding:.6rem .9rem;font:600 1rem Barlow,sans-serif;cursor:pointer;border-radius:2px}
.lb-prev{left:1rem}.lb-next{right:1rem}
@media (max-width:980px){.tiles.four{grid-template-columns:repeat(2,1fr)}.steps.big{grid-template-columns:1fr}}
@media (max-width:820px){
  .nav{position:fixed;top:72px;bottom:0;left:0;right:0;max-height:none;padding-top:1rem;padding-bottom:80px;font-size:1.15rem}
  .has-sub .sub{display:block;grid-template-columns:1fr}
  .sg strong{padding:.5rem 0 .2rem;border:0}
  .has-sub .sub a.sg-all{display:none}
  .foot-grid > div:nth-child(2) .foot-links{columns:2}
}
@media (max-width:600px){.specs div{grid-template-columns:1fr;gap:.2rem}.tiles.three-sm{grid-template-columns:repeat(3,1fr)}}

/* v4: look from the approved mockup */
h1,h2{text-transform:uppercase;letter-spacing:.01em;line-height:1.02}
h1{font-size:clamp(2.4rem,5vw,4rem)}
h2{font-size:clamp(2rem,3.4vw,2.9rem);margin-bottom:.6em}
.hero2 h1{font-size:clamp(2.2rem,4.2vw,3.5rem)}
.band h2{font-size:clamp(1.7rem,2.8vw,2.4rem)}
.person strong,.faq summary,.specs dt{text-transform:none}
.stile span,.tile span{text-transform:uppercase;font:700 1.45rem/1.05 "Barlow Condensed",sans-serif;background:rgba(0,0,0,.6);padding:.9rem 1rem .8rem}
.stile:hover span{background:rgba(120,0,64,.92)}
.tile span{font-size:1.15rem;font-weight:600;text-transform:none}
.cols-3>div+div{border-left:1px solid var(--line);padding-left:2.5rem}
.steps li{border-top:0;padding-top:0}
.steps li+li{border-left:1px solid var(--line);padding-left:1.5rem}
.steps.big li{border-left:0;padding-left:0;border-top:3px solid var(--black);padding-top:1rem}
.site-footer h3{text-transform:uppercase;font-size:1rem;letter-spacing:.05em}
.nav a{font-weight:600}
@media (max-width:820px){
  .cols-3>div+div,.steps li+li{border-left:0;padding-left:0}
}

/* hero photo: zoom toward the person so the printer ink bottles stay out of view behind the card */
@media (min-width:821px){.hero2-bg{transform:scale(1.3);transform-origin:78% 88%}}

/* v5: full-bleed hero, type on the photo */
.hero2{min-height:clamp(560px,82vh,760px);display:flex;align-items:center}
.hero2::after{content:"";position:absolute;inset:0;background:rgba(0,0,0,.5)}
.hero2 .wrap{z-index:1}
.hero2-panel{background:none;max-width:780px;padding:0;color:#fff}
.hero2-panel::before,.hero2-panel::after{display:none}
.hero2 h1{color:#fff;font-size:clamp(2.6rem,6.2vw,5.4rem);line-height:.98;margin-bottom:.4em}
.hero2 .lead{color:#fff;font-size:1.25rem;max-width:30em}
.hero2 .rot{color:#fff;border-bottom:2px solid #fff}
.hero2 .open-now{color:#fff;font-weight:600}
.hero2 .btn-solid{border-color:var(--plum)}
.hero2 .draw{background-image:linear-gradient(#fff,#fff);background-size:0 .08em}
.hero2 .go .draw,.hero2 .draw.go{background-size:100% .08em}
.w{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.08em}
.w>span{display:inline-block;transform:translateY(110%);animation:rise .75s cubic-bezier(.2,.7,.2,1) forwards;animation-delay:calc(var(--i) * 80ms + 200ms)}
@keyframes rise{to{transform:none}}
.hero2 .draw{transition-delay:1.6s}
@media (max-width:820px){
  .hero2{display:flex;min-height:560px}
  .hero2-bg{position:absolute;height:100%}
  .hero2 .wrap{padding:3rem var(--gut)}
  .hero2-panel{padding:0}
}
@media (prefers-reduced-motion:reduce){
  .w>span{transform:none;animation:none}
}

/* v6 mockup layout */
.section.tight{padding:1.5rem 0}
.panel{background:var(--soft);padding:2.4rem 2.6rem;border-radius:2px}
.panel>h2{margin-top:0}
.panel .cols-3 h3{font-weight:700}
.stiles{gap:1.1rem}
.stile{aspect-ratio:16/10}
.stile span{background:rgba(0,0,0,.55);font-size:1.7rem;line-height:1;padding:1.4rem 1.1rem 1rem;top:auto}
.tile.plain{aspect-ratio:3/2}
.tiles{gap:1.1rem}
.logo-row{display:flex;justify-content:space-between;align-items:center;gap:2rem;flex-wrap:wrap}
.logo-row img{height:52px;width:auto;max-width:150px;object-fit:contain;mix-blend-mode:multiply}
.steps .n{font-size:3.6rem}
.quote-panel{display:grid;grid-template-columns:1fr 1fr;gap:2.4rem;align-items:stretch}
.quote-panel .form .two{grid-template-columns:1fr 1fr}
.quote-img{width:100%;height:100%;object-fit:cover;border-radius:2px;min-height:320px}
.site-footer .legal{border-top:1px solid var(--line);margin-top:1.5rem;padding-top:1rem;color:var(--grey);font-size:.9rem}
@media (max-width:820px){.panel{padding:1.6rem 1.2rem}.quote-panel{grid-template-columns:1fr}.logo-row{justify-content:center}.quote-img{min-height:220px;height:auto}}
.site-footer{background:#fff}.site-footer .legal{border-top:1px solid var(--line)}

/* v7 dark mockup style */
:root{--plum-lt:#e0407f;--night:#0a0a0c;--night2:#15151a}
body{font-family:Poppins,system-ui,sans-serif;font-size:16px;line-height:1.65}
h1,h2,h3,.stile span,.tile span,.steps .n,.f{font-family:Poppins,system-ui,sans-serif;text-transform:none;letter-spacing:0}
h1,h2,h3{font-weight:700;line-height:1.15}
h2{font-size:clamp(1.7rem,3vw,2.3rem)}
h3{font-size:1.1rem}
.btn{font-family:Poppins,sans-serif;font-weight:600;font-size:.92rem;border-radius:8px;padding:.75rem 1.4rem}
.btn-line.light{border-color:rgba(255,255,255,.7)}
.nav a{font-family:Poppins,sans-serif;font-weight:500;font-size:.9rem}
.nav .nav-cta{border-radius:8px;padding:.65rem 1.2rem;font-size:.88rem}
.text-link{color:var(--plum);font-weight:600;text-decoration:none}
.sub-lead{font-size:.95rem;margin:.2rem 0 0}
.head-row{align-items:flex-end;margin-bottom:1.8rem}

.hero2{background:var(--night);min-height:clamp(500px,66vh,620px)}
.hero2-bg{inset:0 0 0 auto;left:auto;right:0;width:68%;object-position:center 40%;-webkit-mask-image:linear-gradient(to right,transparent 0,#000 38%);mask-image:linear-gradient(to right,transparent 0,#000 38%)}
.hero2::after{background:rgba(0,0,0,.18)}
.hero2 h1{font-size:clamp(2.2rem,4.6vw,3.6rem);line-height:1.12;text-transform:none;font-weight:700}
.hero2 .draw,.hero2 .hl{color:var(--plum-lt);background:none;display:block}
.hero2 .lead{font-size:1rem;font-weight:600;max-width:30em}
.hero2 .rot{border-bottom:0;color:#fff}
.hero2-panel{max-width:640px}
.hero2 .small{font-weight:500;opacity:.9}
.cmyk.reg{display:none}

.scards{display:grid;grid-template-columns:repeat(4,1fr);gap:1.1rem}
.scard{display:flex;flex-direction:column;text-decoration:none;background:#fff;border-radius:10px;overflow:hidden;box-shadow:0 2px 14px rgba(0,0,0,.09);transition:transform .25s,box-shadow .25s}
.scard:hover{transform:translateY(-4px);box-shadow:0 8px 22px rgba(0,0,0,.15)}
.scard img{width:100%;aspect-ratio:3/2;object-fit:cover}
.scard-t{display:flex;flex-direction:column;padding:.8rem 1rem .9rem}
.scard-t strong{font-size:.95rem;color:var(--black);line-height:1.3}
.scard-t small{font-size:.78rem;color:var(--grey);line-height:1.4}

.why{padding:1rem 0}
.why-in{display:grid;grid-template-columns:.9fr 1.6fr;gap:2.5rem;align-items:center}
.why-l p{font-size:.92rem;color:var(--grey);max-width:20em}
.why-r{display:grid;grid-template-columns:repeat(4,1fr)}
.why-r>div{text-align:center;padding:.5rem 1.1rem}
.why-r>div+div{border-left:1px solid var(--line)}
.why-r h3{font-size:.95rem;margin-bottom:.35rem}
.why-r p{font-size:.82rem;color:var(--grey);margin:0}

.wks{display:grid;grid-template-columns:repeat(5,1fr);gap:.9rem}
.wk{display:block;border-radius:8px;overflow:hidden;box-shadow:0 2px 12px rgba(0,0,0,.12)}
.wk img{width:100%;aspect-ratio:3/4;object-fit:cover;transition:transform .4s}
.wk:hover img{transform:scale(1.05)}

.trusted .rule-h{display:flex;align-items:center;gap:1rem;font-size:.82rem;text-transform:uppercase;letter-spacing:.12em;text-align:center;justify-content:center;color:var(--plum)}
.trusted .rule-h::before,.trusted .rule-h::after{content:"";height:1px;background:var(--line);flex:1;max-width:160px}
.logo-row{justify-content:space-between;align-items:center;margin-top:.8rem}
.logo-row .text-link{font-size:.85rem;color:var(--grey);font-weight:500}

.darkband{background:var(--night);border-radius:14px;display:grid;grid-template-columns:.8fr 1fr 1.1fr;gap:2rem;align-items:center;padding:1.6rem 1.8rem;overflow:hidden;color:#fff}
.db-img{width:100%;height:100%;min-height:200px;max-height:260px;object-fit:cover;object-position:0 50%;border-radius:10px}
.db-t h2{color:#fff;font-size:clamp(1.5rem,2.6vw,2rem)}
.db-t p{color:#e6e6e6;font-size:.9rem}
.db-t a{color:#fff}
.db-f{background:#fff;border-radius:10px;padding:1.2rem 1.3rem;color:var(--ink)}
.db-f .form{display:grid;gap:.6rem}
.db-f label{font-size:.72rem;font-weight:500;color:var(--grey)}
.db-f input,.db-f select,.db-f textarea{font-size:.85rem;padding:.5rem .65rem;border-radius:6px}
.db-f textarea{min-height:64px}
.db-f .btn{width:100%;border-radius:6px}

.site-footer{background:var(--night);color:#d9d9d9;padding-top:3rem;margin-top:2rem}
.site-footer h3{color:#fff;text-transform:none;font-size:.95rem;letter-spacing:0;margin-bottom:.9rem}
.site-footer a,.site-footer span,.site-footer p{color:#cfcfcf;font-size:.85rem}
.site-footer a:hover{color:#fff}
.foot-links{display:grid;gap:.5rem}
.foot-grid{grid-template-columns:1.3fr 1fr 1fr 1.3fr}
.site-footer .legal{border-top:1px solid rgba(255,255,255,.15);color:#aaa}
.site-footer .legal span{color:#aaa;font-size:.8rem}

@media (max-width:980px){
  .scards{grid-template-columns:repeat(2,1fr)}
  .why-in,.darkband{grid-template-columns:1fr}
  .why-r{grid-template-columns:1fr 1fr;row-gap:1.2rem}
  .why-r>div:nth-child(3){border-left:0}
  .wks{grid-template-columns:repeat(3,1fr)}
  .db-img{max-height:180px}
}
@media (max-width:820px){
  .hero2-bg{width:100%;-webkit-mask-image:none;mask-image:none}
  .hero2::after{background:rgba(0,0,0,.6)}
  .foot-grid{grid-template-columns:1fr 1fr}
}
@media (max-width:560px){
  .scards{gap:.7rem}.wks{grid-template-columns:repeat(2,1fr)}.foot-grid{grid-template-columns:1fr}
  .logo-row{justify-content:center}
}
@media (prefers-reduced-motion:reduce){.scard,.wk img{transition:none}}
.hero2-bg{width:60%;-webkit-mask-image:linear-gradient(to right,transparent 0,transparent 8%,#000 55%);mask-image:linear-gradient(to right,transparent 0,transparent 8%,#000 55%)}
.hero2-panel{max-width:720px}
.hero2 h1{font-size:clamp(2.2rem,4.2vw,3.4rem)}
.hero2 .lead{max-width:26em}
.site-footer .foot-grid img{width:150px;height:auto}
@media (max-width:820px){.hero2-bg{width:100%;-webkit-mask-image:none;mask-image:none}}
@media(min-width:1000px){.hero2-panel{max-width:860px}.hero2 h1{font-size:clamp(2.2rem,3.7vw,3.2rem)}.hero2 .hl{white-space:nowrap}}

/* craft layer */
.hero2-rim{position:absolute;inset:0 0 0 auto;width:60%;filter:drop-shadow(-5px 0 12px rgba(120,0,64,.85)) drop-shadow(-1px 0 0 var(--plum-lt))}
.hero2-rim .hero2-bg{inset:0;left:0;width:100%;height:100%;-webkit-mask-image:none;mask-image:none;clip-path:polygon(16% 0,100% 0,100% 100%,0 100%)}
.cm{position:absolute;width:26px;height:26px;z-index:2;opacity:.5;pointer-events:none}
.cm::before,.cm::after{content:"";position:absolute;background:#fff}
.cm::before{left:50%;top:0;bottom:0;width:1px}.cm::after{top:50%;left:0;right:0;height:1px}
.cm-tl{top:14px;left:14px}.cm-tr{top:14px;right:14px}.cm-bl{bottom:14px;left:14px}.cm-br{bottom:14px;right:14px}
.hero2 .btn-solid{box-shadow:inset 0 1px 0 rgba(255,255,255,.28),0 6px 18px rgba(120,0,64,.55)}
.btn span[aria-hidden]{display:inline-block;transition:transform .2s}
.btn:hover span[aria-hidden]{transform:translateX(5px)}
.scards{counter-reset:sc}
.scard{position:relative;counter-increment:sc;border:1px solid var(--line);transition:transform .25s,box-shadow .25s,border-color .25s}
.scard:hover{border-color:var(--plum)}
.scard img{transition:transform .3s ease-out}.scard:hover img{transform:scale(1.05)}
.scard::before{content:counter(sc,decimal-leading-zero);position:absolute;top:.55rem;right:.75rem;z-index:1;font:600 .8rem ui-monospace,Menlo,Consolas,monospace;color:#fff;text-shadow:0 1px 6px rgba(0,0,0,.85)}
.scard-t{position:relative;padding-bottom:2rem}
.scard-t::after{content:"Request Quote \2192";position:absolute;right:1rem;bottom:.6rem;font:600 .78rem Barlow,sans-serif;color:var(--plum);opacity:0;transform:translateX(-8px);transition:opacity .25s,transform .25s}
.scard:hover .scard-t::after,.scard:focus-visible .scard-t::after{opacity:1;transform:none}
.band{position:relative;background:radial-gradient(60% 140% at 78% 0,rgba(120,0,64,.7),transparent 70%),radial-gradient(rgba(255,255,255,.05) 1px,transparent 1.3px) 0 0/6px 6px,var(--night)}
.band-actions{background:#fff;padding:1.3rem 1.5rem;box-shadow:0 18px 40px rgba(0,0,0,.35)}
.band-actions .btn-line:hover{color:#fff}
@media (min-width:821px){
  .band-in{align-items:flex-start}
  .band-actions{margin-top:calc(-3.2rem - 28px);margin-bottom:.4rem}
  .wks{align-items:start}
  .wk:nth-child(even){margin-top:1.6rem}
  .wk:nth-child(3n) img{aspect-ratio:4/5}
  .wk:nth-child(3n+1) img{aspect-ratio:3/4.4}
}
@media (max-width:820px){.hero2-rim{width:100%;filter:none}.hero2-rim .hero2-bg{clip-path:none}.cm{display:none}}
.wk{position:relative}
.wk::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.78),transparent 55%);opacity:0;transition:opacity .3s}
.wk-t{position:absolute;left:.9rem;bottom:.8rem;z-index:1;color:#fff;font:600 .9rem Barlow,sans-serif;opacity:0;transform:translateY(6px);transition:opacity .3s,transform .3s}
.wk:hover::after,.wk:hover .wk-t,.wk:focus-visible::after,.wk:focus-visible .wk-t{opacity:1;transform:none}
@media (hover:none){.wk::after,.wk-t{opacity:1;transform:none}}
.spec{display:flex;gap:.8rem;align-items:flex-start;background:var(--soft);border-left:4px solid var(--plum);padding:1rem 1.2rem;margin:1rem 0}
.spec svg{flex:none;color:var(--plum);margin-top:.15rem}.spec p{margin:0}
.hero2-rim{width:42%}
.darkband{overflow:visible;background:radial-gradient(55% 130% at 85% 20%,rgba(120,0,64,.75),transparent 70%),radial-gradient(rgba(255,255,255,.05) 1px,transparent 1.3px) 0 0/6px 6px,var(--night)}
.db-f{box-shadow:0 22px 48px rgba(0,0,0,.4)}
@media (min-width:821px){.darkband{margin-top:2rem}.db-f{align-self:start;margin-top:calc(-1.6rem - 30px)}}
@media (max-width:820px){.hero2-rim{width:100%}}
@media (min-width:821px){.hero2-rim{width:36%}.hero2-rim .hero2-bg{clip-path:polygon(22% 0,100% 0,100% 100%,0 100%)}}

/* full-width CMYK bars */
.hero-cmyk{position:absolute;left:0;right:0;bottom:0;display:flex;height:6px;z-index:2}
.hero-cmyk i{flex:1}
.hero-cmyk i:nth-child(1),.pl-bar i:nth-child(1){background:var(--cyan)}.hero-cmyk i:nth-child(2),.pl-bar i:nth-child(2){background:var(--magenta)}.hero-cmyk i:nth-child(3),.pl-bar i:nth-child(3){background:var(--yellow)}.hero-cmyk i:nth-child(4),.pl-bar i:nth-child(4){background:#000}
.site-header::after{content:"";display:block;height:6px;background:linear-gradient(90deg,var(--cyan) 25%,var(--magenta) 25% 50%,var(--yellow) 50% 75%,#000 75%)}
/* centered nav on desktop */
@media (min-width:821px){
  .bar{position:relative}
  .nav{flex:1;justify-content:center;margin-right:70px}
  .nav-cta{position:absolute;right:var(--gut);top:50%;transform:translateY(-50%);margin:0}
}
/* taller hero */
.hero2{min-height:clamp(660px,94vh,920px)}
@media (max-width:820px){.hero2{min-height:max(640px,88vh)}}
/* loader */
.page-loader{position:fixed;inset:0;z-index:99999;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2rem;background:var(--night);transition:transform .8s cubic-bezier(.7,0,.2,1),visibility 0s .8s}
.page-loader img{animation:plIn .8s ease-out both}
.pl-bar{display:flex;width:min(260px,60vw);height:6px;overflow:hidden}
.pl-bar i{flex:1;transform:scaleX(0);transform-origin:left;animation:plFill .5s ease-out forwards}
.pl-bar i:nth-child(2){animation-delay:.35s}.pl-bar i:nth-child(3){animation-delay:.7s}.pl-bar i:nth-child(4){animation-delay:1.05s}
.page-loader.is-hidden{transform:translateY(-100%);visibility:hidden}
.page-loader.is-hidden img,.page-loader.is-hidden .pl-bar{opacity:0;transition:opacity .3s}
html.is-loading{overflow:hidden}
@keyframes plIn{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
@keyframes plFill{to{transform:none}}
/* reveals */
.rv{opacity:0;transition:opacity .8s cubic-bezier(.2,.7,.2,1),transform .8s cubic-bezier(.2,.7,.2,1),clip-path .9s cubic-bezier(.2,.7,.2,1)!important}
.rv-left{transform:translateX(-56px)}.rv-right{transform:translateX(56px)}.rv-up{transform:translateY(44px)}.rv-down{transform:translateY(-36px)}
.rv-scale{transform:scale(.88)}.rv-tilt{transform:translateY(36px) rotate(3deg)}
.rv-wipe{clip-path:inset(0 100% 0 0);transform:none}
.rv.in{opacity:1;transform:none;clip-path:inset(0 0 0 0)}
@media (prefers-reduced-motion:reduce){.page-loader{display:none}.rv{opacity:1;transform:none;clip-path:none}}
/* hero: soft fade into the photo, no hard edge */
.hero2-rim{width:62%;filter:none}
.hero2-rim .hero2-bg{clip-path:none;-webkit-mask-image:linear-gradient(to right,transparent 0,transparent 6%,#000 58%);mask-image:linear-gradient(to right,transparent 0,transparent 6%,#000 58%)}
@media (max-width:820px){.hero2-rim{width:100%}.hero2-rim .hero2-bg{-webkit-mask-image:none;mask-image:none}}
.rv{transition-duration:1.5s,1.5s,1.5s!important}
/* hero: full-width photo, left-to-right charcoal gradient */
@media (min-width:821px){
  .hero2-rim{inset:0;width:100%;overflow:hidden}
  .hero2-rim .hero2-bg{top:-120px;height:calc(100% + 120px);width:100%;-webkit-mask-image:none;mask-image:none;object-position:center}
  .hero2::after{background:linear-gradient(90deg,rgba(16,16,20,.98) 0,rgba(16,16,20,.92) 25%,rgba(16,16,20,.75) 40%,rgba(16,16,20,.4) 58%,rgba(16,16,20,.1) 78%,rgba(16,16,20,0) 100%)}
}
/* hero stability: fixed height unit, no scroll-driven transform */
.hero2{min-height:clamp(660px,94svh,920px)}
@media (max-width:820px){.hero2{min-height:max(640px,88svh)}}
@media (min-width:821px){.hero2-rim .hero2-bg{top:0;height:100%}}
.hero2-bg{will-change:auto}
/* wider, unzoomed hero photo */
@media (min-width:821px){.hero2-bg{transform:none}}
/* slow smooth rotating word */
.rot{transition:opacity 1.1s ease,transform 1.1s ease,filter 1.1s ease}
.rot.out{opacity:0;transform:translateY(10px);filter:blur(4px)}
/* loader: light grey */
.page-loader{background:#e9e9ec}
.page-loader img{height:auto;width:min(190px,48vw)}
/* mobile: centred layout (hero stays left) */
@media (max-width:820px){
  .head-row{flex-direction:column;align-items:center;text-align:center}
  .head-row .sub-lead{margin-left:auto;margin-right:auto}
  .section h2,.section>.wrap>p,.why-l,.why-r>div,.ph-text,.crumbs,.band-in,.trusted,.split>div:not(:has(form)),.tile,.stile,.card,.scard-t,.foot-grid,.site-footer,.darkband>div:first-child{text-align:center}
  .why-l p,.band h2,.ph-text .lead{margin-left:auto;margin-right:auto}
  .actions,.band-actions,.crumbs,.band-in,.foot-links{justify-content:center;align-items:center}
  .band-in{flex-direction:column}
  .why-l .btn{margin:0 auto}
  .why-r>div+div{border-left:0}
  .spec{text-align:left}
  .check{display:inline-block;text-align:left}
  .scard-t::after{display:none}
  .foot-grid{grid-template-columns:1fr;justify-items:center}
  .foot-grid img{margin-inline:auto}
  .hero2,.hero2 *{text-align:left}
  .hero2 .actions{justify-content:flex-start}
}
@media (max-width:820px){.wks .wk:last-child:nth-child(odd){grid-column:1/-1;justify-self:center;width:calc(50% - .45rem)}}
/* mobile stability: no sideways overflow from off-screen reveal offsets, steadier loader */
html,body{overflow-x:clip}
html.is-loading{overflow:visible}
.page-loader{width:100%;height:100vh;height:100dvh;touch-action:none;will-change:transform}
@media (max-width:820px){.rv-left{transform:translateX(-22px)}.rv-right{transform:translateX(22px)}.rv-tilt{transform:translateY(24px) rotate(1.5deg)}.rv-up{transform:translateY(30px)}}
/* loader: logo first, bar only after the logo is ready */
.page-loader:not(.ready) img{opacity:0;animation:none}
.pl-bar i{animation-play-state:paused}
.page-loader.ready .pl-bar i{animation-play-state:running}
