/* ============================================================
   service-style.css
   Shared stylesheet for the four commercial-renovation service pages:
   Shop Fitouts / Factory Renovations / Office & Commercial Interiors /
   General Commercial Renovations.
   Brand: gold #d8a43b on black #111 / paper #f7f5f0. Poppins display,
   Inter body — carried over from the site's existing type system,
   with a larger, more readable scale throughout.
   ============================================================ */

.cr-page {
    --gold: #d8a43b;
    --gold-dark: #b3852a;
    --gold-pale: #f3e6c8;
    --black: #121110;
    --black-2: #0c0a0a;
    --white: #ffffff;
    --paper: #f7f5f0;
    --line: rgba(17, 17, 17, .12);
    --line-onblack: rgba(255, 255, 255, .14);
    --muted: #5b5955;

    /* ---- Type scale — bumped up from the original for on-page legibility ---- */
    --fs-h1: clamp(2.6rem, 3.8vw + 1.5rem, 4.6rem);
    /* hero headline */

    --fs-h2: clamp(2.1rem, 2.1vw + 1.4rem, 3.25rem);
    /* section headings */

    --fs-h3: clamp(1.35rem, .55vw + 1.1rem, 1.6rem);
    /* card / cell headings */

    --fs-lead: clamp(1.20rem, .4vw + 1.3rem, 1.9rem);
    /* lead text */
    /* section intro paragraphs */
    --fs-body: 1.5rem;
    /* card / cell paragraphs */
    --fs-small: 1.42rem;
    /* fine print / meta */
    --fs-label: 1.45rem;
    /* eyebrows, field labels, tags */

    font-family: 'Inter', sans-serif;
    font-size: 17px;
    line-height: 1.6;
    color: var(--black);
    overflow-x: hidden;
}

.cr-page * {
    box-sizing: border-box;
}

.cr-page h1,
.cr-page h2,
.cr-page h3 {
    font-family: 'Poppins', sans-serif;
    margin: 0;
}

.cr-page p {
    margin: 0;
}

.cr-page .accent {
    font-style: italic;
    font-weight: 500;
    color: var(--gold-dark);
}

.cr-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    font-size: var(--fs-label);
    font-weight: 600;
    letter-spacing: .04em;
    color: var(--gold-dark);
    margin-bottom: 1.1rem;
}

.cr-eyebrow::before {
    content: "";
    width: 30px;
    height: 1px;
    background: var(--gold-dark);
    flex: none;
}

.cr-eyebrow.on-dark {
    color: var(--gold);
}

.cr-eyebrow.on-dark::before {
    background: var(--gold);
}

/* ---------- buttons ---------- */
.btn-cr {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 14px;
    padding: 16px 26px;
    border-radius: 999px;
    background: var(--black-2);
    color: #fff;
    border: 1px solid var(--black-2);
    font-size: 1.4rem;
    font-weight: 600;
    letter-spacing: .01em;
    text-decoration: none;
    transition: transform .3s ease, background .3s ease;
    white-space: nowrap;
}

.btn-cr:hover {
    transform: translateY(-2px);
    background: #000;
    color: #fff;
}

.btn-cr .arrow {
    width: 22px;
    height: 22px;
    border-radius: 50%;
    background: #fff;
    color: var(--black-2);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: .74rem;
    transition: transform .3s ease;
    flex: none;
}

.btn-cr:hover .arrow {
    transform: rotate(-45deg);
}

.btn-cr.ghost {
    background: transparent;
    color: #fff;
    border: 1px solid rgba(255, 255, 255, .45);
}

.btn-cr.ghost .arrow {
    background: #fff;
    color: var(--black-2);
}

.btn-cr.ghost:hover {
    background: #fff;
    color: var(--black-2);
}

.btn-cr.ghost:hover .arrow {
    background: var(--black-2);
    color: #fff;
}

.btn-cr.gold {
    background: var(--gold);
    border-color: var(--gold);
    color: var(--black);
}

.btn-cr.gold .arrow {
    background: var(--black);
    color: var(--gold);
}

.btn-cr.gold:hover {
    background: var(--gold-dark);
    border-color: var(--gold-dark);
    color: var(--black);
}

