/* ==========================================================================
   SBI Page Builder — nested elements (section / column / widgets)
   Public-facing styles for the Elementor-style layout system.
   ========================================================================== */

.pb-el { position: relative; }

/* ---- Section --------------------------------------------------------- */
.pb-section { width: 100%; }
.pb-section__row {
    display: flex;
    flex-wrap: wrap;
    align-items: stretch;
}
.pb-section--boxed > .pb-section__row {
    max-width: 1400px;
    margin: 0 auto;
}
.pb-section--full > .pb-section__row { width: 100%; }

/* A composite widget (news, featured products, equipment band…) carries its own
   .pb-container/.sb-container for when it is used standalone. Inside a BOXED
   builder section the section row already supplies the 1400px container, so
   neutralise the widget's inner one — otherwise it double-wraps and renders
   narrower than native sections. Full-width sections keep it (it supplies the
   1400px there). */
.pb-section--boxed .pb-container,
.pb-section--boxed .sb-container,
.pb-section--boxed .pb-ref-container {
    max-width: none;
    width: 100%;
}

/* ---- Column --------------------------------------------------------- */
.pb-el--column { min-width: 0; }
.pb-column__inner {
    display: flex;
    flex-direction: column;
    height: 100%;
}

/* ---- Container (Elementor-style, nestable) -------------------------- */
.pb-el--container { width: 100%; }
.pb-container__host {
    display: flex;            /* default; overridden by the Layout tab */
    flex-direction: column;
    gap: 20px;
}
.pb-container__host--boxed {
    max-width: 1400px;
    margin: 0 auto;
    padding: 0 20px;
    width: 100%;
}

/* ---- Widgets -------------------------------------------------------- */
.pb-widget { margin: 0 0 16px; }
.pb-widget:last-child { margin-bottom: 0; }

.pb-heading { margin: 0 0 12px; line-height: 1.25; color: #131413; font-weight: 700; }
h1.pb-heading { font-size: 40px; }
h2.pb-heading { font-size: 32px; }
h3.pb-heading { font-size: 24px; }
h4.pb-heading { font-size: 20px; }
h5.pb-heading { font-size: 17px; }
p.pb-heading  { font-size: 16px; font-weight: 400; }

.pb-text { font-size: 16px; line-height: 1.7; color: #424342; }

.pb-image img { max-width: 100%; height: auto; display: block; }
.pb-image__placeholder {
    display: flex; align-items: center; justify-content: center;
    min-height: 120px; background: #f1f5f9; border: 1px dashed #cbd5e1;
    border-radius: 8px; color: #94a3b8; font-size: 28px;
}

/* Buttons */
.pb-btn {
    display: inline-flex; align-items: center; gap: 8px;
    padding: 12px 26px; border-radius: 10px;
    font-weight: 600; font-size: 15px; text-decoration: none;
    transition: filter .15s, background .15s, color .15s;
    cursor: pointer; border: 2px solid transparent;
}
.pb-btn:hover { filter: brightness(.95); }
.pb-btn--primary { background: #267043; color: #fff; }
.pb-btn--orange  { background: #e67e22; color: #fff; }
.pb-btn--dark    { background: #1a1a1a; color: #fff; }
.pb-btn--outline { background: transparent; color: #267043; border-color: #267043; }

/* Text-link button styles (transparent, coloured, with a trailing arrow) */
.pb-btn--link-green, .pb-btn--link-orange, .pb-btn--link-blue {
    background: transparent; border: none; border-radius: 0; padding: 0; font-weight: 600; gap: 6px;
}
.pb-btn--link-green { color: #267043; }
.pb-btn--link-orange { color: #e67e22; }
.pb-btn--link-blue { color: #2563eb; }
.pb-btn--link-green::after,
.pb-btn--link-orange::after,
.pb-btn--link-green::after,
.pb-btn--link-orange::after,
.pb-btn--link-blue::after {
    content: "";
    display: inline-block;
    width: 20px;
    height: 20px;
    margin-left: 6px;
    vertical-align: middle;

    background: no-repeat center/contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none'%3E%3Cpath d='M3 10L16 10' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M12 5L17 10L12 15' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");

    transition: transform .15s ease;
}
.pb-btn--link-green:hover::after,
.pb-btn--link-orange:hover::after,
.pb-btn--link-blue:hover::after {
    transform: translateX(3px);
}
.pb-btn--link-green:hover, .pb-btn--link-orange:hover, .pb-btn--link-blue:hover { filter: none; }
.pb-btn--link-green:hover::after, .pb-btn--link-orange:hover::after, .pb-btn--link-blue:hover::after { transform: translateX(4px); }

.pb-spacer { width: 100%; }
.pb-divider { width: 100%; }

/* Tablet: multi-column rows collapse to two-up */
@media (max-width: 1024px) {
    .pb-el--column { flex-basis: 48% !important; }
}
/* Mobile: everything stacks full width */
@media (max-width: 767px) {
    .pb-section__row { flex-direction: column; }
    .pb-el--column { flex: 1 1 100% !important; max-width: 100% !important; }
}
