/* Four-service architecture. Scoped additions preserve the existing site design. */
.tp-about-identity{background:linear-gradient(115deg,#fcfaf3,#f0f1e8);color:#183f42}
.tp-about-identity-grid{display:grid;grid-template-columns:minmax(0,1.12fr) minmax(340px,.88fr);gap:clamp(52px,6vw,108px);align-items:center}
.tp-about-purpose h2{font-size:clamp(38px,4vw,64px);line-height:1.08;margin:16px 0 28px}
.tp-about-purpose p:not(.tp-eyebrow){max-width:670px;color:#3c5a53}
.tp-about-purpose .tp-actions{margin-top:28px}
.tp-proprietor{position:relative;margin:0;width:100%;max-width:500px;justify-self:end;isolation:isolate}
.tp-proprietor-visual{position:relative;padding:0 0 34px 34px;isolation:isolate}
.tp-proprietor-visual:before{content:"";position:absolute;z-index:-1;left:0;right:32px;top:32px;bottom:0;background:#0b4d52}
.tp-proprietor-visual:after{content:"";position:absolute;z-index:3;right:-18px;top:28px;width:70px;height:2px;background:#b58a37}
.tp-proprietor-image{position:relative;width:100%;aspect-ratio:1;overflow:hidden;background:#dce3da;border:8px solid #fffdf6;box-shadow:0 25px 58px #173e4230;transition:transform .45s cubic-bezier(.2,.7,.2,1),box-shadow .45s}
.tp-proprietor-image:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 72%,#123d391f);pointer-events:none}
.tp-proprietor-image img{display:block;width:100%;height:100%;object-fit:cover;object-position:center;transition:transform .65s cubic-bezier(.2,.7,.2,1)}
.tp-proprietor-index{position:absolute;left:34px;bottom:12px;font:600 9px/1 'DM Sans',sans-serif;letter-spacing:.18em;text-transform:uppercase;color:#f4ead4}
.tp-proprietor figcaption{position:relative;display:grid;grid-template-columns:1fr;gap:14px;margin:0 0 0 34px;padding:24px 0 0;border-top:1px solid #9cae9c}
.tp-proprietor figcaption:before{content:"";position:absolute;left:0;top:-2px;width:31%;height:3px;background:#b58a37}
.tp-proprietor .tp-eyebrow{color:#706038;font-size:10px;letter-spacing:.14em;margin:0 0 9px}
.tp-proprietor h3{font-family:'Cormorant Garamond',Georgia,serif;font-weight:500;font-size:clamp(40px,3.25vw,52px);line-height:.9;letter-spacing:-.035em;color:#183f42;margin:0}
.tp-proprietor h3 span,.tp-proprietor h3 em{display:block}.tp-proprietor h3 em{color:#8b692b;margin-left:clamp(16px,3vw,46px)}.tp-proprietor .tp-text-link{justify-self:start;white-space:nowrap;margin-bottom:3px}
.tp-proprietor:is(:hover,:focus-within) .tp-proprietor-image{transform:translate(-3px,-3px);box-shadow:0 31px 68px #173e423c}
.tp-proprietor:is(:hover,:focus-within) .tp-proprietor-image img{transform:scale(1.018)}
.tp-proprietor a:focus-visible{outline:3px solid #8b692b;outline-offset:5px}
.tp-about-record{background:#e5ece5;color:#183f42;border-block:1px solid #d0dace}
.tp-about-facts{margin:20px 0 26px}.tp-about-facts>div{padding:13px 0;border-bottom:1px solid #d5dbce}
.tp-about-facts dt{font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:#6b603f;margin-bottom:6px}
.tp-about-facts dd{margin:0;color:#264d45;line-height:1.65}.tp-about-facts small{font-size:13px}
.tp-about-process{background:#fcfaf3;color:#183f42}.tp-about-supply-note{padding:24px 0 0;margin-top:36px;border-top:1px solid #cbd4c6;color:#405e53;font-size:15px;line-height:1.8}.tp-about-supply-note a{color:#755822;text-decoration:underline;text-underline-offset:4px}
@media(max-width:800px){.tp-about-identity-grid{grid-template-columns:1fr;gap:44px}.tp-proprietor{justify-self:center;max-width:410px;width:100%}.tp-proprietor-visual{padding:0 0 28px 25px}.tp-proprietor-visual:before{left:0;right:22px;top:24px}.tp-proprietor-visual:after{right:-6px;top:22px;width:52px}.tp-proprietor-image{border-width:7px}.tp-proprietor-index{left:25px;bottom:10px}.tp-proprietor figcaption{margin-left:25px;padding-top:21px}.tp-proprietor h3{font-size:clamp(39px,12vw,52px)}.tp-proprietor .tp-text-link{margin-bottom:0}.tp-about-purpose h2{font-size:clamp(35px,8vw,52px)}}
@media(prefers-reduced-motion:reduce){.tp-proprietor-image,.tp-proprietor-image img{transition:none}.tp-proprietor:is(:hover,:focus-within) .tp-proprietor-image,.tp-proprietor:is(:hover,:focus-within) .tp-proprietor-image img{transform:none}}
.tp-service-visual .tp-service-work-image{object-fit:contain;width:100%;height:100%;max-height:540px;padding:28px;box-sizing:border-box;background:#f2f0e6;filter:drop-shadow(0 14px 18px #153f4220)}
.tp-production .tp-production-example{object-fit:contain!important;background:#ecece0;padding:32px;box-sizing:border-box}
.tp-nav-service-art{position:absolute;inset:0;background:#e5e9dc;overflow:hidden}
.tp-nav-service-art i{position:absolute;left:20%;top:12%;width:45%;height:60%;background:#31594e;border:1px solid #849b7d;box-shadow:6px 12px 20px #153d3226;transform:rotate(-14deg);transition:transform .6s}
.tp-nav-service-art i:nth-child(2){left:29%;top:15%;background:#b99a58;transform:rotate(2deg)}
.tp-nav-service-art i:nth-child(3){left:38%;top:20%;background:repeating-linear-gradient(#f9f4e4 0 15px,#c9ccb9 16px,#f9f4e4 17px);transform:rotate(17deg)}
.tp-mega-preview:hover .tp-nav-service-art i:last-child{transform:rotate(23deg) translateY(-6px)}
.tp-film-print-stack{width:70%;height:70%;display:grid;place-items:center;background:#e9e8dc}
.tp-film-print-stack>div{position:relative;width:65%;height:70%}
.tp-film-print-stack i{position:absolute;inset:0;border:1px solid #9cae9d;background:repeating-linear-gradient(#fdfbf2 0 22px,#b9c6b7 23px,#fdfbf2 24px);transform:rotate(-7deg);box-shadow:8px 10px 0 #d4dacd}
.tp-film-print-stack i:nth-child(2){transform:translate(8px,-8px) rotate(0)}
.tp-film-print-stack i:nth-child(3){transform:translate(16px,-16px) rotate(7deg);background:linear-gradient(145deg,#244f43 0 60%,#b29961 60% 64%,#eee5cf 64%)}
.tp-hero-v3 .tp-hero-title{font-size:clamp(34px,3vw,68px);line-height:1.12;letter-spacing:-.035em}
.tp-hero-v3 .tp-hero-reach{max-width:54ch;margin:12px 0 0;color:#efcf8c;font-size:14px;line-height:1.65}
.tp-hero-v3 .tp-hero-pipeline{gap:12px 8px;margin-top:28px}
.tp-hero-v3 .tp-hero-pipeline li{gap:6px;font-size:10px;letter-spacing:.07em}
.tp-hero-v3 .tp-hero-pipeline li:not(:last-child)::after{margin-left:3px}
.tp-header .tp-brand-sub{font-size:9px;letter-spacing:.09em;line-height:1.65;white-space:normal}
.tp-business-categories{background:#f4f2e9;color:#183f42;border-block:1px solid #d8dfd5}
.tp-business-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(16px,2vw,32px)}
.tp-business-card{position:relative;isolation:isolate;padding:28px 24px 32px;border-top:2px solid #a67c30;background:linear-gradient(155deg,#fffdf6,#e9efea);border-bottom:1px solid #c9d4cd;transition:transform .35s,box-shadow .35s}
.tp-business-card:nth-child(2){background:linear-gradient(155deg,#fbf7f1,#efe3dc)}
.tp-business-card:nth-child(3){background:linear-gradient(155deg,#fffaf0,#ede5d0)}
.tp-business-card:nth-child(4){background:linear-gradient(155deg,#fafcf8,#dfe9e4)}
.tp-business-card h3{font-size:clamp(26px,2.1vw,34px);margin:0 0 18px;line-height:1.16;color:#183f42}
.tp-business-card h3 a{color:inherit;text-decoration:none}
.tp-business-card h3 span{display:inline-block;font-size:22px;transition:transform .35s}
.tp-business-card p:not(.tp-eyebrow){font-size:16px;line-height:1.75;color:#3e5a52;margin:0}
.tp-business-card .tp-eyebrow{color:#6a582f;font-size:10px;letter-spacing:.1em;min-height:36px}
.tp-business-number{font:13px/1.2 sans-serif;color:#76633c}
.tp-business-symbol{display:block;position:relative;height:100px;margin:12px 0 24px}
.tp-business-symbol i{position:absolute;left:calc(8px + var(--offset,0px));top:calc(15px + var(--offset,0px));width:70px;height:75px;background:#fdfbf1;border:1px solid #718c80;box-shadow:5px 8px 0 #244b4210;transition:transform .6s cubic-bezier(.2,.8,.2,1)}
.tp-business-symbol i:nth-child(2){--offset:9px}.tp-business-symbol i:nth-child(3){--offset:18px;background:repeating-linear-gradient(0deg,#edf0e6 0 12px,#b3c1b3 13px,#edf0e6 14px)}
[data-business="graphic-design"] .tp-business-symbol i{width:65px;height:65px;transform:rotate(-10deg);background:#d8b976}
[data-business="graphic-design"] .tp-business-symbol i:nth-child(2){background:#47695e;transform:rotate(5deg)}
[data-business="graphic-design"] .tp-business-symbol i:nth-child(3){background:#d4a993;transform:rotate(18deg)}
[data-business="promotional-items"] .tp-business-symbol i{border-radius:4px 4px 12px 12px;background:#ddc897}
[data-business="promotional-items"] .tp-business-symbol i:last-child:before{content:"";position:absolute;inset:-13px 20px auto;height:22px;border:2px solid #718c80;border-radius:50% 50% 0 0}
[data-business="general-supplies"] .tp-business-symbol i{width:66px;height:55px;background:#d1bd8e;transform:skewY(-5deg)}
.tp-business-card:is(:hover,:focus-within){transform:translateY(-5px);box-shadow:0 18px 32px #173e4212}
.tp-business-card:is(:hover,:focus-within) .tp-business-symbol i:first-child{transform:translate(-5px,-5px) rotate(-9deg)}
.tp-business-card:is(:hover,:focus-within) .tp-business-symbol i:last-child{transform:translate(7px,-4px) rotate(5deg)}
.tp-business-card:is(:hover,:focus-within) h3 span{transform:translate(3px,-3px)}
.tp-industries{position:relative;isolation:isolate;overflow:hidden;background:linear-gradient(132deg,#103e42 0%,#173f3b 58%,#264d43 100%);color:#f8f2e5;border-block:1px solid #325c54}
.tp-industries:before{content:"";position:absolute;inset:0;z-index:-2;background:repeating-linear-gradient(90deg,transparent 0 calc(25% - 1px),#ffffff0b calc(25% - 1px) 25%)}
.tp-industries:after{content:"INDUSTRIES";position:absolute;right:-.02em;bottom:-.22em;z-index:-1;font:500 clamp(92px,17vw,280px)/.72 'Cormorant Garamond',Georgia,serif;letter-spacing:-.06em;color:#ffffff08;pointer-events:none}
.tp-industries-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(420px,1.1fr);gap:clamp(54px,8vw,140px);align-items:center}
.tp-industries-copy{max-width:680px}.tp-industries .tp-eyebrow{color:#d5b96f}.tp-industries h2{margin:14px 0 24px;color:#fff8ea;font-size:clamp(48px,5.6vw,88px);line-height:.89;letter-spacing:-.045em}.tp-industries h2 em{color:#deb768}.tp-industries .tp-lead{color:#f2ebdc;max-width:620px}.tp-industries-copy>p:last-child{color:#bad0c8;max-width:600px;line-height:1.8}
.tp-industries-audiences{border-top:1px solid #d9c58b80}
.tp-industry-row{display:grid;grid-template-columns:52px 1fr 32px;align-items:center;gap:20px;min-height:94px;border-bottom:1px solid #ffffff2b;color:#fff8eb;text-decoration:none;transition:padding .35s cubic-bezier(.2,.8,.2,1),background .35s,color .35s}
.tp-industry-row>span{font:600 10px/1 'DM Sans',sans-serif;letter-spacing:.14em;color:#d9be76}.tp-industry-row strong{font:500 clamp(28px,3vw,46px)/1 'Cormorant Garamond',Georgia,serif}.tp-industry-row i{font-style:normal;font-size:22px;transition:transform .35s}
.tp-industry-row:is(:hover,:focus-visible){padding-inline:18px;background:#ffffff0d;color:#e7c878}.tp-industry-row:is(:hover,:focus-visible) i{transform:translate(4px,-4px)}
.tp-industries-orbit{position:absolute;width:480px;height:480px;left:-245px;top:50%;transform:translateY(-50%);border:1px solid #d5bb7040;border-radius:50%;pointer-events:none}.tp-industries-orbit i{position:absolute;inset:14%;border:1px solid #d5bb702c;border-radius:50%}.tp-industries-orbit i:nth-child(2){inset:28%}.tp-industries-orbit i:nth-child(3){inset:42%;background:#d5bb7012}
.tp-project-gallery{background:#eaf0e9;color:#183f42;border-block:1px solid #cfdacd}
.tp-project-gallery h2,.tp-project-gallery h3{color:#183f42}
.tp-project-gallery .tp-lead{max-width:690px;color:#486158}
.tp-project-track{display:flex;gap:32px;overflow-x:auto;scroll-snap-type:x proximity;scrollbar-color:#9b803e #d7e0d6;scrollbar-width:thin;padding:12px 4px 28px;align-items:stretch}
.tp-project-item{margin:0;flex:0 0 clamp(300px,31vw,420px);min-width:0;scroll-snap-align:start}
.tp-project-item>a{position:relative;display:flex;align-items:center;justify-content:center;min-height:310px;height:350px;padding:24px 8px 40px;text-decoration:none;background:linear-gradient(150deg,#fdfcf6,#dfe8de);border-bottom:1px solid #9aa997;overflow:hidden}
.tp-project-item img{display:block;width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 10px 8px #0f302321);transition:transform .45s cubic-bezier(.2,.8,.2,1)}
.tp-project-item>a>span{position:absolute;bottom:9px;left:14px;right:14px;font:600 12px/1.5 sans-serif;color:#304e44;display:flex;justify-content:space-between}
.tp-project-item>a:is(:hover,:focus-visible) img{transform:scale(1.04) translateY(-4px)}
.tp-project-item figcaption{padding-top:22px}.tp-project-item h3{font-size:27px;line-height:1.18;margin:0 0 16px}
.tp-project-item .tp-eyebrow{color:#725f2f;font-size:11px}.tp-gallery-note{font-size:13px;color:#496158;margin-top:22px;max-width:780px}
.tp-gallery-controls{display:flex;gap:10px;flex-shrink:0}.tp-gallery-controls[hidden]{display:none}
.tp-gallery-controls button{border:1px solid #7a8d7e;border-radius:50%;width:48px;height:48px;background:transparent;color:#183f42;font-size:23px;cursor:pointer;transition:background .2s,color .2s}
.tp-gallery-controls button:hover{background:#183f42;color:#fff}.tp-gallery-controls button:disabled{opacity:.3;cursor:default}
.tp-project-modal{width:min(1200px,94vw);max-width:94vw;height:min(940px,94dvh);max-height:94dvh;box-sizing:border-box;border:0;padding:22px;background:#f8f7ee;color:#183f42;box-shadow:0 35px 120px #0005}
.tp-project-modal::backdrop{background:#092b2bd9;backdrop-filter:blur(5px)}
.tp-project-modal[open]{display:flex;flex-direction:column;gap:12px}
.tp-project-modal header{display:flex;justify-content:space-between;gap:20px;align-items:center}
.tp-project-modal h2{font-size:clamp(20px,3vw,30px);margin:0;line-height:1.2;color:#183f42}
.tp-project-modal button{background:#183f42;color:white;padding:12px 18px;border:0;cursor:pointer;flex-shrink:0}
.tp-project-modal-art{flex:1;min-height:0;display:flex;align-items:center;justify-content:center}
.tp-project-modal img{max-width:100%;max-height:100%;object-fit:contain}
.tp-project-modal p{margin:0;font:14px/1.5 sans-serif}.tp-project-modal a{color:#254e42}
.tp-context-links{display:flex;flex-wrap:wrap;gap:20px;padding-block:24px}.tp-context-links a{color:#345d50;text-decoration:underline;text-underline-offset:5px}
.tp-supply-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:28px;list-style:decimal-leading-zero;padding-left:24px}.tp-supply-steps li{padding:20px 15px 0;border-top:1px solid #b18a3b}.tp-supply-steps h3{font-size:27px}
.tp-business-categories :focus-visible,.tp-project-gallery :focus-visible,.tp-project-modal :focus-visible{outline:3px solid #9b6419;outline-offset:5px}
.tp-contact-grid [hidden]{display:none!important}.tp-contact-grid #tp-service-help{color:#36594f;font-size:14px;line-height:1.6;margin-top:8px}
@media(max-width:1150px){.tp-business-grid{grid-template-columns:repeat(2,1fr)}.tp-supply-steps{grid-template-columns:repeat(2,1fr)}.tp-industries-grid{grid-template-columns:1fr;gap:46px}.tp-industries-copy{max-width:760px}.tp-industries-audiences{max-width:820px;width:100%}}
@media(max-width:650px){.tp-business-grid{grid-template-columns:1fr}.tp-business-card{padding:24px}.tp-business-symbol{position:absolute;right:25px;top:8px;width:95px;transform:scale(.7);transform-origin:right top}.tp-business-card .tp-eyebrow{margin-top:56px;min-height:0}.tp-project-item{flex-basis:82vw}.tp-project-item>a{height:300px}.tp-gallery-controls{margin-top:12px}.tp-supply-steps{grid-template-columns:1fr}.tp-header .tp-brand-sub{font-size:8px}.tp-hero-v3 .tp-hero-title{font-size:clamp(31px,7.4vw,48px)}.tp-industry-row{grid-template-columns:38px 1fr 24px;gap:10px;min-height:76px}.tp-industries-orbit{opacity:.5}.tp-industries h2{font-size:clamp(43px,14vw,66px)}}
@media(prefers-reduced-motion:reduce){.tp-business-card,.tp-business-symbol i,.tp-business-card h3 span,.tp-project-item img,.tp-nav-service-art i,.tp-industry-row,.tp-industry-row i{transition:none}.tp-business-card:is(:hover,:focus-within),.tp-project-item>a:is(:hover,:focus-visible) img{transform:none}}
