/* Abordazh theme overrides. Loaded after theme.css via stylesheets.tpl. */
@import url("https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500;600&family=IBM+Plex+Sans:wght@400;500;600;700&display=swap");

:root {
  --font: "IBM Plex Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;
  --font-head: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  --font-mono: "IBM Plex Mono", ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;

  /* Map Bootstrap font tokens the theme uses onto ours. */
  --bs-body-font-family: var(--font);
  --bs-font-sans-serif: var(--font);
  --bs-font-monospace: var(--font-mono);
}

body {
  font-family: var(--font);
}

h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6 {
  font-family: var(--font-head);
}

code, pre, kbd, samp {
  font-family: var(--font-mono);
}

/* =============================================================================
   Brand recolour — Bootstrap "primary" blue (#0b69f6 / #0954c5 / rgba(11,105,246))
   → Abordazh green (--abz-panel #051e05). Hover/active use a lighter green so the
   feedback stays visible on the dark base. Overrides the theme's baked literals.
   ========================================================================== */
:root,
[data-bs-theme="light"] {
  --bs-primary: #051e05;
  --bs-primary-rgb: 5, 30, 5;
  --bs-primary-text-emphasis: #031203;
  --bs-primary-bg-subtle: #dde6dd;
  --bs-primary-border-subtle: #b7c8b7;
  --bs-link-color: #051e05;
  --bs-link-color-rgb: 5, 30, 5;
  --bs-link-hover-color: #0a330a;
  --bs-link-hover-color-rgb: 10, 51, 10;
}

/* Solid primary buttons */
.btn-primary {
  --bs-btn-bg: #051e05;
  --bs-btn-border-color: #051e05;
  --bs-btn-hover-bg: #0a330a;
  --bs-btn-hover-border-color: #0a330a;
  --bs-btn-active-bg: #0a330a;
  --bs-btn-active-border-color: #0a330a;
  --bs-btn-disabled-bg: #051e05;
  --bs-btn-disabled-border-color: #051e05;
  --bs-btn-focus-shadow-rgb: 5, 30, 5;
}

/* Outline primary buttons */
.btn-outline-primary {
  --bs-btn-color: #051e05;
  --bs-btn-border-color: #051e05;
  --bs-btn-hover-bg: #051e05;
  --bs-btn-hover-border-color: #051e05;
  --bs-btn-active-bg: #051e05;
  --bs-btn-active-border-color: #051e05;
  --bs-btn-focus-shadow-rgb: 5, 30, 5;
}

/* Links (theme falls back to --bs-link-color). Exclude .btn — buttons manage
   their own text colour, otherwise this would repaint hovered button labels. */
a:not(.btn) { color: var(--bs-link-color); }
a:not(.btn):hover { color: var(--bs-link-hover-color); }

/* Keep button labels readable on the green hover/active fill (white text). */
.btn-primary:hover, .btn-primary:focus-visible, .btn-primary:active, .btn-primary.active,
.btn-outline-primary:hover, .btn-outline-primary:focus-visible, .btn-outline-primary:active, .btn-outline-primary.active {
  color: #fff;
}

/* Focus rings on form controls (theme bakes rgba(11,105,246,.25) as a literal) */
.form-control:focus,
.form-select:focus,
.form-check-input:focus,
.page-link:focus {
  border-color: #0a330a;
  box-shadow: 0 0 0 .25rem rgba(5, 30, 5, .25);
}

/* Checkboxes / radios / switches */
.form-check-input:checked {
  background-color: #051e05;
  border-color: #051e05;
}

