/* Services, News and Contact share the site's native Elementor design system. */
.tpp-catalog-page .header-breadcamb-fixer { display:none; }
.tpp-catalog { --cat-ink:#182e3b; --cat-muted:#526570; --cat-red:#d8242f; --cat-line:#dce5e8; font-family:Inter,Arial,sans-serif; color:var(--cat-ink); text-align:left; }
.tpp-catalog,.tpp-catalog * { box-sizing:border-box; }
.tpp-catalog.e-con,.tpp-catalog .e-con { --container-max-width:none; --container-default-padding:0px; --widgets-spacing:0px; --gap:0px; --row-gap:0px; --column-gap:0px; gap:0; margin:0; padding:0; min-width:0; max-width:none; }
.tpp-catalog.e-con { width:100%; }
.tpp-catalog .elementor-widget { min-width:0; margin:0; --widgets-spacing:0px; }
.tpp-catalog .elementor-widget-container { margin:0; }
.tpp-catalog .tpp-catalog-wrap { width:calc(100% - 40px); max-width:1200px; margin-inline:auto; }
.tpp-catalog :is(h1,h2,h3,h4,p) { margin:0; }
.tpp-catalog .elementor-widget-heading .elementor-heading-title { margin:0!important; padding:0; color:var(--cat-ink); font-family:inherit; font-weight:600; line-height:1.3; letter-spacing:-.6px; }
.tpp-catalog .elementor-widget-text-editor { color:var(--cat-muted); font:400 15px/1.8 Inter,Arial,sans-serif; overflow-wrap:anywhere; }
.tpp-catalog .elementor-widget-text-editor p + p { margin-top:16px; }
.tpp-catalog .tpp-catalog-label { color:#ae1c27; font-size:11px; font-weight:650; letter-spacing:1.5px; text-transform:uppercase; }
.tpp-catalog .tpp-catalog-hero { padding-block:42px 48px; background:var(--cat-ink); border-bottom:3px solid var(--cat-red); }
.tpp-catalog .tpp-catalog-hero .tpp-catalog-wrap { gap:16px; }
.tpp-catalog .tpp-catalog-hero .tpp-catalog-label { color:#e6ecef; }
.tpp-catalog .tpp-catalog-hero h1.elementor-heading-title { max-width:950px; color:#fff; font-size:clamp(32px,7.5vw,52px); font-weight:500; line-height:1.16; letter-spacing:-1.3px; text-wrap:balance; }
.tpp-catalog .tpp-catalog-hero .tpp-catalog-lead { max-width:760px; color:#dae3e7; }
.tpp-catalog .tpp-catalog-section { padding-block:44px; }
.tpp-catalog .tpp-catalog-soft { background:#f4f7f7; }
.tpp-catalog .tpp-catalog-section-head { gap:12px; max-width:800px; margin-bottom:28px; }
.tpp-catalog .tpp-catalog-section-head h2 { font-size:clamp(26px,5vw,36px); }
.tpp-catalog a { text-decoration:none; }
.tpp-catalog :is(a,button,input,select,textarea):focus-visible { outline:3px solid var(--cat-red); outline-offset:4px; }
.tpp-catalog .tpp-catalog-button .elementor-button { display:flex; align-items:center; justify-content:space-between; min-height:48px; gap:18px; padding:12px 18px; border:1px solid var(--cat-red); border-radius:4px; background:var(--cat-red); color:#fff; font:600 13px/1.5 Inter,Arial,sans-serif; }
.tpp-catalog .tpp-catalog-button .elementor-button::after { content:'↗'; font-size:19px; }
.tpp-catalog .tpp-catalog-button .elementor-button:hover { background:#b41d27; border-color:#b41d27; color:#fff; }
.tpp-catalog .tpp-catalog-secondary .elementor-button { color:var(--cat-ink); background:#fff; border-color:var(--cat-line); }
.tpp-catalog .tpp-catalog-secondary .elementor-button:hover { color:var(--cat-ink); background:#eff3f4; border-color:#aab9c1; }
.tpp-catalog .tpp-services-cards { display:grid; grid-template-columns:minmax(0,1fr); gap:22px; }
.tpp-catalog .tpp-service-card { background:#fff; border:1px solid var(--cat-line); border-radius:8px; overflow:hidden; box-shadow:0 5px 22px #182e3b05; }
.tpp-catalog .tpp-service-card-image { width:100%; background:#f2f5f5; }
.tpp-catalog .tpp-service-card-image img { display:block; width:100%; aspect-ratio:16/10; height:auto; object-fit:contain; border-radius:0; }
.tpp-catalog .tpp-service-card-body { flex-grow:1; gap:15px; padding:23px; }
.tpp-catalog .tpp-service-card-number { color:#a8252f; font-size:11px; font-weight:600; letter-spacing:1px; }
.tpp-catalog .tpp-service-card-title h2 { font-size:22px; letter-spacing:-.5px; }
.tpp-catalog .tpp-service-card-title a { color:inherit; }
.tpp-catalog .tpp-service-card-title a:hover { color:var(--cat-red); }
.tpp-catalog .tpp-service-card-copy { flex-grow:1; font-size:14px; line-height:1.8; }
.tpp-catalog .tpp-service-card-link { margin-top:5px; width:100%; }
.tpp-catalog .tpp-service-card-link .elementor-button { border-width:1px 0 0; border-color:var(--cat-line); border-radius:0; padding:14px 0 0; background:none; color:var(--cat-ink); min-height:48px; }
.tpp-catalog .tpp-service-card-link .elementor-button:hover { color:var(--cat-red); background:none; border-color:var(--cat-line); }
.tpp-catalog .tpp-partners-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.tpp-catalog .tpp-partner-logo { display:flex; align-items:center; justify-content:center; min-height:98px; padding:17px; background:#fff; border:1px solid #e3eaed; border-radius:5px; }
.tpp-catalog .tpp-partner-logo .elementor-widget-container { width:100%; }
.tpp-catalog .tpp-partner-logo img { display:block; width:100%; height:60px; object-fit:contain; }
/* News keeps its existing live WordPress query and native pagination. */
.tpp-catalog .tpp-news-posts .row { display:grid; grid-template-columns:minmax(0,1fr); gap:24px; margin:0; }
.tpp-catalog .tpp-news-posts .pre-blog-item { width:100%; max-width:none; padding:0; margin:0; }
.tpp-catalog .tpp-news-posts .blog-inner-wrap { display:flex; flex-direction:column; height:100%; padding:0; border:1px solid var(--cat-line); border-radius:8px; overflow:hidden; background:#fff; box-shadow:none; }
.tpp-catalog .tpp-news-posts .pre-image-wrap { position:relative; margin:0; border-radius:0; overflow:hidden; background:#edf2f4; }
.tpp-catalog .tpp-news-posts .pre-image-wrap .rs--thum { display:block; overflow:hidden; }
.tpp-catalog .tpp-news-posts .pre-image-wrap img { display:block; width:100%; height:auto; aspect-ratio:16/10; object-fit:cover; border-radius:0; transform:none!important; }
.tpp-catalog .tpp-news-posts .pre-image-wrap .rs-cate { bottom:14px; left:14px; top:auto; right:auto; margin:0; padding:7px 10px; color:#fff; background:var(--cat-ink); font:500 11px/1.5 Inter,Arial,sans-serif; border-radius:3px; }
.tpp-catalog .tpp-news-posts .pre-blog-content { display:flex; flex-direction:column; gap:18px; padding:24px!important; flex-grow:1; background:#fff; border:0; }
.tpp-catalog .tpp-news-posts h3.pre-post-title { margin:0!important; font:600 23px/1.4 Inter,Arial,sans-serif; letter-spacing:-.6px; }
.tpp-catalog .tpp-news-posts h3.pre-post-title a { color:var(--cat-ink); }
.tpp-catalog .tpp-news-posts h3.pre-post-title a:hover { color:var(--cat-red); }
.tpp-catalog .tpp-news-posts .pre-blog-meta { display:flex; flex-wrap:wrap; gap:8px 18px; margin:0!important; padding:0; list-style:none; color:var(--cat-muted); font:400 12px/1.6 Inter,Arial,sans-serif; }
.tpp-catalog .tpp-news-posts .pre-blog-meta li { margin:0; padding:0; list-style:none; }
.tpp-catalog .tpp-news-posts .pre-blog-meta li::before,.tpp-catalog .tpp-news-posts .pre-blog-meta li::after { display:none; }
.tpp-catalog .tpp-news-posts .blg-btn-wrap { margin-top:auto; padding-top:8px; }
.tpp-catalog .tpp-news-posts .blg-btn-wrap a { display:flex; justify-content:space-between; align-items:center; min-height:48px; padding:12px 0 0; border:0; border-top:1px solid var(--cat-line); border-radius:0; color:var(--cat-ink); background:none; font:600 13px/1.5 Inter,Arial,sans-serif; }
.tpp-catalog .tpp-news-posts .blg-btn-wrap a::after { content:'↗'; font-size:18px; }
.tpp-catalog .tpp-news-posts .pagination-area { grid-column:1/-1; width:100%; margin-top:12px; padding:0; }
.tpp-catalog .tpp-news-posts .nav-links { display:flex; flex-wrap:wrap; justify-content:center; gap:8px; }
.tpp-catalog .tpp-news-posts .page-numbers { display:flex; align-items:center; justify-content:center; min-width:44px; min-height:44px; padding:10px; margin:0; border:1px solid var(--cat-line); border-radius:4px; color:var(--cat-ink); }
.tpp-catalog .tpp-news-posts .page-numbers.current { color:#fff; background:var(--cat-ink); border-color:var(--cat-ink); }
/* Contact details stay native widgets; the editable form opens an email draft. */
.tpp-catalog .tpp-contact-cards { display:grid; grid-template-columns:minmax(0,1fr); gap:18px; }
.tpp-catalog .tpp-contact-card { gap:16px; padding:25px; background:#fff; border:1px solid var(--cat-line); border-radius:8px; }
.tpp-catalog .tpp-contact-card h2 { font-size:23px; }
.tpp-catalog .tpp-contact-card-copy { flex-grow:1; }
.tpp-catalog .tpp-contact-icon .elementor-icon { display:flex; justify-content:center; align-items:center; width:46px; height:46px; border-radius:6px; color:var(--cat-red); background:#fbeff0; font-size:20px; }
.tpp-catalog .tpp-contact-icon svg { width:20px; height:20px; fill:currentColor; }
.tpp-catalog .tpp-contact-value { color:var(--cat-ink); font-size:15px; font-weight:600; line-height:1.65; }
.tpp-catalog .tpp-contact-value a { color:inherit; overflow-wrap:anywhere; }
.tpp-catalog .tpp-contact-actions { display:flex; flex-wrap:wrap; flex-direction:row; gap:8px; width:100%; }
.tpp-catalog .tpp-contact-actions .elementor-widget { flex:1 1 140px; }
.tpp-catalog .tpp-contact-actions .elementor-button { padding:11px 13px; font-size:12px; }
.tpp-catalog .tpp-contact-main { display:grid; grid-template-columns:minmax(0,1fr); gap:28px; align-items:start; }
.tpp-catalog .tpp-contact-location { gap:20px; padding:24px; border:1px solid var(--cat-line); border-radius:8px; background:#fff; }
.tpp-catalog .tpp-contact-location h2,.tpp-catalog .tpp-contact-form-card h2 { font-size:27px; }
.tpp-catalog .tpp-contact-address { padding:18px; border-left:3px solid var(--cat-red); background:#f3f6f7; font-size:14px; }
.tpp-catalog .tpp-contact-map iframe { display:block; width:100%; height:300px; border:0; border-radius:5px; }
.tpp-catalog .tpp-contact-form-card { gap:15px; padding:24px; border:1px solid var(--cat-line); border-radius:8px; background:#fff; }
.tpp-mail-form { display:flex; flex-direction:column; gap:17px; padding-top:8px; }
.tpp-mail-form label { display:flex; flex-direction:column; gap:7px; margin:0; color:#182e3b; font:500 13px/1.6 Inter,Arial,sans-serif; }
.tpp-mail-form label b { color:#bd1e29; }
.tpp-mail-fields { display:grid; grid-template-columns:minmax(0,1fr); gap:17px; }
.tpp-mail-form :is(input:not([type=checkbox]),select,textarea) { width:100%; max-width:100%; min-width:0; min-height:48px; margin:0; padding:11px 12px; border:1px solid #cbd7dd; border-radius:4px; background:#fff; color:#182e3b; box-shadow:none; font:400 16px/1.5 Inter,Arial,sans-serif; }
.tpp-mail-form :is(input,textarea)::placeholder { color:#6d7c86; opacity:1; }
.tpp-mail-form textarea { resize:vertical; min-height:145px; }
.tpp-mail-form label.tpp-mail-consent { flex-direction:row; align-items:flex-start; gap:11px; min-height:44px; padding-block:6px; font-size:12px; font-weight:400; color:#526570; cursor:pointer; }
.tpp-mail-consent input { flex:0 0 19px; width:19px; height:19px; margin:2px 0 0; accent-color:#d8242f; }
.tpp-mail-form button { display:flex; align-items:center; justify-content:space-between; gap:18px; width:100%; min-height:50px; padding:13px 18px; background:#d8242f; border:1px solid #d8242f; border-radius:4px; color:#fff; font:600 14px/1.5 Inter,Arial,sans-serif; cursor:pointer; }
.tpp-mail-form button:hover { background:#b31d27; }
.tpp-mail-form .tpp-mail-status { color:#526570; font-size:13px; line-height:1.6; }
.tpp-mail-form .tpp-mail-status:empty { display:none; }
.tpp-catalog .tpp-contact-bottom { background:var(--cat-ink); }
.tpp-catalog .tpp-contact-bottom .tpp-catalog-wrap { gap:22px; }
.tpp-catalog .tpp-contact-bottom h2 { max-width:800px; color:#fff; font-size:clamp(27px,5vw,38px); font-weight:500; }
.tpp-catalog .tpp-contact-bottom .tpp-catalog-label { color:#f3949b; }
@media(min-width:600px) {
 .tpp-catalog .tpp-catalog-wrap { width:calc(100% - 64px); }
 .tpp-catalog .tpp-catalog-hero { padding-block:52px 58px; }
 .tpp-catalog .tpp-services-cards,.tpp-catalog .tpp-news-posts .row { grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
 .tpp-catalog .tpp-partners-grid { grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; }
 .tpp-mail-fields { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(min-width:1000px) {
 .tpp-catalog .tpp-catalog-section { padding-block:70px; }
 .tpp-catalog .tpp-services-cards,.tpp-catalog .tpp-contact-cards { grid-template-columns:repeat(3,minmax(0,1fr)); }
 .tpp-catalog .tpp-services-cards { gap:28px; }
 .tpp-catalog .tpp-partners-grid { grid-template-columns:repeat(6,minmax(0,1fr)); }
 .tpp-catalog .tpp-partner-logo { min-height:112px; }
 .tpp-catalog .tpp-contact-main { grid-template-columns:minmax(0,1fr) minmax(0,1.08fr); gap:32px; }
 .tpp-catalog .tpp-contact-location,.tpp-catalog .tpp-contact-form-card { padding:30px; }
 .tpp-catalog .tpp-contact-map iframe { height:345px; }
}
@media(prefers-reduced-motion:reduce) { .tpp-catalog * { scroll-behavior:auto!important; transition:none!important; } }
.tpp-catalog-contact .tpp-catalog-section > .tpp-catalog-wrap > .tpp-catalog-label { margin-bottom:20px; }

.tpp-catalog .tpp-map-fallback { display:flex; align-items:center; justify-content:space-between; gap:12px; min-height:48px; padding-top:12px; color:var(--cat-ink); font:600 13px/1.5 Inter,Arial,sans-serif; }
