*{
	margin:0;
	padding:0;
	box-sizing:border-box;
	border-collapse:collapse;
}

html{
	height:100%;
}

body{
	position:relative;
	height:100%;
	min-height:100%;
	max-width:1440px;
	width:100%;
	margin:0 auto;
}
table{
	margin:0 0 20px;
}
#content h1{
	margin-bottom:20px;
}
#content h2{
	margin-bottom:18px;
}
#content h3{
	margin-bottom:15px;
}
#content th{
	padding:3px 5px;
}
#content td{
	padding:2px 5px;
}
.cleaner,
#content .cleaner{
	min-height:0 !important;
	margin:0 !important;
	clear:both;
}

#topbar{
	position:sticky;
	top:0;
	z-index:11000;
}
/* === HEADER === */
#header{
	position:relative;
	z-index:5;
	padding:10px 0 5px;
}
.logo{
	display:table;
}
#header .logo{
	margin:0 auto 10px;
}
.logo p{
	text-align:center;
}
#footer .logo p{
	text-align:left;
}
.logo-title{
	line-height:100%;
}

.phones{
	margin:0;
	text-align:right;
	white-space:nowrap;
}
.phones a{
	display:inline-block;
	margin:0 0 0 10px;
	vertical-align:top;
}
.phones a img{
	vertical-align:middle;
}
@media(max-width:800px){
	.phones a{
		margin:0 0 0 15px;
	}
}

/* === TOP MENU === */
#topmenu{
	height:70px;
	display:flex;
	align-items:center;
	justify-content:space-between;
	padding:0 15px;
	background:#212121;
}
@media(max-width:800px){
	#topmenu{
		height:auto;
	}
}
#topmenu > ul{
	display:flex;
	list-style:none;
	margin:0;
	padding:0;
	gap:0;
	flex:1;
	min-width:0;
	flex-wrap:wrap;
}

@media(max-width:800px){
	#topmenu>ul{
		display:none;
	}
}
#topmenu li{
	position:relative;
	margin:0;
	padding:0;
}

#topmenu li a,
#topmenu li span{
	display:block;
	padding:5px 12px;
	white-space:nowrap;
	text-decoration:none;
}
.topmenu{
	display:none;
	position:absolute;
	z-index:1;
	padding:0 0 5px;
}
.topmenu:before{
	content:'';
    position:absolute;
    z-index:-1;
    inset:0; /* top:0; left:0; right:0; bottom:0; */
    opacity:0.8;
	background:#212121;
	background:#000;
}
#topmenu li:hover .topmenu{
	display:block;
}
@media (hover:hover) and (pointer:fine){
	.touchParent{
		display:none;
	}
}


#top-hamburger a{
	display:block;
	padding:5px 10px 5px 10px;
}
@media(min-width:800px){
	#top-hamburger{
		display:none;
	}
}
#header-right{
	display:flex;
	align-items:center;
	gap:16px;
	flex-shrink:0;
}

#informer a{
	position:relative;
	display:inline-block;
	text-decoration:none;
	color:inherit;
}

#informer img{
	width:40px;
	height:40px;
	display:block;
}

#infquantity{
	position:absolute;
	bottom:-3px;
	right:-8px;
	z-index:10;
	min-width:22px;
	height:22px;
	line-height:18px;
	text-align:center;
	pointer-events:none;
}

#page{
	padding:0 10px;
}
@media(min-width:800px){
	#page{
		min-height:100%;
		display:flex;
		flex-direction:column;
		justify-content:space-between;
	}
}

/* === MAIN WRAPPER === */
#wrapper{
	position:relative;
	z-index:5;
	min-height:100px;
}
@media(min-width:800px){
	#wrapper{
		display:flex;
		flex:1;
	}
}

#left{
	width:240px;
	padding:20px 20px 120px 12px;
}

#navibar{
	width:100%;
	padding:12px 0;
}

#navibar ul ul{
	padding:1px 0 5px 8px;
}

#navibar a,
#navibar span{
	display:block;
	padding:1px 12px 1px 20px;
}

/* === CONTENT === */
#content{
	flex:1;
	padding:20px 0 60px 0;
}

.content{
	padding:25px 0 10px;
}

.content caption{
	text-align:left;
}

