/* CEEJAYS MAIN.CSS — VERSION 5.7 — STICKY AVAILABILITY CTA — 2026-08-22
 *
 * One stylesheet for the complete CeeJays theme.
 *
 * Includes:
 * - design tokens / typography / header / footer / navigation
 * - homepage
 * - Party & Event Hire
 * - Areas We Cover
 * - Hire Information
 * - About
 * - WooCommerce archives
 * - WooCommerce single products
 * - sitewide confetti background
 *
 * IMPORTANT:
 * Page templates retain their existing semantic classes.
 * Future shared visual changes should be made in the
 * SITEWIDE SHARED COMPONENT OVERRIDES section at the end.
 */


/* =========================================================
   MASTER THEME
   ========================================================= */



/* =========================================================
   MODULE: GLOBAL HEADER / BASE THEME
   ========================================================= */

/* CEEJAYS MAIN.CSS — VERSION 3.5 — DOMINANT LOGO — 2026-08-19 21:50 BST */
/* =========================================================
   CEEJAYS BOUNCY CASTLES
   Global Theme Styles
   ========================================================= */


/* =========================================================
   1. DESIGN TOKENS
   ========================================================= */

:root {

    /* Brand */
    --cj-primary: #7D7EFC;
    --cj-primary-dark: #5F60DD;
    --cj-primary-soft: #EEEEFF;

    --cj-sky: #B5CEE6;
    --cj-sky-light: #EFF6FB;

    --cj-red: #F83030;
    --cj-green: #009000;
    --cj-pink: #E00080;
    --cj-orange: #F07A00;
    --cj-blue: #0010F0;

    /* Neutrals */
    --cj-white: #FFFFFF;
    --cj-off-white: #FAFAFC;
    --cj-text: #222436;
    --cj-text-soft: #626579;
    --cj-border: #E3E5ED;
    --cj-dark: #24264A;
    --cj-dark-deep: #1B1D3C;

    /* Layout */
    --cj-container: 1200px;
    --cj-content: 820px;

    /* Radius */
    --cj-radius-sm: 8px;
    --cj-radius: 14px;
    --cj-radius-lg: 24px;

    /* Shadows */
    --cj-shadow-sm: 0 4px 14px rgba(25, 28, 60, 0.07);
    --cj-shadow: 0 12px 32px rgba(25, 28, 60, 0.11);

    /* Spacing */
    --cj-space-xs: 8px;
    --cj-space-sm: 16px;
    --cj-space-md: 24px;
    --cj-space-lg: 40px;
    --cj-space-xl: 64px;
    --cj-space-xxl: 88px;

    /* Fonts */
    --cj-font-heading:
        "Trebuchet MS",
        "Arial Rounded MT Bold",
        Arial,
        sans-serif;

    --cj-font-body:
        system-ui,
        -apple-system,
        BlinkMacSystemFont,
        "Segoe UI",
        Arial,
        sans-serif;
}


/* =========================================================
   2. RESET
   ========================================================= */

*,
*::before,
*::after {
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
    font-size: 16px;
}

body {
    margin: 0;

    background: var(--cj-white);
    color: var(--cj-text);

    font-family: var(--cj-font-body);
    font-size: 17px;
    line-height: 1.65;

    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}


/* =========================================================
   3. TYPOGRAPHY
   ========================================================= */

h1,
h2,
h3,
h4,
h5,
h6 {
    margin-top: 0;

    color: var(--cj-dark);

    font-family: var(--cj-font-heading);
    font-weight: 700;
    line-height: 1.15;
}

h1 {
    margin-bottom: 24px;

    font-size: clamp(2.5rem, 5vw, 4.6rem);
    letter-spacing: -0.045em;
}

h2 {
    margin-bottom: 20px;

    font-size: clamp(2rem, 4vw, 3.2rem);
    letter-spacing: -0.035em;
}

h3 {
    margin-bottom: 16px;

    font-size: clamp(1.4rem, 2vw, 1.9rem);
    letter-spacing: -0.02em;
}

h4 {
    margin-bottom: 14px;

    font-size: 1.25rem;
}

p {
    margin-top: 0;
    margin-bottom: 20px;
}

p:last-child {
    margin-bottom: 0;
}

strong {
    font-weight: 700;
}


/* =========================================================
   4. LINKS
   ========================================================= */

a {
    color: var(--cj-primary-dark);

    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
}

a:hover {
    color: var(--cj-pink);
}


/* =========================================================
   5. MEDIA
   ========================================================= */

img {
    display: block;

    max-width: 100%;
    height: auto;
}

figure {
    margin: 0;
}


/* =========================================================
   6. CONTAINERS
   ========================================================= */

.cj-container,
.site-header__inner,
.site-footer__inner,
.site-footer__bottom-inner,
.site-content {
    width: min(
        var(--cj-container),
        calc(100% - 48px)
    );

    margin-inline: auto;
}

.cj-content {
    width: min(
        var(--cj-content),
        calc(100% - 48px)
    );

    margin-inline: auto;
}

.site-main {
    min-height: 60vh;
}


/* =========================================================
   7. SECTION SYSTEM
   ========================================================= */

.cj-section {
    padding-block: var(--cj-space-xxl);
}

.cj-section--small {
    padding-block: var(--cj-space-xl);
}

.cj-section--sky {
    background: var(--cj-sky-light);
}

.cj-section--purple {
    background: var(--cj-primary-soft);
}

.cj-section--dark {
    background: var(--cj-dark);
    color: var(--cj-white);
}

.cj-section--dark h1,
.cj-section--dark h2,
.cj-section--dark h3 {
    color: var(--cj-white);
}


/* =========================================================
   8. EYEBROWS
   ========================================================= */

.cj-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 8px;

    margin-bottom: 14px;

    color: var(--cj-primary-dark);

    font-size: 0.82rem;
    font-weight: 800;

    letter-spacing: 0.09em;
    line-height: 1;

    text-transform: uppercase;
}

.cj-eyebrow::before {
    width: 8px;
    height: 8px;

    background: var(--cj-pink);

    border-radius: 50%;

    content: "";
}


/* =========================================================
   9. BUTTONS
   ========================================================= */

.cj-button,
input[type="submit"] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;

    min-height: 50px;

    padding: 13px 24px;

    border: 2px solid var(--cj-primary);
    border-radius: var(--cj-radius-sm);

    background: var(--cj-primary);
    color: var(--cj-white);

    font-family: var(--cj-font-body);
    font-size: 1rem;
    font-weight: 750;
    line-height: 1.2;

    text-align: center;
    text-decoration: none;

    cursor: pointer;

    transition:
        background-color 0.2s ease,
        border-color 0.2s ease,
        color 0.2s ease,
        transform 0.2s ease;
}

.cj-button:hover,
input[type="submit"]:hover {
    background: var(--cj-primary-dark);
    border-color: var(--cj-primary-dark);

    color: var(--cj-white);

    transform: translateY(-1px);
}

.cj-button--outline {
    background: transparent;
    color: var(--cj-primary-dark);
}

.cj-button--outline:hover {
    background: var(--cj-primary);
    color: var(--cj-white);
}

.cj-button--dark {
    background: var(--cj-dark);
    border-color: var(--cj-dark);
}

.cj-button--pink {
    background: var(--cj-pink);
    border-color: var(--cj-pink);
}


/* =========================================================
   10. BUTTON GROUPS
   ========================================================= */

.cj-buttons {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
}


/* =========================================================
   11. CARDS
   ========================================================= */

.cj-card {
    overflow: hidden;

    border: 1px solid var(--cj-border);
    border-radius: var(--cj-radius);

    background: var(--cj-white);

    box-shadow: var(--cj-shadow-sm);
}

.cj-card__content {
    padding: 24px;
}


/* =========================================================
   12. GRIDS
   ========================================================= */

.cj-grid {
    display: grid;
    gap: 28px;
}

.cj-grid--2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.cj-grid--3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.cj-grid--4 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}


/* =========================================================
   13. HEADER
   ========================================================= */

.site-header {
    position: relative;
    z-index: 1000;

    border-bottom: 1px solid var(--cj-border);

    background: rgba(255, 255, 255, 0.98);
}

.site-header__inner {
    display: flex;
    align-items: center;
    gap: 38px;

    min-height: 108px;
}

.site-header__logo {
    flex: 0 0 auto;
}

.site-header__logo img {
    width: auto;
    max-width: 250px;
    max-height: 82px;
}


/* =========================================================
   14. DESKTOP NAVIGATION
   ========================================================= */

.site-header__navigation-wrap {
    display: flex;
    flex: 1;

    align-items: center;
    justify-content: flex-end;

    gap: 30px;
}

.site-navigation ul {
    display: flex;
    align-items: center;
    gap: 25px;

    margin: 0;
    padding: 0;

    list-style: none;
}

.site-navigation li {
    margin: 0;
    padding: 0;
}

.site-navigation a {
    position: relative;

    display: block;

    padding: 12px 0;

    color: var(--cj-dark);

    font-size: 0.95rem;
    font-weight: 750;
    line-height: 1.2;

    text-decoration: none;

    white-space: nowrap;
}

.site-navigation a::after {
    position: absolute;

    right: 0;
    bottom: 4px;
    left: 0;

    height: 2px;

    background: var(--cj-primary);

    content: "";

    transform: scaleX(0);
    transform-origin: center;

    transition: transform 0.2s ease;
}

.site-navigation a:hover {
    color: var(--cj-primary-dark);
}

.site-navigation a:hover::after,
.site-navigation .current-menu-item > a::after {
    transform: scaleX(1);
}


/* =========================================================
   15. HEADER ACTIONS
   ========================================================= */

.site-header__actions {
    display: flex;
    align-items: center;
    gap: 18px;
}

.site-header__call {
    display: flex;
    flex-direction: column;

    color: var(--cj-dark);

    line-height: 1.15;
    text-decoration: none;

    white-space: nowrap;
}

.site-header__call-label {
    margin-bottom: 4px;

    color: var(--cj-text-soft);

    font-size: 0.72rem;
    font-weight: 700;

    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.site-header__call strong {
    font-size: 1rem;
}

.site-header__call:hover strong {
    color: var(--cj-primary-dark);
}

.site-header__cta {
    min-height: 46px;

    padding: 11px 18px;

    font-size: 0.92rem;

    white-space: nowrap;
}


/* =========================================================
   16. MOBILE MENU TOGGLE
   ========================================================= */

.site-header__toggle {
    display: none;

    appearance: none;
    -webkit-appearance: none;

    margin: 0;
    padding: 0;

    border: 0;
    border-radius: 0;

    background: transparent;
    color: var(--cj-dark);

    box-shadow: none;

    font-family: var(--cj-font-body);

    cursor: pointer;
}


/* =========================================================
   17. MAIN CONTENT
   ========================================================= */

.site-content {
    padding-block: 60px;
}


/* =========================================================
   18. FORMS
   ========================================================= */

input,
textarea,
select {
    width: 100%;

    padding: 13px 15px;

    border: 1px solid #CCD0DC;
    border-radius: var(--cj-radius-sm);

    background: var(--cj-white);
    color: var(--cj-text);

    font: inherit;
}

input:focus,
textarea:focus,
select:focus {
    border-color: var(--cj-primary);

    outline: 3px solid rgba(125, 126, 252, 0.18);
}

textarea {
    min-height: 150px;
    resize: vertical;
}

label {
    display: block;

    margin-bottom: 7px;

    color: var(--cj-dark);

    font-size: 0.94rem;
    font-weight: 700;
}


/* =========================================================
   19. FOOTER
   ========================================================= */

.site-footer {
    background: var(--cj-dark);
    color: rgba(255, 255, 255, 0.78);
}

.site-footer__inner {
    display: grid;
    grid-template-columns:
        minmax(280px, 1.35fr)
        repeat(3, minmax(150px, 1fr));

    gap: 56px;

    padding-top: 72px;
    padding-bottom: 64px;
}


/* Footer brand
   ========================================================= */

.site-footer__brand {
    max-width: 330px;
}

.site-footer__logo {
    margin-bottom: 26px;
}

.site-footer__logo img {
    width: auto;
    max-width: 275px;
    max-height: 92px;
}

.site-footer__intro {
    max-width: 310px;

    margin-bottom: 28px;

    color: rgba(255, 255, 255, 0.76);

    font-size: 0.96rem;
    line-height: 1.65;
}


/* Footer contact
   ========================================================= */

.site-footer__contact {
    display: flex;
    flex-direction: column;
    align-items: flex-start;

    gap: 14px;
}

.site-footer__phone {
    display: flex;
    flex-direction: column;

    color: var(--cj-white);

    line-height: 1.2;
    text-decoration: none;
}

.site-footer__phone:hover {
    color: var(--cj-sky);
}

.site-footer__contact-label {
    margin-bottom: 5px;

    color: rgba(255, 255, 255, 0.58);

    font-size: 0.7rem;
    font-weight: 800;

    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.site-footer__phone strong {
    font-size: 1.15rem;
}

.site-footer__cta {
    min-height: 46px;

    padding: 11px 18px;

    font-size: 0.92rem;
}


/* Footer columns
   ========================================================= */

.site-footer__heading {
    margin: 5px 0 22px;

    color: var(--cj-white);

    font-family: var(--cj-font-body);
    font-size: 0.83rem;
    font-weight: 800;

    letter-spacing: 0.08em;
    line-height: 1.2;

    text-transform: uppercase;
}

.site-footer__links {
    margin: 0;
    padding: 0;

    list-style: none;
}

.site-footer__links li {
    margin: 0 0 13px;
}

.site-footer__links li:last-child {
    margin-bottom: 0;
}

.site-footer__links a {
    position: relative;

    color: rgba(255, 255, 255, 0.77);

    font-size: 0.94rem;
    line-height: 1.45;

    text-decoration: none;

    transition:
        color 0.2s ease,
        padding-left 0.2s ease;
}

.site-footer__links a:hover {
    padding-left: 3px;

    color: var(--cj-white);
}


/* Footer bottom
   ========================================================= */

.site-footer__bottom {
    border-top: 1px solid rgba(255, 255, 255, 0.10);

    background: var(--cj-dark-deep);
}

.site-footer__bottom-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 30px;

    min-height: 76px;
}

.site-footer__copyright {
    font-size: 0.82rem;
}

.site-footer__copyright p {
    margin: 0;
}

.site-footer__legal {
    display: flex;
    flex-wrap: wrap;

    gap: 22px;
}

.site-footer__legal a {
    color: rgba(255, 255, 255, 0.62);

    font-size: 0.8rem;

    text-decoration: none;
}

.site-footer__legal a:hover {
    color: var(--cj-white);
}


/* =========================================================
   20. ACCESSIBILITY
   ========================================================= */

:focus-visible {
    outline: 3px solid var(--cj-orange);
    outline-offset: 3px;
}


/* =========================================================
   21. LARGE TABLET / SMALL DESKTOP
   ========================================================= */

@media (max-width: 1100px) {

    .site-header__inner {
        gap: 24px;
    }

    .site-header__logo img {
        max-width: 210px;
    }

    .site-header__navigation-wrap {
        gap: 20px;
    }

    .site-navigation ul {
        gap: 17px;
    }

    .site-navigation a {
        font-size: 0.88rem;
    }

    .site-header__call {
        display: none;
    }

    .site-header__cta {
        padding-inline: 15px;
    }

    .cj-grid--3,
    .cj-grid--4 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }


    /* Footer:
       At tablet and small-desktop widths the brand/contact
       block is centred across the full width, followed by
       three equal, centred navigation columns. */

    .site-footer__inner {
        grid-template-columns: repeat(3, minmax(0, 1fr));

        gap: 44px 32px;

        padding-top: 58px;
        padding-bottom: 54px;
    }

    .site-footer__brand {
        grid-column: 1 / -1;

        max-width: 680px;
        margin-inline: auto;

        text-align: center;
    }

    .site-footer__logo {
        display: flex;
        justify-content: center;
    }

    .site-footer__intro {
        max-width: 560px;

        margin-right: auto;
        margin-left: auto;
    }

    .site-footer__contact {
        flex-direction: row;
        align-items: center;
        justify-content: center;
        flex-wrap: wrap;
    }

    .site-footer__column,
    .site-footer__column:last-child {
        grid-column: auto;

        text-align: center;
    }

    .site-footer__links a:hover {
        padding-left: 0;
    }
}


/* =========================================================
   22. MOBILE / SMALL TABLET
   ========================================================= */

@media (max-width: 820px) {

    :root {
        --cj-space-xl: 48px;
        --cj-space-xxl: 64px;
    }

    body {
        font-size: 16px;
    }

    .cj-container,
    .site-header__inner,
    .site-footer__inner,
    .site-footer__bottom-inner,
    .site-content,
    .cj-content {
        width: min(
            100% - 32px,
            var(--cj-container)
        );
    }


    /* Header
       ===================================================== */

    .site-header__inner {
        position: relative;

        min-height: 82px;

        gap: 20px;
    }

    .site-header__logo img {
        max-width: 205px;
        max-height: 68px;
    }


    /* Modern Menu / Close Control
       ===================================================== */

    .site-header__toggle {
        display: flex;
        align-items: center;
        justify-content: center;

        gap: 9px;

        width: auto;
        min-width: 0;
        height: auto;

        margin-left: auto;
        padding: 10px 0;

        border: 0;

        background: transparent;
        color: var(--cj-dark);

        box-shadow: none;

        font-size: 0.76rem;
        font-weight: 800;
        line-height: 1;

        letter-spacing: 0.07em;
        text-transform: uppercase;

        transform: none;

        transition: color 0.2s ease;
    }

    .site-header__toggle:hover,
    .site-header__toggle:focus {
        border: 0;

        background: transparent;
        color: var(--cj-primary-dark);

        box-shadow: none;

        transform: none;
    }

    .site-header__toggle-label {
        display: block;
    }

    .site-header__toggle-icon {
        position: relative;

        display: block;

        width: 26px;
        height: 18px;
    }

    .site-header__toggle-icon span {
        position: absolute;
        left: 0;

        display: block;

        width: 26px;
        height: 2px;

        border-radius: 10px;

        background: currentColor;

        transition:
            top 0.2s ease,
            transform 0.2s ease;
    }

    .site-header__toggle-icon span:first-child {
        top: 4px;
    }

    .site-header__toggle-icon span:last-child {
        top: 12px;
    }

    .site-header__toggle.is-open
    .site-header__toggle-icon span:first-child {
        top: 8px;

        transform: rotate(45deg);
    }

    .site-header__toggle.is-open
    .site-header__toggle-icon span:last-child {
        top: 8px;

        transform: rotate(-45deg);
    }


    /* Mobile navigation panel
       ===================================================== */

    .site-header__navigation-wrap {
        position: absolute;

        top: 100%;
        right: 0;
        left: 0;

        display: none;

        width: 100%;

        padding: 22px 24px 26px;

        border-top: 1px solid var(--cj-border);
        border-bottom: 1px solid var(--cj-border);

        background: var(--cj-white);

        box-shadow: 0 18px 35px rgba(25, 28, 60, 0.12);
    }

    .site-header__navigation-wrap.is-open {
        display: block;
    }

    .site-navigation {
        display: block;
    }

    .site-navigation ul {
        display: flex;
        flex-direction: column;

        align-items: stretch;

        gap: 0;
    }

    .site-navigation li {
        width: 100%;
    }

    .site-navigation a {
        width: 100%;

        padding: 14px 0;

        border-bottom: 1px solid var(--cj-border);

        font-size: 1rem;
    }

    .site-navigation a::after {
        display: none;
    }


    /* Mobile actions
       ===================================================== */

    .site-header__actions {
        display: grid;
        grid-template-columns: 1fr 1fr;

        gap: 12px;

        margin-top: 22px;
    }

    .site-header__call {
        display: flex;

        align-items: center;
        justify-content: center;

        min-height: 50px;

        padding: 10px 14px;

        border: 2px solid var(--cj-primary);
        border-radius: var(--cj-radius-sm);

        text-align: center;
    }

    .site-header__call-label {
        display: none;
    }

    .site-header__call strong {
        font-size: 0.95rem;
    }

    .site-header__call strong::before {
        content: "Call ";
    }

    .site-header__cta {
        width: 100%;
        min-height: 50px;
    }


    /* Grids
       ===================================================== */

    .cj-grid--2,
    .cj-grid--3,
    .cj-grid--4 {
        grid-template-columns: 1fr;
    }


    /* Content
       ===================================================== */

    .site-content {
        padding-block: 40px;
    }


    /* Buttons
       ===================================================== */

    .cj-buttons {
        flex-direction: column;
    }

    .cj-buttons .cj-button {
        width: 100%;
    }


    /* Footer:
       Keep a clean three-column navigation row at tablet
       widths rather than falling into an untidy 2 + 1 grid. */

    .site-footer__inner {
        grid-template-columns: repeat(3, minmax(0, 1fr));

        gap: 38px 18px;

        padding-top: 52px;
        padding-bottom: 48px;
    }

    .site-footer__brand {
        grid-column: 1 / -1;

        max-width: 620px;
        margin-inline: auto;

        text-align: center;
    }

    .site-footer__logo {
        display: flex;
        justify-content: center;
    }

    .site-footer__intro {
        max-width: 520px;

        margin-right: auto;
        margin-left: auto;
    }

    .site-footer__contact {
        flex-direction: row;
        align-items: center;
        justify-content: center;
        flex-wrap: wrap;
    }

    .site-footer__column,
    .site-footer__column:last-child {
        grid-column: auto;

        width: auto;
        margin: 0;

        text-align: center;
    }

    .site-footer__heading {
        font-size: 0.75rem;
    }

    .site-footer__links a {
        font-size: 0.88rem;
    }

    .site-footer__links a:hover {
        padding-left: 0;
    }

    .site-footer__bottom-inner {
        flex-direction: column;
        align-items: center;
        justify-content: center;

        gap: 12px;

        padding-block: 20px;

        text-align: center;
    }

    .site-footer__legal {
        justify-content: center;
    }
}


/* =========================================================
   23. FOOTER SINGLE-COLUMN BREAKPOINT
   ========================================================= */

@media (max-width: 650px) {

    .site-footer__inner {
        grid-template-columns: 1fr;

        gap: 0;

        padding-top: 46px;
        padding-bottom: 40px;

        text-align: center;
    }

    .site-footer__brand {
        grid-column: auto;

        max-width: 100%;
        padding-bottom: 36px;
    }

    .site-footer__logo {
        display: flex;
        justify-content: center;

        margin-bottom: 24px;
    }

    .site-footer__logo img {
        max-width: 240px;
    }

    .site-footer__intro {
        max-width: 390px;

        margin-right: auto;
        margin-left: auto;
        margin-bottom: 26px;
    }

    .site-footer__contact {
        flex-direction: column;
        align-items: center;

        width: 100%;
    }

    .site-footer__phone {
        align-items: center;
    }

    .site-footer__cta {
        width: min(100%, 340px);
    }

    .site-footer__column,
    .site-footer__column:last-child {
        grid-column: auto;

        width: 100%;
        margin: 0;

        padding-top: 30px;
        padding-bottom: 30px;

        border-top: 1px solid rgba(255, 255, 255, 0.10);

        text-align: center;
    }

    .site-footer__heading {
        margin-top: 0;
        margin-bottom: 18px;

        font-size: 0.83rem;
    }

    .site-footer__links li {
        margin-bottom: 14px;
    }

    .site-footer__links a {
        display: inline-block;

        font-size: 0.96rem;
    }

    .site-footer__links a:hover {
        padding-left: 0;
    }

    .site-footer__bottom-inner {
        align-items: center;

        text-align: center;
    }

    .site-footer__legal {
        justify-content: center;

        gap: 10px 18px;
    }
}


/* =========================================================
   24. SMALL MOBILE
   ========================================================= */

@media (max-width: 520px) {

    .site-header__inner {
        min-height: 74px;
    }

    .site-header__logo img {
        max-width: 170px;
        max-height: 58px;
    }

    .site-header__navigation-wrap {
        padding: 20px 16px 24px;
    }

    .site-header__actions {
        grid-template-columns: 1fr;
    }

    .site-header__call,
    .site-header__cta {
        width: 100%;
    }


}

/* =========================================================
   25. HEADER — VERSION 4.7
   Clean WordPress-native dropdown navigation
   ========================================================= */

.site-header.site-header {
    position: relative;
    z-index: 1000;

    overflow: visible;

    border: 0;

    background:
        radial-gradient(
            circle at 15% 115%,
            rgba(255, 255, 255, 0.82) 0 8%,
            rgba(255, 255, 255, 0) 28%
        ),
        repeating-conic-gradient(
            from 255deg at 23% 105%,
            rgba(255, 255, 255, 0.14) 0deg 7deg,
            rgba(255, 255, 255, 0) 7deg 16deg
        ),
        linear-gradient(
            112deg,
            #EAF9FF 0%,
            #D7F3FF 34%,
            #E9E8FF 72%,
            #FFF0FA 100%
        );

    box-shadow: 0 8px 24px rgba(26, 29, 67, 0.10);
}

.site-header.site-header::before {
    position: absolute;
    top: 0;
    right: 0;
    left: 0;

    height: 6px;

    background: linear-gradient(
        90deg,
        #00BCEC 0%,
        #7D7EFC 48%,
        #E00080 100%
    );

    content: "";
}

.site-header__inner {
    position: relative;

    display: grid;
    grid-template-columns: minmax(360px, 1fr) auto;
    grid-template-areas:
        "logo actions"
        "nav nav";
    align-items: center;

    width: min(100% - 48px, var(--cj-container));
    min-height: 0;

    gap: 0 42px;
    padding-top: 12px;

    overflow: visible;
}

.site-header__navigation-wrap {
    display: contents;
}


/* BRAND */
.site-header__logo {
    grid-area: logo;

    display: flex;
    align-items: center;

    min-height: 116px;
}

.site-header__logo a {
    display: inline-flex;
    align-items: center;
}

.site-header__logo img {
    width: auto;
    max-width: 455px;
    max-height: 128px;

    filter: drop-shadow(0 5px 8px rgba(36, 38, 74, 0.10));
}


/* PHONE / CTA */
.site-header__actions {
    grid-area: actions;

    display: grid;
    grid-template-columns: auto auto;
    align-items: center;
    justify-items: end;

    gap: 8px 18px;
    margin: 0;
}

.site-header__actions::before {
    grid-column: 1 / -1;

    color: var(--cj-dark);

    font-size: 0.78rem;
    font-weight: 850;
    line-height: 1;
    letter-spacing: 0.08em;
    text-transform: uppercase;

    content: "Bouncy Castle Hire in Southport";
}

.site-header__call {
    display: flex;
    flex-direction: column;
    align-items: flex-end;

    color: var(--cj-dark);

    line-height: 1.05;
    text-decoration: none;
    white-space: nowrap;
}

