/*
Theme Name: CIMSPA Professional Status
Theme URI: https://www.cimspa.co.uk/
Author: CIMSPA
Author URI: https://www.cimspa.co.uk/
Description: A production-ready WordPress block theme (Full Site Editing) for the CIMSPA Professional Status brand. Ships the brand palette and Poppins typography via theme.json, a header/footer template part set, full template hierarchy, and a library of section block patterns (hero, credential slider, pricing, comparison tables, FAQ, join flow and more). Built on core blocks — no page builder required.
Requires at least: 6.6
Tested up to: 6.7
Requires PHP: 7.4
Version: 1.0.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: cimspa
Tags: full-site-editing, block-patterns, custom-colors, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready, accessibility-ready, sticky-post, blog, portfolio
*/

/* =================================================================
   This is a BLOCK THEME. Global styles, colours, typography and
   spacing live in theme.json — not here. This stylesheet carries
   only the rules that block attributes / theme.json cannot express:
   accessibility utilities, the credential slider scroll-snap, card
   hover lift, reduced-motion handling and the coloured-emphasis
   <em> convention used in headings.
   These rules are also loaded into the editor via add_editor_style().
================================================================= */

/* ---- Accessibility: skip link + screen-reader text -------------- */
.skip-link.screen-reader-text {
  background: #fff;
  color: #12326e;
  border-radius: 0 0 8px 0;
  box-shadow: 0 2px 8px rgba(12, 35, 81, .25);
  clip: rect(1px, 1px, 1px, 1px);
  clip-path: inset(50%);
  font-weight: 700;
  left: -9999rem;
  padding: 14px 22px;
  position: fixed;
  top: 0;
  z-index: 100000;
}
.skip-link.screen-reader-text:focus {
  clip: auto;
  clip-path: none;
  left: 6px;
  outline-offset: 2px;
}
.screen-reader-text {
  border: 0;
  clip: rect(1px, 1px, 1px, 1px);
  clip-path: inset(50%);
  height: 1px;
  width: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute !important;
  word-wrap: normal !important;
}

/* ---- Visible focus for keyboard users --------------------------- */
:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
  outline: 3px solid #00afd7;
  outline-offset: 2px;
  border-radius: 4px;
}

/* ---- Coloured-emphasis convention: non-italic <em> in headings -- */
.cimspa-accent em { font-style: normal; color: #0090b4; }
.cimspa-accent--cyan em { font-style: normal; color: #00afd7; }

/* ---- Credential slider: horizontal scroll-snap ------------------ */
.cimspa-slider {
  display: flex;
  gap: 20px;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  padding-bottom: 16px;
}
.cimspa-slider::-webkit-scrollbar { display: none; }
.cimspa-slider > .cimspa-credential {
  flex: 0 0 312px;
  scroll-snap-align: start;
}

/* ---- Card hover lift -------------------------------------------- */
.cimspa-lift { transition: transform .2s ease, box-shadow .2s ease; }
.cimspa-lift:hover {
  transform: translateY(-3px);
  box-shadow: 0 18px 48px rgba(18, 50, 110, .14);
}

/* ---- FAQ: native <details> accordion ---------------------------- */
.cimspa-faq summary { cursor: pointer; list-style: none; }
.cimspa-faq summary::-webkit-details-marker { display: none; }
.cimspa-faq .cimspa-faq__icon { transition: transform .2s ease; }
.cimspa-faq[open] .cimspa-faq__icon { transform: rotate(45deg); }

/* ---- Slider / tab controls -------------------------------------- */
.cimspa-pill[aria-selected="true"] {
  background: #12326e !important;
  color: #fff !important;
  border-color: #12326e !important;
}

/* ---- Respect reduced-motion ------------------------------------- */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: .001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .001ms !important;
    scroll-behavior: auto !important;
  }
  .cimspa-slider { scroll-behavior: auto; }
}

/* ---- Responsive: stack columns on small screens ----------------- */
@media (max-width: 781px) {
  .cimspa-slider > .cimspa-credential { flex-basis: 80vw; }
}
