/*
  ____   ____    _     ____  _____    ____
 / ___| |  _ \  / \   / ___|| ____|  | ___|
 \___ \ | |_) |/ _ \ | |    |  _|    |___ \
  ___) ||  __// ___ \| |___ | |___    ___) |
 |____/ |_|  /_/   \_\\____||_____|  |____/

 space 5 ♦ CSS
 [Astrum Template]

*/

/*   (1) Base settings ------- ------- ------- ------- ------- */

@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@400;700&family=Roboto&display=swap');

/*   :: import ---   */

:root {

    /* Fonts 2 */
    --wf: 'Montserrat', sans-serif;
    --wf2: 'Roboto', sans-serif;

    /* Transitus START */

    /* Theme colors */
    --color-primary: #6c6f70;
    --color-primary-light: #878d8d;
    --color-primary-dark: #4d5055;
    --color-secondary: #05e745;
    --color-secondary-light: #0afc4c;
    --color-secondary-dark: #04cd3d;
    --color-accent: #f7685b;
    --color-accent-light: #fc8076;
    --color-accent-dark: #e75548;
    --color-dark: #282828;
    --color-white: #ffffff;
    --color-bg: #ffffff;

    /* Content */
    --color-text: var(--color-dark);
    --color-text-grey: #737373;
    --color-text-light-grey: #a2a2a2;
    --color-text-accent: var(--color-accent);
    --color-text-heading: var(--color-primary-dark);
    --color-link: var(--color-primary);
    --color-link-hover: var(--color-text);
    --color-link-active: var(--color-text);
    --color-icon-grey: var(--color-text-grey);
    --color-icon-active: var(--color-text);
    --thover: rgba(0, 0, 0, 0.10);
    --trans: all 0.2s;

    /* Font sizes */
    --size-text: 16px;
    --size-text-note: 13px;
    --size-heading-xl: 1.4rem;
    --size-heading-l: 1.34rem;
    --size-heading-m: 1.26rem;
    --size-heading-s: 1.2rem;
    --size-heading-xs: 1.1rem;

    /* Support colors */
    --color-orange: #ffb946;
    --color-red: #f7685b;
    --color-green: #2ed47a;
    --color-blue: #104ae0;
    --color-purple: #885af8;

    /* UI Sizes */
    --ui-size: 36px;
    --ui-size-s: 24px;
    --ui-size-l: 44px;
    --ui-radius: 0;

    /* UI Colors */
    --ui-bg-100: #eeeeee;
    --ui-bg-200: #e3e3e3;
    --ui-bg-300: #e1e1e1;
    --ui-input-bg: #ffffff;
    --ui-input-bg-active: #efefef;
    --ui-input-bg-disabled: #f4f4f4;
    --ui-color-primary: #282828;
    --ui-color-primary-active: var(--color-primary);
    --ui-color-primary-hover: #3b3b3b;
    --ui-color-text: var(--color-dark);
    --ui-color-text-hover: var(--ui-color-primary-hover);
    --ui-color-text-active: var(--ui-color-primary);
    --ui-color-text-disabled: #bababa;
    --ui-color-text-grey: #737373;
    --ui-color-text-light-grey: #9b9b9b;
    --ui-color-placeholder: var(--ui-color-text-grey);
    --ui-color-border: #636363;
    --ui-color-border-active: #141414;
    --ui-color-border-hover: #404040;

    /* Buttons */
    --color-btn: var(--ui-color-primary);
    --color-btn-hover: var(--ui-color-primary-hover);
    --color-btn-text: var(--color-white);
    --color-btn-text-hover: var(--color-white);
    --color-btn-sec: #e0e0e0;
    --color-btn-sec-hover: #c6c6c6;
    --color-btn-sec-text: var(--color-primary);
    --color-btn-sec-text-hover: var(--color-primary);

    /* UI Borders */
    --ui-input-border: 1px solid var(--ui-color-border);
    --ui-input-border-active: 1px solid var(--ui-color-border-active);
    --ui-input-border-hover: 1px solid var(--ui-color-border-hover);


    /*Transitus END */

    /* UI Shadows */
    --ui-shadow-focus: 0 5px 10px rgba(0, 0, 0, 0.1), 0 0 0 2px #b5c9fc;
    --ui-shadow-error: 0 5px 10px rgba(0, 0, 0, 0.1), 0 0 0 2px #fcb5b5;

    /*UI Transitions */
    --ui-trans: 0.16s ease;

    /* Box-Shadows */
    --sp-shadow-xs: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
    --sp-shadow-s: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06);
    --sp-shadow-m: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
    --sp-shadow-l: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
    --sp-shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
    --sp-shadow-inset: inset 0 2px 4px 0 rgba(0, 0, 0, 0.06);


    /* Objects */
    --gf: 8px;
    /* grid flow */
    --gap: 16px;
    /* grid gap */
    --header-height: 48px;
    --wid: 1280px;
    /* max-width of content */
    --content-width: 800px;
    /* max-width of text content */


    /* SP5 DEV */
    --sp5-1: #05e745;
    --sp5-2: #222e4e;

    --table-border: #DBDDE0;

}

/*   :: VARS ---   */

/*   :: Base tags ---   */
*,
::after,
::before {
    box-sizing: border-box;
}

html,
body {
    height: 100%;
}

body {
    color: var(--color-text);
    font-family: var(--wf), Helvetica, Arial, sans-serif;
    font-size: var(--size-text);
    background: var(--color-bg);
    margin: 0;
    padding: 0;
}

img {
    max-width: 100%;
    height: auto;
}

a,
a:link,
a:visited,
a:active {
    color: var(--color-link);
    text-decoration: none;
    transition: var(--trans);
}

a:hover {
    color: var(--color-link-hover);
}


/*   (2) SP5 Tokens ------- ------- ------- ------- ------- */

.wid {
    width: 100%;
    max-width: var(--wid);
    min-width: 748px;
    margin: 0 auto;
}

.wa {
    width: auto;
}

.fw {
    width: 100%;
}


.wf {
    font-family: var(--wf);
}

.wf2 {
    font-family: var(--wf2);
}

.cimg,
.tac {
    text-align: center;
}

.tal {
    text-align: left;
}

.tar {
    text-align: right;
}


.fb {
    font-weight: bold;
}

.fi {
    font-style: italic;
}

.fsn {
    font-size: var(--size-text-note);
}

.ca {
    color: var(--color-accent);
}

.cp {
    color: var(--color-primary);
}

.cg {
    color: var(--color-text-grey);
}

.clg {
    color: var(--color-text-light-grey);
}

.nwp {
    white-space: nowrap;
}

.hide-on-mobile,
.hom {
    display: block;
}

.show-on-mobile,
.som {
    display: none;
}

.dn {
    display: none !important;
}

.clicked-item {
    cursor: pointer;
    transition: all 0.2s;
    text-decoration: none;
}

.clicked-item:hover {
    transition: all 0.2s;
    text-decoration: underline;
}


.visuallyhidden {
    border: 0;
    clip: rect(0 0 0 0);
    height: auto;
    margin: 0;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px;
    white-space: nowrap;
}

@media screen and (max-width: 768px) {
    :ROOT {
        --wid: 100%;
    }

    .wid {
        max-width: 100%;
        min-width: 100%;
    }

    .hide-on-mobile,
    .hom {
        display: none;
    }

    .show-on-mobile,
    .som {
        display: block;
    }
}

/*   (3) SP5 Service classes ------- ------- ------- ------- ------- */

/*   :: Pads ---   */
.pad-1 {
    width: 100%;
    height: 1px;
}

.pad-4 {
    width: 100%;
    height: 4px;
}

.pad-x1 {
    width: 100%;
    height: var(--gf);
}

.pad-x2 {
    width: 100%;
    height: calc(var(--gf) * 2);
}

.pad-x3 {
    width: 100%;
    height: calc(var(--gf) * 3);
}

.pad-x4 {
    width: 100%;
    height: calc(var(--gf) * 4);
}

.pad-x5 {
    width: 100%;
    height: calc(var(--gf) * 5);
}

.pad-x6 {
    width: 100%;
    height: calc(var(--gf) * 6);
}

.pad-x8 {
    width: 100%;
    height: calc(var(--gf) * 8);
}

/*   :: SP5 icons ---   */
[class*='spis-'] {
    stroke: var(--color-icon-grey);
    fill: none;
    flex-shrink: 0;
}

[class*='spis-']:hover {
    stroke: var(--color-icon-active);
}

.spis {
    stroke: var(--color-icon-grey);
    fill: none;
}

.spis-16 {
    width: 16px;
    height: 16px;
}

.spis-24 {
    width: 24px;
    height: 24px;
}

.spis-32 {
    width: 32px;
    height: 32px;
}

[class*='spif-'] {
    fill: var(--color-icon-grey);
    stroke: none;
    flex-shrink: 0;
}

[class*='spif-']:hover {
    fill: var(--color-icon-active);
}

.spif {
    fill: var(--color-icon-grey);
    stroke: none;
}


.spif-16 {
    width: 16px;
    height: 16px;
}

.spif-24 {
    width: 24px;
    height: 24px;
}

.spif-32 {
    width: 32px;
    height: 32px;
}

.itext {
    display: inline-flex;
    align-items: center;
    gap: 4px;
}

[class*='itext-'] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
}

[class*='itext-'] img {
    flex-shrink: 0;
}

[class*='itext-'] svg {
    flex-shrink: 0;
}

/* 16 */
.itext-16 img {
    width: 16px;
    flex-shrink: 0;
}

.itext-16 svg {
    width: 16px;
    height: 16px;
}

/* 24 */
.itext-24 img {
    width: 24px;
}

.itext-24 svg {
    width: 24px;
    height: 24px;
}

/* 32 */
.itext-32 img {
    width: 32px;
}

.itext-32 svg {
    width: 32px;
    height: 32px;
}

/* 40 */
.itext-40 img {
    width: 40px;
}

.itext-40 svg {
    width: 40px;
    height: 40px;
}

/* 48 */
.itext-48 img {
    width: 48px;
}

.itext-48 svg {
    width: 48px;
    height: 48px;
}

/* itext pan */
.itext-pan {
    display: flex;
    padding: var(--gap) 0;
    margin: var(--gf) 0;
}

.itext-pan [class*='itext-'] {
    margin-right: var(--gap);
}

/*   :: Made in space5 ---   */
.madeinsp5-wrapper {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 4px;
}

.madeinsp5-wrapper .madeinsp5 {
    margin-top: 3px;
}

.madeinsp5 {
    display: inline-block;
    background: transparent url("../img/sp5-logo.svg") no-repeat;
    background-size: contain;
    width: 56px;
    height: 33px;
    filter: grayscale(100%);
    transition: var(--trans);
}

.madeinsp5:hover {
    filter: none;
}

/*   :: Video responsive ---   */
.video-responsive {
    position: relative;
    padding-bottom: 56.25%;
    height: 0;
    overflow: hidden;
}

.video-responsive iframe,
.video-responsive object,
.video-responsive embed {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

/* /Video responsive */

/*   (4) SP5 Grid ------- ------- ------- ------- ------- */
.grid-wr {
    display: grid;
    grid-template-columns: 1fr minmax(320px, var(--wid)) 1fr;
}

.grid-a {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(248px, 1fr));
    grid-gap: var(--gap);
}

.grid-line {
    grid-column: 1/-1;
}

.grid-a240 {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
    grid-gap: var(--gap);
}

[class*='grid-c-'] {
    display: grid;
    grid-gap: var(--gap);
    align-items: start;
}

.grid-c-1 {
    grid-template-columns: 1fr;
}

.grid-c-2 {
    grid-template-columns: 1fr 1fr;
}

.grid-c-3 {
    grid-template-columns: 1fr 1fr 1fr;
}

.grid-c-4 {
    grid-template-columns: 1fr 1fr 1fr 1fr;
}

.grid-c-5 {
    grid-template-columns: 1fr 1fr 1fr 1fr 1fr;
}

.grid-c-6 {
    grid-template-columns: 1fr 1fr 1fr 1fr 1fr 1fr;
}

.grid-c-7 {
    grid-template-columns: 1fr 1fr 1fr 1fr 1fr 1fr 1fr;
}

.grid-c-8 {
    grid-template-columns: 1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr;
}

.grid-c-9 {
    grid-template-columns: 1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr;
}

.grid-c-10 {
    grid-template-columns: 1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr;
}

.grid-c-11 {
    grid-template-columns: 1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr;
}

.grid-c-12 {
    grid-template-columns: 1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr;
}

.grid-demo {
    display: grid;
    grid-template-columns: 1fr 1fr;
}


.grid-rooms {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    grid-template-rows: repeat(4, 1fr);
    gap: var(--gap);
    grid-template-areas:
        "a a a b b b"
        "c c c d d d"
        "e e e f f f"
        "g g h h i i";
}

.grid-services {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: var(--gap);
}

.grid-services .pcard:nth-child(1),
.grid-services .pcard:nth-child(2),
.grid-services .pcard:nth-child(3) {
    grid-column: span 2;
}


.grid-services .pcard:nth-child(4),
.grid-services .pcard:nth-child(5) {
    grid-column: span 3;
}

.grid-rooms .pcard:nth-child(1) {
    grid-area: a;
}

.grid-rooms .pcard:nth-child(2) {
    grid-area: b;
}

.grid-rooms .pcard:nth-child(3) {
    grid-area: c;
}

.grid-rooms .pcard:nth-child(4) {
    grid-area: d;
}

.grid-rooms .pcard:nth-child(5) {
    grid-area: e;
}

.grid-rooms .pcard:nth-child(6) {
    grid-area: f;
}

.grid-rooms .pcard:nth-child(7) {
    grid-area: g;
}

.grid-rooms .pcard:nth-child(8) {
    grid-area: h;
}

.grid-rooms .pcard:nth-child(9) {
    grid-area: i;
}

@media screen and (max-width: 768px) {
    [class*='grid-c-'] {
        grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    }

    .grid-rooms {
        grid-template-columns: repeat(2, 1fr);
        grid-template-areas:
            "a a"
            "b b"
            "c c"
            "d d"
            "e e"
            "f f"
            "g g"
            "h h"
            "i i";
    }

    .grid-services {
        grid-template-columns: 1fr;
    }

    .grid-services .pcard {
        grid-column: span 1 !important;
    }

}


/*   (5) SP5 Buttons ------- ------- ------- ------- ------- */
.btn,
a.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--gf);
    padding: 0 24px;
    border-radius: var(--ui-radius);
    border: 1px solid transparent;
    cursor: pointer;
    color: var(--color-btn-text);
    background: var(--color-btn);
    transition: var(--ui-trans);
    font-size: var(--size-text);
    line-height: 1;
    font-family: inherit;

    height: var(--ui-size);
}

.btn:hover {
    transition: var(--ui-trans);
    background: var(--color-btn-hover);
    color: var(--color-btn-text-hover);
}

.btn--sec,
a.btn--sec {
    background: var(--color-btn-sec);
    color: var(--color-btn-sec-text);
}

.btn--sec:hover {
    background: var(--color-btn-sec-hover);
    color: var(--color-btn-sec-text-hover);
}

/* btn icon */
.btn svg {
    fill: none;
    stroke: currentColor;
    width: 16px;
    height: 16px;
}

.btn svg.spif {
    fill: currentColor;
    stroke: none;
}

.btn:hover svg.spif {
    fill: currentColor;
    stroke: none;
}

.btn svg.spis {
    stroke: currentColor;
    fill: none;
}

.btn:hover svg.spis {
    stroke: currentColor;
    fill: none;
}

.btn img {
    width: 16px;
    height: 16px;
}


/* btn sizes --- */
.btn--s,
a.btn--s,
.btn.ui-s,
a.btn.ui-s {
    height: var(--ui-size-s);
    padding: 0 16px;
    font-size: 0.8rem;
}

.ui-s svg,
.btn--s svg {
    width: 16px;
    height: 16px;
}

.btn--l,
a.btn--l,
.btn.ui-l,
a.btn.ui-l {
    height: var(--ui-size-l);
    padding: 0 32px;
}

.btn--l svg,
.btn.ui-l svg {
    width: 16px;
    height: 16px;
}

