/* ==========================================================
   LOTUS SIGN & PRINT - SERVICE PAGES
   Shared by all six service pages.

   1. Section system  (padding, background, label, title, sub text)
   2. Service cards
   3. Industry cards
   4. Why choose us cards
   5. FAQ accordion
   6. Intro image
   ========================================================== */


/* ==========================================================
   1. SECTION SYSTEM
   One definition controls every service-page section.

   Markup:
   <section class="svc-section svc-section--light|grey|dark">
       <div class="container-xl">
           <div class="svc-head">
               <span class="svc-label">LABEL</span>
               <h2 class="svc-title">Title</h2>
               <p class="svc-sub">Optional sub text</p>
           </div>
           ...
       </div>
   </section>
========================================================== */

.svc-section {
    /* spacing */
    --svc-pad: 80px;
    --svc-head-gap: 48px;

    /* colours (light is the default) */
    --svc-bg: #fff;
    --svc-title-color: #302b32;
    --svc-title-accent: #a78346;
    --svc-text-color: #68636a;
    --svc-label-color: #a78346;

    position: relative;
    padding: var(--svc-pad) 0;
    background: var(--svc-bg);
}

.svc-section--grey {
    --svc-bg: #f8f7f4;
}

.svc-section--dark {
    --svc-bg: #101d30;
    --svc-title-color: #fff;
    --svc-title-accent: #e8ca94;
    --svc-text-color: #b7c0cc;
    --svc-label-color: #cda45e;

    overflow: hidden;
    isolation: isolate;
}

/* Section heading wrapper (centred) */

.svc-head {
    max-width: 760px;
    margin: 0 auto var(--svc-head-gap);
    text-align: center;
}

/* Label (small uppercase line above the title) */

.svc-label {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 14px;
    color: var(--svc-label-color);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 2.5px;
    line-height: 1.4;
    text-transform: uppercase;
}

.svc-label::before,
.svc-head .svc-label::after {
    content: "";
    width: 26px;
    height: 1px;
    background: currentColor;
}

/* Title */

.svc-title {
    margin: 0 0 22px;
    color: var(--svc-title-color);
    font-family: "Outfit", sans-serif;
    font-size: clamp(28px, 3.4vw, 42px);
    font-weight: 700;
    line-height: 1.2;
}

.svc-title span,
.svc-title em {
    color: var(--svc-title-accent);
    font-style: normal;
}

.svc-head .svc-title {
    margin-bottom: 0;
}

/* Sub text */

.svc-sub {
    max-width: 640px;
    margin: 16px auto 0;
    color: var(--svc-text-color);
    font-size: 16px;
    line-height: 1.8;
}

/* Body paragraph (intro section) */

.svc-text {
    margin: 0 0 16px;
    color: var(--svc-text-color);
    font-size: 16px;
    line-height: 1.9;
}

.svc-text:last-child {
    margin-bottom: 0;
}

/* Dark section decoration */

.svc-section--dark::before {
    content: "";
    position: absolute;
    top: -250px;
    right: -180px;
    width: 550px;
    height: 550px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(205, 164, 94, .12), transparent 70%);
    pointer-events: none;
}

.svc-section--dark::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    background-image: radial-gradient(rgba(255, 255, 255, .09) 1px, transparent 1px);
    background-size: 32px 32px;
    opacity: .15;
    pointer-events: none;
}

.svc-section--dark > .container-xl {
    position: relative;
    z-index: 1;
}

/* Tablet */

@media (max-width: 991.98px) {
    .svc-section {
        --svc-pad: 64px;
        --svc-head-gap: 40px;
    }
}

/* Mobile */

@media (max-width: 575.98px) {
    .svc-section {
        --svc-pad: 52px;
        --svc-head-gap: 32px;
    }

    .svc-label {
        font-size: 11px;
        letter-spacing: 2px;
    }

    .svc-label::before,
    .svc-head .svc-label::after {
        width: 18px;
    }

    .svc-sub,
    .svc-text {
        font-size: 15px;
    }
}


/* ==========================================================
   2. SERVICE CARDS
========================================================== */

.svc-card {
    position: relative;
    height: 100%;
    overflow: hidden;
    background: #fff;
    border: 1px solid #ebe5dc;
    border-radius: 16px;
    transition: transform .35s ease, box-shadow .35s ease, border-color .35s ease;
}

.svc-card:hover {
    transform: translateY(-6px);
    border-color: #d4b77f;
    box-shadow: 0 18px 40px rgba(35, 25, 30, .10);
}