.site-header__call-label {
    margin: 0 0 3px;

    color: var(--cj-primary-dark);

    font-size: 0.66rem;
    font-weight: 850;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.site-header__call strong {
    color: var(--cj-dark);

    font-size: 1.48rem;
    font-weight: 900;
    letter-spacing: -0.025em;
}

.site-header__call:hover strong {
    color: var(--cj-primary-dark);
}

.site-header__cta {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    min-height: 54px;
    padding: 12px 22px;

    border-radius: 12px;
    border-color: #7274F4;

    background: linear-gradient(135deg, #7D7EFC 0%, #696BEF 100%);
    box-shadow: 0 8px 20px rgba(80, 82, 210, 0.20);

    font-size: 0.92rem;
    font-weight: 850;
    white-space: nowrap;
}

.site-header__cta:hover {
    background: linear-gradient(135deg, #6F70F2 0%, #5F61E2 100%);
    border-color: #6264E5;
    box-shadow: 0 11px 25px rgba(80, 82, 210, 0.25);
}


/* =========================================================
   DESKTOP PRIMARY NAVIGATION
   Only .primary-menu is the horizontal flex row.
   Nested WordPress .sub-menu lists are dropdowns.
   ========================================================= */

.site-navigation {
    grid-area: nav;

    position: relative;
    z-index: 1001;

    width: 100vw;
    max-width: 100vw;
    min-height: 58px;

    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);

    overflow: visible;

    background: linear-gradient(
        90deg,
        #00BCEC 0%,
        #7D7EFC 50%,
        #E00080 100%
    );

    box-shadow: 0 8px 18px rgba(63, 67, 168, 0.16);
}

.site-navigation > .primary-menu {
    display: flex;
    align-items: stretch;
    justify-content: center;

    width: min(100%, 1600px);

    gap: 0;
    margin: 0 auto;
    padding: 0;

    list-style: none;
}

.site-navigation > .primary-menu > li {
    position: relative;

    display: flex;

    margin: 0;
    padding: 0;
}

.site-navigation > .primary-menu > li > a {
    position: relative;

    display: flex;
    align-items: center;
    justify-content: center;

    min-height: 58px;
    padding: 0 24px;

    color: rgba(255, 255, 255, 0.98);

    font-size: 0.88rem;
    font-weight: 800;
    line-height: 1.1;
    letter-spacing: 0.025em;
    text-decoration: none;
    white-space: nowrap;

    transition: background-color 0.18s ease, color 0.18s ease;
}

.site-navigation > .primary-menu > li > a::after {
    position: absolute;
    right: 18px;
    bottom: 6px;
    left: 18px;

    height: 2px;

    border-radius: 999px;
    background: rgba(255, 255, 255, 0.95);

    content: "";

    transform: scaleX(0);
    transform-origin: center;
    transition: transform 0.18s ease;
}

.site-navigation > .primary-menu > li > a:hover,
.site-navigation > .primary-menu > .current-menu-item > a,
.site-navigation > .primary-menu > .current-menu-ancestor > a {
    background: rgba(255, 255, 255, 0.10);
    color: #FFFFFF;
}

.site-navigation > .primary-menu > li > a:hover::after,
.site-navigation > .primary-menu > .current-menu-item > a::after,
.site-navigation > .primary-menu > .current-menu-ancestor > a::after {
    transform: scaleX(1);
}

/* Parent dropdown cue. */
.site-navigation > .primary-menu > .menu-item-has-children > a {
    padding-right: 38px;
}

.site-navigation > .primary-menu > .menu-item-has-children > a::before {
    position: absolute;
    top: 50%;
    right: 18px;

    width: 7px;
    height: 7px;

    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;

    content: "";

    transform: translateY(-65%) rotate(45deg);
}

/* Refined WordPress first-level submenu. */
.site-navigation > .primary-menu > li > .sub-menu {
    position: absolute;
    top: 100%;
    left: 0;
    z-index: 2000;

    display: block;

    width: 320px;
    min-width: 320px;

    margin: 0;
    padding: 7px;

    border: 1px solid rgba(125, 126, 252, 0.16);
    border-top: 3px solid #7D7EFC;
    border-radius: 0 0 12px 12px;

    background: rgba(255, 255, 255, 0.985);
    box-shadow:
        0 16px 34px rgba(27, 31, 72, 0.14),
        0 4px 10px rgba(27, 31, 72, 0.05);

    list-style: none;

    opacity: 0;
    visibility: hidden;
    pointer-events: none;

    transform: translateY(5px);
    transition:
        opacity 0.15s ease,
        transform 0.15s ease,
        visibility 0.15s ease;
}

.site-navigation > .primary-menu > li:hover > .sub-menu,
.site-navigation > .primary-menu > li:focus-within > .sub-menu {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateY(0);
}

.site-navigation .sub-menu li {
    position: relative;

    display: block;

    width: 100%;
    margin: 0;
    padding: 0;
}

.site-navigation .sub-menu > li + li {
    border-top: 1px solid rgba(36, 41, 79, 0.055);
}

.site-navigation .sub-menu a {
    position: relative;

    display: flex;
    align-items: center;
    justify-content: flex-start;

    width: 100%;
    min-height: 37px;

    padding: 8px 11px;

    border-radius: 7px;

    color: #24294F;
    background: transparent;

    font-size: 0.77rem;
    font-weight: 760;
    line-height: 1.18;
    text-decoration: none;
    white-space: nowrap;

    transition:
        background-color 0.15s ease,
        color 0.15s ease,
        padding-left 0.15s ease;
}

.site-navigation .sub-menu a::before,
.site-navigation .sub-menu a::after {
    display: none;
}

.site-navigation .sub-menu > li > a:hover,
.site-navigation .sub-menu > .current-menu-item > a,
.site-navigation .sub-menu > .current-menu-ancestor > a {
    padding-left: 15px;

    background: linear-gradient(
        90deg,
        rgba(0, 188, 236, 0.08) 0%,
        rgba(125, 126, 252, 0.10) 100%
    );
    color: #4F51CF;
}

.site-navigation .sub-menu > li > a:hover::before,
.site-navigation .sub-menu > .current-menu-item > a::before,
.site-navigation .sub-menu > .current-menu-ancestor > a::before {
    position: absolute;
    top: 9px;
    bottom: 9px;
    left: 5px;

    display: block;

    width: 3px;

    border-radius: 999px;
    background: linear-gradient(180deg, #00BCEC 0%, #7D7EFC 100%);

    content: "";
}

/* Third level: Toddler beneath Children's, kept compact and clearly secondary. */
.site-navigation .sub-menu .sub-menu {
    position: static;

    display: block;

    width: 100%;

    margin: -1px 0 3px;
    padding: 0 0 2px 10px;

    border: 0;
    background: transparent;
    box-shadow: none;

    list-style: none;

    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: none;
}

.site-navigation .sub-menu .sub-menu li {
    border-top: 0;
}

.site-navigation .sub-menu .sub-menu a {
    min-height: 30px;
    padding: 5px 10px 5px 18px;

    border-radius: 6px;

    color: #73768C;
    font-size: 0.70rem;
    font-weight: 700;
    white-space: nowrap;
}

.site-navigation .sub-menu .sub-menu a::before {
    position: absolute;
    top: 50%;
    left: 7px;

    display: block;

    width: 5px;
    height: 1px;

    border-radius: 0;
    background: #9A9DB5;

    content: "";
    transform: translateY(-50%);
}

.site-navigation .sub-menu .sub-menu a:hover {
    padding-left: 20px;

    background: rgba(125, 126, 252, 0.055);
    color: #5558D6;
}

.site-navigation .sub-menu .sub-menu a:hover::before {
    left: 8px;
    width: 6px;
    background: #7D7EFC;
}

/* Desktop toggle stays hidden. */
.site-header__toggle {
    display: none;
}


/* LARGE TABLET / SMALL DESKTOP */
@media (max-width: 1180px) and (min-width: 821px) {

    .site-header__inner {
        grid-template-columns: minmax(290px, 1fr) auto;
        gap: 0 28px;
    }

    .site-header__logo {
        min-height: 112px;
    }

    .site-header__logo img {
        max-width: 360px;
        max-height: 106px;
    }

    .site-header__call strong {
        font-size: 1.28rem;
    }

    .site-header__cta {
        min-height: 50px;
        padding-inline: 17px;
    }

    .site-navigation > .primary-menu > li > a {
        padding-inline: 17px;
        font-size: 0.82rem;
    }

    .site-navigation > .primary-menu > .menu-item-has-children > a {
        padding-right: 32px;
    }

    .site-navigation > .primary-menu > .menu-item-has-children > a::before {
        right: 13px;
    }
}


/* =========================================================
   MOBILE / SMALL TABLET
   ========================================================= */
@media (max-width: 820px) {

    .site-header.site-header {
        overflow: visible;
    }

    .site-header.site-header::before {
        height: 4px;
    }

    .site-header__inner {
        position: relative;

        display: flex;
        align-items: center;

        width: min(100% - 32px, var(--cj-container));
        min-height: 88px;

        gap: 18px;
        padding-top: 4px;
    }

    .site-header__logo {
        display: flex;
        align-items: center;
        min-height: 0;
    }

    .site-header__logo img {
        max-width: 218px;
        max-height: 72px;
    }

    .site-header__toggle {
        display: flex;
        align-items: center;
        justify-content: center;

        gap: 9px;
        margin-left: auto;
        padding: 10px 0;

        border: 0;
        background: transparent;
        color: var(--cj-dark);
        box-shadow: none;
    }

    .site-header__navigation-wrap {
        position: absolute;
        top: 100%;
        right: -16px;
        left: -16px;
        z-index: 3000;

        display: none;

        width: auto;
        padding: 0;

        border: 0;
        background: var(--cj-dark);
        box-shadow: 0 18px 36px rgba(25, 28, 60, 0.18);
    }

    .site-header__navigation-wrap.is-open {
        display: block;
    }

    .site-navigation {
        position: static;

        width: 100%;
        max-width: none;
        min-height: 0;

        margin: 0;

        background: var(--cj-dark);
        box-shadow: none;
    }

    .site-navigation > .primary-menu {
        display: block;

        width: 100%;
        margin: 0;
        padding: 0;
    }

    .site-navigation > .primary-menu > li {
        display: block;
        width: 100%;
    }

    .site-navigation > .primary-menu > li > a {
        display: flex;
        justify-content: flex-start;

        width: 100%;
        min-height: 50px;

        padding: 13px 24px;

        border-bottom: 1px solid rgba(255, 255, 255, 0.10);

        color: rgba(255, 255, 255, 0.94);
        background: transparent;

        font-size: 0.94rem;
    }

    .site-navigation > .primary-menu > li > a::after,
    .site-navigation > .primary-menu > .menu-item-has-children > a::before {
        display: none;
    }

    /* Mobile submenus are simply shown beneath their parents. */
    .site-navigation > .primary-menu > li > .sub-menu,
    .site-navigation .sub-menu .sub-menu {
        position: static;

        display: block;

        width: 100%;
        min-width: 0;

        margin: 0;
        padding: 0 0 4px 18px;

        border: 0;
        border-radius: 0;

        background: rgba(255, 255, 255, 0.035);
        box-shadow: none;

        opacity: 1;
        visibility: visible;
        pointer-events: auto;
        transform: none;
    }

    .site-navigation .sub-menu a {
        min-height: 43px;
        padding: 10px 22px;

        border-radius: 0;
        border-bottom: 1px solid rgba(255, 255, 255, 0.07);

        color: rgba(255, 255, 255, 0.80);
        background: transparent;

        font-size: 0.85rem;
    }

    .site-navigation .sub-menu .sub-menu {
        padding-left: 18px;
        background: rgba(0, 0, 0, 0.08);
    }

    .site-navigation .sub-menu .sub-menu a {
        min-height: 38px;
        color: rgba(255, 255, 255, 0.68);
        font-size: 0.79rem;
    }

    .site-navigation .sub-menu .sub-menu a::before {
        display: none;
    }

    .site-header__actions {
        display: grid;
        grid-template-columns: 1fr 1fr;

        gap: 12px;
        padding: 18px 24px 24px;

        border-top: 1px solid rgba(255, 255, 255, 0.10);
        background: #1E2148;
    }

    .site-header__actions::before {
        grid-column: 1 / -1;
        justify-self: start;

        color: rgba(255, 255, 255, 0.70);
        font-size: 0.68rem;
    }

    .site-header__call {
        align-items: center;
        justify-content: center;

        min-height: 50px;
        padding: 9px 12px;

        border: 1px solid rgba(255, 255, 255, 0.34);
        border-radius: 9px;

        color: #FFFFFF;
        text-align: center;
    }

    .site-header__call-label {
        display: none;
    }

    .site-header__call strong {
        color: #FFFFFF;
        font-size: 0.94rem;
    }

    .site-header__call strong::before {
        content: "Call ";
    }

    .site-header__cta {
        width: 100%;
        min-height: 50px;
        border-radius: 9px;
    }
}


@media (max-width: 520px) {

    .site-header__inner {
        min-height: 78px;
    }

    .site-header__logo img {
        max-width: 180px;
        max-height: 62px;
    }

    .site-header__actions {
        grid-template-columns: 1fr;
    }

    .site-header__call,
    .site-header__cta {
        width: 100%;
    }
}

/* =========================================================
   MODULE: SINGLE PRODUCT
   ========================================================= */

/* CEEJAYS PRODUCT.CSS — VERSION 4.0 — MOBILE PILLS SAME ROW — 2026-08-19 22:11 BST */
/* Changes in v3.6: polished WooCommerce gallery thumbnails — compact square thumbnails, wrap naturally, stronger active state, responsive sizing. */
/* =========================================================
   CEEJAYS
   Single Product v3
   Image + complete product journey side by side
   ========================================================= */


/* =========================================================
   PRODUCT CANVAS
   ========================================================= */

.cj-product {
    --cj-product-container: 1320px;

    background: var(--cj-white);
}

.cj-product .cj-container,
.cj-product .woocommerce-notices-wrapper {
    width: min(
        var(--cj-product-container),
        calc(100% - 48px)
    ) !important;

    max-width: none !important;
    margin-inline: auto;
}


/* =========================================================
   MAIN PRODUCT AREA
   ========================================================= */

.cj-product-main {
    position: relative;
    overflow: hidden;

    padding: 12px 0 28px;

    background:
        radial-gradient(
            circle at 87% 18%,
            rgba(181, 206, 230, 0.42) 0,
            rgba(181, 206, 230, 0.13) 20%,
            transparent 39%
        ),
        radial-gradient(
            circle at 73% 82%,
            rgba(224, 0, 128, 0.055) 0,
            transparent 27%
        ),
        radial-gradient(
            circle at 12% 76%,
            rgba(125, 126, 252, 0.065) 0,
            transparent 31%
        ),
        linear-gradient(
            135deg,
            #F8FCFF 0%,
            #FFFFFF 55%,
            #FCFAFF 100%
        );
}

.cj-product-main::before {
    position: absolute;
    inset: 0;

    pointer-events: none;

    background-image:
        radial-gradient(circle, rgba(125, 126, 252, 0.16) 0 2px, transparent 2.4px),
        radial-gradient(circle, rgba(224, 0, 128, 0.10) 0 1.5px, transparent 2px),
        radial-gradient(circle, rgba(240, 122, 0, 0.09) 0 1.4px, transparent 1.9px);

    background-position:
        22px 18px,
        76px 56px,
        108px 26px;

    background-size:
        148px 120px,
        174px 142px,
        198px 162px;

    opacity: 0.20;

    content: "";
}

.cj-product-main > .cj-container {
    position: relative;
    z-index: 1;
}

.cj-product-breadcrumbs {
    margin-bottom: 12px;
}

.cj-product-breadcrumbs .woocommerce-breadcrumb {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 7px;

    margin: 0;

    color: var(--cj-text-soft);

    font-size: 0.75rem;
}

.cj-product-breadcrumbs .woocommerce-breadcrumb a {
    color: var(--cj-text-soft);
    text-decoration: none;
}

.cj-product-layout {
    display: grid;
    grid-template-columns: 390px minmax(0, 1fr);
    align-items: start;
    gap: clamp(42px, 4.6vw, 66px);
}


/* =========================================================
   GALLERY
   ========================================================= */

.cj-product-gallery {
    min-width: 0;
}

.cj-product-gallery .woocommerce-product-gallery {
    float: none !important;

    width: 100% !important;
    max-width: 390px;

    margin: 0 !important;
}

.cj-product-gallery .woocommerce-product-gallery__wrapper {
    margin: 0;
}

.cj-product-gallery .woocommerce-product-gallery__image {
    overflow: hidden;

    border: 1px solid var(--cj-border);
    border-radius: 12px;

    background: var(--cj-white);

    box-shadow: var(--cj-shadow-sm);
}

.cj-product-gallery .woocommerce-product-gallery__image img {
    width: 100%;
    height: auto;
}

.cj-product-gallery .woocommerce-product-gallery__trigger {
    display: none !important;
}

.cj-product-gallery .flex-control-thumbs {
    display: flex !important;
    flex-wrap: wrap;
    gap: 8px;

    margin: 10px 0 0 !important;
    padding: 0 !important;

    list-style: none;
}

.cj-product-gallery .flex-control-thumbs li {
    float: none !important;
    flex: 0 0 68px;

    width: 68px !important;
    height: 68px;
    margin: 0 !important;
}

.cj-product-gallery .flex-control-thumbs img {
    display: block;

    width: 68px;
    height: 68px;

    border: 2px solid rgba(125, 126, 252, 0.18);
    border-radius: 8px;

    background: rgba(255, 255, 255, 0.9);

    object-fit: cover;
    opacity: 0.72;

    cursor: pointer;

    transition:
        border-color 0.2s ease,
        box-shadow 0.2s ease,
        opacity 0.2s ease;
}

.cj-product-gallery .flex-control-thumbs img:hover {
    border-color: rgba(125, 126, 252, 0.55);
    opacity: 0.92;
}

.cj-product-gallery .flex-control-thumbs img.flex-active {
    border-color: var(--cj-primary);
    box-shadow: 0 0 0 1px var(--cj-primary);

    opacity: 1;
}


/* =========================================================
   RIGHT PRODUCT PANEL
   ========================================================= */

.cj-product-panel {
    min-width: 0;
    width: 100%;

    padding-top: 0;
}

.cj-product-heading .cj-eyebrow {
    margin-bottom: 7px;
}

.cj-product-title {
    max-width: 800px;

    margin-bottom: 9px;

    font-size: clamp(2.3rem, 3.7vw, 3.45rem);
    letter-spacing: -0.04em;
}

.cj-product-price {
    margin-bottom: 9px;
}

.cj-product-price__label {
    display: block;

    margin-bottom: 1px;

    color: var(--cj-text-soft);

    font-size: 0.66rem;
    font-weight: 800;

    letter-spacing: 0.07em;

    text-transform: uppercase;
}

.cj-product-price__value,
.cj-product-price__value .price {
    color: var(--cj-dark);

    font-family: var(--cj-font-heading);
    font-size: clamp(2.3rem, 3vw, 2.75rem);
    font-weight: 700;
    line-height: 1;
}


/* =========================================================
   DESCRIPTION
   ========================================================= */

.cj-product-description-short {
    max-width: 760px;

    margin-bottom: 7px;

    color: var(--cj-text);

    font-size: 0.91rem;
    line-height: 1.48;
}

.cj-product-description-short p {
    margin-bottom: 7px;
}

.cj-product-description-short p:last-child {
    margin-bottom: 0;
}

.cj-product-more-row {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;

    width: 100%;
    max-width: 760px;
    min-height: 38px;

    margin-bottom: 12px;
}

.cj-product-more-row .cj-product-more {
    flex: 0 1 auto;

    margin-bottom: 0;
}

.cj-product-more {
    max-width: 760px;

    margin-bottom: 12px;
}

.cj-product-more summary {
    display: inline-flex;
    align-items: center;
    gap: 10px;

    min-height: 38px;

    padding: 7px 11px 7px 13px;

    border: 1px solid rgba(125, 126, 252, 0.34);
    border-radius: 8px;

    background: rgba(255, 255, 255, 0.92);
    color: var(--cj-dark);

    box-shadow: 0 3px 10px rgba(36, 38, 74, 0.055);

    font-size: 0.82rem;
    font-weight: 800;

    list-style: none;
    cursor: pointer;

    transition:
        border-color 0.2s ease,
        background-color 0.2s ease,
        color 0.2s ease,
        box-shadow 0.2s ease;
}

.cj-product-more summary:hover {
    border-color: var(--cj-primary);

    background: var(--cj-white);
    color: var(--cj-primary-dark);

    box-shadow: 0 5px 14px rgba(36, 38, 74, 0.08);
}

.cj-product-more summary::-webkit-details-marker {
    display: none;
}

.cj-product-more summary::after {
    flex: 0 0 20px;

    width: 20px;
    height: 20px;

    border-radius: 50%;

    background:
        linear-gradient(
            var(--cj-primary-dark),
            var(--cj-primary-dark)
        ) center / 9px 2px no-repeat,
        linear-gradient(
            var(--cj-primary-dark),
            var(--cj-primary-dark)
        ) center / 2px 9px no-repeat,
        var(--cj-primary-soft);

    content: "";
}

.cj-product-more[open] summary {
    background: var(--cj-primary-soft);
}

.cj-product-more[open] summary::after {
    background:
        linear-gradient(
            var(--cj-primary-dark),
            var(--cj-primary-dark)
        ) center / 9px 2px no-repeat,
        var(--cj-primary-soft);
}

.cj-product-more__content {
    max-width: 760px;

    margin-top: 8px;
    padding: 13px 15px;

    border-left: 3px solid var(--cj-primary);
    border-radius: 0 8px 8px 0;

    background: rgba(255, 255, 255, 0.84);
    color: var(--cj-text);

    font-size: 0.9rem;
    line-height: 1.55;
}

.cj-product-more__content > *:last-child {
    margin-bottom: 0;
}


/* =========================================================
   FACTS
   ========================================================= */

.cj-product-facts {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;

    width: 100%;
    max-width: 760px;

    margin-bottom: 8px;
}

.cj-product-fact {
    padding: 9px 11px;

    border: 1px solid var(--cj-border);
    border-radius: 8px;

    background: rgba(255, 255, 255, 0.84);
}

.cj-product-fact--wide {
    grid-column: 1 / -1;
}

.cj-product-fact span {
    display: block;

    margin-bottom: 1px;

    color: var(--cj-text-soft);

    font-size: 0.61rem;
    font-weight: 800;

    letter-spacing: 0.05em;

    text-transform: uppercase;
}

.cj-product-fact strong {
    display: block;

    color: var(--cj-dark);

    font-size: 0.85rem;
}


/* =========================================================
   TAGS
   ========================================================= */

.cj-product-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;

    margin-bottom: 10px;
}

.cj-product-tags--more {
    flex: 0 0 auto;
    justify-content: flex-end;

    margin: 5px 0 0 auto;
}

.cj-product-tag {
    display: inline-flex;
    align-items: center;

    padding: 4px 9px;

    border: 1px solid rgba(125, 126, 252, 0.24);
    border-radius: 999px;

    background: var(--cj-primary-soft);
    color: var(--cj-primary-dark);

    font-size: 0.7rem;
    font-weight: 750;
}


/* =========================================================
   FAQS
   ========================================================= */

.cj-product-faq {
    max-width: 760px;

    margin-bottom: 12px;

    border-top: 1px solid var(--cj-border);
}

.cj-product-faq__title {
    margin: 10px 0 3px;

    font-family: var(--cj-font-body);
    font-size: 0.74rem;
    font-weight: 800;

    letter-spacing: 0.07em;

    text-transform: uppercase;
}

.cj-product-faq__item {
    border-bottom: 1px solid var(--cj-border);
}

.cj-product-faq__item summary {
    position: relative;

    display: flex;
    align-items: center;

    min-height: 38px;

    padding: 7px 34px 7px 0;

    color: var(--cj-dark);

    font-size: 0.84rem;
    font-weight: 700;

    list-style: none;

    cursor: pointer;
}

.cj-product-faq__item summary::-webkit-details-marker {
    display: none;
}

.cj-product-faq__item summary::before,
.cj-product-faq__item summary::after {
    position: absolute;

    top: 50%;
    right: 3px;

    width: 13px;
    height: 2px;

    border-radius: 2px;

    background: var(--cj-primary-dark);

    content: "";

    transform: translateY(-50%);
}

.cj-product-faq__item summary::after {
    transform:
        translateY(-50%)
        rotate(90deg);
}

.cj-product-faq__item[open] summary::after {
    transform:
        translateY(-50%)
        rotate(0deg);
}

.cj-product-faq__item > div {
    padding: 0 34px 10px 0;

    color: var(--cj-text-soft);

    font-size: 0.82rem;
    line-height: 1.48;
}


/* =========================================================
   CONTACT BLOCK
   ========================================================= */

.cj-product-contact {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 18px;

    width: calc(100% - 40px);
    max-width: 720px;

    margin-left: 20px;
    margin-right: 20px;
    padding: 12px 14px;

    border: 1px solid rgba(125, 126, 252, 0.22);
    border-radius: 10px;

    background: var(--cj-primary-soft);
}

.cj-product-contact__copy {
    display: flex;
    flex-direction: column;
}

.cj-product-contact__copy strong {
    margin-bottom: 1px;

    color: var(--cj-dark);

    font-size: 0.9rem;
}

.cj-product-contact__copy span {
    color: var(--cj-text-soft);

    font-size: 0.75rem;
}

.cj-product-contact__actions {
    display: flex;
    gap: 8px;
}

.cj-product-contact__actions .cj-button {
    min-height: 42px;

    padding: 9px 13px;

    font-size: 0.82rem;

    white-space: nowrap;
}


/* =========================================================
   WOOCOMMERCE CLEANUP
   ========================================================= */

.cj-product .related,
.cj-product .upsells,
.cj-product .woocommerce-tabs,
.cj-product .product_meta,
.cj-product form.cart {
    display: none;
}


/* =========================================================
   TABLET
   ========================================================= */

@media (max-width: 1050px) {

    .cj-product-gallery .flex-control-thumbs li,
    .cj-product-gallery .flex-control-thumbs img {
        width: 64px !important;
        height: 64px;
    }

    .cj-product-gallery .flex-control-thumbs li {
        flex-basis: 64px;
    }

    .cj-product .cj-container,
    .cj-product .woocommerce-notices-wrapper {
        width: calc(100% - 40px) !important;
    }

    .cj-product-layout {
        grid-template-columns: 330px minmax(0, 1fr);
        gap: 32px;
    }

    .cj-product-gallery .woocommerce-product-gallery {
        max-width: 330px;
    }

    .cj-product-title {
        font-size: clamp(2rem, 4.7vw, 2.85rem);
    }

    .cj-product-contact {
        grid-template-columns: 1fr;
    }

    .cj-product-contact__actions {
        flex-wrap: wrap;
    }
}


/* =========================================================
   SMALL TABLET / MOBILE
   ========================================================= */

@media (max-width: 760px) {

    .cj-product-main::before {
        opacity: 0.12;
    }


    .cj-product-layout {
        grid-template-columns: 1fr;
        gap: 22px;
    }

    .cj-product-gallery {
        width: min(390px, 100%);
        margin-inline: auto;
    }

    .cj-product-gallery .woocommerce-product-gallery {
        max-width: none;
    }

    .cj-product-panel {
        width: min(680px, 100%);
        margin-inline: auto;
    }

    .cj-product-faq,
    .cj-product-description-short,
    .cj-product-more,
    .cj-product-more__content {
        max-width: none;
    }

    .cj-product-contact {
        width: 100%;
        max-width: none;
        margin-inline: 0;
    }
}


/* =========================================================
   MOBILE
   ========================================================= */

@media (max-width: 560px) {

    .cj-product-gallery .flex-control-thumbs {
        gap: 7px;
    }

    .cj-product-gallery .flex-control-thumbs li,
    .cj-product-gallery .flex-control-thumbs img {
        width: 58px !important;
        height: 58px;
    }

    .cj-product-gallery .flex-control-thumbs li {
        flex-basis: 58px;
    }

    .cj-product-more-row {
        flex-wrap: wrap;
        gap: 8px 12px;
    }

    .cj-product-tags--more {
        width: 100%;
        justify-content: flex-end;
        margin-top: 0;
    }

    .cj-product .cj-container,
    .cj-product .woocommerce-notices-wrapper {
        width: calc(100% - 32px) !important;
    }

    .cj-product-main {
        padding-top: 10px;
    }

    .cj-product-title {
        font-size: clamp(2rem, 10vw, 2.75rem);
    }

    .cj-product-facts {
        grid-template-columns: 1fr;

        max-width: none;
    }

    .cj-product-fact--wide {
        grid-column: auto;
    }

    .cj-product-contact__actions {
        flex-direction: column;
    }

    .cj-product-contact__actions .cj-button {
        width: 100%;
    }
}

/* =========================================================
   PRODUCT V3.7 — FULL-WIDTH "MORE ABOUT THIS CASTLE"
   Expanded accordion content aligns to the same 760px content
   width as the fact boxes and FAQ section.
   ========================================================= */

.cj-product-more-row {
    max-width: 760px;
}

.cj-product-more {
    width: auto;
    max-width: none;
}

.cj-product-more[open] {
    width: 760px;
    max-width: 100%;
}

.cj-product-more__content {
    width: 760px;
    max-width: 100%;
    box-sizing: border-box;
}

@media (max-width: 820px) {

    .cj-product-more[open],
    .cj-product-more__content {
        width: 100%;
        max-width: 100%;
    }
}

/* =========================================================
   PRODUCT V3.8 — ACCORDION / PILLS ALIGNMENT FIX
   Keep summary left + hire pills right on the same line,
   while expanded accordion content uses the full 760px below.
   ========================================================= */

.cj-product-more-row {
    position: relative;

    display: block;

    width: 100%;
    max-width: 760px;

    min-height: 38px;

    margin-bottom: 12px;
}

.cj-product-more {
    width: 100%;
    max-width: 760px;

    margin: 0;
}

.cj-product-more[open] {
    width: 100%;
    max-width: 760px;
}

.cj-product-more summary {
    width: fit-content;
    max-width: calc(100% - 190px);

    margin: 0;
}

.cj-product-more__content {
    width: 100%;
    max-width: 760px;

    box-sizing: border-box;
}

.cj-product-tags--more {
    position: absolute;
    top: 5px;
    right: 0;

    display: flex;
    justify-content: flex-end;

    width: auto;

    margin: 0;
}


/* Mobile: pills return to normal document flow. */
@media (max-width: 560px) {

    .cj-product-more-row {
        display: flex;
        flex-wrap: wrap;

        gap: 8px 12px;
    }

    .cj-product-more {
        width: 100%;
        max-width: none;
    }

    .cj-product-more summary {
        max-width: 100%;
    }

    .cj-product-more__content {
        width: 100%;
        max-width: none;
    }

    .cj-product-tags--more {
        position: static;

        width: 100%;

        justify-content: flex-end;

        margin: 0;
    }
}

/* =========================================================
   PRODUCT V3.9 — CENTRED TABLET / MOBILE CTA
   ========================================================= */

@media (max-width: 760px) {

    .cj-product-contact {
        justify-items: center;

        text-align: center;
    }

    .cj-product-contact__copy {
        align-items: center;
    }

    .cj-product-contact__actions {
        justify-content: center;
    }
}

/* =========================================================
   PRODUCT V4.0 — MOBILE PILLS STAY ON SAME ROW
   ========================================================= */

@media (max-width: 560px) {

    .cj-product-more-row {
        position: relative;

        display: block;

        width: 100%;
        max-width: 100%;

        min-height: 38px;
    }

    .cj-product-more {
        width: 100%;
        max-width: 100%;
    }

    .cj-product-more summary {
        width: fit-content;
        max-width: calc(100% - 178px);
    }

    .cj-product-tags--more {
        position: absolute;
        top: 5px;
        right: 0;

        display: flex;
        justify-content: flex-end;

        width: auto;

        margin: 0;
    }

    .cj-product-more__content {
        width: 100%;
        max-width: 100%;
    }
}


/*
 * Only on genuinely narrow phones do we allow the pills to wrap
 * below rather than collide with the accordion summary.
 */
@media (max-width: 355px) {

    .cj-product-more-row {
        display: flex;
        flex-wrap: wrap;

        gap: 8px 10px;
    }

    .cj-product-more summary {
        max-width: 100%;
    }

    .cj-product-tags--more {
        position: static;

        width: 100%;

        justify-content: flex-end;
    }
}


/* =========================================================
   MODULE: WOOCOMMERCE ARCHIVES
   ========================================================= */

/* CEEJAYS ARCHIVE.CSS — VERSION 1.5 — COMPACT ARCHIVE HEADER — 2026-08-19 */

/* =========================================================
   ARCHIVE CANVAS
   ========================================================= */

.cj-archive {
    --cj-archive-container: 1320px;

    color: var(--cj-dark);
}

.cj-archive .cj-container {
    width: min(
        var(--cj-archive-container),
        calc(100% - 48px)
    );

    max-width: none;
    margin-inline: auto;
}


/* =========================================================
   HERO
   ========================================================= */

.cj-archive-hero {
    padding: 18px 0 26px;
}

.cj-archive-breadcrumbs {
    margin-bottom: 18px;
}

.cj-archive-breadcrumbs .woocommerce-breadcrumb {
    display: flex;
    flex-wrap: wrap;
    align-items: center;

    gap: 7px;

    margin: 0;

    color: var(--cj-text-soft);

    font-size: 0.76rem;
}

.cj-archive-breadcrumbs .woocommerce-breadcrumb a {
    color: var(--cj-text-soft);

    text-decoration: none;
}

.cj-archive-breadcrumbs .woocommerce-breadcrumb a:hover {
    color: var(--cj-primary-dark);
}

.cj-archive-hero__copy {
    max-width: 820px;
}

.cj-archive-eyebrow {
    display: block;

    margin-bottom: 7px;

    color: var(--cj-primary-dark);

    font-size: 0.78rem;
    font-weight: 850;
    line-height: 1.2;

    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.cj-archive-eyebrow::before {
    display: inline-block;

    width: 8px;
    height: 8px;

    margin-right: 8px;

    border-radius: 50%;

    background: var(--cj-pink);

    content: "";
}

.cj-archive-hero h1 {
    margin: 0;

    color: var(--cj-dark);

    font-size: clamp(2.45rem, 4.3vw, 4rem);
    font-weight: 850;
    line-height: 0.98;

    letter-spacing: -0.04em;
}

.cj-archive-description {
    max-width: 760px;

    margin-top: 16px;

    color: var(--cj-text);

    font-size: 1rem;
    line-height: 1.62;
}

.cj-archive-description p {
    margin: 0;
}


/* =========================================================
   CHILD CATEGORY SHORTCUTS
   ========================================================= */

.cj-archive-categories {
    display: flex;
    flex-wrap: wrap;

    gap: 8px;

    margin-top: 22px;
}

.cj-archive-categories a {
    display: inline-flex;
    align-items: center;

    gap: 9px;

    min-height: 40px;

    padding: 8px 13px;

    border: 1px solid rgba(125, 126, 252, 0.30);
    border-radius: 999px;

    background: rgba(255, 255, 255, 0.86);
    color: var(--cj-dark);

    font-size: 0.84rem;
    font-weight: 750;

    text-decoration: none;

    box-shadow:
        0 3px 10px rgba(36, 38, 74, 0.035);

    transition:
        border-color 0.2s ease,
        background-color 0.2s ease,
        color 0.2s ease,
        transform 0.2s ease;
}

.cj-archive-categories a:hover {
    border-color: rgba(125, 126, 252, 0.60);

    background: #FFFFFF;
    color: var(--cj-primary-dark);

    transform: translateY(-1px);
}


/* =========================================================
   CATALOGUE TOOLBAR
   ========================================================= */

.cj-archive-catalogue {
    padding: 0 0 64px;
}

.cj-archive-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 20px;

    margin-bottom: 18px;
    padding: 12px 0;

    border-top: 1px solid rgba(125, 126, 252, 0.16);
    border-bottom: 1px solid rgba(125, 126, 252, 0.16);
}

.cj-archive-result-count .woocommerce-result-count {
    float: none;

    margin: 0;

    color: var(--cj-text-soft);

    font-size: 0.84rem;
}

.cj-archive-ordering .woocommerce-ordering {
    float: none;

    margin: 0;
}

.cj-archive-ordering select {
    min-height: 42px;

    padding: 8px 38px 8px 13px;

    border: 1px solid rgba(125, 126, 252, 0.28);
    border-radius: 9px;

    background-color: rgba(255, 255, 255, 0.92);
    color: var(--cj-dark);

    font-family: inherit;
    font-size: 0.84rem;
    font-weight: 700;
}


/* =========================================================
   PRODUCT GRID
   ========================================================= */

.cj-hire-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));

    gap: 24px;
}