/* btn outline */
.btn--outline,
a.btn--outline {
    background: transparent;
    color: var(--color-text);
    border: 1px solid var(--ui-color-border);
}

.btn--outline svg {
    stroke: var(--color-text);
}

.btn--outline:hover {
    color: var(--color-text);
    background: var(--color-btn-sec-hover);
    border-color: var(--ui-color-border-hover);
}

.btn--outline:hover svg {
    stroke: currentColor;
}

/* /btn outline */

/* btn ghost */
.btn--ghost,
a.btn--ghost {
    background: transparent;
    color: var(--color-text);
    border: 1px solid transparent;
}

.btn--ghost svg {
    stroke: var(--color-text);
}

.btn--ghost:hover {
    background: var(--thover);
    color: var(--color-text);
    border-color: transparent;
}

.btn--ghost:hover svg {
    stroke: currentColor;
}

/* /btn ghost */

/* btn ui */
.btn--ui,
a.btn--ui {
    border: none;
    background: none;
    padding: 0;
    width: var(--ui-size);
    height: var(--ui-size);
    color: var(--color-icon-grey);
    font-size: var(--size-text-note);
}

.btn--s.btn--ui,
.ui-s.btn--ui,
a.ui-s.btn--ui {
    padding: 0;
    width: var(--ui-size-s);
    height: var(--ui-size-s);
}

.btn--l.btn--ui,
.ui-l.btn--ui,
a.ui-l.btn--ui {
    padding: 0;
    width: var(--ui-size-l);
    height: var(--ui-size-l);
}

.btn--ui svg {
    stroke: currentColor;
    margin: 0;
}

.btn--ui:hover {
    background: var(--thover);
    color: var(--color-text);
}

/* /btn ui*/

/* btn micro */
.btn--micro,
a.btn--micro {
    padding: 0;
    font-size: var(--size-text-note);
    background: transparent;
    border: none;
    color: var(--color-icon-grey);
    height: auto;
}

.btn--micro svg {
    width: calc(var(--gf) * 2);
    height: calc(var(--gf) * 2);
    stroke: var(--color-icon-grey);
}

.btn--micro:hover {
    color: var(--color-text);
    background: none;
}

.btn--micro:hover svg {
    stroke: var(--color-text);
}

/* /btn micro */

/* btn disabled */
a.btn--disabled,
.btn--disabled,
.btn:disabled,
a.btn:disabled {
    color: var(--ui-color-text-disabled);
    background: var(--ui-input-bg-disabled);
    box-shadow: none;
    cursor: default;
    user-select: none;
    -webkit-user-select: none;
}

a.btn--disabled:hover,
.btn--disabled:hover,
.btn:disabled:hover,
a.btn:disabled:hover {
    color: var(--ui-color-text-disabled);
    background: var(--ui-input-bg-disabled);
    cursor: default;
    box-shadow: none;
    user-select: none;
    -webkit-user-select: none;
}

a.btn--disabled svg,
.btn--disabled svg,
.btn:disabled svg,
a.btn:disabled svg {
    stroke: var(--ui-color-text-disabled);
}

/* btn pan */
.btn-pan {
    display: flex;
    padding: calc(var(--gf) * 2) 0;
    margin: var(--gf) 0;
    gap: var(--gap);
}

.btn-pan--thin {
    padding: 0;
    margin: 0;
}

.btn-pan--center {
    justify-content: center;
}

.btn-pan--right {
    justify-content: flex-end;
}

.btn-pan--col {
    flex-flow: column;
}


/* /btn pan */

/*   (6) SP5 Forms ------- ------- ------- ------- ------- */
input {
    accent-color: var(--ui-color-primary);
}

.sf {
    display: flex;
    flex-direction: column;
    gap: var(--gap);
}

.sf__footer {
    margin-top: var(--gf);
}

.sf__form {}

.sf__fieldset {
    margin: 0;
    border: 1px solid rgba(0, 0, 0, 0.1);
    padding: 16px;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    gap: var(--gf);
    border-radius: calc(var(--ui-radius) * 2);
}

.sf__fieldset:not(:last-child) {
    margin-bottom: calc(var(--gap) * 1.5);
}

.sf__legend {
    font-size: var(--size-heading-xs);
    color: var(--color-primary);
    padding: var(--gf);
}

.sf__line {
    margin: 0 0 var(--gap) 0;
}

.sf .sf__line {
    margin: 0;
}

.sf__line:last-child {
    margin: 0;
}

.sf__label {
    display: flex;
    align-items: center;
    gap: calc(var(--gf) / 2);
    color: var(--ui-color-text);
}

.sf__label--col {
    flex-direction: column;
    align-items: flex-start;
}

.sf__label+.sf__input {
    margin-top: calc(var(--gf) / 2);
}

.sf__label+.sf__select {
    margin-top: calc(var(--gf) / 2);
}

.sf__label+.sf__textarea {
    margin-top: calc(var(--gf) / 2);
}

.sf__label:has(input:disabled) {
    color: var(--ui-color-text-disabled);
}

.sf__input,
.sf__textarea,
.sf__select {
    border: var(--ui-input-border);
    background: var(--ui-input-bg);
    color: var(--ui-color-text);
    font-size: 14px;
    border-radius: var(--ui-radius);
    width: 200px;
}

.sf__input.fw,
.sf__textarea.fw,
.sf__select.fw {
    width: 100%;
    max-width: 100%;
}

.sf__input--a,
.sf__textarea--a,
.sf__select--a {
    width: auto;
    max-width: 200px;
}

.sf__input {
    padding: 0 12px;
    height: var(--ui-size);
}

.sf__select {
    padding: 0 12px;
    height: var(--ui-size);

    /*todo appearance with arrows   */
    /*
        -moz-appearance: none;
        -webkit-appearance: none;
        appearance: none;*/
}

.sf__input:hover {
    border: var(--ui-input-border-hover);
}

.sf__textarea:hover {
    border: var(--ui-input-border-hover);
}

.sf__select:hover {
    border: var(--ui-input-border-hover);
}

button:focus,
.btn:focus,
a.btn:focus,
.sf__input:focus,
.sf__textarea:focus,
.sf__select:focus {
    outline: none;
}

button:focus-visible,
.btn:focus-visible,
a.btn:focus-visible,
.sf__input:focus-visible,
.sf__textarea:focus-visible,
.sf__select:focus-visible {
    box-shadow: var(--ui-shadow-focus);
}

.sf__select option {
    padding: 8px;
}

.sf__input::placeholder {
    color: var(--ui-color-placeholder);
    font-family: inherit;
}

.sf__textarea {
    padding: 8px;
    width: 100%;
}

.sf__textarea::placeholder {
    color: var(--ui-color-placeholder);
    font-family: inherit;
}

.sf__input--m,
.sf__select--m {
    width: 168px;
}

.sf__textarea--m {
    width: 75%;
}

.sf__input--s,
.sf__select--s {
    width: 92px;
}

.sf__textarea--s {
    width: 50%;
}

.sf__input--a,
.sf__select--a {
    width: fit-content;
}

.sf__input.ui-s,
.sf__select.ui-s {
    height: var(--ui-size-s);
}

.sf__input.ui-l,
.sf__select.ui-l {
    height: var(--ui-size-l);
}

.sf__select[multiple] {
    height: auto;
    overflow: hidden;
}

.sf__input[type="range"] {
    padding: 0;
}

.sf__input--error,
.sf__textarea--error,
.sf__select--error {
    box-shadow: var(--ui-shadow-error);
}

.sf__input--error::placeholder,
.sf__textarea--error::placeholder,
.sf__select--error::placeholder {
    color: var(--color-red);
}

/* SP Checkbox and Radio */

@supports (-webkit-appearance: none) or (-moz-appearance: none) {

    input[type=checkbox],
    input[type=radio] {
        --active-inner: var(--ui-input-bg);
        --focus: var(--color-primary);
        /*  --disabled: #F6F8FF;
          --disabled-inner: #E1E6F9;*/
        -webkit-appearance: none;
        -moz-appearance: none;
        height: 21px;
        outline: none;
        display: inline-block;
        vertical-align: top;
        position: relative;
        margin: 0;
        cursor: pointer;
        border: 1px solid var(--bc, var(--ui-color-border));
        background: var(--b, var(--ui-input-bg));
        transition: background 0.3s, border-color 0.3s, box-shadow 0.2s;
        flex-shrink: 0;
    }

    input[type=checkbox]:after,
    input[type=radio]:after {
        content: "";
        display: block;
        left: 0;
        top: 0;
        position: absolute;
        transition: transform 0.3s var(--d-t-e, ease), opacity var(--d-o, 0.2s);
    }

    input[type=checkbox]:checked,
    input[type=radio]:checked {
        --b: var(--ui-color-primary);
        --bc: var(--ui-color-border-active);
        --d-o: .3s;
        /* delay opacity */
        --d-t: .6s;
        /* delay transform */
        --d-t-e: cubic-bezier(.2, .85, .32, 1.2);
        /* delay ease */
    }

    input[type=checkbox]:disabled,
    input[type=radio]:disabled {
        --b: var(--ui-input-bg-disabled);
        cursor: not-allowed;
        opacity: 0.9;
    }

    input[type=checkbox]:disabled:checked,
    input[type=radio]:disabled:checked {
        --b: var(--ui-input-bg-disabled);
        --bc: var(--ui-color-border);
    }

    input[type=checkbox]:disabled+label,
    input[type=radio]:disabled+label {
        cursor: not-allowed;
    }

    input[type=checkbox]:hover:not(:checked):not(:disabled),
    input[type=radio]:hover:not(:checked):not(:disabled) {
        --bc: var(--ui-color-border-hover);
    }

    input[type=checkbox]:focus,
    input[type=radio]:focus {
        box-shadow: 0 0 0 var(--focus);
    }

    input[type=checkbox]:not(.sp-switch),
    input[type=radio]:not(.sp-switch) {
        width: 21px;
    }

    input[type=checkbox]:not(.sp-switch):after,
    input[type=radio]:not(.sp-switch):after {
        opacity: var(--o, 0);
    }

    input[type=checkbox]:not(.sp-switch):checked,
    input[type=radio]:not(.sp-switch):checked {
        --o: 1;
    }

    input[type=checkbox]+label,
    input[type=radio]+label {
        font-size: 14px;
        line-height: 21px;
        display: inline-block;
        vertical-align: top;
        cursor: pointer;
        margin-left: 4px;
    }

    input[type=checkbox]:not(.sp-switch) {
        border-radius: 8px;
    }

    input[type=checkbox]:not(.sp-switch):after {
        width: 5px;
        height: 9px;
        border: 2px solid var(--active-inner);
        border-top: 0;
        border-left: 0;
        left: 7px;
        top: 4px;
        transform: rotate(var(--r, 20deg));
    }

    input[type=checkbox]:not(.sp-switch):checked {
        --r: 43deg;
    }

    input[type=checkbox].sp-switch {
        width: 38px;
        border-radius: 11px;
    }

    input[type=checkbox].sp-switch:after {
        left: 2px;
        top: 2px;
        border-radius: 50%;
        width: 15px;
        height: 15px;
        background: var(--ab, var(--ui-color-border));
        transform: translateX(var(--x, 0));
    }

    input[type=checkbox].sp-switch:checked {
        --ab: var(--active-inner);
        --x: 17px;
    }

    input[type=checkbox].sp-switch:disabled:not(:checked):after {
        opacity: 0.6;
    }

    input[type=checkbox]:disabled:not(.sp-switch):after {
        border-color: var(--ui-color-border);
    }

    input[type=radio] {
        border-radius: 50%;
    }

    input[type=radio]:after {
        width: 19px;
        height: 19px;
        border-radius: 50%;
        background: var(--active-inner);
        opacity: 0;
        transform: scale(var(--s, 0.7));
    }

    input[type=radio]:checked {
        --s: .5;
    }

    input[type=radio]:disabled:after {
        background: var(--ui-color-border);
    }
}

/* /SP Checkbox and Radio */

/* radio-group */
.sp-radio-group {
    display: flex;
    align-items: stretch;
    justify-content: center;
    flex-wrap: wrap;
    row-gap: 4px;
}

.sp-radio-group__item {
    display: flex;
    align-items: stretch;
    justify-content: center;
}

.sp-radio-group input[type=radio] {
    clip: rect(0 0 0 0);
    clip-path: inset(100%);
    height: 1px;
    overflow: hidden;
    position: absolute;
    white-space: nowrap;
    width: 1px;
}

.sp-radio-group-item__text {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--gf);

    cursor: pointer;
    background-color: var(--color-white);
    padding: var(--gf) var(--gap);
    position: relative;
    margin-left: -1px;
    border: var(--ui-input-border);
    letter-spacing: .05em;
    color: var(--ui-color-text);
    text-align: center;
    transition: background-color .3s ease;
}

.sp-radio-group-item__text svg {
    width: 16px;
    height: 16px;
    fill: none;
    stroke: var(--ui-color-text);
}

.sp-radio-group input[type="radio"]:checked+.sp-radio-group-item__text {
    border: 1px solid var(--ui-color-border-active);
    background-color: var(--ui-input-bg-active);
    z-index: 1;
    color: var(--ui-color-text-active);
}

.sp-radio-group input[type="radio"]:checked+.sp-radio-group-item__text svg {
    stroke: currentColor;
}

.sp-radio-group__item:first-child .sp-radio-group-item__text {
    border-radius: var(--gf) 0 0 var(--gf);
}

.sp-radio-group__item:last-child .sp-radio-group-item__text {
    border-radius: 0 var(--gf) var(--gf) 0;

}

/* Disabled */
.sp-radio-group input[type=radio]:disabled+.sp-radio-group-item__text {
    background: var(--ui-input-bg-disabled);
    color: var(--ui-color-text-disabled);
    cursor: default;

    -webkit-user-select: none;
    user-select: none;
}

/* /radio-group */

/* SP Radio Toggle */
.sp-radio-toggle {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 4px;
    padding: 4px;
    border-radius: calc(var(--ui-size) / 2);
    background: var(--ui-input-bg-disabled);
    font-size: var(--size-text-note);
    transition: var(--ui-trans);
    color: var(--ui-color-text);
    width: fit-content;
    height: var(--ui-size);
}

.sp-radio-toggle .sp-radio-toggle__label {
    flex: 1 1 auto;
    text-align: center;
}

.sp-radio-toggle .sp-radio-toggle__label input {
    opacity: 0;
    position: absolute;
    width: 0;
}

.sp-radio-toggle .sp-radio-toggle__label .sp-radio-toggle__text {
    height: calc(var(--ui-size) - 8px);
    display: flex;
    align-items: center;
    justify-content: start;
    gap: var(--gf);
    border-radius: var(--gap);
    padding: 0 var(--gf);
    transition: all .15s ease-in-out;
    color: var(--ui-color-text-disabled);
    cursor: pointer;
}

.sp-radio-toggle .sp-radio-toggle__label .sp-radio-toggle__text:hover {
    background: rgba(255, 255, 255, 0.6);
    color: var(--ui-color-text-hover);
}

.sp-radio-toggle .sp-radio-toggle__label input:checked+.sp-radio-toggle__text {
    background: var(--ui-color-primary);
    color: var(--color-white);
}

.sp-radio-toggle .sp-radio-toggle__label input:checked+.sp-radio-toggle__text:hover {
    background: var(--ui-color-primary-hover);
    color: var(--color-white);
}

/* /SP Radio Toggle */

/* SP Radio Box    */
.sp-radio-box-wrapper {
    display: flex;
    justify-content: start;
    align-items: center;
    flex-wrap: wrap;
    gap: var(--gf);

    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
}

.sp-radio-box__input:checked+.sp-radio-box-card {
    border-color: var(--ui-shadow-focus);
    color: var(--ui-color-border-active);
}

.sp-radio-box__input:checked+.sp-radio-box-card:before {
    transform: scale(1);
    opacity: 1;
    background-color: var(--ui-color-primary-active);
    border-color: var(--ui-color-border-active);
}


.sp-radio-box__input:checked+.sp-radio-box-card .sp-radio-box__text {
    color: var(--ui-color-text-active);
}

.sp-radio-box__input:focus+.sp-radio-box-card {
    border-color: var(--ui-color-border-active);
    box-shadow: var(--ui-shadow-focus);
}