.btn-cr.outline-dark {
    background: transparent;
    color: var(--black);
    border: 1px solid rgba(17, 17, 17, .3);
}

.btn-cr.outline-dark .arrow {
    background: var(--black);
    color: #fff;
}

.btn-cr.outline-dark:hover {
    background: var(--black);
    color: #fff;
}

@media (max-width: 575px) {
    .btn-cr {
        width: 100%;
    }
}

/* ---------- hero ---------- */
.cr-hero {
    position: relative;
    background: var(--black-2);
    color: #fff;
    overflow: hidden;
}

.cr-hero__media {
    position: absolute;
    inset: 0;
    background-size: cover;
    background-position: center;
}

.cr-hero__media::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(12, 10, 10, .68) 0%, rgba(12, 10, 10, .5) 45%, rgba(12, 10, 10, .94) 100%);
}

/* large faint service index, set behind the headline as a structural mark
   (this page is one of a fixed set of four services, so the number is
   meaningful — not decoration) */
.cr-hero__index {
    position: absolute;
    top: -2.4rem;
    right: -.5rem;
    z-index: 1;
    font-family: 'Poppins', sans-serif;
    font-weight: 800;
    font-size: clamp(7rem, 16vw, 15rem);
    line-height: 1;
    color: rgba(255, 255, 255, .05);
    -webkit-text-stroke: 1px rgba(255, 255, 255, .1);
    pointer-events: none;
    user-select: none;
    display: none;
}

@media (max-width: 767px) {
    .cr-hero__index {
        display: none;
    }
}

.cr-hero__inner {
    position: relative;
    z-index: 2;
    padding: 130px 0 52px;
}

@media (min-width:768px) {
    .cr-hero__inner {
        padding: 120px 0 64px;
    }
}

@media (min-width:992px) {
    .cr-hero__inner {
        padding: 170px 0 76px;
    }
}

.cr-hero h1 {
    font-size: var(--fs-h1);
    font-weight: 700;
    line-height: 1.1;
    letter-spacing: -.015em;
    margin-bottom: 22px;
}

.cr-hero__sub {
    font-size: var(--fs-lead);
    line-height: 1.65;
    color: rgba(255, 255, 255, .82);
    max-width: 50ch;
    margin-bottom: 30px;
}

.cr-hero__ctas {
    display: flex;
    gap: 14px;
    flex-wrap: wrap;
}

@media (max-width: 991px) {
    .cr-hero__ctas .btn-cr {
        flex: 1 1 auto;
    }
}

/* service switcher pills — lets a visitor move between the four services
   without leaving the hero */
.svc-pills {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 26px;
}

.svc-pill {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 8px 16px 8px 8px;
    border-radius: 999px;
    background: var(--gold);
    border-color: var(--gold);
    color: rgba(14, 13, 13, 0.938);
    font-size: 1.3rem;
    font-weight: 500;
    text-decoration: none;
    transition: border-color .25s ease, color .25s ease, background .25s ease;
}

.svc-pill span.num {
    width: 22px;
    height: 22px;
    border-radius: 50%;
    background: rgba(255, 255, 255, .1);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: .72rem;
    font-weight: 700;
    flex: none;
}

.svc-pill:hover {
    color: #fff;
    border-color: rgba(255, 255, 255, .4);
}

.svc-pill.is-current {
    background: var(--gold);
    border-color: var(--gold);
    color: var(--black);
    font-weight: 600;
}

.svc-pill.is-current span.num {
    background: rgba(17, 17, 17, .18);
    color: var(--black);
}

/* floating form card */
.cr-form-card {
    background: rgba(247, 245, 240, .98);
    backdrop-filter: blur(16px);
    color: var(--black);
    border-radius: 6px;
    padding: clamp(24px, 4vw, 38px);
    box-shadow: 0 30px 70px rgba(0, 0, 0, .4);
    position: relative;
    z-index: 2;
}

.cr-form-card::before {
    content: "";
    position: absolute;
    top: -1px;
    left: -1px;
    right: -1px;
    height: 3px;
    background: var(--gold);
}