.cj-hire-card {
    position: relative;

    display: flex;
    flex-direction: column;

    min-width: 0;
    overflow: hidden;

    border: 1px solid rgba(125, 126, 252, 0.20);
    border-radius: 14px;

    background: rgba(255, 255, 255, 0.97);

    box-shadow:
        0 10px 24px rgba(36, 38, 74, 0.075);

    transition:
        border-color 0.22s ease,
        box-shadow 0.22s ease,
        transform 0.22s ease;
}

.cj-hire-card:hover {
    border-color: rgba(125, 126, 252, 0.46);

    box-shadow:
        0 15px 34px rgba(36, 38, 74, 0.12);

    transform: translateY(-3px);
}

.cj-hire-card__main-link {
    display: flex;
    flex: 1;
    flex-direction: column;

    color: inherit;
    text-decoration: none;
}

.cj-hire-card__image {
    position: relative;

    overflow: hidden;

    aspect-ratio: 16 / 11;

    background:
        linear-gradient(
            135deg,
            #EEF9FF 0%,
            #F6F2FF 100%
        );
}

.cj-hire-card__image img {
    display: block;

    width: 100%;
    height: 100%;

    margin: 0;

    object-fit: cover;

    transition: transform 0.35s ease;
}

.cj-hire-card:hover .cj-hire-card__image img {
    transform: scale(1.025);
}

.cj-hire-card__body {
    display: flex;
    flex: 1;
    flex-direction: column;

    padding: 17px 18px 16px;
}

.cj-hire-card__eyebrow {
    margin-bottom: 6px;

    color: var(--cj-primary-dark);

    font-size: 0.69rem;
    font-weight: 850;
    line-height: 1.2;

    letter-spacing: 0.075em;
    text-transform: uppercase;
}

.cj-hire-card__heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;

    gap: 14px;
}

.cj-hire-card__heading h2 {
    flex: 1;

    margin: 0;

    color: var(--cj-dark);

    font-size: 1.28rem;
    font-weight: 850;
    line-height: 1.12;

    letter-spacing: -0.025em;
}

.cj-hire-card__price {
    flex: 0 0 auto;

    text-align: right;
}

.cj-hire-card__price > span {
    display: block;

    margin-bottom: 2px;

    color: var(--cj-text-soft);

    font-size: 0.61rem;
    font-weight: 800;

    letter-spacing: 0.055em;
    text-transform: uppercase;
}

.cj-hire-card__price strong,
.cj-hire-card__price .amount {
    color: var(--cj-dark);

    font-size: 1.15rem;
    font-weight: 850;
    line-height: 1;
}

.cj-hire-card__facts {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;

    gap: 12px;

    min-height: 50px;

    margin-top: 15px;
    padding-top: 13px;

    border-top: 1px solid rgba(125, 126, 252, 0.14);
}

.cj-hire-card__size {
    display: flex;
    flex-direction: column;

    gap: 2px;
}

.cj-hire-card__size small {
    color: var(--cj-text-soft);

    font-size: 0.62rem;
    font-weight: 800;

    letter-spacing: 0.055em;
    text-transform: uppercase;
}

.cj-hire-card__size strong {
    color: var(--cj-dark);

    font-size: 0.91rem;
}

.cj-hire-card__pills {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;

    gap: 5px;
}

.cj-hire-card__pills > span {
    display: inline-flex;
    align-items: center;

    min-height: 25px;

    padding: 4px 9px;

    border: 1px solid rgba(125, 126, 252, 0.28);
    border-radius: 999px;

    background: rgba(125, 126, 252, 0.075);
    color: var(--cj-primary-dark);

    font-size: 0.68rem;
    font-weight: 700;
    line-height: 1;
}

.cj-hire-card__view {
    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 10px;

    margin-top: auto;
    padding-top: 16px;

    color: var(--cj-dark);

    font-size: 0.82rem;
    font-weight: 800;
}

.cj-hire-card__view > span {
    color: var(--cj-primary-dark);

    font-size: 1.1rem;
}

.cj-hire-card__availability {
    display: flex;
    align-items: center;
    justify-content: center;

    min-height: 43px;

    margin: 0 16px 16px;
    padding: 8px 12px;

    border: 1px solid rgba(125, 126, 252, 0.34);
    border-radius: 9px;

    background: rgba(125, 126, 252, 0.07);
    color: var(--cj-primary-dark);

    font-size: 0.78rem;
    font-weight: 800;

    text-align: center;
    text-decoration: none;

    transition:
        background-color 0.2s ease,
        border-color 0.2s ease,
        color 0.2s ease;
}

.cj-hire-card__availability:hover {
    border-color: var(--cj-primary);

    background: var(--cj-primary);
    color: #FFFFFF;
}


/* =========================================================
   PAGINATION
   ========================================================= */

.cj-archive-pagination {
    margin-top: 34px;
}

.cj-archive-pagination .woocommerce-pagination {
    margin: 0;
}

.cj-archive-pagination .page-numbers {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;

    gap: 7px;

    margin: 0;
    padding: 0;

    border: 0;

    list-style: none;
}

.cj-archive-pagination .page-numbers li {
    margin: 0;

    border: 0;
}

.cj-archive-pagination .page-numbers a,
.cj-archive-pagination .page-numbers span {
    display: flex;
    align-items: center;
    justify-content: center;

    min-width: 40px;
    height: 40px;

    padding: 0 10px;

    border: 1px solid rgba(125, 126, 252, 0.26);
    border-radius: 8px;

    background: rgba(255, 255, 255, 0.92);
    color: var(--cj-dark);

    font-weight: 750;
}

.cj-archive-pagination .page-numbers .current,
.cj-archive-pagination .page-numbers a:hover {
    border-color: var(--cj-primary);

    background: var(--cj-primary);
    color: #FFFFFF;
}


/* =========================================================
   ARCHIVE CTA
   ========================================================= */

.cj-archive-cta {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;

    gap: 28px;

    margin-top: 42px;
    padding: 24px 26px;

    border: 1px solid rgba(125, 126, 252, 0.25);
    border-radius: 14px;

    background: rgba(255, 255, 255, 0.96);

    box-shadow:
        0 10px 24px rgba(36, 38, 74, 0.065);
}

.cj-archive-cta__copy > span {
    display: block;

    margin-bottom: 5px;

    color: var(--cj-primary-dark);

    font-size: 0.7rem;
    font-weight: 850;

    letter-spacing: 0.075em;
    text-transform: uppercase;
}

.cj-archive-cta h2 {
    margin: 0;

    color: var(--cj-dark);

    font-size: 1.5rem;
    font-weight: 850;

    letter-spacing: -0.025em;
}

.cj-archive-cta p {
    margin: 6px 0 0;

    color: var(--cj-text-soft);

    font-size: 0.9rem;
}

.cj-archive-cta__actions {
    display: flex;
    align-items: center;

    gap: 10px;
}


/* =========================================================
   EMPTY STATE
   ========================================================= */

.cj-archive-empty {
    max-width: 720px;

    margin: 50px auto;
    padding: 34px;

    border: 1px solid rgba(125, 126, 252, 0.22);
    border-radius: 14px;

    background: rgba(255, 255, 255, 0.97);

    text-align: center;
}

.cj-archive-empty h2 {
    margin-top: 0;
}


/* =========================================================
   TABLET
   ========================================================= */

@media (max-width: 1000px) {

    .cj-hire-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .cj-archive-cta {
        grid-template-columns: 1fr;

        text-align: center;
    }

    .cj-archive-cta__actions {
        justify-content: center;
    }
}


/* =========================================================
   MOBILE
   ========================================================= */

@media (max-width: 680px) {

    .cj-archive .cj-container {
        width: min(
            100% - 30px,
            var(--cj-archive-container)
        );
    }

    .cj-archive-hero {
        padding-top: 14px;
    }

    .cj-archive-hero h1 {
        font-size: clamp(2.25rem, 12vw, 3.2rem);
    }

    .cj-archive-description {
        font-size: 0.95rem;
    }

    .cj-archive-categories {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));

        gap: 7px;
    }

    .cj-archive-categories a {
        justify-content: space-between;

        min-width: 0;
    }

    .cj-archive-toolbar {
        align-items: stretch;
        flex-direction: column;

        gap: 10px;
    }

    .cj-archive-ordering,
    .cj-archive-ordering .woocommerce-ordering,
    .cj-archive-ordering select {
        width: 100%;
    }

    .cj-hire-grid {
        grid-template-columns: 1fr;

        gap: 18px;
    }

    .cj-hire-card__heading {
        gap: 10px;
    }

    .cj-hire-card__facts {
        align-items: flex-start;
        flex-direction: column;
    }

    .cj-hire-card__pills {
        justify-content: flex-start;
    }

    .cj-archive-cta {
        padding: 22px 18px;
    }

    .cj-archive-cta__actions {
        flex-direction: column;

        width: 100%;
    }

    .cj-archive-cta__actions .cj-button {
        width: 100%;
    }
}


@media (max-width: 410px) {

    .cj-archive-categories {
        grid-template-columns: 1fr;
    }

    .cj-hire-card__heading {
        flex-direction: column;
    }

    .cj-hire-card__price {
        text-align: left;
    }
}

/* =========================================================
   ARCHIVE V1.1 — RESULT COUNT + SORTING IN HEADER
   ========================================================= */

.cj-archive-hero__row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 250px;
    align-items: end;

    gap: 36px;
}

.cj-archive-hero__controls {
    display: flex;
    flex-direction: column;
    align-items: stretch;

    gap: 8px;

    padding-bottom: 2px;

    text-align: right;
}

.cj-archive-hero__controls .woocommerce-result-count {
    float: none;

    margin: 0;

    color: var(--cj-text-soft);

    font-size: 0.82rem;
}

.cj-archive-hero__controls .woocommerce-ordering {
    float: none;

    width: 100%;

    margin: 0;
}

.cj-archive-hero__controls select {
    width: 100%;
    min-height: 42px;

    padding: 8px 38px 8px 13px;

    border: 1px solid rgba(125, 126, 252, 0.28);
    border-radius: 9px;

    background-color: rgba(255, 255, 255, 0.92);
    color: var(--cj-dark);

    font-family: inherit;
    font-size: 0.84rem;
    font-weight: 700;
}

.cj-archive-catalogue {
    padding-top: 4px;
}


/* Old toolbar no longer rendered by archive-product.php */
.cj-archive-toolbar {
    display: none;
}


@media (max-width: 820px) {

    .cj-archive-hero__row {
        grid-template-columns: 1fr;

        gap: 20px;
    }

    .cj-archive-hero__controls {
        width: min(100%, 320px);

        padding-bottom: 0;

        text-align: left;
    }
}


@media (max-width: 520px) {

    .cj-archive-hero__controls {
        width: 100%;
    }
}

/* =========================================================
   ARCHIVE V1.2 — COMPACT PRODUCT CARDS
   ========================================================= */

/* Tighten the information area. */
.cj-hire-card__body {
    padding: 15px 16px 13px;
}

.cj-hire-card__eyebrow {
    margin-bottom: 5px;
}


/* Product title + price share one clean line. */
.cj-hire-card__heading {
    align-items: baseline;

    gap: 14px;
}

.cj-hire-card__heading h2 {
    font-size: 1.24rem;
}

.cj-hire-card__price {
    flex: 0 0 auto;

    color: var(--cj-dark);

    font-size: 1.18rem;
    font-weight: 850;
    line-height: 1;

    text-align: right;
    white-space: nowrap;
}

.cj-hire-card__price .amount {
    color: inherit;

    font-size: inherit;
    font-weight: inherit;
}


/* Pull the specification row slightly closer to the heading. */
.cj-hire-card__facts {
    min-height: 46px;

    margin-top: 12px;
    padding-top: 11px;
}


/* Old inline View details treatment is no longer used. */
.cj-hire-card__view {
    display: none;
}


/* Two equal actions form one compact card footer. */
.cj-hire-card__actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));

    gap: 8px;

    padding: 0 16px 16px;
}

.cj-hire-card__details,
.cj-hire-card__availability {
    display: flex;
    align-items: center;
    justify-content: center;

    min-height: 42px;

    margin: 0;
    padding: 8px 10px;

    border-radius: 8px;

    font-size: 0.76rem;
    font-weight: 800;
    line-height: 1.15;

    text-align: center;
    text-decoration: none;

    transition:
        background-color 0.2s ease,
        border-color 0.2s ease,
        color 0.2s ease,
        transform 0.2s ease;
}

.cj-hire-card__details {
    border: 1px solid rgba(125, 126, 252, 0.34);

    background: #FFFFFF;
    color: var(--cj-primary-dark);
}

.cj-hire-card__details:hover {
    border-color: var(--cj-primary);

    background: rgba(125, 126, 252, 0.08);
    color: var(--cj-primary-dark);

    transform: translateY(-1px);
}

.cj-hire-card__availability {
    border: 1px solid var(--cj-primary);

    background:
        linear-gradient(
            135deg,
            #7D7EFC 0%,
            #696BEF 100%
        );

    color: #FFFFFF;
}

.cj-hire-card__availability:hover {
    border-color: #6264E5;

    background:
        linear-gradient(
            135deg,
            #6F70F2 0%,
            #5F61E2 100%
        );

    color: #FFFFFF;

    transform: translateY(-1px);
}


@media (max-width: 410px) {

    .cj-hire-card__heading {
        flex-direction: row;
        align-items: baseline;
    }

    .cj-hire-card__price {
        text-align: right;
    }

    .cj-hire-card__actions {
        grid-template-columns: repeat(2, minmax(0, 1fr));

        gap: 7px;

        padding-inline: 14px;
    }

    .cj-hire-card__details,
    .cj-hire-card__availability {
        padding-inline: 6px;

        font-size: 0.72rem;
    }
}

/* =========================================================
   ARCHIVE V1.3 — CLEANER CATEGORY CARDS
   ========================================================= */

/* Show more of the inflatable in catalogue cards. */
.cj-hire-card__image {
    aspect-ratio: 4 / 3;
}

/* Category eyebrow is intentionally removed from category cards. */
.cj-hire-card__eyebrow {
    display: none;
}

/* =========================================================
   ARCHIVE V1.4 — SQUARE PRODUCT IMAGES
   Show more of portrait-oriented inflatable photography.
   ========================================================= */

.cj-hire-card__image {
    aspect-ratio: 1 / 1;
}

/* =========================================================
   ARCHIVE V1.5 — COMPACT ARCHIVE HEADER
   Remove redundant eyebrow spacing and bring the first row
   of products materially higher above the fold.
   ========================================================= */

.cj-archive-hero {
    padding: 10px 0 18px;
}

.cj-archive-breadcrumbs {
    margin-bottom: 10px;
}

.cj-archive-eyebrow {
    display: none;
}

.cj-archive-hero h1 {
    font-size: clamp(2.15rem, 3.25vw, 3.15rem);
    line-height: 1.02;
    letter-spacing: -0.035em;
}

.cj-archive-description {
    margin-top: 10px;
    line-height: 1.5;
}

.cj-archive-hero__row {
    align-items: end;
    gap: 30px;
}

.cj-archive-hero__controls {
    padding-bottom: 0;
}

.cj-archive-catalogue {
    padding-top: 0;
}


/* Mobile/tablet remain compact without making the title tiny. */
@media (max-width: 820px) {

    .cj-archive-hero {
        padding-top: 8px;
    }

    .cj-archive-hero h1 {
        font-size: clamp(2rem, 8vw, 2.7rem);
    }
}

@media (max-width: 520px) {

    .cj-archive-hero h1 {
        font-size: clamp(1.9rem, 10vw, 2.4rem);
    }
}


/* =========================================================
   MODULE: HOMEPAGE
   ========================================================= */

/* CEEJAYS HOME.CSS — VERSION 1.2 — LARGER REASSURANCE TEXT — 2026-08-21 */

/* =========================================================
   HOME BASE
   ========================================================= */

.cj-home {
    --cj-home-container: 1320px;

    color: var(--cj-dark);
}

.cj-home .cj-container {
    width: min(
        var(--cj-home-container),
        calc(100% - 48px)
    );

    max-width: none;
    margin-inline: auto;
}

.cj-home a {
    text-decoration: none;
}


/* =========================================================
   HERO
   ========================================================= */

.cj-home-hero {
    position: relative;

    overflow: hidden;

    padding: 42px 0 38px;
}

.cj-home-hero::before {
    position: absolute;
    top: -180px;
    left: -120px;

    width: 480px;
    height: 480px;

    border: 90px solid rgba(0, 188, 236, 0.055);
    border-radius: 50%;

    pointer-events: none;

    content: "";
}

.cj-home-hero__grid {
    position: relative;
    z-index: 1;

    display: grid;
    grid-template-columns: minmax(0, 0.92fr) minmax(520px, 1.08fr);
    align-items: center;

    gap: clamp(48px, 6vw, 88px);
}

.cj-home-kicker,
.cj-home-section-kicker {
    display: block;

    color: var(--cj-primary-dark);

    font-size: 0.76rem;
    font-weight: 850;
    line-height: 1.2;

    letter-spacing: 0.085em;
    text-transform: uppercase;
}

.cj-home-kicker::before {
    display: inline-block;

    width: 8px;
    height: 8px;

    margin-right: 8px;

    border-radius: 50%;

    background: var(--cj-pink);

    content: "";
}

.cj-home-hero h1 {
    margin: 10px 0 18px;

    color: var(--cj-dark);

    font-size: clamp(3.7rem, 6.1vw, 6.3rem);
    font-weight: 850;
    line-height: 0.88;

    letter-spacing: -0.06em;
}

.cj-home-hero h1 span {
    background:
        linear-gradient(
            90deg,
            #00BCEC 0%,
            #7D7EFC 48%,
            #E00080 100%
        );

    -webkit-background-clip: text;
    background-clip: text;

    color: transparent;
}

.cj-home-hero__lead {
    max-width: 650px;

    margin: 0;

    color: var(--cj-text);

    font-size: 1.05rem;
    line-height: 1.62;
}

.cj-home-hero__actions {
    display: flex;
    flex-wrap: wrap;

    gap: 10px;

    margin-top: 24px;
}

.cj-home-hero__actions .cj-button {
    min-height: 50px;

    border-radius: 10px;
}

.cj-home-button--gradient {
    border-color: transparent !important;

    background:
        linear-gradient(
            90deg,
            #00BCEC 0%,
            #7D7EFC 50%,
            #E00080 100%
        ) !important;

    color: #FFFFFF !important;

    box-shadow:
        0 8px 20px rgba(81, 84, 205, 0.18);
}

.cj-home-button--gradient:hover {
    box-shadow:
        0 11px 25px rgba(81, 84, 205, 0.24);

    transform: translateY(-1px);
}

.cj-home-trustline {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));

    gap: 12px;

    margin-top: 28px;
}

.cj-home-trustline > span {
    display: flex;
    flex-direction: column;

    padding: 11px 12px;

    border-top: 1px solid rgba(125, 126, 252, 0.22);

    color: var(--cj-text-soft);

    font-size: 0.72rem;
    line-height: 1.35;
}

.cj-home-trustline strong {
    margin-bottom: 2px;

    color: var(--cj-dark);

    font-size: 0.82rem;
}


/* Hero showcase */
.cj-home-hero__showcase {
    display: grid;
    grid-template-columns: 1.36fr 0.82fr;
    grid-template-rows: repeat(2, 1fr);

    gap: 12px;

    min-height: 470px;
}

.cj-home-showcase-card {
    position: relative;

    display: block;

    min-width: 0;
    min-height: 0;
    overflow: hidden;

    border: 4px solid rgba(255, 255, 255, 0.95);
    border-radius: 18px;

    background:
        linear-gradient(
            135deg,
            #E6F8FF 0%,
            #F0EFFF 100%
        );

    box-shadow:
        0 16px 34px rgba(36, 38, 74, 0.13);

    color: #FFFFFF;
}

.cj-home-showcase-card--large {
    grid-row: 1 / -1;
}

.cj-home-showcase-card__image {
    position: absolute;

    inset: 0;
}

.cj-home-showcase-card__image img {
    width: 100%;
    height: 100%;

    object-fit: cover;

    transition:
        transform 0.4s ease;
}

.cj-home-showcase-card:hover .cj-home-showcase-card__image img {
    transform: scale(1.035);
}

.cj-home-showcase-card__overlay {
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;

    display: flex;
    align-items: flex-end;
    justify-content: space-between;

    gap: 12px;

    padding: 30px 15px 14px;

    background:
        linear-gradient(
            180deg,
            rgba(24, 27, 63, 0) 0%,
            rgba(24, 27, 63, 0.86) 100%
        );

    color: #FFFFFF;
}

.cj-home-showcase-card__overlay > span {
    font-size: 0.84rem;
    font-weight: 800;
    line-height: 1.2;
}

.cj-home-showcase-card--large .cj-home-showcase-card__overlay > span {
    max-width: 72%;

    font-size: 1rem;
}

.cj-home-showcase-card__overlay strong,
.cj-home-showcase-card__overlay .amount {
    color: #FFFFFF;

    font-size: 0.94rem;
    font-weight: 850;

    white-space: nowrap;
}

.cj-home-showcase-card--placeholder {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;

    padding: 30px;

    background:
        linear-gradient(
            135deg,
            #00BCEC 0%,
            #7D7EFC 52%,
            #E00080 100%
        );

    text-align: center;
}

.cj-home-showcase-card--placeholder > span {
    font-size: 1.5rem;
    font-weight: 850;
}

.cj-home-showcase-card--placeholder > strong {
    margin-top: 8px;

    font-size: 1rem;
}


/* =========================================================
   QUICK JOURNEYS
   ========================================================= */

.cj-home-journeys {
    padding: 0 0 34px;
}

.cj-home-journeys__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));

    gap: 12px;
}

.cj-home-journey {
    position: relative;

    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;

    gap: 14px;

    min-height: 92px;

    padding: 16px 18px;

    border: 1px solid rgba(125, 126, 252, 0.22);
    border-radius: 13px;

    background: rgba(255, 255, 255, 0.95);

    box-shadow:
        0 8px 20px rgba(36, 38, 74, 0.06);

    color: var(--cj-dark);

    transition:
        border-color 0.2s ease,
        box-shadow 0.2s ease,
        transform 0.2s ease;
}

.cj-home-journey:hover {
    border-color: rgba(125, 126, 252, 0.50);

    box-shadow:
        0 12px 26px rgba(36, 38, 74, 0.10);

    transform: translateY(-2px);
}

.cj-home-journey__number {
    display: flex;
    align-items: center;
    justify-content: center;

    width: 38px;
    height: 38px;

    border-radius: 50%;

    background:
        linear-gradient(
            135deg,
            #00BCEC 0%,
            #7D7EFC 100%
        );

    color: #FFFFFF;

    font-size: 0.68rem;
    font-weight: 850;
}

.cj-home-journey > div {
    display: flex;
    flex-direction: column;

    gap: 2px;
}

.cj-home-journey strong {
    color: var(--cj-dark);

    font-size: 0.95rem;
}

.cj-home-journey > div > span {
    color: var(--cj-text-soft);

    font-size: 0.76rem;
    line-height: 1.35;
}

.cj-home-journey__arrow {
    color: var(--cj-primary-dark);

    font-size: 1.2rem;
}


/* =========================================================
   SHARED SECTION
   ========================================================= */

.cj-home-section {
    padding: 62px 0;
}

.cj-home-section-heading {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;

    gap: 28px;

    margin-bottom: 24px;
}

.cj-home-section-heading h2 {
    max-width: 760px;

    margin: 7px 0 0;

    color: var(--cj-dark);

    font-size: clamp(2rem, 3.3vw, 3.3rem);
    font-weight: 850;
    line-height: 1.02;

    letter-spacing: -0.04em;
}

.cj-home-section-heading p {
    max-width: 720px;

    margin: 12px 0 0;

    color: var(--cj-text-soft);

    font-size: 0.95rem;
    line-height: 1.58;
}

.cj-home-section-heading--center {
    justify-content: center;

    text-align: center;
}

.cj-home-section-heading--center > div {
    display: flex;
    flex-direction: column;
    align-items: center;
}

.cj-home-text-link {
    display: inline-flex;
    align-items: center;

    gap: 8px;

    color: var(--cj-primary-dark);

    font-size: 0.82rem;
    font-weight: 800;

    white-space: nowrap;
}

.cj-home-text-link:hover {
    color: var(--cj-pink);
}


/* =========================================================
   POPULAR PRODUCTS
   ========================================================= */

.cj-home-popular {
    border-top: 1px solid rgba(125, 126, 252, 0.14);
    border-bottom: 1px solid rgba(125, 126, 252, 0.14);

    background:
        rgba(255, 255, 255, 0.42);
}

.cj-home-product-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));

    gap: 22px;
}

.cj-home-product-card {
    display: flex;
    flex-direction: column;

    min-width: 0;
    overflow: hidden;

    border: 1px solid rgba(125, 126, 252, 0.20);
    border-radius: 14px;

    background: rgba(255, 255, 255, 0.98);

    box-shadow:
        0 10px 24px rgba(36, 38, 74, 0.075);
}

.cj-home-product-card__main {
    display: flex;
    flex: 1;
    flex-direction: column;

    color: inherit;
}

.cj-home-product-card__image {
    display: block;

    aspect-ratio: 1 / 1;

    overflow: hidden;

    background: #EEF6FC;
}

.cj-home-product-card__image img {
    width: 100%;
    height: 100%;

    object-fit: cover;

    transition: transform 0.35s ease;
}

.cj-home-product-card:hover .cj-home-product-card__image img {
    transform: scale(1.025);
}

.cj-home-product-card__body {
    display: flex;
    flex: 1;
    flex-direction: column;

    padding: 14px 15px 12px;
}

.cj-home-product-card__heading {
    display: flex;
    align-items: baseline;
    justify-content: space-between;

    gap: 12px;
}

.cj-home-product-card__heading > strong {
    color: var(--cj-dark);

    font-size: 1.02rem;
    line-height: 1.2;
}

.cj-home-product-card__heading > b,
.cj-home-product-card__heading .amount {
    color: var(--cj-dark);

    font-size: 1rem;
    font-weight: 850;

    white-space: nowrap;
}

.cj-home-product-card__meta {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;

    gap: 12px;

    margin-top: 11px;
    padding-top: 10px;

    border-top: 1px solid rgba(125, 126, 252, 0.14);
}

.cj-home-product-card__meta > span:first-child {
    display: flex;
    flex-direction: column;
}

.cj-home-product-card__meta small {
    color: var(--cj-text-soft);

    font-size: 0.60rem;
    font-weight: 800;

    letter-spacing: 0.055em;
    text-transform: uppercase;
}

.cj-home-product-card__meta strong {
    color: var(--cj-dark);

    font-size: 0.84rem;
}

.cj-home-product-card__pills {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;

    gap: 5px;
}

.cj-home-product-card__pills em {
    display: inline-flex;
    align-items: center;

    min-height: 24px;

    padding: 4px 8px;

    border: 1px solid rgba(125, 126, 252, 0.28);
    border-radius: 999px;

    background: rgba(125, 126, 252, 0.075);
    color: var(--cj-primary-dark);

    font-size: 0.64rem;
    font-style: normal;
    font-weight: 700;
}

.cj-home-product-card__actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));

    gap: 7px;

    padding: 0 15px 15px;
}

.cj-home-product-card__actions a {
    display: flex;
    align-items: center;
    justify-content: center;

    min-height: 40px;

    padding: 7px 8px;

    border: 1px solid rgba(125, 126, 252, 0.34);
    border-radius: 8px;

    background: #FFFFFF;
    color: var(--cj-primary-dark);

    font-size: 0.72rem;
    font-weight: 800;

    text-align: center;
}

.cj-home-product-card__actions a.is-primary {
    border-color: var(--cj-primary);

    background: var(--cj-primary);
    color: #FFFFFF;
}


/* =========================================================
   BENEFITS
   ========================================================= */

.cj-home-benefits {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));

    gap: 16px;
}

.cj-home-benefits article {
    padding: 22px 20px;

    border: 1px solid rgba(125, 126, 252, 0.20);
    border-radius: 14px;

    background: rgba(255, 255, 255, 0.96);

    box-shadow:
        0 8px 20px rgba(36, 38, 74, 0.055);
}

.cj-home-benefits article > span {
    display: flex;
    align-items: center;
    justify-content: center;

    width: 46px;
    height: 46px;

    margin-bottom: 16px;

    border-radius: 13px;

    background:
        linear-gradient(
            135deg,
            #00BCEC 0%,
            #7D7EFC 56%,
            #E00080 100%
        );

    color: #FFFFFF;

    font-size: 0.88rem;
    font-weight: 850;
}

