/* =========================================================
   TECNICHKOS ZÜRICH V8.9
   Premium local landing-page system
   ========================================================= */


/* =========================================================
   SHARED LOCAL IDENTITY
   ========================================================= */

body.zurich-v89 {

    --z89-navy:
        #071827;

    --z89-navy-2:
        #0b293c;

    --z89-orange:
        #ff7a1a;

    --z89-text:
        #071827;

    --z89-muted:
        #627181;

    --z89-border:
        rgba(7,24,39,.09);

}


/* =========================================================
   DE TEMPLATE
   ========================================================= */


/* Hero */

body.zurich-v89-de
.zurich-v89-hero {

    position:
        relative;

    overflow:
        hidden;

    padding:
        clamp(44px,6vw,82px)
        clamp(28px,5vw,70px) !important;

    border-radius:
        30px !important;

    background:
        radial-gradient(
            circle at 88% 12%,
            rgba(255,122,26,.19),
            transparent 27%
        ),
        linear-gradient(
            135deg,
            #071827 0%,
            #0a2436 60%,
            #103a4f 100%
        ) !important;

    box-shadow:
        0 26px 68px
        rgba(7,24,39,.18);

    color:
        #ffffff !important;
}


body.zurich-v89-de
.zurich-v89-hero::before {

    content:
        "";

    position:
        absolute;

    inset:
        0;

    opacity:
        .08 !important;

    visibility:
        visible !important;

    transform:
        none !important;

    background-image:
        linear-gradient(
            rgba(255,255,255,.16) 1px,
            transparent 1px
        ),
        linear-gradient(
            90deg,
            rgba(255,255,255,.16) 1px,
            transparent 1px
        ) !important;

    background-size:
        42px 42px !important;

    pointer-events:
        none;
}


body.zurich-v89-de
.zurich-v89-hero::after {

    content:
        "";

    position:
        absolute;

    width:
        300px;

    height:
        300px;

    right:
        -110px;

    bottom:
        -160px;

    border:
        1px solid
        rgba(255,122,26,.34);

    border-radius:
        50%;

    box-shadow:
        0 0 0 35px
        rgba(255,122,26,.025),
        0 0 0 70px
        rgba(255,122,26,.015);

    pointer-events:
        none;
}


body.zurich-v89-de
.zurich-v89-hero > * {

    position:
        relative;

    z-index:
        2;
}


body.zurich-v89-de
.zurich-v89-hero h1 {

    max-width:
        900px;

    color:
        #ffffff !important;

    font-size:
        clamp(
            38px,
            5vw,
            66px
        ) !important;

    line-height:
        1.02 !important;

    letter-spacing:
        -.035em;
}


body.zurich-v89-de
.zurich-v89-hero p {

    max-width:
        760px;

    color:
        rgba(255,255,255,.75) !important;

    font-size:
        18px !important;

    line-height:
        1.7 !important;
}


/* Local overview */

body.zurich-v89-de
.zurich-v89-local-grid {

    gap:
        20px !important;
}


body.zurich-v89-de
.zurich-v89-local-box {

    position:
        relative;

    overflow:
        hidden;

    padding:
        30px !important;

    border:
        1px solid
        var(--z89-border) !important;

    border-radius:
        22px !important;

    background:
        linear-gradient(
            145deg,
            #ffffff,
            #fafcfd
        ) !important;

    box-shadow:
        0 14px 38px
        rgba(7,24,39,.05);
}


body.zurich-v89-de
.zurich-v89-local-box::before {

    content:
        "";

    position:
        absolute;

    top:
        0;

    left:
        0;

    width:
        76px;

    height:
        4px;

    background:
        var(--z89-orange);

    opacity:
        1 !important;

    visibility:
        visible !important;

    transform:
        none !important;
}


/* Editorial splits */

body.zurich-v89-de
[class*="zurich-v89-de-split-"] {

    gap:
        clamp(28px,4vw,64px) !important;

    align-items:
        center !important;

    padding:
        clamp(25px,3vw,40px) 0 !important;
}


body.zurich-v89-de
.zurich-v89-de-split-2 {

    padding:
        clamp(30px,4vw,48px) !important;

    border:
        1px solid
        var(--z89-border);

    border-radius:
        24px;

    background:
        #fbfcfd;
}


body.zurich-v89-de
[class*="zurich-v89-de-split-"]
h2 {

    color:
        var(--z89-text) !important;

    line-height:
        1.12 !important;
}


body.zurich-v89-de
[class*="zurich-v89-de-split-"]
h2::before {

    content:
        "";

    display:
        block;

    width:
        40px;

    height:
        4px;

    margin-bottom:
        17px;

    border-radius:
        99px;

    background:
        var(--z89-orange);
}


/* CTA */

body.zurich-v89-de
.zurich-v89-cta {

    position:
        relative;

    overflow:
        hidden;

    padding:
        clamp(30px,4vw,50px) !important;

    border-radius:
        26px !important;

    background:
        linear-gradient(
            135deg,
            #071827,
            #0d3146
        ) !important;

    color:
        #ffffff !important;

    box-shadow:
        0 22px 54px
        rgba(7,24,39,.15);
}