.cr-form-card h3 {
    font-size: 1.35rem;
    font-weight: 700;
    margin-bottom: 8px;
    line-height: 1.3;
}

.cr-form-card>p {
    font-size: var(--fs-small);
    color: var(--muted);
    margin-bottom: 1.6rem;
    line-height: 1.55;
}

.cr-field {
    margin-bottom: 1.2rem;
}

.cr-field label {
    display: block;
    font-size: .74rem;
    font-weight: 600;
    color: var(--black);
    margin-bottom: .45rem;
}

.cr-field input,
.cr-field textarea {
    width: 100%;
    background: transparent;
    border: none;
    border-bottom: 1px solid rgba(17, 17, 17, .25);
    padding: .5rem 0 .75rem;
    font-family: inherit;
    font-size: 1rem;
    color: var(--black);
    outline: none;
    transition: border-color .25s ease;
    border-radius: 0;
    resize: none;
}

.cr-field input:focus,
.cr-field textarea:focus {
    border-color: var(--gold-dark);
}

.cr-field input::placeholder,
.cr-field textarea::placeholder {
    color: rgba(17, 17, 17, .38);
    font-size: .96rem;
}

/* stats ticker */
.cr-ticker {
    position: relative;
    z-index: 2;
    border-top: 1px solid var(--line-onblack);
}

.cr-ticker .cell {
    padding: 24px 18px;
    border-right: 1px solid var(--line-onblack);
    border-bottom: 1px solid var(--line-onblack);
    display: flex;
    flex-direction: column;
    gap: 5px;
}

.cr-ticker strong {
    font-size: clamp(1.5rem, 1.6vw + 1rem, 2.15rem);
    font-weight: 700;
    letter-spacing: -.02em;
    line-height: 1.1;
    color: #fff;
}

.cr-ticker span {
    font-size: 1.2rem;
    font-weight: 500;
    color: rgba(255, 255, 255, .65);
}

@media (min-width: 768px) {
    .cr-ticker .cell {
        border-bottom: none;
    }

    .cr-ticker .cell:nth-child(4n) {
        border-right: none;
    }
}

@media (max-width: 767px) {
    .cr-ticker .cell:nth-child(2n) {
        border-right: none;
    }

    .cr-ticker .cell:nth-last-child(-n+2) {
        border-bottom: none;
    }
}

/* ---------- section head ---------- */
.cr-section {
    padding: clamp(56px, 7vw, 120px) 0;
}

.cr-section-head {
    margin-bottom: clamp(38px, 5vw, 56px);
}

.cr-section-head .col-lg-4 {
    margin-bottom: 1.4rem;
}

@media (min-width: 992px) {
    .cr-section-head .col-lg-4 {
        margin-bottom: 0;
    }
}

.cr-section-head h2 {
    font-size: var(--fs-h2);
    line-height: 1.15;
    letter-spacing: -.015em;
    font-weight: 700;
}

.cr-section-head p {
    font-size: var(--fs-lead);
    line-height: 1.65;
    color: var(--muted);
    max-width: 48ch;
}

.cr-section-head.on-dark p {
    color: rgba(255, 255, 255, .7);
}

.cr-section-head.on-dark h2 {
    color: #fff;
}

.bg-paper {
    background: var(--paper);
}

.bg-black {
    background: var(--black-2);
    color: #fff;
}

.bg-black p {
    color: rgba(255, 255, 255, .7);
}

/* breadcrumb */
.cr-breadcrumb {
    padding: 16px 0;
    border-bottom: 1px solid var(--line);
    font-size: var(--fs-small);
    color: var(--muted);
}

.cr-breadcrumb a {
    color: var(--muted);
    text-decoration: none;
}

.cr-breadcrumb a:hover {
    color: var(--gold-dark);
}

.cr-breadcrumb .current {
    color: var(--black);
    font-weight: 600;
}

/* ---------- hairline grid ---------- */
.cr-grid {
    display: grid;
    grid-template-columns: repeat(var(--cols, 1), 1fr);
    border-top: 1px solid var(--line);
    border-left: 1px solid var(--line);
}

.cr-grid--2 {
    --cols: 2;
}

.cr-grid--3 {
    --cols: 3;
}

