/*
Theme Name: Hello Elementor Child - FlyFirstFlight
Theme URI: https://flyfirstflight.co.uk
Description: FlyFirstFlight child theme. Holds brand tokens and genuinely global rules only. Component styling lives in the fff-widgets plugin stylesheet (see the styling decision ladder in the Fresh Digital site-build playbook).
Author: Fresh Digital
Template: hello-elementor
Version: 1.0.0
Text Domain: hello-elementor-fff
*/

/* [BRAND TOKENS] Single source of truth for FlyFirstFlight brand values.
   Why here: genuinely global, referenced by the fff-widgets component stylesheet.
   Colours extracted from the client's supplied logo SVGs. Added 05/08/2026. */
:root{
  --fff-yellow:#FEF60B;
  --fff-purple:#9C4A8F;
  --fff-purple-dark:#7E3A74;
  --fff-purple-tint:#FAF3F9;
  --fff-purple-tint-2:#F4E6F1;
  --fff-ink:#131313;
  --fff-grey-700:#4A4A4F;
  --fff-grey-500:#6F6F76;
  --fff-grey-200:#E6E6EA;
  --fff-grey-100:#F5F5F7;
  --fff-white:#FFFFFF;
  --fff-radius:14px;
  --fff-shadow:0 10px 30px rgba(19,19,19,.07);
}

/* [SELECTION] Brand-coloured text selection instead of the browser default blue.
   Why: no Elementor control exists for ::selection. Added 05/08/2026. */
::selection{background:var(--fff-yellow);color:var(--fff-ink);}

/* [FOCUS] Visible keyboard focus ring site-wide. A single brand-purple ring was
   invisible on the purple header, stats band, footer and purple buttons (1.00:1
   against its own background, failing WCAG 2.4.11 and 1.4.11). A dual ring - white
   inner, near-black outer - holds 3:1 against every surface on this site.
   Added 05/08/2026, reworked 06/08/2026. */
:where(a,button,input,select,textarea,[tabindex]):focus-visible{
  outline:2px solid var(--fff-white);
  outline-offset:2px;
  box-shadow:0 0 0 5px var(--fff-ink);
  border-radius:4px;
}

/* [SMOOTH ANCHORS] Anchor links land below the sticky header rather than under it.
   Why: no Elementor control for scroll-padding. Added 05/08/2026. */
html{scroll-behavior:smooth;scroll-padding-top:120px;}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto;}}

/* [TEXT BLOCK RHYTHM] Drop the trailing margin on the last paragraph of a text
   widget. Why: WordPress gives every <p> a bottom margin, so a single-paragraph
   text widget carries dead space that flex gaps then add to - it inflated every
   inline row and card on the build. Spacing between elements is owned by the
   container's gap, not by paragraph margins. Added 05/08/2026. */
.elementor-widget-text-editor p:last-child,
.elementor-widget-text-editor ul:last-child,
.elementor-widget-text-editor ol:last-child{margin-bottom:0;}

/* [HAIRLINE TOKEN] Divider colour for dark and brand-coloured surfaces, so panels
   stop inventing one-off rgba values. Added 06/08/2026. */
:root{--fff-hairline:rgba(255,255,255,.24);}