body.zurich-v89-de
.zurich-v89-cta h2,

body.zurich-v89-de
.zurich-v89-cta h3 {

    color:
        #ffffff !important;
}


body.zurich-v89-de
.zurich-v89-cta p {

    color:
        rgba(255,255,255,.72) !important;
}


/* =========================================================
   27 SERVICE LANDING PAGES
   ========================================================= */


/* Primary editorial split */

body.zurich-v89-service
.zurich-v89-service-split-1 {

    position:
        relative;

    gap:
        clamp(30px,5vw,72px) !important;

    align-items:
        center !important;

    padding:
        clamp(28px,4vw,48px) !important;

    border:
        1px solid
        var(--z89-border);

    border-radius:
        26px;

    background:
        linear-gradient(
            145deg,
            #ffffff,
            #f9fbfc
        );

    box-shadow:
        0 16px 44px
        rgba(7,24,39,.05);
}


body.zurich-v89-service
.zurich-v89-service-split-1::before {

    content:
        "";

    position:
        absolute;

    top:
        0;

    left:
        clamp(28px,4vw,48px);

    width:
        70px;

    height:
        4px;

    background:
        var(--z89-orange);

    opacity:
        1 !important;

    visibility:
        visible !important;

    transform:
        none !important;
}


/* Three main service cards */

body.zurich-v89-service
.zurich-v89-service-grid-1 {

    display:
        grid !important;

    grid-template-columns:
        repeat(3,minmax(0,1fr)) !important;

    gap:
        18px !important;
}