.cj-home-benefits h3 {
    margin: 0;

    color: var(--cj-dark);

    font-size: 1.04rem;
    font-weight: 850;
}

.cj-home-benefits p {
    margin: 8px 0 0;

    color: var(--cj-text-soft);

    font-size: 0.82rem;
    line-height: 1.52;
}


/* =========================================================
   INCLUDED / LOCAL
   ========================================================= */

.cj-home-local {
    padding-top: 10px;
}

.cj-home-local__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));

    gap: 18px;
}

.cj-home-local__panel {
    padding: 30px;

    border: 1px solid rgba(125, 126, 252, 0.20);
    border-radius: 16px;

    background: rgba(255, 255, 255, 0.97);

    box-shadow:
        0 10px 24px rgba(36, 38, 74, 0.06);
}

.cj-home-local__panel h2 {
    margin: 7px 0 14px;

    color: var(--cj-dark);

    font-size: clamp(1.65rem, 2.4vw, 2.4rem);
    font-weight: 850;
    line-height: 1.05;

    letter-spacing: -0.035em;
}

.cj-home-local__panel p {
    margin: 0;

    color: var(--cj-text-soft);

    font-size: 0.88rem;
    line-height: 1.58;
}

.cj-home-local__panel ul {
    display: grid;

    gap: 8px;

    margin: 0 0 18px;
    padding: 0;

    list-style: none;
}

.cj-home-local__panel li {
    position: relative;

    padding-left: 25px;

    color: var(--cj-text);

    font-size: 0.86rem;
}

.cj-home-local__panel li::before {
    position: absolute;
    top: 0.15em;
    left: 0;

    display: flex;
    align-items: center;
    justify-content: center;

    width: 17px;
    height: 17px;

    border-radius: 50%;

    background: rgba(125, 126, 252, 0.13);
    color: var(--cj-primary-dark);

    font-size: 0.65rem;
    font-weight: 850;

    content: "✓";
}

.cj-home-area-chips {
    display: flex;
    flex-wrap: wrap;

    gap: 7px;

    margin: 18px 0;
}

.cj-home-area-chips span {
    display: inline-flex;
    align-items: center;

    min-height: 31px;

    padding: 5px 10px;

    border: 1px solid rgba(125, 126, 252, 0.22);
    border-radius: 999px;

    background: rgba(125, 126, 252, 0.06);
    color: var(--cj-dark);

    font-size: 0.72rem;
    font-weight: 700;
}


/* =========================================================
   FINAL CTA
   ========================================================= */

.cj-home-final {
    padding: 56px 0 64px;
}

.cj-home-final__inner {
    position: relative;

    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;

    gap: 34px;

    overflow: hidden;

    padding: 36px 38px;

    border-radius: 18px;

    background:
        linear-gradient(
            100deg,
            #00BCEC 0%,
            #7D7EFC 46%,
            #E00080 100%
        );

    box-shadow:
        0 16px 34px rgba(67, 69, 165, 0.19);

    color: #FFFFFF;
}

.cj-home-final__inner::after {
    position: absolute;
    top: -130px;
    right: 10%;

    width: 300px;
    height: 300px;

    border: 55px solid rgba(255, 255, 255, 0.09);
    border-radius: 50%;

    pointer-events: none;

    content: "";
}

.cj-home-final__inner > * {
    position: relative;
    z-index: 1;
}

.cj-home-final__inner > div:first-child > span {
    display: block;

    margin-bottom: 6px;

    color: rgba(255, 255, 255, 0.86);

    font-size: 0.70rem;
    font-weight: 850;

    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.cj-home-final h2 {
    margin: 0;

    color: #FFFFFF;

    font-size: clamp(2rem, 3vw, 3rem);
    font-weight: 850;

    letter-spacing: -0.04em;
}

.cj-home-final p {
    margin: 8px 0 0;

    color: rgba(255, 255, 255, 0.88);

    font-size: 0.9rem;
}

.cj-home-final__actions {
    display: flex;
    align-items: center;

    gap: 9px;
}

.cj-home-button--white {
    border-color: #FFFFFF !important;

    background: #FFFFFF !important;
    color: var(--cj-primary-dark) !important;
}

.cj-home-button--ghost {
    border-color: rgba(255, 255, 255, 0.72) !important;

    background: transparent !important;
    color: #FFFFFF !important;
}


/* =========================================================
   TABLET
   ========================================================= */

@media (max-width: 1050px) {

    .cj-home-hero__grid {
        grid-template-columns: 1fr 1fr;

        gap: 34px;
    }

    .cj-home-hero__showcase {
        min-height: 410px;
    }

    .cj-home-trustline {
        grid-template-columns: 1fr;
    }

    .cj-home-benefits {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .cj-home-final__inner {
        grid-template-columns: 1fr;

        text-align: center;
    }

    .cj-home-final__actions {
        justify-content: center;
    }
}


@media (max-width: 820px) {

    .cj-home .cj-container {
        width: min(
            var(--cj-home-container),
            calc(100% - 32px)
        );
    }

    .cj-home-hero {
        padding-top: 28px;
    }

    .cj-home-hero__grid {
        grid-template-columns: 1fr;

        gap: 30px;
    }

    .cj-home-hero__copy {
        text-align: center;
    }

    .cj-home-kicker {
        text-align: center;
    }

    .cj-home-hero h1 {
        font-size: clamp(3.2rem, 11vw, 5.2rem);
    }

    .cj-home-hero__lead {
        margin-inline: auto;
    }

    .cj-home-hero__actions {
        justify-content: center;
    }

    .cj-home-trustline {
        grid-template-columns: repeat(3, minmax(0, 1fr));

        text-align: left;
    }

    .cj-home-hero__showcase {
        min-height: 500px;
    }

    .cj-home-journeys__grid {
        grid-template-columns: 1fr;
    }

    .cj-home-product-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .cj-home-section-heading {
        align-items: flex-start;
        flex-direction: column;
    }

    .cj-home-local__grid {
        grid-template-columns: 1fr;
    }
}


/* =========================================================
   MOBILE
   ========================================================= */

@media (max-width: 600px) {

    .cj-home-hero {
        padding: 24px 0 28px;
    }

    .cj-home-hero h1 {
        margin-top: 8px;

        font-size: clamp(3rem, 15vw, 4.6rem);
    }

    .cj-home-hero__lead {
        font-size: 0.96rem;
    }

    .cj-home-hero__actions {
        display: grid;
        grid-template-columns: 1fr;

        width: 100%;
    }

    .cj-home-hero__actions .cj-button {
        width: 100%;
    }

    .cj-home-trustline {
        grid-template-columns: 1fr;

        margin-top: 20px;
    }

    .cj-home-hero__showcase {
        grid-template-columns: 1.28fr 0.82fr;

        min-height: 390px;

        gap: 8px;
    }

    .cj-home-showcase-card {
        border-width: 3px;
        border-radius: 13px;
    }

    .cj-home-showcase-card__overlay {
        flex-direction: column;
        align-items: flex-start;

        gap: 2px;

        padding: 30px 10px 10px;
    }

    .cj-home-showcase-card--large .cj-home-showcase-card__overlay > span {
        max-width: none;

        font-size: 0.86rem;
    }

    .cj-home-showcase-card__overlay > span {
        font-size: 0.70rem;
    }

    .cj-home-showcase-card__overlay strong,
    .cj-home-showcase-card__overlay .amount {
        font-size: 0.78rem;
    }

    .cj-home-section {
        padding: 46px 0;
    }

    .cj-home-section-heading h2 {
        font-size: clamp(2rem, 9vw, 2.75rem);
    }

    .cj-home-product-grid {
        grid-template-columns: 1fr;

        gap: 18px;
    }

    .cj-home-benefits {
        grid-template-columns: 1fr;

        gap: 10px;
    }

    .cj-home-benefits article {
        display: grid;
        grid-template-columns: auto minmax(0, 1fr);

        column-gap: 14px;

        padding: 17px;
    }

    .cj-home-benefits article > span {
        grid-row: 1 / span 2;

        margin-bottom: 0;
    }

    .cj-home-benefits p {
        margin-top: 4px;
    }

    .cj-home-local__panel {
        padding: 22px 18px;
    }

    .cj-home-final {
        padding: 40px 0 48px;
    }

    .cj-home-final__inner {
        gap: 24px;

        padding: 28px 18px;
    }

    .cj-home-final__actions {
        flex-direction: column;

        width: 100%;
    }

    .cj-home-final__actions .cj-button {
        width: 100%;
    }
}


@media (max-width: 390px) {

    .cj-home-hero__showcase {
        min-height: 340px;
    }

    .cj-home-product-card__heading {
        align-items: flex-start;
        flex-direction: column;

        gap: 4px;
    }

    .cj-home-product-card__meta {
        align-items: flex-start;
        flex-direction: column;
    }

    .cj-home-product-card__pills {
        justify-content: flex-start;
    }
}

/* =========================================================
   HOME V1.1 — INLINE QUICK-JOURNEY ICONS
   ========================================================= */

.cj-home-journey__icon {
    display: flex;
    align-items: center;
    justify-content: center;

    width: 42px;
    height: 42px;
    flex: 0 0 42px;

    border-radius: 12px;

    background:
        linear-gradient(
            135deg,
            rgba(0, 188, 236, 0.14) 0%,
            rgba(125, 126, 252, 0.14) 55%,
            rgba(224, 0, 128, 0.11) 100%
        );

    color: var(--cj-primary-dark);

    transition:
        background 0.2s ease,
        color 0.2s ease,
        transform 0.2s ease;
}

.cj-home-journey__icon svg {
    display: block;

    width: 25px;
    height: 25px;

    fill: none;
    stroke: currentColor;

    stroke-width: 2.1;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.cj-home-journey:hover .cj-home-journey__icon {
    background:
        linear-gradient(
            135deg,
            #00BCEC 0%,
            #7D7EFC 55%,
            #E00080 100%
        );

    color: #FFFFFF;

    transform: translateY(-1px);
}

.cj-home-journey__number {
    display: none;
}



/* =========================================================
   HOME V1.2 — REASSURANCE TEXT SIZE
   ========================================================= */

.cj-home-trustline > span {
    font-size: 0.84rem;
}

.cj-home-trustline strong {
    font-size: 0.95rem;
}


/* =========================================================
   MODULE: PARTY & EVENT HIRE
   ========================================================= */

/* CEEJAYS PARTY-EVENT.CSS — VERSION 1.1 — LARGER REASSURANCE TEXT — 2026-08-21 */

/* =========================================================
   BASE
   ========================================================= */

.cj-party {
    --cj-party-container: 1320px;

    color: var(--cj-dark);
}

.cj-party .cj-container {
    width: min(
        var(--cj-party-container),
        calc(100% - 48px)
    );

    max-width: none;
    margin-inline: auto;
}

.cj-party a {
    text-decoration: none;
}

.cj-party-kicker,
.cj-party-section-kicker {
    display: block;

    color: var(--cj-primary-dark);

    font-size: 0.75rem;
    font-weight: 850;
    line-height: 1.2;

    letter-spacing: 0.085em;
    text-transform: uppercase;
}

.cj-party-kicker::before {
    display: inline-block;

    width: 8px;
    height: 8px;

    margin-right: 8px;

    border-radius: 50%;

    background: var(--cj-pink);

    content: "";
}


/* =========================================================
   HERO
   ========================================================= */

.cj-party-hero {
    position: relative;

    overflow: hidden;

    padding: 46px 0 48px;
}

.cj-party-hero::before {
    position: absolute;
    top: -210px;
    right: -160px;

    width: 520px;
    height: 520px;

    border: 90px solid rgba(0, 188, 236, 0.05);
    border-radius: 50%;

    pointer-events: none;

    content: "";
}

.cj-party-hero__grid {
    position: relative;
    z-index: 1;

    display: grid;
    grid-template-columns: minmax(0, 1fr) 430px;
    align-items: center;

    gap: clamp(48px, 7vw, 90px);
}

.cj-party-hero__copy {
    max-width: 760px;
}

.cj-party-hero h1 {
    max-width: 760px;

    margin: 10px 0 18px;

    color: var(--cj-dark);

    font-size: clamp(3rem, 5.3vw, 5.35rem);
    font-weight: 850;
    line-height: 0.95;

    letter-spacing: -0.055em;
}

.cj-party-hero__lead {
    max-width: 700px;

    margin: 0;

    color: var(--cj-text);

    font-size: 1.02rem;
    line-height: 1.62;
}

.cj-party-hero__actions {
    display: flex;
    flex-wrap: wrap;

    gap: 10px;

    margin-top: 24px;
}

.cj-party-hero__actions .cj-button {
    min-height: 50px;

    border-radius: 10px;
}

.cj-party-button--gradient {
    border-color: transparent !important;

    background:
        linear-gradient(
            90deg,
            #00BCEC 0%,
            #7D7EFC 50%,
            #E00080 100%
        ) !important;

    color: #FFFFFF !important;

    box-shadow:
        0 8px 20px rgba(81, 84, 205, 0.18);
}

.cj-party-hero__points {
    display: flex;
    flex-wrap: wrap;

    gap: 9px;

    margin-top: 24px;
}

.cj-party-hero__points > span {
    display: inline-flex;
    align-items: center;

    gap: 7px;

    min-height: 34px;

    padding: 6px 10px;

    border: 1px solid rgba(125, 126, 252, 0.20);
    border-radius: 999px;

    background: rgba(255, 255, 255, 0.76);
    color: var(--cj-dark);

    font-size: 0.72rem;
    font-weight: 700;
}

.cj-party-hero__points svg {
    width: 17px;
    height: 17px;

    fill: none;
    stroke: var(--cj-primary-dark);

    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}


/* Planner */
.cj-party-hero__planner {
    position: relative;

    overflow: hidden;

    padding: 27px 26px;

    border: 1px solid rgba(125, 126, 252, 0.22);
    border-radius: 17px;

    background: rgba(255, 255, 255, 0.97);

    box-shadow:
        0 15px 36px rgba(36, 38, 74, 0.11);
}

.cj-party-hero__planner::before {
    position: absolute;
    top: 0;
    right: 0;
    left: 0;

    height: 4px;

    background:
        linear-gradient(
            90deg,
            #00BCEC 0%,
            #7D7EFC 50%,
            #E00080 100%
        );

    content: "";
}

.cj-party-planner__eyebrow {
    display: block;

    color: var(--cj-primary-dark);

    font-size: 0.70rem;
    font-weight: 850;

    letter-spacing: 0.075em;
    text-transform: uppercase;
}

.cj-party-hero__planner h2 {
    margin: 6px 0 18px;

    color: var(--cj-dark);

    font-size: 1.85rem;
    font-weight: 850;
    line-height: 1.05;

    letter-spacing: -0.035em;
}

.cj-party-planner__items {
    display: grid;

    gap: 9px;
}

.cj-party-planner__items > div {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: center;

    gap: 12px;

    padding: 11px 0;

    border-top: 1px solid rgba(125, 126, 252, 0.13);
}

.cj-party-planner__icon {
    display: flex;
    align-items: center;
    justify-content: center;

    width: 40px;
    height: 40px;

    border-radius: 11px;

    background:
        linear-gradient(
            135deg,
            rgba(0, 188, 236, 0.12) 0%,
            rgba(125, 126, 252, 0.13) 55%,
            rgba(224, 0, 128, 0.09) 100%
        );

    color: var(--cj-primary-dark);
}

.cj-party-planner__icon svg {
    width: 21px;
    height: 21px;

    fill: none;
    stroke: currentColor;

    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.cj-party-planner__items strong {
    display: block;

    color: var(--cj-dark);

    font-size: 0.85rem;
}

.cj-party-planner__items > div > div > span {
    display: block;

    margin-top: 1px;

    color: var(--cj-text-soft);

    font-size: 0.73rem;
    line-height: 1.35;
}

.cj-party-planner__cta {
    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 12px;

    min-height: 46px;

    margin-top: 17px;
    padding: 10px 13px;

    border-radius: 9px;

    background: var(--cj-dark);
    color: #FFFFFF;

    font-size: 0.79rem;
    font-weight: 800;
}

.cj-party-planner__cta:hover {
    background: var(--cj-primary-dark);
}


/* =========================================================
   SHARED SECTIONS
   ========================================================= */

.cj-party-section {
    padding: 62px 0;
}

.cj-party-section-heading {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 380px;
    align-items: end;

    gap: 40px;

    margin-bottom: 24px;
}

.cj-party-section-heading h2 {
    max-width: 760px;

    margin: 7px 0 0;

    color: var(--cj-dark);

    font-size: clamp(2rem, 3.3vw, 3.2rem);
    font-weight: 850;
    line-height: 1.02;

    letter-spacing: -0.04em;
}

.cj-party-section-heading > p {
    margin: 0;

    color: var(--cj-text-soft);

    font-size: 0.88rem;
    line-height: 1.55;
}

.cj-party-section-heading--center {
    display: flex;
    justify-content: center;

    text-align: center;
}

.cj-party-section-heading--center > div {
    display: flex;
    flex-direction: column;
    align-items: center;
}


/* =========================================================
   CATEGORY CARDS
   ========================================================= */

.cj-party-categories {
    border-top: 1px solid rgba(125, 126, 252, 0.13);
    border-bottom: 1px solid rgba(125, 126, 252, 0.13);

    background: rgba(255, 255, 255, 0.34);
}

.cj-party-category-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));

    gap: 20px;
}

.cj-party-category-card {
    position: relative;

    display: block;

    min-width: 0;
    overflow: hidden;

    border: 1px solid rgba(125, 126, 252, 0.19);
    border-radius: 14px;

    background: rgba(255, 255, 255, 0.97);

    box-shadow:
        0 9px 22px rgba(36, 38, 74, 0.07);

    color: var(--cj-dark);

    transition:
        border-color 0.22s ease,
        box-shadow 0.22s ease,
        transform 0.22s ease;
}

.cj-party-category-card:hover {
    border-color: rgba(125, 126, 252, 0.48);

    box-shadow:
        0 14px 30px rgba(36, 38, 74, 0.12);

    transform: translateY(-3px);
}

.cj-party-category-card__image {
    position: relative;

    display: block;

    overflow: hidden;

    aspect-ratio: 16 / 10;

    background:
        linear-gradient(
            135deg,
            #EAF8FF 0%,
            #F0EFFF 100%
        );
}

.cj-party-category-card__image img {
    width: 100%;
    height: 100%;

    object-fit: cover;

    transition: transform 0.35s ease;
}

.cj-party-category-card:hover .cj-party-category-card__image img {
    transform: scale(1.025);
}

.cj-party-category-card__placeholder {
    display: flex;
    align-items: center;
    justify-content: center;

    width: 100%;
    height: 100%;
}

.cj-party-category-card__placeholder svg {
    width: 70px;
    height: 70px;

    fill: none;
    stroke: rgba(95, 96, 221, 0.56);

    stroke-width: 1.6;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.cj-party-category-card__content {
    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 14px;

    padding: 16px 17px;
}

.cj-party-category-card__content > span:first-child {
    display: flex;
    flex-direction: column;

    min-width: 0;
}

.cj-party-category-card__content strong {
    color: var(--cj-dark);

    font-size: 1rem;
    font-weight: 850;
    line-height: 1.2;
}

.cj-party-category-card__content small {
    margin-top: 3px;

    color: var(--cj-text-soft);

    font-size: 0.69rem;
}

.cj-party-category-card__arrow {
    display: flex;
    align-items: center;
    justify-content: center;

    width: 34px;
    height: 34px;

    flex: 0 0 34px;

    border-radius: 50%;

    background: rgba(125, 126, 252, 0.09);
    color: var(--cj-primary-dark);

    font-size: 1.05rem;
}

.cj-party-empty {
    padding: 28px;

    border: 1px solid rgba(125, 126, 252, 0.20);
    border-radius: 14px;

    background: rgba(255, 255, 255, 0.96);

    text-align: center;
}

.cj-party-empty h3 {
    margin-bottom: 7px;
}

.cj-party-empty p {
    margin: 0 0 18px;
}


/* =========================================================
   EVENT TYPES
   ========================================================= */

.cj-party-event-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));

    gap: 15px;
}

.cj-party-event-grid article {
    padding: 22px 20px;

    border: 1px solid rgba(125, 126, 252, 0.19);
    border-radius: 14px;

    background: rgba(255, 255, 255, 0.96);

    box-shadow:
        0 8px 20px rgba(36, 38, 74, 0.055);
}

.cj-party-event-icon {
    display: flex;
    align-items: center;
    justify-content: center;

    width: 48px;
    height: 48px;

    margin-bottom: 16px;

    border-radius: 13px;

    background:
        linear-gradient(
            135deg,
            rgba(0, 188, 236, 0.13) 0%,
            rgba(125, 126, 252, 0.16) 56%,
            rgba(224, 0, 128, 0.10) 100%
        );

    color: var(--cj-primary-dark);
}

.cj-party-event-icon svg {
    width: 27px;
    height: 27px;

    fill: none;
    stroke: currentColor;

    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.cj-party-event-grid h3 {
    margin: 0;

    color: var(--cj-dark);

    font-size: 1.02rem;
    font-weight: 850;
}

.cj-party-event-grid p {
    margin: 8px 0 0;

    color: var(--cj-text-soft);

    font-size: 0.80rem;
    line-height: 1.5;
}


/* =========================================================
   PRACTICAL
   ========================================================= */

.cj-party-practical {
    padding-top: 10px;
}

.cj-party-practical__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));

    gap: 18px;
}

.cj-party-practical__panel {
    padding: 30px;

    border: 1px solid rgba(125, 126, 252, 0.20);
    border-radius: 16px;

    background: rgba(255, 255, 255, 0.97);

    box-shadow:
        0 10px 24px rgba(36, 38, 74, 0.06);
}

.cj-party-practical__panel h2 {
    margin: 7px 0 15px;

    color: var(--cj-dark);

    font-size: clamp(1.7rem, 2.4vw, 2.45rem);
    font-weight: 850;
    line-height: 1.05;

    letter-spacing: -0.035em;
}

.cj-party-practical__panel ul {
    display: grid;

    gap: 8px;

    margin: 0 0 18px;
    padding: 0;

    list-style: none;
}

.cj-party-practical__panel li {
    position: relative;

    padding-left: 25px;

    color: var(--cj-text);

    font-size: 0.84rem;
}

.cj-party-practical__panel li::before {
    position: absolute;
    top: 0.14em;
    left: 0;

    display: flex;
    align-items: center;
    justify-content: center;

    width: 17px;
    height: 17px;

    border-radius: 50%;

    background: rgba(125, 126, 252, 0.13);
    color: var(--cj-primary-dark);

    font-size: 0.64rem;
    font-weight: 850;

    content: "✓";
}

.cj-party-practical__panel--dark {
    border-color: transparent;

    background: var(--cj-dark);
    color: #FFFFFF;
}

.cj-party-practical__panel--dark .cj-party-section-kicker {
    color: #BFC0FF;
}

.cj-party-practical__panel--dark h2 {
    color: #FFFFFF;
}

.cj-party-practical__panel--dark > p {
    margin: 0;

    color: rgba(255, 255, 255, 0.74);

    font-size: 0.86rem;
    line-height: 1.58;
}

.cj-party-practical__mini {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));

    gap: 9px;

    margin: 18px 0;
}

.cj-party-practical__mini > span {
    display: flex;
    flex-direction: column;

    padding: 11px 12px;

    border: 1px solid rgba(255, 255, 255, 0.14);
    border-radius: 9px;

    background: rgba(255, 255, 255, 0.055);

    color: rgba(255, 255, 255, 0.70);

    font-size: 0.69rem;
    line-height: 1.4;
}

.cj-party-practical__mini strong {
    margin-bottom: 2px;

    color: #FFFFFF;

    font-size: 0.78rem;
}

.cj-party-text-link {
    display: inline-flex;
    align-items: center;

    gap: 8px;

    color: var(--cj-primary-dark);

    font-size: 0.80rem;
    font-weight: 800;
}

.cj-party-text-link--light {
    color: #FFFFFF;
}


/* =========================================================
   LOCAL CTA
   ========================================================= */

.cj-party-local {
    padding: 58px 0 66px;
}

.cj-party-local__inner {
    position: relative;

    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;

    gap: 34px;

    overflow: hidden;

    padding: 35px 38px;

    border-radius: 18px;

    background:
        linear-gradient(
            100deg,
            #00BCEC 0%,
            #7D7EFC 46%,
            #E00080 100%
        );

    box-shadow:
        0 16px 34px rgba(67, 69, 165, 0.19);

    color: #FFFFFF;
}

.cj-party-local__inner::after {
    position: absolute;
    top: -140px;
    right: 11%;

    width: 310px;
    height: 310px;

    border: 56px solid rgba(255, 255, 255, 0.09);
    border-radius: 50%;

    pointer-events: none;

    content: "";
}

.cj-party-local__inner > * {
    position: relative;
    z-index: 1;
}