.cr-grid--4 {
    --cols: 4;
}

@media (max-width: 991px) {

    .cr-grid--3,
    .cr-grid--4 {
        --cols: 2;
    }
}

@media (max-width: 575px) {
    .cr-grid {
        --cols: 1;
    }
}

.cr-grid.on-dark {
    border-color: var(--line-onblack);
}

.cr-grid .cr-cell {
    border-right: 1px solid var(--line);
    border-bottom: 1px solid var(--line);
    padding: clamp(1.6rem, 2.4vw, 2.5rem) clamp(1.35rem, 2vw, 2rem);
    transition: background .35s ease;
    position: relative;
}

.cr-grid.on-dark .cr-cell {
    border-color: var(--line-onblack);
}

.cr-grid .cr-cell:hover {
    background: rgba(17, 17, 17, .02);
}

.cr-grid.on-dark .cr-cell:hover {
    background: rgba(255, 255, 255, .03);
}

.cr-cell .idx {
    font-family: 'Poppins', sans-serif;
    font-weight: 800;
    font-size: 1.9rem;
    color: #e7e2d8;
    display: block;
    margin-bottom: 1rem;
}

.cr-grid.on-dark .cr-cell .idx-chip {
    width: 38px;
    height: 38px;
    border-radius: 50%;
    border: 1px solid rgba(255, 255, 255, .4);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: .82rem;
    font-weight: 700;
    color: rgba(255, 255, 255, .88);
    margin-bottom: 1.5rem;
}

.cr-cell h3 {
    font-size: var(--fs-h3);
    font-weight: 700;
    letter-spacing: -.01em;
    margin-bottom: .6rem;
    line-height: 1.3;
}

.cr-cell p {
    font-size: var(--fs-body);
    line-height: 1.62;
    color: var(--muted);
}

.cr-grid.on-dark .cr-cell p {
    color: rgba(255, 255, 255, .65);
}

.cr-service-cell {
    text-decoration: none;
    color: inherit;
    display: block;
}

.cr-service-cell .svc-num {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: var(--fs-label);
    font-weight: 700;
    color: var(--muted);
    margin-bottom: 1.5rem;
}

.cr-service-cell .svc-icon {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    border: 1px solid var(--black);
    display: flex;
    align-items: center;
    justify-content: center;
    flex: none;
}

.cr-service-cell.is-active {
    background: rgba(216, 164, 59, .08);
}

.cr-service-cell.is-active .svc-icon {
    background: var(--gold);
    border-color: var(--gold);
    color: var(--black);
}

.cr-service-cell h3 {
    font-size: var(--fs-h3);
    font-weight: 600;
    margin-bottom: .65rem;
}

.cr-service-cell p {
    color: var(--muted);
    font-size: var(--fs-body);
    line-height: 1.65;
}

/* ---------- what's included: feature checklist ---------- */
.svc-feature-wrap {
    background: #fff;
    border: 1px solid var(--line);
}

.svc-feature-copy {
    padding: clamp(2rem, 4vw, 3.4rem);
    display: flex;
    flex-direction: column;
    justify-content: center;
    height: 100%;
}

.svc-feature-copy h2 {
    font-size: var(--fs-h2);
    line-height: 1.15;
    letter-spacing: -.015em;
    margin-bottom: 1.1rem;
}

.svc-feature-copy p {
    font-size: var(--fs-lead);
    line-height: 1.65;
    color: var(--muted);
    margin-bottom: 1.8rem;
    max-width: 44ch;
}

.svc-feature-list {
    list-style: none;
    margin: 0 0 0;
    padding: clamp(1.6rem, 3vw, 2.6rem);
    background: var(--paper);
    border-left: 1px solid var(--line);
}

.svc-feature-list li {
    display: flex;
    align-items: flex-start;
    gap: 14px;
    font-size: 1.36rem;
    font-weight: 500;
    color: var(--black);
    padding: 14px 0;
    border-bottom: 1px solid var(--line);
}

.svc-feature-list li:last-child {
    border-bottom: none;
}

.svc-feature-list li .tick {
    width: 26px;
    height: 26px;
    border-radius: 50%;
    background: var(--gold);
    color: var(--black);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: .78rem;
    font-weight: 700;
    flex: none;
    margin-top: 2px;
}