.content img{
	max-width:200px;
	overflow:hidden;
}

.content blockquote{
	padding:5px 0;
}

#content h4 span{
	margin:0 3px 0 0;
}

#content fieldset{
	padding:0 0 10px;
}

#content input[type="text"],
#content input[type="password"],
#content input[type="email"],
#content input[type="tel"],
#content input[type="url"]{
	min-width:300px;
	padding:10px;
}

#content #login input[type="text"],
#content #login input[type="password"]{
	width:100px;
}

#login a{
	display:table;
}

#content input[name="r_code"]{
	width:100px;
}

#content #qc{
	width:300px;
}

#content textarea{
	display:block;
	width:100%;
	min-width:300px;
	height:100px;
	padding:10px;
}
@media(max-width:500px){
	#content input[type="text"],
	#content input[type="password"],
	#content input[type="email"],
	#content input[type="tel"],
	#content input[type="url"],
	#content textarea{
		min-width:0px;
	}
}

#content input[type="checkbox"],
#content input[type="radio"],
#content input[type="image"]{
	width:auto !important;
	height:auto;
	margin:0 5px 0 0 !important;
}

#content input[type="submit"],
#content input[type="button"]{
	height:24px;
	padding:0 0 3px;
}

#content input.quantity{
	width:40px;
}

#content .remove,
#content .view,
#content .btnremove{
	text-align:center;
}

#content input.but,
.content input.but,
#content input[type="submit"],
#content input[type="button"]{
	padding:2px;
}

input[disabled], button[disabled]{
	cursor:default;
}
#msgBox{
	width:239px !important;
	min-height:50px !important;
	padding:20px 10px;
	text-align:center;
}

.shop th{
	margin-left:0;
	text-align:left;
	vertical-align:top;
}

.goods_list{
	position:relative;
	display:inline-block;
	width:120px;
	margin:0 10px 20px 0;
	padding:0 0 50px;
	text-align:center;
	vertical-align:top;
}

.goods_list.price{
	margin:0 0 20px -130px;
	padding:0;
	vertical-align:bottom;
}

.sub strong{
	margin:0 5px 0 0;
}
/* === FOOTER === */
#footer{
	position:relative;
	z-index:5;
	min-height:150px;
	padding:12px 20px;
	margin-top:auto;
}
#footer > div{
    flex:1;
    min-width:0;
}
@media(max-width:800px){
	#footer > div{
		padding:0 0 25px;
	}
}
#footer-left{
	display:flex;
	flex-direction:column;
}
@media(min-width:800px){
	#footer{
		display:flex;
		justify-content:space-between;
		align-items:stretch;
	}
	#footer-left{
		justify-content:space-between;
	}
}
.copyright{
	padding:15px 0 0;
}
#collection li{
	margin:0 0 15px;
}
#contact p{
	margin:0 0 15px;
}
#contact a{
	margin:0 10px 0 0;
}

#creator{
	flex:0 auto !important;
	display:flex;
	flex-direction:column;
	justify-content:end;
	text-align:right;
	white-space:nowrap;
}

#creator a{
	display:block;
	margin:0 0 3px;
	text-decoration:none;
	color:inherit;
}

img,
table{
	max-width:100%;
	height:auto;
}

/* === АНОНСЫ:СЕТКА === */
.poster-grid{
	display:grid;
	gap:20px;
	max-width:1420px;
	margin:0 auto;
	padding:0;
}

@media (min-width:1050px){
	.poster-grid{
	  grid-template-columns:repeat(3, minmax(0, 454px));
	  justify-content:space-between;
	}
}

@media (min-width:768px) and (max-width:1049px){
	.poster-grid{
	  grid-template-columns:repeat(2, 1fr);
	}
}

@media (max-width:767px){
	.poster-grid{
	  grid-template-columns:1fr;
	}
}

/* === КАРТОЧКА АНОНСА === */
.anonse{
	background:#F4F4F4;
	overflow:hidden;
	padding:10px;
	container-type: inline-size;
	container-name: anonse;
}

.anonse h4{
	margin-top:0 !important;
}
#content .anonse p.image{
	flex:1;
	background:#DDD;
	display:flex;
	align-items:center;
	justify-content:center;
	min-height:0;
	margin-bottom: 0;
	line-height: 0;
}

