/*
Theme Name: PBS Custom Theme
Theme URI: https://pointblankshooting.com
Description: Custom WordPress theme for pointblankshooting.co.uk, this theme is designed to work with elementor.
Author: Carl Beeston
Author URI: https://the-northern.agency
Version: 1.0.0
Text Domain: pointblank
*/

/* ===========================
   CSS Reset
   =========================== */

/* Box sizing rules */
*,
*::before,
*::after {
    box-sizing: border-box;
}

/* Remove default margin and padding */
* {
    margin: 0;
    padding: 0;
}

/* Keep left indentation on lists but remove top/bottom spacing */
ol, ul {
    margin-top: 0;
    margin-bottom: 0;
    padding-top: 0;
    padding-bottom: 0;
    padding-left: 40px;
}

/* Set core root defaults */
html:focus-within {
    scroll-behavior: smooth;
}

/* Set core body defaults */
html,
body {
    height: 100%;
}

body {
    min-height: 100vh;
    text-rendering: optimizeSpeed;
    line-height: 1.5;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    overflow-x: hidden;
}

/* Hide scrollbars on carousel and ticker elements while maintaining scroll functionality */
.carousel-track,
.ticker {
    -ms-overflow-style: none;
    scrollbar-width: none;
}

.carousel-track::-webkit-scrollbar,
.ticker::-webkit-scrollbar {
    display: none;
}

/* Remove underlines from all links */
a {
    text-decoration: none;
}

/* A elements that don't have a class get default styles */
a:not([class]) {
    text-decoration-skip-ink: auto;
}

/* Make images easier to work with */
img,
picture,
video,
canvas,
svg {
    display: block;
    max-width: 100%;
}

/* Inherit fonts for inputs and buttons */
input,
button,
textarea,
select {
    font: inherit;
}

/* Remove all animations, transitions and smooth scroll for people that prefer not to see them */
@media (prefers-reduced-motion: reduce) {
    html:focus-within {
        scroll-behavior: auto;
    }

    *,
    *::before,
    *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
        scroll-behavior: auto !important;
    }
}

/* ===========================
   CSS Variables
   =========================== */

:root {
    /* ── PBS Design System Colours ── */
    --pbs-black: #0D062C;
    --dark: #0F0830;
    --dark-gray: #140C38;
    --mid-gray: #1E1450;
    --light-gray: #9A8E76;
    --pbs-white: #FFF5DE;
    --off-white: #FFF5DE;
    --accent: #FACA78;
    --accent-dim: #C85103;
    --secondary: #F27C22;
    --danger: #CF1313;
    --burgundy: #681818;
    --forest: #314528;
    --teal: #095D40;
    --dark-burgundy: #2E0C0C;
    --dark-forest: #1A2614;
    --dark-teal: #052E20;

    /* ── Typography ── */
    --font-display: 'Bebas Neue', sans-serif;
    --font-body: 'DM Sans', sans-serif;

    /* ── Spacing (kept for backward compat with Elementor pages) ── */
    --spacing-xs: 0.25rem;
    --spacing-sm: 0.5rem;
    --spacing-md: 1rem;
    --spacing-lg: 1.5rem;
    --spacing-xl: 2rem;
    --spacing-xxl: 3rem;

    /* Gap */
    --gap-md: 1rem;

    /* Text Sizes */
    --text-xs: 0.875rem;
    --text-sm: 1rem;
    --text-base: 1.125rem;

    /* Fonts - Linked to Elementor Global Typography */
    --font-text: var(--e-global-typography-text-font-family, var(--font-body));
    --font-horizon: var(--e-global-typography-accent-font-family, Georgia, serif);

    /* Transitions */
    --transition-normal: all 0.3s ease;
    --transition-slow: all 0.4s ease;

    /* Opacity */
    --opacity-80: 0.8;
    --opacity-100: 1;
}

/* Apply fonts to body */
body {
    font-family: var(--font-body);
    background-color: var(--pbs-black);
    color: var(--pbs-white);
}

/* ===========================
   Utility Classes
   =========================== */

.container {
    max-width: 1280px;
    margin: 0 auto;
    padding: 0 24px;
}

.section-padding {
    padding: 100px 0;
}

.accent-text {
    color: var(--accent);
}

.secondary-text {
    color: var(--secondary);
}

/* ===========================
   Scroll Reveal Animations
   =========================== */

.reveal {
    opacity: 0;
    transform: translateY(40px);
    transition: all 0.8s cubic-bezier(0.16, 1, 0.3, 1);
}

.reveal.visible {
    opacity: 1;
    transform: translateY(0);
}

.reveal-delay-1 {
    transition-delay: 0.1s;
}

.reveal-delay-2 {
    transition-delay: 0.2s;
}

.reveal-delay-3 {
    transition-delay: 0.3s;
}

/* ===========================
   Custom Styles
   =========================== */

/* Screen reader only text - hides visually but keeps accessible */
.screen-reader-text {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border-width: 0;
}

.ti-controls {
    display: none !important;
}