:root {--font-size-4xl: 48px;
    --font-size-3xl: 40px;
    --font-size-2xl: 32px;
    --font-size-xl: 24px;
    --font-size-lg: 20px;
    --font-size-md: 18px;
    --font-size-sm: 16px;
    --font-size-xs: 14px;
    --font-size-2xs: 12px;
    --font-size-3xs: 10px;
    --font-size-4xs: 8px;
    --font-size-base: var(--font-size-xs);
    --line-height-default: 1.4rem;
    --line-height-sm: 1.25;
    --small: 0.7rem;
    font-family: "Roboto", "Lucida Grande", "DejaVu Sans", "Bitstream Vera Sans", Arial, sans-serif;
    --primary-darker: #013b27;
    --primary-dark: #007148;
    --primary: #87c540;
    --primary-light: color-mix(in srgb,var(--primary) 50%,#fff);
    --primary-lighter: color-mix(in srgb,var(--primary) 30%,#fff);
    --primary-alpha: color-mix(in srgb,var(--primary-light) 10%,transparent);
    --secondary-darker: color-mix(in srgb,var(--secondary) 30%,#000);
    --secondary-dark: color-mix(in srgb,var(--secondary) 50%,#000);
    --secondary: #f90;
    --footer-bg-color: #007148;
    --border: var(--border-size) solid color-mix(in srgb,black 10%,transparent);
    --border-size: 1px;
    --secondary-light: color-mix(in srgb,var(--secondary) 50%,#fff);
    --secondary-lighter: color-mix(in srgb,var(--secondary) 30%,#fff);
    --secondary-alpha: color-mix(in srgb,var(--secondary-light) 10%,transparent);
    --link-text-color: var(--primary-dark);
    --link-text-secondary-color: var(--secondary);
    --content-text-color: #000;
    --link-select-text-color: var(--primary-darker);
    --gradient-primary-transparent: linear-gradient(to top,var(--primary),transparent);
    --gradient-primary: linear-gradient(to top,var(--primary-dark),var(--primary));
    --gradient-primary-lighter-transparent: linear-gradient(to top,var(--primary-lighter),transparent);
    --border-radius-lg: 2rem;
    --border-radius-md: 1.5rem;
    --border-radius-sm: 1rem;
    --gutter: 1rem;
    --negative-gutter: -1rem;
    --gray-light: #d8d8d8;
    --gray-lighter: #f8f8f8;
    --label-color: #929999;
    --field-bg-color: #f2f2f2;
    --color-error: #e07680;
    --modalback: #fff;
    --shadow-sm: rgba(0, 0, 0, 0.25) 0px 0px 3px 0px;
    --shadow-md: 0 0 10px 0 rgba(0,0,0,0.1);
    line-height: var(--line-height-default);
    --selection: color-mix(in srgb,#87c540 50%,#fff);
    --container-width: 960px;
    --navpos: -75px;
}
.dark {
    --content-bg-color: var(--primary-dark);
    --content-text-color: white;
    --link-text-color: white;
    --link-select-text-color: var(--primary-lighter);
    --p-text-color: var(--content-text-color);
    --label-color: var(--gray-light);
    --value-color: var(--gray-lighter);
    --field-label-color: var(--label-color);
    --field-placeholder-color: var(--label-color);
    --field-text-color: var(--value-color);
    --field-border-color: var(--gray-light);
    --field-error-border-color: var(--gray-light);
    --field-valid-border-color: var(--gray-light);
}
::selection {
    background: var(--selection);
    color: black;
}
html, body, div, span,h1, h2, h3, h4, h5, h6, p,a, img, small, b, u, i, ol, ul, li,fieldset, form, label, legend,table,
    caption, tbody, tfoot, thead, tr, th, td, article, footer, header, main, menu, nav, section,dl,dt,dd
    {margin: 0; padding: 0; border: 0; vertical-align: baseline; text-rendering: optimizeLegibility; font: inherit; color: var(--content-text-color);}
body {font-size: var(--font-size-base); color: var(--content-text-color);}
h1, .h1 { font-size: clamp(var(--font-size-xl),5vw,var(--font-size-2xl));
    line-height: clamp(var(--font-size-xl),5vw,var(--font-size-3xl));}
h2, .h2 {font-size: var(--font-size-2xl);line-height: 1;}
h3, .h3 {font-size: var(--font-size-xl);line-height: 1;}
h3, h4, h5, h6, .h3,.h4,.h5 { margin-bottom: .5rem;line-height: 1;}
.text h1, .text h2, .text h3 { margin-bottom: 1rem; margin-top: 1rem; }
section.text .content::after {clear: both;content: '';display: block;}
.textpic { float: left; margin: 0 20px 10px 0; width: 50%;}
.textpic img {width: 100%;}
p, li {line-height: var(--line-height-default);}
header {position: sticky; padding: 15px 0; box-shadow: var(--shadow-sm); background: white; transition: 0.2s ease; top: 0; z-index: 1; }
header nav {padding-left: 40px;}
header.attach { padding: 0; }
.container {width: var(--container-width); margin: 0 auto; padding: 0 var(--gutter); box-sizing: border-box;}
header .container {height: 60px; display: grid; grid-template-columns: auto 1fr auto auto; gap: 0; align-items: center;}
header .logo {display: flex; flex-direction: row; align-items: center; position: relative}
header .logo a {position: absolute; left: 0; top: 0; right: 0; bottom: 0;}
header .logo .icon { width: 56px; height: 34px; background: url(../img/logo.svg) no-repeat left center;
    background-size: contain;}
header a.phone {font-size: var(--font-size-md); font-weight: 500; padding: .5rem 1.5rem;}
.logo .info .name {font-weight: 900; font-size: var(--font-size-md); text-transform: uppercase;}
.logo .info .desc {font-size: small; line-height: 1em;}
nav li a, nav li > span {padding: 6px 12px;}
nav ul {margin-left: -12px; padding-left: 0; display: flex;}
main nav ul {margin-left: -6px; padding-left: 0;}
.breadcrumbs nav li a, .breadcrumbs nav li > span {padding: 6px;}
.breadcrumbs li::after { color: var(--gray-light); content: "-"; font-size: .5rem; margin: 0; vertical-align: middle;}
.breadcrumbs li:last-child::after{content: '';}
.container > .breadcrumbs {margin-top: 1rem;}
a, a span {color: var(--link-text-color); text-decoration: none;
    &:hover {color: var(--link-select-text-color);}
}
nav li.active a {color: var(--link-select-text-color); font-weight: 700;}
main .splash-container { position: relative;
    &:after {background-color: var(--primary); background-image: var(--gradient-primary); position: absolute;
        top: 0; left: 0; right: 0; bottom: 0; box-sizing: border-box; content: ''; z-index: -10;}
}
main.main .splash-container { &:after {background: rgb(23, 178, 69);}}
.splash {height: clamp(280px, 20vh + 20vw, -300px + 100vh); position: relative; opacity: 0.45;
    background-position: center; background-size: cover; max-height: 600px;}
.splash-container .sc { height: 100%; display: flex; width: 100%; position: absolute; top: 0; padding: 1rem 0 2rem; box-sizing: border-box;}
main:not(.main) .splash-container .container { height: 100%; display: flex; flex-direction: column; justify-content: space-between;}
main.main .splash-container .container {align-self: center;text-align: center;}
main:not(.main) .splash-container .info {padding: 30px 30px 30px 20px; border-left: 5px solid var(--secondary); background: rgba(49,49,49,0.2);}
.splash-container .info  h1 {margin-bottom: .5rem; text-shadow: 1px 1px 1px rgba(0,0,0,0.5);}
main.main .splash-container .info  h1 {font-size: var(--font-size-xl);}
.splash-container .info  p {font-size: var(--font-size-sm); line-height: var(--font-size-lg);  margin: 0 0 0.5rem 0; text-shadow: 1px 1px 1px rgba(0,0,0,0.5);}
main:not(.main) .splash { padding: 1rem 0 2rem;}
main section {padding: 1.5rem 0;}
main section > div.head {padding: 1.5rem 0 0;}
.advantages {display: grid; grid-template-columns: 1fr 1fr 1fr 1fr; background: var(--gray-lighter);
    border-radius: var(--border-radius-lg);
    padding: 2rem 3rem; gap: var(--gutter);}
.advantages:first-child{transform: translateY(-30px);}
.advantages .item .title {font-size: var(--font-size-sm); font-weight: 700;margin-bottom: .5rem; line-height: 1;}
.advantages .item .description {font-size: var(--font-size-xs);}
.list .head {margin-bottom: 1.5rem;}
.head {margin-bottom: 2.5rem;}
.list .content{display: grid; gap: var(--gutter);}
.list.services.grid-2 .content {grid-template-columns: 1fr 1fr;}
.grid-3 .content, .list.services .content{grid-template-columns: 1fr 1fr 1fr;}
.t33-grid-3 {display: grid; grid-template-columns: 1fr 1fr 1fr; grid-template-areas: "im1 ttl im2"; text-align: center; align-items: center}
.t33-grid-3 div:nth-child(2) {font-weight: bold; font-size: var(--font-size-lg); grid-area: ttl;}
.t33-grid-3 div:nth-child(1) {grid-area: im1;}
.t33-grid-3 div:nth-child(3) {grid-area: im2;}
.t33-grid-2 {display: grid; grid-template-columns: 1fr 1fr; gap: 1rem;}
.mtop3 {margin-top: 3rem!important;}
.display-4 {margin-top: 1rem; margin-bottom: 1rem; font-size: var(--font-size-xl); line-height: 1.05;}
.display-3 {margin-top: 1rem; margin-bottom: 1rem; font-size: var(--font-size-2xl); line-height: 1.05;}
.display-2 {margin-top: 1rem; margin-bottom: 1rem; font-size: var(--font-size-3xl); line-height: 1.05;}
.display-1 {margin-top: 2rem; font-size: var(--font-size-4xl); line-height: 1.05; margin-bottom: 1rem}
.list a.title {font-weight: bold; font-size: var(--font-size-md); margin-bottom: .5rem;}
.inline {display: inline;}
ul { margin: 5px 0; padding-left: 15px; list-style: none;}
main section ul > li::before { color: var(--primary); content: "● "; font-size: var(--font-size-4xs); padding-right: 10px;}
main .data ul li { list-style-type: none; margin: 10px 0;}
main ol > li {
    counter-increment: item;
    display: table;
    margin-bottom: 5px;
    &:before {
        color: var(--primary);
        content: counters(item,".") ". ";
        display: table-cell;
        font-weight: 700;
        margin-bottom: 5px;
        padding-right: 10px;
    }
}
main section ul > li:hover::before {color: var(--secondary);}
main .data ul > li li {font-size: 13px; margin-left: 20px;}
main .data ul > li li::before {content: "- "; padding-right: 10px;}
main p {margin: 5px 0;}
.quote { border-left: 2px solid var(--primary); padding-left: 10px;}
.quote + h3 {margin-top: 3rem;}
.text h4 { font-size: var(--font-size-xs); font-weight: 700; margin-top: 15px;}
.grey-block { background-color: #fafafa; padding: 10px 25px; border: 1px solid #f0f0f0; margin-top: 30px;}
.block {padding: 20px 25px; margin-top: 30px;}
.block + .block {margin-top: 20px;}
.block.y {background: #fbba00;}
div.accent {
    border: 1px solid var(--gray-light); background: var(--gray-lighter);
    padding: 10px; border-radius: 3px; margin: 20px 0;}
div.accent p, div.accent p a { font-size: var(--font-size-md); margin: 15px 0;
    text-align: center; line-height: var(--line-height-sm);}
main.about section.text .content {padding: 2.5rem 1.5rem;}
.spoiler.no-border { border: none; padding: 10px 0;}
.spoiler .spoiler-head { cursor: pointer;}
.spoiler .spoiler-head h3::before, .spoiler .spoiler-head h4::before, .spoiler .spoiler-head > p::after {
    content: ''; color: var(--primary-dark); width: 30px; height: 24px; text-align: center;
    display: inline-block;  background: url('../img/expandmore-green.svg') no-repeat center;
    vertical-align: middle; transition: 0.5s ease; transform: rotate(0);}
.spoiler .spoiler-head.open h3::before, .spoiler .spoiler-head.open h4::before, .spoiler .spoiler-head.open > p::after { transform: rotate(-180deg);}
.spoiler .spoiler-head h3, .spoiler .spoiler-head h4 { font-size: var(--font-size-md);
    text-transform: none; font-weight: 500;}
.spoiler .spoiler-body { padding-left: 30px;display: none;}
body[contenteditable=true] .spoiler .spoiler-body, #tinymce .spoiler .spoiler-body {display: block;}
.spoiler .spoiler-head.open + .spoiler-body { display: block; }
footer {background: var(--footer-bg-color); border-top: var(--border);padding-bottom: 2rem;}
footer div.nav { border-bottom: var(--border); margin-bottom: 1rem; padding: 1rem 0; }
footer .company-info {display: grid; grid-template-columns: 1fr 1fr 1fr 1fr; gap: var(--gutter);}
.company-info > div {display: flex; flex-direction: column; margin-bottom: .75rem;}
.company-info .label {margin-bottom: .5rem;color: var(--label-color); line-height: 1;
    font-size: var(--font-size-2xs); font-weight: 400;}
.company-info a.phone {font-weight: 700;}
footer .company-info .address .info {display: flex; flex-direction: column;}
main.contacts .content .company-info {
    display: grid;  grid-template-areas: "name phone work" "name addr mail"; gap: var(--gutter);
}
main.contacts .company-info .address .info {display: flex; flex-direction: column;}
main.contacts .content .company-info .name {grid-area: name;}
main.contacts .content .company-info .phone {grid-area: phone;}
main.contacts .content .company-info .working-period {grid-area: work;}
main.contacts .content .company-info .address {grid-area: addr;}
main.contacts .content .company-info .mail {grid-area: mail;}
main.contacts #mapholder {height: 500px;}
footer .copyright {margin-top: 1rem; font-size: var(--small); line-height: 1rem; max-width: 420px;}
.copyright .title {margin-bottom: .5rem;}
.copyright .desc {color: var(--label-color); margin-right: .5rem;}
.banner {border-radius: var(--border-radius-lg); box-shadow: var(--shadow-md);
    margin: 0 var(--negative-gutter) -1rem var(--negative-gutter);
    clip-path: inset(0 0 1rem 0); overflow: hidden; display: grid;
    grid-template-columns: 1fr 1fr;}
.banner.dark {background: var(--primary-dark);}
.banner .title {align-content: center; padding: 4rem;}
.banner .image {opacity: 0.45; background-size: 200%; background-position: right;}
.banner .imageholder {display: grid; background-color: rgba(51, 255, 65, 0.46);}
.banner .title h3 {margin: 1rem 0;}
.clients.slider { background: var(--primary-lighter); padding: 3rem 0;}
.clients:not(.slider) .list {display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 1rem; position: relative;}
.clients.slider .list {display: flex; overflow: hidden;
    gap: 1rem; position: relative;
}
.clients.slider .item {width: calc((var(--container-width) - 4rem) / 3);}
.clients .item {
    background: white;
    border-radius: var(--border-radius-md);
    box-shadow: var(--shadow-md);
    box-sizing: border-box;
    padding: 2rem;
    flex-shrink: 0;
    min-height: 280px;
    cursor: default;
}
.grabbing {user-select: none;}
.clients .item .title {font-size: var(--font-size-sm); font-weight: 700; line-height: 1.75rem; margin-bottom: .5rem;}
.clients .item .description {font-size: var(--font-size-xs);
    line-height: var(--line-height-default); color: var(--label-color);}
.head.link {display: grid;  grid-template-columns: 1fr auto;  align-items: center;}
.slider .head.link { grid-template-columns: 1fr 1fr;}
a.more {color: black;  padding: 0 0.5rem 0 1rem; font-size: 0.8rem; border-radius: var(--border-radius-sm);
    display: inline-flex; align-items: center;
    &:active {box-shadow: 0 0 0 .125rem #9c9c9c80;}
    &::after {
        background: var(--primary);
        content: ""; display: inline-flex; margin-left: .25rem;
        mask-image: url(data:image/svg+xml;charset=base64,%3Csvg%20width%3D%2232%22%20height%3D%2232%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M17.508%2021.492l5.246-5.246L17.508%2011M10.781%2016.246H23.1%22%20stroke%3D%22%23000%22%2F%3E%3C%2Fsvg%3E%0D%0A);
        width: 32px; height: 32px;
    }
}
a.more:hover::after {background: var(--secondary);}
.g-container {position: relative;}
.g-container a.nav {position: absolute; display: flex; top: -5rem; width: 2.5rem; height: 2.5rem; background: white;
    border-radius: 50%; box-shadow: var(--shadow-md); cursor: pointer; right: 0; justify-content: center;
    align-items: center;
    &::after{background: var(--primary); content: ""; transition: background .3s ease;
        width: 14px; height: 20px;
        mask-image: url(data:image/svg+xml;charset=base64,%3Csvg%20width%3D%2214%22%20height%3D%2220%22%20viewBox%3D%220%200%2014%2020%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%3Cpath%20d%3D%22M6%206L10%2010L6%2014%22%20stroke%3D%22black%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%2F%3E%0A%3C%2Fsvg%3E%0A);
    }
}
.g-container a.nav:hover::after {background: var(--secondary);}
.g-container a.nav.prev {margin-right: calc(2.5rem + 4px);; transform: rotate(180deg);}
.btn {border: 0; border-radius: var(--border-radius-sm);
    color: white; cursor: pointer; background: var(--primary);
    padding: 11px 16px;
    &:hover {color: white;}
    &:focus {box-shadow: 0 0 0 .125rem #9c9c9c4d; outline: none;}
    &:active {box-shadow: 0 0 0 .125rem #9c9c9c80;}
}
.btn.secondary {background: var(--secondary);}
table { border-collapse: collapse; font-size: var(--font-size-xs); width: 100%;}
table.table th {
    font-weight: bold; background: #fafafa; font-size: var(--font-size-xs); vertical-align: middle;
}
table th {
    border: 1px solid var(--gray-light); font-size: var(--font-size-2xs); padding: 12px 0.5rem; line-height: 1;
}
div.table-holder {
    max-width: calc(100vw - 2 * var(--gutter)); margin: 18px 0;
}
table.table tbody td { border: 1px solid #ddd;}
table td { line-height: var(--line-height-default); padding: .5rem; vertical-align: top;}
table.table tbody td:first-child {border-left: none;}
table.table tbody td:last-child {border-right: none;}
table tr:hover { box-shadow: var(--shadow-md);}
#t_19 table td:last-child {vertical-align: middle;}
#t_9 .content {text-align: center;}
#t_9 h1:before {content: 'Ошибка'; display: block; font-size: var(--font-size-md);
    font-weight: bolder; color: black; text-transform: uppercase;   }
#t_9 h1 {color: var(--primary); font-size: 120px; font-weight: 700; margin-bottom: 10px; line-height: 1.1;}
table.table td.primary-gradient {background: var(--gradient-primary); color: white;}
div.modal { position: fixed; z-index: 1000; top: 0;bottom: 0; left: 0; right: 0; box-sizing: border-box;
    background: #0008; display: none; opacity: 0; transition: 0.5s ease;
}
div.modal .modal-container {display: flex;  height: 100%; width: 100%; justify-content: center; align-items: center;}
form .mhead h3 {font-size: var(--font-size-lg); margin-bottom: 0;}
div.modal form .mhead, .photoviewer .mhead {display: grid; grid-template-columns: 1fr auto; margin-bottom: 1rem; align-items: center;}
.photoviewer .mhead h3 {font-size: var(--font-size-lg); padding-left: 70px;}
.mhead > a.close {width: 27px; height: 27px; text-align: center; border-radius: 50%; cursor: pointer;
    box-shadow: var(--shadow-md); line-height: 27px; font-size: 24px; color: black; transition: 0.3s ease;
&:hover {color: var(--secondary);}}
form p.flds { display: flex; flex-direction: column-reverse; gap: 0.5rem; margin-bottom: 1rem;}
.flds input {padding: 12px 10px;font-size: var(--font-size-md);background: var(--field-bg-color);
    border-radius: var(--border-radius-sm); transition: border .3s ease; border: none;}
.flds input[required] + label:after {content: '*'; color: var(--secondary); margin-left: 3px; font-variant: super;}
form p.checks {display: flex; align-items: baseline; gap: 3px;}
form .flds input[required]:focus:invalid, form .flds textarea[required]:focus:invalid {outline: 1px solid var(--color-error);}
div.modal form {padding: 2rem; background: white; border-radius: var(--border-radius-md); max-width: 476px;}
div.modal form a {color: var(--secondary);}
form p.action {margin-top: 1rem;}
form label {color: var(--label-color); font-size: var(--font-size-sm);}
form button[type=submit] {font-size: 1rem; opacity: 0.5; transition: 0.5s ease; cursor: not-allowed;}
form:valid button[type=submit] {opacity: 1; cursor: pointer;}
form:valid button[type=submit]:active {background: var(--primary-light);}
body.blur main {filter: blur(3px);}
body.blur {overflow: hidden;}
header .burger {display: none;}
header .burger span {background: var(--link-text-color); height: 2px; transition: all .3s ease-in-out; width: 100%;}
header .burger:hover span {background: var(--link-select-text-color);}
header .burger:hover span:first-child {width: 90%;}
header .burger:hover span:nth-child(2) {width: 70%;}
header .burger:hover span:last-child {width: 50%;}
#menu .modal-container {margin-left: -300px; width: 300px; background: white; flex-direction: column;
    align-items: start; justify-content: flex-start;
    &::after {position: absolute; left: 0; top: 0; right: 0; bottom: 0; content: ''; z-index: -1;}}
#menu .modal-container > div {width: 100%; padding: 1rem 1rem 1.5rem 1.5rem; box-sizing: border-box;}
#menu .modal-container .mhead {display: flex; justify-content: end;}
#menu.visible .modal-container {animation: mleft 0.5s ease-in; margin-left: 0;}
#menu .company-info .phone .label {text-transform: uppercase; font-weight: bold; margin-bottom: 1rem}
#menu .company-info a.phone {font-size: var(--font-size-lg);color: var(--secondary);
    &:hover,&:active {color: var(--secondary-dark);}}
#menu .company-info > div {margin-bottom: 1rem;}
#menu ul {flex-direction: column; margin-top: 2rem;}
#menu nav li a { color: var(--link-text-color); display: block; padding: 8px 12px;
    &:hover {color: var(--link-select-text-color);}}
#menu nav li.active a { color: var(--link-text-color);}
#menu .company-info .address .city {display: none;}
section#t_32 {padding-bottom: 0;}
@keyframes mleft{from{margin-left: -300px;} to{margin-left:0;}}
.map-marker {position: relative;transform: translate(-50%, -100%);}
.map-marker .icon {width: 69px; height: 100px; background: url("../img/marker.svg") no-repeat; background-size: contain; cursor: pointer;}
main.contacts .content .map-marker .company-info {
    display: flex; gap: 0.5rem; flex-direction: column;
}
div.accent p a.btn {margin: 0;}
main a.btn {display: inline-block;}
main.contacts .content .map-marker .company-info .phone .label {text-transform: uppercase;}
.uppercase {text-transform: uppercase;}
main.contacts .content .map-marker .company-info .phone .info {font-size: var(--font-size-md); font-weight: normal;}
main.contacts .content .map-marker .company-info .address .city {display: none;}
.map-marker .popup {
    background: var(--primary);
    border-radius: var(--border-radius-lg);
    box-sizing: border-box;
    left: 6rem;
    min-height: 160px;
    padding: 2rem;
    position: absolute;
    top: -50%;
    width: 240px;
    z-index: 9;
    &::after {
        background: var(--primary);
        content: "";
        height: 2rem;
        left: calc(-1rem + 1px);
        mask-image: url(data:image/svg+xml;charset=base64,%3Csvg%20width%3D%2216%22%20height%3D%2233%22%20viewBox%3D%220%200%2016%2033%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%3Cpath%20d%3D%22M0%2032.4688V0.468781C0%208.93428%207.00644%2015.9407%2016%2016.4688C7.00644%2016.9968%200%2024.0033%200%2032.4688Z%22%20fill%3D%22%230031A7%22%2F%3E%0A%3C%2Fsvg%3E%0A);
        position: absolute;
        top: 50%;
        transform: rotate(180deg);
        width: 1rem;
    }
}
.hidden {display: none!important;}
a.secondary:not(.btn) {color: var(--link-text-secondary-color);
    &:hover{color: var(--secondary-dark);}
}
a.dashed {border-bottom: 1px dashed var(--primary-dark);
    &:hover{border-bottom-style: solid;}
}
a.dashed.secondary {border-bottom-color: var(--secondary-dark);}
.center {text-align: center;}
.justify {text-align: justify;}
div.ul > div,div.ul > p {
    margin: 0 0 10px 20px; position: relative;
    &::before {position: absolute; left: -20px; top: 0; content: '●'; font-size: .5rem; color: var(--primary);}
    &:hover {&::before {color: var(--secondary);}}
}
.spoiler-head > p {margin: 0;}
video {width: 100%; height: auto;}
.photoviewer > a.close:hover, a.close:hover {background: var(--primary);}
.photoviewer {position: fixed; display: none; width: 1014px; left: 50%;top:50%; margin-left: -507px;margin-top: -450px; background: var(--modalback);z-index: 1000; padding: 2rem; border-radius: var(--border-radius-md)}
.photoviewer > * {background: var(--modalback);}
.photoviewer > a.close {background: none;}
.photowraper, .grabbing {user-select: none;}
.photoviewer .photowraper, .photopreviewer .photowraper {position: relative;display: flex; flex-flow: nowrap;overflow: hidden;}
.photopreviewer .photowraper {gap: 25px;}
.photoviewer:before {z-index: -1; display: block; position: fixed; left: 0; top: 0; right: 0; bottom: 0; background: rgba(50,50,50,0.5); content: ''}
.photoviewer:after {z-index: -1; display: block; position: absolute; left: 0; top: 0; right: 0; bottom: 0; background: white; content: ''; border-radius: var(--border-radius-md);}
.photoviewer h2.h1 {margin: 0; padding: 29px 36px 36px 36px;}
.photoviewer .about {padding: 29px 32px 38px; background: none; margin: 0; text-align: center;}
.g-container .piccontainer {height: 560px; background-position: center center; background-repeat: no-repeat; background-size: contain;
    /*background-color: var(--gray-lighter); border: 20px solid var(--gray-lighter);*/ box-sizing: border-box; border-radius: 16px;
    width: 864px; margin: 0 70px;background-blend-mode: darken; text-align: center;}
.photopreviewer .g-container .piccontainer {width: 100%; height: 200px;margin: 0; border: none; background-color: unset; transition: 0.2s ease;}
.photopreviewer .gg-item:hover .piccontainer { transform: scale(1.03);}
.photoviewer .piccontainer video {max-height: 100%; max-width: 100%;}
.photoviewer .about ol li {list-style-type: none;width: 33%; display: inline-block; font-size: 14px;}
.photoviewer .about ol li span {display: inline-block; width: 77%;vertical-align: middle; margin-left: 16px;}
.photoviewer .about ol li::before {color: var(--primary-dark); border: 1px solid var(--primary-dark); width: 48px; height: 48px; box-sizing: border-box; display: inline-block;
    border-radius: 24px; font-size: 20px;text-align: center;line-height: 48px;}
.photoviewer .about ol li:nth-child(1)::before {content: '1'}
.photoviewer .about ol li:nth-child(2)::before {content: '2'}
.photoviewer .about ol li:nth-child(3)::before {content: '3'}
.photoviewer a.nav {position: absolute;top: calc(50% - 20px);}
.photoviewer a.nav.prev {left: 0; transform: rotate(180deg);}
.photoviewer a.nav.next {right: 0;}
.photopreviewer a.nav {position: absolute;top: -2.5rem; right: 0; width: 2.5rem; height: 2.5rem;}
.photopreviewer a.nav.prev {transform: rotate(180deg);}
.photopreviewer {position: relative; cursor: pointer;}
.photopreviewer .gg-item {position: relative; padding: 10px; border-radius: 5px; flex: 1 1 0;}
.photopreviewer .gg-item .enlarge {position: absolute; left: 0; top: 0; right: 0; bottom: 0;}
.gg-item p {text-align: center; font-size: small;}
section.category .g-container { margin: 0 var(--navpos); position: relative;}