/* Pagination */
.page-link { color: #051e05; }
.page-item.active .page-link,
.active > .page-link {
  background-color: #051e05;
  border-color: #051e05;
}

/* Active nav / dropdown / list-group states that use primary */
.nav-pills .nav-link.active,
.nav-pills .show > .nav-link,
.dropdown-item.active, .dropdown-item:active,
.list-group-item.active {
  background-color: #051e05;
  border-color: #051e05;
}

/* Pagination: active page keeps white text on the green fill */
.page-item.active .page-link,
.pagination .active > .page-link { color: #fff; }

/* Dark footer (#212529): links must stay light — the global green link recolour
   would otherwise render them invisible on the dark panel. */
.footer a:not(.btn) { color: rgba(255, 255, 255, .72); }
.footer a:not(.btn):hover,
.footer a:not(.btn):focus { color: #fff; }

/* Customer-reassurance icons are inline SVGs whose paths are filled bright blue
   (#0b69f6). Recolour the shapes to brand green (they're transparent line icons,
   so filling the paths just swaps the blue). */
.blockreassurance .reassurance__image svg,
.blockreassurance .reassurance__image svg path,
.blockreassurance .reassurance__image svg circle,
.blockreassurance .reassurance__image svg rect,
.blockreassurance .reassurance__image svg polygon,
.blockreassurance .reassurance__image svg line {
  fill: #051e05 !important;
}
/* icons that happen to be stroke-drawn get the green on their stroke instead */
.blockreassurance .reassurance__image svg [stroke]:not([stroke="none"]) {
  stroke: #051e05 !important;
}

/* =============================================================================
   Contact page — intro block (phones / hours / email / socials)
   ========================================================================== */
.abz-contact-intro { max-width: 960px; margin: 0 auto clamp(24px, 3vw, 40px); }
.abz-contact-intro__title {
  font-family: var(--font-head, system-ui, sans-serif);
  color: #051e05; font-weight: 700; margin: 0 0 12px;
}
.abz-contact-intro__lead {
  color: #46564a; font-size: clamp(15px, 1.1vw, 17px); line-height: 1.5;
  margin: 0 0 clamp(20px, 2.4vw, 28px); max-width: 62ch;
}
.abz-contact-intro__grid {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: clamp(16px, 2vw, 28px); margin-bottom: clamp(18px, 2.2vw, 26px);
}
.abz-contact-intro__item { display: flex; flex-direction: column; gap: 3px; }
.abz-contact-intro__label {
  font-family: var(--font-mono, ui-monospace, monospace);
  font-size: 12px; letter-spacing: .12em; text-transform: uppercase;
  color: #6d8a6d; margin-bottom: 3px;
}
.abz-contact-intro__item a { color: #051e05; font-weight: 600; text-decoration: none; }
.abz-contact-intro__item a:hover { text-decoration: underline; }
.abz-contact-intro__item p { margin: 0; color: #46564a; }
.abz-contact-intro__note { color: #46564a; font-size: 14px; line-height: 1.5; max-width: 72ch; }

/* =============================================================================
   Footer — custom 4-column layout (categories / categories / info / contacts)
   ========================================================================== */
.abz-foot__col { margin-bottom: 26px; }
.abz-foot__title {
  font-family: var(--font-head, system-ui, sans-serif);
  font-weight: 700; font-size: 16px; color: #fff; margin: 0 0 14px;
}
.abz-foot__list { list-style: none; margin: 0; padding: 0; }
.abz-foot__list li { margin: 0 0 9px; }
.abz-foot__list a { color: rgba(255,255,255,.72); text-decoration: none; font-size: 14px; }
.abz-foot__list a:hover { color: #fff; }
.abz-foot__contacts a { font-weight: 600; color: rgba(255,255,255,.88); }
.abz-foot__hours { color: rgba(255,255,255,.6); font-size: 13px; line-height: 1.45; margin: 14px 0 12px; }
.abz-foot__social { display: flex; gap: 18px; }
.abz-foot__social a { color: rgba(255,255,255,.72); text-decoration: none; font-weight: 600; font-size: 14px; }
.abz-foot__social a:hover { color: #fff; }

/* copyright bar */
.abz-copyright {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-start;
  gap: 10px 32px; padding-top: 18px; margin-top: 8px;
  border-top: 1px solid rgba(255,255,255,.1);
}
.abz-copyright__text { color: rgba(255,255,255,.55); font-size: 13px; }
.abz-copyright__links { display: flex; flex-wrap: wrap; gap: 18px; }
.abz-copyright__links a { color: rgba(255,255,255,.6); text-decoration: none; font-size: 13px; }
.abz-copyright__links a:hover { color: #fff; text-decoration: underline; }
@media (max-width: 575.98px) { .abz-copyright { justify-content: flex-start; } }

.abz-foot__title--ghost { visibility: hidden; }