body.zurich-v89-service
.zurich-v89-service-card {

    position:
        relative;

    overflow:
        hidden;

    min-height:
        235px;

    padding:
        74px 27px 27px !important;

    border:
        1px solid
        var(--z89-border) !important;

    border-radius:
        20px !important;

    background:
        linear-gradient(
            145deg,
            #ffffff,
            #fbfcfd
        ) !important;

    box-shadow:
        0 12px 34px
        rgba(7,24,39,.045);

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


body.zurich-v89-service
.zurich-v89-service-card::before {

    content:
        "";

    position:
        absolute !important;

    top:
        25px !important;

    left:
        27px !important;

    width:
        38px !important;

    height:
        38px !important;

    opacity:
        1 !important;

    visibility:
        visible !important;

    transform:
        none !important;

    border:
        1px solid
        rgba(255,122,26,.21);

    border-radius:
        11px;

    background:
        #fff7f0 !important;

    box-shadow:
        inset 0 0 0 11px
        rgba(255,122,26,.045);
}


body.zurich-v89-service
.zurich-v89-service-card::after {

    content:
        "";

    position:
        absolute;

    top:
        44px;

    left:
        78px;

    right:
        25px;

    height:
        1px;

    background:
        linear-gradient(
            90deg,
            rgba(255,122,26,.28),
            transparent
        );
}


body.zurich-v89-service
.zurich-v89-service-card h3 {

    color:
        var(--z89-text) !important;

    font-size:
        21px !important;

    line-height:
        1.18 !important;
}


body.zurich-v89-service
.zurich-v89-service-card p {

    color:
        var(--z89-muted) !important;

    line-height:
        1.65 !important;
}


@media (hover:hover) {

    body.zurich-v89-service
    .zurich-v89-service-card:hover {

        transform:
            translateY(-5px);

        border-color:
            rgba(255,122,26,.25) !important;

        box-shadow:
            0 24px 52px
            rgba(7,24,39,.09);
    }
}


/* Second editorial split */

body.zurich-v89-service
.zurich-v89-service-split-2 {

    gap:
        clamp(30px,5vw,72px) !important;

    align-items:
        center !important;

    padding:
        clamp(25px,3vw,38px) 0 !important;
}


body.zurich-v89-service
.zurich-v89-service-split-2 h2::before {

    content:
        "";

    display:
        block;

    width:
        38px;

    height:
        4px;

    margin-bottom:
        16px;

    border-radius:
        99px;

    background:
        var(--z89-orange);
}


/* Two supporting cards */

body.zurich-v89-service
.zurich-v89-service-grid-2 {

    display:
        grid !important;

    grid-template-columns:
        repeat(2,minmax(0,1fr)) !important;

    gap:
        18px !important;
}


body.zurich-v89-service
.zurich-v89-related-card {

    position:
        relative;

    min-height:
        180px;

    padding:
        27px !important;

    border:
        1px solid
        var(--z89-border) !important;

    border-radius:
        20px !important;

    background:
        #ffffff !important;

    box-shadow:
        0 11px 30px
        rgba(7,24,39,.04);
}


body.zurich-v89-service
.zurich-v89-related-card h3 {

    margin-top:
        28px !important;

    color:
        var(--z89-text) !important;
}


body.zurich-v89-service
.zurich-v89-related-card h3::before {

    content:
        "";

    display:
        block;

    width:
        32px;

    height:
        3px;

    margin-bottom:
        13px;

    border-radius:
        99px;

    background:
        var(--z89-orange);
}


/* =========================================================
   EN / SQ / SR ZÜRICH HUB
   ========================================================= */

body.zurich-v89-hub
.zurich-v89-hub-grid {

    counter-reset:
        zurich-service;

    display:
        grid !important;

    grid-template-columns:
        repeat(3,minmax(0,1fr)) !important;

    gap:
        18px !important;
}


body.zurich-v89-hub
.zurich-v89-hub-card {

    counter-increment:
        zurich-service;

    position:
        relative;

    overflow:
        hidden;

    min-height:
        235px;

    padding:
        82px 26px 27px !important;

    border:
        1px solid
        var(--z89-border) !important;

    border-radius:
        21px !important;

    background:
        linear-gradient(
            145deg,
            #ffffff,
            #fafcfd
        ) !important;

    box-shadow:
        0 12px 34px
        rgba(7,24,39,.045);

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


body.zurich-v89-hub
.zurich-v89-hub-card::before {

    content:
        "0" counter(zurich-service);

    position:
        absolute !important;

    top:
        24px !important;

    left:
        26px !important;

    display:
        inline-flex !important;

    align-items:
        center;

    justify-content:
        center;

    width:
        42px !important;

    height:
        42px !important;

    opacity:
        1 !important;

    visibility:
        visible !important;

    transform:
        none !important;

    border:
        1px solid
        rgba(255,122,26,.20);

    border-radius:
        12px;

    background:
        #fff7f0 !important;

    color:
        #ff6b00;

    font-size:
        11px;

    font-weight:
        800;

    letter-spacing:
        .04em;
}


body.zurich-v89-hub
.zurich-v89-hub-card::after {

    content:
        "";

    position:
        absolute;

    top:
        45px;

    left:
        80px;

    right:
        26px;

    height:
        1px;

    background:
        linear-gradient(
            90deg,
            rgba(255,122,26,.26),
            transparent
        );
}


body.zurich-v89-hub
.zurich-v89-hub-card h3 {

    color:
        var(--z89-text) !important;

    font-size:
        20px !important;

    line-height:
        1.2 !important;
}


body.zurich-v89-hub
.zurich-v89-hub-card p {

    color:
        var(--z89-muted) !important;

    line-height:
        1.62 !important;
}


@media (hover:hover) {

    body.zurich-v89-hub
    .zurich-v89-hub-card:hover {

        transform:
            translateY(-5px);

        border-color:
            rgba(255,122,26,.24) !important;

        box-shadow:
            0 24px 52px
            rgba(7,24,39,.09);
    }
}


/* Hub editorial split */

body.zurich-v89-hub
.zurich-v89-hub-split {

    position:
        relative;

    gap:
        clamp(30px,5vw,72px) !important;

    padding:
        clamp(30px,4vw,48px) !important;

    border:
        1px solid
        var(--z89-border);

    border-radius:
        24px;

    background:
        linear-gradient(
            145deg,
            #ffffff,
            #f9fbfc
        );
}


/* =========================================================
   SHARED H2 DETAIL
   ========================================================= */

body.zurich-v89
main h2 {

    letter-spacing:
        -.018em;
}


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

@media (max-width:980px) {

    body.zurich-v89-service
    .zurich-v89-service-grid-1,

    body.zurich-v89-hub
    .zurich-v89-hub-grid {

        grid-template-columns:
            repeat(2,minmax(0,1fr)) !important;
    }


    body.zurich-v89-de
    [class*="zurich-v89-de-split-"],

    body.zurich-v89-service
    [class*="zurich-v89-service-split-"],

    body.zurich-v89-hub
    .zurich-v89-hub-split {

        gap:
            30px !important;
    }
}


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

@media (max-width:680px) {

    body.zurich-v89-de
    .zurich-v89-hero {

        padding:
            34px 22px !important;

        border-radius:
            21px !important;
    }


    body.zurich-v89-de
    .zurich-v89-hero h1 {

        font-size:
            clamp(
                34px,
                10vw,
                46px
            ) !important;
    }


    body.zurich-v89-service
    .zurich-v89-service-split-1,

    body.zurich-v89-hub
    .zurich-v89-hub-split {

        padding:
            25px 21px !important;

        border-radius:
            19px;
    }


    body.zurich-v89-service
    .zurich-v89-service-grid-1,

    body.zurich-v89-service
    .zurich-v89-service-grid-2,

    body.zurich-v89-hub
    .zurich-v89-hub-grid {

        grid-template-columns:
            1fr !important;

        gap:
            14px !important;
    }


    body.zurich-v89-service
    .zurich-v89-service-card,

    body.zurich-v89-hub
    .zurich-v89-hub-card {

        min-height:
            205px;

        border-radius:
            18px !important;
    }


    body.zurich-v89-service
    .zurich-v89-related-card {

        min-height:
            165px;

        padding:
            23px !important;

        border-radius:
            18px !important;
    }
}


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

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

    body.zurich-v89
    .zurich-v89-service-card,

    body.zurich-v89
    .zurich-v89-hub-card {

        transition:
            none !important;
    }
}