@media (max-width: 767px) {
    .svc-feature-list {
        border-left: none;
        border-top: 1px solid var(--line);
    }
}

/* ---------- featured projects ---------- */
.cr-proj {
    position: relative;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    background: #fff;
}

.cr-proj__img {
    aspect-ratio: 4/3;
    overflow: hidden;
    position: relative;
}

.cr-proj__img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 1.1s cubic-bezier(.2, .7, .2, 1);
    filter: saturate(.92);
}

.cr-proj:hover .cr-proj__img img {
    transform: scale(1.06);
}

.cr-proj__tag {
    position: absolute;
    top: 14px;
    left: 14px;
    z-index: 2;
    background: rgba(255, 255, 255, .95);
    padding: 6px 14px;
    font-size: .74rem;
    font-weight: 600;
    border-radius: 2px;
}

.cr-proj__body {
    padding: 18px 4px 4px;
}

.cr-proj__meta {
    display: flex;
    justify-content: space-between;
    font-size: .78rem;
    font-weight: 600;
    color: var(--muted);
    margin-bottom: 8px;
}

.cr-proj__title {
    font-size: var(--fs-h3);
    font-weight: 600;
    letter-spacing: -.01em;
    line-height: 1.35;
}

/* decorative faint rings on dark sections */
.cr-ring {
    position: absolute;
    border: 1px solid var(--line-onblack);
    border-radius: 50%;
    pointer-events: none;
    z-index: 1;
}

@media (max-width: 767px) {
    .cr-ring {
        display: none;
    }
}

/* CTA band */
.cr-cta {
    padding: clamp(58px, 8vw, 120px) 0;
    text-align: center;
}

.cr-cta h2 {
    font-size: var(--fs-h2);
    letter-spacing: -.015em;
    margin-bottom: 16px;
}

.cr-cta p {
    color: var(--muted);
    font-size: var(--fs-lead);
    margin-bottom: 32px;
}

.cr-cta__ctas {
    display: flex;
    gap: 14px;
    justify-content: center;
    flex-wrap: wrap;
}

/* ---------- contact strip ---------- */
.cr-contact {
    border-top: 1px solid var(--line-onblack);
}

.cr-contact .cell {
    padding: clamp(1.6rem, 3vw, 2.4rem);
    border-right: 1px solid var(--line-onblack);
}

.cr-contact .cell:last-child {
    border-right: none;
}

@media (max-width: 767px) {
    .cr-contact .cell {
        border-right: none;
        border-bottom: 1px solid var(--line-onblack);
    }

    .cr-contact .cell:last-child {
        border-bottom: none;
    }
}

.cr-contact .cell span.label {
    display: block;
    font-size: var(--fs-label);
    font-weight: 600;
    color: var(--gold);
    margin-bottom: .6rem;
}

.cr-contact .cell p,
.cr-contact .cell a {
    font-size: 1.05rem;
    font-weight: 500;
    color: #fff;
    line-height: 1.55;
    text-decoration: none;
}

.cr-contact .cell a:hover {
    color: var(--gold);
}

/* ---------- responsive polish ---------- */
@media (max-width: 767px) {
    .cr-page {
        font-size: 16px;
    }

    .svc-feature-copy,
    .svc-feature-list {
        padding: 1.8rem 1.4rem;
    }
}

/* ============ service hero video css */
/* =========================================
   COMMON SERVICE HERO VIDEO
   Use on ALL service pages
========================================= */

.cr-service-video {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    overflow: hidden;
    z-index: 0;
    pointer-events: none;
}

.cr-service-video__bg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

.cr-service-video__overlay {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.52);
    z-index: 1;
}

/* Keep all hero content above video */
.cr-hero {
    position: relative;
    overflow: hidden;
}

.cr-hero>*:not(.cr-service-video) {
    position: relative;
    z-index: 2;
}

/* Mobile */
@media (max-width: 767px) {
    .cr-service-video__overlay {
        background: rgba(0, 0, 0, 0.60);
    }

    .cr-service-video__bg {
        object-position: center center;
    }
}