.svc-card::after {
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    width: 0;
    height: 3px;
    background: #c9a661;
    transition: width .4s ease;
}

.svc-card:hover::after {
    width: 100%;
}

.svc-card-img {
    position: relative;
    height: 240px;
    overflow: hidden;
    background: #eeeae4;
}

.svc-card-img::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(25, 20, 28, .30), transparent 60%);
    pointer-events: none;
}

.svc-card-img img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .6s ease;
}

.svc-card:hover .svc-card-img img {
    transform: scale(1.06);
}

.svc-card-num {
    position: absolute;
    top: 18px;
    left: 18px;
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    border-radius: 10px;
    background: #c9a661;
    color: #29222c;
    font-family: "Outfit", sans-serif;
    font-size: 15px;
    font-weight: 700;
}

.svc-card-body {
    padding: 20px 20px 24px;
}

.svc-card-body h3 {
    margin: 0 0 8px;
    color: #302b32;
    font-family: "Outfit", sans-serif;
    font-size: 21px;
    font-weight: 700;
    line-height: 1.35;
}

.svc-card-body p {
    margin: 0;
    color: #68636a;
    font-size: 16px;
    line-height: 1.7;
}

@media (max-width: 767.98px) {
    .svc-card-img {
        height: 220px;
    }

    .svc-card-body h3 {
        font-size: 20px;
    }

    .svc-card-body p {
        font-size: 15px;
    }
}


/* ==========================================================
   3. INDUSTRY CARDS
========================================================== */

.svc-industry {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    height: 100%;
    min-height: 185px;
    padding: 28px 18px;
    background: #fff;
    border: 1px solid #ebe6dd;
    border-radius: 14px;
    text-align: center;
    transition: transform .3s ease, border-color .3s ease, box-shadow .3s ease;
}

.svc-industry:hover {
    transform: translateY(-5px);
    border-color: #c9a661;
    box-shadow: 0 12px 30px rgba(40, 30, 20, .07);
}

.svc-industry-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 62px;
    height: 62px;
    margin-bottom: 20px;
    border-radius: 14px;
    background: linear-gradient(110deg, #c5007c, #6d0059);
    color: #fff;
    font-size: 25px;
}

.svc-industry h3 {
    margin: 0;
    color: #302b32;
    font-family: "Outfit", sans-serif;
    font-size: 18px;
    font-weight: 600;
    line-height: 1.45;
}

@media (max-width: 991.98px) {
    .svc-industry {
        min-height: 170px;
    }
}

@media (max-width: 767.98px) {
    .svc-industry {
        min-height: 155px;
        padding: 22px 12px;
    }

    .svc-industry-icon {
        width: 52px;
        height: 52px;
        margin-bottom: 14px;
        font-size: 22px;
    }

    .svc-industry h3 {
        font-size: 15px;
    }
}


/* ==========================================================
   4. WHY CHOOSE US CARDS  (inside .svc-section--dark)
========================================================== */

.svc-why-card {
    position: relative;
    display: flex;
    flex-direction: column;
    height: 100%;
    min-height: 245px;
    padding: 30px;
    overflow: hidden;
    background: linear-gradient(145deg, #203149 0%, #17263a 100%);
    border: 1px solid rgba(255, 255, 255, .09);
    border-radius: 18px;
    transition: transform .35s ease, border-color .35s ease, box-shadow .35s ease;
}

.svc-why-card:hover {
    transform: translateY(-7px);
    border-color: rgba(205, 164, 94, .65);
    box-shadow: 0 20px 45px rgba(0, 0, 0, .22);
}

.svc-why-card::before {
    content: "";
    position: absolute;
    top: 0;
    left: 30px;
    width: 0;
    height: 3px;
    background: #cda45e;
    transition: width .4s ease;
}

.svc-why-card:hover::before {
    width: 75px;
}

.svc-why-num {
    position: absolute;
    top: 24px;
    right: 26px;
    color: rgba(255, 255, 255, .055);
    font-size: 36px;
    font-weight: 700;
    line-height: 1;
    pointer-events: none;
}

.svc-why-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 62px;
    width: 62px;
    height: 62px;
    margin-bottom: 25px;
    border: 1px solid rgba(205, 164, 94, .18);
    border-radius: 15px;
    background: rgba(205, 164, 94, .09);
    color: #e8ca94;
    font-size: 25px;
    transition: all .35s ease;
}

.svc-why-card:hover .svc-why-icon {
    background: #cda45e;
    color: #101d30;
    transform: rotate(-5deg);
}