.cj-party-local__inner > div:first-child > span {
    display: block;

    margin-bottom: 6px;

    color: rgba(255, 255, 255, 0.86);

    font-size: 0.69rem;
    font-weight: 850;

    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.cj-party-local h2 {
    margin: 0;

    color: #FFFFFF;

    font-size: clamp(2rem, 3vw, 3rem);
    font-weight: 850;

    letter-spacing: -0.04em;
}

.cj-party-local p {
    max-width: 730px;

    margin: 8px 0 0;

    color: rgba(255, 255, 255, 0.88);

    font-size: 0.87rem;
    line-height: 1.55;
}

.cj-party-local__actions {
    display: flex;
    align-items: center;

    gap: 9px;
}

.cj-party-button--white {
    border-color: #FFFFFF !important;

    background: #FFFFFF !important;
    color: var(--cj-primary-dark) !important;
}

.cj-party-button--ghost {
    border-color: rgba(255, 255, 255, 0.72) !important;

    background: transparent !important;
    color: #FFFFFF !important;
}


/* =========================================================
   TABLET
   ========================================================= */

@media (max-width: 1050px) {

    .cj-party-hero__grid {
        grid-template-columns: minmax(0, 1fr) 360px;

        gap: 36px;
    }

    .cj-party-category-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .cj-party-event-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .cj-party-local__inner {
        grid-template-columns: 1fr;

        text-align: center;
    }

    .cj-party-local__actions {
        justify-content: center;
    }
}


@media (max-width: 820px) {

    .cj-party .cj-container {
        width: min(
            var(--cj-party-container),
            calc(100% - 32px)
        );
    }

    .cj-party-hero {
        padding-top: 30px;
    }

    .cj-party-hero__grid {
        grid-template-columns: 1fr;

        gap: 28px;
    }

    .cj-party-hero__copy {
        text-align: center;
    }

    .cj-party-kicker {
        text-align: center;
    }

    .cj-party-hero h1 {
        margin-inline: auto;

        font-size: clamp(2.9rem, 10vw, 4.5rem);
    }

    .cj-party-hero__lead {
        margin-inline: auto;
    }

    .cj-party-hero__actions,
    .cj-party-hero__points {
        justify-content: center;
    }

    .cj-party-hero__planner {
        width: min(100%, 600px);

        margin-inline: auto;
    }

    .cj-party-section-heading {
        grid-template-columns: 1fr;

        gap: 12px;
    }

    .cj-party-section-heading > p {
        max-width: 700px;
    }

    .cj-party-practical__grid {
        grid-template-columns: 1fr;
    }
}


/* =========================================================
   MOBILE
   ========================================================= */

@media (max-width: 600px) {

    .cj-party-hero {
        padding: 24px 0 34px;
    }

    .cj-party-hero h1 {
        font-size: clamp(2.65rem, 13vw, 3.8rem);
    }

    .cj-party-hero__lead {
        font-size: 0.95rem;
    }

    .cj-party-hero__actions {
        display: grid;
        grid-template-columns: 1fr;

        width: 100%;
    }

    .cj-party-hero__actions .cj-button {
        width: 100%;
    }

    .cj-party-hero__points {
        display: grid;
        grid-template-columns: 1fr;

        width: 100%;
    }

    .cj-party-hero__points > span {
        justify-content: center;
    }

    .cj-party-hero__planner {
        padding: 23px 18px;
    }

    .cj-party-section {
        padding: 46px 0;
    }

    .cj-party-section-heading h2 {
        font-size: clamp(2rem, 9vw, 2.7rem);
    }

    .cj-party-category-grid {
        grid-template-columns: 1fr;

        gap: 15px;
    }

    .cj-party-category-card__image {
        aspect-ratio: 16 / 9;
    }

    .cj-party-event-grid {
        grid-template-columns: 1fr;

        gap: 10px;
    }

    .cj-party-event-grid article {
        display: grid;
        grid-template-columns: auto minmax(0, 1fr);

        column-gap: 14px;

        padding: 17px;
    }

    .cj-party-event-icon {
        grid-row: 1 / span 2;

        margin-bottom: 0;
    }

    .cj-party-event-grid p {
        margin-top: 4px;
    }

    .cj-party-practical__panel {
        padding: 23px 18px;
    }

    .cj-party-practical__mini {
        grid-template-columns: 1fr;
    }

    .cj-party-local {
        padding: 42px 0 50px;
    }

    .cj-party-local__inner {
        gap: 23px;

        padding: 28px 18px;
    }

    .cj-party-local__actions {
        flex-direction: column;

        width: 100%;
    }

    .cj-party-local__actions .cj-button {
        width: 100%;
    }
}


/* =========================================================
   PARTY V1.1 — REASSURANCE TEXT SIZE
   ========================================================= */

.cj-party-hero__points > span {
    font-size: 0.84rem;
}

.cj-party-planner__items strong {
    font-size: 0.97rem;
}

.cj-party-planner__items > div > div > span {
    font-size: 0.85rem;
}


/* =========================================================
   MODULE: AREAS WE COVER
   ========================================================= */

/* CEEJAYS AREAS.CSS — VERSION 1.1 — LARGER REASSURANCE TEXT — 2026-08-21 */

/* =========================================================
   BASE
   ========================================================= */

.cj-areas {
    --cj-areas-container: 1320px;

    color: var(--cj-dark);
}

.cj-areas .cj-container {
    width: min(
        var(--cj-areas-container),
        calc(100% - 48px)
    );

    max-width: none;
    margin-inline: auto;
}

.cj-areas a {
    text-decoration: none;
}

.cj-areas-kicker,
.cj-areas-section-kicker {
    display: block;

    color: var(--cj-primary-dark);

    font-size: 0.75rem;
    font-weight: 850;
    line-height: 1.2;

    letter-spacing: 0.085em;
    text-transform: uppercase;
}

.cj-areas-kicker::before {
    display: inline-block;

    width: 8px;
    height: 8px;

    margin-right: 8px;

    border-radius: 50%;

    background: var(--cj-pink);

    content: "";
}


/* =========================================================
   HERO
   ========================================================= */

.cj-areas-hero {
    position: relative;

    overflow: hidden;

    padding: 46px 0 50px;
}

.cj-areas-hero::after {
    position: absolute;
    top: -180px;
    left: -170px;

    width: 500px;
    height: 500px;

    border: 86px solid rgba(125, 126, 252, 0.045);
    border-radius: 50%;

    pointer-events: none;

    content: "";
}

.cj-areas-hero__grid {
    position: relative;
    z-index: 1;

    display: grid;
    grid-template-columns: minmax(0, 1fr) 410px;
    align-items: center;

    gap: clamp(48px, 7vw, 90px);
}

.cj-areas-hero__copy {
    max-width: 780px;
}

.cj-areas-hero h1 {
    max-width: 780px;

    margin: 10px 0 18px;

    color: var(--cj-dark);

    font-size: clamp(3rem, 5vw, 5rem);
    font-weight: 850;
    line-height: 0.96;

    letter-spacing: -0.055em;
}

.cj-areas-hero__lead {
    max-width: 710px;

    margin: 0;

    color: var(--cj-text);

    font-size: 1.02rem;
    line-height: 1.62;
}

.cj-areas-hero__actions {
    display: flex;
    flex-wrap: wrap;

    gap: 10px;

    margin-top: 24px;
}

.cj-areas-hero__actions .cj-button {
    min-height: 50px;

    border-radius: 10px;
}

.cj-areas-button--gradient {
    border-color: transparent !important;

    background:
        linear-gradient(
            90deg,
            #00BCEC 0%,
            #7D7EFC 50%,
            #E00080 100%
        ) !important;

    color: #FFFFFF !important;

    box-shadow:
        0 8px 20px rgba(81, 84, 205, 0.18);
}

.cj-areas-hero__trust {
    display: flex;
    flex-wrap: wrap;

    gap: 9px;

    margin-top: 24px;
}

.cj-areas-hero__trust > span {
    display: inline-flex;
    align-items: center;

    gap: 7px;

    min-height: 34px;

    padding: 6px 10px;

    border: 1px solid rgba(125, 126, 252, 0.20);
    border-radius: 999px;

    background: rgba(255, 255, 255, 0.77);
    color: var(--cj-dark);

    font-size: 0.72rem;
    font-weight: 700;
}

.cj-areas-hero__trust svg {
    width: 17px;
    height: 17px;

    fill: none;
    stroke: var(--cj-primary-dark);

    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}


/* Postcode checker */
.cj-areas-checker {
    position: relative;

    overflow: hidden;

    padding: 28px 26px;

    border: 1px solid rgba(125, 126, 252, 0.22);
    border-radius: 17px;

    background: rgba(255, 255, 255, 0.97);

    box-shadow:
        0 15px 36px rgba(36, 38, 74, 0.11);
}

.cj-areas-checker::before {
    position: absolute;
    top: 0;
    right: 0;
    left: 0;

    height: 4px;

    background:
        linear-gradient(
            90deg,
            #00BCEC 0%,
            #7D7EFC 50%,
            #E00080 100%
        );

    content: "";
}

.cj-areas-checker__eyebrow {
    display: block;

    color: var(--cj-primary-dark);

    font-size: 0.70rem;
    font-weight: 850;

    letter-spacing: 0.075em;
    text-transform: uppercase;
}

.cj-areas-checker h2 {
    margin: 6px 0 11px;

    color: var(--cj-dark);

    font-size: 1.9rem;
    font-weight: 850;
    line-height: 1.05;

    letter-spacing: -0.035em;
}

.cj-areas-checker > p {
    margin: 0;

    color: var(--cj-text-soft);

    font-size: 0.79rem;
    line-height: 1.52;
}

.cj-areas-checker__example {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: center;

    gap: 12px;

    margin-top: 18px;
    padding: 14px;

    border: 1px solid rgba(125, 126, 252, 0.15);
    border-radius: 11px;

    background: rgba(125, 126, 252, 0.045);
}

.cj-areas-checker__icon {
    display: flex;
    align-items: center;
    justify-content: center;

    width: 42px;
    height: 42px;

    border-radius: 11px;

    background:
        linear-gradient(
            135deg,
            rgba(0, 188, 236, 0.13) 0%,
            rgba(125, 126, 252, 0.15) 55%,
            rgba(224, 0, 128, 0.10) 100%
        );

    color: var(--cj-primary-dark);
}

.cj-areas-checker__icon svg {
    width: 22px;
    height: 22px;

    fill: none;
    stroke: currentColor;

    stroke-width: 1.9;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.cj-areas-checker__example strong {
    display: block;

    color: var(--cj-dark);

    font-size: 0.84rem;
}

.cj-areas-checker__example div > span {
    display: block;

    margin-top: 2px;

    color: var(--cj-text-soft);

    font-size: 0.72rem;
}

.cj-areas-checker__cta {
    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 12px;

    min-height: 46px;

    margin-top: 15px;
    padding: 10px 13px;

    border-radius: 9px;

    background: var(--cj-dark);
    color: #FFFFFF;

    font-size: 0.79rem;
    font-weight: 800;
}


/* =========================================================
   SHARED SECTION
   ========================================================= */

.cj-areas-section {
    padding: 62px 0;
}

.cj-areas-section-heading {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 390px;
    align-items: end;

    gap: 40px;

    margin-bottom: 24px;
}

.cj-areas-section-heading h2 {
    max-width: 760px;

    margin: 7px 0 0;

    color: var(--cj-dark);

    font-size: clamp(2rem, 3.3vw, 3.2rem);
    font-weight: 850;
    line-height: 1.02;

    letter-spacing: -0.04em;
}

.cj-areas-section-heading > p {
    margin: 0;

    color: var(--cj-text-soft);

    font-size: 0.88rem;
    line-height: 1.55;
}

.cj-areas-section-heading--center {
    display: flex;
    justify-content: center;

    text-align: center;
}

.cj-areas-section-heading--center > div {
    display: flex;
    flex-direction: column;
    align-items: center;
}


/* =========================================================
   COVERAGE GROUPS
   ========================================================= */

.cj-areas-coverage {
    border-top: 1px solid rgba(125, 126, 252, 0.13);
    border-bottom: 1px solid rgba(125, 126, 252, 0.13);

    background: rgba(255, 255, 255, 0.34);
}

.cj-areas-group-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));

    gap: 18px;
}

.cj-areas-group {
    padding: 22px 20px;

    border: 1px solid rgba(125, 126, 252, 0.20);
    border-radius: 14px;

    background: rgba(255, 255, 255, 0.97);

    box-shadow:
        0 9px 22px rgba(36, 38, 74, 0.06);
}

.cj-areas-group__heading {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: center;

    gap: 13px;
}

.cj-areas-group__icon {
    display: flex;
    align-items: center;
    justify-content: center;

    width: 46px;
    height: 46px;

    border-radius: 13px;

    background:
        linear-gradient(
            135deg,
            rgba(0, 188, 236, 0.13) 0%,
            rgba(125, 126, 252, 0.16) 55%,
            rgba(224, 0, 128, 0.10) 100%
        );

    color: var(--cj-primary-dark);
}

.cj-areas-group__icon svg {
    width: 25px;
    height: 25px;

    fill: none;
    stroke: currentColor;

    stroke-width: 1.9;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.cj-areas-group h3 {
    margin: 0;

    color: var(--cj-dark);

    font-size: 1.06rem;
    font-weight: 850;
}

.cj-areas-group__heading p {
    margin: 3px 0 0;

    color: var(--cj-text-soft);

    font-size: 0.72rem;
    line-height: 1.4;
}

.cj-areas-chips {
    display: flex;
    flex-wrap: wrap;

    gap: 7px;

    margin-top: 18px;
}

.cj-areas-chips span {
    display: inline-flex;
    align-items: center;

    min-height: 30px;

    padding: 5px 9px;

    border: 1px solid rgba(125, 126, 252, 0.19);
    border-radius: 999px;

    background: rgba(125, 126, 252, 0.05);
    color: var(--cj-dark);

    font-size: 0.70rem;
    font-weight: 700;
}


/* =========================================================
   PROCESS
   ========================================================= */

.cj-areas-process-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));

    gap: 15px;
}

.cj-areas-process-grid article {
    padding: 22px 20px;

    border: 1px solid rgba(125, 126, 252, 0.19);
    border-radius: 14px;

    background: rgba(255, 255, 255, 0.96);

    box-shadow:
        0 8px 20px rgba(36, 38, 74, 0.055);
}

.cj-areas-process-icon {
    display: flex;
    align-items: center;
    justify-content: center;

    width: 48px;
    height: 48px;

    margin-bottom: 16px;

    border-radius: 13px;

    background:
        linear-gradient(
            135deg,
            rgba(0, 188, 236, 0.13) 0%,
            rgba(125, 126, 252, 0.16) 56%,
            rgba(224, 0, 128, 0.10) 100%
        );

    color: var(--cj-primary-dark);
}

.cj-areas-process-icon svg {
    width: 27px;
    height: 27px;

    fill: none;
    stroke: currentColor;

    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.cj-areas-process-grid h3 {
    margin: 0;

    color: var(--cj-dark);

    font-size: 1.02rem;
    font-weight: 850;
}

.cj-areas-process-grid p {
    margin: 8px 0 0;

    color: var(--cj-text-soft);

    font-size: 0.80rem;
    line-height: 1.5;
}


/* =========================================================
   GUIDANCE
   ========================================================= */

.cj-areas-guidance {
    padding-top: 8px;
}

.cj-areas-guidance__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));

    gap: 18px;
}

.cj-areas-guidance__panel {
    padding: 30px;

    border: 1px solid rgba(125, 126, 252, 0.20);
    border-radius: 16px;

    background: rgba(255, 255, 255, 0.97);

    box-shadow:
        0 10px 24px rgba(36, 38, 74, 0.06);
}

.cj-areas-guidance__panel h2 {
    margin: 7px 0 14px;

    color: var(--cj-dark);

    font-size: clamp(1.7rem, 2.4vw, 2.45rem);
    font-weight: 850;
    line-height: 1.05;

    letter-spacing: -0.035em;
}

.cj-areas-guidance__panel p {
    margin: 0 0 17px;

    color: var(--cj-text-soft);

    font-size: 0.85rem;
    line-height: 1.57;
}

.cj-areas-guidance__panel--dark {
    border-color: transparent;

    background: var(--cj-dark);
}

.cj-areas-guidance__panel--dark .cj-areas-section-kicker {
    color: #BFC0FF;
}

.cj-areas-guidance__panel--dark h2 {
    color: #FFFFFF;
}

.cj-areas-guidance__panel--dark p {
    color: rgba(255, 255, 255, 0.73);
}

.cj-areas-text-link {
    display: inline-flex;
    align-items: center;

    gap: 8px;

    color: var(--cj-primary-dark);

    font-size: 0.80rem;
    font-weight: 800;
}

.cj-areas-text-link--light {
    color: #FFFFFF;
}


/* =========================================================
   FINAL CTA
   ========================================================= */

.cj-areas-final {
    padding: 58px 0 66px;
}

.cj-areas-final__inner {
    position: relative;

    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;

    gap: 34px;

    overflow: hidden;

    padding: 35px 38px;

    border-radius: 18px;

    background:
        linear-gradient(
            100deg,
            #00BCEC 0%,
            #7D7EFC 46%,
            #E00080 100%
        );

    box-shadow:
        0 16px 34px rgba(67, 69, 165, 0.19);

    color: #FFFFFF;
}

.cj-areas-final__inner::after {
    position: absolute;
    top: -140px;
    right: 11%;

    width: 310px;
    height: 310px;

    border: 56px solid rgba(255, 255, 255, 0.09);
    border-radius: 50%;

    pointer-events: none;

    content: "";
}

.cj-areas-final__inner > * {
    position: relative;
    z-index: 1;
}

.cj-areas-final__inner > div:first-child > span {
    display: block;

    margin-bottom: 6px;

    color: rgba(255, 255, 255, 0.86);

    font-size: 0.69rem;
    font-weight: 850;

    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.cj-areas-final h2 {
    margin: 0;

    color: #FFFFFF;

    font-size: clamp(2rem, 3vw, 3rem);
    font-weight: 850;

    letter-spacing: -0.04em;
}

.cj-areas-final p {
    margin: 8px 0 0;

    color: rgba(255, 255, 255, 0.88);

    font-size: 0.87rem;
}

.cj-areas-final__actions {
    display: flex;
    align-items: center;

    gap: 9px;
}

.cj-areas-button--white {
    border-color: #FFFFFF !important;

    background: #FFFFFF !important;
    color: var(--cj-primary-dark) !important;
}

.cj-areas-button--ghost {
    border-color: rgba(255, 255, 255, 0.72) !important;

    background: transparent !important;
    color: #FFFFFF !important;
}


/* =========================================================
   TABLET
   ========================================================= */

@media (max-width: 1050px) {

    .cj-areas-hero__grid {
        grid-template-columns: minmax(0, 1fr) 350px;

        gap: 36px;
    }

    .cj-areas-group-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .cj-areas-process-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .cj-areas-final__inner {
        grid-template-columns: 1fr;

        text-align: center;
    }

    .cj-areas-final__actions {
        justify-content: center;
    }
}


@media (max-width: 820px) {

    .cj-areas .cj-container {
        width: min(
            var(--cj-areas-container),
            calc(100% - 32px)
        );
    }

    .cj-areas-hero {
        padding-top: 30px;
    }

    .cj-areas-hero__grid {
        grid-template-columns: 1fr;

        gap: 28px;
    }

    .cj-areas-hero__copy {
        text-align: center;
    }

    .cj-areas-kicker {
        text-align: center;
    }

    .cj-areas-hero h1 {
        margin-inline: auto;

        font-size: clamp(2.9rem, 10vw, 4.45rem);
    }

    .cj-areas-hero__lead {
        margin-inline: auto;
    }

    .cj-areas-hero__actions,
    .cj-areas-hero__trust {
        justify-content: center;
    }

    .cj-areas-checker {
        width: min(100%, 600px);

        margin-inline: auto;
    }

    .cj-areas-section-heading {
        grid-template-columns: 1fr;

        gap: 12px;
    }

    .cj-areas-section-heading > p {
        max-width: 700px;
    }

    .cj-areas-guidance__grid {
        grid-template-columns: 1fr;
    }
}


/* =========================================================
   MOBILE
   ========================================================= */

@media (max-width: 600px) {

    .cj-areas-hero {
        padding: 24px 0 34px;
    }

    .cj-areas-hero h1 {
        font-size: clamp(2.55rem, 12.5vw, 3.7rem);
    }

    .cj-areas-hero__lead {
        font-size: 0.95rem;
    }

    .cj-areas-hero__actions {
        display: grid;
        grid-template-columns: 1fr;

        width: 100%;
    }

    .cj-areas-hero__actions .cj-button {
        width: 100%;
    }

    .cj-areas-hero__trust {
        display: grid;
        grid-template-columns: 1fr;

        width: 100%;
    }

    .cj-areas-hero__trust > span {
        justify-content: center;
    }

    .cj-areas-checker {
        padding: 23px 18px;
    }

    .cj-areas-section {
        padding: 46px 0;
    }

    .cj-areas-section-heading h2 {
        font-size: clamp(2rem, 9vw, 2.7rem);
    }

    .cj-areas-group-grid {
        grid-template-columns: 1fr;

        gap: 12px;
    }

    .cj-areas-process-grid {
        grid-template-columns: 1fr;

        gap: 10px;
    }

    .cj-areas-process-grid article {
        display: grid;
        grid-template-columns: auto minmax(0, 1fr);

        column-gap: 14px;

        padding: 17px;
    }

    .cj-areas-process-icon {
        grid-row: 1 / span 2;

        margin-bottom: 0;
    }

    .cj-areas-process-grid p {
        margin-top: 4px;
    }

    .cj-areas-guidance__panel {
        padding: 23px 18px;
    }

    .cj-areas-final {
        padding: 42px 0 50px;
    }

    .cj-areas-final__inner {
        gap: 23px;

        padding: 28px 18px;
    }

    .cj-areas-final__actions {
        flex-direction: column;

        width: 100%;
    }

    .cj-areas-final__actions .cj-button {
        width: 100%;
    }
}


/* =========================================================
   AREAS V1.1 — REASSURANCE TEXT SIZE
   ========================================================= */

.cj-areas-hero__trust > span {
    font-size: 0.84rem;
}

.cj-areas-checker__example strong {
    font-size: 0.97rem;
}

.cj-areas-checker__example div > span {
    font-size: 0.84rem;
}


/* =========================================================
   MODULE: HIRE INFORMATION
   ========================================================= */

/* CEEJAYS HIRE-INFORMATION.CSS — VERSION 1.2 — LARGER REASSURANCE TEXT — 2026-08-21 */

.cj-hire-info {
    --cj-hire-info-container: 1320px;

    color: var(--cj-dark);
}

.cj-hire-info .cj-container {
    width: min(
        var(--cj-hire-info-container),
        calc(100% - 48px)
    );

    max-width: none;
    margin-inline: auto;
}

.cj-hire-info a {
    text-decoration: none;
}

.cj-hire-info-kicker,
.cj-hire-info-section-kicker {
    display: block;

    color: var(--cj-primary-dark);

    font-size: 0.75rem;
    font-weight: 850;
    line-height: 1.2;

    letter-spacing: 0.085em;
    text-transform: uppercase;
}

.cj-hire-info-kicker::before {
    display: inline-block;

    width: 8px;
    height: 8px;

    margin-right: 8px;

    border-radius: 50%;

    background: var(--cj-pink);

    content: "";
}


/* =========================================================
   HERO
   ========================================================= */

.cj-hire-info-hero {
    position: relative;

    overflow: hidden;

    padding: 46px 0 50px;
}

.cj-hire-info-hero__grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 420px;
    align-items: center;

    gap: clamp(48px, 7vw, 90px);
}

.cj-hire-info-hero__copy {
    max-width: 770px;
}

.cj-hire-info-hero h1 {
    max-width: 760px;

    margin: 10px 0 18px;

    color: var(--cj-dark);

    font-size: clamp(3rem, 5vw, 5rem);
    font-weight: 850;
    line-height: 0.96;

    letter-spacing: -0.055em;
}

.cj-hire-info-hero__lead {
    max-width: 710px;

    margin: 0;

    color: var(--cj-text);

    font-size: 1.02rem;
    line-height: 1.62;
}

.cj-hire-info-hero__actions {
    display: flex;
    flex-wrap: wrap;

    gap: 10px;

    margin-top: 24px;
}

.cj-hire-info-hero__actions .cj-button {
    min-height: 50px;

    border-radius: 10px;
}

.cj-hire-info-button--gradient {
    border-color: transparent !important;

    background:
        linear-gradient(
            90deg,
            #00BCEC 0%,
            #7D7EFC 50%,
            #E00080 100%
        ) !important;

    color: #FFFFFF !important;
}

.cj-hire-info-hero__points {
    display: flex;
    flex-wrap: wrap;

    gap: 9px;

    margin-top: 24px;
}

.cj-hire-info-hero__points > span {
    display: inline-flex;
    align-items: center;

    gap: 7px;

    min-height: 34px;

    padding: 6px 10px;

    border: 1px solid rgba(125, 126, 252, 0.20);
    border-radius: 999px;

    background: rgba(255, 255, 255, 0.77);
    color: var(--cj-dark);

    font-size: 0.72rem;
    font-weight: 700;
}

.cj-hire-info-hero__points svg {
    width: 17px;
    height: 17px;

    fill: none;
    stroke: var(--cj-primary-dark);

    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}


/* Checklist */
.cj-hire-info-checklist {
    position: relative;

    overflow: hidden;

    padding: 28px 26px;

    border: 1px solid rgba(125, 126, 252, 0.22);
    border-radius: 17px;

    background: rgba(255, 255, 255, 0.97);

    box-shadow:
        0 15px 36px rgba(36, 38, 74, 0.11);
}

.cj-hire-info-checklist::before {
    position: absolute;
    top: 0;
    right: 0;
    left: 0;

    height: 4px;

    background:
        linear-gradient(
            90deg,
            #00BCEC 0%,
            #7D7EFC 50%,
            #E00080 100%
        );

    content: "";
}

.cj-hire-info-checklist__eyebrow {
    color: var(--cj-primary-dark);

    font-size: 0.70rem;
    font-weight: 850;

    letter-spacing: 0.075em;
    text-transform: uppercase;
}

.cj-hire-info-checklist h2 {
    margin: 6px 0 17px;

    color: var(--cj-dark);

    font-size: 1.9rem;
    font-weight: 850;
    line-height: 1.05;

    letter-spacing: -0.035em;
}

.cj-hire-info-checklist__items {
    display: grid;

    gap: 8px;
}

.cj-hire-info-checklist__items > div {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: center;

    gap: 12px;

    padding: 11px 0;

    border-top: 1px solid rgba(125, 126, 252, 0.13);
}

.cj-hire-info-checklist__icon {
    display: flex;
    align-items: center;
    justify-content: center;

    width: 40px;
    height: 40px;

    border-radius: 11px;

    background: rgba(125, 126, 252, 0.09);
    color: var(--cj-primary-dark);
}

.cj-hire-info-checklist__icon svg {
    width: 21px;
    height: 21px;

    fill: none;
    stroke: currentColor;

    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.cj-hire-info-checklist__items strong {
    display: block;

    color: var(--cj-dark);

    font-size: 0.84rem;
}

.cj-hire-info-checklist__items > div > div > span {
    display: block;

    color: var(--cj-text-soft);

    font-size: 0.72rem;
}

.cj-hire-info-checklist__cta {
    display: flex;
    align-items: center;
    justify-content: space-between;

    min-height: 46px;

    margin-top: 17px;
    padding: 10px 13px;

    border-radius: 9px;

    background: var(--cj-dark);
    color: #FFFFFF;

    font-size: 0.79rem;
    font-weight: 800;
}


/* =========================================================
   SHARED
   ========================================================= */

.cj-hire-info-section {
    padding: 62px 0;
}

.cj-hire-info-section-heading {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 390px;
    align-items: end;

    gap: 40px;

    margin-bottom: 24px;
}

.cj-hire-info-section-heading h2 {
    max-width: 760px;

    margin: 7px 0 0;

    color: var(--cj-dark);

    font-size: clamp(2rem, 3.3vw, 3.2rem);
    font-weight: 850;
    line-height: 1.02;

    letter-spacing: -0.04em;
}

.cj-hire-info-section-heading > p {
    margin: 0;

    color: var(--cj-text-soft);

    font-size: 0.88rem;
    line-height: 1.55;
}

.cj-hire-info-section-heading--center {
    display: flex;
    justify-content: center;

    text-align: center;
}

.cj-hire-info-section-heading--center > div {
    display: flex;
    flex-direction: column;
    align-items: center;
}


/* =========================================================
   SPACE
   ========================================================= */

.cj-hire-info-space {
    border-top: 1px solid rgba(125, 126, 252, 0.13);
    border-bottom: 1px solid rgba(125, 126, 252, 0.13);

    background: rgba(255, 255, 255, 0.34);
}

.cj-hire-info-feature-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));

    gap: 15px;
}

.cj-hire-info-feature-grid article,
.cj-hire-info-day-grid article {
    padding: 22px 20px;

    border: 1px solid rgba(125, 126, 252, 0.19);
    border-radius: 14px;

    background: rgba(255, 255, 255, 0.97);

    box-shadow:
        0 8px 20px rgba(36, 38, 74, 0.055);
}

.cj-hire-info-feature-icon,
.cj-hire-info-day-icon {
    display: flex;
    align-items: center;
    justify-content: center;

    width: 48px;
    height: 48px;

    margin-bottom: 16px;

    border-radius: 13px;

    background:
        linear-gradient(
            135deg,
            rgba(0, 188, 236, 0.13) 0%,
            rgba(125, 126, 252, 0.16) 56%,
            rgba(224, 0, 128, 0.10) 100%
        );

    color: var(--cj-primary-dark);
}

.cj-hire-info-feature-icon svg,
.cj-hire-info-day-icon svg {
    width: 27px;
    height: 27px;

    fill: none;
    stroke: currentColor;

    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.cj-hire-info-feature-grid h3,
.cj-hire-info-day-grid h3 {
    margin: 0;

    color: var(--cj-dark);

    font-size: 1.02rem;
    font-weight: 850;
}

.cj-hire-info-feature-grid p,
.cj-hire-info-day-grid p {
    margin: 8px 0 0;

    color: var(--cj-text-soft);

    font-size: 0.80rem;
    line-height: 1.5;
}


/* =========================================================
   SUITABILITY
   ========================================================= */

.cj-hire-info-suitability {
    padding-bottom: 24px;
}

.cj-hire-info-suitability__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));

    gap: 18px;
}

.cj-hire-info-suitability__panel {
    padding: 30px;

    border: 1px solid rgba(125, 126, 252, 0.20);
    border-radius: 16px;

    background: rgba(255, 255, 255, 0.97);
}

.cj-hire-info-suitability__panel h2 {
    margin: 7px 0 13px;

    color: var(--cj-dark);

    font-size: clamp(1.7rem, 2.4vw, 2.45rem);
    font-weight: 850;
    line-height: 1.05;

    letter-spacing: -0.035em;
}

.cj-hire-info-suitability__panel p {
    margin: 0 0 16px;

    color: var(--cj-text-soft);

    font-size: 0.85rem;
    line-height: 1.57;
}

.cj-hire-info-suitability__panel ul {
    display: grid;

    gap: 7px;

    margin: 0;
    padding: 0;

    list-style: none;
}

.cj-hire-info-suitability__panel li {
    position: relative;

    padding-left: 24px;

    color: var(--cj-text);

    font-size: 0.81rem;
}

.cj-hire-info-suitability__panel li::before {
    position: absolute;
    top: 0.12em;
    left: 0;

    color: var(--cj-primary-dark);

    font-weight: 900;

    content: "✓";
}

.cj-hire-info-suitability__panel--dark {
    border-color: transparent;

    background: var(--cj-dark);
}

.cj-hire-info-suitability__panel--dark .cj-hire-info-section-kicker {
    color: #BFC0FF;
}

.cj-hire-info-suitability__panel--dark h2 {
    color: #FFFFFF;
}

.cj-hire-info-suitability__panel--dark p,
.cj-hire-info-suitability__panel--dark li {
    color: rgba(255, 255, 255, 0.75);
}

.cj-hire-info-suitability__panel--dark li::before {
    color: #BFC0FF;
}


/* =========================================================
   DAY
   ========================================================= */

.cj-hire-info-day-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));

    gap: 15px;
}


/* =========================================================
   WEATHER
   ========================================================= */

.cj-hire-info-weather {
    background: rgba(255, 255, 255, 0.34);

    border-top: 1px solid rgba(125, 126, 252, 0.13);
    border-bottom: 1px solid rgba(125, 126, 252, 0.13);
}

.cj-hire-info-weather__grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 500px;
    align-items: center;

    gap: 50px;
}

.cj-hire-info-weather h2 {
    margin: 7px 0 13px;

    color: var(--cj-dark);

    font-size: clamp(2rem, 3.2vw, 3rem);
    font-weight: 850;
    line-height: 1.04;

    letter-spacing: -0.04em;
}

.cj-hire-info-weather p {
    max-width: 680px;

    margin: 0;

    color: var(--cj-text-soft);

    font-size: 0.86rem;
    line-height: 1.58;
}

.cj-hire-info-weather__cards {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));

    gap: 12px;
}

.cj-hire-info-weather__cards > span {
    display: flex;
    flex-direction: column;

    padding: 20px;

    border: 1px solid rgba(125, 126, 252, 0.20);
    border-radius: 14px;

    background: rgba(255, 255, 255, 0.98);
}

.cj-hire-info-weather__cards svg {
    width: 31px;
    height: 31px;

    margin-bottom: 12px;

    fill: none;
    stroke: var(--cj-primary-dark);

    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.cj-hire-info-weather__cards strong {
    color: var(--cj-dark);

    font-size: 0.92rem;
}

.cj-hire-info-weather__cards small {
    margin-top: 5px;

    color: var(--cj-text-soft);

    font-size: 0.72rem;
    line-height: 1.45;
}


/* =========================================================
   FAQ
   ========================================================= */

.cj-hire-info-faq__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));

    gap: 10px;
}

.cj-hire-info-faq details {
    overflow: hidden;

    border: 1px solid rgba(125, 126, 252, 0.19);
    border-radius: 11px;

    background: rgba(255, 255, 255, 0.97);
}

.cj-hire-info-faq summary {
    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 15px;

    padding: 16px 17px;

    cursor: pointer;
    list-style: none;

    color: var(--cj-dark);

    font-size: 0.84rem;
    font-weight: 800;
}

.cj-hire-info-faq summary::-webkit-details-marker {
    display: none;
}

.cj-hire-info-faq summary > span {
    color: var(--cj-primary-dark);

    font-size: 1.2rem;
}

.cj-hire-info-faq details[open] summary > span {
    transform: rotate(45deg);
}

.cj-hire-info-faq details > div {
    padding: 0 17px 16px;
}

.cj-hire-info-faq details p {
    margin: 0;

    color: var(--cj-text-soft);

    font-size: 0.78rem;
    line-height: 1.55;
}

.cj-hire-info-faq__link {
    margin-top: 18px;

    text-align: center;
}

.cj-hire-info-text-link {
    display: inline-flex;
    align-items: center;

    gap: 8px;

    color: var(--cj-primary-dark);

    font-size: 0.80rem;
    font-weight: 800;
}


/* =========================================================
   FINAL CTA
   ========================================================= */

.cj-hire-info-final {
    padding: 58px 0 66px;
}

.cj-hire-info-final__inner {
    position: relative;

    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;

    gap: 34px;

    overflow: hidden;

    padding: 35px 38px;

    border-radius: 18px;

    background:
        linear-gradient(
            100deg,
            #00BCEC 0%,
            #7D7EFC 46%,
            #E00080 100%
        );

    color: #FFFFFF;
}

