/* Shared presentation layer. Keep grids, image sizing and slider styles in
   their original stylesheets; refine the text and surfaces around them here. */
:root {
    --tb-font-body: "Open Sans", Arial, sans-serif;
    --tb-font-heading: "Poppins", Arial, sans-serif;
    --tb-ink: #23272f;
    --tb-copy: #505660;
}

body {
    font-family: var(--tb-font-body);
    font-size: 16px;
    line-height: 1.75;
    color: var(--tb-copy);
}

h1, h2, h3, h4, h5, h6 {
    font-family: var(--tb-font-heading);
    font-weight: 600;
    letter-spacing: -0.025em;
}

h1 { font-size: clamp(30px, 2.8vw, 42px); line-height: 1.22; }
h2 { font-size: clamp(27px, 2.4vw, 36px); line-height: 1.3; }
h3 { font-size: clamp(22px, 1.9vw, 28px); line-height: 1.35; }
h4 { font-size: clamp(20px, 1.6vw, 24px); line-height: 1.4; }
h5 { font-size: 18px; line-height: 1.45; }
h6 { font-size: 16px; line-height: 1.5; }

p { line-height: 1.75; }
strong, b { font-weight: 700; }

.section-head .title {
    font-size: clamp(28px, 2.6vw, 38px);
    line-height: 1.3;
    margin-bottom: 14px;
    text-wrap: balance;
}

.section-head h1.title {
    font-size: clamp(30px, 2.9vw, 42px);
}

.section-head p {
    font-size: 16px;
    line-height: 1.8;
    color: var(--tb-copy);
    padding-top: 0;
}

.text-center.section-head p { max-width: 76ch; }
#about-us .section-head:has(p + p) p { text-align: left; }

.section-full p a:not(.site-button) {
    font-weight: 600;
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
}

/* Navigation retains the original heights and available horizontal space. */
.site-header .header-nav .nav > li > a {
    font-family: var(--tb-font-heading);
    font-size: 15px;
    font-weight: 600;
    letter-spacing: 0;
}

.site-header .header-nav .nav .sub-menu li a {
    font-family: var(--tb-font-body);
    font-size: 14px;
    line-height: 1.5;
}

h4.TechbrosIndia {
    font-size: 23px;
    line-height: 1.35;
    font-weight: 600;
    letter-spacing: -0.035em;
}

.dlab-bnr-inr h1 {
    font-size: clamp(28px, 2.7vw, 40px);
    line-height: 1.25;
    text-wrap: balance;
    overflow-wrap: anywhere;
}

.dlab-bnr-inr-entry { gap: 24px; }
.dlab-bnr-inr-entry > * { min-width: 0; }
.breadcrumb-row { font-size: 14px; line-height: 1.6; }
.breadcrumb-row li { overflow-wrap: anywhere; }

/* Banners with a subtitle need room for all three pieces of text. */
.dlab-bnr-inr .dlab-bnr-inr-entry:has(> p) {
    flex-direction: column;
    justify-content: center;
    gap: 10px;
    padding: 24px 0;
    min-height: 250px;
    height: auto;
}

.dlab-bnr-inr-entry:has(> p) h1 { margin-bottom: 0; text-align: center; }
.dlab-bnr-inr-entry:has(> p) .breadcrumb-row ul { text-align: center; }
.dlab-bnr-inr-entry > p {
    max-width: 72ch;
    margin: 0 !important;
    font-size: 16px;
    line-height: 1.6;
}

.service-box-4 .service-content .title {
    font-size: clamp(18px, 1.4vw, 20px);
    line-height: 1.45;
    font-weight: 600;
    letter-spacing: -0.015em;
}

.service-box-3 .title {
    font-size: 18px;
    line-height: 1.5;
    font-weight: 600;
    letter-spacing: -0.015em;
}

.quote-cta {
    border: 1px solid #e7e9ed;
    border-radius: 12px;
    box-shadow: 0 8px 28px rgba(24, 32, 45, 0.07);
}
.quote-cta-header h2 { font-size: 28px; line-height: 1.3; }
.quote-cta-body p { font-size: 16px; line-height: 1.75; }
.quote-cta-catalog { font-size: 15px; }

.call-action .title {
    font-size: clamp(22px, 2vw, 28px);
    line-height: 1.45;
    letter-spacing: -0.02em;
}

.home-stats .counter-style-1 > div { white-space: nowrap; }

/* The four-column grid is narrowest before the 1200px container breakpoint.
   Keep each number and its inline-sized plus sign together at that width. */
@media (min-width: 992px) and (max-width: 1199px) {
    .home-stats .counter-style-1 > div > span { font-size: 44px !important; }
}

.site-button:not([class*="fa-"]):not(.circle):not(.circle-sm):not(.circle-lg) {
    font-family: var(--tb-font-heading);
    font-size: 14px;
    font-weight: 600;
    line-height: 1.5;
    letter-spacing: 0;
    white-space: normal;
}

