/*
Theme Name:   Kadence Child (ALPS I.T.)
Theme URI:    https://dev.alpsit.com.au
Description:  Custom child theme for Kadence, for ALPS I.T.
Author:       ALPS I.T.
Author URI:   https://dev.alpsit.com.au
Template:     kadence
Version:      0.2.0
Text Domain:  kadence-child
*/

@import url('https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,400;9..144,500&family=Inter+Tight:wght@400;500;600;700;800&family=JetBrains+Mono:wght@400;500&display=swap');

/* ---------- ALPS brand tokens ---------- */

:root {
    --alps-eyebrow-spacing: 0.22em;
    --alps-section-y: clamp(5rem, 10vw, 9rem);

    --alps-ink:         #0B0B0F;
    --alps-ink-soft:    #141419;
    --alps-smoke:       #2A2A33;
    --alps-fog:         #8A8A93;
    --alps-paper:       #F5F2EC;
    --alps-paper-dim:   #EDE9E1;
    --alps-white:       #FFFFFF;
    --alps-accent:      #2D5BFF;
    --alps-accent-soft: #1841D6;
    --alps-hairline:      rgba(255,255,255,0.14);
    --alps-hairline-dark: rgba(11,11,15,0.12);

    --wp--preset--color--ink:         var(--alps-ink);
    --wp--preset--color--ink-soft:    var(--alps-ink-soft);
    --wp--preset--color--smoke:       var(--alps-smoke);
    --wp--preset--color--fog:         var(--alps-fog);
    --wp--preset--color--paper:       var(--alps-paper);
    --wp--preset--color--paper-dim:   var(--alps-paper-dim);
    --wp--preset--color--white:       var(--alps-white);
    --wp--preset--color--accent:      var(--alps-accent);
    --wp--preset--color--accent-soft: var(--alps-accent-soft);
    --wp--preset--font-family--serif: 'Fraunces', Georgia, serif;
    --wp--preset--font-family--sans:  'Inter Tight', 'Inter', system-ui, sans-serif;
    --wp--preset--font-family--mono:  'JetBrains Mono', ui-monospace, monospace;
}

/* ---------- Color utility overrides (beat Kadence customizer) ---------- */
.has-ink-background-color        { background-color: var(--alps-ink) !important; }
.has-ink-soft-background-color   { background-color: var(--alps-ink-soft) !important; }
.has-paper-background-color      { background-color: var(--alps-paper) !important; }
.has-paper-dim-background-color  { background-color: var(--alps-paper-dim) !important; }
.has-accent-background-color     { background-color: var(--alps-accent) !important; }
.has-ink-color       { color: var(--alps-ink) !important; }
.has-paper-color     { color: var(--alps-paper) !important; }
.has-fog-color       { color: var(--alps-fog) !important; }
.has-accent-color    { color: var(--alps-accent) !important; }

/* ---------- Typography (strong corporate — sans-driven) ---------- */
body, body.wp-site-blocks, .site, .site-container, .content-container,
.entry-content p, .entry-content li, .wp-block-column p {
    font-family: 'Inter Tight', 'Inter', system-ui, sans-serif !important;
    color: var(--alps-ink);
    letter-spacing: -0.005em;
    font-size: 1.0625rem;
    line-height: 1.55;
}

.entry-content h1, .entry-content h2, .entry-content h3,
.entry-content h4, .entry-content h5, .entry-content h6,
.wp-block-heading, h1.wp-block-heading, h2.wp-block-heading, h3.wp-block-heading {
    font-family: 'Inter Tight', 'Inter', system-ui, sans-serif !important;
    font-weight: 700 !important;
    letter-spacing: -0.035em !important;
    line-height: 1.02;
}
h1.wp-block-heading, .entry-content h1 {
    font-size: clamp(3.5rem, 9.5vw, 8rem) !important;
    font-weight: 800 !important;
    letter-spacing: -0.045em !important;
    line-height: 0.98 !important;
}
h2.wp-block-heading, .entry-content h2 {
    font-size: clamp(2.75rem, 6.5vw, 5.5rem) !important;
    letter-spacing: -0.04em !important;
    line-height: 1.02 !important;
}
h3.wp-block-heading, .entry-content h3 {
    font-size: 1.25rem !important;
    font-weight: 600 !important;
    line-height: 1.2 !important;
    letter-spacing: -0.02em !important;
}