.sp-radio-box__input:focus+.sp-radio-box-card:before {
    transform: scale(1);
    opacity: 1;
}

.sp-radio-box-card {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: space-around;
    width: 80px;
    height: 80px;
    padding: 4px;
    border-radius: var(--gf);
    border: var(--ui-input-border);
    background-color: var(--color-white);
    transition: var(--ui-trans);
    cursor: pointer;
    position: relative;
}

.sp-radio-box-card:before {
    content: "";
    position: absolute;
    display: block;
    width: 0.75rem;
    height: 0.75rem;
    border: var(--ui-input-border);
    background-color: #fff;
    border-radius: 50%;
    top: 0.25rem;
    left: 0.25rem;
    opacity: 0;
    transform: scale(0);
    transition: var(--ui-trans);
}

.sp-radio-box-card:hover {
    border: var(--ui-input-border-hover);
}

.sp-radio-box-card:hover:before {
    transform: scale(1);
    opacity: 1;
}

.sp-radio-box-card__example {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border-radius: 50%;
}

.sp-radio-box-card__example img {
    width: 40px;
    height: 40px;
}

.sp-radio-box__text {
    color: var(--ui-color-text-grey);
    transition: 0.375s ease;
    text-align: center;
    font-size: 12px;
    line-height: 1;
}

input[type="radio"].sp-radio-box__input {
    clip: rect(0 0 0 0);
    clip-path: inset(100%);
    height: 1px;
    overflow: hidden;
    position: absolute;
    white-space: nowrap;
    width: 1px;
    outline: 1px solid red;
}

/* /SP Radio Box    */

.sp-tab-sections-group {}

.sp-tab-section {
    display: none;
}

.sp-tab-section--active {
    display: block;
}

/* SP Chips */
.sp-chips-pan {
    display: flex;
    flex-wrap: wrap;
    gap: var(--gf);
}

.sp-chip {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--gap);
    padding: 4px 4px 4px var(--gap);
    border-radius: var(--gap);
    background: rgba(0, 0, 0, 0.05);
    font-size: var(--size-text-note);
    transition: var(--ui-trans);
    cursor: pointer;
    color: rgba(0, 0, 0, 0.6);
}

.sp-chip:hover {
    background: rgba(0, 0, 0, 0.1);
    color: rgba(0, 0, 0, 0.8);
}

.sp-chip svg {
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: rgba(0, 0, 0, 0.1);
    width: 20px;
    height: 20px;
    padding: 2px;
    fill: none;
    stroke: rgba(0, 0, 0, 0.42);
    flex-shrink: 0;
}

.sp-chip:hover svg {
    stroke: rgba(0, 0, 0, 0.6);
}

.sp-chip--disabled {
    outline: 1px solid rgba(0, 0, 0, 0.1);
    background: transparent;
    color: rgba(0, 0, 0, 0.3);
}

.sp-chip--disabled:hover {
    background: transparent;
    cursor: auto;
    color: rgba(0, 0, 0, 0.3);
}

.sp-chip--disabled svg {
    opacity: 0.2;
}

.sp-chip--disabled:hover svg {
    opacity: 0.2;
}

/* /SP Chips */

/* SP Toggle */
.sp-toggle {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 4px;
    padding: 4px;
    border-radius: calc(var(--ui-size) / 2);
    background: var(--ui-bg-100);
    font-size: var(--size-text-note);
    transition: var(--ui-trans);
    cursor: pointer;
    color: var(--ui-color-text);
    width: fit-content;
    height: var(--ui-size);
}

.sp-toggle__item {
    height: calc(var(--ui-size) - 8px);
    display: flex;
    align-items: center;
    justify-content: start;
    gap: var(--gf);
    border-radius: var(--gap);
    padding: 0 var(--gf);
    transition: var(--ui-trans);
    color: var(--ui-color-text-light-grey);
}

.sp-toggle__item:hover {
    background: rgba(255, 255, 255, 0.6);
    color: var(--ui-color-text-grey);
}

.sp-toggle__item--active,
.sp-toggle__item--active:hover {
    background: var(--color-white);
    color: var(--ui-color-text);
}

/* /SP Toggle */


/*   (7) SP5 Typographic ------- ------- ------- ------- ------- */
h1,
h2,
h3,
h4,
h5 {
    font-family: var(--wf);
    margin: 0;
    padding: 16px 0;
    font-weight: bold;
}

h1 {
    font-size: var(--size-heading-xl);
    padding: calc(var(--size-heading-xl) / 2) 0;
}

h2 {
    font-size: var(--size-heading-l);
    padding: calc(var(--size-heading-l) / 2) 0;
}

h3 {
    font-size: var(--size-heading-m);
    padding: calc(var(--size-heading-m) / 2) 0;
}

h4 {
    font-size: var(--size-heading-s);
    padding: calc(var(--size-heading-s) / 2) 0;
}

h5 {
    font-size: var(--size-heading-xs);
    padding: calc(var(--size-heading-xs) / 2) 0;
}

p {
    line-height: 24px;
    margin: 0 0 var(--gap) 0;
}

.content {}

.table-container {
    width: 100%;
    overflow-x: auto;
}

@media (max-width: 960px) {
    .table-container {
        width: calc(100vw - 32px);
        overflow-x: auto;
    }
}

.content .table {
    width: 100%;
    border-collapse: collapse;
    border-spacing: 0;
}

.content .table th {
    padding: var(--gap) var(--gap) var(--gf) var(--gap);
    text-align: left;
}

.content .table td {
    padding: var(--gap);
    border-top: 1px solid var(--table-border);

}

.content .table td:first-child {
    border-left: 1px solid var(--table-border);
}

.content .table td:last-child {
    border-right: 1px solid var(--table-border);
}

.content .table tr:last-child td {
    border-bottom: 1px solid var(--table-border);
}

.content .table tr:hover td {
    transition: var(--ui-trans);
    background: rgba(0, 0, 0, 0.05);
}

.content h2 {
    font-size: 1.1rem;
}

.content ul {
    padding: var(--gf);
    margin: 0 0 0 var(--gap);
}

.content li {
    margin-bottom: var(--gf);
}

/*   (8) SP5 Components ------- ------- ------- ------- ------- */


.room-slider-container {
    position: relative;
    width: 100%;
    overflow: hidden;
}


.room-slider-container::after {
    position: absolute;
    top: 0;
    right: 0;
    content: '';
    display: block;
    z-index: 1;
    height: 100%;
    width: 180px;
    background-image: linear-gradient(to right,
            hsla(0, 0%, 100%, 0) 0%,
            hsla(0, 0%, 100%, 0.013) 8.1%,
            hsla(0, 0%, 100%, 0.049) 15.5%,
            hsla(0, 0%, 100%, 0.104) 22.5%,
            hsla(0, 0%, 100%, 0.175) 29%,
            hsla(0, 0%, 100%, 0.259) 35.3%,
            hsla(0, 0%, 100%, 0.352) 41.2%,
            hsla(0, 0%, 100%, 0.45) 47.1%,
            hsla(0, 0%, 100%, 0.55) 52.9%,
            hsla(0, 0%, 100%, 0.648) 58.8%,
            hsla(0, 0%, 100%, 0.741) 64.7%,
            hsla(0, 0%, 100%, 0.825) 71%,
            hsla(0, 0%, 100%, 0.896) 77.5%,
            hsla(0, 0%, 100%, 0.951) 84.5%,
            hsla(0, 0%, 100%, 0.987) 91.9%,
            hsl(0, 0%, 100%) 100%);
}

.room-slider-container--services::after {
    display: none;
}

.room-slider-wrapper {
    display: flex;
    transition: transform 0.3s ease-in-out;
    will-change: transform;

}

.room-slider-card {
    position: relative;

    margin: 0 10px;
    opacity: 1;
    transition: opacity 0.3s ease-in-out;
}

.room-slider-card.clone {
    position: relative;
}

.room-slider-button {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    background: rgba(255, 255, 255, 0.8);
    border: 1px solid #ddd;
    width: 48px;
    height: 40px;
    cursor: pointer;
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background-color 0.3s;

}

.room-slider-button:hover {
    background: rgba(255, 255, 255, 1);
}

.room-slider-button:disabled {
    opacity: 0.5;
    cursor: not-allowed;
}

.room-slider-button svg {
    fill: var(--color-primary);
    transition: var(--ui-trans);
}

.room-slider-button:hover svg {
    fill: var(--color-primary-dark);
}

.room-slider-prev svg {
    transform: rotate(180deg);
}

.room-slider-prev {
    left: 10px;
}

.room-slider-next {
    right: 10px;
}


@media (max-width: 768px) {

    .room-slider-container::after {
        display: none;
    }

}


/* Product card
------- ------- ------- */
a.pcard {
    color: var(--color-white);
    display: flex;
    align-items: center;
    flex-direction: column;
    justify-content: end;
    width: 100%;
    height: 340px;
    background: no-repeat center / cover;
}


.pcard:hover {
    box-shadow: 0 8px 12px rgba(0, 0, 0, 0.2);
}


.pcard__body {
    width: 100%;
    padding: 32px 16px 16px 16px;
    position: relative;
    background-image: linear-gradient(to bottom,
            hsla(0, 0%, 0%, 0) 0%,
            hsla(0, 0%, 0%, 0.01) 8.1%,
            hsla(0, 0%, 0%, 0.038) 15.5%,
            hsla(0, 0%, 0%, 0.081) 22.5%,
            hsla(0, 0%, 0%, 0.137) 29%,
            hsla(0, 0%, 0%, 0.202) 35.3%,
            hsla(0, 0%, 0%, 0.275) 41.2%,
            hsla(0, 0%, 0%, 0.351) 47.1%,
            hsla(0, 0%, 0%, 0.429) 52.9%,
            hsla(0, 0%, 0%, 0.505) 58.8%,
            hsla(0, 0%, 0%, 0.578) 64.7%,
            hsla(0, 0%, 0%, 0.643) 71%,
            hsla(0, 0%, 0%, 0.699) 77.5%,
            hsla(0, 0%, 0%, 0.742) 84.5%,
            hsla(0, 0%, 0%, 0.77) 91.9%,
            hsla(0, 0%, 0%, 0.78) 100%);
}

.pcard:hover .pcard__body {
    background-image: linear-gradient(to bottom,
            hsla(0, 0%, 0%, 0) 0%,
            hsla(0, 0%, 0%, 0.011) 8.1%,
            hsla(0, 0%, 0%, 0.044) 15.5%,
            hsla(0, 0%, 0%, 0.094) 22.5%,
            hsla(0, 0%, 0%, 0.158) 29%,
            hsla(0, 0%, 0%, 0.233) 35.3%,
            hsla(0, 0%, 0%, 0.317) 41.2%,
            hsla(0, 0%, 0%, 0.405) 47.1%,
            hsla(0, 0%, 0%, 0.495) 52.9%,
            hsla(0, 0%, 0%, 0.583) 58.8%,
            hsla(0, 0%, 0%, 0.667) 64.7%,
            hsla(0, 0%, 0%, 0.742) 71%,
            hsla(0, 0%, 0%, 0.806) 77.5%,
            hsla(0, 0%, 0%, 0.856) 84.5%,
            hsla(0, 0%, 0%, 0.889) 91.9%,
            hsla(0, 0%, 0%, 0.9) 100%);
}


.pcard__title {
    font-size: var(--size-heading-s);
    padding: 6px 0;
    text-shadow: 0 0 4px rgba(0, 0, 0, 0.5);
}


.pcard__pan {
    display: flex;
    align-items: start;
    justify-content: start;
    gap: var(--gap);
    padding: 8px 0;
}

.pcard-icon {
    display: flex;
    align-items: center;
    gap: 4px;
    font-size: 12px;
}

.pcard-icon svg {
    width: 16px;
    height: 16px;
    fill: currentColor;
}

.label-box {
    position: absolute;
    top: 24px;
    left: 0;
    display: flex;
    flex-direction: column;
}

.label {
    margin: 0 0 8px 0;
}

.label--new {
    background: var(--color-secondary);
    color: var(--color-text);
    box-sizing: border-box;
    padding: 4px 32px;
}

.label--hit {
    width: 33px;
    height: 16px;
    background-size: cover;
}

.label--discount {
    width: 93px;
    height: 16px;
    background-size: cover;
}


/* /Product card */

/* Dcard */
.grid-dcard {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--gap);
}

/*@media (max-width: 768px) {
    .grid-dcard {
        grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    }
}*/
.dcard {
    display: flex;
    flex-direction: column;
    align-items: start;
    justify-content: end;
    height: 380px;
    background-size: cover;
    background-repeat: no-repeat;
    transition: var(--ui-trans);
}

.dcard-body {
    width: 100%;
    padding: 24px 16px;
    background-image: linear-gradient(to bottom,
            hsla(0, 0%, 0%, 0) 0%,
            hsla(0, 0%, 0%, 0.01) 8.1%,
            hsla(0, 0%, 0%, 0.038) 15.5%,
            hsla(0, 0%, 0%, 0.081) 22.5%,
            hsla(0, 0%, 0%, 0.137) 29%,
            hsla(0, 0%, 0%, 0.202) 35.3%,
            hsla(0, 0%, 0%, 0.275) 41.2%,
            hsla(0, 0%, 0%, 0.351) 47.1%,
            hsla(0, 0%, 0%, 0.429) 52.9%,
            hsla(0, 0%, 0%, 0.505) 58.8%,
            hsla(0, 0%, 0%, 0.578) 64.7%,
            hsla(0, 0%, 0%, 0.643) 71%,
            hsla(0, 0%, 0%, 0.699) 77.5%,
            hsla(0, 0%, 0%, 0.742) 84.5%,
            hsla(0, 0%, 0%, 0.77) 91.9%,
            hsla(0, 0%, 0%, 0.78) 100%);
}

.dcard-tag {
    width: fit-content;
    padding: var(--gf) var(--gap);
    background: var(--color-white);
    color: var(--color-text);
    margin: 16px 0;
}

.dcard-title {
    transition: var(--ui-trans);
    width: 100%;
    color: var(--color-white);
    font-size: var(--size-heading-l);

}

.dcard:hover .dcard-body {
    background-image: linear-gradient(to bottom,
            hsla(0, 0%, 0%, 0) 0%,
            hsla(0, 0%, 0%, 0.011) 8.1%,
            hsla(0, 0%, 0%, 0.044) 15.5%,
            hsla(0, 0%, 0%, 0.094) 22.5%,
            hsla(0, 0%, 0%, 0.158) 29%,
            hsla(0, 0%, 0%, 0.233) 35.3%,
            hsla(0, 0%, 0%, 0.317) 41.2%,
            hsla(0, 0%, 0%, 0.405) 47.1%,
            hsla(0, 0%, 0%, 0.495) 52.9%,
            hsla(0, 0%, 0%, 0.583) 58.8%,
            hsla(0, 0%, 0%, 0.667) 64.7%,
            hsla(0, 0%, 0%, 0.742) 71%,
            hsla(0, 0%, 0%, 0.806) 77.5%,
            hsla(0, 0%, 0%, 0.856) 84.5%,
            hsla(0, 0%, 0%, 0.889) 91.9%,
            hsla(0, 0%, 0%, 0.9) 100%);
}

@media (max-width: 768px) {
    .dcard {
        height: 240px;
    }

    .dcard__title {
        font-size: var(--size-heading-s);
    }
}

/* /Dcard */

/* Crumbs
------- ------- ------- */
.breadcrumb {
    font-size: var(--size-text-note);
    line-height: 120%;
    color: var(--color-text-grey);
    margin: 24px 0 16px 0;
    padding: 0;
    display: inline-flex;
    gap: var(--gf);
}

.breadcrumb a {
    color: var(--color-link);
}

.breadcrumb a:hover {
    color: var(--color-link-hover);
}

.breadcrumb li {
    list-style: none;
}

.breadcrumb li:after {
    content: '/';
    margin: 0 0 0 6px;
    color: var(--color-text-grey);
}

.breadcrumb li:last-child:after {
    content: '';
}

/* /Crumbs */

/* Pagination */
.pagination-nav {
    display: flex;
    justify-content: center;
}

