/* Agro Preciso brand overrides — loaded after main.css. Template files stay untouched. */
:root {
  --cp-color-heading-primary: #005623;   /* brand deep green (logo ring) */
  --cp-color-theme-primary: #62B041;     /* brand leaf green */
  --brand-charcoal: #2B2B2B;             /* logo wordmark */
  --brand-mid-green: #459C3B;
}

/* Per-site accent */
.site-ng { --site-accent: #E0A526; }
.site-us { --site-accent: #2A7AB8; }

/* Services: quote + booking bar */
.service-actions-bar { padding: 32px 0; background-color: var(--cp-color-grey-1); }
.service-actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px 24px; }
.service-actions-text { margin: 0; font-size: 18px; font-weight: 600; color: var(--cp-color-heading-primary); }
.service-actions-btns { display: flex; flex-wrap: wrap; gap: 12px; }

/* Booking popup */
.booking-modal .modal-title { font-size: 20px; margin: 0; }
.booking-frame { display: block; width: 100%; height: min(75vh, 720px); border: 0; }
.booking-empty { padding: 48px 24px; text-align: center; }
.booking-newtab { font-size: 14px; }

/* Logo sizing: white logo sits in the template's green box */
.header .primary-header-inner .header-left-wrap { gap: 40px; }
.header .header-container { padding: 0 24px; }
.header .primary-header-inner .header-right-wrap { flex-wrap: nowrap; gap: 12px; }
/* Nigeria nav has 8 items: tighten spacing so it stays on one line */
@media (min-width: 1200px) {
  .header .primary-header-inner .header-menu-wrap ul li { margin: 0 12px; }
  .header .primary-header-inner .header-menu-wrap ul li a { font-size: 15px; }
}
@media (min-width: 1200px) and (max-width: 1499px) {
  .header .primary-header-inner .header-left-wrap { gap: 28px; }
  .header .primary-header-inner .header-menu-wrap ul li { margin: 0 9px; }
  .header .primary-header-inner .header-menu-wrap ul li a { font-size: 14px; }
}
.header .header-logo img { height: 44px; width: auto; }
.mobile-side-menu .side-menu-head a img { max-width: 140px; height: auto; }
.footer-logo img { height: 64px; width: auto; }
.footer-about { color: rgba(255,255,255,.8); }

/* Country selector */
.country-selector { margin-right: 12px; }
.country-selector .country-toggle {
  display: inline-flex; align-items: center; gap: 8px;
  background: transparent; border: 1px solid var(--cp-color-border-1);
  border-radius: 100px; padding: 6px 12px; font-size: 15px; color: var(--brand-charcoal);
}
.country-selector .country-toggle:focus-visible { outline: 2px solid var(--cp-color-heading-primary); outline-offset: 2px; }
.country-selector .dropdown-menu { min-width: 240px; padding: 8px; border-radius: 12px; }
.country-selector .dropdown-item { border-radius: 8px; padding: 10px 12px; }
.country-selector .dropdown-item small { display: block; color: #6b6b6b; font-size: 13px; }
.country-selector .dropdown-item.active,
.country-selector .dropdown-item:active { background: var(--cp-color-grey-1); color: var(--cp-color-heading-primary); }


/* Mobile menu country links */
.mobile-side-menu .country-list a { color: inherit; }

/* Footer social row */
.footer-bottom .social-list { display: flex; gap: 12px; list-style: none; padding: 0; margin: 0 0 16px; }
.footer-bottom .social-list a { color: #fff; }

/* Footer legal links */
.footer-legal { display: flex; flex-wrap: wrap; gap: 8px 24px; justify-content: flex-end; list-style: none; margin: 0; padding: 0; }
.footer-legal a { color: rgba(255,255,255,.85); }
.footer-legal a:hover { color: #fff; }
@media (max-width: 991px) { .footer-legal { justify-content: flex-start; } }


/* Top bar: contact details are links; keep the template's colours */
.top-bar .top-bar-list a { color: inherit; }
.top-bar .top-bar-list a:hover { text-decoration: underline; }
.footer-list a,
.side-menu-list a { color: inherit; }

/* Floating contact button (WhatsApp on /ng, click-to-call on /us) */
.floating-contact {
  position: fixed; right: 24px; bottom: 24px; z-index: 999;
  display: inline-flex; align-items: center; justify-content: center;
  width: 56px; height: 56px; border-radius: 50%;
  color: #fff; font-size: 26px; text-decoration: none;
  box-shadow: 0 6px 20px rgba(0, 0, 0, .2);
  transition: transform .2s ease;
}
.floating-contact:hover, .floating-contact:focus-visible { color: #fff; transform: scale(1.06); }
.floating-contact:focus-visible { outline: 3px solid var(--cp-color-heading-primary); outline-offset: 3px; }
.floating-contact-whatsapp { background: #1E8E4F; }  /* WhatsApp green, darkened for white-icon contrast */
.floating-contact-call { background: var(--cp-color-heading-primary); }
@media (max-width: 575px) { .floating-contact { right: 16px; bottom: 16px; width: 52px; height: 52px; } }
@media (prefers-reduced-motion: reduce) { .floating-contact { transition: none; } }

/* Top bar: the template hides it below 1400px, which hides the admin's top bar message on most
   laptops. Show it from 992px; phones keep the mobile menu's contact details instead. */
@media (min-width: 992px) and (max-width: 1399px) {
  .header .top-bar { display: block; }
  .header .top-bar .top-bar-inner .top-desc { font-size: 14px; }
}

/* Mobile menu contact details: links line up with the plain text (the template pads menu links) */
.mobile-side-menu .side-menu-contact .side-menu-list li p a { padding-left: 0; }


/* ─── Services (slice 6) ─────────────────────────────────────────────────── */

/* Page banner without a photo: the brand's deep green */
.breadcum-section.banner-plain { background-color: var(--cp-color-heading-primary); }
.breadcum-section .sub-title a { color: inherit; }
.breadcum-section .sub-title a:hover { text-decoration: underline; }

/* Template buttons on the dark-green bands */
.cp-primary-btn.btn-on-dark .btn-inner .btn-text,
.cp-primary-btn.btn-on-dark .btn-inner .btn-left,
.cp-primary-btn.btn-on-dark .btn-inner .btn-right { background-color: #fff; color: var(--cp-color-heading-primary); }
button.cp-primary-btn { border: 0; background: none; padding: 0; }

/* Service cards, grouped */
.ap-service-group + .ap-service-group { margin-top: 64px; }
.ap-service-group-title { font-size: 28px; margin-bottom: 24px; color: var(--cp-color-heading-primary); }
.ap-service-grid { display: grid; gap: 24px; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); }
.ap-service-card { display: flex; flex-direction: column; background: #fff; border-radius: 16px; overflow: hidden; box-shadow: 0 4px 18px rgba(0, 0, 0, .06); transition: box-shadow .2s ease; }
.ap-service-card:hover, .ap-service-card:focus-within { box-shadow: 0 8px 28px rgba(0, 0, 0, .12); }
.ap-service-card-media { position: relative; display: block; aspect-ratio: 16 / 10; background: var(--cp-color-grey-1); }
.ap-service-card-media img { width: 100%; height: 100%; object-fit: cover; }
.ap-service-card-placeholder { position: absolute; inset: 0; background: var(--cp-color-grey-1); }
.ap-service-card-icon { position: absolute; left: 20px; bottom: -24px; display: inline-flex; align-items: center; justify-content: center; width: 52px; height: 52px; border-radius: 12px; background: var(--cp-color-heading-primary); color: #fff; font-size: 22px; }
.ap-service-card-body { display: flex; flex: 1; flex-direction: column; gap: 10px; padding: 40px 20px 22px; }
.ap-service-card-title { font-size: 21px; line-height: 1.3; margin: 0; }
.ap-service-card-title a { color: var(--brand-charcoal); }
.ap-service-card-title a:hover { color: var(--cp-color-heading-primary); }
.ap-service-card-body p { margin: 0; flex: 1; }
.ap-service-card-link { font-weight: 600; color: var(--cp-color-heading-primary); }
@media (prefers-reduced-motion: reduce) { .ap-service-card { transition: none; } }

/* Service page: details and sidebar */
.ap-service-heading { font-size: 28px; margin: 40px 0 16px; color: var(--cp-color-heading-primary); }
.ap-service-body > .ap-service-heading:first-child { margin-top: 0; }
.ap-service-body .desc + .desc { margin-top: 16px; }
.service-list { list-style: none; padding: 0; margin: 16px 0; display: grid; gap: 10px; }
.service-list li { display: flex; gap: 10px; align-items: baseline; }
.service-list li i { color: var(--cp-color-heading-primary); }
.ap-service-figure { margin: 32px 0; }
.ap-service-figure img { width: 100%; height: auto; border-radius: 16px; }
.ap-sidebar-box { background: var(--cp-color-grey-1); border-radius: 16px; padding: 28px 24px; }
.ap-sidebar-box + .ap-sidebar-box { margin-top: 24px; }
.ap-sidebar-title { font-size: 22px; margin-bottom: 16px; }
.ap-sidebar-services { list-style: none; padding: 0; margin: 0; display: grid; gap: 8px; }
.ap-sidebar-services a { display: flex; gap: 12px; align-items: center; padding: 12px 14px; border-radius: 10px; background: #fff; color: var(--brand-charcoal); font-weight: 500; }
.ap-sidebar-services a i { width: 18px; color: var(--cp-color-heading-primary); }
.ap-sidebar-services a:hover, .ap-sidebar-services a.active { background: var(--cp-color-heading-primary); color: #fff; }
.ap-sidebar-services a:hover i, .ap-sidebar-services a.active i { color: #fff; }
.ap-contact-list { list-style: none; padding: 0; margin: 0 0 20px; display: grid; gap: 12px; }
.ap-contact-list li { display: flex; gap: 12px; align-items: baseline; }
.ap-contact-list li i { width: 18px; color: var(--cp-color-heading-primary); }
.ap-contact-list a { color: inherit; }
.ap-process-list { list-style: none; padding-left: 0; }

/* Closing call-to-action band */
.cta-band { background: var(--cp-color-heading-primary); color: #fff; padding: 64px 0; }
.cta-band-inner { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 24px 40px; }
.cta-band-title { color: #fff; font-size: 34px; margin: 0; }
.cta-band-text { color: rgba(255, 255, 255, .85); margin: 8px 0 0; }
.cta-band-btns { display: flex; flex-wrap: wrap; gap: 12px; }

/* Booking popup: consent before the provider's calendar loads */
.booking-consent { padding: 48px 24px; text-align: center; max-width: 560px; margin: 0 auto; }
.booking-consent-actions { display: flex; flex-wrap: wrap; gap: 12px; justify-content: center; margin-top: 20px; }
.booking-modal .btn-success { background-color: var(--cp-color-heading-primary); border-color: var(--cp-color-heading-primary); }
/* The current breadcrumb item: white and underlined; the template's leaf green on the banner
   is about 3.3:1, below WCAG AA (4.5:1) for small text. */
.breadcum-section .sub-title .inner-page { color: #fff; text-decoration: underline; text-underline-offset: 3px; }
/* Long banner titles (service names): smaller than the template's 120 px */
.breadcum-section.banner-long .breadcum-content .title { font-size: 72px; line-height: 1.05; }
@media (max-width: 1199px) { .breadcum-section.banner-long .breadcum-content .title { font-size: 60px; } }
@media (max-width: 992px) { .breadcum-section.banner-long .breadcum-content .title { font-size: 46px; } }
@media (max-width: 767px) { .breadcum-section.banner-long .breadcum-content .title { font-size: 32px; } }
/* Breadcrumb links stay white on hover (the template's deep green is unreadable on the banner) */
.breadcum-section .breadcum-content .sub-title .home:hover { color: #fff; }
/* Phones: the last crumb repeats the heading just above, so hide it visually (screen readers
   still hear it), keeping the trail inside the screen */
@media (max-width: 575px) {
  .breadcum-section .breadcum-content { padding-left: 20px; padding-right: 20px; }
  .breadcum-section .breadcum-content .sub-title { max-width: 100%; flex-wrap: wrap; }
  .breadcum-section .crumb-last {
    position: absolute !important; width: 1px; height: 1px; overflow: hidden;
    clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap;
  }
}


/* ─── Pages (slice 7) ───────────────────────────────────────────────────── */

/* Hero: admin headings are longer than the template's "High-Performance Farming" */
.hero-content-3 { padding-left: 20px; padding-right: 20px; }
.hero-content-3 .title { font-size: clamp(40px, 7vw, 96px); max-width: 1100px; margin-left: auto; margin-right: auto; }
.ap-hero-eyebrow { color: #fff; font-size: 18px; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; margin-bottom: 16px; }
.ap-hero-text { color: rgba(255, 255, 255, .9); font-size: 20px; max-width: 720px; margin: 24px auto 0; }
.ap-hero-btns { display: flex; flex-wrap: wrap; gap: 12px; justify-content: center; margin-top: 40px; }
.ap-home-fallback .ap-hero-btns { justify-content: flex-start; }
/* The slider arrows are real buttons (keyboard and screen readers) */
.hero-section-3 .agrigo-slider-nav button { background: transparent; padding: 0; font: inherit; }
.hero-section-3 .agrigo-slider-nav button:focus-visible { outline: 3px solid #fff; outline-offset: 3px; }

/* Lists that keep the template's grid look */
.ap-plain-list { list-style: none; margin: 0; padding: 0; }
/* Inside a list item the card link must be a block, or its white card isn't drawn */
.service-grid-wrap > li > .service-item-3 { display: block; height: 100%; }
.service-section-3 .service-grid-wrap { grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); }
.service-section-3 .service-item-3 .content p { color: var(--cp-color-text-body); }
.service-section-3 .service-item-3 .read-more { color: var(--cp-color-heading-primary); font-weight: 600; }
/* Centred introductions read better in a narrower column */
.section-heading.text-center .desc { max-width: 820px; margin-left: auto; margin-right: auto; }
.ap-feature-list { list-style: none; padding-left: 0; }
.ap-feature-list > li > .feature-item-4 { height: 100%; }
.feature-item-4 .icon i { font-size: 28px; }
.feature-item-4 .title a { color: inherit; }
.feature-item-4 .title a:hover { text-decoration: underline; }
.ap-feature-photo { border-radius: 8px; overflow: hidden; aspect-ratio: 4 / 3; }
.ap-feature-photo img { width: 100%; height: 100%; object-fit: cover; }

/* Spotlight: text beside a photo */
.ap-spotlight .ap-spotlight-image { border-radius: 16px; overflow: hidden; }
.ap-spotlight .ap-spotlight-image img { width: 100%; height: auto; display: block; }
.ap-spotlight + .ap-spotlight { padding-top: 0; }

/* Headings inside admin text ("## " lines) and the legal pages */
.ap-text-heading { font-size: 26px; margin: 40px 0 14px; color: var(--cp-color-heading-primary); }
.ap-text-heading:first-child { margin-top: 0; }
.ap-legal-body { max-width: 820px; }
.ap-legal-body .desc + .desc { margin-top: 16px; }
.ap-legal-date { font-weight: 600; margin-bottom: 32px; }


/* U.S. home hero (the template's hero-section): text bottom left, sized for longer headings */
.ap-us-hero .hero-content .title { font-size: clamp(44px, 6.5vw, 104px); max-width: 1100px; }
.ap-us-hero .ap-hero-text { margin: 20px 0 0; text-align: left; }
.ap-us-hero .ap-hero-btns { justify-content: flex-start; margin-top: 36px; }

/* About block: the photo at its own shape beside the text (landscape or portrait) */
.ap-about-image { border-radius: 16px; overflow: hidden; }
.ap-about-image img { display: block; width: 100%; height: auto; max-height: 640px; object-fit: cover; }
@media (min-width: 992px) { .ap-about-content { padding-left: 24px; } }


/* ─── Projects (slice 8) ────────────────────────────────────────────────── */

/* Filter bar: three drop-downs and a button, wrapping on phones */
.ap-filter-bar { display: flex; flex-wrap: wrap; gap: 16px; align-items: flex-end; justify-content: center; margin-bottom: 24px; }
.ap-filter-field { display: flex; flex-direction: column; gap: 6px; min-width: 200px; }
.ap-filter-field label { font-weight: 600; color: var(--cp-color-heading-primary); }
.ap-filter-field select { height: 48px; padding: 0 14px; border: 1px solid var(--cp-color-border-1); border-radius: 8px; background: #fff; color: var(--cp-color-text-body); }
.ap-filter-field select:focus-visible { outline: 3px solid var(--cp-color-theme-primary); outline-offset: 2px; }
.ap-filter-actions { display: flex; align-items: center; gap: 16px; }
.ap-filter-actions button.cp-primary-btn { border: 0; }
.ap-filter-count { text-align: center; margin-bottom: 40px; color: var(--cp-color-text-body); }

/* Project page: facts as a definition list in the template's card */
.ap-facts { margin: 0; }
.ap-facts > div { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 20px 0; border-bottom: 1px solid rgba(16, 85, 31, .1); }
.ap-facts dt { font-weight: 400; }
.ap-facts dd { margin: 0; text-align: right; font-size: 18px; color: var(--cp-color-heading-primary); }
.ap-facts dd a { color: inherit; text-decoration: underline; }
.ap-story + .ap-story { margin-top: 48px; }
.ap-story-title { font-size: 32px; margin-bottom: 20px; }

/* Gallery: photos at their own shape in a grid; captions underneath */
.ap-gallery-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 24px; }
.ap-gallery-grid figure { margin: 0; }
.ap-gallery-grid img { width: 100%; height: 260px; object-fit: cover; border-radius: 12px; display: block; }
.ap-gallery-grid a:focus-visible { outline: 3px solid var(--cp-color-theme-primary); outline-offset: 3px; display: block; border-radius: 12px; }
.ap-gallery-grid figcaption { margin-top: 10px; font-size: 15px; color: var(--cp-color-text-body); }


/* ─── Insights (slice 9) ────────────────────────────────────────────────── */

/* Article cards: category label and excerpt under the template's meta */
.post-item .post-meta .ap-post-category { color: var(--cp-color-heading-primary); font-weight: 600; }
.post-item .ap-post-excerpt { color: var(--cp-color-text-body); margin: 8px 0 16px; }

/* Category links and page numbers on the Insights page */
.ap-category-nav ul { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin-bottom: 48px; }
.ap-category-nav a, .ap-pagination a { display: inline-block; padding: 8px 16px; border: 1px solid var(--cp-color-border-1); border-radius: 999px; color: var(--cp-color-heading-primary); text-decoration: none; }
.ap-category-nav a span { color: var(--cp-color-text-body); }
.ap-category-nav a:hover, .ap-pagination a:hover { border-color: var(--cp-color-heading-primary); }
.ap-category-nav a[aria-current='page'], .ap-pagination a[aria-current='page'] { background: var(--cp-color-heading-primary); border-color: var(--cp-color-heading-primary); color: #fff; }
.ap-category-nav a[aria-current='page'] span { color: rgba(255, 255, 255, .8); }
.ap-pagination ul { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; margin-top: 56px; }

/* Article: categories under the meta, and the body (plain tags from the editor) */
.ap-post-categories { display: flex; flex-wrap: wrap; gap: 8px; margin: 16px 0 8px; }
.ap-post-categories a { font-size: 14px; padding: 4px 12px; border-radius: 999px; background: var(--cp-color-grey-1); color: var(--cp-color-heading-primary); text-decoration: none; }
.ap-article-body { margin-top: 32px; }
.ap-article-body p { color: var(--cp-color-text-body); margin-bottom: 20px; line-height: 1.75; }
.ap-article-body h2 { font-size: 32px; margin: 40px 0 16px; }
.ap-article-body h3 { font-size: 24px; margin: 32px 0 12px; }
.ap-article-body ul, .ap-article-body ol { margin: 0 0 20px; padding-left: 24px; color: var(--cp-color-text-body); }
.ap-article-body ul { list-style: disc; }
.ap-article-body ol { list-style: decimal; }
.ap-article-body li { margin-bottom: 8px; }
.ap-article-body a { color: var(--cp-color-heading-primary); text-decoration: underline; }
.ap-article-body blockquote { margin: 32px 0; padding: 24px 28px; border-left: 4px solid var(--cp-color-theme-primary); background: var(--cp-color-grey-1); border-radius: 0 12px 12px 0; font-size: 20px; color: var(--cp-color-heading-primary); }
.ap-article-body blockquote p:last-child { margin-bottom: 0; }
.ap-article-body figure { margin: 40px 0; }
.ap-article-body figure img { width: 100%; height: auto; border-radius: 16px; display: block; }
.ap-article-body figcaption { margin-top: 10px; font-size: 15px; color: var(--cp-color-text-body); }

/* End of article: related service and Request a Quote */
.ap-article-cta { margin-top: 56px; padding: 32px; border-radius: 16px; background: var(--cp-color-grey-1); }
.ap-article-cta h2 { font-size: 26px; margin-bottom: 12px; }
.ap-article-cta p { margin-bottom: 20px; }
.ap-article-cta a:not(.cp-primary-btn) { color: var(--cp-color-heading-primary); text-decoration: underline; }

/* Card titles are h2 on the Insights page and h3 on Home: same size on both (the h3 size) */
.post-item .title { font-size: var(--cp-fs-h3); line-height: 32px; }


/* ─── People, proof and training (slice 10) ─────────────────────────────── */

/* Team: the template's cards in a grid, with an optional short bio */
.ap-team .team-item .ap-team-bio { margin-top: 12px; font-size: 15px; color: var(--cp-color-text-body); }

/* Our Companies: one card per company, photo or logo on top */
.ap-company { height: 100%; display: flex; flex-direction: column; border: 1px solid var(--cp-color-border-1); border-radius: 16px; overflow: hidden; background: #fff; }
.ap-company-image img { width: 100%; height: 240px; object-fit: cover; display: block; }
.ap-company-body { padding: 32px; display: flex; flex-direction: column; gap: 12px; flex: 1; }
.ap-company-body .cp-primary-btn { align-self: flex-start; margin-top: auto; }
.ap-company-name { font-size: 28px; margin: 0; }
.ap-company-facts { color: var(--cp-color-heading-primary); font-weight: 600; margin: 0; }

/* Testimonials: the template's slider cards, sized for a two-column grid */
.ap-testimonial { margin: 0; gap: 24px; height: 100%; }
.ap-testimonial .image { width: 120px; height: 120px; }
.ap-testimonial blockquote.review { margin: 0 0 16px; }
.ap-testimonial .clints-wrap .name { display: block; font-weight: 700; }

/* Partners: logos in a centred grid instead of the moving slider */
.ap-partners .brand-title { text-align: center; margin-bottom: 40px; }
.ap-partner-grid { display: flex; flex-wrap: wrap; justify-content: center; gap: 24px; }
.ap-partner-grid .brand-item img { max-width: 120px; max-height: 64px; object-fit: contain; }
.ap-partner-grid .brand-item a:focus-visible { outline: 3px solid var(--cp-color-theme-primary); outline-offset: 4px; display: block; }

/* Training: programme facts in the template's pricing card */
.ap-programme { height: 100%; }
.ap-programme-facts { margin: 20px 0 28px; }
.ap-programme-facts > div { display: flex; justify-content: space-between; gap: 16px; padding: 10px 0; border-bottom: 1px solid rgba(16, 85, 31, .1); }
.ap-programme-facts dt { font-weight: 400; color: var(--cp-color-text-body); }
.ap-programme-facts dd { margin: 0; text-align: right; font-weight: 600; color: var(--cp-color-heading-primary); }


/* ─── Contact page (slice 11) ───────────────────────────────────────────── */

/* Office details as a definition list */
.ap-contact-details { margin: 24px 0 0; }
.ap-contact-details > div { display: grid; grid-template-columns: 10rem 1fr; gap: 12px; padding: 16px 0; border-bottom: 1px solid rgba(16, 85, 31, .1); }
.ap-contact-details dt { font-weight: 400; color: var(--cp-color-text-body); }
.ap-contact-details dd { margin: 0; color: var(--cp-color-heading-primary); font-weight: 600; }
.ap-contact-details dd a { color: inherit; text-decoration: underline; }
.ap-contact-details .ap-address { display: block; font-weight: 600; margin-bottom: 6px; }
.ap-contact-details .ap-address + a { font-weight: 400; }
@media (max-width: 575px) { .ap-contact-details > div { grid-template-columns: 1fr; gap: 4px; } }

/* Book a Consultation / Book a Call beside the details */
.ap-booking-card { padding: 40px; border-radius: 16px; background: var(--cp-color-grey-1); }
.ap-booking-card h2 { font-size: 28px; margin-bottom: 12px; }
.ap-booking-card p { margin-bottom: 24px; }

/* The form: visible labels, focus outline, error states */
.ap-contact-form label { display: block; margin-bottom: 8px; font-weight: 600; color: var(--cp-color-heading-primary); }
.ap-contact-form .form-control { margin-bottom: 0; }
.ap-contact-form .form-control:focus-visible { outline: 3px solid var(--cp-color-theme-primary); outline-offset: 2px; }
.ap-contact-form .form-control[aria-invalid='true'] { border-color: #b42318; }
.ap-contact-form select.form-control { height: auto; }
.ap-form-note { margin-bottom: 20px; color: var(--cp-color-text-body); }
.ap-field-error { margin: 8px 0 0; color: #b42318; font-size: 15px; font-weight: 600; }
.ap-form-alert { margin-bottom: 24px; padding: 14px 18px; border-radius: 12px; border: 1px solid #b42318; background: #fef3f2; color: #7a271a; }
.ap-form-alert:focus { outline: 3px solid #b42318; outline-offset: 2px; }
.ap-contact-form .contact-btn[disabled] { opacity: .7; cursor: progress; }
.ap-form-success { padding: 32px; border-radius: 16px; background: #fff; border: 1px solid rgba(16, 85, 31, .2); }
.ap-form-success h3 { font-size: 26px; margin-bottom: 12px; }
.ap-form-success h3:focus { outline: none; }
.cf-turnstile { min-height: 65px; }

/* The trap field: off screen for people, still in the page for scripts */
.ap-trap { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }


/* The forms' error list at the top */
.ap-form-alert p { margin: 0 0 6px; font-weight: 600; }
.ap-form-alert ul { margin: 0; padding-left: 20px; list-style: disc; }


/* Training registration: the programme beside the form */
.ap-register-summary { padding: 32px; border-radius: 16px; background: var(--cp-color-grey-1); }
.ap-register-summary h2 { font-size: 26px; margin-bottom: 12px; }
.ap-register-summary a { color: var(--cp-color-heading-primary); text-decoration: underline; }


/* ─── Page edges: consistent breathing room at the sides ─────────────────── */

/* Content sections: 20px on phones, up to 32px on wider screens (the template had 12px). */
.container {
  padding-left: clamp(50px, 4vw, 32px);
  padding-right: clamp(50px, 4vw, 32px);
}

/* Full-width bands (top bar, page banner, hero): 20px on phones, up to 100px on large
   screens, matching the template's top bar and hero. */
.container-fluid {
  padding-left: clamp(50px, 5vw, 100px);
  padding-right: clamp(50px, 5vw, 100px);
}

/* The header's frame had no side padding at all, so the logo and menu touched the window's
   edges on wide screens. It now lines up with the top bar above it. */
.header .header-container {
  padding-left: clamp(50px, 5vw, 100px);
  padding-right: clamp(50px, 5vw, 100px);
}

