/* Dirección visual: taller gráfico, tinta roja y composición editorial. */
body{background:#fff}
.header{border-bottom:0;box-shadow:0 1px 0 #20202212}
.hero{position:relative;isolation:isolate;padding-block:85px 95px;gap:70px}
.hero::before{content:"";position:absolute;z-index:-2;inset:0 calc((min(1240px,100vw - 96px) - 100vw)/2);background:radial-gradient(circle at 80% 28%,#fa15281b,transparent 43%),linear-gradient(90deg,#20202206 1px,transparent 1px),linear-gradient(#20202206 1px,transparent 1px);background-size:auto,42px 42px,42px 42px}
.hero::after{content:"";position:absolute;right:-15px;top:28px;width:155px;height:120px;background:radial-gradient(#fa1528 1.3px,transparent 1.8px) 0 0/9px 9px;z-index:-1;opacity:.5}
.hero h1{letter-spacing:-5px;font-weight:900}.hero h1 em{position:relative;display:inline-block;isolation:isolate;color:white;padding:0 12px 7px 5px;margin-top:8px}
.hero h1 em::before{content:"";position:absolute;inset:0 -6px;z-index:-1;background:var(--red);transform:rotate(-2deg)}
.hero .eyebrow{letter-spacing:2px}.hero .intro{color:#4f4f54;background:#ffffff70}
.hero-note{border-top:1px solid #20202225;padding-top:22px;max-width:340px}.hero-note strong{color:var(--red)}
.hero-art{border-radius:0;transform:rotate(3deg);background:#202022;box-shadow:13px 15px 0 #fa1528;padding:25px;overflow:visible}
.hero-art::before{content:"";position:absolute;width:95px;height:26px;top:-11px;left:40%;background:#fa1528;transform:rotate(-8deg);z-index:2}
.hero-image{aspect-ratio:1.1;background:#fff;transform:rotate(-5deg);padding:40px 85px 45px 20px;margin-block:23px 30px;box-shadow:0 10px 24px #0002}
.hero-image img{object-fit:contain}.art-top>span:last-child{color:var(--red)}.art-label{font-size:10px;letter-spacing:1.4px}.round-arrow{color:white;border-color:var(--red);background:var(--red)}
.product-inset{position:absolute;right:-20px;top:135px;width:42%;margin:0;background:white;padding:14px 12px 10px;border:1px solid #eee;box-shadow:0 8px 25px #0002;transform:rotate(9deg)}
.product-inset img{height:140px;width:100%;object-fit:contain}.product-inset figcaption{display:block;margin-top:8px;font-size:9px;font-weight:700;letter-spacing:1px;text-align:center;color:var(--ink)}
.discipline-band{background:var(--red);color:white;padding-block:27px}.discipline-band b{color:var(--ink)}
.section-heading h2,.about h2{font-weight:800}.section-heading .eyebrow,.about .eyebrow,.contact .eyebrow{color:#ce1021}
.services{border-top:0;gap:15px}.services article,.services article+article{position:relative;padding:28px 23px;background:#f5f5f6;border:1px solid #e6e6e8;border-top:3px solid var(--ink);transition:transform .25s,border-color .25s,box-shadow .25s}
.services article:hover{transform:translateY(-7px);border-top-color:var(--red);box-shadow:0 12px 25px #0000000b}.service-number{font-size:38px;font-weight:800;letter-spacing:-2px;margin-bottom:28px;color:#d71023}.services a{border-top:1px solid #ddd;padding-top:18px}
.work-section{background:#202022;color:white;position:relative;isolation:isolate}.work-section::before{content:"";position:absolute;inset:0;pointer-events:none;z-index:-1;background:radial-gradient(#ffffff19 1px,transparent 1.3px) 0 0/12px 12px;mask-image:linear-gradient(120deg,#000,transparent 55%)}
.work-section .eyebrow{color:#ff6673}.work-section .text-link{color:white;border-bottom:1px solid #fa1528;padding-bottom:10px}.work-grid{gap:42px 35px}.work-image{border-radius:0;background:white;box-shadow:7px 7px 0 #fa1528;padding:30px}.work-wide .work-image{height:390px}.work-section figcaption span{color:#bcbcc3}.work-section figcaption h3{font-size:28px}
.about{position:relative}.about::after{content:"";position:absolute;width:135px;height:80px;bottom:38px;left:0;background:repeating-linear-gradient(135deg,transparent 0 7px,#fa1528 7px 9px);opacity:.12;pointer-events:none}.about-values span{border-color:#f8b8be;background:#fff7f8}
.catalog-section{position:relative;isolation:isolate;overflow:hidden}.catalog-section::before{content:"";position:absolute;inset:0;z-index:-1;background:repeating-radial-gradient(circle at 100% 115%,transparent 0 36px,#ffffff24 37px 38px,transparent 39px 73px)}.catalog-type{font-weight:900;line-height:1.03}.catalog-type span{background:white;padding-inline:12px;box-decoration-break:clone}
.contact{position:relative}.contact h2{font-weight:900}.contact address{background:#f5f5f6;padding:28px;border-top:4px solid var(--red)}
.services-intro{position:relative;isolation:isolate;padding-block:45px 55px}.services-intro::before{content:"";position:absolute;inset:0 -25px;z-index:-1;background:radial-gradient(circle at 92% 20%,#fa152813,transparent 48%),linear-gradient(90deg,#20202205 1px,transparent 1px),linear-gradient(#20202205 1px,transparent 1px);background-size:auto,35px 35px,35px 35px}.services-intro h1{font-weight:900}.service-tabs a{background:white;border-radius:3px;box-shadow:3px 3px 0 #20202212}.service-tabs a:hover{box-shadow:3px 3px 0 var(--red)}
.service-detail{border-top:2px solid var(--ink)}.service-summary>.eyebrow{color:#d71023}.service-summary h2{font-weight:800}.product-card>div{border-radius:0;border:1px solid #e0e0e2;box-shadow:5px 5px 0 #f0f0f2;transition:box-shadow .25s,transform .25s}.product-card:hover>div{box-shadow:5px 5px 0 #fa1528;transform:translateY(-3px)}.product-card figcaption{border-left:3px solid var(--red);padding-left:10px}
.service-closing{background:var(--ink);color:white;margin-bottom:55px;padding:45px 22px;background-image:radial-gradient(#ffffff18 1px,transparent 1.4px);background-size:12px 12px}
@media(max-width:1050px){.hero{gap:40px}.hero::before{inset-inline:-30px}.services{gap:18px}.services article:nth-child(3){padding-left:23px;border-left:1px solid #e6e6e8}.product-inset{right:-12px}.product-inset img{height:115px}}
@media(max-width:720px){.hero{padding-block:45px 65px;gap:50px}.hero::before{inset-inline:-20px}.hero::after{right:0;top:350px;width:90px}.hero h1{letter-spacing:-3px}.hero-art{width:calc(100% - 24px);max-width:440px;box-shadow:8px 10px 0 var(--red);padding:20px}.hero-image{aspect-ratio:1.3;padding:22px 75px 25px 10px}.product-inset{right:-10px;top:100px;width:40%;padding:10px}.product-inset img{height:100px}.product-inset figcaption{font-size:8px;letter-spacing:.5px}.services{gap:12px}.services article,.services article+article,.services article:nth-child(3){padding:20px 16px}.services h3{font-size:20px}.services p{font-size:14px}.service-number{font-size:30px}.work-wide .work-image{height:auto}.work-image{padding:18px;box-shadow:5px 5px 0 var(--red)}.work-section figcaption h3{font-size:23px}.contact address{padding:22px}.services-intro::before{inset-inline:-20px}.about::after{display:none}.catalog-inner h2{font-size:36px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important}}

/* Keep decorative print layers within the viewport. */
body{overflow-x:clip}

/* One uninterrupted hero photograph; shared editorial styling for services. */
.hero-art{transform:none;box-shadow:10px 10px 0 var(--red);padding:22px}
.hero-art::before{display:none}
.hero-image{transform:none;padding:0;aspect-ratio:1;margin:20px 0;box-shadow:none;overflow:hidden}
.hero-image img{width:100%;height:100%;object-fit:cover!important}
.services-page .services-intro{padding-block:45px 65px}
.services-page .services-intro h1 em{display:inline;color:white;background:var(--red);padding:0 8px;box-decoration-break:clone;-webkit-box-decoration-break:clone;line-height:1.24}
.services-page .services-intro::after{content:"";position:absolute;right:0;top:35px;width:120px;height:95px;background:radial-gradient(#fa1528 1.3px,transparent 1.7px) 0 0/9px 9px;opacity:.45;z-index:-1}
.services-page .service-detail{position:relative;isolation:isolate;padding:65px 28px;border-top:0;margin-top:28px;gap:45px}
.services-page .service-detail::before{content:"";position:absolute;inset:0;z-index:-1;background:#f5f5f6;border-top:4px solid var(--red)}
.services-page .service-detail:nth-of-type(odd){color:white}
.services-page .service-detail:nth-of-type(odd)::before{background-color:#202022;background-image:radial-gradient(#ffffff15 1px,transparent 1.5px);background-size:13px 13px}
.services-page .service-detail:nth-of-type(odd) .service-summary>p:not(.eyebrow){color:#d0d0d4}
.services-page .service-detail:nth-of-type(odd) .service-summary>.eyebrow{color:#ff7a86}
.services-page .product-card>div{box-shadow:5px 5px 0 #fa1528;border:0}
.services-page .product-card figcaption{margin-top:19px;line-height:1.5}
.services-page .service-summary h2{font-size:clamp(30px,3vw,40px)}
.services-page .service-closing{margin-top:40px;border-bottom:7px solid var(--red)}
@media(max-width:720px){.hero-art{padding:17px;box-shadow:7px 7px 0 var(--red)}.hero-image{padding:0;aspect-ratio:1}.services-page .services-intro h1{font-size:38px}.services-page .service-detail{padding:35px 18px;gap:28px}.services-page .services-intro::after{width:65px;height:55px;top:25px}.services-page .service-summary h2{font-size:32px}}

main{overflow-x:clip}.hero-copy,.hero-art{min-width:0}@media(max-width:720px){.hero-art{width:calc(100% - 34px)}.hero h1{font-size:clamp(44px,12vw,78px)}}

/* Use desktop screen space without widening mobile layouts. */
@media(min-width:1100px){
  body:not(.services-page){--width:1640px}
  body:not(.services-page) .wrap{width:min(1640px,calc(100% - 80px))}
  body:not(.services-page) .header{padding-inline:max(40px,calc((100vw - 1640px)/2))}
  body:not(.services-page) .hero{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:clamp(55px,6vw,105px)}
  body:not(.services-page) .hero::before{inset-inline:calc((min(1640px,100vw - 80px) - 100vw)/2)}
  body:not(.services-page) .hero-art{width:100%;max-width:580px;justify-self:end}
  body:not(.services-page) .hero .intro{max-width:540px;font-size:19px}
  body:not(.services-page) .hero h1{font-size:clamp(76px,6vw,110px)}
  body:not(.services-page) .section-heading>p{max-width:460px}
  body:not(.services-page) .about{gap:clamp(65px,7vw,125px)}
  body:not(.services-page) .services article{padding:32px 28px}
}
@media(min-width:1100px){
  .services-page{--width:1640px}
  .services-page main.wrap,.services-page .footer.wrap{width:min(1640px,calc(100% - 80px))}
  .services-page .header{padding-inline:max(40px,calc((100vw - 1640px)/2))}
  .services-page .services-intro{padding:60px 32px 70px}
  .services-page .service-detail{grid-template-columns:minmax(290px,.8fr) minmax(0,1.5fr);gap:clamp(40px,5vw,90px);padding:65px clamp(30px,3.5vw,65px);margin-top:40px}
  .services-page .service-summary>p:not(.eyebrow){max-width:48ch;font-size:17px;line-height:1.8}
  .services-page .product-grid{gap:32px}
  .services-page .product-card>div{aspect-ratio:1.15;padding:28px}
  .services-page #merchandising{grid-template-columns:1fr}
  .services-page #merchandising .service-summary{display:grid;grid-template-columns:1.1fr 1fr;gap:0 65px;align-items:start}
  .services-page #merchandising .service-summary>.eyebrow{grid-column:1/-1}
  .services-page #merchandising .service-summary h2{grid-column:1;grid-row:2/4;max-width:17ch;font-size:48px}
  .services-page #merchandising .service-summary>p:not(.eyebrow){grid-column:2;margin-top:0}
  .services-page #merchandising .service-summary .service-options{margin-top:15px}
  .services-page #merchandising .service-summary .button{grid-column:2;justify-self:start}
  .services-page #merchandising .product-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}
/* Smaller merchandising photographs with generous, consistent white space. */
.client-strip{padding-block:26px 24px;border-bottom:1px solid var(--line)}
.client-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:14px}
.client-heading .eyebrow{margin:0;color:#68686b;font-size:12px}
.client-controls{display:flex;gap:8px}
.client-controls button{width:34px;height:34px;border:1px solid #ddd;background:white;border-radius:50%;cursor:pointer}
.client-controls button:hover{color:var(--red);border-color:var(--red)}
.client-controls button:disabled{opacity:.3;cursor:default}
.client-track{list-style:none;margin:0;padding:8px 0 12px;display:flex;align-items:center;gap:30px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:thin;scrollbar-color:#ccc transparent}
.client-logo{display:flex;align-items:center;justify-content:center;flex:1 0 150px;height:66px;scroll-snap-align:start}
.client-track .client-logo img{width:auto;height:auto;max-width:150px;max-height:60px;object-fit:contain;flex-shrink:1}
@media(max-width:720px){.client-track{gap:22px}.client-logo{flex:0 0 135px;height:60px}.client-track .client-logo img{max-width:130px;max-height:52px}.client-strip{padding-block:22px 16px}}
.photo-open{position:relative;display:flex;align-items:center;justify-content:center;width:100%;height:100%;padding:0;border:0;background:transparent;color:var(--ink);cursor:zoom-in;font:inherit}
.photo-open img{display:block;object-fit:contain}
.photo-hint{position:absolute;right:0;bottom:0;background:#202022;color:white;padding:7px 10px;border-radius:3px;font-size:12px;line-height:1.3}
.photo-open:hover .photo-hint{background:#c91020}
.photo-dialog{position:fixed;inset:0;width:min(1000px,calc(100vw - 32px));max-width:none;max-height:calc(100dvh - 32px);padding:60px 24px 24px;border:0;border-radius:8px;overflow:auto;background:white;color:#202022;margin:auto}
.photo-dialog::backdrop{background:#101015db}
.photo-dialog figure{margin:0;display:flex;flex-direction:column;align-items:center;gap:18px}
.photo-dialog img{width:100%;height:min(70dvh,760px);object-fit:contain}
.photo-dialog figcaption{display:block;text-align:center;margin:0;font-size:16px;line-height:1.5}
.photo-close{position:absolute;right:12px;top:10px;width:44px;height:44px;border:0;border-radius:50%;background:#202022;color:white;font-size:30px;cursor:pointer}
body.photo-modal-open{overflow:hidden}
@media(max-width:720px){.photo-dialog{padding:60px 16px 20px}.photo-hint{padding:5px 7px;font-size:12px}.photo-dialog img{height:60dvh}}
.services-page #merchandising .product-card>div{aspect-ratio:1.4;padding:clamp(24px,3vw,48px)}
.services-page #merchandising .product-card img{max-width:85%;max-height:85%}
@media(max-width:720px){.services-page #merchandising .product-card>div{aspect-ratio:1.15;padding:16px}.services-page #merchandising .product-card img{max-width:90%;max-height:90%}}

/* Vector icons render consistently on Android, iOS and desktop. */
.ui-icon{display:inline-block;width:1.15em;height:1.15em;vertical-align:-.18em;flex-shrink:0;pointer-events:none}
.round-arrow .ui-icon{width:26px;height:26px}
.art-top>span:last-child .ui-icon{width:40px;height:40px}
.discipline-band .ui-icon{width:24px;height:24px}
.client-controls button,.photo-close{display:inline-flex;align-items:center;justify-content:center}
.photo-close .ui-icon{width:22px;height:22px}
.photo-hint{display:inline-flex;align-items:center;gap:5px}