.pagination {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    gap: var(--gf);
}

.pagination li {
    margin: 0 1px;
}

.pagination a {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0.5em 1em;
    border: 1px solid rgba(0, 0, 0, 0.2);
    border-radius: var(--ui-radius);
    text-decoration: none;
    color: var(--color-text);
    height: var(--ui-size-s);
    font-size: var(--size-text-note);

}

.pagination a:hover {
    border: 1px solid rgba(0, 0, 0, 0.4);
}

.pagination svg {
    width: 16px;
    height: 16px;
    fill: none;
    stroke: currentColor;
}

.pagination a[aria-current="page"] {
    background-color: var(--color-primary);
    color: var(--color-white);
}

/* /Pagination */

/*   (9) SP5 Basic Layout ------- ------- ------- ------- ------- */

/* for fixed footer */
.body {
    min-height: 100%;
    display: grid;
    grid-template-rows: auto 1fr auto;
}

/* /for fixed footer */

/* Header
------- ------- ------- */
.header-wrapper {
    border-bottom: 1px transparent solid;
    z-index: 999;
    position: fixed;
    width: 100%;
    background: rgba(255, 255, 255, 0);
    transition: var(--ui-trans);
}

.compact-header .header-wrapper {
    border-bottom: 1px rgba(0, 0, 0, 0.1) solid;
}

.header {
    display: flex;
    gap: var(--gap);
    align-items: center;
    justify-content: space-between;
    margin: 0 auto;
    padding: var(--gap) 16px var(--gap) 24px;

    --header-primary: #ffffff;
}

.compact-header .header-wrapper {
    background: rgba(255, 255, 255, 1);
}

.header__left {}

.header-logo {
    display: flex;
    align-items: center;
    gap: var(--gap);
    position: relative;
    z-index: 2;
}

.header-logo__img {
    height: 24px;
}

.header-logo__text {
    font-size: 1.6rem;
}

.header__center {
    display: flex;
    align-items: center;
    justify-content: center;
}

.header__right {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: var(--gap);
}

.header__right svg {
    stroke: var(--header-primary);
}

.compact-header .header {
    --header-primary: var(--color-text-grey);
}

.header.header--active {
    --header-primary: var(--color-text-grey);
}

.room-header {
    position: relative;
}

.room-header::before {
    z-index: 2;
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 164px;
    /*background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.8), rgba(0, 0, 0, 0.4), rgba(0, 0, 0, 0));*/
    background-image: linear-gradient(to bottom,
            hsla(0, 0%, 0%, 0.5) 0%,
            hsla(0, 0%, 0%, 0.494) 8.1%,
            hsla(0, 0%, 0%, 0.476) 15.5%,
            hsla(0, 0%, 0%, 0.448) 22.5%,
            hsla(0, 0%, 0%, 0.412) 29%,
            hsla(0, 0%, 0%, 0.37) 35.3%,
            hsla(0, 0%, 0%, 0.324) 41.2%,
            hsla(0, 0%, 0%, 0.275) 47.1%,
            hsla(0, 0%, 0%, 0.225) 52.9%,
            hsla(0, 0%, 0%, 0.176) 58.8%,
            hsla(0, 0%, 0%, 0.13) 64.7%,
            hsla(0, 0%, 0%, 0.088) 71%,
            hsla(0, 0%, 0%, 0.052) 77.5%,
            hsla(0, 0%, 0%, 0.024) 84.5%,
            hsla(0, 0%, 0%, 0.006) 91.9%,
            hsla(0, 0%, 0%, 0) 100%);

}

/* /Header */

/* Subheader */
.subheader {
    height: 70px;
    margin-bottom: 16px;
    background-color: var(--color-primary);
    /*    background-image: linear-gradient(
                to bottom,
                hsla(0, 0%, 0%, 0.5) 0%,
                hsla(0, 0%, 0%, 0.494) 8.1%,
                hsla(0, 0%, 0%, 0.476) 15.5%,
                hsla(0, 0%, 0%, 0.448) 22.5%,
                hsla(0, 0%, 0%, 0.412) 29%,
                hsla(0, 0%, 0%, 0.37) 35.3%,
                hsla(0, 0%, 0%, 0.324) 41.2%,
                hsla(0, 0%, 0%, 0.275) 47.1%,
                hsla(0, 0%, 0%, 0.225) 52.9%,
                hsla(0, 0%, 0%, 0.176) 58.8%,
                hsla(0, 0%, 0%, 0.13) 64.7%,
                hsla(0, 0%, 0%, 0.088) 71%,
                hsla(0, 0%, 0%, 0.052) 77.5%,
                hsla(0, 0%, 0%, 0.024) 84.5%,
                hsla(0, 0%, 0%, 0.006) 91.9%,
                hsla(0, 0%, 0%, 0) 100%
        );*/
}

/* /Subheader */

/* Phone Modal */
.pm-icon {}

.pm-modal-wrapper {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.8);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    display: none;
    justify-content: center;
    align-items: center;
    z-index: 1000;
}

.pm-modal-content {
    background: var(--color-white);
    padding: 24px 20px;
    max-width: 320px;
    width: 100%;
    position: relative;
    box-shadow: 0px 0px 3.6px rgba(0, 0, 0, 0.024),
        0px 0px 10px rgba(0, 0, 0, 0.035),
        0px 0px 24.1px rgba(0, 0, 0, 0.046),
        0px 0px 80px rgba(0, 0, 0, 0.07);
}

.pm-modal-header {
    position: relative;
    margin-bottom: var(--gap);
    padding-left: 24px;
}

.pm-modal-header__logo {
    height: 20px;
}

.pm-close-btn {
    position: absolute;
    top: -8px;
    right: -8px;
}

.pm-modal-wrapper.pm-active {
    display: flex;
}

.pm-modal-body {
    padding: 24px 24px 0 24px;
    display: flex;
    flex-direction: column;
    gap: var(--gap);
}

/* /Phone Modal */

/* Header Slider */

.header-slider {
    position: relative;
    width: 100%;
    /*max-width: 1200px;*/
    overflow: hidden;
    --slide-height: 62vh;
    height: var(--slide-height);
}

.header-slides,
.about-slides {
    display: flex;
    width: 100%;
    height: 100%;
    transition: transform 0.8s ease-in-out;
}

.header-slides {
    transition: transform 0.8s cubic-bezier(0.25, 0.1, 0.25, 1);
}

.about-slides {
    transition: transform 1.5s cubic-bezier(0.165, 0.84, 0.44, 1);
    /* Improved smooth easing */
    backface-visibility: hidden;
    /* Smooths out the animation */
    perspective: 1000;
    /* Creates depth perception */
    transform-style: preserve-3d;
    /* Better 3D transitions */
    display: flex;
    /* Добавляем flex для правильного выравнивания слайдов */
    width: 100%;
    /* Устанавливаем ширину контейнера */
    height: 100%;
    /* Устанавливаем высоту контейнера */
    flex-wrap: nowrap;
    /* Запрещаем перенос слайдов */
}

.header-slide,
.about-slide {
    flex: 0 0 100%;
    background-size: cover;
    background-position: center;
    transition: opacity 0.5s ease;
    width: 100%;
    /* Устанавливаем ширину каждого слайда */
    filter: brightness(0.95);
    transform: none;
    /* Убираем масштабирование, которое может вызывать проблемы */
    outline: none;
    /* Убираем контур */
}

/* Убираем смещения для нечетных и четных слайдов */
.about-slide:nth-child(odd) {
    transform: none;
}

.about-slide:nth-child(even) {
    transform: none;
}

.about__slider {
    position: relative;
    width: 100%;
    height: 100%;
    overflow: hidden;
}

.about-slides__prev,
.about-slides__next {
    color: var(--color-white);
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    padding: 4px 12px;
    background-color: rgba(0, 0, 0, 0.1);
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    z-index: 10;
    opacity: 0;
    transition: opacity 0.3s ease, background-color 0.3s ease;
}

.about-slides__prev {
    left: 10px;
}

.about-slides__next {
    right: 10px;
}

.about__slider:hover .about-slides__prev,
.about__slider:hover .about-slides__next {
    opacity: 1;
}

.about-slides__prev:hover,
.about-slides__next:hover {
    background-color: rgba(0, 0, 0, 0.4);
}

.about-slides__prev svg,
.about-slides__next svg {
    width: 24px;
    height: 24px;
    fill: none;
    stroke: currentColor;
}

.about-slides__prev:hover svg,
.about-slides__next:hover svg {
    stroke: currentColor;
    color: var(--color-white);

}

.about-slides__markers {
    position: absolute;
    bottom: 20px;
    left: 0;
    width: 100%;
    display: flex;
    justify-content: center;
    gap: 8px;
    z-index: 60;
}

.about-slide-marker {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background-color: rgba(255, 255, 255, 0.4);
    cursor: pointer;
    transition: all 0.5s cubic-bezier(0.22, 1, 0.36, 1);
    transform: scale(1);
    position: relative;
    box-shadow: 0 0 0 0 rgba(255, 255, 255, 0);
}

.about-slide-marker::before {
    content: '';
    position: absolute;
    top: -4px;
    left: -4px;
    right: -4px;
    bottom: -4px;
    border-radius: 50%;
    background-color: rgba(255, 255, 255, 0);
    transition: all 0.5s cubic-bezier(0.22, 1, 0.36, 1);
    z-index: -1;
}

.about-slide-marker.active {
    background-color: var(--color-white);
    transform: scale(1.2);
    box-shadow: 0 0 10px 2px rgba(255, 255, 255, 0.4);
}

.about-slide-marker.active::before {
    background-color: rgba(255, 255, 255, 0.2);
}

.about-slide-marker:hover {
    background-color: rgba(255, 255, 255, 0.8);
}

@media screen and (max-width: 768px) {
    .about__slider {
        height: 300px;
    }

    .about-slide {
        height: 300px;
    }
}

.header-slide img {
    width: 100%;
    height: auto;
    display: block;
    object-fit: cover;
    object-position: bottom;
}

.header-slides__prev,
.header-slides__next {
    color: var(--color-white);
    display: flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
    font-size: 2rem;
    font-weight: bold;
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    cursor: pointer;
    padding: 4px 12px;
    background: rgba(0, 0, 0, 0.1);
    -webkit-user-select: none;
    user-select: none;
    z-index: 60;
}

.header-slides__prev {
    left: 10px;
}

.header-slides__next {
    right: 10px;
}

.header-slides__prev:hover,
.header-slides__next:hover {
    color: var(--color-white);
    background: rgba(0, 0, 0, 0.3);
}

.header-slides__prev svg,
.header-slides__next svg {
    width: 24px;
    height: 24px;
    fill: none;
    stroke: currentColor;
}

/* /Header Slider */


/* MAIN NAV
------- ------- ------- */
.mobnav__text {
    margin: 0 0 0 8px;
    color: var(--header-primary);
}

.nav {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100vh;
    background: var(--color-bg);
    z-index: 1;
    color: #282828;
    border-top: 1px solid #9a9b6e !important;
    -webkit-transition: all .24s linear;
    transition: all .35s linear;
    opacity: 0;
    visibility: hidden;
}

.nav--active {
    opacity: 1;
    visibility: visible;

}

.nav-grid {
    width: var(--wid);
    display: grid;
    grid-template-columns: 8fr 4fr;
    margin: 0 auto;

}

.nav-content {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: var(--gap);
    padding: 80px 24px 24px 24px;
}

.nav-content__col {}

.nav-section {
    margin-bottom: 24px;
}

.nav-section--icon {
    display: flex;
    align-items: start;
    gap: var(--gf);
    padding: 0 0 0 6px;
}

.nav-section--icon svg {
    margin-top: 5px;
    flex-shrink: 0;
}

.nav-section__title {
    font-weight: bold;
    font-size: var(--size-heading-s);
    padding-bottom: 8px;
    display: inline-flex;
}

.nav-section__title--seal {
    position: relative;
}

.nav-section__title--seal::before {
    content: '';
    background: url("../img/seal-bg.svg") no-repeat center center;
    width: 20px;
    height: 20px;
    position: absolute;
    top: -10px;
    right: -12px;
    animation: rotate-seal 8s linear infinite;
}

.nav-section__title--seal::after {
    content: '';
    background: url("../img/seal-mark.svg") no-repeat center center;
    width: 20px;
    height: 20px;
    position: absolute;
    top: -10px;
    right: -12px;
}

@keyframes rotate-seal {
    from {
        transform: rotate(0deg);
    }

    to {
        transform: rotate(360deg);
    }
}

.nav-section ul {
    list-style: none;
    padding: 0;
    margin: 0;
}

.nav-section li {
    padding: 4px 0;
}

.nav-section a {
    color: var(--color-text);
    text-decoration: none;
}

.nav-section a:hover {
    text-decoration: underline;
    color: var(--color-text);
}

.contact-section a {
    color: var(--color-text);
}

.nav-ibox {
    display: flex;
    align-items: center;
    gap: var(--gf);
    margin: 4px 0 20px 0;
}

.nav-ibox__icon {
    flex-shrink: 0;
}

.nav-ibox__icon svg {
    width: 24px;
    height: 24px;
}

.nav-ibox__right {
    display: flex;
    flex-direction: column;
    align-items: start;
    justify-content: center;
    gap: 1px;
}

.nav-ibox__title {
    font-size: var(--size-text-note);
    color: var(--color-text-grey);
    line-height: 1;
}

a.nav-ibox__text,
.nav-ibox__text {
    color: var(--color-text);
}

a.nav-ibox__text {
    white-space: nowrap;
}

.nav-media {
    height: 100vh;
    width: 100%;
    background: url("../img/nav-media/nav-media-01.jpg") no-repeat center;
    background-size: cover;
}


.mobnav {
    display: flex;
    align-items: center;
    padding: 8px 0;
    background-color: transparent;
    border: none;
    cursor: pointer;
    z-index: 24;
    position: relative;
}

.menu-icon-wrapper {
    width: 18px;
    display: block;
}

.menu-icon {
    display: block;
    width: 18px;
    height: 2px;
    transition: all 0.2s;
    background: var(--header-primary);
}

.menu-icon__top {
    transition: all 0.2s;
}

.menu-icon__middle {
    transition: all 0.2s;
    margin: 3px 0;
}

.menu-icon__bottom {
    transition: all 0.2s;
}

.mobnav--active .menu-icon__bottom {
    transform: translate(0, -1px) rotate(45deg);
    transition: all 0.2s;
}

.mobnav--active .menu-icon__middle {
    background: var(--header-primary);
    height: 0;
    margin: 0;
    transition: all 0.2s;
}

.mobnav--active .menu-icon__top {
    transform: translate(0, 1px) rotate(-45deg);
    transition: all 0.2s;
}

.mob-header {
    display: none;
}

@media screen and (max-height: 640px) {
    .nav-content {
        padding: 56px 24px 24px 24px;
    }

    .nav-section {
        margin-bottom: var(--gap);
    }

    .nav-section__title {
        padding-bottom: 4px;
        font-size: 1.1rem;
    }

    .nav-section li {
        padding: 2px 0;
    }
}

@media screen and (max-width: 768px) {
    .mobnav {
        display: flex;
    }

    .nav ul {
        display: none;
    }

    .nav-section--icon svg {
        display: none;
    }

    .nav-section--icon ul {
        display: block;
    }

    .mobnav__text {
        display: none;
    }

    .main-nav--active ul {
        display: block;
    }

    .main-nav--active li {
        float: none;
        margin: 4px 0 8px 28px;
    }

    .header-logo__img {
        height: 16px;
    }

    .header__right {
        gap: var(--gf);
    }

    .header-slider {
        height: 240px;
    }
}

/* /MAIN NAV */

/* Main, Page, Aside
------- ------- ------- */
.page {
    width: 100%;
    max-width: var(--wid);
    margin: 0 auto;
    padding: 0 var(--gap);
}

.main {}

/* /Main, Page, Aside */

/* Footer
------- ------- ------- */
.footer-wrapper {
    background: var(--ui-bg-200);
}

.footer {
    color: var(--color-text-grey);
    font-size: var(--size-text-note);
    line-height: 1.4;
    padding: var(--gap);
}

.footer__left {}

