﻿/* =============================================================
   Clean Crew Jamaica
   Core Styles

   Shared design tokens, base styles, typography, section headings,
   and reusable buttons used throughout the public website.
   ============================================================= */


/* =============================================================
   Design Tokens
   ============================================================= */

:root {
    --ccj-navy: #061a40;
    --ccj-blue: #0057e7;
    --ccj-red: #e31b23;
    --ccj-text: #15213a;
    --ccj-muted: #61708f;
    --ccj-soft: #f5f8fd;
    --ccj-white: #ffffff;
    --ccj-border: rgba(10, 31, 68, 0.12);
    --ccj-shadow: 0 24px 70px rgba(10, 31, 68, 0.15);
}


/* =============================================================
   Base Styles
   ============================================================= */

* {
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
}

body {
    margin: 0;
    color: var(--ccj-text);
    background: var(--ccj-white);
    font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

a {
    text-decoration: none !important;
}

/*
 * Main wrapper used by the homepage.
 */
.ccj-home {
    min-height: 100vh;
    color: var(--ccj-text);
    background: var(--ccj-white);
    overflow: visible;
}


/*
 * Main wrapper used by internal public-facing pages such as
 * About, Services, Contact, and Testimonials.
 */
.ccj-page {
    min-height: 100vh;
    color: var(--ccj-text);
    background: var(--ccj-white);
}


/* =============================================================
   Shared Section Heading
   ============================================================= */

/*
 * Standard centered heading treatment used by sections across
 * multiple pages.
 */
.ccj-section-heading {
    width: min(760px, calc(100% - 40px));
    margin: 0 auto 44px;
    text-align: center;
}

    .ccj-section-heading span {
        display: block;
        margin-bottom: 14px;
        color: var(--ccj-blue);
        font-size: 13px;
        font-weight: 900;
        text-transform: uppercase;
        letter-spacing: 0.04em;
    }

    .ccj-section-heading h2 {
        margin: 0;
        color: #071a3d;
        font-size: clamp(32px, 3vw, 46px);
        line-height: 1.12;
        letter-spacing: -0.045em;
        font-weight: 900;
    }

    .ccj-section-heading p {
        max-width: 560px;
        margin: 16px auto 0;
        color: var(--ccj-muted);
        font-size: 18px;
        line-height: 1.55;
        font-weight: 500;
    }


/* =============================================================
   Shared Primary and Secondary Buttons
   ============================================================= */

/*
 * Large action buttons used in hero sections and call-to-action
 * areas throughout the website.
 */
.ccj-primary-btn,
.ccj-secondary-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 18px;
    min-width: 190px;
    height: 58px;
    padding: 0 28px;
    border-radius: 16px;
    font-size: 15px;
    font-weight: 800;
    text-decoration: none;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.ccj-primary-btn {
    color: var(--ccj-white);
    background: var(--ccj-blue);
    box-shadow: 0 18px 45px rgba(0, 87, 231, 0.28);
}

    .ccj-primary-btn:hover,
    .ccj-primary-btn:focus {
        color: var(--ccj-white);
        text-decoration: none;
        transform: translateY(-2px);
        box-shadow: 0 22px 58px rgba(0, 87, 231, 0.34);
    }

.ccj-secondary-btn {
    color: var(--ccj-blue);
    background: rgba(255, 255, 255, 0.88);
    box-shadow: 0 18px 45px rgba(10, 31, 68, 0.08);
}

    .ccj-secondary-btn:hover,
    .ccj-secondary-btn:focus {
        color: var(--ccj-blue);
        text-decoration: none;
        transform: translateY(-2px);
        box-shadow: 0 22px 58px rgba(10, 31, 68, 0.12);
    }


/* =============================================================
   Shared Accessibility Improvements
   ============================================================= */

/*
 * Provides a visible keyboard focus indicator without affecting
 * normal mouse interactions.
 */
a:focus-visible,
button:focus-visible {
    outline: 3px solid rgba(0, 87, 231, 0.35);
    outline-offset: 3px;
}