.anonse .image img{
	max-width:100%;
	max-height:100%;
	object-fit:contain;
	padding:0 2%;
}
#content .anonse  p:empty{
	display:none;
}
.anonse .cleaner{
	display:none !important;
}

.anonse-text{
	flex:1;
	min-width:0;
}

.anonse-text p{
	margin:0 0 4px 0;
	line-height:1.3;
}

.anonse-text p:last-child{
	margin-bottom:0;
}


.anonse-text p:not(:has(span)){
	margin:0 0  !important;
}
.anonse-text p:has(span){
	margin:15px 0 5px !important;
}
/* === КАРТОЧКА ПОСТЕРА === */
.poster{
	display:flex;
	flex-direction:column;
	background:#F4F4F4;/*
	aspect-ratio:452 / 570;*/
	overflow:hidden;
	padding:0;
	container-type: inline-size;
	container-name: poster;
}

.poster .image{
	flex:1;
	background:#DDD;
	display:flex;
	align-items:center;
	justify-content:center;
	min-height:0;
}

.poster .image img{
	max-width:100%;
	max-height:100%;
	object-fit:contain;
	padding:0 2%;
}

.poster .cleaner{
	display:none !important;
}

/* === НИЖНЯЯ ЧАСТЬ:ТЕКСТ + КНОПКА === */
.poster-footer{
	display:flex;
	align-items:flex-start;
	padding:clamp(8px, 0.97vw, 20px) clamp(10px, 1.39vw, 30px);
	gap:10px;
}
@container poster (max-width:400px) {
	.poster-footer{
		flex-direction:column;
	}
}

.poster-text{
	flex:1;
	min-width:0;
}

.poster-text p{
	margin:0 0 4px 0;
	line-height:1.3;
}

.poster-text p:last-child{
	margin-bottom:0;
}

.poster-button{
	flex-shrink:0;
	align-self:flex-start;
}

.poster-button a.poster{
	min-width:120px;
	height:clamp(30px, 5.5vw, 40px);
	padding:0 12px;
	display:flex;
	align-items:center;
	justify-content:center;
	box-sizing:border-box;
	white-space:nowrap;
}

.poster-text p:not(:has(span)){
	margin:0 0  !important;
}
.poster-text p:has(span){
	margin:15px 0 5px !important;
}
.poster-button a.poster-btn{
	display:inline-block;
	padding:15px 12px;
}

/* === Стили для корзины и уведомлений === */
#admin-debug,
#admin-success{
	position:fixed;
	top:20px;
	left:50%;
	transform:translateX(-50%);
	padding:10px 20px;
	z-index:9999;
	opacity:0;
	transition:opacity 0.3s ease;
	pointer-events:none;
}


.tablelist{
	width: auto; 
	max-width: auto;
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
}
.tablelist thead, 
.tablelist tbody, 
.tablelist tr {
	width: 100%;
	table-layout: fixed; 
}
/*.tablelist th,
.tablelist td {
    overflow-wrap: anywhere;
}*/



/* === Стили для интерфейса выбора параметров === */
.product-options{
	margin:10px 0  25px 0;
}
.size-select, .decoration-select{
	width:150px;
}

.quantity-controls input{
	width:40px;
	text-align:center;
}
.ImageLeft{
	margin:0 50px 40px 0;
}
.option-group{
	margin:0 0 20px;
}
.label{
	margin:0 0 10px;
}
.buttons{
	display:flex;
	flex-wrap:wrap;
	gap:10px;
}
.option-btn{
	padding:8px 10px;
	transition:all 0.2s;
}
.price-display{
	margin:20px 0;
}
.add-to-cart-btn{
	padding:17px 19px;
	transition:background 0.2s;
}



/* === Стили для корзины === */
@media(min-width:1000px){
	#cart-warpper{
		display:flex;
		gap:10px;
		align-items:flex-start;
	}
	#cart{
		flex:1 1 auto;
		padding:0 1em 0 0;
	}
}
#cart{
	margin:0 0 20px;
	padding:20px 20px;
}