.footer__center {
    padding: 28px 0 0 0;
    color: var(--color-text-grey);
}

.footer__center p:last-of-type {
    margin: 0;
}

.footer__right {
    display: flex;
    align-items: flex-end;
    flex-direction: column;
    padding: 8px;
}

.footer-logo {
    display: flex;
    flex-direction: column;
    align-items: start;
    gap: var(--gap);
    filter: grayscale(100%);
    transition: var(--trans);
}

.footer-logo:hover {
    filter: none;
}

.footer-logo__img {
    height: 16px;
}

.footer-logo__text {}

/* /Footer */

/* (10) TPL Start:
------- ------- ------- ------- ------- ------- -------*/

/* WIDE */
.wide {
    width: 100%;
    height: 522px;
    position: relative;
}

.wide::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 148px;
    background-image: linear-gradient(to top,
            hsla(0, 0%, 0%, 0) 0%,
            hsla(0, 0%, 0%, 0.01) 8.1%,
            hsla(0, 0%, 0%, 0.039) 15.5%,
            hsla(0, 0%, 0%, 0.083) 22.5%,
            hsla(0, 0%, 0%, 0.14) 29%,
            hsla(0, 0%, 0%, 0.207) 35.3%,
            hsla(0, 0%, 0%, 0.282) 41.2%,
            hsla(0, 0%, 0%, 0.36) 47.1%,
            hsla(0, 0%, 0%, 0.44) 52.9%,
            hsla(0, 0%, 0%, 0.518) 58.8%,
            hsla(0, 0%, 0%, 0.593) 64.7%,
            hsla(0, 0%, 0%, 0.66) 71%,
            hsla(0, 0%, 0%, 0.717) 77.5%,
            hsla(0, 0%, 0%, 0.761) 84.5%,
            hsla(0, 0%, 0%, 0.79) 91.9%,
            hsla(0, 0%, 0%, 0.8) 100%);
}

.wide--pic {
    background: url("../img/wide.jpg") no-repeat center center;
    background-size: cover;

}

.wide--video video {
    object-fit: cover;
    width: 100%;
    height: 100%;
}

/* /WIDE */

.demo {
    height: 300px;
    background-image: linear-gradient(to top right, #d7d7d7, #f1f1f1);
}


/* All includes */
.all-includes {
    border: 1px solid var(--ui-color-border);
    background: var(--color-white);
    padding: var(--gap);
    columns: 4 auto;
}

.all-includes__item {}

/* /All includes */


.product-grid {
    display: grid;
    grid-template-columns: 2fr 1fr;
    gap: var(--gap);
}

/* CTA */
.cta {
    display: flex;
    flex-direction: column;
    gap: var(--gf);
    align-items: center;
    transform: translateY(-24px);
}

.cta__price {
    font-size: var(--size-heading-l);
    color: var(--color-text);
    font-weight: bold;
}

.cta__pan {}

.cta__note {
    color: var(--color-text-grey);
}

/* /CTA */


.room-pan-wrapper {
    /*position: absolute;*/
    /*z-index: 10;*/
    /*bottom: 0;*/
    width: 100%;

    padding: 24px 0 16px 0;

    /*    background-image: linear-gradient(
                to bottom,
                hsla(0, 0%, 0%, 0) 0%,
                hsla(0, 0%, 0%, 0.01) 8.1%,
                hsla(0, 0%, 0%, 0.039) 15.5%,
                hsla(0, 0%, 0%, 0.083) 22.5%,
                hsla(0, 0%, 0%, 0.14) 29%,
                hsla(0, 0%, 0%, 0.207) 35.3%,
                hsla(0, 0%, 0%, 0.282) 41.2%,
                hsla(0, 0%, 0%, 0.36) 47.1%,
                hsla(0, 0%, 0%, 0.44) 52.9%,
                hsla(0, 0%, 0%, 0.518) 58.8%,
                hsla(0, 0%, 0%, 0.593) 64.7%,
                hsla(0, 0%, 0%, 0.66) 71%,
                hsla(0, 0%, 0%, 0.717) 77.5%,
                hsla(0, 0%, 0%, 0.761) 84.5%,
                hsla(0, 0%, 0%, 0.79) 91.9%,
                hsla(0, 0%, 0%, 0.8) 100%
        );*/
}

.room-pan {
    margin: 0 auto;
    display: flex;
    align-items: start;
    justify-content: left;
    gap: var(--gf);
    flex-direction: column;
}

.room-pan__title {
    font-size: var(--size-heading-xl);
    color: var(--color-text);
    padding: 16px 0;
    /*text-shadow: 0 0 8px rgba(0, 0, 0, 0.3);*/
}


/*Room icon pan*/
.room-icons-pan {
    display: flex;
    align-items: center;
    gap: 32px;
    flex-wrap: wrap;
    margin: 24px 0;
}

.room-icon {
    display: flex;
    align-items: center;
    gap: var(--gf);
}

.room-icon__box {
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    padding: 8px;
    background: var(--ui-bg-100);
    width: 48px;
    height: 48px;
}

.room-icon svg {
    width: 100%;
    fill: var(--color-primary);
    stroke: none;
}

.room-icon__title {
    font-size: var(--size-text-note);
    color: var(--color-text-grey);
    line-height: 1;
}

/*/Room icon pan*/
/*Room Deck*/
.room-deck {
    display: flex;
    align-items: center;
    justify-content: start;
    gap: 32px;
    width: 100%;
}

.room-deck__item {
    display: flex;
    /*flex-direction: column;*/
    gap: 4px;
    align-items: center;
    text-align: center;
    color: var(--color-primary);
    font-size: var(--size-text-note);
    /*width: 8rem;*/
}

.room-deck__item svg {
    fill: var(--color-text);
    flex-shrink: 0;
    width: 24px;
    height: 24px;
    /*filter: drop-shadow(0 0 4px rgba(0, 0, 0, 0.3));*/
}

.room-deck-sub {
    display: flex;
    align-items: center;
    gap: var(--gf);
    background: var(--ui-bg-100);
    color: var(--color-primary);
    font-size: var(--size-text-note);
    padding: 4px 8px;
}

.room-deck-sub svg {
    stroke: currentColor;
    width: 16px;
    height: 16px;
}

/**/

/* icons line */
.icons-line {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--gap);
    /* Расстояние между стрелками и иконками */
    max-width: 90%;
    /* Задаём адаптивный максимум (или ширину по вкусу) */
    margin: var(--gap) auto;
}

/* Стили для кнопок-стрелок */
.icons-line__arrow {
    display: flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
    cursor: pointer;
    font-size: 24px;
    user-select: none;
    -webkit-user-select: none;
    padding: 4px 8px;
    background-color: #f1f1f1;
    border-radius: 16px;
    transition: background-color 0.2s;
}

.icons-line__arrow:hover {
    background-color: #ddd;
}

.icons-line__arrow svg {
    fill: currentColor;
}

#leftArrow svg {
    transform: rotate(180deg);
}


.icons-line__arrow[disabled] {
    cursor: default;
    opacity: 0.2;
}

.icons-line__arrow[disabled]:hover {
    background-color: #f1f1f1;
}

.icons-window {
    overflow: hidden;
    /* Скрываем всё, что выходит за границы */
    flex: 1;
    /* Заставляем окно растягиваться в доступном пространстве */
}


.icons-wrapper {
    display: flex;
    /*transition: transform 0.6s cubic-bezier(0.65, 0, 0.35, 1);*/
    transition: transform 0.6s ease-in-out;
}


.icon-block {
    width: 100px;
    /* Примерная ширина блока иконки */
    flex-shrink: 0;
    /* Не даём блоку сжиматься */
    text-align: center;
    margin: 0 10px;
    /* Боковые отступы учитывайте при вычислениях */
}

.icon-block svg {
    width: 60px;
    /* Размер иконки (регулируйте по вкусу) */
    height: auto;
    margin-bottom: 5px;
    fill: var(--color-primary);
}

.icon-block span {
    display: block;
    font-size: 12px;
}

/* /icons line*/
.section__room {
    margin: 16px 0;
}

.section__index {
    margin: 32px 0;
}

.section {
    margin: 0 0 32px 0;
}

.rooms-section-grid {
    display: grid;
    grid-template-columns: 3fr 9fr;
    gap: 24px;
    margin: 16px 0 48px 0;
}

.section__index-rooms h2 {
    text-align: center;
    margin: 0;
    padding: 0 0 var(--gap) 0;
}

@media screen and (max-width: 768px) {
    .rooms-section-grid {
        grid-template-columns: 1fr;
    }
}

/* Radslider  --- --- --- */
/* Slider container */
.radslider-wrapper {
    position: relative;
    width: calc(100dvw - 32px);
    height: 460px;
    /*outline: hotpink 1px solid;*/
    overflow: hidden;
    place-items: center;
    margin: 0 auto;

    --radcard-width: 580px;
    --radcard-height: 320px;
    --card-aspect-ratio: calc(var(--radcard-height) / var(--radcard-width));
}

@media screen and (max-width: 768px) {
    .radslider-wrapper {
        width: 100%;
        --radcard-width: 340px;
        --radcard-height: 280px;
    }
}

/* Active card styling */
.active-card-container {
    position: absolute;
    left: 50%;
    top: 60%;
    transform: translate(-50%, -60%);
    width: var(--radcard-width);
    display: flex;
    flex-direction: column;
    align-items: center;
    border-radius: 16px;
    z-index: 20;
}

/* Main slider component */
.radslider {
    position: relative;
    width: 100%;
    height: 100%;
    perspective: 1500px;
    transform-style: preserve-3d;
}

/* Slide wrapper */
.radslide-wrapper {
    position: absolute;
    width: var(--radcard-width);
    height: var(--radcard-height);
    display: flex;
    flex-direction: column;
    align-items: center;

    transition: all 0.6s cubic-bezier(0.4, 0, 0.2, 1);
}

/* Individual slide */
.radslide {
    width: var(--radcard-width);
    height: var(--radcard-height);
    /*border-radius: var(--gap);*/
    background-size: cover;
    background-position: center;
    opacity: 0;
    transform: translateZ(0);
    will-change: transform, opacity, filter;
    transition: all 0.6s cubic-bezier(0.4, 0, 0.2, 1);
    box-shadow: 0 10px 20px rgb(0 0 0 / 0.1),
        0 6px 6px rgb(0 0 0 / 0.1);
    /*overflow: hidden;*/

    position: relative;
}

.radslide--bgimg {
    /*background-size: cover;*/
    background-position: center;
    /*background-repeat: no-repeat;*/
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: end;
    transition: background-size 0.6s ease;
    background-size: cover;


}

.radslide__floatcircle {
    --rad-c-width: 120px;
    --rad-c-height: 120px;
    width: var(--rad-c-width);
    height: var(--rad-c-height);
    border-radius: 50%;
    overflow: hidden;
    position: absolute;
    top: -20px;
    right: -20px;
    transition: all 0.6s cubic-bezier(0.4, 0, 0.2, 1);
    box-shadow: var(--sp-shadow-m);
}

.radslide__floatcircle:hover {
    width: calc(var(--rad-c-width) + 40px);
    height: calc(var(--rad-c-height) + 40px);
    box-shadow: var(--sp-shadow-l);
}


.radslide__floatcircle--type1 {
    top: -20px;
    left: -20px;
    border-radius: 16%;
}

.radslide__floatcircle--type11 {
    top: -20px;
    left: -20px;
    border-radius: 50%;
}

.radslide__floatcircle--type12 {
    --rad-c-width: 220px;
    --rad-c-height: 180px;
    top: -20px;
    left: -20px;
    border-radius: 24px;
}

.radslide__floatcircle--type13 {
    top: 140px;
    left: -20px;
    border-radius: 50%;
}

.radslide__floatcircle--type2 {
    --rad-c-width: 140px;
    --rad-c-height: 140px;
    top: 160px;
    right: -40px;
    border-radius: 50%;
}


.radslide__floatcircle--type21 {
    --rad-c-width: 220px;
    --rad-c-height: 140px;
    top: 110px;
    right: -20px;
    border-radius: 24px;
}

.radslide__floatcircle--type22 {
    --rad-c-width: 220px;
    --rad-c-height: 140px;
    top: -10px;
    right: -20px;
    border-radius: 24px;
}

.radslide__floatcircle--type23 {
    --rad-c-width: 190px;
    --rad-c-height: 140px;
    top: -30px;
    right: -20px;
    border-radius: 24px;
}

.radslide__floatcircle img {
    object-fit: cover;
    width: 100%;
    height: 100%;
}

.radslide__img {}

.radslide__title {
    width: 100%;
    font-family: var(--wf);
    color: var(--color-white);
    padding: 32px var(--gap);
    text-align: center;
    font-size: 1.4rem;
    background-image: linear-gradient(to bottom,
            rgba(0, 0, 0, 0.01),
            rgba(0, 0, 0, 1));
    text-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
    /* border-bottom-left-radius: var(--gap);
     border-bottom-right-radius: var(--gap);*/
}

.radslide-tag {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    gap: 4px;
    position: absolute;
    top: 140px;
    right: 20px;

    transform: rotate(-16deg);
}

.radslide-tag * {
    background: #fff;

}

.radslide-tag svg {
    width: 60px;
    height: 60px;
    fill: var(--color-primary);
    flex-shrink: 0;
    padding: 8px;
    border-radius: 50%;
    z-index: 1;
    font-size: 12px;
    /*outline: 1px solid red;*/
    box-shadow: var(--sp-shadow-xl);
}

.radslide-tag span {
    display: block;
    color: var(--color-primary);
    padding: 4px 16px;
    border-radius: 8px;

    font-size: 12px;
    transform: translateY(-8px);

    box-shadow: var(--sp-shadow-m);
}

/* Active slide state */
.radactive {
    z-index: 100;
    opacity: 1;
    filter: none !important;
    transform: translateZ(20px);
    /*    box-shadow: 0 14px 28px rgb(0 0 0 / 0.15),
        0 10px 10px rgb(0 0 0 / 0.12);*/
    box-shadow: 0px 0.5px 0.9px rgba(0, 0, 0, 0.02),
        0px 1.3px 2.2px rgba(0, 0, 0, 0.028),
        0px 2.4px 4.1px rgba(0, 0, 0, 0.035),
        0px 4.2px 7.4px rgba(0, 0, 0, 0.042),
        0px 7.9px 13.8px rgba(0, 0, 0, 0.05),
        0px 19px 33px rgba(0, 0, 0, 0.07);
}

/* Navigation controls */
.rad-nav-wrapper {
    display: flex;
    gap: 12px;
    margin-top: auto;
    padding-top: 20px;
    z-index: 30;
}

.rad-nav-btn {
    width: 48px;
    height: 40px;
    border: none;
    /*border-radius: 50%;*/
    background-color: var(--color-primary);

    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    /*place-items: center;*/
    transition: transform 0.3s ease,
        background-color 0.3s ease,
        box-shadow 0.3s ease;
}

.rad-nav-btn:hover {

    transform: scale(1.1);
    background-color: var(--color-primary-dark);

    box-shadow: var(--sp-shadow-s);
}

.rad-nav-btn:active {
    transform: scale(0.95);
}

.rad-nav-btn svg {
    pointer-events: none;
    stroke: var(--color-white);
}

/* Text slide variant */
.text-slide {
    padding: 20px;
    background: white;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 20px;
    text-align: center;
}

/* /Radslider --- --- --- */

.gradient-container {}

.gradient {
    position: absolute;
    border-radius: 50%;
    filter: blur(60px);
    opacity: 0.7;
    mix-blend-mode: screen;
    animation: move 20s infinite;
}

.gradient:nth-child(1) {
    width: 500px;
    height: 500px;
    background: radial-gradient(circle, rgb(150, 174, 204) 0%, rgba(255, 0, 128, 0) 70%);
    top: 10%;
    right: 30%;
    animation-delay: -5s;
}

.gradient:nth-child(2) {
    width: 400px;
    height: 400px;
    background: radial-gradient(circle, rgb(217, 248, 248) 0%, rgba(0, 255, 255, 0) 70%);
    top: 40%;
    left: 50%;
    animation-delay: -2s;
}