.contact-area { border-color: #e3e6eb !important; border-radius: 10px; }
.contact-area p,
.contact-area .icon-content p a {
    font-size: 16px !important; /* Existing contact copy is sized inline. */
    line-height: 1.75;
    overflow-wrap: anywhere;
}
.contact-area .icon-content h6 { font-size: 14px; letter-spacing: 0.04em; }
.contact-area .icon-content p { margin-top: 6px; }
.gallery-filters .container > .row > [class*="col-"] > p {
    font-size: 16px !important;
    line-height: 1.8;
    max-width: 88ch;
}

.form-control { font-family: var(--tb-font-body); font-size: 16px; }

section[aria-labelledby="parts-questions"] h3 {
    font-size: clamp(20px, 1.6vw, 23px);
    margin-top: 28px;
    margin-bottom: 10px;
}
section[aria-labelledby="parts-questions"] p { max-width: 88ch; }

/* Catalog grids, media heights, image fit and title clamping stay intact. */
.brand-filter-btn { font-family: var(--tb-font-body); font-size: 14px; }
.brand-filter-btn .badge-pill { font-size: 12px; }
.catalog-search-wrap input { font-size: 16px; }
#catalog-sort,
.catalog-control-panel .filter-option-inner-inner { font-size: 14px !important; }
.catalog-control-panel .bootstrap-select > .dropdown-toggle { height: 46px; }
.catalog-control-panel .filter-option-inner-inner { line-height: 1.5; }

.tb-product-card {
    border-color: #e3e7ed;
    border-radius: 10px;
    box-shadow: 0 3px 14px rgba(24, 32, 45, 0.04);
}
.tb-product-title {
    font-size: 17px;
    line-height: 1.4;
    min-height: 2.8em;
    letter-spacing: -0.015em;
}
.tb-brand-tag { font-size: 12px !important; line-height: 1.5; letter-spacing: 0.04em; }
.tb-specs-table { font-size: 13px; line-height: 1.6; }
.tb-specs-row { gap: 8px; }
.tb-specs-label { flex-shrink: 0; }
.tb-specs-val { min-width: 0; overflow-wrap: anywhere; }
.tb-current-price { font-size: 20px; line-height: 1.4; }
.tb-request-price { font-size: 14px; }
.tb-price-box { flex-wrap: wrap; }
.tb-btn-quickview,
.tb-btn-inquire {
    font-family: var(--tb-font-body);
    font-size: 13px;
    line-height: 1.5;
    padding: 9px 8px;
}
.tb-btn-inquire { background: #187840; }
.tb-btn-inquire:hover { background: #145f35; }

.product-detail-box h2 { font-size: clamp(26px, 2.2vw, 32px) !important; }
.product-detail-box p { font-size: 16px !important; line-height: 1.75; }
.product-detail-box p.small { font-size: 14px !important; }
.product-detail-box .d-flex:has(> .badge) { flex-wrap: wrap; }
.product-detail-box .badge { white-space: normal; text-align: left; line-height: 1.5; }
.product-detail-box .font-monospace { overflow-wrap: anywhere; }
.product-detail-box .btn {
    max-width: 100%;
    min-width: 0;
    white-space: normal;
    overflow-wrap: anywhere;
    font-family: var(--tb-font-body);
    font-size: 14px;
    line-height: 1.6;
}
.product-detail-box .btn-success { background: #187840 !important; }
.product-detail-box .btn-success:hover { background: #145f35 !important; }
.product-detail-box a.btn-outline-dark {
    color: var(--tb-ink);
    border: 1px solid #a4a9b1;
}
.product-detail-box a.btn-outline-secondary {
    color: #505660;
    border: 1px solid #a4a9b1;
}
.product-detail-box a.btn-outline-dark:hover,
.product-detail-box a.btn-outline-secondary:hover { background: #23272f; color: #fff; }
.specs-table th,
.modal-specs-table th { font-size: 14px; line-height: 1.6; }
.specs-table td,
.modal-specs-table td { font-size: 15px; line-height: 1.6; }
.specs-table th, .specs-table td,
.modal-specs-table th, .modal-specs-table td { overflow-wrap: anywhere; }
.tb-card-body h5 { font-size: 16px !important; line-height: 1.4 !important; }
.tb-card-body .small { font-size: 13px; line-height: 1.6; overflow-wrap: anywhere; }
.tb-card-body .site-button { font-size: 13px !important; }

/* Let the footer grow with readable text instead of a fixed inline height. */
.site-footer { height: auto !important; }
.site-footer .footer-top { padding-top: 40px; }
.site-footer .footer-title { font-size: 18px; line-height: 1.5; margin-bottom: 16px; }
.site-footer p,
.site-footer li { font-size: 14px; line-height: 1.8; }
.site-footer p.text-capitalize { text-transform: none !important; }
.site-footer .widget_getintuch li { overflow-wrap: anywhere; }
.site-footer .copyright { font-size: 13px; line-height: 1.7; }

.site-button:focus-visible,
.brand-filter-btn:focus-visible,
.tb-btn-quickview:focus-visible,
.tb-btn-inquire:focus-visible,
.site-header a:focus-visible {
    outline: 3px solid #d2151e;
    outline-offset: 3px;
}
.site-header .main-bar.bg-primary a:focus-visible { outline-color: #fff; }

@media (max-width: 767px) {
    .section-head { margin-bottom: 32px; }
    .dlab-bnr-inr-entry:has(> p) { display: flex; }
    .dlab-bnr-inr-entry > p { font-size: 15px; }
    .breadcrumb-row { font-size: 13px; }
    .specs-table th, .specs-table td { padding: 10px; }
    .site-footer .footer-title { font-size: 16px; }
}

@media (max-width: 575px) {
    .specs-table th { width: 40%; font-size: 13px; overflow-wrap: normal; }
}