.svc-why-body {
    position: relative;
    z-index: 2;
}

.svc-why-body h3 {
    margin-bottom: 12px;
    color: #fff;
    font-size: 20px;
    font-weight: 700;
    line-height: 1.35;
}

.svc-why-body p {
    margin: 0;
    color: #b7c0cc;
    font-size: 14px;
    line-height: 1.8;
}

@media (max-width: 991.98px) {
    .svc-why-card {
        padding: 25px;
    }
}

@media (max-width: 767.98px) {
    .svc-why-card {
        min-height: 0;
        padding: 26px;
        border-radius: 15px;
    }

    .svc-why-icon {
        flex-basis: 55px;
        width: 55px;
        height: 55px;
        margin-bottom: 20px;
        font-size: 22px;
    }

    .svc-why-body h3 {
        font-size: 19px;
    }
}


/* ==========================================================
   5. FAQ ACCORDION
========================================================== */

.svc-faq {
    max-width: 950px;
    margin: 0 auto;
}

.svc-faq .accordion {
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.svc-faq .accordion-item {
    overflow: hidden;
    background: #fff;
    border: 1px solid #eae5dc;
    border-radius: 12px !important;
    box-shadow: 0 5px 22px rgba(30, 25, 30, .035);
    transition: border-color .3s ease, box-shadow .3s ease;
}

.svc-faq .accordion-item:hover {
    border-color: #d5bc8c;
}

.svc-faq .accordion-item:has(.accordion-button:not(.collapsed)) {
    border-color: #c9a661;
    box-shadow: 0 10px 30px rgba(30, 25, 30, .055);
}

.svc-faq .accordion-button {
    display: flex;
    align-items: center;
    gap: 20px;
    padding: 23px 25px;
    background: #fff;
    border: 0;
    box-shadow: none;
    color: #302b32;
    font-family: "Outfit", sans-serif;
    font-size: 17px;
    font-weight: 600;
    line-height: 1.5;
}

.svc-faq .accordion-button:not(.collapsed) {
    background: #fff;
    box-shadow: none;
    color: #302b32;
}

.svc-faq .accordion-button:focus {
    box-shadow: none;
}

.svc-faq .accordion-button:focus-visible {
    outline: 2px solid #c9a661;
    outline-offset: -3px;
}

.svc-faq-num {
    flex-shrink: 0;
    color: #b99b65;
    font-family: "Outfit", sans-serif;
    font-size: 14px;
    font-weight: 700;
    letter-spacing: .5px;
}

.svc-faq-q {
    flex: 1;
}

.svc-faq .accordion-button::after {
    content: "+";
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: 34px;
    height: 34px;
    margin-left: auto;
    border-radius: 50%;
    background-color: #f5f1e9;
    background-image: none;
    color: #9a793f;
    font-family: Arial, sans-serif;
    font-size: 23px;
    font-weight: 400;
    transform: none;
    transition: all .3s ease;
}

.svc-faq .accordion-button:not(.collapsed)::after {
    content: "\2212";
    background-color: #c9a661;
    color: #302b32;
}

.svc-faq .accordion-body {
    padding: 0 75px 25px 59px;
    color: #666167;
    font-size: 15.5px;
    line-height: 1.9;
}

@media (max-width: 767.98px) {
    .svc-faq .accordion {
        gap: 12px;
    }

    .svc-faq .accordion-button {
        gap: 12px;
        padding: 18px 15px;
        font-size: 15px;
    }

    .svc-faq-num {
        font-size: 12px;
    }

    .svc-faq .accordion-button::after {
        width: 30px;
        height: 30px;
        font-size: 21px;
    }

    .svc-faq .accordion-body {
        padding: 0 18px 22px 42px;
        font-size: 14px;
        line-height: 1.8;
    }
}


/* ==========================================================
   6. INTRO IMAGE
========================================================== */

.service-about-image img {
    height: 400px;
    object-position: center 26%;
}


/* ==========================================================
   REDUCED MOTION
========================================================== */

@media (prefers-reduced-motion: reduce) {

    .svc-card,
    .svc-card::after,
    .svc-card-img img,
    .svc-industry,
    .svc-why-card,
    .svc-why-card::before,
    .svc-why-icon,
    .svc-faq .accordion-item {
        transition: none;
    }

    .svc-card:hover,
    .svc-card:hover .svc-card-img img,
    .svc-industry:hover,
    .svc-why-card:hover,
    .svc-why-card:hover .svc-why-icon {
        transform: none;
    }
}
