:root{
  --grad: linear-gradient(100deg,#E2231A 0%, #F0511C 45%, #FF9017 100%);
  --red:#E2231A;
  --orange:#FF9017;
  --ink:#241417;
  --lav:#FCF4EF;
  --lav2:#FBEAE0;
  --line:#F0DFD4;
  --text:#6E5C56;
  --radius:22px;
  --radius-sm:14px;
  --radius-pill:100px;
  --shadow-sm:0 6px 18px rgba(43,22,20,.06);
  --shadow-md:0 18px 40px rgba(226,35,26,.12);
  --shadow-lg:0 30px 60px rgba(43,22,20,.18);
  --maxw:1220px;
}
*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}
body{font-family:'Inter',sans-serif; color:var(--ink); background:#fff; line-height:1.6; font-size:15.5px;}
h1,h2,h3,h4,.btn,.logo .name{font-family:'Poppins',sans-serif;}
.wrap{max-width:var(--maxw); margin:0 auto; padding:0 24px;}
img{max-width:100%; display:block;}
a{color:inherit;}
ul{list-style:none;}
.icon{width:1em; height:1em; display:inline-block; vertical-align:-0.15em; stroke:currentColor; fill:none; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round;}

/* ===== topbar ===== */
.topbar{background:#2A1216; color:#F4E3DD; font-size:12.5px;}
.topbar .wrap{display:flex; justify-content:space-between; align-items:center; padding:9px 24px; flex-wrap:wrap; gap:6px;}
.topbar-left,.topbar-right{display:flex; gap:20px; align-items:center; flex-wrap:wrap;}
.topbar a{color:#fff; text-decoration:none; font-weight:600;}
.topbar-max{display:flex; align-items:center; gap:7px; background:rgba(255,255,255,.12); padding:5px 12px 5px 6px; border-radius:999px; font-weight:700;}
.topbar-max img{width:18px; height:18px; border-radius:5px; display:block;}
.topbar-max:hover{background:rgba(255,255,255,.22);}

/* ===== header ===== */
header.main{background:#fff; padding:14px 0; position:sticky; top:0; z-index:50; box-shadow:0 1px 0 var(--line);}
header.main .wrap, .topbar .wrap{max-width:1760px;}
header.main .wrap{display:flex; align-items:center; justify-content:space-between; gap:20px;}
.logo{display:flex; align-items:center; gap:12px; text-decoration:none; color:var(--ink);}
.logo .mark{width:42px; height:42px; border-radius:13px; background:var(--grad); color:#fff; display:flex; align-items:center; justify-content:center; font-weight:800; font-size:19px; flex:none;}
.logo .name{font-weight:700; font-size:14.5px; line-height:1.2;}
.logo .sub{font-size:11px; color:var(--text); font-weight:500;}

nav.menu{display:flex; gap:4px; font-weight:600; font-size:14px; align-items:center;}
nav.menu>a{color:var(--ink); text-decoration:none; padding:10px 14px; border-radius:var(--radius-pill);}
nav.menu>a:hover{background:var(--lav);}
.has-drop{position:relative;}
.has-drop>a{display:flex; align-items:center; gap:5px; padding:10px 14px; border-radius:var(--radius-pill); text-decoration:none; color:var(--ink); cursor:default;}
.has-drop>a:hover{background:var(--lav);}
.has-drop .chevron{width:14px; height:14px;}
.dropdown-panel{position:absolute; top:calc(100% + 10px); left:50%; transform:translateX(-50%); background:#fff; border-radius:var(--radius); box-shadow:var(--shadow-lg); padding:26px; display:none; gap:32px; width:560px; border:1px solid var(--line);}
.has-drop:hover .dropdown-panel{display:flex;}
.dropdown-col{flex:1;}
.dropdown-title{font-size:11.5px; font-weight:700; text-transform:uppercase; letter-spacing:.04em; color:var(--red); margin-bottom:12px;}
.dropdown-col a{display:block; padding:7px 0; text-decoration:none; color:var(--ink); font-size:13.5px; font-weight:500;}
.dropdown-col a:hover{color:var(--red);}
.dropdown-promo{width:190px; background:var(--lav); border-radius:var(--radius-sm); padding:18px; flex:none;}
.dropdown-promo-title{font-weight:700; font-size:13.5px; margin-bottom:6px;}
.dropdown-promo p{font-size:12px; color:var(--text); margin-bottom:12px;}
.dropdown-see-all{display:block; margin-top:10px; font-size:12px; font-weight:700; color:var(--red); text-decoration:none;}

.btn{border:none; cursor:pointer; font-weight:600; font-size:14px; border-radius:var(--radius-pill); padding:12px 24px; display:inline-flex; align-items:center; gap:8px; text-decoration:none; white-space:nowrap;}
.btn .icon{width:16px; height:16px;}
.btn-grad{background:var(--grad); color:#fff; box-shadow:var(--shadow-md);}
.btn-white{background:#fff; color:var(--red); box-shadow:0 14px 30px rgba(0,0,0,.16);}
.btn-outline{background:transparent; color:var(--ink); border:1.5px solid var(--line);}
.btn-outline-w{background:transparent; color:#fff; border:1.5px solid rgba(255,255,255,.5);}
.btn-sm{padding:10px 18px; font-size:13px;}

.mobile-actions{display:none; align-items:center; gap:10px;}
.mobile-max-btn{display:none; width:42px; height:42px; border-radius:12px; align-items:center; justify-content:center; flex:none; text-decoration:none;}
.mobile-max-btn img{width:26px; height:26px; border-radius:7px; display:block;}
.hamburger{display:none; width:42px; height:42px; border-radius:12px; border:1.5px solid var(--line); background:#fff; align-items:center; justify-content:center; cursor:pointer;}
#nav-toggle{display:none;}
.mobile-nav{display:none;}

/* ===== hero ===== */
.hero{position:relative; background:var(--grad); color:#fff; padding:56px 0 0; overflow:hidden;}
.hero-eyebrow{display:inline-flex; align-items:center; gap:8px; background:rgba(255,255,255,.18); padding:7px 16px; border-radius:var(--radius-pill); font-size:12.5px; font-weight:600; margin-bottom:20px;}
.hero-eyebrow .dot{width:7px; height:7px; border-radius:50%; background:#fff;}
.hero-grid{display:grid; grid-template-columns:1.05fr .95fr; gap:44px; align-items:end;}
.hero h1{font-size:42px; font-weight:800; line-height:1.16; margin-bottom:18px; max-width:600px;}
.hero .lead{font-size:16px; max-width:540px; opacity:.95; margin-bottom:24px;}
.hero-checks{display:flex; flex-wrap:wrap; gap:12px 24px; margin-bottom:28px; font-weight:600; font-size:13.5px;}
.hero-checks li{display:flex; align-items:center; gap:8px;}
.hero-checks .tick{width:20px; height:20px; border-radius:50%; background:#fff; color:var(--red); display:flex; align-items:center; justify-content:center; flex:none;}
.hero-checks .tick .icon{width:12px; height:12px; stroke-width:3;}
.hero-cta{display:flex; gap:12px; flex-wrap:nowrap; margin-bottom:18px;}
.hero-cta .btn{padding:12px 18px; font-size:13px; gap:6px; white-space:nowrap;}
.hero-note{font-size:12.5px; opacity:.85; margin-bottom:36px;}
.hero-media{position:relative;}
.hero-media img{border-radius:24px 24px 0 0; box-shadow:0 30px 70px rgba(0,0,0,.25);}
.hero-tag{position:absolute; left:-24px; bottom:20px; background:#fff; color:var(--ink); border-radius:var(--radius-sm); padding:16px 18px; box-shadow:var(--shadow-lg); width:230px;}
.hero-tag .t{font-size:11.5px; font-weight:700; color:var(--red); text-transform:uppercase; letter-spacing:.03em; margin-bottom:10px;}
.tech-pills{display:flex; flex-wrap:wrap; gap:6px;}
.tech-pills li{list-style:none; background:var(--lav); font-size:11px; font-weight:600; padding:5px 10px; border-radius:var(--radius-pill);}

.stats-strip{background:rgba(0,0,0,.14); margin-top:44px;}
.stats-strip .wrap{display:grid; grid-template-columns:repeat(5,1fr); padding:22px 24px;}
.stats-strip .stat{text-align:center; border-left:1px solid rgba(255,255,255,.2);}
.stats-strip .stat:first-child{border-left:none;}
.stats-strip .num{font-size:19px; font-weight:800; font-family:'Poppins',sans-serif;}
.stats-strip .lbl{font-size:11px; opacity:.85; margin-top:4px;}

.ticker-wrap{position:relative; background:linear-gradient(90deg,#B91C13 0%,#E2231A 45%,#F0511C 100%); overflow:hidden; padding:26px 0;}
.ticker-fade{-webkit-mask-image:linear-gradient(to right, transparent 0%, #000 5%, #000 95%, transparent 100%); mask-image:linear-gradient(to right, transparent 0%, #000 5%, #000 95%, transparent 100%);}
.ticker-track{display:flex; align-items:center; gap:16px; white-space:nowrap; font-family:'Unbounded',sans-serif; font-weight:700; font-size:15px; letter-spacing:.01em; color:#fff; animation:tick 20s linear infinite;}
.ticker-wrap:hover .ticker-track{animation-play-state:paused;}
.ticker-track .txt{display:inline-block;}
.ticker-track .star{display:inline-block; font-size:16px; line-height:1; animation:eyebrowSpin 5s linear infinite;}
.ticker-wrap:hover .ticker-track .star{animation-play-state:paused;}
@keyframes tick{from{transform:translateX(0)} to{transform:translateX(-50%)}}

/* ===== sections ===== */
.section{padding:72px 0;}
.section-head{text-align:center; max-width:660px; margin:0 auto 40px;}
.section-head.left{text-align:left; margin:0 0 36px;}
.eyebrow{display:inline-block; color:var(--red); font-weight:700; font-size:12.5px; letter-spacing:.05em; text-transform:uppercase; margin-bottom:10px;}
.section-head h2{font-size:29px; font-weight:800;}
.section-head p{color:var(--text); margin-top:12px; font-size:15px;}

/* why us */
.why-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:22px;}
.why-item{background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:26px; box-shadow:var(--shadow-sm);}
.why-item .ic{width:48px; height:48px; border-radius:14px; background:var(--lav); color:var(--red); display:flex; align-items:center; justify-content:center; margin-bottom:16px;}
.why-item .ic .icon{width:24px; height:24px;}
.why-item h4{font-size:16px; margin-bottom:6px;}
.why-item p{font-size:13.5px; color:var(--text);}

/* generic card grid (materials/raskroy/pechat) */
.card-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:20px;}
.card-grid.cols-3{grid-template-columns:repeat(3,1fr);}
.mcard{border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; background:#fff; transition:box-shadow .2s ease, transform .2s ease;}
.mcard:hover{box-shadow:var(--shadow-md); transform:translateY(-3px);}
.mcard .thumb{aspect-ratio:4/3; position:relative; overflow:hidden;}
.mcard .thumb img{width:100%; height:100%; object-fit:cover;}
.mcard .count-badge{position:absolute; top:12px; left:12px; background:rgba(255,255,255,.92); color:var(--ink); font-size:11px; font-weight:700; padding:5px 11px; border-radius:var(--radius-pill);}
.mcard .body{padding:18px;}
.mcard h4{font-size:15.5px; margin-bottom:5px;}
.mcard .spec{display:flex; align-items:center; gap:5px; font-size:11px; font-weight:700; color:var(--red); margin-bottom:8px;}
.mcard .spec .icon{flex:none;}
.mcard p{font-size:13px; color:var(--text); margin-bottom:10px;}
.mcard .more{font-size:12.5px; font-weight:700; color:var(--red); display:inline-flex; align-items:center; gap:5px; text-decoration:none;}
.mcard .more .icon{width:13px; height:13px;}

.cta-inline{margin-top:30px; background:var(--lav); border-radius:var(--radius); padding:26px 30px; display:flex; align-items:center; justify-content:space-between; gap:24px; flex-wrap:wrap;}
.cta-inline h4{font-size:16px; margin-bottom:4px;}
.cta-inline p{font-size:13.5px; color:var(--text);}
.cta-inline .actions{display:flex; gap:10px; flex-wrap:wrap;}
.section-dark .cta-inline{background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.1);}
.section-dark .cta-inline p{color:#9C9DA1;}

/* combo */
.combo{display:grid; grid-template-columns:1.4fr .9fr; gap:26px;}
.steps4{display:grid; grid-template-columns:repeat(2,1fr); gap:18px;}
.step-card{background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:22px; box-shadow:var(--shadow-sm);}
.step-card .n{width:32px; height:32px; border-radius:50%; background:var(--grad); color:#fff; font-weight:800; font-size:13px; display:flex; align-items:center; justify-content:center; margin-bottom:12px;}
.step-card h4{font-size:15px; margin-bottom:4px;}
.step-card p{font-size:12.5px; color:var(--text);}
.combo-side{background:var(--ink); color:#fff; border-radius:var(--radius); padding:28px;}
.combo-side h4{font-size:16px; margin-bottom:14px;}
.combo-side ul{margin-bottom:20px;}
.combo-side li{display:flex; gap:10px; align-items:flex-start; font-size:13.5px; padding:6px 0; opacity:.92;}
.combo-side .icon{width:16px; height:16px; margin-top:2px; flex:none; color:var(--orange);}

/* cases masonry */
.masonry{columns:4; column-gap:20px;}
.case-card{break-inside:avoid; margin-bottom:20px; border-radius:var(--radius); overflow:hidden; border:1px solid var(--line); background:#fff; box-shadow:var(--shadow-sm);}
.case-card .body{padding:16px 18px;}
.nda-badge{display:inline-flex; align-items:center; gap:6px; font-size:11px; font-weight:700; padding:4px 10px; border-radius:var(--radius-pill); margin-bottom:10px;}
.nda-badge.open{background:#E7F6EC; color:#1E7A42;}
.nda-badge.locked{background:#F3ECFB; color:#6B3FA0;}
.nda-badge .icon{width:11px; height:11px;}
.case-card h4{font-size:14.5px; margin-bottom:8px;}
.tags{display:flex; gap:16px; font-size:11.5px; color:var(--text);}
.tags b{display:block; color:var(--ink); font-size:12.5px;}

/* steps process */
.steps-row{display:grid; grid-template-columns:repeat(4,1fr); gap:22px; position:relative;}
.steps-row .step{text-align:center;}
.steps-row .n{width:52px; height:52px; border-radius:50%; background:var(--grad); color:#fff; font-weight:800; font-family:'Poppins',sans-serif; font-size:18px; display:flex; align-items:center; justify-content:center; margin:0 auto 16px; box-shadow:var(--shadow-md);}
.steps-row h4{font-size:15.5px; margin-bottom:6px;}
.steps-row p{font-size:13px; color:var(--text);}

/* clients */
.clients-row{display:flex; justify-content:space-between; gap:16px; flex-wrap:wrap;}
.client-chip{flex:1; min-width:170px; display:flex; align-items:center; gap:12px; background:#fff; border:1px solid var(--line); border-radius:var(--radius-sm); padding:16px 18px;}
.client-chip .ic{width:38px; height:38px; border-radius:11px; background:var(--lav); color:var(--red); display:flex; align-items:center; justify-content:center; flex:none;}
.client-chip .ic .icon{width:19px; height:19px;}
.client-chip span{font-size:13px; font-weight:600;}

/* testimonials */
.testi-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:22px;}
.testi-card{background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:26px; box-shadow:var(--shadow-sm);}
.stars{display:flex; gap:3px; color:var(--orange); margin-bottom:14px;}
.stars .icon{width:15px; height:15px;}
.testi-card p{font-size:13.5px; color:var(--text); margin-bottom:18px;}
.testi-foot{display:flex; align-items:center; gap:12px;}
.avatar{width:38px; height:38px; border-radius:50%; background:var(--grad); color:#fff; display:flex; align-items:center; justify-content:center; font-weight:700; font-size:13px; flex:none;}
.testi-foot .name{font-size:13.5px; font-weight:700;}
.testi-foot .role{font-size:12px; color:var(--text);}

/* faq */
.faq-list{max-width:800px; margin:0 auto;}
.faq-item{border-bottom:1px solid var(--line);}
.faq-item summary{list-style:none; cursor:pointer; padding:20px 4px; display:flex; align-items:center; justify-content:space-between; font-weight:600; font-size:15px;}
.faq-item summary::-webkit-details-marker{display:none;}
.faq-item .plus{width:26px; height:26px; border-radius:50%; background:var(--lav); color:var(--red); display:flex; align-items:center; justify-content:center; flex:none;}
.faq-item .plus .icon{width:13px; height:13px; transition:transform .2s ease;}
.faq-item[open] .plus .icon{transform:rotate(45deg);}
.faq-item .a{padding:0 4px 20px; font-size:13.5px; color:var(--text); max-width:680px;}

/* blog */
.blog-panel{background:var(--ink); color:#fff; border-radius:var(--radius); padding:34px;}
.blog-panel .head{display:flex; align-items:center; gap:10px; margin-bottom:20px; font-weight:700; font-size:15px;}
.blog-panel .head .icon{width:20px; height:20px; color:var(--orange);}
.blog-list a{display:flex; justify-content:space-between; gap:20px; padding:13px 0; border-bottom:1px solid rgba(255,255,255,.1); text-decoration:none; color:#fff; font-size:13.5px; font-weight:500;}
.blog-list a:last-child{border-bottom:none;}
.blog-list .date{color:rgba(255,255,255,.5); font-size:12px; flex:none;}

/* final cta */
.final-cta{background:var(--grad); border-radius:28px; padding:46px; text-align:center; color:#fff;}
.final-cta h2{font-size:26px; margin-bottom:10px;}
.final-cta p{opacity:.9; margin-bottom:26px; font-size:14.5px;}
.final-cta .actions{display:flex; justify-content:center; gap:14px; flex-wrap:wrap;}

/* contacts */
.contacts-grid{display:grid; grid-template-columns:1fr 1fr; gap:40px; align-items:start;}
.contact-row{display:flex; gap:14px; align-items:flex-start; padding:16px 0; border-bottom:1px solid var(--line);}
.contact-row:last-child{border-bottom:none;}
.contact-row .ic{width:42px; height:42px; border-radius:13px; background:var(--lav); color:var(--red); display:flex; align-items:center; justify-content:center; flex:none;}
.contact-row .ic .icon{width:20px; height:20px;}
.contact-row .t1{font-weight:700; font-size:14.5px;}
.contact-row .t2{font-size:12.5px; color:var(--text);}
.map-box{border-radius:var(--radius); background:var(--lav); border:1px solid var(--line); aspect-ratio:1/0.85; display:flex; align-items:center; justify-content:center; color:var(--text); font-size:13px; font-weight:600; gap:8px; overflow:hidden; padding:0;}
.map-box iframe{width:100%; height:100%; border:0; display:block;}

/* footer */
footer{background:#1B0E11; color:#D9C9C3; padding:56px 0 26px; font-size:13.5px;}
.footer-grid{display:grid; grid-template-columns:1.6fr 1fr 1fr; gap:40px; padding-bottom:36px; border-bottom:1px solid rgba(255,255,255,.08);}
.footer-logo{display:flex; align-items:center; gap:12px; margin-bottom:16px; color:#fff;}
.footer-logo .mark{width:40px; height:40px; border-radius:12px; background:var(--grad); color:#fff; display:flex; align-items:center; justify-content:center; font-weight:800; flex:none;}
.footer-logo b{font-family:'Poppins',sans-serif; font-size:14px;}
.footer-col h5{color:#fff; font-size:12.5px; text-transform:uppercase; letter-spacing:.04em; margin-bottom:14px;}
.footer-col a{display:block; color:#D9C9C3; text-decoration:none; padding:6px 0; font-size:13.5px;}
.footer-col a:hover{color:#fff;}
.footer-bottom{display:flex; justify-content:space-between; padding-top:22px; font-size:12px; flex-wrap:wrap; gap:10px; color:#9C8A84;}
.footer-bottom a{color:#9C8A84; text-decoration:underline;}

/* floating action buttons */
.float-btns{position:fixed; bottom:24px; right:24px; display:flex; flex-direction:column; gap:12px; z-index:60;}
.float-btns a{width:52px; height:52px; border-radius:50%; display:flex; align-items:center; justify-content:center; color:#fff; box-shadow:0 12px 26px rgba(0,0,0,.22); text-decoration:none;}
.float-btns a .icon{width:23px; height:23px;}
.fb-whatsapp{background:#25B463;}
.fb-telegram{background:#2AA1DB;}
.fb-call{background:var(--grad);}

/* nav active state */
nav.menu>a.active, .has-drop>a.active{background:var(--lav); color:var(--red);}

/* breadcrumb */
.breadcrumb{display:flex; align-items:center; gap:8px; font-size:12.5px; color:var(--text); padding:18px 0 0;}
.breadcrumb a{color:var(--text); text-decoration:none;}
.breadcrumb a:hover{color:var(--red);}
.breadcrumb .sep{opacity:.5;}
.breadcrumb .current{color:var(--ink); font-weight:600;}

/* page hero (subpages) */
.page-hero{padding:24px 0 56px;}
.page-hero-grid{display:grid; grid-template-columns:1.1fr .9fr; gap:44px; align-items:center; margin-top:22px;}
.page-hero h1{font-size:36px; font-weight:800; margin-bottom:16px; line-height:1.18;}
.page-hero .lead{font-size:15.5px; color:var(--text); max-width:520px; margin-bottom:24px;}
.page-hero-photo img{border-radius:var(--radius); box-shadow:var(--shadow-lg); width:100%; aspect-ratio:4/3; object-fit:cover;}
.feature-row{display:grid; grid-template-columns:repeat(2,1fr); gap:14px;}
.feature-row .f{display:flex; align-items:flex-start; gap:10px; font-size:13.5px; font-weight:700; background:var(--lav); border-radius:var(--radius-sm); padding:14px;}
.feature-row .f .ic{width:34px; height:34px; border-radius:10px; background:#fff; color:var(--red); display:flex; align-items:center; justify-content:center; flex:none;}
.feature-row .f .ic .icon{width:17px; height:17px;}
.feature-row .f span.sub{display:block; font-weight:400; color:var(--text); font-size:12px; margin-top:2px;}

/* spec bar */
.spec-bar{background:var(--ink); color:#fff;}
.spec-bar .wrap{display:grid; grid-template-columns:repeat(5,1fr); padding:28px 24px;}
.spec-bar .item{display:flex; align-items:center; gap:12px; border-left:1px solid rgba(255,255,255,.14); padding-left:18px;}
.spec-bar .item:first-child{border-left:none; padding-left:0;}
.spec-bar .ic{width:34px; height:34px; border-radius:10px; background:rgba(255,255,255,.1); color:var(--orange); display:flex; align-items:center; justify-content:center; flex:none;}
.spec-bar .ic .icon{width:17px; height:17px;}
.spec-bar .num{font-weight:800; font-size:14.5px; font-family:'Poppins',sans-serif;}
.spec-bar .lbl{font-size:11px; opacity:.75; margin-top:2px;}

/* sidebar layout (material category) */
.layout-side{display:grid; grid-template-columns:250px 1fr; gap:40px; align-items:start;}
.side-nav{background:#fff; border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; position:sticky; top:96px; padding:8px;}
.side-nav a{display:block; padding:11px 14px; border-radius:var(--radius-sm); text-decoration:none; color:var(--ink); font-size:13.5px; font-weight:600;}
.side-nav a:hover{background:var(--lav);}
.side-nav a.active{background:var(--grad); color:#fff;}
.side-cta{margin-top:14px; background:var(--lav); border-radius:var(--radius-sm); padding:18px;}
.side-cta h4{font-size:14px; margin-bottom:6px;}
.side-cta p{font-size:12px; color:var(--text); margin-bottom:12px;}

/* material list (small item grid) */
.mat-list{display:grid; grid-template-columns:repeat(4,1fr); gap:16px;}
.mat-item{display:block; border:1px solid var(--line); border-radius:var(--radius-sm); overflow:hidden; text-decoration:none; color:var(--ink); background:#fff; transition:box-shadow .2s ease, transform .2s ease;}
.mat-item:hover{box-shadow:var(--shadow-md); transform:translateY(-3px);}
.mat-item .thumb{aspect-ratio:4/3.1;}
.mat-item .thumb img{width:100%; height:100%; object-fit:cover;}
.mat-item .info{padding:13px 14px;}
.mat-item h4{font-size:13.5px; margin-bottom:6px;}
.tech-tag{display:inline-block; font-size:10.5px; font-weight:700; color:var(--red); background:var(--lav); padding:4px 9px; border-radius:var(--radius-pill);}

/* horizontal materials carousel (scroll-snap, reuses .mat-item cards) */
.mat-carousel-track{display:flex; gap:16px; overflow-x:auto; scroll-snap-type:x mandatory; padding-bottom:4px; scrollbar-width:none;}
.mat-carousel-track::-webkit-scrollbar{display:none;}
.mat-carousel-track .mat-item{flex:0 0 calc(25% - 12px); scroll-snap-align:start;}
@media (max-width:992px){
  .mat-carousel-track .mat-item{flex:0 0 calc(33.333% - 11px);}
}
@media (max-width:640px){
  .mat-carousel-track .mat-item{flex:0 0 calc(58% - 8px);}
}

.legend-box{background:var(--lav); border-radius:var(--radius-sm); padding:16px 20px; font-size:12.5px; color:var(--text); margin-top:22px;}

.price-table{width:100%; border-collapse:collapse; background:#fff; border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; min-width:520px;}
.price-table th{background:var(--lav); text-align:left; font-family:'Unbounded',sans-serif; font-size:11.5px; font-weight:700; color:var(--ink); padding:14px 20px; text-transform:uppercase; letter-spacing:.03em;}
.price-table td{padding:14px 20px; border-top:1px solid var(--line); font-size:13.5px; color:var(--ink);}
.price-table tr:hover td{background:var(--lav);}
.price-table td:last-child, .price-table th:last-child{font-weight:800; color:var(--red); white-space:nowrap;}
.price-note{margin-top:14px; font-size:12.5px; color:var(--text);}

.req-list{display:flex; flex-direction:column; gap:14px; max-width:760px;}
.req-list li{display:flex; align-items:flex-start; gap:12px; font-size:14px; color:var(--ink); line-height:1.5;}
.req-list .tick{width:20px; height:20px; border-radius:50%; background:var(--lav); color:var(--red); display:flex; align-items:center; justify-content:center; flex:none; margin-top:2px;}
.req-list .tick .icon{width:12px; height:12px; stroke-width:3;}

.free-test-box{background:var(--lav); border:1px solid var(--line); border-radius:var(--radius); padding:20px 22px; margin-bottom:26px; display:flex; flex-direction:column; align-items:flex-start; gap:12px; max-width:460px;}
.free-test-box .ft-badge{display:inline-flex; align-items:center; background:var(--grad); color:#fff; font-family:'Unbounded',sans-serif; font-weight:700; font-size:11px; text-transform:uppercase; letter-spacing:.04em; padding:6px 14px; border-radius:999px;}
.free-test-box p{font-size:14px; color:var(--ink); font-weight:600; margin:0;}

/* tech compatibility grid */
.tech-compat{display:grid; grid-template-columns:repeat(3,1fr); gap:16px;}
.tech-compat .item{background:#fff; border:1px solid var(--line); border-radius:var(--radius-sm); padding:18px; display:flex; gap:12px; align-items:flex-start;}
.tech-compat .item.main{border:1.5px solid var(--red); background:var(--lav);}
.tech-compat .code{width:34px; height:34px; border-radius:10px; background:var(--grad); color:#fff; font-weight:800; font-size:12.5px; display:flex; align-items:center; justify-content:center; flex:none;}
.tech-compat h5{font-size:13.5px; margin-bottom:3px;}
.tech-compat p{font-size:12px; color:var(--text);}

/* detail hero (product/technology detail pages) */
.detail-hero{display:grid; grid-template-columns:1fr 1fr; gap:44px; align-items:center;}
.badge-row{display:flex; gap:8px; flex-wrap:wrap; margin-bottom:16px;}
.badge{display:inline-block; font-size:11.5px; font-weight:700; padding:6px 13px; border-radius:var(--radius-pill); background:var(--lav); color:var(--ink);}
.badge.red{background:var(--grad); color:#fff;}
.spec-table{width:100%; border-collapse:collapse;}
.spec-table td{padding:11px 0; border-bottom:1px solid var(--line); font-size:13.5px;}
.spec-table td:first-child{color:var(--text); width:46%;}
.spec-table td:last-child{font-weight:700;}
.detail-gallery{display:grid; grid-template-columns:1fr 1fr; gap:12px;}
.detail-gallery .main-img{grid-column:1 / 3; border-radius:var(--radius); overflow:hidden; aspect-ratio:16/10;}
.detail-gallery .sub-img{border-radius:var(--radius-sm); overflow:hidden; aspect-ratio:4/3.2;}
.detail-gallery img{width:100%; height:100%; object-fit:cover;}

/* dark cta band (detail pages) */
.cta-dark{background:var(--ink); color:#fff;}
.cta-dark .wrap{display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:20px; padding:44px 24px;}
.cta-dark h2{color:#fff; font-size:24px; margin-bottom:8px;}
.cta-dark p{color:rgba(255,255,255,.65); font-size:14px;}

/* logo pill strip (about page) */
.logos-strip{display:flex; flex-wrap:wrap; gap:12px; justify-content:center;}
.logo-pill{display:inline-flex; align-items:center; gap:8px; background:#fff; border:1px solid var(--line); border-radius:var(--radius-pill); padding:11px 18px; font-size:13px; font-weight:600;}
.logo-pill .icon{width:16px; height:16px; color:var(--red);}

@media (max-width:992px){
  .page-hero-grid{grid-template-columns:1fr;}
  .layout-side{grid-template-columns:1fr;}
  .side-nav{position:static;}
  .mat-list{grid-template-columns:repeat(2,1fr);}
  .tech-compat{grid-template-columns:1fr 1fr;}
  .detail-hero{grid-template-columns:1fr;}
  .spec-bar .wrap{grid-template-columns:repeat(2,1fr); row-gap:18px;}
  .spec-bar .item{border-left:none; padding-left:0;}
  .feature-row{grid-template-columns:1fr;}
}
@media (max-width:640px){
  .mat-list{grid-template-columns:1fr 1fr;}
  .tech-compat{grid-template-columns:1fr;}
  .detail-gallery{grid-template-columns:1fr 1fr;}
}

/* header phone + icon button */
.header-phone{display:flex; align-items:center; gap:7px; font-weight:700; font-size:14px; color:var(--ink); text-decoration:none; white-space:nowrap;}
.header-max{display:flex; align-items:center; gap:8px; font-weight:700; font-size:13.5px; color:var(--ink); text-decoration:none; white-space:nowrap; background:#F5F3FB; padding:8px 16px 8px 8px; border-radius:var(--radius-pill); flex:none; transition:background .2s ease;}
.header-max img{width:24px; height:24px; border-radius:7px; display:block; flex:none;}
.header-max:hover{background:#E9E4F7;}
.fb-max{background:none; border-radius:16px; box-shadow:0 12px 26px rgba(0,0,0,.22); overflow:hidden; padding:0;}
.fb-max img{width:52px; height:52px; border-radius:16px; display:block;}

/* lead modal */
.lead-backdrop{position:fixed; inset:0; background:rgba(20,10,8,.55); opacity:0; pointer-events:none; transition:opacity .2s ease; z-index:200;}
.lead-backdrop.open{opacity:1; pointer-events:auto;}
.lead-modal{position:fixed; top:50%; left:50%; transform:translate(-50%,-46%); width:92%; max-width:420px; background:#fff; border-radius:var(--radius); padding:30px 28px; box-shadow:var(--shadow-lg); z-index:201; opacity:0; pointer-events:none; transition:opacity .2s ease, transform .2s ease;}
.lead-modal.open{opacity:1; pointer-events:auto; transform:translate(-50%,-50%);}
.lead-modal h3{font-size:19px; margin-bottom:8px;}
.lead-sub{font-size:13px; color:var(--text); margin-bottom:18px;}
.lead-close{position:absolute; top:16px; right:16px; width:30px; height:30px; border-radius:50%; background:var(--lav); color:var(--ink); border:none; display:flex; align-items:center; justify-content:center; cursor:pointer;}
.lead-modal label{display:block; font-size:12.5px; font-weight:700; margin:12px 0 6px;}
.lead-modal input, .lead-modal textarea{width:100%; border:1.5px solid var(--line); border-radius:var(--radius-sm); padding:11px 13px; font-family:inherit; font-size:14px; color:var(--ink); background:var(--lav); resize:vertical;}
.lead-modal input:focus, .lead-modal textarea:focus{outline:none; border-color:var(--red);}
.lead-check{width:52px; height:52px; border-radius:50%; background:#E7F6EC; color:#1E7A42; display:flex; align-items:center; justify-content:center; margin:0 auto 16px;}

/* task picker buttons */
.task-row{display:grid; grid-template-columns:repeat(3,1fr); gap:20px;}
.task-btn{background:#fff; border:1.5px solid var(--line); border-radius:var(--radius); padding:28px 20px; text-align:center; cursor:pointer; font-family:'Poppins',sans-serif; font-weight:700; font-size:15.5px; color:var(--ink); transition:transform .2s ease, background .2s ease, color .2s ease, border-color .2s ease, box-shadow .2s ease;}
.task-btn .ic{width:46px; height:46px; border-radius:50%; background:var(--lav); color:var(--red); display:flex; align-items:center; justify-content:center; margin:0 auto 14px; transition:background .2s ease, color .2s ease;}
.task-btn:hover{transform:scale(1.05) translateY(-4px); background:var(--grad); color:#fff; border-color:transparent; box-shadow:var(--shadow-md);}
.task-btn:hover .ic{background:rgba(255,255,255,.22); color:#fff;}

/* trust stat row (why-us top) */
.trust-row{display:grid; grid-template-columns:repeat(5,1fr); gap:16px; margin-bottom:32px;}
.trust-item{text-align:center;}
.trust-item .ic{width:44px; height:44px; border-radius:50%; background:var(--lav); color:var(--red); display:flex; align-items:center; justify-content:center; margin:0 auto 10px;}
.trust-item .num{font-family:'Poppins',sans-serif; font-weight:800; font-size:16px;}
.trust-item .lbl{font-size:11.5px; color:var(--text); margin-top:2px;}

/* materials zone groups */
.zone-title{font-family:'Unbounded',sans-serif; font-size:21px; font-weight:700; letter-spacing:-.01em; margin:52px 0 24px; display:flex; align-items:center; gap:14px;}
.zone-title::before{content:""; width:26px; height:4px; border-radius:3px; background:var(--grad); flex:none;}
.num-tile-grid + .zone-title{margin-top:56px;}
.zone-title .dot{display:none;}
.mzone-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:18px;}
.mzone-card{position:relative; border-radius:var(--radius); overflow:hidden; aspect-ratio:4/3.4; border:1px solid var(--line);}
.mzone-card img{width:100%; height:100%; object-fit:cover;}
.mzone-card .tag{display:none;}
.mzone-card .cap{position:absolute; left:0; right:0; bottom:0; padding:16px; color:#fff; background:linear-gradient(0deg, rgba(8,5,4,.95) 0%, rgba(8,5,4,.8) 45%, rgba(8,5,4,.25) 85%, transparent 100%);}
.mzone-card .cap h4{font-size:14.5px; margin-bottom:4px; text-shadow:0 1px 6px rgba(0,0,0,.4);}
.mzone-card .cap p{font-size:11.5px; opacity:.9; line-height:1.5; text-shadow:0 1px 4px rgba(0,0,0,.35);}
.mzone-card .overlay{position:absolute; inset:0; background:rgba(20,10,8,0); display:flex; align-items:center; justify-content:center; transition:background .2s ease;}
.mzone-card .overlay .more-btn{opacity:0; transform:translateY(8px); transition:opacity .2s ease, transform .2s ease; background:#fff; color:var(--ink); font-weight:700; font-size:12.5px; padding:9px 18px; border-radius:var(--radius-pill);}
.mzone-card:hover .overlay{background:rgba(20,10,8,.45);}
.mzone-card:hover .overlay .more-btn{opacity:1; transform:translateY(0);}

/* combo variants */
.variant-grid{display:grid; grid-template-columns:1fr 1fr; gap:22px;}
.variant-card{background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:26px;}
.variant-card h4{font-size:15px; color:var(--red); font-weight:800; text-transform:uppercase; letter-spacing:.03em; margin-bottom:16px;}
.variant-flow{display:flex; align-items:stretch; gap:10px; flex-wrap:wrap;}
.variant-step{flex:1; min-width:130px; background:var(--lav); border-radius:var(--radius-sm); padding:14px;}
.variant-step .n{width:26px; height:26px; border-radius:50%; background:var(--grad); color:#fff; font-weight:800; font-size:12px; display:flex; align-items:center; justify-content:center; margin-bottom:10px;}
.variant-step h5{font-size:13px; margin-bottom:4px;}
.variant-step p{font-size:11.5px; color:var(--text);}
.variant-note{font-size:11.5px; color:var(--text); margin-top:12px; font-style:italic;}

/* accent project carousel — center card is larger, side cards recede */
.projects-carousel{position:relative;margin-top:8px;}
.projects-viewport{overflow:hidden;padding:34px 0 24px;}
.projects-track{display:flex;gap:18px;align-items:center;will-change:transform;transition:transform 1s cubic-bezier(.2,.8,.2,1);}
.project-slide{position:relative;flex:0 0 min(33.5vw,440px);min-width:320px;border-radius:24px;overflow:hidden;background:#fff;border:1px solid rgba(80,37,24,.08);box-shadow:0 14px 34px rgba(87,48,32,.10);transform:scale(.9);opacity:.66;filter:saturate(.82);transition:transform .55s cubic-bezier(.2,.8,.2,1),opacity .45s ease,filter .45s ease,box-shadow .45s ease;}
.project-slide.is-active{transform:scale(1.065);opacity:1;filter:none;box-shadow:0 26px 56px rgba(91,49,31,.18);z-index:3;}
.project-photo.blurred img{filter:blur(16px);transform:scale(1.15);}
.project-photo{height:245px;overflow:hidden;background:#211613;}
.project-slide.is-active .project-photo{height:285px;}
.project-photo img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .65s cubic-bezier(.2,.8,.2,1);}
.project-slide:hover .project-photo img{transform:scale(1.045);}
.project-body{position:relative;padding:20px 22px 22px;min-height:190px;}
.project-slide.is-active .project-body{padding:22px 24px 24px;min-height:205px;}
.project-body h4{font-family:'Unbounded',sans-serif;font-size:16px;line-height:1.3;color:var(--ink);margin:12px 0 18px;}
.project-slide.is-active .project-body h4{font-size:18px;}
.project-meta{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px;padding-top:15px;border-top:1px solid rgba(69,36,26,.10);}
.project-meta div{min-width:0;}
.project-meta span{display:block;font-size:10.5px;color:var(--text);margin-bottom:5px;}
.project-meta b{display:block;font-size:11.5px;line-height:1.35;color:var(--ink);}
.project-arrow{position:absolute;right:18px;bottom:18px;width:42px;height:42px;border-radius:50%;display:flex;align-items:center;justify-content:center;border:1px solid rgba(226,35,26,.18);background:#fff;color:var(--red);transition:background .25s ease,color .25s ease,transform .25s ease;}
.project-slide.is-active .project-arrow{width:48px;height:48px;background:var(--grad);color:#fff;border-color:transparent;box-shadow:0 10px 22px rgba(226,35,26,.24);}
.project-slide:hover .project-arrow{transform:translate(2px,-2px);}
.project-body .project-meta{padding-right:56px;}
.projects-dots{display:flex;justify-content:center;gap:7px;margin:6px auto 14px;}
.projects-dots span{width:18px;height:5px;border-radius:10px;background:#ead5cb;transition:width .3s ease,background .3s ease;}
.projects-dots span.is-active{width:34px;background:linear-gradient(90deg,var(--red),var(--orange));}
.carousel-nav{display:flex;justify-content:center;gap:14px;margin-top:10px;}
.carousel-btn{width:44px;height:44px;border-radius:50%;background:#fff;border:1.5px solid var(--line);display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--ink);transition:background .2s ease,color .2s ease,transform .2s ease,border-color .2s ease;}
.carousel-btn:hover{transform:translateY(-2px);background:#fff4ef;border-color:rgba(226,35,26,.24);}
.carousel-btn.is-accent{background:var(--grad);color:#fff;border-color:transparent;box-shadow:0 10px 22px rgba(226,35,26,.22);}
.carousel-btn.is-accent:hover{background:var(--grad);color:#fff;}
@media(max-width:1080px){
  .project-slide{flex-basis:45vw;min-width:330px;}
  .project-slide.is-active{transform:scale(1.035);}
}
@media(max-width:720px){
  .projects-viewport{padding:16px 0 18px;overflow:hidden;}
  .projects-track{gap:12px;align-items:stretch;}
  .project-slide,.project-slide.is-active{flex-basis:88vw;min-width:0;transform:scale(1);opacity:1;filter:none;}
  .project-photo,.project-slide.is-active .project-photo{height:230px;}
  .project-body,.project-slide.is-active .project-body{padding:18px;min-height:205px;}
  .project-body h4,.project-slide.is-active .project-body h4{font-size:15px;}
  .project-meta{grid-template-columns:1fr 1fr;}
  .project-meta div:nth-child(3){grid-column:1/-1;}
}

@media (max-width:992px){
  .task-row{grid-template-columns:1fr;}
  .trust-row{grid-template-columns:repeat(2,1fr); row-gap:20px;}
  .mzone-grid{grid-template-columns:repeat(2,1fr);}
  .variant-grid{grid-template-columns:1fr;}
}
@media (max-width:640px){
  .mzone-grid{grid-template-columns:1fr 1fr;}
  .trust-row{grid-template-columns:1fr 1fr;}
}

@media (max-width:992px){
  .topbar-left span:last-child{display:none;}
  .topbar-right span{display:none;}
  .topbar-max{display:none;}
  nav.menu, .nav-actions{display:none;}
  .mobile-actions{display:flex;}
  .mobile-max-btn{display:flex;}
  .hamburger{display:flex;}
  .hero-grid{grid-template-columns:1fr;}
  .hero-media{display:none;}
  .hero-cta{flex-wrap:nowrap;}
  .hero-cta .btn{padding:12px 16px; font-size:12.5px; gap:6px; white-space:nowrap;}
  .stats-strip .wrap{grid-template-columns:repeat(2,1fr); gap:18px;}
  .stats-strip .stat{border-left:none; text-align:left;}
  .why-grid, .card-grid, .card-grid.cols-3, .testi-grid{grid-template-columns:repeat(2,1fr);}
  .card-grid{grid-template-columns:repeat(2,1fr);}
  .combo{grid-template-columns:1fr;}
  .steps4{grid-template-columns:1fr 1fr;}
  .masonry{columns:2;}
  .steps-row{grid-template-columns:repeat(2,1fr); row-gap:30px;}
  .clients-row{flex-direction:column;}
  .contacts-grid{grid-template-columns:1fr;}
  .footer-grid{grid-template-columns:1fr; gap:28px;}

  #nav-toggle:checked ~ .mobile-nav{display:block;}
  .mobile-nav{display:none; position:fixed; inset:0; background:#fff; z-index:100; overflow-y:auto; padding:20px 24px 100px;}
  .mobile-nav-head{display:flex; justify-content:space-between; align-items:center; margin-bottom:20px;}
  .mobile-nav-head .close{width:38px; height:38px; border-radius:50%; background:var(--lav); display:flex; align-items:center; justify-content:center;}
  .mobile-nav a.top-link{display:block; padding:14px 4px; font-weight:600; font-size:15.5px; text-decoration:none; color:var(--ink); border-bottom:1px solid var(--line);}
  .mobile-nav a.top-link.header-max{display:flex; align-items:center; gap:10px; background:none; border-radius:0; padding:14px 4px;}
  .mobile-nav a.top-link.header-max img{width:26px; height:26px;}
  .mobile-nav details{border-bottom:1px solid var(--line);}
  .mobile-nav summary{list-style:none; padding:14px 4px; font-weight:600; font-size:15.5px; display:flex; justify-content:space-between; cursor:pointer;}
  .mobile-nav summary::-webkit-details-marker{display:none;}
  .mobile-nav details a{display:block; padding:9px 4px 9px 14px; font-size:14px; color:var(--text); text-decoration:none;}
  .mobile-nav .btn{width:100%; justify-content:center; margin-top:16px;}
}
@media (max-width:640px){
  .hero h1{font-size:31px;}
  .why-grid, .card-grid, .card-grid.cols-3, .testi-grid, .steps-row{grid-template-columns:1fr;}
  .masonry{columns:1;}
  .steps4{grid-template-columns:1fr;}
  .footer-bottom{flex-direction:column;}
  .hero-cta{flex-wrap:wrap;}
  .hero-cta .btn{width:100%; justify-content:center; padding:13px 20px; font-size:13.5px;}
}

/* ======================================================
   HOME PAGE v2 — homepage-only additions (index.html, body.v2)
   All selectors below are either scoped by "body.v2" or use
   class names not referenced by any other page, so nothing here
   affects materials.html / raskroy.html / pechat.html / etc.
   ====================================================== */
body.v2{background:var(--lav);}
body.v2 h1, body.v2 h2, body.v2 h3, body.v2 h4,
body.v2 .task-btn,
body.v2 .steps-row .n, body.v2 .trust-item .num,
body.v2 .final-cta h2, body.v2 .hero-badge .num{font-family:'Unbounded',sans-serif;}

/* header/footer are shared chrome — keep them identical on every page, not just the home page */
.logo .name, header.main .btn, .mobile-nav .btn{font-family:'Unbounded',sans-serif;}

/* decorative dark section w/ grid texture, used to alternate rhythm with light sections */
.section-dark{position:relative; background:#170D0B; color:#fff; overflow:hidden;}
.section-dark::before{content:"";position:absolute; inset:0; background-image:linear-gradient(rgba(255,255,255,.05) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.05) 1px, transparent 1px); background-size:44px 44px; pointer-events:none;}
.section-dark>.wrap{position:relative; z-index:1;}
.section-dark h2, .section-dark h3, .section-dark h4{color:#fff;}
.section-dark .eyebrow{color:#FF9B7A;}
.section-dark .section-head p{color:#B7BABE;}

@keyframes floatBlob1{0%,100%{transform:translate(0,0) scale(1);} 50%{transform:translate(24px,-18px) scale(1.06);}}
@keyframes floatBlob2{0%,100%{transform:translate(0,0) scale(1);} 50%{transform:translate(-20px,16px) scale(1.08);}}
@keyframes pulseDot{0%,100%{opacity:1;} 50%{opacity:.4;}}

.blob{position:absolute; border-radius:50%; filter:blur(30px); pointer-events:none; z-index:0;}
.blob-1{top:-120px; right:-80px; width:420px; height:420px; background:radial-gradient(circle, rgba(226,35,26,.45), transparent 70%); animation:floatBlob1 9s ease-in-out infinite;}
.blob-2{bottom:-100px; left:-60px; width:320px; height:320px; background:radial-gradient(circle, rgba(255,144,23,.35), transparent 70%); animation:floatBlob2 11s ease-in-out infinite;}

.flag{display:inline-block; width:10px; height:9px; background:var(--orange); clip-path:polygon(0 0,100% 0,100% 100%); margin-left:7px; transform:translateY(-8px);}

/* hero v2 (dark) */
body.v2 .hero{background:#170D0B;}
body.v2 .hero-eyebrow{background:rgba(226,35,26,.18); color:#FF9B7A;}
body.v2 .hero-eyebrow .dot{background:#FF6A5E; animation:pulseDot 1.8s ease-in-out infinite;}
body.v2 .hero .lead{color:#B7BABE;}
body.v2 .hero-checks{display:grid; grid-template-columns:1fr 1fr; gap:12px 24px; max-width:520px;}
body.v2 .hero-checks li{color:#DADCDE;}
body.v2 .hero-free{display:inline-flex; flex-direction:column; align-items:flex-start; gap:2px; background:rgba(255,255,255,.96); color:var(--red); padding:13px 18px; border-radius:16px; margin-bottom:22px;}
body.v2 .hero-free b{font-size:13px;}
body.v2 .hero-free span{font-weight:600; font-size:12.5px; color:var(--ink);}

.hero-media-decor{position:absolute; top:32px; left:32px; right:-16px; bottom:20px; border-radius:24px; background:linear-gradient(135deg, rgba(255,144,23,.4), rgba(226,35,26,.28)); transform:rotate(-3deg); z-index:0;}
.hero-dots{position:absolute; top:6px; right:2px; display:flex; gap:6px; z-index:2;}
.hero-dots span{width:9px; height:9px; border-radius:50%; background:rgba(255,255,255,.5); display:block;}
.hero-dots span:last-child{background:var(--orange);}
body.v2 .hero-media{padding:22px 20px 46px 6px;}
body.v2 .hero-media img{position:relative; z-index:1; border-radius:22px; transform:rotate(1deg); box-shadow:0 30px 70px rgba(0,0,0,.4);}
.hero-badge{position:absolute; left:-14px; bottom:0; background:#fff; color:var(--ink); border-radius:18px; padding:16px 20px; box-shadow:0 22px 46px rgba(0,0,0,.3); z-index:2; display:flex; align-items:center; gap:12px; max-width:230px;}
.hero-badge .ic{width:44px; height:44px; border-radius:50%; background:var(--grad); color:#fff; display:flex; align-items:center; justify-content:center; flex:none;}
.hero-badge .num{font-weight:800; font-size:16px;}
.hero-badge .lbl{font-size:11.5px; color:var(--text);}

.hero-stats-pills{width:100%; margin-top:36px; position:relative; z-index:1; background:rgba(0,0,0,.16);}
.hero-stats-pills .wrap{display:grid; grid-template-columns:repeat(4,1fr); padding-top:22px; padding-bottom:22px;}
.stat-pill{display:flex; flex-direction:column; gap:4px; padding:6px 22px; border-right:1px solid rgba(255,255,255,.16); transition:background .2s ease;}
.stat-pill:nth-child(4n+1){padding-left:0;}
.stat-pill:nth-child(4n){border-right:none; padding-right:0;}
.stat-pill .num{font-family:'Unbounded',sans-serif; font-weight:800; font-size:16px; color:#fff; white-space:nowrap;}
.stat-pill .lbl{font-size:11.5px; color:#9C9DA1; line-height:1.35;}

/* trust / why-us dark */
body.v2 .trust-item .ic{background:rgba(255,255,255,.06); color:var(--orange);}
body.v2 .trust-item .num{color:#fff;}
body.v2 .trust-item .lbl{color:#9C9DA1;}
body.v2 .why-item,.section-dark .why-item{background:rgba(255,255,255,.04); border-color:rgba(255,255,255,.09); box-shadow:none; transition:transform .25s ease, background .25s ease;}
body.v2 .why-item:hover,.section-dark .why-item:hover{background:rgba(255,255,255,.07); transform:translateY(-4px);}
body.v2 .why-item .ic,.section-dark .why-item .ic{background:rgba(226,35,26,.16); color:#FF6A5E;}
body.v2 .why-item h4,.section-dark .why-item h4{color:#fff;}
body.v2 .why-item p,.section-dark .why-item p{color:#9C9DA1;}

/* material/tech tile grid — compact teaser strips linking to full catalog pages */
.tile-grid{display:grid; grid-template-columns:repeat(6,1fr); gap:14px;}
.tile-grid.tech{grid-template-columns:repeat(7,1fr);}
.tile-grid.print{grid-template-columns:repeat(4,1fr);}
.tile{display:block; text-decoration:none; color:inherit;}
.tile .thumb{border-radius:16px; overflow:hidden; aspect-ratio:1/1; border:1px solid var(--line); transition:transform .2s ease, box-shadow .2s ease;}
.tile .thumb img{width:100%; height:100%; object-fit:cover;}
.tile:hover .thumb{transform:translateY(-3px); box-shadow:var(--shadow-md);}
.tile .cap{font-size:12.5px; font-weight:700; color:var(--ink); margin-top:8px; text-align:center; line-height:1.3;}
.tile-grid.print .tile .thumb{aspect-ratio:4/3;}

.section-dark .tile .thumb{background:rgba(255,255,255,.05); border-color:rgba(255,255,255,.1);}
.section-dark .tile:hover .thumb{border-color:rgba(255,144,23,.5); box-shadow:none;}
.section-dark .tile .cap{color:#fff;}

.tile-more{border-radius:16px; background:#fff; border:1px solid var(--line); padding:14px 12px; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; gap:6px;}
.tile-more h5{font-size:11.5px; font-weight:700; color:var(--ink); line-height:1.3; margin:0;}
.tile-more p{font-size:10.5px; color:var(--text); margin:0; line-height:1.4;}
.tile-more .btn{font-size:10.5px; padding:6px 12px; margin-top:2px;}
.section-dark .tile-more{background:rgba(255,255,255,.05); border-color:rgba(255,255,255,.1);}
.section-dark .tile-more h5{color:#fff;}
.section-dark .tile-more p{color:#9C9DA1;}

/* combo/steps/testimonials dark variants */
body.v2 .variant-card,.section-dark .variant-card{background:rgba(255,255,255,.04); border-color:rgba(255,255,255,.09); color:#fff;}
body.v2 .variant-step,.section-dark .variant-step{background:rgba(255,255,255,.06);}
body.v2 .variant-step p,.section-dark .variant-step p{color:#9C9DA1;}
body.v2 .variant-note,.section-dark .variant-note{color:#8B8E92;}

.section-dark .steps-row p{color:#B7BABE;}
.section-dark .steps-row h4{color:#fff;}

.testi-grid.dark .testi-card{background:rgba(255,255,255,.04); border-color:rgba(255,255,255,.09); box-shadow:none; transition:transform .25s ease, background .25s ease;}
.testi-grid.dark .testi-card:hover{background:rgba(255,255,255,.07); transform:translateY(-4px);}
.testi-grid.dark .testi-card p{color:#DADCDE;}
.testi-grid.dark .quote-mark{font-family:'Unbounded',sans-serif; font-size:44px; color:rgba(255,144,23,.3); line-height:1; margin-bottom:2px;}
.testi-grid.dark .testi-foot .name{color:#fff;}
.testi-grid.dark .testi-foot .role{color:#9C9DA1;}

.section-dark .contact-row{border-color:rgba(255,255,255,.1);}
.section-dark .contact-row .ic{background:rgba(226,35,26,.18); color:#FF6A5E;}
.section-dark .contact-row .t2{color:#9C9DA1;}
.section-dark .map-box{background:#26282B; border-color:rgba(255,255,255,.12);}
.section-dark .btn-outline{color:#fff; border-color:rgba(255,255,255,.3);}

@media (max-width:992px){
  .tile-grid{grid-template-columns:repeat(3,1fr);}
  .tile-grid.tech{grid-template-columns:repeat(4,1fr);}
  .tile-grid.print{grid-template-columns:repeat(2,1fr);}
  .hero-stats-pills{margin-top:24px;}
  .hero-stats-pills .wrap{grid-template-columns:repeat(2,1fr); row-gap:18px;}
  .stat-pill:nth-child(4n){border-right:1px solid rgba(255,255,255,.16); padding-right:22px;}
  .stat-pill:nth-child(2n){border-right:none; padding-right:0;}
  .stat-pill:nth-child(2n+1){padding-left:0;}
}
@media (max-width:640px){
  body.v2 .hero-checks{grid-template-columns:1fr;}
  .tile-grid, .tile-grid.tech{grid-template-columns:repeat(2,1fr);}
  .tile-grid.print{grid-template-columns:1fr 1fr;}
  .hero-stats-pills .wrap{grid-template-columns:repeat(2,1fr); row-gap:0; padding-top:14px; padding-bottom:14px;}
  .stat-pill{padding:12px 14px !important; border-right:1px solid rgba(255,255,255,.16) !important; border-top:none;}
  .stat-pill:nth-child(2n){border-right:none !important; padding-right:0 !important;}
  .stat-pill:nth-child(2n+1){padding-left:0 !important;}
  .stat-pill:nth-child(n+3){border-top:1px solid rgba(255,255,255,.16);}
  .stat-pill .num{font-size:13px;}
  .stat-pill .lbl{font-size:10px;}
}

/* eyebrow marquee — static kicker label above section headings (was a self-scrolling ticker, animation removed) */
.eyebrow-marquee{display:inline-block; vertical-align:top; max-width:100%; margin:0 auto 12px;}
.eyebrow-marquee.left{display:block; margin:0 0 12px;}
.eyebrow-track{display:inline-flex; align-items:center; gap:10px;}
.eyebrow-track .txt{color:var(--red); font-family:'Unbounded',sans-serif; font-weight:700; font-size:11.5px; letter-spacing:.06em; text-transform:uppercase;}
.eyebrow-track .star{display:inline-block; color:var(--orange); font-size:13px; line-height:1;}
.section-dark .eyebrow-track .txt{color:#FF9B7A;}
.section-dark .eyebrow-track .star{color:#FF9017;}
@keyframes eyebrowSpin{from{transform:rotate(0deg);} to{transform:rotate(360deg);}}

/* hand-drawn circle+arrow decoration around a key hero word */
.word-circle{position:relative; z-index:0; display:inline-block; isolation:isolate;}
.word-circle svg{position:absolute; z-index:-1; left:50%; top:50%; width:122%; height:175%; transform:translate(-50%,-50%) rotate(-3deg); overflow:visible; pointer-events:none; color:#fff;}
.word-circle .circle-path{fill:none; stroke-width:2.5; stroke-linecap:round; stroke-dasharray:480; stroke-dashoffset:480; animation:circleDraw 1.2s .6s ease-out forwards;}
.word-circle .circle-arrow{opacity:0; animation:circleArrowIn .3s .95s ease-out forwards;}
@keyframes circleDraw{to{stroke-dashoffset:0;}}
@keyframes circleArrowIn{to{opacity:1;}}
@media (prefers-reduced-motion: reduce){
  .word-circle .circle-path{animation:none; stroke-dashoffset:0;}
  .word-circle .circle-arrow{animation:none; opacity:1;}
}

/* material cards (materials teaser) — photo card with title, blurb, arrow link */
.mat-card-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:20px; margin-bottom:36px;}
.mat-card-grid.roll{grid-template-columns:repeat(5,1fr);}
.mat-card{display:block; text-decoration:none; color:inherit; border-radius:20px; overflow:hidden; background:#fff; border:1px solid var(--line); box-shadow:var(--shadow-sm); transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease;}
.mat-card .thumb{aspect-ratio:16/12; overflow:hidden;}
.mat-card .thumb img{width:100%; height:100%; object-fit:cover; transition:transform .4s ease;}
.mat-card .body{padding:18px 20px 20px;}
.mat-card h4{font-family:'Unbounded',sans-serif; font-size:14.5px; margin:0 0 6px; color:var(--ink); line-height:1.3;}
.mat-card p{font-size:12px; color:var(--text); margin:0; line-height:1.55; min-height:37px;}
.mat-card .more{display:inline-flex; align-items:center; gap:6px; margin-top:12px; font-size:12px; font-weight:700; color:var(--red);}
.mat-card:hover{transform:translateY(-6px); box-shadow:var(--shadow-md); border-color:rgba(226,35,26,.28);}
.mat-card:hover .thumb img{transform:scale(1.07);}
.mat-card:hover .more{gap:9px;}
.mat-card.promo{position:relative; background-size:cover; background-position:center; color:#fff; padding:24px 22px; display:flex; flex-direction:column; justify-content:center; gap:8px; box-shadow:var(--shadow-md); isolation:isolate;}
.mat-card.promo::before{content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(160deg, rgba(226,35,26,.92) 0%, rgba(240,81,28,.88) 55%, rgba(23,13,11,.85) 100%);}
.mat-card.promo h4{font-size:15.5px; color:#fff; margin:0;}
.mat-card.promo p{color:rgba(255,255,255,.85); min-height:0;}
.mat-card.promo .btn{align-self:flex-start; margin-top:8px;}
.mat-card.promo:hover{transform:translateY(-6px); box-shadow:0 22px 44px rgba(226,35,26,.35);}

/* photo + copy promo banner (materials page — "test cut before print run") */
.test-banner{display:grid; grid-template-columns:1.1fr 1fr; align-items:stretch; border-radius:28px; overflow:hidden; background:#170D0B; box-shadow:var(--shadow-lg);}
.test-banner__media{position:relative; min-height:320px;}
.test-banner__media img{width:100%; height:100%; object-fit:cover; display:block;}
.test-banner__body{padding:44px 44px; display:flex; flex-direction:column; align-items:flex-start; justify-content:center; color:#fff;}
.test-banner__body h2{font-family:'Unbounded',sans-serif; font-size:clamp(22px,2.6vw,28px); line-height:1.3; margin:10px 0 26px; color:#fff;}
@media (max-width:768px){
  .test-banner{grid-template-columns:1fr;}
  .test-banner__media{min-height:220px;}
  .test-banner__body{padding:32px 26px;}
}

/* two-up promo row (materials page — "not found" + "download compatibility table") */
.dual-cta{display:grid; grid-template-columns:1fr 1fr; gap:22px;}
.dual-cta__item{background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:28px; box-shadow:var(--shadow-sm);}
.dual-cta__item h4{font-family:'Unbounded',sans-serif; font-size:16px; margin:0 0 8px;}
.dual-cta__item p{font-size:13.5px; color:var(--text); margin:0 0 18px; line-height:1.6;}
@media (max-width:768px){
  .dual-cta{grid-template-columns:1fr;}
}

/* full material catalog (material-category.html) — search, quick jump nav, per-category blocks */
.mat-search{position:relative; max-width:560px; margin:28px 0 0;}
.mat-search input{width:100%; box-sizing:border-box; background:rgba(255,255,255,.08); border:1.5px solid rgba(255,255,255,.18); border-radius:var(--radius-pill); padding:16px 20px 16px 50px; font-size:14.5px; color:#fff; font-family:inherit;}
.mat-search input::placeholder{color:#9C9DA1;}
.mat-search input:focus{outline:none; border-color:var(--orange); background:rgba(255,255,255,.12);}
.mat-search svg{position:absolute; left:19px; top:50%; transform:translateY(-50%); width:18px; height:18px; stroke:#9C9DA1; fill:none; stroke-width:1.8; pointer-events:none;}
.mat-search .count{position:absolute; right:8px; top:50%; transform:translateY(-50%); background:var(--grad); color:#fff; font-size:11px; font-weight:700; padding:5px 12px; border-radius:var(--radius-pill); white-space:nowrap;}
.mat-search--light{max-width:520px; margin:26px 0 0;}
.mat-search--light input{background:#fff; border-color:var(--line); color:var(--ink); box-shadow:var(--shadow-sm);}
.mat-search--light input::placeholder{color:#B7A9A2;}
.mat-search--light input:focus{border-color:var(--red);}
.mat-search--light svg{stroke:#B7A9A2;}

.side-nav-label{font-family:'Unbounded',sans-serif; font-size:10.5px; font-weight:700; text-transform:uppercase; letter-spacing:.05em; color:var(--red); padding:16px 14px 8px;}
.side-nav-label:first-child{padding-top:8px;}

.cat-jump{display:flex; flex-wrap:wrap; gap:9px; margin-bottom:44px;}
.cat-jump a{display:inline-block; padding:9px 16px; border-radius:var(--radius-pill); border:1.5px solid var(--line); background:#fff; color:var(--ink); text-decoration:none; font-size:12.5px; font-weight:600; transition:background .2s ease, color .2s ease, border-color .2s ease;}
.cat-jump a:hover{background:var(--grad); color:#fff; border-color:transparent;}

.mat-cat-block{margin-bottom:52px; scroll-margin-top:100px;}
.mat-cat-block:last-child{margin-bottom:0;}
.mat-cat-head{display:flex; align-items:center; gap:16px; margin-bottom:20px;}
.mat-cat-head__photo{width:60px; height:60px; border-radius:16px; overflow:hidden; flex:none; box-shadow:var(--shadow-sm);}
.mat-cat-head__photo img{width:100%; height:100%; object-fit:cover;}
.mat-cat-head__count{display:block; color:var(--red); font-family:'Unbounded',sans-serif; font-weight:700; font-size:11px; letter-spacing:.05em; text-transform:uppercase; margin-bottom:3px;}
.mat-cat-head h3{font-size:19px; margin:0;}

.mat-item-grid{display:grid; grid-template-columns:repeat(auto-fill,minmax(130px,1fr)); gap:14px;}
.mat-item-card{display:block; text-decoration:none; color:inherit; cursor:pointer;}
.mat-item-card .ph{aspect-ratio:1/1; border-radius:14px; background:var(--lav); border:1.5px dashed var(--line); display:flex; align-items:center; justify-content:center; color:#D9C9C0; transition:border-color .2s ease, background .2s ease, color .2s ease;}
.mat-item-card .name{margin-top:9px; font-size:12px; font-weight:600; color:var(--ink); text-align:center; line-height:1.35;}
.mat-item-card:hover .ph{border-color:var(--red); border-style:solid; background:#fff; color:var(--red);}
.mat-item-card:hover .name{color:var(--red);}
.mat-item-card .ph.has-photo{border-style:solid; border-color:var(--line); background:#fff; padding:0; overflow:hidden;}
.mat-item-card .ph.has-photo img{width:100%; height:100%; object-fit:cover; transition:transform .3s ease;}
.mat-item-card:hover .ph.has-photo{border-color:var(--red);}
.mat-item-card:hover .ph.has-photo img{transform:scale(1.06);}
.mat-item-card.is-hidden{display:none;}
.mat-cat-block.is-hidden{display:none;}
#matNoResults{display:none; text-align:center; padding:40px 0; color:var(--text); font-size:14px;}
#matNoResults.is-visible{display:block;}
@media (max-width:640px){
  .mat-item-grid{grid-template-columns:repeat(auto-fill,minmax(100px,1fr)); gap:10px;}
}

/* numbered tech tiles (raskroy teaser) — big faded index number, lights up orange on hover */
.num-tile-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:24px 22px; margin-bottom:32px;}
.num-tile{display:block; text-decoration:none; text-align:center;}
.num-tile .num{font-family:'Unbounded',sans-serif; font-weight:800; font-size:56px; line-height:1; color:rgba(255,255,255,.14); margin-bottom:8px; transition:color .3s ease;}
.num-tile .card{position:relative; z-index:1; width:100%; border-radius:20px; overflow:hidden; aspect-ratio:3/4; background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.1); box-shadow:0 20px 40px rgba(0,0,0,.25); transition:transform .25s ease, border-color .25s ease;}
.num-tile .card img{width:100%; height:100%; object-fit:cover;}
.num-tile .card.icon-card{color:var(--orange);}
.num-tile .card.icon-card svg{position:absolute; top:50%; left:50%; transform:translate(-50%,-50%);}
.num-tile .cap{margin-top:16px; font-family:'Unbounded',sans-serif; font-size:14.5px; font-weight:700; color:#fff; line-height:1.3;}
.num-tile .more{display:inline-flex; align-items:center; gap:6px; margin-top:12px; font-size:12px; font-weight:700; padding:9px 18px; border-radius:999px; border:1.5px solid rgba(255,255,255,.25); color:#fff; transition:background .2s ease, border-color .2s ease, box-shadow .2s ease;}
.num-tile:hover .num{color:var(--orange);}
.num-tile:hover .card{transform:translateY(-5px); border-color:rgba(255,144,23,.5);}
.num-tile:hover .more{background:var(--grad); border-color:transparent; box-shadow:0 12px 24px rgba(226,35,26,.35);}

/* compact scrollable variant — smaller tiles, all in a row */
.num-tile-grid.mini.scroll{display:flex; gap:16px; overflow-x:auto; scroll-snap-type:x mandatory; padding-bottom:4px; scrollbar-width:none; max-width:none; margin-left:0; margin-right:0;}
.num-tile-grid.mini.scroll::-webkit-scrollbar{display:none;}
.num-tile-grid.mini.scroll .num-tile{flex:0 0 150px; scroll-snap-align:start;}
.num-tile-grid.mini.scroll .num-tile .num{font-size:30px; margin-bottom:4px;}
.num-tile-grid.mini.scroll .num-tile .card{aspect-ratio:1/1; border-radius:14px;}
.num-tile-grid.mini.scroll .num-tile .cap{font-size:12.5px; margin-top:10px;}
.num-tile-grid.mini.scroll .num-tile .more{font-size:10.5px; padding:7px 13px; margin-top:8px;}
@media (max-width:640px){
  .num-tile-grid.mini.scroll .num-tile{flex:0 0 118px;}
}

/* print showcase block — light section + dark horizontal service cards */
.print-showcase{position:relative;overflow:hidden;background:linear-gradient(180deg,#fffaf7 0%,#fff6f0 100%);}
.print-showcase::before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at 14% 5%,rgba(255,144,23,.08),transparent 28%),radial-gradient(circle at 92% 90%,rgba(226,35,26,.06),transparent 26%);}
.print-showcase .wrap{position:relative;z-index:1;}
.print-showcase .eyebrow-track .txt{color:var(--red);}
.print-showcase .eyebrow-track .star{color:var(--orange);}
.test-banner__body .eyebrow-track .txt{color:#FF9B7A;}
.test-banner__body .eyebrow-track .star{color:var(--orange);}
.print-head{display:flex;align-items:flex-end;justify-content:space-between;gap:26px;flex-wrap:wrap;margin-bottom:34px;}
.print-head__content{max-width:760px;}
.print-head h2{margin:0;font-size:clamp(28px,4vw,46px);line-height:1.12;color:var(--ink);}
.print-head p{margin:12px 0 0;max-width:650px;color:var(--text);font-size:15px;line-height:1.7;}
.print-head__link{display:inline-flex;align-items:center;gap:8px;text-decoration:none;color:var(--red);font-family:'Unbounded',sans-serif;font-weight:700;font-size:13px;white-space:nowrap;padding:11px 0;transition:transform .2s ease,color .2s ease;}
.print-head__link span{color:var(--orange);transition:transform .2s ease;}
.print-head__link:hover{transform:translateY(-2px);color:#b91e17;}
.print-head__link:hover span{transform:translateX(3px);}

/* Print cards layout: 2 large wide cards, then 3 regular cards, then 2 large wide cards, with a full-width CTA below. */
.print-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));grid-template-rows:198px 182px 198px 118px;gap:15px;grid-template-areas:
  "uvflat uvflat uvflat uvroll uvroll uvroll"
  "uvdtf uvdtf dtf dtf subl subl"
  "wide wide wide engr engr engr"
  "promo promo promo promo promo promo";}

.print-card{position:relative;display:block;text-decoration:none;color:#fff;border-radius:24px;overflow:hidden;background:#170f0d;border:1px solid rgba(49,24,18,.10);box-shadow:0 14px 30px rgba(88,47,33,.10);isolation:isolate;transition:transform .28s ease,box-shadow .28s ease,border-color .28s ease;}
.print-card::before{content:"";position:absolute;inset:0;z-index:2;pointer-events:none;background:linear-gradient(90deg,#17100e 0%,#17100e 28%,rgba(23,16,14,.95) 38%,rgba(23,16,14,.72) 52%,rgba(23,16,14,.26) 72%,rgba(23,16,14,.03) 100%);}
.print-card::after{content:"";position:absolute;inset:0;z-index:3;pointer-events:none;border-radius:inherit;box-shadow:inset 0 0 0 1px rgba(255,255,255,.045);}
.print-card:hover{transform:translateY(-5px);border-color:rgba(226,35,26,.22);box-shadow:0 22px 42px rgba(88,47,33,.16);}

.print-card__media{position:absolute;z-index:1;top:0;right:0;bottom:0;width:68%;overflow:hidden;background:#211612;-webkit-mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.2) 12%,rgba(0,0,0,.76) 30%,#000 46%,#000 100%);mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.2) 12%,rgba(0,0,0,.76) 30%,#000 46%,#000 100%);}
.print-card__media::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,rgba(0,0,0,.02),rgba(0,0,0,.12));}
.print-card__media img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s cubic-bezier(.2,.8,.2,1),filter .35s ease;}
.print-card:hover .print-card__media img{transform:scale(1.045);filter:saturate(1.08) contrast(1.03);}

.print-card__body{position:relative;z-index:4;width:42%;height:100%;padding:44px 18px 17px 18px;display:flex;flex-direction:column;justify-content:flex-end;box-sizing:border-box;}
.print-card__index{position:absolute;z-index:4;top:13px;left:17px;font-family:'Unbounded',sans-serif;font-weight:800;font-size:28px;line-height:1;color:rgba(255,255,255,.25);letter-spacing:-.04em;}
.print-card__index::after{content:"";display:block;width:18px;height:2px;margin-top:7px;border-radius:20px;background:linear-gradient(90deg,var(--red),var(--orange));}
.print-card__tag{display:none;}
.print-card h4{font-family:'Unbounded',sans-serif;font-size:13.5px;line-height:1.24;margin:0 0 8px;color:#fff;text-shadow:0 1px 8px rgba(0,0,0,.22);}
.print-card p{margin:0;font-size:11px;line-height:1.5;color:rgba(255,255,255,.79);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;}

.print-card--uvflat{grid-area:uvflat;}
.print-card--uvroll{grid-area:uvroll;}
.print-card--uvdtf{grid-area:uvdtf;}
.print-card--dtf{grid-area:dtf;}
.print-card--sublimation{grid-area:subl;}
.print-card--wideformat{grid-area:wide;}
.print-card--engraving{grid-area:engr;}
.print-card--promo{grid-area:promo;}

/* top and bottom rows get more photo space and a bit more room for text */
.print-card--uvflat .print-card__media,.print-card--uvroll .print-card__media,.print-card--wideformat .print-card__media,.print-card--engraving .print-card__media{width:72%;}
.print-card--uvflat .print-card__body,.print-card--uvroll .print-card__body,.print-card--wideformat .print-card__body,.print-card--engraving .print-card__body{width:37%;padding-right:22px;}
.print-card--uvflat h4,.print-card--uvroll h4,.print-card--wideformat h4,.print-card--engraving h4{font-size:14.5px;}
.print-card--uvflat p,.print-card--uvroll p,.print-card--wideformat p,.print-card--engraving p{font-size:11.3px;}

/* middle row keeps the current more compact look */
.print-card--uvdtf .print-card__media,.print-card--dtf .print-card__media,.print-card--sublimation .print-card__media{width:63%;}
.print-card--uvdtf .print-card__body,.print-card--dtf .print-card__body,.print-card--sublimation .print-card__body{width:48%;}

/* compact CTA below the cards */
.print-card--promo{display:flex;align-items:stretch;justify-content:stretch;width:100%;background:linear-gradient(135deg,#f13a21 0%,#ff8c18 100%);border:0;box-shadow:0 18px 38px rgba(226,35,26,.18);min-height:118px;}
.print-card--promo::before{z-index:0;background:radial-gradient(circle at 85% 20%,rgba(255,255,255,.18),transparent 22%),radial-gradient(circle at 14% 80%,rgba(255,255,255,.09),transparent 34%),linear-gradient(180deg,transparent,rgba(105,20,8,.10));}
.print-card--promo::after{box-shadow:inset 0 0 0 1px rgba(255,255,255,.13);}
.print-card--promo .print-card__body{z-index:2;width:100%;height:100%;padding:14px 28px;display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"tag btn" "title btn";grid-template-rows:min-content min-content;column-gap:30px;row-gap:3px;align-items:center;align-content:center;}
.print-card--promo .print-card__tag{grid-area:tag;display:inline-flex;align-items:center;gap:8px;margin:0;color:rgba(255,255,255,.82);font-family:'Unbounded',sans-serif;font-size:10px;font-weight:800;letter-spacing:.07em;text-transform:uppercase;}
.print-card--promo .print-card__tag::before{content:"";width:8px;height:8px;border-radius:50%;background:#fff;}
.print-card--promo h4{grid-area:title;font-size:19px;line-height:1.06;margin:0;color:#fff;max-width:360px;}
.print-card--promo p{display:none;}
.print-card--promo .btn{grid-area:btn;justify-self:end;align-self:center;margin:0;background:#fff;color:var(--red);border-color:#fff;box-shadow:0 8px 18px rgba(121,29,12,.14);}

@media (max-width:1120px){
  .print-grid{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:198px 182px 182px 198px 220px;grid-template-areas:
    "uvflat uvroll"
    "uvdtf dtf"
    "subl subl"
    "wide engr"
    "promo promo";}
  .print-card--uvflat .print-card__media,.print-card--uvroll .print-card__media,.print-card--wideformat .print-card__media,.print-card--engraving .print-card__media,.print-card--sublimation .print-card__media{width:68%;}
  .print-card--uvflat .print-card__body,.print-card--uvroll .print-card__body,.print-card--wideformat .print-card__body,.print-card--engraving .print-card__body,.print-card--sublimation .print-card__body{width:42%;}
  .print-card--promo{width:100%;min-height:140px;}
  .print-card--promo .print-card__body{width:100%;min-height:140px;padding:18px 24px;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"tag btn" "title btn";grid-template-rows:min-content min-content;align-content:center;row-gap:3px;}
}
@media (max-width:760px){
  .print-grid{grid-template-columns:1fr;grid-template-rows:none;grid-template-areas:none;}
  .print-card--uvflat,.print-card--uvroll,.print-card--uvdtf,.print-card--dtf,.print-card--sublimation,.print-card--wideformat,.print-card--engraving,.print-card--promo{grid-area:auto;min-height:215px;}
  .print-card__media,.print-card--uvflat .print-card__media,.print-card--uvroll .print-card__media,.print-card--uvdtf .print-card__media,.print-card--dtf .print-card__media,.print-card--sublimation .print-card__media,.print-card--wideformat .print-card__media,.print-card--engraving .print-card__media{width:70%;}
  .print-card__body,.print-card--uvflat .print-card__body,.print-card--uvroll .print-card__body,.print-card--uvdtf .print-card__body,.print-card--dtf .print-card__body,.print-card--sublimation .print-card__body,.print-card--wideformat .print-card__body,.print-card--engraving .print-card__body{width:54%;padding:48px 16px 16px;}
  .print-card h4,.print-card--uvflat h4,.print-card--uvroll h4,.print-card--wideformat h4,.print-card--engraving h4{font-size:13px;}
  .print-card p,.print-card--uvflat p,.print-card--uvroll p,.print-card--wideformat p,.print-card--engraving p{font-size:11px;}
  .print-card--promo{width:100%;min-height:210px;}
  .print-card--promo .print-card__body{width:100%;min-height:210px;padding:24px 22px;display:flex;align-items:flex-start;justify-content:center;}
  .print-card--promo p{display:block;font-size:12px;line-height:1.55;color:rgba(255,255,255,.92);max-width:320px;margin-top:8px;}
  .print-card--promo .btn{margin-top:14px;align-self:flex-start;justify-self:auto;}
  .mat-card-grid,.mat-card-grid.roll{grid-template-columns:1fr;}
  .num-tile-grid{grid-template-columns:1fr;max-width:280px;margin-left:auto;margin-right:auto;}
}


/* route button: visible on the light CTA surface inside the dark contacts section */
.section-dark .btn-route,.btn-route{background:#241416;color:#fff;border:1.5px solid #241416;box-shadow:0 8px 20px rgba(27,14,17,.14);}
.section-dark .btn-route:hover,.btn-route:hover{background:var(--red);border-color:var(--red);color:#fff;transform:translateY(-2px);}
.section-dark .btn-route .icon,.btn-route .icon{stroke:currentColor;}

/* Knowledge-base list is an actual navigation list */
.blog-list a{position:relative;padding-right:34px;transition:color .2s ease,padding-left .2s ease,background .2s ease;}
.blog-list a::after{content:"→";position:absolute;right:4px;top:50%;transform:translateY(-50%) translateX(-4px);color:var(--orange);opacity:0;transition:opacity .2s ease,transform .2s ease;}
.blog-list a:hover{color:#fff;padding-left:6px;}
.blog-list a:hover::after{opacity:1;transform:translateY(-50%) translateX(0);}

/* Knowledge article pages */
.article-page-main{background:var(--lav2);padding:56px 0 84px;}
.article-shell{max-width:920px;margin:0 auto;}
.article-breadcrumb{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:28px;font-size:12px;color:#8b7770;}
.article-breadcrumb a{color:var(--red);text-decoration:none;font-weight:700;}
.article-hero{position:relative;overflow:hidden;background:#fff;border:1px solid var(--line);border-radius:30px;padding:46px 48px 40px;box-shadow:var(--shadow-md);}
.article-hero::before{content:"";position:absolute;width:260px;height:260px;right:-80px;top:-100px;border-radius:50%;background:radial-gradient(circle,rgba(255,144,23,.2),rgba(226,35,26,.08) 45%,transparent 68%);}
.article-kicker{position:relative;z-index:1;display:inline-flex;align-items:center;gap:8px;margin-bottom:18px;font-family:'Unbounded',sans-serif;font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--red);}
.article-kicker::before{content:"";width:10px;height:10px;border-radius:50%;background:var(--grad);}
.article-hero h1{position:relative;z-index:1;font-family:'Unbounded',sans-serif;font-size:clamp(28px,5vw,50px);line-height:1.08;letter-spacing:-.03em;margin:0;color:var(--ink);max-width:780px;}
.article-meta{position:relative;z-index:1;display:flex;gap:16px;flex-wrap:wrap;margin-top:20px;color:#8b7770;font-size:12px;}
.article-lead{position:relative;z-index:1;margin:24px 0 0;font-size:17px;line-height:1.75;color:#5f4b45;max-width:760px;}
.article-body{margin-top:24px;background:#fff;border:1px solid var(--line);border-radius:30px;padding:42px 48px;box-shadow:var(--shadow-sm);}
.article-body h2{font-family:'Unbounded',sans-serif;font-size:22px;line-height:1.3;margin:36px 0 14px;color:var(--ink);}
.article-body h2:first-child{margin-top:0;}
.article-body h3{font-family:'Unbounded',sans-serif;font-size:16px;line-height:1.35;margin:28px 0 10px;color:var(--ink);}
.article-body p{font-size:15px;line-height:1.8;color:#5f4b45;margin:0 0 16px;}
.article-body ul,.article-body ol{margin:10px 0 20px 20px;color:#5f4b45;font-size:15px;line-height:1.75;}
.article-note{margin:26px 0;padding:20px 22px;border-radius:18px;background:#fff4ec;border:1px solid rgba(240,81,28,.18);color:#5f4b45;font-size:14px;line-height:1.7;}
.article-note b{color:var(--ink);}
.article-cta{margin-top:24px;border-radius:28px;padding:30px;background:linear-gradient(135deg,#1b0e11,#2b1715);color:#fff;display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap;}
.article-cta h3{font-family:'Unbounded',sans-serif;font-size:20px;margin:0 0 7px;color:#fff;}
.article-cta p{margin:0;color:rgba(255,255,255,.72);font-size:13px;}
.article-back{display:inline-flex;align-items:center;gap:8px;margin-top:22px;color:var(--red);font-weight:800;text-decoration:none;font-size:13px;}
@media(max-width:700px){
  .article-page-main{padding:36px 0 56px;}
  .article-hero,.article-body{padding:28px 22px;border-radius:22px;}
  .article-lead{font-size:15px;}
  .article-body h2{font-size:19px;}
  .article-cta{padding:24px 22px;}
}