.has-ink-background-color, .has-ink-background-color *,
.has-ink-soft-background-color, .has-ink-soft-background-color * {
    color: var(--alps-paper);
}
.has-ink-background-color .has-fog-color,
.has-ink-soft-background-color .has-fog-color { color: var(--alps-fog) !important; }

/* ---------- Section rhythm ---------- */
.alps-section {
    padding-top: var(--alps-section-y) !important;
    padding-bottom: var(--alps-section-y) !important;
}

/* ---------- Eyebrow label ---------- */
.alps-eyebrow {
    font-family: 'JetBrains Mono', ui-monospace, monospace !important;
    font-size: 0.8125rem !important;
    font-weight: 500 !important;
    text-transform: uppercase;
    letter-spacing: var(--alps-eyebrow-spacing) !important;
    color: var(--alps-fog) !important;
    margin: 0 0 2rem !important;
}

/* ---------- Hero ---------- */
.alps-hero {
    min-height: 92vh !important;
    display: flex !important;
    align-items: center !important;
    position: relative;
    padding-top: clamp(7rem, 14vw, 11rem) !important;
    padding-bottom: clamp(6rem, 12vw, 10rem) !important;
    border-bottom: 1px solid var(--alps-hairline);
    overflow: hidden;
}
.alps-hero > .wp-block-group { width: 100%; position: relative; z-index: 1; }
.alps-hero h1 { max-width: 16ch; margin-bottom: 2rem !important; }
.alps-hero p.lede {
    max-width: 54ch;
    font-size: 1.375rem !important;
    line-height: 1.45 !important;
    color: var(--alps-fog) !important;
    font-weight: 400;
}
.alps-hero .wp-block-buttons { margin-top: 3rem !important; gap: 0.75rem !important; }

/* ---------- Buttons (sharp rectangles) ---------- */
.wp-block-button .wp-block-button__link {
    border-radius: 0 !important;
    padding: 1.15rem 2rem !important;
    font-family: 'Inter Tight', 'Inter', system-ui, sans-serif !important;
    font-size: 0.8125rem !important;
    font-weight: 600 !important;
    text-transform: uppercase;
    letter-spacing: 0.14em !important;
    border: 1.5px solid var(--alps-ink) !important;
    background: var(--alps-ink) !important;
    color: var(--alps-paper) !important;
    transition: background 260ms ease, color 260ms ease, border-color 260ms ease;
}
.wp-block-button .wp-block-button__link:hover {
    background: var(--alps-accent) !important;
    border-color: var(--alps-accent) !important;
    color: var(--alps-paper) !important;
}
.wp-block-button.is-style-outline .wp-block-button__link {
    background: transparent !important;
    color: var(--alps-ink) !important;
    border: 1.5px solid var(--alps-ink) !important;
}
.wp-block-button.is-style-outline .wp-block-button__link:hover {
    background: var(--alps-ink) !important;
    color: var(--alps-paper) !important;
}
.has-ink-background-color .wp-block-button:not(.is-style-outline) .wp-block-button__link,
.has-ink-soft-background-color .wp-block-button:not(.is-style-outline) .wp-block-button__link {
    background: var(--alps-paper) !important;
    border-color: var(--alps-paper) !important;
    color: var(--alps-ink) !important;
}
.has-ink-background-color .wp-block-button:not(.is-style-outline) .wp-block-button__link:hover,
.has-ink-soft-background-color .wp-block-button:not(.is-style-outline) .wp-block-button__link:hover {
    background: var(--alps-accent) !important;
    border-color: var(--alps-accent) !important;
    color: var(--alps-paper) !important;
}
.has-ink-background-color .wp-block-button.is-style-outline .wp-block-button__link,
.has-ink-soft-background-color .wp-block-button.is-style-outline .wp-block-button__link {
    background: transparent !important;
    color: var(--alps-paper) !important;
    border: 1.5px solid var(--alps-paper) !important;
}
.has-ink-background-color .wp-block-button.is-style-outline .wp-block-button__link:hover,
.has-ink-soft-background-color .wp-block-button.is-style-outline .wp-block-button__link:hover {
    background: var(--alps-paper) !important;
    color: var(--alps-ink) !important;
}