.gradient:nth-child(3) {
    width: 600px;
    height: 600px;
    background: radial-gradient(circle, rgb(223, 223, 223) 0%, rgba(255, 255, 0, 0) 70%);
    top: 30%;
    left: 40%;
    animation-delay: -8s;
}

@keyframes move {
    0% {
        transform: translate(0, 0) scale(1);
    }

    25% {
        transform: translate(100px, 100px) scale(1.1);
    }

    50% {
        transform: translate(-50px, 150px) scale(0.9);
    }

    75% {
        transform: translate(-100px, -100px) scale(1.2);
    }

    100% {
        transform: translate(0, 0) scale(1);
    }
}


/* Reservation box*/

.reservation-box {
    transform: translateY(-40px);
    background: white;
    z-index: 10;
    position: relative;
}

.reservation-box iframe {
    /*outline: 1px solid red;*/
}

/* /Reservation box*/


/* About */
.about-img-wrapper {
    width: 100%;
    height: 100%;
}

/*.about-img-wrapper img {
    display: block;
    inline-size: 100%;
    aspect-ratio: 1;
    object-fit: cover;
}*/
/*
.about-img-wrapper::after {
    position: absolute;
    content: "";
    inset: 0;
    mix-blend-mode: color;
    background: linear-gradient(to right, #90c3fd, #ba71ff, #ff71b8);
}*/

.about-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.about__logo {
    fill: var(--color-primary);
    height: 40px;
}

.about__h1 {
    font-weight: normal;
    font-size: var(--size-heading-s);
    padding: 0;
    margin: var(--gf) 0 var(--gap) 0;
}

.about-text {
    padding: var(--gap);
}

.about-pan {
    display: flex;
    align-items: start;
    flex-direction: column;
    gap: var(--gap);
    flex-wrap: wrap;
}

.about-icon-box {
    display: flex;
    align-items: center;
    justify-content: start;
    gap: var(--gf);
}

.about-icon-box__icon {
    padding: 12px;
    border-radius: 50%;
    background: rgba(149, 154, 157, 0.24);
    width: 48px;
    height: 48px;
    display: flex;
    align-items: start;
    justify-content: center;
    transition: var(--ui-trans);

}

.about-icon-box__icon:hover {
    padding: 8px;
    /*transition: var(--ui-trans);*/
}

.about-icon-box__icon svg {
    width: 100%;
    height: 100%;
    fill: var(--color-primary);
}

.about-icon-box__desc {}

.about-icon__title {
    padding: 4px 0 2px 0;
    font-size: var(--size-text-note);
}

.about-icon__desc {
    display: flex;
    align-items: center;
    justify-content: start;
    gap: var(--gap);
}

.about-icon__mini-box {
    display: flex;
    align-items: center;
    justify-content: start;
    gap: 4px;
    font-size: var(--size-text-note);
    min-width: 60px;
}

.about-icon__mini-box svg {
    width: 20px;
    height: 20px;
    fill: var(--color-text-grey);
}

/* /About */

.map-grid {
    display: grid;
    grid-template-columns: 8fr 3fr;
}

.map-wrapper {
    width: 100%;
    height: 400px;
}

.contacts-map-wrapper {
    width: 100%;
    height: 100%;
}

.contacts__h2 {
    margin-top: 16px;
    font-size: var(--size-heading-xs);
}

.contacts-legal-section {
    margin: 24px 0;
}

.map-info {
    background: var(--color-primary);
    color: var(--color-white);
    padding: 24px;
    top: 0;
    right: 48px;
    height: 100%;
}

.map-info__title {
    font-size: var(--size-heading-m);
}

.map-info .about-icon-box__icon svg {
    fill: var(--color-white);
}

.map-info .about-icon__mini-box svg {
    width: 20px;
    height: 20px;
    fill: var(--color-white);
}


/* Room includes*/
.room-incl-section {
    margin: 24px 0;
}

.room-incl-box {
    columns: 2;
}

.room-incl-item {
    display: flex;
    align-items: center;
    gap: var(--gf);
    padding: 8px 0;
}

.room-incl-item svg {
    flex-shrink: 0;
    width: 24px;
    height: 24px;
    fill: var(--color-primary);
}

.room-incl-item span {
    font-size: var(--size-text-note);
    line-height: 1;
}

/* /Room includes*/

/* BOX */
.box {
    display: flex;
    flex-direction: column;
    gap: var(--gf);
    align-items: center;
    justify-content: space-between;
}

.box-line {
    height: 1px;
    background: var(--color-primary);
    width: 100%;
}

.box-body {}

/* /BOX */

/* Sport grid  */

.sprt-grid-section {
    margin: 64px 0;
}

.sprt-grid-section h2 {
    text-align: center;
    margin: 0;
    padding: 0 0 var(--gap) 0;
}

.sprt-grid {
    display: grid;
    gap: var(--gap);
    grid-template-columns: repeat(7, 1fr);
    grid-template-rows: repeat(3, 1fr);
    grid-template-areas:
        "a a a a a c c"
        "b b b d d c c"
        "f f g g h h h";
}


.sprt-grid .sprt:nth-child(1) {
    grid-area: a;
}

.sprt-grid .sprt:nth-child(2) {
    grid-area: c;
}

.sprt-grid .sprt:nth-child(3) {
    grid-area: b;
}

.sprt-grid .sprt:nth-child(4) {
    grid-area: d;
}

.sprt-grid .sprt:nth-child(5) {
    grid-area: f;
}

.sprt-grid .sprt:nth-child(6) {
    grid-area: g;
}

.sprt-grid .sprt:nth-child(7) {
    grid-area: h;
}

.sprt {
    min-height: 240px;
    display: flex;
    flex-direction: column;
    align-items: start;
    justify-content: end;
    /*background-size: cover;*/
    background-size: 100%;
    background-position: center;
    transition: background-size 0.3s ease-in-out;
    background-repeat: no-repeat;

}

.sprt:hover {
    transition: background-size 0.3s ease-in-out;
    background-size: 116%;

}

.sprt--circled {
    position: relative;
    overflow: hidden;
    background: var(--color-primary);
}

.sprt__circle {
    position: absolute;
    background-size: cover;
    top: -10%;
    right: -10%;
    width: 200px;
    height: 200px;
    border-radius: 50%;
    z-index: 1;
    transition: all 0.5s ease-in-out;
}

.sprt--circled:hover .sprt__circle {
    background-size: cover;
    right: 0;
    top: 0;
    width: 100%;
    height: 100%;
    border-radius: 0;
    transition: all 0.5s ease-in-out;
}

.sprt__circle--2 {
    width: 85%;
    height: 120%;
    border-top-right-radius: 50%;
    border-top-left-radius: 0;
    border-bottom-right-radius: 50%;
    border-bottom-left-radius: 0;
    top: -10%;
    left: -10%;
}

.sprt--circled:hover .sprt__circle--2 {
    width: 100%;
    height: 100%;
    border-radius: 0;
    top: 0;
    left: 0;
}

.sprt--circled * {
    z-index: 2;
}


.sprt-pan {
    height: 60%;
    width: 100%;
    color: var(--color-white);
    display: flex;
    flex-direction: column;
    justify-content: end;
    gap: var(--gf);
    padding: var(--gap);
    background-image: linear-gradient(to bottom,
            hsla(0, 0%, 0%, 0) 0%,
            hsla(0, 0%, 0%, 0.013) 8.1%,
            hsla(0, 0%, 0%, 0.049) 15.5%,
            hsla(0, 0%, 0%, 0.104) 22.5%,
            hsla(0, 0%, 0%, 0.175) 29%,
            hsla(0, 0%, 0%, 0.259) 35.3%,
            hsla(0, 0%, 0%, 0.352) 41.2%,
            hsla(0, 0%, 0%, 0.45) 47.1%,
            hsla(0, 0%, 0%, 0.55) 52.9%,
            hsla(0, 0%, 0%, 0.648) 58.8%,
            hsla(0, 0%, 0%, 0.741) 64.7%,
            hsla(0, 0%, 0%, 0.825) 71%,
            hsla(0, 0%, 0%, 0.896) 77.5%,
            hsla(0, 0%, 0%, 0.951) 84.5%,
            hsla(0, 0%, 0%, 0.987) 91.9%,
            hsl(0, 0%, 0%) 100%);

}

.sprt-pan__logo svg {
    height: 22px;
}

.sprt--about {
    background: var(--color-primary);
    background-image: url("../img/si-grey.svg");
    background-position: top -85px right -48px;
    background-repeat: no-repeat;
    position: relative;
    overflow: hidden;
}

.sprt--about * {
    z-index: 2;
}

.sprt--about:hover {
    background-size: inherit;
}


.sprt--blob {
    position: absolute;
    top: -30%;
    left: -20%;
    width: 300px;
    height: 300px;
    background: radial-gradient(circle at 50% 50%, rgba(135, 141, 141, 1), rgba(135, 141, 141, 0.1));
    filter: blur(80px);
    z-index: 1;
    transition: var(--ui-trans);
}

.sprt--about:hover .sprt--blob {

    width: 400px;
    height: 400px;

}

.sprt-pan--line {
    flex-direction: row;
    gap: 24px;
    align-items: end;
    justify-content: start;
}

.sprt-pan__title {
    font-size: var(--size-heading-s);
    font-weight: bold;
}

.sprt-pan__text {}

@media screen and (max-width: 768px) {
    .sprt-grid-section {
        margin: 24px 0;
    }

    .sprt-grid {
        grid-template-areas:
            "a a a a a a a"
            "b b b b b b b"
            "c c c c c c c"
            "d d d d d d d"
            "f f f f f f f"
            "g g g g g g g"
            "h h h h h h h";
    }

    .sprt {
        background-size: cover;
    }

    .sprt-pan--line {
        flex-direction: column;
        gap: 8px;
        align-items: start;
        justify-content: end;
    }
}

/* /Sport grid  */

/* About sport */
.absp-wrapper {
    background: var(--color-primary);
    width: 100%;
    margin: 32px 0;
    padding: 32px 16px;
}

.absp-grid {
    display: grid;
    grid-template-columns: 10fr 2fr;
    gap: var(--gap);
}

.absp-grid__list {
    display: flex;
    align-items: start;
    justify-content: start;
    gap: var(--gap);
    /*flex-wrap: wrap;*/
}

.absp-card {
    width: 100%;
    height: 360px;
    transition: var(--ui-trans);
    z-index: 1;
}

.absp-card--info {
    color: var(--color-white);
    background: rgba(0, 0, 0, 0.1);
    padding: var(--gap);
}

.absp-card--img {
    background-size: cover;
    background-repeat: no-repeat;
}

.absp-grid__info {
    color: var(--color-white);
}

.absp-grid-info__logo svg {
    height: 20px;
}

.absp-grid-info__title {
    font-size: var(--size-heading-s);
    font-weight: bold;
}

/* /About sport */


/* Service card */
.services-section {
    margin-top: 32px;
    background: var(--ui-bg-100);
    padding: 24px 0;
}

.services-section h2 {
    text-align: center;
    margin: 0;
    padding: 0 0 24px 0;
}

.si-tabs {
    width: var(--wid);
    margin: 0 auto;
    font-family: Arial, sans-serif;
}

.si-tab-buttons {
    width: fit-content;
    margin: 0 auto 16px auto;
    display: flex;
    gap: var(--gap);
    transition: var(--ui-trans);
}

.si-tab-button {
    padding: 8px;
    white-space: nowrap;
    border: none;
    cursor: pointer;
    flex: 1;
    border-bottom: 2px solid transparent;
    font-size: 1.2rem;
    font-weight: bold;
    color: var(--color-primary-light);
    transition: var(--trans);
    background: transparent;
}

.si-tab-button:hover {
    color: var(--color-primary-dark);
}

.si-tab-button.active {
    color: var(--color-primary-dark);
    border-bottom: 2px solid var(--color-primary-dark);
}

.si-tab-content {
    display: none;
    padding: var(--gap);
}

.si-tab-content.active {
    display: block;
}

.si-service-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.si-service-item {
    padding: 12px 0;
    border-bottom: 1px solid #eee;
}

.si-service-item:last-child {
    border-bottom: none;
}

.scard {
    display: grid;
    grid-template-columns: 2fr 7fr 3fr;
    grid-template-areas: "title desc img";
    align-items: center;
    gap: var(--gap);
    padding: var(--gap);
    /*border-top: 1px solid var(--ui-color-border);*/
    transition: var(--ui-trans);
    background: var(--color-white);
    margin-bottom: var(--gap);
}


.scard:hover {
    box-shadow: var(--sp-shadow-m);
}

.scard:last-child {
    /*border-bottom: 1px solid var(--ui-color-border);*/
    margin-bottom: 0;
}

.scard__title {
    font-weight: bold;
    font-size: 1.2rem;
    grid-area: title;
}

.scard__desc {
    grid-area: desc;
}

.scard__img {
    flex-shrink: 0;
    width: 100%;
    height: 160px;
    background-size: cover;
    grid-area: img;

}

@media (max-width: 768px) {
    .services-section {
        padding: var(--gf);
    }

    .si-tab-buttons {
        padding: 0 var(--gf);
    }

    .si-tab-button {
        font-size: 1rem;
        padding: 8px 2px;
    }

    .scard__img {
        height: 160px;

    }

    .scard {
        padding: var(--gf);
        gap: var(--gf);
        grid-template-columns: 1fr;
        grid-template-areas:
            "img"
            "title"
            "desc";
    }

    .scard__title {
        font-size: 1rem;
    }

    .scard__desc {
        font-size: var(--size-text-note);
    }
}

/* /Service card */

/* Partners video section */

.partner-video-section-wrapper {
    margin-top: 32px;
    background: var(--ui-bg-100);
    padding: 24px 0;
}

.partner-video-section {
    margin: 0 auto;
    max-width: 900px;
    text-align: center;
}

/* /Partners video section */

/* Price card */
.price-card {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: var(--gap);
    border: 1px solid var(--ui-color-border);
    transition: var(--ui-trans);
    padding: 24px;
    background: transparent;
}

.price-card:hover {
    background: rgba(0, 0, 0, 0.05);
}

.price-card__header {
    font-weight: bold;
    font-size: var(--size-heading-xs);
}

.price-card__body {}

/* /Price card */

/* mini adv */
.mini-adv {
    margin: 0 30px;
    color: var(--color-text);
    border-bottom: 1px solid var(--ui-color-border);
    padding: var(--gap) 0 var(--gf) 0;
    text-align: center;
}

/* /mini adv */

/* =========================== MEDIA ====================================== */
@media screen and (max-width: 768px) {
    .cta {
        transform: initial;
    }

    .map-wrapper {
        height: auto;
        display: flex;
        flex-direction: column;
    }

    .map-info {
        position: static;
    }

    .nav-grid {
        grid-template-columns: 1fr;
    }

    .nav-content {
        padding: 80px 24px 24px 24px;
        gap: 0;
        grid-template-columns: 1fr;
    }

    .nav-section {
        margin-bottom: var(--gf);
    }

    .nav-ibox {
        margin: 16px 0 0 0;
    }

    .footer {
        padding: var(--gap);
    }

    .about-text {
        padding: 0;
    }

    .product-grid {
        grid-template-columns: 1fr;
    }

    .room-deck__item {
        flex-direction: column;
    }

    .icons-line {
        display: none;
    }

    .map-grid {
        display: block;
    }

    .map-wrapper {
        height: 360px;
    }

    .section__room h2 {
        text-align: center;
    }

    .about__logo {
        height: 24px;
    }

    a.pcard {
        height: 240px;
    }

    .footer__center {
        padding: var(--gf) 0 0 0;
    }

    .footer__center ul {
        list-style: none;
        margin: var(--gf) 0;
        padding: 0;
    }

    .footer__center li {
        padding: 4px 0;
    }

    .footer__right {
        align-items: start;
        padding: 0;
    }

    .mini-adv {
        font-size: var(--size-text-note);
    }
}

/* Eco landing */
.main--eco {
    --eco-primary-dark: #1F272A;
    --eco-primary-dark-2: #253132;
    --eco-primary-grey: #6C7678;
}

.main--eco h1 {
    color: var(--eco-primary-dark);
    font-size: 40px
}

