/* Тема «Корона». Палитра и шрифт по мотивам korona36.ru (архив 31.08.2026). */

@font-face { font-family: "Nunito"; font-weight: 400; font-display: swap; src: url("../fonts/nunito-cyrillic-400.woff2") format("woff2"); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: "Nunito"; font-weight: 700; font-display: swap; src: url("../fonts/nunito-cyrillic-700.woff2") format("woff2"); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: "Nunito"; font-weight: 800; font-display: swap; src: url("../fonts/nunito-cyrillic-800.woff2") format("woff2"); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: "Nunito"; font-weight: 400; font-display: swap; src: url("../fonts/nunito-latin-400.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+20AC, U+20BD, U+2122, U+2212; }
@font-face { font-family: "Nunito"; font-weight: 700; font-display: swap; src: url("../fonts/nunito-latin-700.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+20AC, U+20BD, U+2122, U+2212; }
@font-face { font-family: "Nunito"; font-weight: 800; font-display: swap; src: url("../fonts/nunito-latin-800.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+20AC, U+20BD, U+2122, U+2212; }

:root {
	--c-text: #333;
	--c-muted: #777;
	--c-accent: #e8365d;
	--c-accent-2: #f2668a;
	--c-accent-dark: #c9244a;
	--c-cream: #fdf1d6;
	--c-bg: #fff;
	--c-line: #ececec;
	--c-ok: #2e9d58;
	--radius: 12px;
	--shadow: 0 8px 30px rgba(0, 0, 0, .08);
	--font: "Nunito", -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
	--container: 1140px;
	--gutter: 16px;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body { margin: 0; font: 16px/1.5 var(--font); color: var(--c-text); background: var(--c-bg); overflow-x: hidden; }
img { max-width: 100%; height: auto; display: block; }
a { color: var(--c-accent); }
a:hover { color: var(--c-accent-dark); }
h1, h2, h3 { line-height: 1.2; margin: 0 0 .5em; }

.container { width: 100%; max-width: var(--container); margin: 0 auto; padding: 0 var(--gutter); }
.section { padding: 56px 0; }
.section__title { font-size: clamp(24px, 4vw, 32px); font-weight: 800; text-align: center; margin-bottom: 32px; }

/* --- Кнопки */
.btn, .button, button.button, input.button, .woocommerce a.button, .woocommerce button.button {
	display: inline-flex; align-items: center; justify-content: center; gap: 8px;
	padding: 14px 28px; border: 0; border-radius: 10px; cursor: pointer;
	font: 700 15px/1.2 var(--font); color: #fff !important; text-decoration: none; text-align: center;
	background: linear-gradient(180deg, var(--c-accent-2), var(--c-accent));
	box-shadow: 0 6px 18px rgba(232, 54, 93, .35);
	transition: transform .15s, box-shadow .15s;
}
.btn:hover, .button:hover { transform: translateY(-1px); box-shadow: 0 8px 22px rgba(232, 54, 93, .45); color: #fff; }
.btn--small { padding: 10px 18px; font-size: 14px; }
.btn--ghost { background: #fff; color: var(--c-accent) !important; box-shadow: inset 0 0 0 2px var(--c-accent); }
.button:disabled, .button.disabled { opacity: .5; cursor: not-allowed; transform: none; }

/* --- Шапка */
.site-header { background: #fff; border-bottom: 1px solid var(--c-line); position: sticky; top: 0; z-index: 50; }
.site-header__inner { display: flex; align-items: center; gap: 24px; min-height: 76px; flex-wrap: wrap; padding-top: 8px; padding-bottom: 8px; }
.site-logo img { width: 140px; height: auto; }
.site-nav { display: flex; gap: 20px; flex-wrap: wrap; font-size: 14px; }
.site-nav a { color: var(--c-text); text-decoration: none; }
.site-nav a:hover { color: var(--c-accent); }
.site-header__contacts { margin-left: auto; display: flex; flex-direction: column; align-items: flex-end; }
.site-header__phone { font-weight: 800; font-size: 20px; color: var(--c-text); text-decoration: none; white-space: nowrap; }
.site-header__hours { font-size: 12px; color: var(--c-muted); }
.site-header__hours::before { content: ""; display: inline-block; width: 7px; height: 7px; border-radius: 50%; background: var(--c-ok); margin-right: 6px; vertical-align: middle; }
.site-header__cart { position: relative; color: var(--c-text); display: inline-flex; }
.site-header__cart-count { position: absolute; top: -6px; right: -10px; min-width: 20px; height: 20px; padding: 0 5px; border-radius: 10px; background: var(--c-accent); color: #fff; font-size: 12px; font-weight: 700; display: grid; place-items: center; }

/* --- Первый экран */
.hero { background: linear-gradient(180deg, var(--c-cream) 0%, #fffaf0 70%, #fff 100%); overflow: hidden; }
.hero__inner { display: grid; grid-template-columns: 1.05fr .95fr; align-items: center; gap: 24px; padding-top: 40px; padding-bottom: 0; }
.hero__text { padding-bottom: 48px; }
.hero__title { font-size: clamp(26px, 3.6vw, 40px); font-weight: 800; }
.hero__title mark { background: none; color: var(--c-accent); }
.hero__features { list-style: none; padding: 0; margin: 28px 0 32px; display: grid; gap: 18px; }
.feature { display: flex; align-items: center; gap: 14px; }
.feature__icon { width: 44px; height: 44px; object-fit: contain; flex: none; }
.feature__title { display: block; font-size: 15px; }
.feature__text { display: block; font-size: 13px; color: var(--c-muted); }
.hero__price-request { font-size: 15px; background: #fff; border-radius: var(--radius); padding: 14px 18px; box-shadow: var(--shadow); display: inline-block; margin: 0; }
.hero__art img { margin: 0 auto; max-height: 520px; width: auto; }

/* --- Как заказать */
.how__steps { list-style: none; counter-reset: step; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(5, 1fr); gap: 16px; }
.how__steps li { counter-increment: step; background: #fff; border-radius: var(--radius); box-shadow: var(--shadow); padding: 20px 16px; text-align: center; font-weight: 700; font-size: 15px; }
.how__steps li::before { content: counter(step); display: grid; place-items: center; width: 40px; height: 40px; margin: 0 auto 12px; border-radius: 50%; background: var(--c-accent); color: #fff; font-weight: 800; }

/* --- Контакты */
.contacts { background: #fafafa; }
.contacts__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; }
.contacts__item h3 { font-size: 14px; text-transform: uppercase; letter-spacing: .04em; color: var(--c-muted); margin-bottom: 10px; }
.contacts__item p { margin: 0; }
.contacts__phone { display: block; font-weight: 800; font-size: 18px; color: var(--c-text); text-decoration: none; }
.contacts__muted { color: var(--c-muted); font-size: 14px; margin-top: 6px !important; }
.contacts__messengers { display: flex; gap: 10px; flex-wrap: wrap; }
.messenger { display: inline-block; padding: 8px 16px; border-radius: 20px; color: #fff !important; text-decoration: none; font-weight: 700; font-size: 14px; }
.messenger--wa { background: #25d366; }
.messenger--tg { background: #2aabee; }

/* --- Подвал */
.site-footer { border-top: 1px solid var(--c-line); padding: 24px 0; font-size: 14px; color: var(--c-muted); }
.site-footer__inner { display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap; }
.site-footer a { color: var(--c-muted); }

/* --- Обычные страницы */
.page-content { padding-top: 40px; padding-bottom: 56px; max-width: 860px; }

/* --- Адаптив */
@media (max-width: 960px) {
	.site-nav { order: 3; width: 100%; }
	.site-header__cta { display: none; }
	.hero__inner { grid-template-columns: 1fr; }
	.hero__art { order: -1; }
	.hero__art img { max-height: 280px; }
	.hero__text { padding-bottom: 40px; }
	.how__steps { grid-template-columns: repeat(2, 1fr); }
	.contacts__grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 560px) {
	.site-header__inner { gap: 12px; }
	.site-logo img { width: 110px; }
	.site-header__phone { font-size: 16px; }
	.site-header__hours { display: none; }
	.hero__inner { padding-top: 16px; }
	.hero__art img { max-height: 190px; }
	.hero__features { margin: 20px 0 24px; }
	.hero__price { width: 100%; }
	.how__steps, .contacts__grid { grid-template-columns: 1fr; }
	.section { padding: 40px 0; }
}

/* ================================================================ Каталог */
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(1px, 1px, 1px, 1px); white-space: nowrap; }
.catalog__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; }
.catalog__empty { text-align: center; color: var(--c-muted); }
.gift-card { background: #fff; border-radius: var(--radius); box-shadow: var(--shadow); padding: 14px; display: flex; flex-direction: column; gap: 10px; }
.gift-card__img { display: block; aspect-ratio: 1; border-radius: 10px; overflow: hidden; background: var(--c-cream); }
.gift-card__img img { width: 100%; height: 100%; object-fit: cover; }
.gift-card__title { font-size: 16px; font-weight: 800; margin: 0; }
.gift-card__title a { color: var(--c-text); text-decoration: none; }
.gift-card__title a:hover { color: var(--c-accent); }
.gift-card__meta { display: flex; justify-content: space-between; align-items: baseline; margin-top: auto; }
.gift-card__weight { color: var(--c-muted); font-size: 14px; }
.gift-card__price { font-size: 20px; font-weight: 800; color: var(--c-accent); }
.gift-card__actions { display: flex; flex-direction: column; gap: 8px; }
.gift-card__cart { display: flex; gap: 8px; }
.gift-card__cart .qty { width: 72px; flex: none; }
.gift-card__cart .button { flex: 1; padding: 10px 12px; }
.gift-card .added_to_cart { display: block; text-align: center; font-size: 14px; font-weight: 700; }
.gift-placeholder { width: 100%; height: 100%; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8px; color: #b89a6a; font-size: 13px; }
.gift-placeholder img { width: 40%; height: auto; }

/* ================================================================ Формы */
input[type="text"], input[type="email"], input[type="tel"], input[type="number"], input[type="date"], select, textarea, .input-text {
	font: 16px/1.3 var(--font); color: var(--c-text); padding: 10px 12px; border: 1px solid #d8d8d8; border-radius: 8px; background: #fff; width: 100%; max-width: 100%;
}
input:focus, select:focus, textarea:focus { outline: 2px solid var(--c-accent-2); outline-offset: 1px; border-color: transparent; }

/* ================================================================ Страница подарка */
.woo-page { padding-top: 28px; padding-bottom: 56px; }
.back-link { display: inline-block; margin-bottom: 18px; text-decoration: none; font-weight: 700; }
.single-product div.product { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 32px 40px; }
.single-product div.product .woocommerce-product-gallery,
.single-product div.product .summary { width: auto !important; float: none !important; margin: 0 !important; }
.single-product .woocommerce-product-gallery { border-radius: var(--radius); overflow: hidden; background: var(--c-cream); opacity: 1 !important; }
.single-product .woocommerce-product-gallery__image img { width: 100%; }
.single-product .woocommerce-product-gallery__image--placeholder { aspect-ratio: 1; display: grid; place-items: center; }
.single-product .woocommerce-product-gallery__image--placeholder img { width: 40%; }
.single-product .product_title { font-size: clamp(24px, 3vw, 34px); font-weight: 800; }
.single-product .summary .price { font-size: 28px; font-weight: 800; color: var(--c-accent); margin: 0 0 4px; }
.product-weight { color: var(--c-muted); margin: 0 0 16px; }
.single-product form.cart { display: flex; gap: 10px; align-items: center; margin: 20px 0; flex-wrap: wrap; }
.single-product form.cart .qty { width: 90px; }
.single-product .sostav { grid-column: 1 / -1; }

.contact-cta { background: var(--c-cream); border-radius: var(--radius); padding: 16px 18px; margin: 18px 0; }
.contact-cta__lead { margin: 0 0 10px; }
.contact-cta__links { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.contact-cta__phone { font-weight: 800; font-size: 18px; color: var(--c-text); text-decoration: none; margin-right: 6px; }

/* ================================================================ Состав */
.sostav__title { font-size: 24px; font-weight: 800; }
.sostav__wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; border-radius: var(--radius); box-shadow: var(--shadow); }
.sostav__table { width: 100%; border-collapse: collapse; background: #fff; font-size: 15px; }
.sostav__table th, .sostav__table td { padding: 10px 14px; text-align: left; border-bottom: 1px solid var(--c-line); }
.sostav__table thead th { background: var(--c-accent); color: #fff; font-weight: 700; }
.sostav__table tbody tr:nth-child(even) { background: #fdf8ee; }
.sostav__n { width: 48px; color: var(--c-muted); }
.sostav__qty { width: 120px; text-align: center !important; }
.sostav__note { font-size: 13px; color: var(--c-muted); margin-top: 12px; }

/* ================================================================ Уведомления Woo */
.woocommerce-notices-wrapper:empty { display: none; }
.woocommerce-message, .woocommerce-info, .woocommerce-error { list-style: none; margin: 0 0 20px; padding: 14px 18px; border-radius: var(--radius); background: #f2faf5; border-left: 4px solid var(--c-ok); }
.woocommerce-info { background: #f4f8fd; border-left-color: #2a7bd8; }
.woocommerce-error { background: #fdf2f4; border-left-color: var(--c-accent); }
.woocommerce-message .button, .woocommerce-info .button { float: right; padding: 8px 14px; margin-left: 12px; }

@media (max-width: 960px) {
	.catalog__grid { grid-template-columns: repeat(2, 1fr); gap: 16px; }
	.single-product div.product { grid-template-columns: 1fr; gap: 20px; }
}
@media (max-width: 560px) {
	.catalog__grid { grid-template-columns: 1fr 1fr; gap: 12px; }
	.gift-card { padding: 10px; }
	.gift-card__title { font-size: 14px; }
	.gift-card__price { font-size: 17px; }
	.gift-card__meta { flex-direction: column; gap: 2px; }
	.gift-card__cart { flex-direction: column; }
	.gift-card__cart .qty { width: 100%; }
	.sostav__table { font-size: 13px; }
	.sostav__table th, .sostav__table td { padding: 8px 8px; }
	.sostav__n { display: none; }
	.sostav__qty { width: 56px; }
	.sostav__table thead .sostav__qty { font-size: 0; }
	.sostav__table thead .sostav__qty::after { content: "Шт."; font-size: 13px; }
}

.admin-bar .site-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .site-header { top: 46px; } }
@media (max-width: 600px) { .admin-bar .site-header { top: 0; } }

[id] { scroll-margin-top: 96px; }

/* ================================================================ Корзина и оформление */
.catalog__terms { text-align: center; color: var(--c-muted); margin: -16px 0 28px; }
.woocommerce-cart .woo-page h1, .woocommerce-checkout .woo-page h1 { font-size: 30px; font-weight: 800; }
table.shop_table { width: 100%; border-collapse: collapse; background: #fff; border-radius: var(--radius); box-shadow: var(--shadow); overflow: hidden; margin-bottom: 24px; }
table.shop_table th, table.shop_table td { padding: 12px 14px; border-bottom: 1px solid var(--c-line); text-align: left; vertical-align: middle; }
table.shop_table thead th { background: #fafafa; font-size: 14px; }
table.shop_table .product-thumbnail img { width: 64px; border-radius: 8px; }
table.shop_table .product-remove a { font-size: 22px; text-decoration: none; color: var(--c-muted); }
table.shop_table .qty { width: 84px; }
table.shop_table td.actions { text-align: right; }
table.shop_table td.actions .coupon { display: none; }
.cart-collaterals .cart_totals { max-width: 460px; margin-left: auto; float: none; width: auto; }
.cart_totals h2 { font-size: 22px; }
.wc-proceed-to-checkout .checkout-button { width: 100%; font-size: 17px; padding: 16px; }
.korona-min-order { background: #fdf2f4; border-radius: 10px; padding: 12px 14px; color: var(--c-accent-dark); font-weight: 700; }
.korona-free-hint td { color: var(--c-muted); font-size: 14px; }
.korona-free-hint--ok td { color: var(--c-ok); font-weight: 700; }
.woocommerce-shipping-methods { list-style: none; margin: 0; padding: 0; }
.woocommerce form .form-row { margin: 0 0 14px; padding: 0; }
.woocommerce form .form-row label { display: block; font-weight: 700; font-size: 14px; margin-bottom: 4px; }
.woocommerce form .form-row .required { color: var(--c-accent); text-decoration: none; }
.woocommerce form .form-row.woocommerce-invalid input.input-text { border-color: var(--c-accent); }
.col2-set::before, .col2-set::after, .cart-collaterals::before, .cart-collaterals::after { content: none !important; display: none !important; }
.woocommerce-checkout .col2-set { display: grid; grid-template-columns: 1fr 1fr; gap: 32px; }
.woocommerce-checkout .col2-set .col-1, .woocommerce-checkout .col2-set .col-2 { width: auto; float: none; }
#order_review_heading { margin-top: 32px; }
#payment { background: var(--c-cream); border-radius: var(--radius); padding: 18px; }
#payment ul.payment_methods { list-style: none; margin: 0 0 14px; padding: 0; }
#payment .payment_box { font-size: 14px; color: var(--c-muted); margin-top: 6px; }
#payment .place-order { margin: 0; }
#place_order { width: 100%; font-size: 17px; padding: 16px; }
.woocommerce-terms-and-conditions-wrapper { margin-bottom: 14px; }
.woocommerce-terms-and-conditions { display: none !important; }
.woocommerce-form__label-for-checkbox { display: flex !important; gap: 8px; align-items: flex-start; font-weight: 400 !important; }
.woocommerce-order-overview { list-style: none; padding: 0; display: flex; flex-wrap: wrap; gap: 12px 28px; margin: 0 0 24px; }
.woocommerce-order-overview li { font-size: 14px; color: var(--c-muted); }
.woocommerce-order-overview li strong { display: block; color: var(--c-text); font-size: 16px; }
.woocommerce-thankyou-order-received { background: #f2faf5; border-radius: var(--radius); padding: 18px 20px; font-size: 16px; }
.korona-steps { margin: 12px 0 0; padding-left: 22px; }
.korona-steps li { margin-bottom: 4px; }
.woocommerce-customer-details address { font-style: normal; background: #fafafa; padding: 14px; border-radius: var(--radius); }
.cart-empty { text-align: center; font-size: 18px; }
.return-to-shop { text-align: center; }

@media (max-width: 768px) {
	.woocommerce-checkout .col2-set { grid-template-columns: 1fr; gap: 0; }
	table.shop_table_responsive thead { display: none; }
	table.shop_table_responsive tr { display: block; border-bottom: 1px solid var(--c-line); }
	table.shop_table_responsive td { display: flex; justify-content: space-between; gap: 12px; border: 0; padding: 8px 14px; text-align: right !important; }
	table.shop_table_responsive td::before { content: attr(data-title); font-weight: 700; text-align: left; }
	table.shop_table_responsive td.product-remove::before, table.shop_table_responsive td.product-thumbnail::before, table.shop_table_responsive td.actions::before { content: none; }
	table.shop_table_responsive td.product-thumbnail { display: none; }
	.cart-collaterals .cart_totals { max-width: none; }
}
.cart-collaterals, .woocommerce-cart-form { display: flow-root; }
.korona-free-hint td::before { content: none !important; }
.korona-free-hint td { justify-content: flex-end; }
@media (max-width: 560px) {
	.woocommerce-message .button, .woocommerce-info .button { float: none; display: flex; margin: 10px 0 0; width: 100%; }
}