/* ---------- Capability cards (top rule, corporate) ---------- */
.alps-card {
    border-top: 1px solid var(--alps-hairline-dark) !important;
    padding-top: 2rem !important;
    padding-right: 1rem;
}
.has-ink-background-color .alps-card,
.has-ink-soft-background-color .alps-card { border-top-color: var(--alps-hairline) !important; }
.alps-card h3 {
    font-size: 1.125rem !important;
    font-weight: 600 !important;
    margin: 0 0 1rem !important;
    letter-spacing: -0.01em !important;
}
.alps-card p {
    color: var(--alps-smoke);
    font-size: 1rem !important;
    line-height: 1.55 !important;
}

/* ---------- Work cards ---------- */
.alps-work-card {
    aspect-ratio: 4/5 !important;
    overflow: hidden;
    position: relative;
    transition: transform 600ms cubic-bezier(0.22, 1, 0.36, 1);
}
.alps-work-card .wp-block-cover__image-background {
    transition: transform 900ms cubic-bezier(0.22, 1, 0.36, 1);
}
.alps-work-card:hover .wp-block-cover__image-background { transform: scale(1.05); }
.alps-work-card:hover { transform: translateY(-4px); }
.alps-work-card .wp-block-cover__inner-container {
    padding: 2rem !important;
    align-self: end !important;
    width: 100%;
}
.alps-work-card h3 {
    font-size: 1.75rem !important;
    font-weight: 600 !important;
    margin: 0 0 0.5rem !important;
    color: var(--alps-paper) !important;
}
.alps-work-card .tags {
    font-family: 'JetBrains Mono', ui-monospace, monospace !important;
    font-size: 0.75rem !important;
    letter-spacing: 0.14em !important;
    color: rgba(245,242,236,0.8) !important;
}

/* ---------- Stats ---------- */
.alps-stat .num {
    font-family: 'Inter Tight', 'Inter', system-ui, sans-serif !important;
    font-size: clamp(3.5rem, 7vw, 6rem) !important;
    font-weight: 800 !important;
    line-height: 0.95 !important;
    letter-spacing: -0.05em !important;
    margin: 0 0 0.75rem !important;
    color: var(--alps-paper) !important;
}
.alps-stat .label {
    font-family: 'JetBrains Mono', ui-monospace, monospace !important;
    font-size: 0.75rem !important;
    text-transform: uppercase;
    letter-spacing: 0.16em !important;
    color: var(--alps-fog) !important;
    margin: 0 !important;
}

/* ---------- Quote / testimonial (one editorial serif accent) ---------- */
.alps-quote p:not(.cite) {
    font-family: 'Fraunces', Georgia, serif !important;
    font-size: 1.5rem !important;
    line-height: 1.4 !important;
    letter-spacing: -0.015em !important;
    font-weight: 400 !important;
    color: var(--alps-ink) !important;
    margin: 0 0 1.25rem !important;
}
.alps-quote .cite {
    font-family: 'JetBrains Mono', ui-monospace, monospace !important;
    font-size: 0.75rem !important;
    text-transform: uppercase;
    letter-spacing: 0.14em !important;
    color: var(--alps-smoke) !important;
    margin: 1.5rem 0 0 !important;
}