.eco-h1-sub-title {
    font-size: 24px;
    color: var(--eco-primary-grey);
}

.main--eco h2 {
    color: var(--eco-primary-dark-2);
    font-size: 32px;
}

.eco-section {
    margin: 64px 0;
}

.eco-section--mission {
    max-width: 960px;
    margin: 0 auto;
}

.eco-mission-himg {
    margin-bottom: 40px;
}

.eco-line-card {
    display: flex;
    align-items: center;
    gap: var(--gf);
}

.eco-line-card__img {
    width: 80px;
    object-fit: cover;
}

.eco-line-card__title {
    font-size: 14px;
    color: var(--eco-primary-grey);
}

.eco-mini-card {
    display: flex;
    flex-direction: column;
    align-items: start;
    gap: var(--gf);
    border: 1px solid #f3ece0;
    border-radius: 16px;
    padding: 16px;
    height: 100%;
}

.eco-mini-card__title {
    font-size: 14px;
    font-weight: bold;
    color: var(--eco-primary-dark);
}

.eco-mini-card__text {
    font-size: 14px;
    color: var(--eco-primary-dark-2);
}

/* Eco Accordion */
.eco-accordion {
    grid-column: 1 / -1;
    margin-top: var(--gap);
}

.eco-accordion__summary {
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    list-style: none;
    padding: 12px 24px;
    font-size: 14px;
    font-weight: 600;
    color: var(--eco-primary-dark);
    text-transform: lowercase;
    border: 1px solid #f3ece0;
    border-radius: 16px;
    background: transparent;
    transition: var(--trans);
    user-select: none;
    gap: 8px;
    appearance: none;
    -webkit-appearance: none;
}

.eco-accordion__summary::-webkit-details-marker {
    display: none;
}

.eco-accordion__summary::after {
    content: '▼';
    font-size: 10px;
    transition: transform 0.3s ease;
    display: inline-block;
}

.eco-accordion[open] .eco-accordion__summary::after {
    transform: rotate(180deg);
}

.eco-accordion__summary:hover {
    background: rgba(243, 236, 224, 0.3);

}

.eco-accordion__content {

    gap: var(--gap);
    margin-top: var(--gap);
    padding-top: var(--gap);
    animation: fadeIn 0.3s ease-in;
}