.cj-hire-info-final__inner > div:first-child > span {
    display: block;

    margin-bottom: 6px;

    color: rgba(255, 255, 255, 0.86);

    font-size: 0.69rem;
    font-weight: 850;

    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.cj-hire-info-final h2 {
    margin: 0;

    color: #FFFFFF;

    font-size: clamp(2rem, 3vw, 3rem);
    font-weight: 850;

    letter-spacing: -0.04em;
}

.cj-hire-info-final p {
    margin: 8px 0 0;

    color: rgba(255, 255, 255, 0.88);

    font-size: 0.87rem;
}

.cj-hire-info-final__actions {
    display: flex;
    align-items: center;

    gap: 9px;
}

.cj-hire-info-button--white {
    border-color: #FFFFFF !important;

    background: #FFFFFF !important;
    color: var(--cj-primary-dark) !important;
}

.cj-hire-info-button--ghost {
    border-color: rgba(255, 255, 255, 0.72) !important;

    background: transparent !important;
    color: #FFFFFF !important;
}


/* =========================================================
   TABLET
   ========================================================= */

@media (max-width: 1050px) {

    .cj-hire-info-hero__grid {
        grid-template-columns: minmax(0, 1fr) 350px;

        gap: 36px;
    }

    .cj-hire-info-feature-grid,
    .cj-hire-info-day-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .cj-hire-info-weather__grid {
        grid-template-columns: 1fr;

        gap: 28px;
    }

    .cj-hire-info-final__inner {
        grid-template-columns: 1fr;

        text-align: center;
    }

    .cj-hire-info-final__actions {
        justify-content: center;
    }
}


@media (max-width: 820px) {

    .cj-hire-info .cj-container {
        width: min(
            var(--cj-hire-info-container),
            calc(100% - 32px)
        );
    }

    .cj-hire-info-hero {
        padding-top: 30px;
    }

    .cj-hire-info-hero__grid {
        grid-template-columns: 1fr;

        gap: 28px;
    }

    .cj-hire-info-hero__copy {
        text-align: center;
    }

    .cj-hire-info-kicker {
        text-align: center;
    }

    .cj-hire-info-hero h1 {
        margin-inline: auto;

        font-size: clamp(2.9rem, 10vw, 4.4rem);
    }

    .cj-hire-info-hero__lead {
        margin-inline: auto;
    }

    .cj-hire-info-hero__actions,
    .cj-hire-info-hero__points {
        justify-content: center;
    }

    .cj-hire-info-checklist {
        width: min(100%, 600px);

        margin-inline: auto;
    }

    .cj-hire-info-section-heading {
        grid-template-columns: 1fr;

        gap: 12px;
    }

    .cj-hire-info-suitability__grid {
        grid-template-columns: 1fr;
    }
}


/* =========================================================
   MOBILE
   ========================================================= */

@media (max-width: 600px) {

    .cj-hire-info-hero {
        padding: 24px 0 34px;
    }

    .cj-hire-info-hero h1 {
        font-size: clamp(2.55rem, 12.5vw, 3.7rem);
    }

    .cj-hire-info-hero__lead {
        font-size: 0.95rem;
    }

    .cj-hire-info-hero__actions {
        display: grid;
        grid-template-columns: 1fr;

        width: 100%;
    }

    .cj-hire-info-hero__actions .cj-button {
        width: 100%;
    }

    .cj-hire-info-hero__points {
        display: grid;
        grid-template-columns: 1fr;

        width: 100%;
    }

    .cj-hire-info-hero__points > span {
        justify-content: center;
    }

    .cj-hire-info-checklist {
        padding: 23px 18px;
    }

    .cj-hire-info-section {
        padding: 46px 0;
    }

    .cj-hire-info-section-heading h2 {
        font-size: clamp(2rem, 9vw, 2.7rem);
    }

    .cj-hire-info-feature-grid,
    .cj-hire-info-day-grid {
        grid-template-columns: 1fr;

        gap: 10px;
    }

    .cj-hire-info-feature-grid article,
    .cj-hire-info-day-grid article {
        display: grid;
        grid-template-columns: auto minmax(0, 1fr);

        column-gap: 14px;

        padding: 17px;
    }

    .cj-hire-info-feature-icon,
    .cj-hire-info-day-icon {
        grid-row: 1 / span 2;

        margin-bottom: 0;
    }

    .cj-hire-info-feature-grid p,
    .cj-hire-info-day-grid p {
        margin-top: 4px;
    }

    .cj-hire-info-suitability__panel {
        padding: 23px 18px;
    }

    .cj-hire-info-weather__cards {
        grid-template-columns: 1fr;
    }

    .cj-hire-info-faq__grid {
        grid-template-columns: 1fr;
    }

    .cj-hire-info-final {
        padding: 42px 0 50px;
    }

    .cj-hire-info-final__inner {
        gap: 23px;

        padding: 28px 18px;
    }

    .cj-hire-info-final__actions {
        flex-direction: column;

        width: 100%;
    }

    .cj-hire-info-final__actions .cj-button {
        width: 100%;
    }
}

/* =========================================================
   HIRE INFORMATION V1.1 — EXPANDED FAQ
   ========================================================= */

.cj-hire-info-faq__grid {
    align-items: start;
}

.cj-hire-info-faq details {
    break-inside: avoid;
}


/* =========================================================
   HIRE INFORMATION V1.2 — REASSURANCE TEXT SIZE
   ========================================================= */

.cj-hire-info-hero__points > span {
    font-size: 0.84rem;
}

.cj-hire-info-checklist__items strong {
    font-size: 0.97rem;
}

.cj-hire-info-checklist__items > div > div > span {
    font-size: 0.84rem;
}


/* =========================================================
   MODULE: ABOUT
   ========================================================= */

/* CEEJAYS ABOUT.CSS — VERSION 1.1 — LARGER REASSURANCE TEXT — 2026-08-21 */

.cj-about {
    --cj-about-container: 1320px;
    color: var(--cj-dark);
}

.cj-about .cj-container {
    width: min(var(--cj-about-container), calc(100% - 48px));
    max-width: none;
    margin-inline: auto;
}

.cj-about a {
    text-decoration: none;
}

.cj-about-kicker,
.cj-about-section-kicker {
    display: block;
    color: var(--cj-primary-dark);
    font-size: 0.75rem;
    font-weight: 850;
    line-height: 1.2;
    letter-spacing: 0.085em;
    text-transform: uppercase;
}

.cj-about-kicker::before {
    display: inline-block;
    width: 8px;
    height: 8px;
    margin-right: 8px;
    border-radius: 50%;
    background: var(--cj-pink);
    content: "";
}


/* HERO */
.cj-about-hero {
    padding: 46px 0 50px;
}

.cj-about-hero__grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 420px;
    align-items: center;
    gap: clamp(48px, 7vw, 90px);
}

.cj-about-hero__copy {
    max-width: 780px;
}

.cj-about-hero h1 {
    max-width: 760px;
    margin: 10px 0 18px;
    color: var(--cj-dark);
    font-size: clamp(3rem, 5vw, 5rem);
    font-weight: 850;
    line-height: 0.96;
    letter-spacing: -0.055em;
}

.cj-about-hero__lead {
    max-width: 710px;
    margin: 0;
    color: var(--cj-text);
    font-size: 1.02rem;
    line-height: 1.62;
}

.cj-about-hero__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 24px;
}

.cj-about-hero__actions .cj-button {
    min-height: 50px;
    border-radius: 10px;
}

.cj-about-button--gradient {
    border-color: transparent !important;
    background: linear-gradient(90deg, #00BCEC 0%, #7D7EFC 50%, #E00080 100%) !important;
    color: #FFFFFF !important;
}

.cj-about-hero__facts {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
    margin-top: 26px;
}

.cj-about-hero__facts > span {
    display: flex;
    flex-direction: column;
    padding: 10px 11px;
    border-top: 1px solid rgba(125, 126, 252, 0.20);
    color: var(--cj-text-soft);
    font-size: 0.70rem;
    line-height: 1.35;
}

.cj-about-hero__facts strong {
    margin-bottom: 2px;
    color: var(--cj-dark);
    font-size: 0.80rem;
}

.cj-about-hero__card {
    position: relative;
    overflow: hidden;
    padding: 30px 27px;
    border: 1px solid rgba(125, 126, 252, 0.22);
    border-radius: 17px;
    background: rgba(255, 255, 255, 0.97);
    box-shadow: 0 15px 36px rgba(36, 38, 74, 0.11);
}

.cj-about-hero__card::before {
    position: absolute;
    top: 0;
    right: 0;
    left: 0;
    height: 4px;
    background: linear-gradient(90deg, #00BCEC 0%, #7D7EFC 50%, #E00080 100%);
    content: "";
}

.cj-about-hero__card-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 58px;
    height: 58px;
    margin-bottom: 18px;
    border-radius: 15px;
    background: linear-gradient(135deg, rgba(0,188,236,.13), rgba(125,126,252,.16), rgba(224,0,128,.10));
    color: var(--cj-primary-dark);
}

.cj-about-hero__card-icon svg {
    width: 34px;
    height: 34px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.cj-about-hero__card-eyebrow {
    color: var(--cj-primary-dark);
    font-size: 0.70rem;
    font-weight: 850;
    letter-spacing: 0.075em;
    text-transform: uppercase;
}

.cj-about-hero__card h2 {
    margin: 6px 0 12px;
    color: var(--cj-dark);
    font-size: 1.9rem;
    font-weight: 850;
    line-height: 1.05;
    letter-spacing: -0.035em;
}

.cj-about-hero__card p {
    margin: 0;
    color: var(--cj-text-soft);
    font-size: 0.80rem;
    line-height: 1.55;
}

.cj-about-hero__card > a {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-top: 19px;
    padding: 11px 13px;
    border-radius: 9px;
    background: var(--cj-dark);
    color: #FFFFFF;
    font-size: 0.79rem;
    font-weight: 800;
}


/* SHARED */
.cj-about-section {
    padding: 62px 0;
}

.cj-about-section-heading {
    margin-bottom: 24px;
}

.cj-about-section-heading--center {
    text-align: center;
}

.cj-about-section-heading--center > div {
    display: flex;
    flex-direction: column;
    align-items: center;
}

.cj-about-section-heading h2,
.cj-about-story h2 {
    max-width: 800px;
    margin: 7px 0 0;
    color: var(--cj-dark);
    font-size: clamp(2rem, 3.3vw, 3.2rem);
    font-weight: 850;
    line-height: 1.02;
    letter-spacing: -0.04em;
}


/* STORY */
.cj-about-story {
    border-top: 1px solid rgba(125, 126, 252, 0.13);
    border-bottom: 1px solid rgba(125, 126, 252, 0.13);
    background: rgba(255,255,255,.34);
}

.cj-about-story__grid {
    display: grid;
    grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
    gap: 70px;
}

.cj-about-story__copy p {
    margin: 0 0 15px;
    color: var(--cj-text-soft);
    font-size: 0.88rem;
    line-height: 1.68;
}

.cj-about-story__copy p:last-child {
    margin-bottom: 0;
}


/* VALUES */
.cj-about-values__grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 15px;
}

.cj-about-values article {
    padding: 22px 20px;
    border: 1px solid rgba(125,126,252,.19);
    border-radius: 14px;
    background: rgba(255,255,255,.97);
    box-shadow: 0 8px 20px rgba(36,38,74,.055);
}

.cj-about-value-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    margin-bottom: 16px;
    border-radius: 13px;
    background: linear-gradient(135deg, rgba(0,188,236,.13), rgba(125,126,252,.16), rgba(224,0,128,.10));
    color: var(--cj-primary-dark);
}

.cj-about-value-icon svg {
    width: 27px;
    height: 27px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.cj-about-values h3 {
    margin: 0;
    color: var(--cj-dark);
    font-size: 1.02rem;
    font-weight: 850;
}

.cj-about-values p {
    margin: 8px 0 0;
    color: var(--cj-text-soft);
    font-size: 0.80rem;
    line-height: 1.5;
}


/* INCLUDED */
.cj-about-included {
    padding-top: 10px;
}

.cj-about-included__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
}

.cj-about-included__panel {
    padding: 30px;
    border: 1px solid rgba(125,126,252,.20);
    border-radius: 16px;
    background: rgba(255,255,255,.97);
    box-shadow: 0 10px 24px rgba(36,38,74,.06);
}

.cj-about-included__panel h2,
.cj-about-local h2 {
    margin: 7px 0 14px;
    color: var(--cj-dark);
    font-size: clamp(1.7rem, 2.4vw, 2.45rem);
    font-weight: 850;
    line-height: 1.05;
    letter-spacing: -0.035em;
}

.cj-about-included__panel ul {
    display: grid;
    gap: 8px;
    margin: 0 0 18px;
    padding: 0;
    list-style: none;
}

.cj-about-included__panel li {
    position: relative;
    padding-left: 24px;
    color: var(--cj-text);
    font-size: 0.82rem;
}

.cj-about-included__panel li::before {
    position: absolute;
    left: 0;
    color: var(--cj-primary-dark);
    font-weight: 900;
    content: "✓";
}

.cj-about-included__panel--dark {
    border-color: transparent;
    background: var(--cj-dark);
}

.cj-about-included__panel--dark .cj-about-section-kicker {
    color: #BFC0FF;
}

.cj-about-included__panel--dark h2 {
    color: #FFFFFF;
}

.cj-about-included__panel--dark p {
    margin: 0 0 18px;
    color: rgba(255,255,255,.75);
    font-size: 0.84rem;
    line-height: 1.58;
}

.cj-about-text-link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: var(--cj-primary-dark);
    font-size: 0.80rem;
    font-weight: 800;
}

.cj-about-text-link--light {
    color: #FFFFFF;
}


/* LOCAL */
.cj-about-local {
    padding-top: 22px;
}

.cj-about-local__grid {
    display: grid;
    grid-template-columns: minmax(0,1fr) 380px;
    align-items: center;
    gap: 60px;
}

.cj-about-local p {
    max-width: 760px;
    margin: 0 0 18px;
    color: var(--cj-text-soft);
    font-size: 0.86rem;
    line-height: 1.58;
}

.cj-about-local__address {
    display: grid;
    grid-template-columns: auto minmax(0,1fr);
    align-items: center;
    gap: 15px;
    padding: 23px;
    border: 1px solid rgba(125,126,252,.20);
    border-radius: 14px;
    background: rgba(255,255,255,.97);
}

.cj-about-local__pin {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 52px;
    height: 52px;
    border-radius: 14px;
    background: rgba(125,126,252,.09);
    color: var(--cj-primary-dark);
}