/* ---------- CTA section ---------- */
.alps-cta h2 {
    font-size: clamp(3rem, 8.5vw, 7rem) !important;
    max-width: 15ch !important;
    font-weight: 800 !important;
    letter-spacing: -0.045em !important;
}

/* ---------- GSAP reveal initial states ---------- */
.js [data-reveal]              { opacity: 0; transform: translateY(32px); will-change: opacity, transform; }
.js [data-reveal-stagger] > *  { opacity: 0; transform: translateY(28px); will-change: opacity, transform; }
.js .alps-work-card            { opacity: 0; transform: translateY(40px); will-change: opacity, transform; }
.js .alps-stat .num            { opacity: 0; transform: translateY(20px); }

/* No-JS / reduced motion fallback */
@media (prefers-reduced-motion: reduce) {
    .js [data-reveal], .js [data-reveal-stagger] > *, .js .alps-work-card, .js .alps-stat .num {
        opacity: 1 !important; transform: none !important;
    }
}

/* ---------- Section dividers ---------- */
.alps-section + .alps-section { border-top: 1px solid var(--alps-hairline-dark); }
.has-ink-background-color + .alps-section,
.alps-section + .has-ink-background-color,
.has-ink-soft-background-color + .alps-section,
.alps-section + .has-ink-soft-background-color { border-top: none; }

/* =============================================================== */
/* DILIGENT-STYLE VARIANT — scoped to .diligent-page body class     */
/* =============================================================== */

:root {
    --diligent-lime:      #C4E538;
    --diligent-lime-soft: #F4F7D0;
    --diligent-cream:     #FDFBE8;
    --diligent-mint:      #E8F5CC;
}

body.diligent-page { background: #FFFFFF; }

/* Hero — split pastel */
.diligent-hero {
    background: linear-gradient(135deg, var(--diligent-cream) 0%, var(--diligent-mint) 100%);
    padding-top: clamp(5rem, 10vw, 9rem) !important;
    padding-bottom: clamp(5rem, 10vw, 9rem) !important;
    position: relative;
    overflow: hidden;
}
.diligent-hero h1.wp-block-heading {
    font-size: clamp(3rem, 7vw, 6rem) !important;
    font-weight: 700 !important;
    line-height: 1.05 !important;
    letter-spacing: -0.035em !important;
    color: var(--alps-ink) !important;
    max-width: 14ch;
    margin-bottom: 1.5rem !important;
}
.diligent-hero p:not(.diligent-badge) {
    font-size: 1.0625rem !important;
    color: #4A4A52 !important;
    max-width: 48ch;
    line-height: 1.6 !important;
}
.diligent-hero .wp-block-image img {
    border-radius: 9999px 9999px 60px 60px;
    width: 100%;
    height: auto;
    object-fit: cover;
    aspect-ratio: 3/4;
}

/* Pill badge */
.diligent-badge {
    display: inline-block !important;
    background: var(--diligent-lime) !important;
    color: var(--alps-ink) !important;
    font-family: 'Inter Tight', system-ui, sans-serif !important;
    font-size: 0.8125rem !important;
    font-weight: 600 !important;
    padding: 0.4rem 1.1rem !important;
    border-radius: 999px !important;
    letter-spacing: 0.02em !important;
    text-transform: none !important;
    margin-bottom: 1.5rem !important;
}
.has-ink-background-color .diligent-badge {
    background: var(--diligent-lime) !important;
    color: var(--alps-ink) !important;
}

/* Services — dark section with 3x2 grid */
.diligent-services {
    background: var(--alps-ink) !important;
    padding: clamp(5rem, 9vw, 8rem) 0 !important;
    text-align: center;
}
.diligent-services h2.wp-block-heading {
    color: var(--alps-paper) !important;
    font-size: clamp(2.25rem, 4.5vw, 3.5rem) !important;
    font-weight: 700 !important;
    letter-spacing: -0.02em !important;
    line-height: 1.1 !important;
    margin: 0.5rem 0 3rem !important;
    text-align: center;
}
.diligent-service-card {
    padding: 2.25rem 1.75rem !important;
    border: 1px solid rgba(255,255,255,0.08) !important;
    border-radius: 8px;
    text-align: center;
    transition: border-color 320ms ease, transform 320ms ease;
}
.diligent-service-card:hover {
    border-color: var(--diligent-lime) !important;
    transform: translateY(-4px);
}
.diligent-service-card .icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 64px; height: 64px;
    border-radius: 12px;
    background: rgba(196,229,56,0.12);
    color: var(--diligent-lime) !important;
    font-size: 1.75rem;
    font-weight: 700;
    margin: 0 auto 1.25rem !important;
    font-family: 'JetBrains Mono', monospace !important;
}
.diligent-service-card h3 {
    color: var(--alps-paper) !important;
    font-size: 1.125rem !important;
    font-weight: 600 !important;
    margin: 0 0 0.65rem !important;
    text-align: center;
}
.diligent-service-card p {
    color: rgba(245,242,236,0.55) !important;
    font-size: 0.9375rem !important;
    line-height: 1.55 !important;
    margin: 0 !important;
    text-align: center;
}