#cart-items{
	display: flex;
    flex-direction: column;
    gap:10px;
	margin:0 0 10px;
}
.cart-item{
	display: grid;
    grid-template-columns: auto 1fr auto auto;
    /*  auto — картинка
        1fr — текст
        auto — калькулятор количества
        auto — кнопка Удалить
    */
    align-items:start;
    gap:20px;
    padding:20px 0;
}
.cart-item>*{
	height: 100%;
}
.cart-image{
	padding:0 0 0 20px;
}
.cart-item img{
	width:250px;
}
.cart-calc{
	position:relative;
	display: flex;
	flex-direction:column;
	align-items:end;
	padding:0 20px 0 0;
}
.cart-remove{
	position:absolute;
	width: 24px;
	height: 24px;
	top:-5px;
	right:-28px;
	display: flex;
	justify-content: center;
	align-items: center;
	line-height:1;
}
.cart-calc p{
	margin:0 0 10px 0 !important;
}
.cart-price{
	position:relative;
}
.quantity-controls{
	display: flex;
	align-items: center;
	gap: 0.5em;
	margin:0 0 15px 0;
}

.quantity-controls input{
	width: 40px;
	text-align: center;
}

@media(max-width:800px){
	#cart{
		padding:10px 10px;
	}
	.cart-item{
		position:relative;
		display:flex;
		flex-direction:column;
		align-items: initial;
	}
	.cart-image{
		padding:0 20px;
		text-align:center;
	}
	.cart-item img{
		width:250px;
	}
	.cart-info{
		padding:0 0 0 20px ;
	}
	.cart-calc{
		position:static;
	}
	.cart-price{
		position:static;
	}

	.cart-calc{
		align-items:start;
		padding:0 0 0 20px;
	}
	.cart-remove{
		position:absolute;
		top:10px;
		right:10px;
	}
}

#cart-delivery{
	display:flex;
	justify-content:space-between;
	align-items:center;
	margin:0 0 10px;
	padding:20px;
}
#cart-footer{
	display:flex;
	justify-content:space-between;
	align-items:center;
	padding:20px;
}

#order-form{
	width:500px;
	max-width:100%;
	padding:30px 30px 30px;
}
@media(max-width:500px){
	#order-form{
		width:100%;
	}
}
#order-form h3{
	margin:0 0 20px;
}
#order-form label{
	position:relative;
	display:block;
	border: 1px solid transparent; /*Хак для выравнивания сообщений об ошибке*/
}
#order-form input,
#order-form textarea{
	width:100% !important;
	margin:10px 0 15px !important;
}
#order-form button{
	width:100% !important;
	margin:20px 0 0;
	padding:10px;
}
#clear-cart-button{
	padding:10px;
}


.error-message{
	display: none;
	position: absolute;
	right:10px;
	bottom:10px;
	z-index: 10;
	width: 533px;
	max-width: 100%;
	height: 20px;
	text-align:right;
	line-height: 1.2;
}

/* === Всплывающие уведомления === */
#admin-debug,
#admin-success{
position: fixed;
top: 20px;
left: 50%;
transform: translateX(-50%);
padding: 10px 20px;
border-radius: 5px;
z-index: 9999;
opacity: 0;
transition: opacity 0.3s ease;
pointer-events: none;
}

/* === Стиль модального окна подтверждения === */
.confirm-overlay{
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
display: flex;
align-items: center;
justify-content: center;
z-index: 9998;
visibility: hidden;
opacity: 0;
transition: visibility 0s, opacity 0.3s ease;
}

.confirm-box{
	padding: 20px;
	max-width: 300px;
	text-align: center;
}

.confirm-box button{
margin: 10px 10px;
padding: 8px 16px;
}


#content .stuff{
	display:flex;
	flex-wrap:wrap;
	gap:20px;
	margin:0 0 30px;
}
#content .stuff li{
	padding:10px;
	text-align:center;
}
@media(min-width:500px){
	#content .stuff li{
	}
}
#content .stuff li div{
	width:200px;
	height:200px;
}
#content .stuff li img{
    width: 100%;
    height: 100%;
    object-fit:cover;
    object-fit: contain;
    object-position: center;
}
#content .stuff li p{
	margin:10px 0 10px;
}

.table-wrap {
	clear: both;
	min-width: 0;
	max-width: calc(100% - 10px);
	padding:10px 0 0 !important;
}
div[id^="ascrail"]{
	background:none !important;
}