.cj-about-local__pin svg {
    width: 29px;
    height: 29px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.cj-about-local__address div {
    display: flex;
    flex-direction: column;
}

.cj-about-local__address span {
    color: var(--cj-text-soft);
    font-size: 0.67rem;
    text-transform: uppercase;
    letter-spacing: .06em;
    font-weight: 800;
}

.cj-about-local__address strong {
    color: var(--cj-dark);
    font-size: 1rem;
}

.cj-about-local__address small {
    color: var(--cj-text-soft);
    font-size: .72rem;
}


/* FINAL */
.cj-about-final {
    padding: 58px 0 66px;
}

.cj-about-final__inner {
    display: grid;
    grid-template-columns: minmax(0,1fr) auto;
    align-items: center;
    gap: 34px;
    padding: 35px 38px;
    border-radius: 18px;
    background: linear-gradient(100deg, #00BCEC 0%, #7D7EFC 46%, #E00080 100%);
    color: #FFFFFF;
}

.cj-about-final__inner > div:first-child > span {
    display: block;
    margin-bottom: 6px;
    color: rgba(255,255,255,.86);
    font-size: .69rem;
    font-weight: 850;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.cj-about-final h2 {
    margin: 0;
    color: #FFFFFF;
    font-size: clamp(2rem,3vw,3rem);
    font-weight: 850;
    letter-spacing: -.04em;
}

.cj-about-final p {
    margin: 8px 0 0;
    color: rgba(255,255,255,.88);
    font-size: .87rem;
}

.cj-about-final__actions {
    display: flex;
    align-items: center;
    gap: 9px;
}

.cj-about-button--white {
    border-color: #FFFFFF !important;
    background: #FFFFFF !important;
    color: var(--cj-primary-dark) !important;
}

.cj-about-button--ghost {
    border-color: rgba(255,255,255,.72) !important;
    background: transparent !important;
    color: #FFFFFF !important;
}


/* TABLET */
@media (max-width: 1050px) {
    .cj-about-hero__grid {
        grid-template-columns: minmax(0,1fr) 350px;
        gap: 36px;
    }

    .cj-about-values__grid {
        grid-template-columns: repeat(2,minmax(0,1fr));
    }

    .cj-about-local__grid {
        grid-template-columns: 1fr;
        gap: 26px;
    }

    .cj-about-final__inner {
        grid-template-columns: 1fr;
        text-align: center;
    }

    .cj-about-final__actions {
        justify-content: center;
    }
}

@media (max-width: 820px) {
    .cj-about .cj-container {
        width: min(var(--cj-about-container), calc(100% - 32px));
    }

    .cj-about-hero {
        padding-top: 30px;
    }

    .cj-about-hero__grid,
    .cj-about-story__grid {
        grid-template-columns: 1fr;
        gap: 28px;
    }

    .cj-about-hero__copy {
        text-align: center;
    }

    .cj-about-kicker {
        text-align: center;
    }

    .cj-about-hero h1 {
        margin-inline: auto;
        font-size: clamp(2.9rem,10vw,4.4rem);
    }

    .cj-about-hero__lead {
        margin-inline: auto;
    }

    .cj-about-hero__actions {
        justify-content: center;
    }

    .cj-about-hero__card {
        width: min(100%,600px);
        margin-inline: auto;
    }

    .cj-about-included__grid {
        grid-template-columns: 1fr;
    }
}


/* MOBILE */
@media (max-width: 600px) {
    .cj-about-hero {
        padding: 24px 0 34px;
    }

    .cj-about-hero h1 {
        font-size: clamp(2.55rem,12.5vw,3.7rem);
    }

    .cj-about-hero__lead {
        font-size: .95rem;
    }

    .cj-about-hero__actions {
        display: grid;
        grid-template-columns: 1fr;
    }

    .cj-about-hero__actions .cj-button {
        width: 100%;
    }

    .cj-about-hero__facts {
        grid-template-columns: 1fr;
        text-align: left;
    }

    .cj-about-section {
        padding: 46px 0;
    }

    .cj-about-values__grid {
        grid-template-columns: 1fr;
        gap: 10px;
    }

    .cj-about-values article {
        display: grid;
        grid-template-columns: auto minmax(0,1fr);
        column-gap: 14px;
        padding: 17px;
    }

    .cj-about-value-icon {
        grid-row: 1 / span 2;
        margin-bottom: 0;
    }

    .cj-about-values p {
        margin-top: 4px;
    }

    .cj-about-included__panel {
        padding: 23px 18px;
    }

    .cj-about-local__address {
        padding: 18px;
    }

    .cj-about-final {
        padding: 42px 0 50px;
    }

    .cj-about-final__inner {
        gap: 23px;
        padding: 28px 18px;
    }

    .cj-about-final__actions {
        flex-direction: column;
        width: 100%;
    }

    .cj-about-final__actions .cj-button {
        width: 100%;
    }
}


/* =========================================================
   ABOUT V1.1 — REASSURANCE TEXT SIZE
   ========================================================= */

.cj-about-hero__facts > span {
    font-size: 0.82rem;
}

.cj-about-hero__facts strong {
    font-size: 0.93rem;
}


/* =========================================================
   MODULE: SITEWIDE CONFETTI BACKGROUND
   ========================================================= */

/* CEEJAYS SITE-PATTERN.CSS — VERSION 5.1 — NAV COMPATIBILITY FIX — 2026-08-19 21:24 BST */

/* =========================================================
   CEEJAYS
   Sitewide background v5.0
   Extends the existing product-page background through the
   masthead and the rest of the site.
   ========================================================= */

:root {
    --cj-confetti-size: 1120px;
}


/* =========================================================
   GLOBAL PAGE CANVAS
   ========================================================= */

/*
 * Put the decorative treatment on BODY so the masthead and
 * page content share one continuous visual canvas.
 */
html {
    background: #F8FCFF;
}

body {
    background-image:
        url("../images/ceejays-confetti-soft.webp"),
        linear-gradient(
            135deg,
            #F8FCFF 0%,
            #FFFFFF 52%,
            #FCFAFF 100%
        ) !important;

    background-repeat:
        repeat,
        no-repeat !important;

    background-position:
        top center,
        center top !important;

    background-size:
        var(--cj-confetti-size) auto,
        cover !important;
}


/* =========================================================
   LET THE GLOBAL CANVAS SHOW THROUGH
   ========================================================= */

.site,
.site-header,
.site-main,
.site-content,
.cj-product,
.cj-product-main {
    background: transparent !important;
}


/*
 * Product v3 originally had its own decorative layer.
 * The single BODY background now handles the artwork.
 */
.cj-product-main::before,
.cj-product-main::after {
    display: none !important;
}


/* =========================================================
   HEADER
   ========================================================= */

/*
 * Header v3.0 keeps its strong navy navigation bar and top
 * accent line. Only the masthead surface becomes transparent
 * so the same background visible on the product page continues
 * behind the large CeeJays logo and contact actions.
 */
.site-header {
    background-color: transparent !important;
}

/*
 * Navigation styling is controlled by main.css.
 * Do not override it here: Header v3.1 uses a light translucent
 * desktop nav and a dark mobile dropdown.
 */


/* =========================================================
   READABILITY SURFACES
   ========================================================= */

/*
 * Keep product controls crisp over the decorative background.
 */
.cj-product-fact,
.cj-product-contact,
.cj-product-more summary,
.cj-product-more__content {
    background: rgba(255, 255, 255, 0.97) !important;
}


/*
 * Standard cards keep their intended solid surfaces.
 * We deliberately do not make every section translucent:
 * the patterned page canvas should appear around content rather
 * than reducing readability inside cards and information panels.
 */
.cj-card {
    background: rgba(255, 255, 255, 0.98);
}


/* =========================================================
   FOOTER
   ========================================================= */

.site-footer {
    background: var(--cj-dark) !important;
}


/* =========================================================
   RESPONSIVE
   ========================================================= */

@media (max-width: 820px) {

    :root {
        --cj-confetti-size: 920px;
    }
}


@media (max-width: 520px) {

    :root {
        --cj-confetti-size: 760px;
    }
}


/* =========================================================
   SITEWIDE SHARED COMPONENT OVERRIDES
   =========================================================
   This is the preferred place for visual changes that should
   apply across the informational pages as one design system.
   ========================================================= */


/* Shared 1320px page canvas */
.cj-home .cj-container,
.cj-party .cj-container,
.cj-areas .cj-container,
.cj-hire-info .cj-container,
.cj-about .cj-container,
.cj-archive .cj-container,
.cj-product .cj-container,
.cj-product .woocommerce-notices-wrapper {
    width: min(1320px, calc(100% - 48px)) !important;
    max-width: none !important;
    margin-inline: auto;
}


/* Shared page links */
.cj-home a,
.cj-party a,
.cj-areas a,
.cj-hire-info a,
.cj-about a {
    text-decoration: none;
}


/* Shared eyebrow / kicker treatment */
.cj-home-kicker,
.cj-home-section-kicker,
.cj-party-kicker,
.cj-party-section-kicker,
.cj-areas-kicker,
.cj-areas-section-kicker,
.cj-hire-info-kicker,
.cj-hire-info-section-kicker,
.cj-about-kicker,
.cj-about-section-kicker {
    color: var(--cj-primary-dark);
    font-size: 0.75rem;
    font-weight: 850;
    line-height: 1.2;
    letter-spacing: 0.085em;
    text-transform: uppercase;
}


/* Shared reassurance/support strip sizing */
.cj-home-trustline > span,
.cj-party-hero__points > span,
.cj-areas-hero__trust > span,
.cj-hire-info-hero__points > span,
.cj-about-hero__facts > span {
    font-size: 0.84rem;
}

.cj-home-trustline strong,
.cj-about-hero__facts strong {
    font-size: 0.95rem;
}


/* Shared gradient primary buttons */
.cj-home-button--gradient,
.cj-party-button--gradient,
.cj-areas-button--gradient,
.cj-hire-info-button--gradient,
.cj-about-button--gradient {
    border-color: transparent !important;
    background: linear-gradient(
        90deg,
        #00BCEC 0%,
        #7D7EFC 50%,
        #E00080 100%
    ) !important;
    color: #FFFFFF !important;
}


/* Shared final CTA white buttons */
.cj-home-button--white,
.cj-party-button--white,
.cj-areas-button--white,
.cj-hire-info-button--white,
.cj-about-button--white {
    border-color: #FFFFFF !important;
    background: #FFFFFF !important;
    color: var(--cj-primary-dark) !important;
}


/* Shared final CTA ghost buttons */
.cj-home-button--ghost,
.cj-party-button--ghost,
.cj-areas-button--ghost,
.cj-hire-info-button--ghost,
.cj-about-button--ghost {
    border-color: rgba(255, 255, 255, 0.72) !important;
    background: transparent !important;
    color: #FFFFFF !important;
}


/* Shared mobile page gutters */
@media (max-width: 820px) {

    .cj-home .cj-container,
    .cj-party .cj-container,
    .cj-areas .cj-container,
    .cj-hire-info .cj-container,
    .cj-about .cj-container,
    .cj-archive .cj-container,
    .cj-product .cj-container,
    .cj-product .woocommerce-notices-wrapper {
        width: min(1320px, calc(100% - 32px)) !important;
    }
}
/* =========================================================
   MODULE: CONTACT / CHECK AVAILABILITY
   ========================================================= */

.cj-contact {
    --cj-contact-container: 1320px;
    color: var(--cj-dark);
}

.cj-contact .cj-container {
    width: min(var(--cj-contact-container), calc(100% - 48px));
    max-width: none;
    margin-inline: auto;
}

.cj-contact a {
    text-decoration: none;
}

.cj-contact-kicker,
.cj-contact-section-kicker {
    display: block;
    color: var(--cj-primary-dark);
    font-size: 0.75rem;
    font-weight: 850;
    line-height: 1.2;
    letter-spacing: 0.085em;
    text-transform: uppercase;
}

.cj-contact-kicker::before {
    display: inline-block;
    width: 8px;
    height: 8px;
    margin-right: 8px;
    border-radius: 50%;
    background: var(--cj-pink);
    content: "";
}


/* CONTACT HERO */
.cj-contact-hero {
    padding: 46px 0 50px;
}

.cj-contact-hero__grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 410px;
    align-items: center;
    gap: clamp(48px, 7vw, 90px);
}

.cj-contact-hero__copy {
    max-width: 780px;
}

.cj-contact-hero h1 {
    max-width: 760px;
    margin: 10px 0 18px;
    color: var(--cj-dark);
    font-size: clamp(3rem, 5vw, 5rem);
    font-weight: 850;
    line-height: 0.96;
    letter-spacing: -0.055em;
}

.cj-contact-hero__lead {
    max-width: 710px;
    margin: 0;
    color: var(--cj-text);
    font-size: 1.02rem;
    line-height: 1.62;
}

.cj-contact-hero__methods {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 24px;
}

.cj-contact-hero__methods > a {
    display: grid;
    grid-template-columns: auto minmax(0,1fr);
    align-items: center;
    gap: 10px;
    min-width: 210px;
    padding: 10px 13px;
    border: 1px solid rgba(125,126,252,.22);
    border-radius: 11px;
    background: rgba(255,255,255,.94);
    color: var(--cj-dark);
}

.cj-contact-method__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 37px;
    height: 37px;
    border-radius: 10px;
    background: rgba(125,126,252,.10);
    color: var(--cj-primary-dark);
}

.cj-contact-method__icon svg {
    width: 19px;
    height: 19px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.9;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.cj-contact-hero__methods > a > span:last-child {
    display: flex;
    flex-direction: column;
}

.cj-contact-hero__methods small {
    color: var(--cj-text-soft);
    font-size: .64rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .055em;
}

.cj-contact-hero__methods strong {
    color: var(--cj-dark);
    font-size: .94rem;
}

.cj-contact-hero__reassurance {
    display: grid;
    grid-template-columns: repeat(3,minmax(0,1fr));
    gap: 10px;
    margin-top: 26px;
}

.cj-contact-hero__reassurance > span {
    display: flex;
    flex-direction: column;
    padding: 10px 11px;
    border-top: 1px solid rgba(125,126,252,.20);
    color: var(--cj-text-soft);
    font-size: .84rem;
    line-height: 1.35;
}

.cj-contact-hero__reassurance strong {
    margin-bottom: 2px;
    color: var(--cj-dark);
    font-size: .95rem;
}


/* CONTACT DETAILS */
.cj-contact-details {
    position: relative;
    overflow: hidden;
    padding: 28px 26px;
    border: 1px solid rgba(125,126,252,.22);
    border-radius: 17px;
    background: rgba(255,255,255,.97);
    box-shadow: 0 15px 36px rgba(36,38,74,.11);
}

.cj-contact-details::before {
    position: absolute;
    top: 0;
    right: 0;
    left: 0;
    height: 4px;
    background: linear-gradient(90deg,#00BCEC 0%,#7D7EFC 50%,#E00080 100%);
    content: "";
}

.cj-contact-details__eyebrow {
    color: var(--cj-primary-dark);
    font-size: .70rem;
    font-weight: 850;
    letter-spacing: .075em;
    text-transform: uppercase;
}

.cj-contact-details h2 {
    margin: 6px 0 17px;
    color: var(--cj-dark);
    font-size: 1.9rem;
    font-weight: 850;
    line-height: 1.05;
    letter-spacing: -.035em;
}

.cj-contact-details__items {
    display: grid;
    gap: 8px;
}

.cj-contact-details__items > div {
    display: grid;
    grid-template-columns: auto minmax(0,1fr);
    align-items: center;
    gap: 12px;
    padding: 11px 0;
    border-top: 1px solid rgba(125,126,252,.13);
}

.cj-contact-details__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border-radius: 11px;
    background: rgba(125,126,252,.09);
    color: var(--cj-primary-dark);
}

.cj-contact-details__icon svg {
    width: 21px;
    height: 21px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.cj-contact-details__items strong {
    display: block;
    color: var(--cj-dark);
    font-size: .87rem;
}

.cj-contact-details__items div > div > span {
    display: block;
    color: var(--cj-text-soft);
    font-size: .75rem;
}


/* FORM SECTION */
.cj-contact-section {
    padding: 62px 0;
}

.cj-contact-form-section {
    border-top: 1px solid rgba(125,126,252,.13);
    border-bottom: 1px solid rgba(125,126,252,.13);
    background: rgba(255,255,255,.34);
}

.cj-contact-form-layout {
    display: grid;
    grid-template-columns: 360px minmax(0,1fr);
    align-items: start;
    gap: 54px;
}

.cj-contact-form-intro {
    position: sticky;
    top: 30px;
}

.cj-contact-form-intro h2 {
    margin: 7px 0 13px;
    color: var(--cj-dark);
    font-size: clamp(2rem,3vw,3rem);
    font-weight: 850;
    line-height: 1.04;
    letter-spacing: -.04em;
}

.cj-contact-form-intro > p {
    margin: 0;
    color: var(--cj-text-soft);
    font-size: .86rem;
    line-height: 1.58;
}

.cj-contact-form-intro__tip {
    display: grid;
    grid-template-columns: auto minmax(0,1fr);
    gap: 10px;
    margin-top: 18px;
    padding: 13px;
    border: 1px solid rgba(125,126,252,.18);
    border-radius: 10px;
    background: rgba(125,126,252,.05);
    color: var(--cj-text-soft);
    font-size: .75rem;
    line-height: 1.45;
}

.cj-contact-form-intro__tip svg {
    width: 20px;
    height: 20px;
    fill: none;
    stroke: var(--cj-primary-dark);
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.cj-contact-form-card {
    padding: 26px;
    border: 1px solid rgba(125,126,252,.20);
    border-radius: 16px;
    background: rgba(255,255,255,.98);
    box-shadow: 0 12px 28px rgba(36,38,74,.07);
}

.cj-contact-notice {
    margin-bottom: 18px;
    padding: 13px 14px;
    border-radius: 9px;
    font-size: .80rem;
    line-height: 1.45;
}

.cj-contact-notice strong,
.cj-contact-notice span {
    display: block;
}

.cj-contact-notice--success {
    border: 1px solid rgba(31,152,99,.30);
    background: rgba(31,152,99,.08);
    color: #145F41;
}

.cj-contact-notice--error {
    border: 1px solid rgba(190,55,75,.28);
    background: rgba(190,55,75,.07);
    color: #842B3C;
}

.cj-contact-form__grid {
    display: grid;
    grid-template-columns: repeat(2,minmax(0,1fr));
    gap: 13px;
}

.cj-contact-form label,
.cj-contact-form fieldset {
    min-width: 0;
}

.cj-contact-form label > span,
.cj-contact-form legend {
    display: block;
    margin-bottom: 6px;
    color: var(--cj-dark);
    font-size: .73rem;
    font-weight: 800;
}

.cj-contact-form label > span b,
.cj-contact-form__consent b {
    color: var(--cj-pink);
}

.cj-contact-form input[type="text"],
.cj-contact-form input[type="email"],
.cj-contact-form input[type="tel"],
.cj-contact-form input[type="date"],
.cj-contact-form input[type="time"],
.cj-contact-form select,
.cj-contact-form textarea {
    width: 100%;
    min-height: 45px;
    padding: 10px 11px;
    border: 1px solid rgba(69,71,112,.20);
    border-radius: 8px;
    background: #FFFFFF;
    color: var(--cj-dark);
    font: inherit;
    font-size: .82rem;
    box-sizing: border-box;
    outline: none;
}

.cj-contact-form textarea {
    resize: vertical;
}

.cj-contact-form input:focus,
.cj-contact-form select:focus,
.cj-contact-form textarea:focus {
    border-color: rgba(95,96,221,.62);
    box-shadow: 0 0 0 3px rgba(125,126,252,.10);
}

.cj-contact-form__full,
.cj-contact-form__setup,
.cj-contact-form__consent {
    display: block;
    margin-top: 14px;
}

.cj-contact-form__setup {
    padding: 0;
    border: 0;
}

.cj-contact-form__setup > label {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin: 0 8px 8px 0;
    padding: 7px 10px;
    border: 1px solid rgba(125,126,252,.20);
    border-radius: 999px;
    background: rgba(125,126,252,.05);
    cursor: pointer;
}

.cj-contact-form__setup > label > span {
    margin: 0;
    font-size: .72rem;
    font-weight: 700;
}

.cj-contact-form__setup input {
    accent-color: var(--cj-primary-dark);
}

.cj-contact-form__consent {
    display: grid;
    grid-template-columns: auto minmax(0,1fr);
    align-items: start;
    gap: 9px;
    padding: 12px 13px;
    border-radius: 9px;
    background: rgba(125,126,252,.045);
}

.cj-contact-form__consent input {
    margin-top: 2px;
    accent-color: var(--cj-primary-dark);
}

.cj-contact-form__consent > span {
    margin: 0 !important;
    color: var(--cj-text-soft) !important;
    font-size: .71rem !important;
    font-weight: 500 !important;
    line-height: 1.45;
}

.cj-contact-submit {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    width: 100%;
    min-height: 49px;
    margin-top: 15px;
    padding: 10px 14px;
    border: 0;
    border-radius: 9px;
    background: linear-gradient(90deg,#00BCEC 0%,#7D7EFC 50%,#E00080 100%);
    color: #FFFFFF;
    font-size: .80rem;
    font-weight: 850;
    cursor: pointer;
}

.cj-contact-form__privacy {
    margin: 9px 0 0;
    color: var(--cj-text-soft);
    font-size: .66rem;
    line-height: 1.45;
    text-align: center;
}

.cj-contact-honeypot {
    position: absolute !important;
    left: -9999px !important;
    width: 1px !important;
    height: 1px !important;
    overflow: hidden !important;
}


/* WHAT HAPPENS NEXT */
.cj-contact-section-heading {
    margin-bottom: 24px;
}

.cj-contact-section-heading--center {
    text-align: center;
}

.cj-contact-section-heading--center > div {
    display: flex;
    flex-direction: column;
    align-items: center;
}

.cj-contact-section-heading h2 {
    margin: 7px 0 0;
    color: var(--cj-dark);
    font-size: clamp(2rem,3.3vw,3.2rem);
    font-weight: 850;
    line-height: 1.02;
    letter-spacing: -.04em;
}

.cj-contact-next__grid {
    display: grid;
    grid-template-columns: repeat(3,minmax(0,1fr));
    gap: 15px;
}

.cj-contact-next__grid article {
    padding: 22px 20px;
    border: 1px solid rgba(125,126,252,.19);
    border-radius: 14px;
    background: rgba(255,255,255,.97);
    box-shadow: 0 8px 20px rgba(36,38,74,.055);
}

.cj-contact-next__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    margin-bottom: 16px;
    border-radius: 13px;
    background: linear-gradient(135deg,rgba(0,188,236,.13),rgba(125,126,252,.16),rgba(224,0,128,.10));
    color: var(--cj-primary-dark);
}

.cj-contact-next__icon svg {
    width: 27px;
    height: 27px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.cj-contact-next__grid h3 {
    margin: 0;
    color: var(--cj-dark);
    font-size: 1.02rem;
    font-weight: 850;
}

.cj-contact-next__grid p {
    margin: 8px 0 0;
    color: var(--cj-text-soft);
    font-size: .80rem;
    line-height: 1.5;
}


/* FINAL CTA */
.cj-contact-final {
    padding: 58px 0 66px;
}

.cj-contact-final__inner {
    display: grid;
    grid-template-columns: minmax(0,1fr) auto;
    align-items: center;
    gap: 34px;
    padding: 35px 38px;
    border-radius: 18px;
    background: linear-gradient(100deg,#00BCEC 0%,#7D7EFC 46%,#E00080 100%);
    color: #FFFFFF;
}

.cj-contact-final__inner > div:first-child > span {
    display: block;
    margin-bottom: 6px;
    color: rgba(255,255,255,.86);
    font-size: .69rem;
    font-weight: 850;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.cj-contact-final h2 {
    margin: 0;
    color: #FFFFFF;
    font-size: clamp(2rem,3vw,3rem);
    font-weight: 850;
    letter-spacing: -.04em;
}

.cj-contact-final p {
    margin: 8px 0 0;
    color: rgba(255,255,255,.88);
    font-size: .87rem;
}

.cj-contact-final__actions {
    display: flex;
    align-items: center;
    gap: 9px;
}

.cj-contact-button--white {
    border-color: #FFFFFF !important;
    background: #FFFFFF !important;
    color: var(--cj-primary-dark) !important;
}

.cj-contact-button--ghost {
    border-color: rgba(255,255,255,.72) !important;
    background: transparent !important;
    color: #FFFFFF !important;
}


/* CONTACT TABLET */
@media (max-width: 1050px) {
    .cj-contact-hero__grid {
        grid-template-columns: minmax(0,1fr) 350px;
        gap: 36px;
    }

    .cj-contact-form-layout {
        grid-template-columns: 300px minmax(0,1fr);
        gap: 34px;
    }

    .cj-contact-final__inner {
        grid-template-columns: 1fr;
        text-align: center;
    }

    .cj-contact-final__actions {
        justify-content: center;
    }
}

@media (max-width: 820px) {
    .cj-contact .cj-container {
        width: min(var(--cj-contact-container), calc(100% - 32px));
    }

    .cj-contact-hero {
        padding-top: 30px;
    }

    .cj-contact-hero__grid,
    .cj-contact-form-layout {
        grid-template-columns: 1fr;
        gap: 28px;
    }

    .cj-contact-hero__copy {
        text-align: center;
    }

    .cj-contact-kicker {
        text-align: center;
    }

    .cj-contact-hero h1 {
        margin-inline: auto;
        font-size: clamp(2.9rem,10vw,4.4rem);
    }

    .cj-contact-hero__lead {
        margin-inline: auto;
    }

    .cj-contact-hero__methods {
        justify-content: center;
    }

    .cj-contact-details {
        width: min(100%,600px);
        margin-inline: auto;
    }

    .cj-contact-form-intro {
        position: static;
        text-align: center;
    }

    .cj-contact-form-intro__tip {
        max-width: 620px;
        margin-inline: auto;
        margin-top: 18px;
        text-align: left;
    }
}


/* CONTACT MOBILE */
@media (max-width: 600px) {
    .cj-contact-hero {
        padding: 24px 0 34px;
    }

    .cj-contact-hero h1 {
        font-size: clamp(2.55rem,12.5vw,3.7rem);
    }

    .cj-contact-hero__lead {
        font-size: .95rem;
    }

    .cj-contact-hero__methods {
        display: grid;
        grid-template-columns: 1fr;
    }

    .cj-contact-hero__methods > a {
        min-width: 0;
    }

    .cj-contact-hero__reassurance {
        grid-template-columns: 1fr;
        text-align: left;
    }

    .cj-contact-details {
        padding: 23px 18px;
    }

    .cj-contact-section {
        padding: 46px 0;
    }

    .cj-contact-form-card {
        padding: 18px 15px;
    }

    .cj-contact-form__grid {
        grid-template-columns: 1fr;
    }

    .cj-contact-next__grid {
        grid-template-columns: 1fr;
        gap: 10px;
    }

    .cj-contact-next__grid article {
        display: grid;
        grid-template-columns: auto minmax(0,1fr);
        column-gap: 14px;
        padding: 17px;
    }

    .cj-contact-next__icon {
        grid-row: 1 / span 2;
        margin-bottom: 0;
    }

    .cj-contact-next__grid p {
        margin-top: 4px;
    }

    .cj-contact-final {
        padding: 42px 0 50px;
    }

    .cj-contact-final__inner {
        gap: 23px;
        padding: 28px 18px;
    }

    .cj-contact-final__actions {
        flex-direction: column;
        width: 100%;
    }

    .cj-contact-final__actions .cj-button {
        width: 100%;
    }
}
/* =========================================================
   MODULE: SITE FOOTER — VERSION 2.0
   ========================================================= */

.cj-footer {
    position: relative;
    z-index: 2;
    margin-top: 0;
    background: #24294F;
    color: #FFFFFF;
}

.cj-footer .cj-container {
    width: min(1200px, calc(100% - 48px));
    max-width: none;
    margin-inline: auto;
}

.cj-footer__grid {
    display: grid;
    grid-template-columns: minmax(250px, 1.25fr) repeat(3, minmax(155px, .85fr));
    gap: clamp(42px, 6vw, 78px);
    padding-top: 58px;
    padding-bottom: 52px;
}


/* BRAND */
.cj-footer__brand {
    min-width: 0;
}

.cj-footer__logo {
    width: min(100%, 270px);
    margin-bottom: 22px;
}

.cj-footer__logo .custom-logo-link {
    display: block;
}

.cj-footer__logo .custom-logo {
    display: block;
    width: auto;
    max-width: 100%;
    height: auto;
    max-height: 78px;
    object-fit: contain;
}

.cj-footer__site-name {
    display: inline-block;
    color: #FFFFFF;
    font-size: 1.4rem;
    font-weight: 850;
}

.cj-footer__brand > p {
    max-width: 305px;
    margin: 0;
    color: rgba(255, 255, 255, 0.79);
    font-size: 0.88rem;
    line-height: 1.65;
}

.cj-footer__phones {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    margin-top: 18px;
}

.cj-footer__phones > span {
    margin-bottom: 2px;
    color: rgba(255, 255, 255, 0.62);
    font-size: 0.68rem;
    font-weight: 850;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.cj-footer__phones > a {
    color: #FFFFFF;
    font-size: 1.08rem;
    font-weight: 850;
    line-height: 1.45;
    text-decoration: none;
}

.cj-footer__phones > a:hover,
.cj-footer__phones > a:focus-visible {
    color: #BFC0FF;
}

.cj-footer__phones .cj-footer__landline {
    margin-top: 1px;
    color: rgba(255, 255, 255, 0.78);
    font-size: 0.82rem;
    font-weight: 700;
}

.cj-footer__availability {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 46px;
    margin-top: 15px;
    padding: 10px 18px;
    border-radius: 9px;
    background: linear-gradient(
        90deg,
        #00BCEC 0%,
        #7D7EFC 52%,
        #E00080 100%
    );
    color: #FFFFFF;
    font-size: 0.78rem;
    font-weight: 850;
    text-decoration: none;
    box-shadow: 0 8px 18px rgba(0, 0, 0, 0.12);
}

.cj-footer__availability:hover,
.cj-footer__availability:focus-visible {
    color: #FFFFFF;
    transform: translateY(-1px);
}


/* NAV COLUMNS */
.cj-footer__column h2 {
    margin: 4px 0 20px;
    color: #FFFFFF;
    font-size: 0.76rem;
    font-weight: 900;
    line-height: 1.2;
    letter-spacing: 0.055em;
    text-transform: uppercase;
}

.cj-footer__column ul {
    display: grid;
    gap: 14px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.cj-footer__column li {
    margin: 0;
    padding: 0;
}

.cj-footer__column a {
    position: relative;
    display: inline-block;
    color: rgba(255, 255, 255, 0.82);
    font-size: 0.84rem;
    line-height: 1.45;
    text-decoration: none;
    transition:
        color 160ms ease,
        transform 160ms ease;
}

.cj-footer__column a::after {
    position: absolute;
    right: 100%;
    bottom: -4px;
    left: 0;
    height: 1px;
    background: #BFC0FF;
    content: "";
    opacity: 0;
    transition:
        right 160ms ease,
        opacity 160ms ease;
}

.cj-footer__column a:hover,
.cj-footer__column a:focus-visible {
    color: #FFFFFF;
    transform: translateX(2px);
}

.cj-footer__column a:hover::after,
.cj-footer__column a:focus-visible::after {
    right: 0;
    opacity: 1;
}


/* BOTTOM BAR */
.cj-footer__bottom {
    border-top: 1px solid rgba(255, 255, 255, 0.11);
    background: rgba(0, 0, 0, 0.09);
}

.cj-footer__bottom-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    min-height: 57px;
    padding-top: 13px;
    padding-bottom: 13px;
}

.cj-footer__bottom p {
    margin: 0;
    color: rgba(255, 255, 255, 0.56);
    font-size: 0.68rem;
    line-height: 1.45;
}

.cj-footer__legal {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: 18px;
}

.cj-footer__legal a {
    color: rgba(255, 255, 255, 0.68);
    font-size: 0.68rem;
    font-weight: 700;
    text-decoration: none;
}

.cj-footer__legal a:hover,
.cj-footer__legal a:focus-visible {
    color: #FFFFFF;
}


/* FOOTER TABLET */
@media (max-width: 980px) {

    .cj-footer__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 42px 58px;
    }

    .cj-footer__brand > p {
        max-width: 380px;
    }
}


/* FOOTER MOBILE */
@media (max-width: 600px) {

    .cj-footer .cj-container {
        width: min(1200px, calc(100% - 32px));
    }

    .cj-footer__grid {
        grid-template-columns: 1fr;
        gap: 34px;
        padding-top: 42px;
        padding-bottom: 38px;
    }

    .cj-footer__brand {
        text-align: center;
    }

    .cj-footer__logo {
        margin-inline: auto;
    }

    .cj-footer__brand > p {
        margin-inline: auto;
    }

    .cj-footer__phones {
        align-items: center;
    }

    .cj-footer__column {
        padding-top: 25px;
        border-top: 1px solid rgba(255, 255, 255, 0.10);
        text-align: center;
    }

    .cj-footer__column h2 {
        margin-bottom: 15px;
    }

    .cj-footer__column ul {
        gap: 11px;
    }

    .cj-footer__bottom-inner {
        flex-direction: column;
        justify-content: center;
        gap: 8px;
        padding-top: 17px;
        padding-bottom: 17px;
        text-align: center;
    }

    .cj-footer__legal {
        justify-content: center;
        gap: 14px;
    }
}

/* =========================================================
   MOBILE NAVIGATION — COLLAPSED TOP-LEVEL SUBMENU
   VERSION 1.0 — 2026-08-21
   ========================================================= */
@media (max-width: 820px) {

    /* Override the earlier mobile rule that displays submenus by default. */
    .site-navigation > .primary-menu > li > .sub-menu {
        display: none !important;
    }

    .site-navigation > .primary-menu > li.is-mobile-submenu-open > .sub-menu {
        display: block !important;
        width: 100% !important;
        margin: 0 !important;
        padding: 4px 0 8px 16px !important;
        background: rgba(255, 255, 255, 0.035) !important;
    }

    .site-navigation > .primary-menu > li.mobile-submenu-parent > a {
        position: relative !important;
        padding-right: 58px !important;
    }

    .site-navigation > .primary-menu > li.mobile-submenu-parent > a::before {
        position: absolute !important;
        top: 50% !important;
        right: 25px !important;
        display: block !important;
        width: 8px !important;
        height: 8px !important;
        border-right: 2px solid currentColor !important;
        border-bottom: 2px solid currentColor !important;
        content: "" !important;
        transform: translateY(-70%) rotate(45deg) !important;
        transform-origin: center !important;
        transition: transform 0.18s ease !important;
    }

    .site-navigation > .primary-menu > li.mobile-submenu-parent.is-mobile-submenu-open > a::before {
        transform: translateY(-30%) rotate(225deg) !important;
    }

    .site-navigation > .primary-menu > li.is-mobile-submenu-open > .sub-menu > li > a {
        min-height: 43px !important;
        padding: 10px 20px !important;
        border-bottom: 0 !important;
        color: rgba(255, 255, 255, 0.88) !important;
        font-size: 0.86rem !important;
        font-weight: 750 !important;
    }

    /* Toddler remains visibly nested beneath Children's when parent opens. */
    .site-navigation > .primary-menu > li.is-mobile-submenu-open > .sub-menu .sub-menu {
        position: static !important;
        display: block !important;
        width: 100% !important;
        min-width: 0 !important;
        margin: 0 0 3px !important;
        padding: 0 !important;
        border: 0 !important;
        background: transparent !important;
        box-shadow: none !important;
        opacity: 1 !important;
        visibility: visible !important;
        pointer-events: auto !important;
        transform: none !important;
    }

    .site-navigation > .primary-menu > li.is-mobile-submenu-open > .sub-menu .sub-menu a {
        min-height: 36px !important;
        padding: 7px 20px 7px 38px !important;
        border: 0 !important;
        color: rgba(255, 255, 255, 0.66) !important;
        font-size: 0.79rem !important;
        font-weight: 650 !important;
    }
}
/* =========================================================
   41. LOCATION LANDING PAGES — VERSION 1.0
   ========================================================= */

.cj-location {
    position: relative;
    z-index: 1;
}

.cj-location-hero {
    padding: 54px 0 62px;
}

.cj-location-breadcrumbs,
.cj-legal-breadcrumbs {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 28px;
    color: var(--cj-text-soft);
    font-size: 0.72rem;
    font-weight: 700;
}

.cj-location-breadcrumbs a,
.cj-legal-breadcrumbs a {
    color: var(--cj-primary-dark);
    text-decoration: none;
}

.cj-location-breadcrumbs a:hover,
.cj-legal-breadcrumbs a:hover {
    text-decoration: underline;
}

.cj-location-hero__grid {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(320px, .72fr);
    gap: clamp(42px, 7vw, 90px);
    align-items: center;
}

.cj-location-kicker,
.cj-location-section-kicker,
.cj-legal-kicker {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 12px;
    color: var(--cj-primary-dark);
    font-size: 0.73rem;
    font-weight: 900;
    line-height: 1.2;
    letter-spacing: .075em;
    text-transform: uppercase;
}

.cj-location-kicker::before,
.cj-legal-kicker::before {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #E00080;
    content: "";
}

.cj-location-hero h1 {
    max-width: 760px;
    margin: 0;
    color: var(--cj-dark);
    font-size: clamp(3rem, 5.4vw, 5.6rem);
    font-weight: 900;
    line-height: .94;
    letter-spacing: -.055em;
}

.cj-location-hero__lead {
    max-width: 720px;
    margin: 24px 0 0;
    color: var(--cj-text);
    font-size: 1.03rem;
    line-height: 1.72;
}

.cj-location-hero__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 28px;
}

.cj-location-button--gradient {
    border: 0;
    background: linear-gradient(90deg, #00BCEC 0%, #7D7EFC 52%, #E00080 100%);
    color: #fff;
}

.cj-location-summary {
    padding: 28px;
    border: 1px solid rgba(125, 126, 252, .17);
    border-radius: 20px;
    background: rgba(255, 255, 255, .92);
    box-shadow: 0 20px 42px rgba(33, 38, 83, .10);
}

.cj-location-summary__eyebrow {
    color: #E00080;
    font-size: .70rem;
    font-weight: 900;
    letter-spacing: .07em;
    text-transform: uppercase;
}

.cj-location-summary h2 {
    margin: 8px 0 22px;
    color: var(--cj-dark);
    font-size: 1.7rem;
    line-height: 1.05;
}

.cj-location-summary__items {
    display: grid;
    gap: 13px;
}

.cj-location-summary__items > div {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 0;
    border-top: 1px solid rgba(125, 126, 252, .13);
}

.cj-location-summary__icon {
    display: grid;
    flex: 0 0 40px;
    width: 40px;
    height: 40px;
    place-items: center;
    border-radius: 11px;
    background: rgba(125, 126, 252, .09);
}

.cj-location-summary__icon svg {
    width: 21px;
    height: 21px;
    fill: none;
    stroke: var(--cj-primary-dark);
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.8;
}

.cj-location-summary__items p {
    display: grid;
    gap: 2px;
    margin: 0;
}

.cj-location-summary__items strong {
    color: var(--cj-dark);
    font-size: .88rem;
}

.cj-location-summary__items p span {
    color: var(--cj-text-soft);
    font-size: .76rem;
}

.cj-location-summary > a {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-top: 18px;
    padding-top: 17px;
    border-top: 1px solid rgba(125, 126, 252, .13);
    color: var(--cj-primary-dark);
    font-size: .81rem;
    font-weight: 850;
    text-decoration: none;
}

.cj-location-section {
    padding: 72px 0;
}

.cj-location-intro__grid {
    display: grid;
    grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr);
    gap: clamp(40px, 7vw, 96px);
}

.cj-location-intro__grid h2,
.cj-location-section-heading h2,
.cj-location-local h2 {
    margin: 0;
    color: var(--cj-dark);
    font-size: clamp(2rem, 3.3vw, 3.25rem);
    line-height: 1.03;
    letter-spacing: -.035em;
}

.cj-location-prose {
    display: grid;
    gap: 18px;
}

.cj-location-prose p,
.cj-location-local p {
    margin: 0;
    color: var(--cj-text);
    font-size: .98rem;
    line-height: 1.75;
}

.cj-location-routes {
    border-top: 1px solid rgba(125, 126, 252, .11);
    border-bottom: 1px solid rgba(125, 126, 252, .11);
    background: rgba(255, 255, 255, .42);
}

.cj-location-section-heading {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 40px;
    margin-bottom: 32px;
}

.cj-location-section-heading > p {
    max-width: 480px;
    margin: 0;
    color: var(--cj-text-soft);
    font-size: .89rem;
    line-height: 1.65;
}

.cj-location-section-heading--center {
    justify-content: center;
    text-align: center;
}

.cj-location-route-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px;
}

.cj-location-route {
    display: flex;
    flex-direction: column;
    min-height: 255px;
    padding: 24px;
    border: 1px solid rgba(125, 126, 252, .14);
    border-radius: 17px;
    background: rgba(255, 255, 255, .92);
    color: inherit;
    box-shadow: 0 12px 25px rgba(33, 38, 83, .055);
    text-decoration: none;
    transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

.cj-location-route:hover {
    border-color: rgba(125, 126, 252, .34);
    box-shadow: 0 18px 34px rgba(33, 38, 83, .10);
    transform: translateY(-3px);
}

.cj-location-route__icon {
    display: grid;
    width: 52px;
    height: 52px;
    margin-bottom: 20px;
    place-items: center;
    border-radius: 14px;
    background: linear-gradient(135deg, rgba(0,188,236,.12), rgba(224,0,128,.08));
}

.cj-location-route__icon svg {
    width: 30px;
    height: 30px;
    fill: none;
    stroke: var(--cj-primary-dark);
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.7;
}

.cj-location-route h3 {
    margin: 0 0 9px;
    color: var(--cj-dark);
    font-size: 1rem;
    line-height: 1.24;
}

.cj-location-route p {
    margin: 0 0 20px;
    color: var(--cj-text-soft);
    font-size: .80rem;
    line-height: 1.58;
}

.cj-location-route__link {
    margin-top: auto;
    color: var(--cj-primary-dark);
    font-size: .76rem;
    font-weight: 850;
}

.cj-location-local__grid {
    display: grid;
    grid-template-columns: minmax(0, 1.12fr) minmax(300px, .72fr);
    gap: 28px;
}

.cj-location-local__main,
.cj-location-local__nearby {
    padding: clamp(28px, 4vw, 45px);
    border-radius: 20px;
}

.cj-location-local__main {
    border: 1px solid rgba(125, 126, 252, .14);
    background: rgba(255, 255, 255, .90);
}

.cj-location-local__main p + p {
    margin-top: 15px;
}

.cj-location-local__nearby {
    background: #24294F;
    color: #fff;
}

.cj-location-local__nearby .cj-location-section-kicker {
    color: #BFC0FF;
}

.cj-location-local__nearby h2 {
    color: #fff;
    font-size: clamp(1.7rem, 2.7vw, 2.55rem);
}

.cj-location-local__nearby p {
    margin-top: 20px;
    color: rgba(255,255,255,.72);
    font-size: .84rem;
}

.cj-location-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 23px;
}

.cj-location-chips span {
    padding: 7px 10px;
    border: 1px solid rgba(255,255,255,.14);
    border-radius: 999px;
    background: rgba(255,255,255,.07);
    color: rgba(255,255,255,.88);
    font-size: .71rem;
    font-weight: 700;
}

.cj-location-text-link {
    display: inline-flex;
    gap: 7px;
    margin-top: 22px;
    color: var(--cj-primary-dark);
    font-size: .80rem;
    font-weight: 850;
    text-decoration: none;
}

.cj-location-local__nearby .cj-location-text-link {
    color: #fff;
}

.cj-location-process {
    padding-top: 20px;
}

.cj-location-process-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
}

.cj-location-process-grid article {
    padding: 27px;
    border-top: 3px solid #7D7EFC;
    border-radius: 0 0 15px 15px;
    background: rgba(255,255,255,.84);
}

.cj-location-process-grid article > span {
    color: rgba(125,126,252,.34);
    font-size: 2rem;
    font-weight: 900;
}

.cj-location-process-grid h3 {
    margin: 6px 0 8px;
    color: var(--cj-dark);
    font-size: 1rem;
}

.cj-location-process-grid p {
    margin: 0;
    color: var(--cj-text-soft);
    font-size: .82rem;
    line-height: 1.58;
}

.cj-location-faq {
    border-top: 1px solid rgba(125, 126, 252, .11);
}

.cj-location-faq__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.cj-location-faq details {
    overflow: hidden;
    border: 1px solid rgba(125,126,252,.14);
    border-radius: 13px;
    background: rgba(255,255,255,.90);
}

.cj-location-faq summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    padding: 18px 20px;
    color: var(--cj-dark);
    font-size: .86rem;
    font-weight: 800;
    cursor: pointer;
    list-style: none;
}

.cj-location-faq summary::-webkit-details-marker {
    display: none;
}

.cj-location-faq summary span {
    color: var(--cj-primary-dark);
    font-size: 1.3rem;
    font-weight: 400;
}

.cj-location-faq details[open] summary span {
    transform: rotate(45deg);
}

.cj-location-faq details > div {
    padding: 0 20px 18px;
}

.cj-location-faq details p {
    margin: 0;
    color: var(--cj-text-soft);
    font-size: .80rem;
    line-height: 1.65;
}

.cj-location-final {
    padding: 0 0 76px;
}

.cj-location-final__inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 40px;
    padding: clamp(32px, 5vw, 54px);
    border-radius: 22px;
    background: linear-gradient(105deg, #00BCEC 0%, #7D7EFC 50%, #E00080 100%);
    color: #fff;
}

.cj-location-final__inner > div:first-child > span {
    font-size: .72rem;
    font-weight: 850;
    letter-spacing: .07em;
    text-transform: uppercase;
}

.cj-location-final h2 {
    margin: 7px 0 8px;
    color: #fff;
    font-size: clamp(1.9rem, 3vw, 3rem);
    line-height: 1;
}

.cj-location-final p {
    margin: 0;
    color: rgba(255,255,255,.83);
    font-size: .88rem;
}

.cj-location-final__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    flex: 0 0 auto;
}

.cj-location-button--white {
    border-color: #fff;
    background: #fff;
    color: #5F60DD;
}

.cj-location-button--ghost {
    border: 1px solid rgba(255,255,255,.55);
    background: transparent;
    color: #fff;
}


/* =========================================================
   42. LEGAL PAGES — VERSION 1.0
   ========================================================= */

.cj-legal {
    position: relative;
    z-index: 1;
}

.cj-legal-hero {
    padding: 50px 0 52px;
    border-bottom: 1px solid rgba(125,126,252,.12);
}

.cj-legal-hero h1 {
    max-width: 920px;
    margin: 0;
    color: var(--cj-dark);
    font-size: clamp(2.8rem, 5vw, 5rem);
    font-weight: 900;
    line-height: .98;
    letter-spacing: -.045em;
}

.cj-legal-hero p {
    max-width: 730px;
    margin: 20px 0 0;
    color: var(--cj-text);
    font-size: 1rem;
    line-height: 1.7;
}

.cj-legal-updated {
    display: block;
    margin-top: 17px;
    color: var(--cj-text-soft);
    font-size: .72rem;
    font-weight: 700;
}

.cj-legal-content {
    padding: 64px 0 82px;
}

.cj-legal-layout {
    display: grid;
    grid-template-columns: 220px minmax(0, 780px);
    justify-content: center;
    gap: clamp(44px, 7vw, 96px);
    align-items: start;
}

.cj-legal-nav {
    position: sticky;
    top: 24px;
    display: grid;
    gap: 5px;
    padding: 20px;
    border: 1px solid rgba(125,126,252,.14);
    border-radius: 14px;
    background: rgba(255,255,255,.88);
}

.cj-legal-nav strong {
    margin-bottom: 8px;
    color: var(--cj-dark);
    font-size: .76rem;
    text-transform: uppercase;
    letter-spacing: .06em;
}

.cj-legal-nav a {
    padding: 5px 0;
    color: var(--cj-text-soft);
    font-size: .75rem;
    font-weight: 700;
    text-decoration: none;
}

.cj-legal-nav a:hover {
    color: var(--cj-primary-dark);
}

.cj-legal-article {
    min-width: 0;
}

.cj-legal-article section {
    scroll-margin-top: 24px;
}

.cj-legal-article section + section {
    margin-top: 42px;
    padding-top: 42px;
    border-top: 1px solid rgba(125,126,252,.11);
}

.cj-legal-article h2 {
    margin: 0 0 15px;
    color: var(--cj-dark);
    font-size: 1.55rem;
    line-height: 1.15;
}

.cj-legal-article p,
.cj-legal-article li {
    color: var(--cj-text);
    font-size: .91rem;
    line-height: 1.75;
}

.cj-legal-article p {
    margin: 0;
}

.cj-legal-article p + p {
    margin-top: 15px;
}

.cj-legal-article ul {
    display: grid;
    gap: 8px;
    margin: 16px 0 0;
    padding-left: 21px;
}

.cj-legal-article a {
    color: var(--cj-primary-dark);
    font-weight: 750;
}

.cj-legal-callout,
.cj-legal-note {
    display: grid;
    gap: 5px;
    padding: 20px;
    border-radius: 13px;
}

.cj-legal-callout {
    border: 1px solid rgba(125,126,252,.18);
    background: rgba(125,126,252,.07);
}

.cj-legal-note {
    border-left: 4px solid #7D7EFC;
    background: rgba(255,255,255,.78);
}

.cj-legal-callout strong,
.cj-legal-note strong {
    color: var(--cj-dark);
    font-size: .87rem;
}

.cj-legal-callout span,
.cj-legal-note span {
    color: var(--cj-text-soft);
    font-size: .80rem;
    line-height: 1.6;
}

.cj-legal-callout a {
    margin-top: 6px;
    font-size: .78rem;
    text-decoration: none;
}

.cj-legal-cookie-table {
    overflow: hidden;
    margin-top: 20px;
    border: 1px solid rgba(125,126,252,.14);
    border-radius: 13px;
    background: rgba(255,255,255,.86);
}

.cj-legal-cookie-table > div {
    display: grid;
    grid-template-columns: 180px minmax(0, 1fr);
}

.cj-legal-cookie-table > div + div {
    border-top: 1px solid rgba(125,126,252,.11);
}

.cj-legal-cookie-table > div > * {
    padding: 15px 17px;
    font-size: .79rem;
    line-height: 1.55;
}

.cj-legal-cookie-table > div > strong {
    color: var(--cj-dark);
}

.cj-legal-cookie-table > div > span {
    color: var(--cj-text-soft);
}

.cj-legal-cookie-table__head {
    background: #24294F;
}

.cj-legal-cookie-table__head strong {
    color: #fff !important;
    font-size: .72rem !important;
    text-transform: uppercase;
    letter-spacing: .055em;
}


/* LOCATION + LEGAL TABLET */
@media (max-width: 980px) {

    .cj-location-hero__grid {
        grid-template-columns: 1fr;
    }

    .cj-location-summary {
        max-width: 620px;
    }

    .cj-location-route-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .cj-location-local__grid {
        grid-template-columns: 1fr;
    }

    .cj-legal-layout {
        grid-template-columns: 190px minmax(0, 1fr);
        gap: 40px;
    }
}


/* LOCATION + LEGAL MOBILE */
@media (max-width: 700px) {

    .cj-location-hero {
        padding: 34px 0 46px;
    }

    .cj-location-breadcrumbs,
    .cj-legal-breadcrumbs {
        margin-bottom: 20px;
    }

    .cj-location-hero h1 {
        font-size: clamp(2.7rem, 13vw, 4rem);
    }

    .cj-location-hero__lead {
        font-size: .94rem;
    }

    .cj-location-hero__actions,
    .cj-location-final__actions {
        display: grid;
        grid-template-columns: 1fr;
        width: 100%;
    }

    .cj-location-hero__actions .cj-button,
    .cj-location-final__actions .cj-button {
        width: 100%;
    }

    .cj-location-section {
        padding: 52px 0;
    }

    .cj-location-intro__grid {
        grid-template-columns: 1fr;
        gap: 24px;
    }

    .cj-location-section-heading {
        align-items: start;
        flex-direction: column;
        gap: 16px;
        margin-bottom: 25px;
    }

    .cj-location-route-grid,
    .cj-location-process-grid,
    .cj-location-faq__grid {
        grid-template-columns: 1fr;
    }

    .cj-location-route {
        min-height: 0;
    }

    .cj-location-final {
        padding-bottom: 54px;
    }

    .cj-location-final__inner {
        align-items: start;
        flex-direction: column;
    }

    .cj-legal-hero {
        padding: 34px 0 38px;
    }

    .cj-legal-content {
        padding: 46px 0 58px;
    }

    .cj-legal-layout {
        grid-template-columns: 1fr;
        gap: 28px;
    }

    .cj-legal-nav {
        position: static;
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .cj-legal-nav strong {
        grid-column: 1 / -1;
    }

    .cj-legal-article section + section {
        margin-top: 34px;
        padding-top: 34px;
    }

    .cj-legal-cookie-table > div {
        grid-template-columns: 1fr;
    }

    .cj-legal-cookie-table__head {
        display: none !important;
    }

    .cj-legal-cookie-table > div > strong {
        padding-bottom: 4px;
    }

    .cj-legal-cookie-table > div > span {
        padding-top: 4px;
    }
}

/* =========================================================
   43. HOMEPAGE V1.3 — DISTINCT PRODUCT STRIPS + FULL CTA
   ========================================================= */

/* Prevent the final gradient glyph being clipped by the tight H1 letter-spacing. */
.cj-home-hero h1 span {
    display: inline-block;
    padding-right: 0.10em;
    -webkit-box-decoration-break: clone;
    box-decoration-break: clone;
}

/* The all-products action now sits below the three cards as a full-width route. */
.cj-home-all-castles {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;

    width: 100%;
    margin-top: 18px;
    padding: 18px 22px;

    border: 1px solid rgba(125, 126, 252, 0.28);
    border-radius: 13px;

    background:
        linear-gradient(
            90deg,
            rgba(0, 188, 236, 0.08) 0%,
            rgba(125, 126, 252, 0.08) 50%,
            rgba(224, 0, 128, 0.07) 100%
        ),
        rgba(255, 255, 255, 0.94);

    color: var(--cj-dark);
    box-shadow: 0 9px 22px rgba(36, 38, 74, 0.055);

    text-decoration: none;

    transition:
        border-color 0.18s ease,
        box-shadow 0.18s ease,
        transform 0.18s ease;
}

.cj-home-all-castles:hover {
    border-color: rgba(125, 126, 252, 0.52);
    box-shadow: 0 13px 28px rgba(36, 38, 74, 0.10);
    transform: translateY(-2px);
}

.cj-home-all-castles > span {
    display: grid;
    gap: 3px;
}

.cj-home-all-castles strong {
    color: var(--cj-dark);
    font-size: 0.92rem;
    font-weight: 900;
    letter-spacing: 0.015em;
    text-transform: uppercase;
}

.cj-home-all-castles small {
    color: var(--cj-text-soft);
    font-size: 0.76rem;
    line-height: 1.35;
}

.cj-home-all-castles b {
    display: grid;
    flex: 0 0 42px;
    width: 42px;
    height: 42px;
    place-items: center;

    border-radius: 50%;
    background: linear-gradient(135deg, #7D7EFC 0%, #E00080 100%);
    color: #FFFFFF;

    font-size: 1.05rem;
}
/* =========================================================
   44. SEPARATE FIXED STICKY HEADER — VERSION 2.0
   =========================================================
   The normal desktop masthead remains in document flow and
   scrolls away naturally. This independent fixed bar appears
   only after the original header has left the viewport.
   ========================================================= */

.cj-sticky-header {
    display: none;
}

@media (min-width: 821px) {

    /* Original desktop header must NEVER become sticky/collapsed. */
    .site-header.site-header {
        position: relative !important;
        top: auto !important;
    }

    .cj-sticky-header {
        position: fixed;
        top: 0;
        right: 0;
        left: 0;
        z-index: 7000;

        display: block;

        height: 66px;

        background: linear-gradient(
            90deg,
            #00BCEC 0%,
            #7D7EFC 50%,
            #E00080 100%
        );

        box-shadow: 0 8px 24px rgba(29, 33, 81, 0.22);

        opacity: 0;
        visibility: hidden;
        pointer-events: none;

        transform: translateY(-100%);

        transition:
            transform 0.18s ease,
            opacity 0.18s ease,
            visibility 0.18s ease;
    }

    .cj-sticky-header.is-visible {
        opacity: 1;
        visibility: visible;
        pointer-events: auto;

        transform: translateY(0);
    }

    body.admin-bar .cj-sticky-header {
        top: 32px;
    }

    .cj-sticky-header__inner {
        display: grid;
        grid-template-columns: 190px minmax(0, 1fr);
        align-items: stretch;

        width: min(calc(100% - 48px), 1450px);
        height: 66px;

        margin: 0 auto;
    }

    .cj-sticky-header__brand {
        display: flex;
        align-items: center;
        justify-content: center;

        min-width: 0;

        margin: 6px 14px 6px 0;
        padding: 4px 14px;

        border: 1px solid rgba(255, 255, 255, 0.42);
        border-radius: 11px;

        background: rgba(248, 250, 255, 0.96);

        box-shadow: 0 5px 14px rgba(28, 31, 73, 0.14);

        color: #24294F;
        text-decoration: none;
    }

    .cj-sticky-header__logo {
        display: block !important;

        width: auto !important;
        height: auto !important;

        max-width: 156px !important;
        max-height: 50px !important;

        object-fit: contain !important;

        filter: none !important;
    }

    .cj-sticky-header__name {
        color: #24294F;
        font-size: 0.84rem;
        font-weight: 900;
    }


    /* Reuse the proven WordPress dropdown styling, but remove the
       original full-viewport navigation geometry. */
    .cj-sticky-navigation {
        position: relative;

        width: auto !important;
        max-width: none !important;
        min-width: 0;
        min-height: 66px !important;

        margin: 0 !important;

        background: transparent !important;
        box-shadow: none !important;

        overflow: visible !important;
    }

    .cj-sticky-navigation > .primary-menu {
        width: 100% !important;
        max-width: none !important;
        min-height: 66px;

        justify-content: flex-end !important;
    }

    .cj-sticky-navigation > .primary-menu > li > a {
        min-height: 66px !important;
        padding-right: 19px;
        padding-left: 19px;

        font-size: 0.81rem;
    }

    .cj-sticky-navigation
    > .primary-menu
    > .menu-item-has-children
    > a {
        padding-right: 34px;
    }

    .cj-sticky-navigation
    > .primary-menu
    > .menu-item-has-children
    > a::before {
        right: 16px;
    }

    .cj-sticky-navigation
    > .primary-menu
    > li
    > .sub-menu {
        top: 100%;
    }
}


/* Slightly tighter at narrower desktop widths. */
@media (min-width: 821px) and (max-width: 1180px) {

    .cj-sticky-header__inner {
        grid-template-columns: 154px minmax(0, 1fr);
        width: min(calc(100% - 28px), 1450px);
    }

    .cj-sticky-header__brand {
        margin-right: 8px;
        padding-inline: 9px;
    }

    .cj-sticky-header__logo {
        max-width: 128px !important;
        max-height: 46px !important;
    }

    .cj-sticky-navigation > .primary-menu > li > a {
        padding-right: 13px;
        padding-left: 13px;

        font-size: 0.75rem;
    }

    .cj-sticky-navigation
    > .primary-menu
    > .menu-item-has-children
    > a {
        padding-right: 27px;
    }

    .cj-sticky-navigation
    > .primary-menu
    > .menu-item-has-children
    > a::before {
        right: 11px;
    }
}


/* Mobile keeps the existing compact sticky masthead. */
@media (max-width: 820px) {

    .cj-sticky-header {
        display: none !important;
    }

    .site-header.site-header {
        position: sticky;
        top: 0;
        z-index: 5000;
    }

    body.admin-bar .site-header.site-header {
        top: 46px;
    }
}

@media (min-width: 783px) and (max-width: 820px) {

    body.admin-bar .site-header.site-header {
        top: 32px;
    }
}
/* =========================================================
   45. STICKY MENU GRID PLACEMENT FIX — VERSION 1.0
   =========================================================
   .site-navigation normally uses grid-area: nav inside the
   full masthead. The independent sticky header has a different
   grid, so that inherited placement must be reset.
   ========================================================= */

@media (min-width: 821px) {

    .cj-sticky-header__inner > .cj-sticky-navigation {
        grid-area: auto !important;
        grid-column: 2 !important;
        grid-row: 1 !important;

        align-self: stretch !important;

        display: block !important;

        width: 100% !important;
        min-width: 0 !important;
        max-width: none !important;

        margin: 0 !important;
    }

    .cj-sticky-navigation > .primary-menu {
        display: flex !important;
        align-items: stretch !important;
        justify-content: flex-end !important;

        width: 100% !important;
        height: 66px !important;
        min-height: 66px !important;

        margin: 0 !important;
        padding: 0 !important;

        opacity: 1 !important;
        visibility: visible !important;
    }

    .cj-sticky-navigation > .primary-menu > li {
        display: flex !important;
        align-items: stretch !important;

        opacity: 1 !important;
        visibility: visible !important;
    }

    .cj-sticky-navigation > .primary-menu > li > a {
        display: flex !important;
        align-items: center !important;

        color: #FFFFFF !important;

        opacity: 1 !important;
        visibility: visible !important;
    }

    .cj-sticky-navigation > .primary-menu > li > a:hover,
    .cj-sticky-navigation > .primary-menu > .current-menu-item > a,
    .cj-sticky-navigation > .primary-menu > .current-menu-ancestor > a {
        color: #FFFFFF !important;
    }
}
/* =========================================================
   46. EVENT WEATHER + HOMEPAGE LOCAL SEO — VERSION 1.0
   ========================================================= */


/* ---------------------------------------------------------
   HOMEPAGE WEATHER CHECKER
   --------------------------------------------------------- */

.cj-home-weather {
    padding: 18px 0 10px;
}

.cj-weather-checker {
    border: 1px solid rgba(125, 126, 252, 0.20);
    border-radius: 18px;
    background: rgba(255, 255, 255, 0.98);
    box-shadow: 0 14px 34px rgba(36, 38, 74, 0.08);
}

.cj-weather-checker--home {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(430px, 0.85fr);
    gap: 22px;
    align-items: center;
    padding: 24px 26px;
}

.cj-weather-checker__intro {
    display: grid;
    grid-template-columns: 58px minmax(0, 1fr);
    gap: 16px;
    align-items: center;
}

.cj-weather-checker__icon,
.cj-contact-weather__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 58px;
    height: 58px;
    border-radius: 16px;
    background: linear-gradient(
        135deg,
        rgba(0, 188, 236, 0.13),
        rgba(125, 126, 252, 0.13),
        rgba(224, 0, 128, 0.10)
    );
    color: var(--cj-primary-dark);
}

.cj-weather-checker__icon svg,
.cj-contact-weather__icon svg {
    width: 34px;
    height: 34px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2.2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.cj-weather-checker__intro h2 {
    margin: 5px 0 7px;
    color: var(--cj-dark);
    font-size: clamp(1.45rem, 2vw, 2rem);
    font-weight: 850;
    line-height: 1.06;
    letter-spacing: -0.025em;
}

.cj-weather-checker__intro p {
    max-width: 650px;
    margin: 0;
    color: var(--cj-text-soft);
    font-size: 0.82rem;
    line-height: 1.55;
}

.cj-weather-form {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 0.82fr);
    gap: 9px;
}

.cj-weather-form label {
    display: grid;
    gap: 5px;
}

.cj-weather-form label > span {
    color: var(--cj-dark);
    font-size: 0.69rem;
    font-weight: 800;
}

.cj-weather-form input {
    width: 100%;
    min-height: 45px;
    padding: 9px 11px;
    border: 1px solid rgba(69, 71, 112, 0.20);
    border-radius: 9px;
    background: #FFFFFF;
    color: var(--cj-dark);
    font: inherit;
    font-size: 0.78rem;
    outline: none;
}

.cj-weather-form input:focus {
    border-color: rgba(95, 96, 221, 0.62);
    box-shadow: 0 0 0 3px rgba(125, 126, 252, 0.10);
}

.cj-weather-form button,
.cj-contact-weather__button {
    grid-column: 1 / -1;
    min-height: 45px;
    padding: 9px 14px;
    border: 0;
    border-radius: 9px;
    background: linear-gradient(
        90deg,
        #00BCEC 0%,
        #7D7EFC 50%,
        #E00080 100%
    );
    color: #FFFFFF;
    font: inherit;
    font-size: 0.76rem;
    font-weight: 850;
    cursor: pointer;
}

.cj-weather-form button:disabled,
.cj-contact-weather__button:disabled {
    opacity: 0.58;
    cursor: wait;
}

.cj-weather-result {
    grid-column: 1 / -1;
    margin-top: 4px;
    border-radius: 12px;
}

.cj-weather-result[hidden] {
    display: none !important;
}

.cj-weather-result.is-weather-success {
    padding: 13px;
    border: 1px solid rgba(0, 144, 0, 0.18);
    background: rgba(0, 144, 0, 0.045);
}

.cj-weather-result.is-weather-info {
    padding: 13px;
    border: 1px solid rgba(125, 126, 252, 0.18);
    background: rgba(125, 126, 252, 0.045);
}

.cj-weather-result__summary {
    display: grid;
    grid-template-columns: minmax(170px, 0.72fr) minmax(0, 1.28fr);
    gap: 14px;
    align-items: center;
}

.cj-weather-result__summary > div:first-child {
    display: grid;
    gap: 2px;
}

.cj-weather-result__summary small,
.cj-weather-result__metrics small {
    color: var(--cj-text-soft);
    font-size: 0.64rem;
    font-weight: 700;
}

.cj-weather-result__summary > div:first-child > strong {
    color: var(--cj-dark);
    font-size: 0.94rem;
    font-weight: 850;
}

.cj-weather-result__summary > div:first-child > span {
    color: var(--cj-text-soft);
    font-size: 0.68rem;
}

.cj-weather-result__metrics {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 7px;
}

.cj-weather-result__metrics > span {
    display: grid;
    gap: 2px;
    padding: 8px;
    border: 1px solid rgba(125, 126, 252, 0.12);
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.78);
}

.cj-weather-result__metrics strong {
    color: var(--cj-dark);
    font-size: 0.78rem;
    font-weight: 850;
}

.cj-weather-result__safety {
    margin: 10px 0 0;
    color: var(--cj-text-soft);
    font-size: 0.63rem;
    line-height: 1.45;
}

.cj-weather-result__message {
    display: grid;
    gap: 4px;
}

.cj-weather-result__message strong {
    color: var(--cj-dark);
    font-size: 0.80rem;
}

.cj-weather-result__message span,
.cj-weather-result__message a {
    color: var(--cj-text-soft);
    font-size: 0.70rem;
    line-height: 1.45;
}

.cj-weather-result__message a {
    width: fit-content;
    margin-top: 2px;
    color: var(--cj-primary-dark);
    font-weight: 800;
    text-decoration: none;
}

.cj-weather-checker__footnote {
    grid-column: 1 / -1;
    display: flex;
    justify-content: space-between;
    gap: 14px;
    align-items: center;
    margin-top: -4px;
    color: var(--cj-text-soft);
    font-size: 0.61rem;
    line-height: 1.4;
}

.cj-weather-checker__footnote a {
    flex: 0 0 auto;
    color: var(--cj-primary-dark);
    font-weight: 750;
    text-decoration: none;
}


/* ---------------------------------------------------------
   CONTACT WEATHER PANEL
   --------------------------------------------------------- */

.cj-contact-weather {
    margin-top: 7px;
    padding: 13px;
    border: 1px solid rgba(125, 126, 252, 0.18);
    border-radius: 11px;
    background: rgba(125, 126, 252, 0.04);
}

.cj-contact-weather[hidden] {
    display: none !important;
}

.cj-contact-weather__heading {
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr);
    gap: 10px;
    align-items: center;
}

.cj-contact-weather__icon {
    width: 42px;
    height: 42px;
    border-radius: 11px;
}

.cj-contact-weather__icon svg {
    width: 26px;
    height: 26px;
}

.cj-contact-weather__heading > div {
    display: grid;
    gap: 2px;
}

.cj-contact-weather__heading strong {
    color: var(--cj-dark);
    font-size: 0.78rem;
    font-weight: 850;
}

.cj-contact-weather__heading span {
    color: var(--cj-text-soft);
    font-size: 0.67rem;
    line-height: 1.4;
}

.cj-contact-weather__button {
    width: 100%;
    margin-top: 10px;
}

.cj-contact-weather__note {
    margin: 9px 0 0;
    color: var(--cj-text-soft);
    font-size: 0.61rem;
    line-height: 1.45;
}

.cj-contact-weather__note a {
    color: var(--cj-primary-dark);
    font-weight: 750;
}


/* ---------------------------------------------------------
   HOMEPAGE SEO / LOCAL CONTEXT
   --------------------------------------------------------- */

.cj-home-seo {
    padding-top: 26px;
}

.cj-home-seo__grid {
    display: grid;
    grid-template-columns: minmax(0, 1.25fr) minmax(300px, 0.75fr);
    gap: 24px;
    align-items: start;
}

.cj-home-seo__copy {
    padding: 32px;
    border: 1px solid rgba(125, 126, 252, 0.18);
    border-radius: 18px;
    background: rgba(255, 255, 255, 0.97);
    box-shadow: 0 10px 26px rgba(36, 38, 74, 0.055);
}

.cj-home-seo__copy h2 {
    margin: 7px 0 16px;
    color: var(--cj-dark);
    font-size: clamp(1.8rem, 2.8vw, 2.8rem);
    font-weight: 850;
    line-height: 1.05;
    letter-spacing: -0.035em;
}

.cj-home-seo__copy p {
    margin: 0 0 14px;
    color: var(--cj-text-soft);
    font-size: 0.88rem;
    line-height: 1.65;
}

.cj-home-seo__copy p:last-child {
    margin-bottom: 0;
}

.cj-home-seo__copy a {
    color: var(--cj-primary-dark);
    font-weight: 750;
}

.cj-home-seo__links {
    display: grid;
    gap: 9px;
    padding: 24px;
    border-radius: 18px;
    background: var(--cj-dark);
    box-shadow: 0 14px 34px rgba(36, 38, 74, 0.12);
}

.cj-home-seo__links > .cj-home-section-kicker {
    margin-bottom: 3px;
    color: rgba(255, 255, 255, 0.68);
}

.cj-home-seo__links > a {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    min-height: 68px;
    padding: 12px 14px;
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: 11px;
    background: rgba(255, 255, 255, 0.055);
    color: #FFFFFF;
    text-decoration: none;
    transition:
        transform 0.16s ease,
        background 0.16s ease;
}

.cj-home-seo__links > a:hover {
    transform: translateY(-1px);
    background: rgba(255, 255, 255, 0.09);
}

.cj-home-seo__links > a > span {
    display: grid;
    gap: 2px;
}

.cj-home-seo__links strong {
    color: #FFFFFF;
    font-size: 0.82rem;
    font-weight: 850;
}

.cj-home-seo__links small {
    color: rgba(255, 255, 255, 0.66);
    font-size: 0.65rem;
    line-height: 1.35;
}

.cj-home-seo__links b {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.11);
    color: #FFFFFF;
    font-size: 0.78rem;
}


