/**
 * Brunon — scroll-in line drawing.
 *
 * Hook: data-aos="lines" on .instagram_block_top / .instagram_block_bottom.
 * AOS only toggles .aos-animate; every selector here is keyed on the
 * [data-aos="lines"] attribute, and AOS *removes* that attribute when it is
 * disabled (<= 768px, see assets/js/script.js), so below the breakpoint all
 * lines render statically exactly as they do in style.min.css.
 *
 * Not compiled from SCSS — edit this file directly.
 */

@property --brunon-ring {
    syntax: "<percentage>";
    inherits: false;
    initial-value: 0%;
}

:root {
    --line-color: #C1944D;
    --line-page-bg: #FFFEFA;

    --line-dur: .8s;
    --line-ease: cubic-bezier(.33, 0, .2, 1);

    --ring-delay: .15s;
    --ring-dur: .9s;

    --curve-delay: .35s;
    --curve-dur: .7s;

    --bubble-delay: 1.05s;
    --bubble-dur: .45s;

    --bubble-txt-delay: 1.5s;
    --bubble-txt-dur: .25s;
}

@media screen and (min-width: 769px) {

    /* ------------------------------------------------------------------
     * 1. Full-bleed horizontal rules at the bottom of each block.
     *    The real border is kept (transparent) so nothing shifts by 1px;
     *    the visible hairline is a pseudo drawn left -> right.
     * ------------------------------------------------------------------ */
    .instagram_block_top[data-aos="lines"],
    .instagram_block_bottom[data-aos="lines"] {
        position: relative;
        border-bottom-color: transparent;
    }

    .instagram_block_top[data-aos="lines"]:after,
    .instagram_block_bottom[data-aos="lines"]:after {
        content: '';
        position: absolute;
        left: 0;
        right: 0;
        bottom: -1px;
        height: 1px;
        background: var(--line-color);
        transform: scaleX(0);
        transform-origin: left center;
        transition: transform var(--line-dur) var(--line-ease);
    }

    .instagram_block_top[data-aos="lines"].aos-animate:after,
    .instagram_block_bottom[data-aos="lines"].aos-animate:after {
        transform: scaleX(1);
    }

    /* ------------------------------------------------------------------
     * 2. Vertical hairline on the left of the right-hand column.
     *    Already a pseudo in style.min.css — just gets a scaleY reveal.
     * ------------------------------------------------------------------ */
    [data-aos="lines"] .instagram_block .instagram_block_right:before {
        transform: scaleY(0);
        transform-origin: top center;
        transition: transform var(--line-dur) var(--line-ease);
    }

    [data-aos="lines"].aos-animate .instagram_block .instagram_block_right:before {
        transform: scaleY(1);
    }

    /* ------------------------------------------------------------------
     * 3. Vertical hairline on the right of the top block.
     *    It lives as border-right on .instagram_block_right, which is
     *    overflow:hidden — so it cannot host its own pseudo. Drawn on the
     *    flex parent instead, whose right edge is the same pixel column.
     * ------------------------------------------------------------------ */
    .instagram_block_top[data-aos="lines"] .instagram_block_right {
        border-right-color: transparent;
    }

    .instagram_block_top[data-aos="lines"] .instagram_block:after {
        content: '';
        position: absolute;
        top: 0;
        bottom: 0;
        right: 0;
        width: 1px;
        background: var(--line-color);
        transform: scaleY(0);
        transform-origin: top center;
        transition: transform var(--line-dur) var(--line-ease);
        z-index: 1;
    }

    .instagram_block_top[data-aos="lines"].aos-animate .instagram_block:after {
        transform: scaleY(1);
    }

    /* ------------------------------------------------------------------
     * 4. The two vertical hairlines framing the round link.
     * ------------------------------------------------------------------ */
    [data-aos="lines"] .instagram_block_link:before,
    [data-aos="lines"] .instagram_block_link:after {
        transform: scaleY(0);
        transform-origin: top center;
        transition: transform var(--line-dur) var(--line-ease);
    }

    [data-aos="lines"].aos-animate .instagram_block_link:before,
    [data-aos="lines"].aos-animate .instagram_block_link:after {
        transform: scaleY(1);
    }

    /* ------------------------------------------------------------------
     * 5. The circle. Its own border is hidden and replaced by a pixel-exact
     *    replica on :before (inset -1px + border-box lands the replica's
     *    border on the original border ring), then stroked in with a conic
     *    mask driven by the registered --brunon-ring property.
     * ------------------------------------------------------------------ */
    [data-aos="lines"] .instagram_block_link .round_instagram_block_link {
        border-color: transparent;
    }

    [data-aos="lines"] .instagram_block_link .round_instagram_block_link:before {
        content: '';
        position: absolute;
        left: -1px;
        right: -1px;
        top: -1px;
        bottom: -1px;
        box-sizing: border-box;
        border: 1px solid var(--line-color);
        border-radius: 50%;
        z-index: 0;
        --brunon-ring: 0%;
        -webkit-mask-image: conic-gradient(#000 var(--brunon-ring), transparent 0);
                mask-image: conic-gradient(#000 var(--brunon-ring), transparent 0);
        transition: --brunon-ring var(--ring-dur) linear var(--ring-delay);
    }

    [data-aos="lines"].aos-animate .instagram_block_link .round_instagram_block_link:before {
        --brunon-ring: 100%;
    }

    /* ------------------------------------------------------------------
     * 6. The curved flourish. A border-drawn path, so it is revealed by a
     *    diagonal clip sweep out of the circle centre (its top-left corner):
     *    the vertical leg draws downwards and the horizontal leg rightwards
     *    at the same rate, the corner radius stays undistorted.
     * ------------------------------------------------------------------ */
    [data-aos="lines"] .instagram_block_link .round_instagram_block_link:after {
        -webkit-clip-path: polygon(-300% -300%, 300% -300%, -300% 300%);
                clip-path: polygon(-300% -300%, 300% -300%, -300% 300%);
        transition: -webkit-clip-path var(--curve-dur) var(--line-ease) var(--curve-delay),
                    clip-path var(--curve-dur) var(--line-ease) var(--curve-delay);
    }

    [data-aos="lines"].aos-animate .instagram_block_link .round_instagram_block_link:after {
        -webkit-clip-path: polygon(-300% -300%, 800% -300%, -300% 800%);
                clip-path: polygon(-300% -300%, 800% -300%, -300% 800%);
    }

    /* ------------------------------------------------------------------
     * 7. The bubble, last in the sequence: scales up once the lines have
     *    landed, then its label fades in.
     * ------------------------------------------------------------------ */
    [data-aos="lines"] .instagram_block_link .round_instagram_block_link .instagram_block_link_bubble {
        transform: translate(-50%, -50%) scale(0);
        transition: transform var(--bubble-dur) cubic-bezier(.34, 1.4, .64, 1) var(--bubble-delay),
                    background .2s;
    }

    [data-aos="lines"].aos-animate .instagram_block_link .round_instagram_block_link .instagram_block_link_bubble {
        transform: translate(-50%, -50%) scale(1);
    }

    [data-aos="lines"] .instagram_block_link_bubble .instagram_block_link_bubble_txt {
        opacity: 0;
        transition: opacity var(--bubble-txt-dur) ease var(--bubble-txt-delay);
    }

    [data-aos="lines"].aos-animate .instagram_block_link_bubble .instagram_block_link_bubble_txt {
        opacity: 1;
    }
}

/* Reduced motion: show every line in its final state, no drawing. */
@media screen and (min-width: 769px) and (prefers-reduced-motion: reduce) {
    .instagram_block_top[data-aos="lines"],
    .instagram_block_bottom[data-aos="lines"] {
        border-bottom-color: var(--line-color);
    }

    .instagram_block_top[data-aos="lines"]:after,
    .instagram_block_bottom[data-aos="lines"]:after,
    .instagram_block_top[data-aos="lines"] .instagram_block:after {
        display: none;
    }

    .instagram_block_top[data-aos="lines"] .instagram_block_right {
        border-right-color: var(--line-color);
    }

    [data-aos="lines"] .instagram_block .instagram_block_right:before,
    [data-aos="lines"] .instagram_block_link:before,
    [data-aos="lines"] .instagram_block_link:after {
        transform: none;
        transition: none;
    }

    [data-aos="lines"] .instagram_block_link .round_instagram_block_link {
        border-color: var(--line-color);
    }

    [data-aos="lines"] .instagram_block_link .round_instagram_block_link:before {
        display: none;
    }

    [data-aos="lines"] .instagram_block_link .round_instagram_block_link:after {
        -webkit-clip-path: none;
                clip-path: none;
        transition: none;
    }

    [data-aos="lines"] .instagram_block_link .round_instagram_block_link .instagram_block_link_bubble {
        transform: translate(-50%, -50%) scale(1);
        transition: background .2s;
    }

    [data-aos="lines"] .instagram_block_link_bubble .instagram_block_link_bubble_txt {
        opacity: 1;
        transition: none;
    }
}


/* =====================================================================
 * SITE-WIDE LINE DRAWING
 *
 * Every hairline in the theme is a 1px #C1944D border in style.min.css.
 * A border cannot be drawn progressively, so each one is re-created on a
 * pseudo-element - or, where both pseudos are already taken, on a real
 * <i class="line_*"> element added to the markup - and revealed with a
 * transform / clip-path / mask sweep.
 *
 * Contract
 *   html._ln   set by initLines() in assets/js/script.js. Everything below
 *              is gated on it, so with JS off, or at <= 768px, the original
 *              borders render exactly as they always have. Under
 *              prefers-reduced-motion initLines() marks every host drawn up
 *              front: final state, no animation.
 *   ._ln-in    added to a host when it scrolls into view.
 *   ._ln-deep  added to .container_content_page by its .line_probe, so the
 *              ornaments buried ~900px down that container do not animate
 *              far above the fold.
 *
 * The original border is never removed, only made transparent, so nothing
 * reflows by 1px; the replica sits on top of it at -1px.
 *
 * Not compiled from SCSS - edit this file directly.
 * ===================================================================== */

/* --------------------------------------------------------------------
 * Elements added to the markup (page.php, single-post.php,
 * single-equipe.php) because both pseudos were already spoken for.
 * Out of flow at every width, so they cost nothing when idle.
 * -------------------------------------------------------------------- */
.line_v,
.line_probe {
    display: block;
    position: absolute;
    pointer-events: none;
}

@media screen and (min-width: 769px) {

    .line_probe {
        left: 0;
        width: 1px;
        top: 880px;
        height: 240px;
        opacity: 0;
    }

    /* ==================================================================
     * 1. Horizontal rules - drawn left to right.
     * ================================================================== */
    html._ln .wrp_cabinet_block_header,
    html._ln .access_top {
        position: relative;
    }

    /* header is position:fixed, which is containing block enough. */
    html._ln header,
    html._ln .wrp_cabinet_block_header,
    html._ln .access_top,
    html._ln .equipe_info {
        border-bottom-color: transparent;
    }

    html._ln .notre_equipe,
    html._ln .category_about,
    html._ln .treatements_list,
    html._ln .traitements_list {
        position: relative;
        border-top-color: transparent;
    }

    html._ln header:after,
    html._ln .wrp_cabinet_block_header:after,
    html._ln .access_top:after,
    html._ln .equipe_info:after,
    html._ln .notre_equipe:after,
    html._ln .category_about:after,
    html._ln .treatements_list:before,
    html._ln .traitements_list:before {
        content: '';
        position: absolute;
        left: 0;
        right: 0;
        height: 1px;
        background: var(--line-color);
        pointer-events: none;
        transform: scaleX(0);
        transform-origin: left center;
        transition: transform var(--line-dur) var(--line-ease);
    }

    html._ln header:after,
    html._ln .wrp_cabinet_block_header:after,
    html._ln .access_top:after,
    html._ln .equipe_info:after {
        bottom: -1px;
    }

    html._ln .notre_equipe:after,
    html._ln .category_about:after,
    html._ln .treatements_list:before,
    html._ln .traitements_list:before {
        top: -1px;
    }

    /* .traitements_list is bordered on three sides, so its padding box is
     * inset 1px all round and the top replica has to reach back out. */
    html._ln .traitements_list:before {
        left: -1px;
        right: -1px;
    }

    html._ln header._ln-in:after,
    html._ln .wrp_cabinet_block_header._ln-in:after,
    html._ln .access_top._ln-in:after,
    html._ln .equipe_info._ln-in:after,
    html._ln .notre_equipe._ln-in:after,
    html._ln .category_about._ln-in:after,
    html._ln .treatements_list._ln-in:before,
    html._ln .traitements_list._ln-in:before {
        transform: scaleX(1);
    }

    /* The full-bleed hairline that runs off the left of the page out of the
     * .container_content_page corner - drawn outwards from that corner. */
     
    html._ln .container_content_page:after {
        transform: scaleX(0);
        transform-origin: right center;
        transition: transform var(--line-dur) var(--line-ease);
    }

    html._ln .container_content_page._ln-deep:after {
        transform: scaleX(1);
    }

    /* ==================================================================
     * 2. Single vertical rules - drawn top to bottom. The replicas carry a
     *    z-index because several of these rows are flex containers that put
     *    the photo after the text with `order`, which reorders paint too.
     * ================================================================== */
    html._ln .cabinet_block_left,
    html._ln .access_top_block,
    html._ln .access_block_body,
    html._ln .category_about .wrp_category_about,
    html._ln .traitements_item .traitements_item_block {
        position: relative;
        border-right-color: transparent;
    }

    html._ln .cabinet_block_left:after,
    html._ln .access_top_block:after,
    html._ln .access_block_body:after,
    html._ln .category_about .wrp_category_about:after,
    html._ln .traitements_item .traitements_item_block:after,
    html._ln .cabinet_block_left._border:before {
        content: '';
        position: absolute;
        top: 0;
        bottom: 0;
        width: 1px;
        background: var(--line-color);
        pointer-events: none;
        z-index: 2;
        transform: scaleY(0);
        transform-origin: top center;
        transition: transform var(--line-dur) var(--line-ease);
    }

    html._ln .cabinet_block_left:after,
    html._ln .access_top_block:after,
    html._ln .access_block_body:after,
    html._ln .category_about .wrp_category_about:after,
    html._ln .traitements_item .traitements_item_block:after {
        right: -1px;
    }

    html._ln .cabinet_block_left._border {
        border-left-color: transparent;
    }

    html._ln .cabinet_block_left._border:before {
        left: -1px;
    }

    /* Even rows mirror the column rule over to the left edge. */
    html._ln .traitements_item:nth-child(even) .traitements_item_block {
        border-left-color: transparent;
    }

    html._ln .traitements_item:nth-child(even) .traitements_item_block:after {
        right: auto;
        left: -1px;
    }

    html._ln .cabinet_block_left._ln-in:after,
    html._ln .access_top_block._ln-in:after,
    html._ln .access_block_body._ln-in:after,
    html._ln .wrp_category_about._ln-in:after,
    html._ln .traitements_item._ln-in .traitements_item_block:after,
    html._ln .cabinet_block_left._border._ln-in:before {
        transform: scaleY(1);
    }

    /* Verticals that already live on a pseudo of .wrapper. */
    html._ln .inner_hero_block .wrapper:before,
    html._ln .inner_hero_block .wrapper:after {
        transform: scaleY(0);
        transform-origin: top center;
        transition: transform var(--line-dur) var(--line-ease);
    }

    html._ln .inner_hero_block .wrapper._ln-in:before,
    html._ln .inner_hero_block .wrapper._ln-in:after {
        transform: scaleY(1);
    }

    /* ==================================================================
     * 3. Matched pairs of verticals - one replica carries both edges so
     *    they draw down together.
     * ================================================================== */
    html._ln .container_equipe_page,
    html._ln .traitements_list {
        position: relative;
        border-left-color: transparent;
        border-right-color: transparent;
    }

    html._ln .container_equipe_page:after,
    html._ln .traitements_list:after {
        content: '';
        position: absolute;
        left: -1px;
        right: -1px;
        top: 0;
        bottom: 0;
        box-sizing: border-box;
        border-left: 1px solid var(--line-color);
        border-right: 1px solid var(--line-color);
        pointer-events: none;
        transform: scaleY(0);
        transform-origin: top center;
        transition: transform var(--line-dur) var(--line-ease);
    }

    html._ln .container_equipe_page._ln-in:after,
    html._ln .traitements_list._ln-in:after {
        transform: scaleY(1);
    }

    /* Same story for its side replicas: the top border is inside the box. */
    html._ln .traitements_list:after {
        top: -1px;
    }

    /* ==================================================================
     * 4. Right-angle corners - one replica carrying both legs, revealed by
     *    a diagonal sweep growing out of the shared corner.
     * ================================================================== */
    html._ln .treatements_item,
    html._ln .conseils_list .conseils_item {
        position: relative;
        border-bottom-color: transparent;
        border-right-color: transparent;
    }

    html._ln .treatements_item:nth-child(even) {
        border-left-color: transparent;
    }

    html._ln .treatements_item:after,
    html._ln .conseils_list .conseils_item:after {
        content: '';
        position: absolute;
        box-sizing: border-box;
        pointer-events: none;
        border-bottom: 1px solid var(--line-color);
        border-right: 1px solid var(--line-color);
        -webkit-clip-path: polygon(400% 400%, -200% 400%, 400% -200%);
                clip-path: polygon(400% 400%, -200% 400%, 400% -200%);
        transition: -webkit-clip-path var(--line-dur) var(--line-ease),
                    clip-path var(--line-dur) var(--line-ease);
        z-index: 2;
    }

    /* .treatements_item clips its own overflow, so its replica has to sit
     * inside the padding box rather than straddle the border. */
    html._ln .treatements_item:after {
        left: 0;
        top: 0;
        right: 0;
        bottom: 0;
    }

    html._ln .conseils_list .conseils_item:after {
        left: 0;
        top: 0;
        right: -1px;
        bottom: -1px;
    }

    html._ln .treatements_item:nth-child(even):after {
        border-right: 0;
        border-left: 1px solid var(--line-color);
        -webkit-clip-path: polygon(-300% 400%, 300% 400%, -300% -200%);
                clip-path: polygon(-300% 400%, 300% 400%, -300% -200%);
    }

    html._ln .treatements_item._ln-in:after,
    html._ln .conseils_list .conseils_item._ln-in:after {
        -webkit-clip-path: polygon(400% 400%, -700% 400%, 400% -700%);
                clip-path: polygon(400% 400%, -700% 400%, 400% -700%);
    }

    html._ln .treatements_item:nth-child(even)._ln-in:after {
        -webkit-clip-path: polygon(-300% 400%, 800% 400%, -300% -700%);
                clip-path: polygon(-300% 400%, 800% 400%, -300% -700%);
    }

    /* The short column rules inside the first / last / hinge rows. */
    html._ln .treatements_item .treatements_item_name {
        position: relative;
        border-right-color: transparent;
        border-left-color: transparent;
    }

    html._ln .treatements_item .treatements_item_name:after {
        content: '';
        position: absolute;
        top: 0;
        bottom: 0;
        width: 1px;
        background: var(--line-color);
        pointer-events: none;
        z-index: 2;
        opacity: 0;
        transform: scaleY(0);
        transform-origin: top center;
        transition: transform var(--line-dur) var(--line-ease);
    }

    html._ln .treatements_item:first-child .treatements_item_name:after,
    html._ln .treatements_item:last-child .treatements_item_name:after {
        opacity: 1;
        right: -1px;
    }

    html._ln .treatements_item:nth-child(2) .treatements_item_name:after,
    html._ln .treatements_item:nth-last-child(2) .treatements_item_name:after {
        opacity: 1;
        left: -1px;
        right: auto;
    }

    html._ln .treatements_item._ln-in .treatements_item_name:after {
        transform: scaleY(1);
    }

    /* ==================================================================
     * 5. Rounded corner ornaments. These are already pseudo-elements, so
     *    they only need the sweep; the front runs from the two free ends
     *    towards the arc, i.e. out of the corner opposite the radius. Every
     *    polygon keeps its two square edges well outside the box - a clip
     *    edge lying along the hairline itself halves its alpha.
     * ================================================================== */
    html._ln .inner_hero header .wrapper:before,
    html._ln .inner_hero header .wrapper:after,
    html._ln .wrp_footer_bottom:after,
    /*html._ln .container_content_page:before,*/
    html._ln .wrp_block_404:before,
    html._ln .treatements_item:nth-child(2):before,
    html._ln .treatements_item:nth-last-child(2):before,
    html._ln .traitements_item:first-child .traitements_item_info:before,
    html._ln .traitements_item:last-child .traitements_item_info:before,
    html._ln .traitements_item:last-child .traitements_item_info:after {
        transition: -webkit-clip-path var(--curve-dur) var(--line-ease),
                    clip-path var(--curve-dur) var(--line-ease);
    }

    /* radius bottom-right -> sweep out of the top-left */
    /*html._ln .container_content_page:before,*/
    html._ln .wrp_block_404:before {
        -webkit-clip-path: polygon(-300% -300%, 300% -300%, -300% 300%);
                clip-path: polygon(-300% -300%, 300% -300%, -300% 300%);
    }

    /*html._ln .container_content_page._ln-deep:before,*/
    html._ln .wrp_block_404._ln-in:before {
        -webkit-clip-path: polygon(-300% -300%, 800% -300%, -300% 800%);
                clip-path: polygon(-300% -300%, 800% -300%, -300% 800%);
    }

    /* radius top-right -> sweep out of the bottom-left */
    html._ln .inner_hero header .wrapper:before,
    html._ln .traitements_item:last-child .traitements_item_info:after {
        -webkit-clip-path: polygon(-300% 400%, 300% 400%, -300% -200%);
                clip-path: polygon(-300% 400%, 300% 400%, -300% -200%);
    }

    html._ln .inner_hero header .wrapper._ln-in:before,
    html._ln .traitements_item:last-child._ln-in .traitements_item_info:after {
        -webkit-clip-path: polygon(-300% 400%, 800% 400%, -300% -700%);
                clip-path: polygon(-300% 400%, 800% 400%, -300% -700%);
    }

    /* radius top-left -> sweep out of the bottom-right */
    html._ln .inner_hero header .wrapper:after,
    html._ln .wrp_footer_bottom:after,
    html._ln .treatements_item:nth-child(2):before,
    html._ln .traitements_item:first-child .traitements_item_info:before {
        -webkit-clip-path: polygon(400% 400%, -200% 400%, 400% -200%);
                clip-path: polygon(400% 400%, -200% 400%, 400% -200%);
    }

    html._ln .inner_hero header .wrapper._ln-in:after,
    html._ln .wrp_footer_bottom._ln-in:after,
    html._ln .treatements_item:nth-child(2)._ln-in:before,
    html._ln .traitements_item:first-child._ln-in .traitements_item_info:before {
        -webkit-clip-path: polygon(400% 400%, -700% 400%, 400% -700%);
                clip-path: polygon(400% 400%, -700% 400%, 400% -700%);
    }

    /* radius bottom-left -> sweep out of the top-right */
    html._ln .treatements_item:nth-last-child(2):before,
    html._ln .traitements_item:last-child .traitements_item_info:before {
        -webkit-clip-path: polygon(400% -300%, -200% -300%, 400% 300%);
                clip-path: polygon(400% -300%, -200% -300%, 400% 300%);
    }

    html._ln .treatements_item:nth-last-child(2)._ln-in:before,
    html._ln .traitements_item:last-child._ln-in .traitements_item_info:before {
        -webkit-clip-path: polygon(400% -300%, -700% -300%, 400% 800%);
                clip-path: polygon(400% -300%, -700% -300%, 400% 800%);
    }

    /* ==================================================================
     * 6. .traitements_item row rules. The row clips its overflow, so the
     *    replica sits inside the padding box.
     * ================================================================== */
    html._ln .traitements_item {
        position: relative;
        border-bottom-color: transparent;
    }

    html._ln .traitements_item:after {
        content: '';
        position: absolute;
        left: 0;
        right: 0;
        bottom: 0;
        height: 1px;
        /*background: var(--line-color);*/
        border-bottom: 1px solid var(--line-color);
        pointer-events: none;
        transform: scaleX(0);
        transform-origin: left center;
        transition: transform var(--line-dur) var(--line-ease);
        z-index: 2;
    }

    html._ln .traitements_item._ln-in:after {
        transform: scaleX(1);
    }

    /* ==================================================================
     * 7. Closed rings - stroked in with a conic mask, the same trick the
     *    instagram circle above uses.
     * ================================================================== */
    html._ln .main_text blockquote,
    html._ln .valuers_header_item {
        position: relative;
    }

    html._ln .main_text blockquote,
    html._ln .valuers_header_item,
    html._ln .cabinet_block_left .cabinet_block_orn1 {
        border-color: transparent;
    }

    html._ln .main_text blockquote:before,
    html._ln .valuers_header_item:before,
    html._ln .cabinet_block_left .cabinet_block_orn1:before,
    html._ln .assistant_item_image:before {
        --brunon-ring: 0%;
        -webkit-mask-image: conic-gradient(#000 var(--brunon-ring), transparent 0);
                mask-image: conic-gradient(#000 var(--brunon-ring), transparent 0);
        transition: --brunon-ring var(--ring-dur) linear;
    }

    html._ln .main_text blockquote:before,
    html._ln .valuers_header_item:before,
    html._ln .cabinet_block_left .cabinet_block_orn1:before {
        content: '';
        position: absolute;
        left: -1px;
        right: -1px;
        top: -1px;
        bottom: -1px;
        box-sizing: border-box;
        border: 1px solid var(--line-color);
        pointer-events: none;
        z-index: 0;
    }

    html._ln .main_text blockquote:before {
        border-radius: 20px;
    }

    html._ln .valuers_header_item:before {
        border-radius: 30px;
    }

    html._ln .cabinet_block_left .cabinet_block_orn1:before {
        border-radius: 50%;
    }

    html._ln .main_text blockquote._ln-in:before,
    html._ln .valuers_header_item._ln-in:before,
    html._ln .cabinet_block_left._ln-in .cabinet_block_orn1:before,
    html._ln .assistant_item_image._ln-in:before {
        --brunon-ring: 100%;
    }

    /* ==================================================================
     * 8. The arch beside the cabinet photo - three legs and one long
     *    sweeping radius, so it is wiped in left to right instead.
     * ================================================================== */
    html._ln .cabinet_block_left .cabinet_block_orn2 {
        -webkit-clip-path: inset(0 100% 0 0);
                clip-path: inset(0 100% 0 0);
        transition: -webkit-clip-path var(--curve-dur) var(--line-ease) var(--curve-delay),
                    clip-path var(--curve-dur) var(--line-ease) var(--curve-delay);
    }

    html._ln .cabinet_block_left._ln-in .cabinet_block_orn2 {
        -webkit-clip-path: inset(0 0 0 0);
                clip-path: inset(0 0 0 0);
    }
}

/* =====================================================================
 * Lines that style.min.css drops at <= 968px keep their own breakpoint,
 * so a replica never outlives the border it stands in for.
 * ===================================================================== */
@media screen and (min-width: 969px) {

    html._ln .contactez_block,
    html._ln .footer_block,
    html._ln .footer_bottom,
    html._ln .return_block._border,
    html._ln .notre_equipe_block,
    html._ln .wrp_block_404 {
        position: relative;
        border-right-color: transparent;
    }

    html._ln .return_block._lborder {
        position: relative;
        border-left-color: transparent;
    }

    html._ln .contactez_block:after,
    html._ln .footer_block:after,
    html._ln .footer_bottom:after,
    html._ln .return_block._border:after,
    html._ln .notre_equipe_block:after,
    html._ln .wrp_block_404:after,
    html._ln .return_block._lborder:before {
        content: '';
        position: absolute;
        top: 0;
        bottom: 0;
        width: 1px;
        background: var(--line-color);
        pointer-events: none;
        transform: scaleY(0);
        transform-origin: top center;
        transition: transform var(--line-dur) var(--line-ease);
    }

    html._ln .contactez_block:after,
    html._ln .footer_block:after,
    html._ln .footer_bottom:after,
    html._ln .notre_equipe_block:after,
    html._ln .wrp_block_404:after {
        right: -1px;
    }

    html._ln .return_block._border:after {
        right: 0;
    }

    html._ln .return_block._lborder:before {
        left: 0;
    }

    html._ln .contactez_block._ln-in:after,
    html._ln .footer_block._ln-in:after,
    html._ln .footer_bottom._ln-in:after,
    html._ln .return_block._border._ln-in:after,
    html._ln .notre_equipe_block._ln-in:after,
    html._ln .wrp_block_404._ln-in:after,
    html._ln .return_block._lborder._ln-in:before {
        transform: scaleY(1);
    }

    /* ------------------------------------------------------------------
     * Matched pairs of verticals whose borders also stop at 968px.
     * ------------------------------------------------------------------ */
    html._ln .section_cabinet_block,
    html._ln .container_content_page {
        position: relative;
        border-left-color: transparent;
        border-right-color: transparent;
    }

    html._ln .section_cabinet_block:after,
    html._ln .container_content_page > .line_v {
        content: '';
        position: absolute;
        left: 0;
        right: 0;
        top: 0;
        bottom: -220px;
        box-sizing: border-box;
        border-left: 1px solid var(--line-color);
        border-right: 1px solid var(--line-color);
        pointer-events: none;
        transform: scaleY(0);
        transform-origin: top center;
        transition: transform var(--line-dur) var(--line-ease);
    }

    html._ln .section_cabinet_block._ln-in:after,
    html._ln .container_content_page._ln-in > .line_v {
        transform: scaleY(1);
    }

    /* ==================================================================
     * Top + bottom pair on one section - also gone at 968px.
     * ================================================================== */
    html._ln .section_cabinet {
        position: relative;
        border-top-color: transparent;
        border-bottom-color: transparent;
    }

    html._ln .section_cabinet:before,
    html._ln .section_cabinet:after {
        content: '';
        position: absolute;
        left: 0;
        right: 0;
        height: 1px;
        background: var(--line-color);
        pointer-events: none;
        transform: scaleX(0);
        transition: transform var(--line-dur) var(--line-ease);
    }

    html._ln .section_cabinet:before {
        top: -1px;
        transform-origin: left center;
    }

    html._ln .section_cabinet:after {
        bottom: -1px;
        transform-origin: right center;
    }

    html._ln .section_cabinet._ln-in:before,
    html._ln .section_cabinet._ln-in:after {
        transform: scaleX(1);
    }
}

html._ln .container_content_page:before{
    display: none!important;
}
html._ln .container_content_page:after{
    display: none!important;
}