/* Stats split */
.diligent-stats-block {
    background: #FFFFFF !important;
    padding: clamp(4.5rem, 9vw, 8rem) 0 !important;
}
.diligent-stat-big .num {
    font-size: clamp(3rem, 6vw, 5rem) !important;
    font-weight: 800 !important;
    line-height: 1 !important;
    letter-spacing: -0.04em !important;
    color: var(--alps-ink) !important;
    margin: 0 0 0.5rem !important;
}
.diligent-stat-big .label {
    font-size: 0.9375rem !important;
    color: #6A6A72 !important;
    margin: 0 !important;
}

/* Work grid — rounded tiles */
.diligent-work-section {
    background: #FAFAFA !important;
    padding: clamp(4.5rem, 9vw, 8rem) 0 !important;
    text-align: center;
}
.diligent-work-tile {
    border-radius: 20px !important;
    overflow: hidden;
    aspect-ratio: 3/4 !important;
    transition: transform 600ms cubic-bezier(0.22, 1, 0.36, 1);
}
.diligent-work-tile:hover { transform: translateY(-6px); }
.diligent-work-tile .wp-block-cover__inner-container { padding: 1.5rem !important; align-self: end !important; width: 100%; }

/* CTA band */
.diligent-cta-band {
    background: var(--alps-ink) !important;
    padding: clamp(4rem, 7vw, 6rem) 0 !important;
    position: relative;
}
.diligent-cta-band h2 {
    font-size: clamp(2rem, 4vw, 3.25rem) !important;
    font-weight: 700 !important;
    color: var(--alps-paper) !important;
    max-width: 20ch;
    margin: 0 !important;
    line-height: 1.1 !important;
}
.diligent-cta-band .wp-block-button .wp-block-button__link {
    background: var(--diligent-lime) !important;
    border-color: var(--diligent-lime) !important;
    color: var(--alps-ink) !important;
    border-radius: 6px !important;
    padding: 1rem 1.75rem !important;
}
.diligent-cta-band .wp-block-button .wp-block-button__link:hover {
    background: var(--alps-paper) !important;
    border-color: var(--alps-paper) !important;
}

/* "Featured Services" pill centered */
.diligent-section-eyebrow {
    display: inline-block !important;
    background: var(--diligent-lime) !important;
    color: var(--alps-ink) !important;
    font-size: 0.8125rem !important;
    font-weight: 600 !important;
    padding: 0.4rem 1.1rem !important;
    border-radius: 999px !important;
    margin: 0 auto 1rem !important;
    text-align: center;
}