/* ---------------------------------------------------------
   RESPONSIVE
   --------------------------------------------------------- */

@media (max-width: 980px) {

    .cj-weather-checker--home,
    .cj-home-seo__grid {
        grid-template-columns: 1fr;
    }

    .cj-weather-checker--home {
        gap: 16px;
    }

    .cj-weather-checker__footnote {
        margin-top: 0;
    }
}

@media (max-width: 640px) {

    .cj-home-weather {
        padding-top: 10px;
    }

    .cj-weather-checker--home {
        padding: 18px;
        border-radius: 14px;
    }

    .cj-weather-checker__intro {
        grid-template-columns: 46px minmax(0, 1fr);
        gap: 11px;
    }

    .cj-weather-checker__icon {
        width: 46px;
        height: 46px;
        border-radius: 12px;
    }

    .cj-weather-checker__icon svg {
        width: 28px;
        height: 28px;
    }

    .cj-weather-form {
        grid-template-columns: 1fr;
    }

    .cj-weather-result__summary {
        grid-template-columns: 1fr;
    }

    .cj-weather-result__metrics {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .cj-weather-checker__footnote {
        display: grid;
        gap: 6px;
    }

    .cj-home-seo__copy,
    .cj-home-seo__links {
        padding: 20px;
        border-radius: 14px;
    }

    .cj-home-seo__copy p {
        font-size: 0.83rem;
    }
}
/* =========================================================
   47. STICKY CHECK AVAILABILITY CTA — VERSION 1.0
   ========================================================= */

@media (min-width: 821px) {

    .cj-sticky-header__inner {
        grid-template-columns:
            190px
            minmax(0, 1fr)
            178px;
        gap: 0;
    }

    .cj-sticky-header__inner > .cj-sticky-navigation {
        grid-column: 2 !important;
    }

    .cj-sticky-header__cta {
        grid-column: 3;
        grid-row: 1;

        align-self: center;

        display: flex;
        align-items: center;
        justify-content: center;
        gap: 7px;

        min-width: 0;
        min-height: 44px;

        margin-left: 12px;
        padding: 9px 14px;

        border: 2px solid rgba(255, 255, 255, 0.88);
        border-radius: 10px;

        background: rgba(255, 255, 255, 0.96);
        box-shadow: 0 5px 15px rgba(29, 33, 81, 0.15);

        color: #35386A;
        text-decoration: none;

        font-size: 0.73rem;
        font-weight: 900;
        line-height: 1;
        white-space: nowrap;

        transition:
            transform 0.16s ease,
            background 0.16s ease,
            box-shadow 0.16s ease;
    }

    .cj-sticky-header__cta:hover,
    .cj-sticky-header__cta:focus-visible {
        transform: translateY(-1px);

        background: #FFFFFF;
        box-shadow: 0 7px 18px rgba(29, 33, 81, 0.21);

        color: #24264A;
    }

    .cj-sticky-header__cta:focus-visible {
        outline: 3px solid rgba(255, 255, 255, 0.42);
        outline-offset: 2px;
    }

    .cj-sticky-header__cta-icon {
        display: flex;
        align-items: center;
        justify-content: center;

        flex: 0 0 21px;
        width: 21px;
        height: 21px;

        color: #7D7EFC;
    }

    .cj-sticky-header__cta-icon svg {
        display: block;

        width: 21px;
        height: 21px;

        fill: none;
        stroke: currentColor;
        stroke-width: 1.9;
        stroke-linecap: round;
        stroke-linejoin: round;
    }

    .cj-sticky-header__cta-short {
        display: none;
    }
}


/* Keep the full navigation visible on medium desktop widths. */
@media (min-width: 981px) and (max-width: 1180px) {

    .cj-sticky-header__inner {
        grid-template-columns:
            142px
            minmax(0, 1fr)
            112px;

        width: min(calc(100% - 24px), 1450px);
    }

    .cj-sticky-header__brand {
        margin-right: 7px;
        padding-inline: 8px;
    }

    .cj-sticky-header__logo {
        max-width: 118px !important;
        max-height: 43px !important;
    }

    .cj-sticky-navigation > .primary-menu > li > a {
        padding-right: 10px;
        padding-left: 10px;

        font-size: 0.70rem;
    }

    .cj-sticky-navigation
    > .primary-menu
    > .menu-item-has-children
    > a {
        padding-right: 23px;
    }

    .cj-sticky-navigation
    > .primary-menu
    > .menu-item-has-children
    > a::before {
        right: 9px;
    }

    .cj-sticky-header__cta {
        min-height: 42px;
        margin-left: 7px;
        padding-inline: 10px;

        font-size: 0.70rem;
    }

    .cj-sticky-header__cta-full {
        display: none;
    }

    .cj-sticky-header__cta-short {
        display: inline;
    }
}


/* Narrowest desktop: preserve the contact route without squeezing nav. */
@media (min-width: 821px) and (max-width: 980px) {

    .cj-sticky-header__inner {
        grid-template-columns:
            116px
            minmax(0, 1fr)
            48px;

        width: calc(100% - 18px);
    }

    .cj-sticky-header__brand {
        margin: 7px 5px 7px 0;
        padding-inline: 6px;

        border-radius: 9px;
    }

    .cj-sticky-header__logo {
        max-width: 98px !important;
        max-height: 40px !important;
    }

    .cj-sticky-navigation > .primary-menu > li > a {
        padding-right: 7px;
        padding-left: 7px;

        font-size: 0.64rem;
        letter-spacing: -0.01em;
    }

    .cj-sticky-navigation
    > .primary-menu
    > .menu-item-has-children
    > a {
        padding-right: 19px;
    }

    .cj-sticky-navigation
    > .primary-menu
    > .menu-item-has-children
    > a::before {
        right: 7px;
    }

    .cj-sticky-header__cta {
        width: 42px;
        min-width: 42px;
        min-height: 42px;

        margin-left: 4px;
        padding: 0;

        border-radius: 9px;
    }

    .cj-sticky-header__cta-full,
    .cj-sticky-header__cta-short {
        display: none;
    }

    .cj-sticky-header__cta-icon {
        flex-basis: 22px;
        width: 22px;
        height: 22px;
    }

    .cj-sticky-header__cta-icon svg {
        width: 22px;
        height: 22px;
    }
}