@keyframes fadeIn {
    from {
        opacity: 0;
        transform: translateY(-10px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@media screen and (max-width: 768px) {
    .eco-accordion__content {
        grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    }
}

.eco-card {
    display: flex;
    align-items: center;
    gap: var(--gap);
    background: #f3ece0;
    border-radius: 60px;
    padding: 0 20px 0 0;

}

.eco-card__img {
    width: 120px;
    height: 120px;
    object-fit: cover;
    border-radius: 60px;
}

.eco-card__title {
    font-size: 14px;
    font-weight: bold;
    color: var(--eco-primary-dark);
    margin-bottom: var(--gf);
}

.eco-card__text {
    font-size: 14px;
    color: #654f2c;
}

.eco-big-card {
    margin: 16px;
    justify-self: center;
    display: flex;
    align-items: center;
    flex-direction: column;
    gap: var(--gf);
    padding: 8px 0;
    max-width: 240px;
    border: 4px solid transparent;
    border-radius: 108px;
    background:
        linear-gradient(white, white) padding-box,
        conic-gradient(#CDF0EC 0%,
            #C3E9EA 25%,
            #92C7CD 50%,
            #CDF0EC 75%,
            #C3E9EA 100%) border-box;
    animation: eco-gradient-rotate 3s linear infinite;
    background-origin: border-box;
    background-clip: padding-box, border-box;
    position: relative;
    width: 216px;
    border-radius: 108px;
}

.eco-big-card__img {
    width: 200px;
    height: 200px;
    object-fit: cover;
    border-radius: 50%;
}

.eco-big-card__title {
    font-size: 14px;
    color: var(--eco-primary-grey);
    text-align: center;
    max-width: 160px;
    margin-bottom: 40px;
}

.eco-section--help {
    border: 4px solid #78A467;
    border-radius: 16px;
    padding: 8px 32px 48px 32px;
    text-align: center;
}

.eco-section--help p {
    margin-bottom: 32px
}

.eco-grid {
    display: flex;
    gap: 24px;
    justify-content: center;
    align-items: center;
    max-width: 1000px;
    margin: 0 auto;
}

.eco-plus {
    width: 40px;
    height: 40px;
    margin-bottom: 48px;
    flex-shrink: 0;
}

.eco-plus img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.eco-col-card {
    display: flex;
    align-items: center;
    flex-direction: column;
    gap: var(--gf);
    border-radius: 60px;
    padding: 0 20px 0 0;
    position: relative;
}

.eco-col-card__img {
    width: 120px;
    height: 120px;
    object-fit: cover;
    border-radius: 60px;
    position: relative;
    z-index: 1;
}

.eco-col-card::after {
    content: "";
    position: absolute;
    top: -6px;
    left: calc(50% - 76px);
    width: 132px;
    height: 132px;
    border-radius: 50%;
    z-index: 0;
    pointer-events: none;
    background: conic-gradient(#78A467 0deg,
            #99BB84 90deg,
            #C3D3A4 180deg,
            #C7D7AB 270deg,
            #78A467 360deg);
    mask-image: radial-gradient(circle, transparent 56px, black 62px, black 100%);
    -webkit-mask-image: radial-gradient(circle, transparent 56px, black 62px, black 100%);
    animation: eco-green-outline-spin 4s linear infinite;
}

@keyframes eco-green-outline-spin {
    100% {
        transform: rotate(1turn);
    }
}


.eco-col-card__title {
    font-size: 14px;
    color: var(--eco-primary-grey);
    text-align: center;
    max-width: 180px;
}

@media screen and (max-width: 768px) {
    .eco-grid {
        flex-direction: column;
    }

    .eco-plus {
        margin: 0 20px 0 0;
    }

    .eco-big-card {
        margin: 0;
    }
}

/* /Eco landing */

/* Sport tabs */
.main--sport .sp-radio-group {
    margin-bottom: 12px;
}

.main--sport .sp-radio-group-item__text {
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

.main--sport .sp-radio-group-item__text img {
    width: 16px;
    height: 16px;
    object-fit: contain;
}

.main--sport .sp-tab-section [id^="map"] {
    width: 100%;
    height: 600px;
    padding: 0;
    margin: 10px 0 0 0;
}

.main--sport .sp-tab-section [id^="info-panel"] {
    margin: 8px 0 16px 0;
    background: #fff;
    padding: 10px;
    border-radius: 2px;
    border: 1px solid var(--color-primary-light);
}

/* This targets the specific layer where the map tiles are drawn */
[class*="ymaps-"][class*="-ground-pane"] {
    filter: grayscale(1);
    /* filter: invert(1); */
    /* filter: sepia(0.8); */
}

/* Recycle landing */
.main--recycle {
    --rec-primary-dark: #1F272A;
    --rec-primary-dark-2: #253132;
    --rec-primary-grey: #6C7678;
    --rec-green: #D2DFC1;
    --rec-heading-font-size: 26px;
    --rec-heading-font-size-s: 18px;
    --rec-text-font-size: 15px;
}

.rec-hero-section {
    padding: 48px;
}

.rec-hero__container {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 24px;

    margin: 0 auto;
}

.rec-hero__img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    max-width: 200px;
}

.rec-hero__title {
    font-size: var(--rec-heading-font-size);
    color: var(--rec-primary-dark);
}

.rec-hero__text {
    font-size: var(--rec-heading-font-size-s);
    color: var(--rec-primary-grey);
}

.rec-steps-section {
    padding: 48px 24px 64px;
}

.rec-steps__title {
    margin: 0;
    text-align: center;
    font-size: var(--rec-heading-font-size);
    font-weight: 700;
    color: var(--rec-primary-dark);
}

.rec-steps__track {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: center;
    gap: 12px 8px;
    margin-top: 40px;
}

.rec-step {
    flex: 1 1 140px;
    max-width: 220px;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
}

.rec-step__illus {
    width: 100%;
    max-width: 170px;
    min-height: 168px;
    display: flex;
    align-items: flex-end;
    justify-content: center;
    margin-bottom: 16px;
}

.rec-step__illus img {
    display: block;
    max-width: 100%;
    height: auto;
    object-fit: contain;
}

.rec-step__title {
    margin: 0;
    font-size: var(--rec-heading-font-size-s);
    font-weight: 700;
    line-height: normal;
    color: #000;
}

.rec-step__text-wrap {
    display: flex;
    flex-direction: column;
    gap: 0;
    width: 100%;
}

.rec-step__text {
    margin: 0;
    font-size: var(--rec-text-font-size);
    font-weight: 400;
    line-height: normal;
    color: var(--rec-primary-grey);
}

.rec-step__text+.rec-step__text {
    margin-top: 0.35em;
}

.rec-step-arrow {
    flex: 0 0 auto;
    width: 40px;
    align-self: center;
    margin-top: 48px;
}

.rec-step-arrow img {
    display: block;
    width: 100%;
    height: auto;
}

.rec-stypes-section {
    padding: 0 24px 72px;
}

.rec-tabs {
    max-width: 1100px;
    margin: 0 auto;
}

.rec-tabs__header {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 16px;
}

.rec-tabs__header-item {
    padding: 12px 18px;
    border: 1px solid #d7dbdc;
    border-radius: 999px;
    background: #fff;
    color: var(--rec-primary-dark);
    font-size: var(--rec-text-font-size);
    font-weight: 700;
    line-height: 1;
    cursor: pointer;
    transition: background-color .2s ease, color .2s ease, border-color .2s ease;
}

.rec-tabs__header-item:hover {
    border-color: var(--rec-green);
}

.rec-tabs__header-item--active {
    background: var(--rec-green);
    border-color: var(--rec-green);
}

.rec-tabs__body {
    display: none;
    border-radius: 16px;
    padding: 20px 24px;
    font-size: var(--rec-text-font-size);
    border: 1px solid var(--rec-green);
}

.rec-tabs__body--active {
    display: block;
}

@media (max-width: 900px) {
    .rec-steps__track {
        flex-direction: column;
        align-items: stretch;
    }

    .rec-step {
        max-width: none;
    }

    .rec-step-arrow {
        width: 32px;
        margin: 4px auto;
        margin-top: 4px;
        transform: rotate(90deg);
    }

    .rec-tabs__body {
        padding: 16px;
    }
}

.rec-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
}

.rec-tabs-body__title {
    font-size: var(--rec-heading-font-size-s);
    color: var(--rec-primary-dark);
    text-align: center;
}

.rec-item__img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    max-width: 180px;
    object-fit: contain;
}

.rec-item--big .rec-item__img {
    max-width: 400px;
}

.rec-item__title {
    text-align: center;
    color: var(--rec-primary-grey);
    font-size: var(--rec-text-font-size);
}

.rec-tabs__body [class*='grid-c-'] {
    column-gap: 48px;
    row-gap: 32px;
    margin-bottom: 48px;
}


.rec-note {
    position: relative;
    display: flex;
    align-items: center;
    gap: 48px;
    min-height: 202px;
    padding: 24px 36px;
    overflow: hidden;
    max-width: 1100px;
}

.rec-note__bg {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    pointer-events: none;
}

.rec-note__image,
.rec-note__content {
    position: relative;
    z-index: 1;
}

.rec-note__image {
    width: 214px;
    max-width: 35%;
    height: auto;
    object-fit: contain;
}

.rec-note__title {
    margin: 0 0 8px;
    font-size: var(--rec-heading-font-size);
    line-height: 1;
    font-weight: 700;
    color: #e08231;
}

.rec-note__text {
    margin: 0;
    font-size: var(--rec-text-font-size);
    line-height: 1.2;
    font-weight: 700;
    color: #532b08;
    max-width: 767px;
    z-index: 5;
}

.rec-caps-section {
    padding: 0 0 64px;
}

.rec-caps {
    display: grid;
    grid-template-columns: 1fr 320px;

    align-items: end;
    gap: var(--gap);

    max-width: 1100px;
}

.rec-caps__head {
    max-width: 620px;
    padding-left: 36px;
}

.rec-caps__title {
    margin: 0;
    color: #022d10;
    font-size: var(--rec-heading-font-size);
    line-height: normal;
    font-weight: 700;
}

.rec-caps__text {
    margin: 14px 0 0;
    color: #022d10;
    font-size: var(--rec-text-font-size);
    line-height: 1.2;
}

.rec-caps__image-wrap {
    align-self: end;
}

.rec-caps__image {
    display: block;
    width: 100%;
    max-width: 306px;
    height: auto;
    transform: translateY(50%);
    z-index: 10;
}

.rec-caps__rules {
    grid-column: 1/-1;
    position: relative;
    min-height: 77px;
    display: flex;
    align-items: center;
    gap: 30px;
    margin-top: 18px;
    padding: 12px 24px;
    z-index: -1;
}

.rec-caps__rules-bg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 3px;
    z-index: 0;
}

.rec-caps__rule {
    position: relative;
    z-index: 1;
    background: rgba(255, 255, 255, .58);
    border-radius: 63px;
    min-width: 190px;
    min-height: 53px;
    padding: 8px 22px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 2px;
    color: #022d10;
}

.rec-caps__rule-label {
    font-size: var(--rec-text-font-size);
    line-height: normal;
    font-weight: 400;
}

.rec-caps__rule-value {
    font-size: var(--rec-text-font-size);
    line-height: normal;
    font-weight: 700;
}

@media (max-width: 946px) {
    .rec-caps__image {
        transform: translateY(20%);
    }
}

@media (max-width: 768px) {
    .main--recycle {
        --rec-heading-font-size: 22px;
        --rec-text-font-size: 14px;
    }
    .rec-hero-section {
        padding: 0;
    }

    .rec-hero__img {
        max-width: 140px;
    }

    .rec-tabs__body [class*='grid-c-'] {
        column-gap: 48px;
        row-gap: 16px;
        grid-template-columns: 1fr 1fr;
    }

    .rec-note {
        align-items: flex-start;
        gap: 8px;
        padding: 8px;
    }

    .rec-note__image {
        max-width: 214px;
        width: 45%;
        min-width: 140px;
    }

    .rec-caps {
        grid-template-columns: 1fr 120px;

        gap: var(--gap);
    }

    .rec-caps__image-wrap {
        justify-self: end;
    }

    .rec-caps__image {
        max-width: 220px;
    }
    .rec-caps__head {
        padding-left: 16px;
    }

    .rec-caps__rules {
        min-height: auto;
        padding: 14px 12px;
        gap: 10px;
        flex-direction: column;
        align-items: stretch;
    }

    .rec-caps__rules-bg {
        border-radius: 12px;
    }

    .rec-caps__rule {
        min-width: 0;
        width: 100%;
    }
}

/* Recycle mini-game — сортировка */
.rec-game-section {
    padding: 0 0 72px 0;
}

.rec-game-section__title {
    margin: 0 0 10px;
    text-align: center;
    font-size: var(--rec-heading-font-size);
    font-weight: 700;
    color: #022d10;
    line-height: 1.2;
}

.rec-game-section__lead {
    margin: 0 auto 28px;
    max-width: 560px;
    text-align: center;
    font-size: var(--rec-text-font-size);
    color: var(--rec-primary-grey);
    line-height: 1.35;
}

.rec-sort-game,
.rec-sort-game * {
    box-sizing: border-box;
}

.rec-sort-game {
    position: relative;
    --rec-sort-surface: #fff;
    --rec-sort-ink: var(--rec-primary-dark);
    --rec-sort-muted: var(--rec-primary-grey);
    --rec-sort-accent: #2a9350;
    --rec-sort-accent-2: #256d3a;
    --rec-sort-accent-soft: var(--rec-green);
    --rec-sort-danger: #c23d36;
    --rec-sort-danger-soft: #fde8e7;
    --rec-sort-neutral-soft: #eef0f0;
    --rec-sort-radius: 16px;
    --rec-sort-shadow: 0 4px 24px rgba(31, 39, 42, 0.1);
    font-family: var(--wf), sans-serif;
    color: var(--rec-sort-ink);
    width: 100%;
    max-width: 680px;
    margin: 0 auto;
    background: var(--rec-sort-surface);
    border-radius: var(--rec-sort-radius);
    box-shadow: var(--rec-sort-shadow);
    overflow: hidden;
    border: 1px solid #d7dbdc;
}

.rec-sort-header {
    padding: 18px 20px 14px;
    background: var(--rec-sort-accent-soft);
    border-bottom: 1px solid rgba(31, 39, 42, 0.12);
}

.rec-sort-header-top {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 12px;
}

.rec-sort-progress-label {
    font-size: 13px;
    font-weight: 700;
    color: var(--rec-sort-muted);
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.rec-sort-score-badge {
    background: var(--rec-sort-accent);
    color: #fff;
    padding: 4px 12px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 700;
}

.rec-sort-progress-dots {
    display: flex;
    gap: 6px;
}

.rec-sort-dot {
    flex: 1;
    height: 6px;
    background: rgba(31, 39, 42, 0.15);
    border-radius: 3px;
    transition: background 0.3s ease;
}

.rec-sort-dot--correct {
    background: var(--rec-sort-accent);
}

.rec-sort-dot--wrong {
    background: var(--rec-sort-danger);
}

.rec-sort-dot--current {
    background: #fff;
    /* border: 1px solid var(--rec-sort-accent-2); */
    box-shadow: 0 0 0 1px rgba(37, 109, 58, 0.18);
}

.rec-sort-stage {
    position: relative;
    padding: 32px 20px 24px;
    min-height: 260px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

.rec-sort-flight-layer {
    position: fixed;
    inset: 0;
    pointer-events: none;
    z-index: 350;
}

.rec-sort-question {
    font-size: 14px;
    color: var(--rec-sort-muted);
    margin-bottom: 16px;
    text-align: center;
}

.rec-sort-item-display {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
    transition: transform 0.3s ease, opacity 0.3s ease;
}

.rec-sort-item-display--launching {
    transform: scale(0.92);
    opacity: 0;
}

.rec-sort-item-display--entering {
    animation: rec-sort-itemEnter 0.4s ease;
}

@keyframes rec-sort-itemEnter {
    0% {
        transform: translateY(-20px);
        opacity: 0;
    }

    100% {
        transform: translateY(0);
        opacity: 1;
    }
}

.rec-sort-item-img {
    display: block;
    width: auto;
    max-width: min(200px, 72vw);
    height: auto;
    max-height: 160px;
    object-fit: contain;
    user-select: none;
}

.rec-sort-flying-item {
    position: fixed;
    width: clamp(84px, 12vw, 160px);
    height: auto;
    transform: translate(0, 0) scale(1) rotate(0deg);
    transform-origin: center center;
    transition: transform 0.76s cubic-bezier(0.22, 0.8, 0.24, 1), opacity 0.76s ease;
    z-index: 360;
    pointer-events: none;
    will-change: transform, opacity;
}

.rec-sort-item-name {
    font-size: 18px;
    font-weight: 700;
    color: #022d10;
    text-align: center;
}

.rec-sort-feedback {
    position: absolute;
    inset: 0;
    background: var(--rec-sort-surface);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 24px;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.3s ease;
}

.rec-sort-feedback--show {
    opacity: 1;
    pointer-events: auto;
}

.rec-sort-feedback-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 12px;
    background: transparent;
}

.rec-sort-feedback-icon-img {
    display: block;
    width: 80px;
    height: auto;
    object-fit: contain;
}

.rec-sort-feedback--correct .rec-sort-feedback-icon,
.rec-sort-feedback--wrong .rec-sort-feedback-icon {
    background: transparent;
}

.rec-sort-feedback-title {
    font-size: 20px;
    font-weight: 700;
    margin-bottom: 6px;
}

.rec-sort-feedback--correct .rec-sort-feedback-title {
    color: var(--rec-sort-accent-2);
}

.rec-sort-feedback--wrong .rec-sort-feedback-title {
    color: var(--rec-sort-danger);
}

.rec-sort-feedback-text {
    font-size: 14px;
    color: var(--rec-sort-muted);
    text-align: center;
    line-height: 1.5;
    max-width: 360px;
}

.rec-sort-bins {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
    padding: 12px;
    background: var(--rec-sort-surface);
    border-top: 2px solid var(--rec-sort-accent-soft);
}

.rec-sort-bin {
    margin: 0;
    border: 2px solid #d7dbdc;
    background: #fff;
    border-radius: 12px;
    padding: 18px 14px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: end;
    gap: 8px;
    transition: transform 0.15s ease, box-shadow 0.15s ease, background 0.15s ease, border-color 0.15s ease;
    font-family: inherit;
    color: inherit;
    appearance: none;
    -webkit-appearance: none;
    text-align: right;
}

.rec-sort-bin:last-child {
    justify-content: start;
    text-align: left;
}

.rec-sort-bin[data-type='trash'] {
    background: #fff;
    border-color: #8f9899;
}

.rec-sort-bin[data-type='recycle'] {
    background: #fff;
    border-color: var(--rec-sort-accent);
}

.rec-sort-bin:hover:not(:disabled) {
    box-shadow: 0 6px 16px rgba(31, 39, 42, 0.1);
}

.rec-sort-bin:active:not(:disabled) {
    transform: translateY(-1px);
}

.rec-sort-bin:disabled {
    opacity: 0.55;
    cursor: not-allowed;
}

.rec-sort-bin-icon {
    display: flex;
    align-items: center;
    justify-content: center;

    flex-shrink: 0;
}

.rec-sort-bin-icon-img {
    display: block;
    width: 80px;
    height: 80px;
    object-fit: contain;
}

.rec-sort-bin-label {
    font-size: 14px;
    font-weight: 700;
    color: var(--rec-sort-ink);
    text-transform: uppercase;
    letter-spacing: 0.03em;
}

.rec-sort-bin-sub {
    font-size: 11px;
    color: var(--rec-sort-muted);

}

.rec-sort-bin--flash-correct {
    background: #fff !important;
    border-color: var(--rec-sort-accent-2) !important;
    border-width: 2px !important;
    box-shadow: 0 0 0 3px rgba(26, 92, 50, 0.2);
}

.rec-sort-bin--flash-wrong {
    background: #fff !important;
    border-color: var(--rec-sort-danger) !important;
    border-width: 2px !important;
    box-shadow: 0 0 0 3px rgba(194, 61, 54, 0.18);
}

.rec-sort-overlay {
    position: absolute;
    inset: 0;
    background: rgba(255, 255, 255, 0.97);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 24px;
    text-align: center;
    z-index: 100;
    backdrop-filter: blur(4px);
}

.rec-sort-overlay--hidden {
    display: none;
}

.rec-sort-overlay--result {
    justify-content: flex-start;
    align-items: center;
    background: #fff;
    backdrop-filter: none;
    padding: 28px 20px 32px;
    z-index: 200;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
}

.rec-sort-result {
    width: 100%;
    max-width: 400px;
    margin: 0 auto;
    flex: 0 1 auto;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
}

.rec-sort-overlay--result .rec-sort-mistakes {
    text-align: left;
    align-self: stretch;
}

.rec-sort-overlay__head {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    margin-bottom: 8px;
}

.rec-sort-overlay__pic {
    display: block;
    width: 100px;
    height: auto;
    object-fit: contain;
}

.rec-sort-overlay__title {
    margin: 0;
    font-size: var(--rec-heading-font-size-s);
    font-weight: 700;
    color: #022d10;
    text-align: center;
}

.rec-sort-overlay__text {
    /* margin: 0 0 20px; */
    color: var(--rec-sort-muted);
    font-size: var(--rec-text-font-size);
    max-width: 360px;
    line-height: 1.2;
}

.rec-sort-btn {
    background: var(--rec-sort-accent);
    color: #fff;
    border: none;
    padding: 12px 28px;
    border-radius: 999px;
    font-size: 15px;
    font-weight: 700;
    cursor: pointer;
    font-family: inherit;
    transition: transform 0.15s ease, background 0.15s ease;
}

.rec-sort-btn:hover {
    background: #144726;
    transform: translateY(-1px);
}

.rec-sort-btn:active {
    transform: translateY(1px);
}

.rec-sort-final-score {
    font-size: 56px;
    font-weight: 800;
    color: var(--rec-sort-accent-2);
    line-height: 1;
    margin: 10px 0 4px;
}

.rec-sort-final-score-sub {
    font-size: 14px;
    color: var(--rec-sort-muted);
    margin-bottom: 14px;
}

.rec-sort-grade {
    font-size: 18px;
    font-weight: 700;
    margin-bottom: 18px;
}

.rec-sort-grade--excellent {
    color: var(--rec-sort-accent-2);
}

.rec-sort-grade--good {
    color: #5a6d2e;
}

.rec-sort-grade--meh {
    color: #e08231;
}

.rec-sort-grade--poor {
    color: var(--rec-sort-danger);
}

.rec-sort-mistakes {
    width: 100%;
    margin-bottom: 16px;
    text-align: left;
}

.rec-sort-mistakes-title {
    text-align: center;
    font-size: 12px;
    font-weight: 700;
    color: var(--rec-sort-muted);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    margin-bottom: 8px;
}

.rec-sort-mistake-item {
    display: flex;
    align-items: center;
    gap: 10px;
    background: var(--rec-sort-danger-soft);
    padding: 8px 12px;
    border-radius: 8px;
    margin-bottom: 6px;
    font-size: 13px;
}

.rec-sort-mistake-thumb {
    flex: 0 0 auto;
}

.rec-sort-mistake-thumb img {
    display: block;
    width: 40px;
    height: 40px;
    object-fit: cover;
    border-radius: 6px;
}

.rec-sort-mistake-text {
    flex: 1;
    color: var(--rec-sort-ink);
}

.rec-sort-mistake-answer {
    font-size: 11px;
    color: var(--rec-sort-accent-2);
    font-weight: 700;
    text-transform: uppercase;
}

@media (max-width: 480px) {
    .rec-sort-item-img {
        max-height: 132px;
        max-width: min(180px, 78vw);
    }

    .rec-sort-bin {
        padding: 14px 10px;
    }

    .rec-sort-bin-icon-img {
        width:auto;
        height: 40px;
    }

    .rec-sort-bin-label {
        font-size: 13px;
    }

    .rec-sort-bin-sub {
        font-size: 10px;
    }

    .rec-sort-bins {
        padding: 4px;
    }
}

/* Sport routes landing */
.main--sport .breadcrumb {
    margin-top: 0;
}

.main--sport h1 {
    padding-top: 0;
    line-height: 1.15;
    max-width: 780px;
}

.sp-routes-lead {
    font-size: 18px;
    color: var(--color-primary-dark);
    font-weight: 500;
    margin: 0 0 28px;
}

.sp-routes-intro {
    max-width: 780px;
    margin: 0 0 18px;
}

.sp-routes-activities {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
    gap: 12px;
    margin: 18px 0 28px;
    max-width: 780px;
}

.sp-routes-activity {
    background: var(--color-white);
    border: 1px solid var(--ui-bg-200);
    padding: 14px 16px;
    display: flex;
    align-items: center;
    gap: 10px;
    font-weight: 500;
}

.sp-routes-activity img {
    width: 24px;
    height: 24px;
    flex-shrink: 0;
    object-fit: contain;
}

.sp-routes-note {
    font-size: var(--size-text-note);
    color: var(--color-text-grey);
    max-width: 780px;
    margin: 0 0 36px;
}

.sp-routes-header {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 16px;
    margin: 24px 0 14px;
    border-bottom: 1px solid var(--ui-bg-200);
    padding-bottom: 8px;
}

.sp-routes-header h2 {
    padding: 0;
    margin: 0;
    font-size: var(--size-heading-m);
}

.sp-routes-header__hint {
    font-size: var(--size-text-note);
    color: var(--color-text-grey);
}

.sp-route {
    background: var(--color-white);
    border: 1px solid var(--ui-bg-200);
    margin-bottom: 14px;
    overflow: hidden;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.sp-route:has(.sp-route__summary:hover) {
    border-color: var(--color-primary-light);
}

.sp-route[open] {
    box-shadow: 0 4px 22px rgba(0, 0, 0, 0.08);
}

.sp-route__summary {
    list-style: none;
    cursor: pointer;
    padding: 20px 22px;
    display: flex;
    align-items: center;
    gap: 18px;
    justify-content: space-between;
}

.sp-route__summary::-webkit-details-marker {
    display: none;
}

.sp-route__head {
    display: flex;
    align-items: stretch;
    gap: 16px;
    flex: 1;
    min-width: 0;
}

.sp-route__head-text {
    min-width: 0;
}

.sp-route__num-wrap {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    flex-shrink: 0;
    width: 72px;
    
}

.sp-route__acts {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 4px;
    flex-shrink: 0;
    width: 100%;
    padding: 2px 0;
    border: 1px solid var(--color-primary-light);
}

.sp-route__acts img {
    width: 18px;
    height: 18px;
    object-fit: contain;
    display: block;
}

.sp-route__num {
    width: 100%;
    text-align: center;
    background:
        radial-gradient(
            circle at 100% 0%,
            rgba(255, 255, 255, 0.28) 0%,
            rgba(255, 255, 255, 0.08) 40%,
            transparent 72%
        )
        right top / 90% 100% no-repeat,
        var(--color-primary-dark);
    color: var(--color-white);
    font-weight: 600;
    font-size: var(--size-text-note);
    padding: 6px 12px;
    flex-shrink: 0;
}

.sp-route__title {
    font-size: 19px;
    font-weight: 600;
    margin: 0 0 2px;
    padding: 0;
}

.sp-route__sub {
    font-size: var(--size-text-note);
    color: var(--color-text-grey);
    margin: 0;
}

.sp-route__chev {
    transition: transform 0.25s ease;
    color: var(--color-text-grey);
    flex-shrink: 0;
}

.sp-route[open] .sp-route__chev {
    transform: rotate(180deg);
}

.sp-route__body {
    padding: 4px 22px 24px;
    border-top: 1px solid var(--ui-bg-200);
}

.sp-route__body p {
    margin: 14px 0;
}

.sp-route__twocol {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 18px;
    margin: 16px 0;
}

.sp-route__label {
    font-size: 11px;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--color-text-grey);
    margin-bottom: 8px;
}

.sp-route__tags {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.sp-route__tag {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: var(--ui-bg-100);
    color: var(--color-primary-dark);
    font-size: var(--size-text-note);
    padding: 4px 10px;
    border-radius: 999px;
}

.sp-route__tag img {
    width: 16px;
    height: 16px;
    flex-shrink: 0;
    object-fit: contain;
}

.sp-route__stats {
    margin: 8px 0 16px;
    background: var(--color-white);
    padding: 10px;
    border: 1px solid var(--color-primary-light);
}

.sp-route__map {
    width: 100%;
    height: 400px;
    margin: 18px 0;
}

.sp-route__note {
    font-style: italic;
    color: var(--color-text-grey);
}

.sp-routes-closer {
    margin-top: 48px;
    color: var(--color-white);
    padding: 36px 32px;
    margin-bottom: 24px;
}

.sp-routes-closer__inner {
    position: relative;
    max-width: 680px;
}

.sp-routes-closer h2 {
    font-size: var(--size-heading-l);
    color: var(--color-white);
    padding: 0;
    margin: 0 0 10px;
}

.sp-routes-closer p {
    margin: 0 0 18px;
    color: rgba(255, 255, 255, 0.85);
}

.sp-routes-closer__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
}

.sp-routes-closer__btn-outline {
    color: rgba(255, 255, 255, 0.8) !important;
    border-color: rgba(255, 255, 255, 0.4) !important;
    background: transparent;
}

.sp-routes-closer__btn-outline:hover {
    color: var(--color-white);
    border-color: var(--color-white);
    background: rgba(255, 255, 255, 0.08);
}

@media screen and (max-width: 600px) {
    .sp-route__summary {
        padding: 16px;
        gap: 12px;
    }

    .sp-route__body {
        padding: 4px 16px 20px;
    }

    .sp-route__map {
        height: 280px;
    }

    .sp-routes-header {
        flex-direction: column;
        align-items: flex-start;
        gap: 4px;
    }

    .sp-routes-closer {
        padding: 28px 20px;
    }
}

/* /Sport routes landing */