/* Stobi shop / cart UI (rebuild) */
:root { --stobi-orange: #e45635; }

/* Header cart */
.header-cart-wrap { position: relative; display: inline-flex; align-items: center; margin-left: 22px; }
.header-cart { display: inline-flex; align-items: center; gap: 6px; color: #23252f; text-decoration: none; position: relative; }
.header-cart:hover { color: var(--stobi-orange); }
.header-cart-count {
    min-width: 18px; height: 18px; padding: 0 5px; border-radius: 9px;
    background: var(--stobi-orange); color: #fff; font-size: 11px; font-weight: 700;
    display: inline-flex; align-items: center; justify-content: center; line-height: 1;
}
/* Mini-cart dropdown */
.header-mini-cart {
    position: absolute; top: 100%; right: 0; width: 320px; max-width: 90vw;
    background: #fff; border: 1px solid #e6ded0; border-radius: 8px; box-shadow: 0 12px 30px rgba(0,0,0,.14);
    padding: 16px; z-index: 999; opacity: 0; visibility: hidden; transform: translateY(6px);
    transition: .18s ease; margin-top: 10px;
}
.header-cart-wrap:hover .header-mini-cart { opacity: 1; visibility: visible; transform: translateY(0); }
.header-mini-cart .woocommerce-mini-cart__empty-message { margin: 0; color: #777; }
.header-mini-cart .cart_list { list-style: none; margin: 0 0 10px; padding: 0; max-height: 300px; overflow-y: auto; }
.header-mini-cart .cart_list li { display: flex; gap: 10px; align-items: center; padding: 8px 0; border-bottom: 1px solid #f0eadf; font-size: 13px; }
.header-mini-cart .cart_list img { width: 44px; height: 44px; object-fit: cover; border-radius: 4px; }
.header-mini-cart .woocommerce-mini-cart__total { display: flex; justify-content: space-between; margin: 10px 0; font-weight: 700; }
.header-mini-cart .woocommerce-mini-cart__buttons { display: flex; gap: 8px; }
.header-mini-cart .woocommerce-mini-cart__buttons .button {
    flex: 1; text-align: center; background: var(--stobi-orange); color: #fff !important;
    padding: 9px 10px; border-radius: 6px; font-size: 13px; text-decoration: none; border: 0;
}
.header-mini-cart .woocommerce-mini-cart__buttons .button.checkout { background: #23252f; }

/* Shop category filter tabs */
.shop-filter { display: flex; flex-wrap: wrap; gap: 10px; margin: 0 0 24px; padding: 0; list-style: none; }
.shop-filter a {
    display: inline-block; padding: 8px 18px; border-radius: 999px; border: 1px solid #e0d6c5;
    color: #23252f; text-decoration: none; font-size: 14px; transition: .15s;
}
.shop-filter a:hover, .shop-filter a.active { background: var(--stobi-orange); color: #fff; border-color: var(--stobi-orange); }

/* WooCommerce product grid — align with the design */
.woocommerce-content ul.products, .woocommerce ul.products { display: grid; grid-template-columns: repeat(3, 1fr); gap: 26px; margin: 0; padding: 0; list-style: none; }
.woocommerce-content ul.products li.product, .woocommerce ul.products li.product { width: auto !important; margin: 0 !important; float: none !important; text-align: left; }
.woocommerce ul.products li.product a img { border-radius: 8px; margin-bottom: 12px; }
.woocommerce ul.products li.product .woocommerce-loop-product__title { font-size: 16px; font-weight: 600; color: #23252f; padding: 0; }
.woocommerce ul.products li.product .price { color: var(--stobi-orange); font-weight: 700; }
.woocommerce ul.products li.product .button,
.woocommerce a.button, .woocommerce button.button, .woocommerce #respond input#submit, .woocommerce .single_add_to_cart_button {
    background: var(--stobi-orange) !important; color: #fff !important; border-radius: 6px !important;
    padding: 10px 18px !important; font-weight: 600 !important; border: 0 !important;
}
.woocommerce a.button:hover, .woocommerce button.button:hover, .woocommerce .single_add_to_cart_button:hover { filter: brightness(.93); }
.woocommerce div.product .product_title { color: #23252f; }
.woocommerce div.product p.price, .woocommerce div.product span.price { color: var(--stobi-orange); font-weight: 700; font-size: 22px; }

@media (max-width: 900px) {
    .woocommerce-content ul.products, .woocommerce ul.products { grid-template-columns: repeat(2, 1fr); }
    .header-cart-wrap { margin-left: 12px; }
}
@media (max-width: 560px) {
    .woocommerce-content ul.products, .woocommerce ul.products { grid-template-columns: 1fr; }
}

/* WooCommerce adds ul.products::before/::after (clearfix). With display:grid they
   become grid items and the first one shows as an EMPTY first cell. Kill them. */
.woocommerce ul.products::before, .woocommerce ul.products::after,
.woocommerce-content ul.products::before, .woocommerce-content ul.products::after { content: none !important; display: none !important; }

/* ---- Batch polish (client notes) ---- */
/* Header shrink timing lives in z-typography.css (desktop only, eased). */

/* Насоки — city tabs */
.city-tabs { gap: 8px; margin: 18px 0 22px; border: 0; }
.city-tabs .nav-link { border-radius: 999px; border: 1px solid #e0d6c5; color: #23252f; padding: 8px 20px; }
.city-tabs .nav-link.active { background: var(--stobi-orange); color: #fff; border-color: var(--stobi-orange); }
.city-map { margin: 14px 0 18px; border-radius: 8px; overflow: hidden; }
.city-map iframe { display: block; width: 100%; }
.app-badges .button { display: inline-block; }

/* Unify homepage news card sizes (varied heights → uniform) */
.news-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 22px; align-items: stretch; }
.news-grid .news-box { display: flex; flex-direction: column; height: 100%; }
.news-grid .news-image { aspect-ratio: 4/3; overflow: hidden; border-radius: 8px; background: #faf7f1; border: 1px solid #ece5d8; }
.news-grid .news-image img { width: 100%; height: 100%; object-fit: contain; padding: 6px; }
.news-grid .news-info { display: flex; flex-direction: column; flex: 1; padding-top: 12px; }
.news-grid .news-info h2 { font-size: 17px; line-height: 1.3; }
.news-grid .news-info > a:last-child { margin-top: auto; }
@media (max-width: 992px) { .news-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .news-grid { grid-template-columns: 1fr; } }

/* Organization member cards + popup */
.org-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 22px; margin: 22px 0; }
.org-member { text-align: center; cursor: pointer; padding: 18px; border: 1px solid #eee; border-radius: 10px; transition: .15s; }
.org-member:hover { box-shadow: 0 8px 20px rgba(0,0,0,.08); transform: translateY(-2px); }
.org-member h4 { margin: 12px 0 2px; font-size: 16px; }
.org-photo { width: 90px; height: 90px; object-fit: contain; border-radius: 50%; background: #f7f3ea; padding: 10px; }
.org-photo-lg { width: 120px; height: 120px; object-fit: contain; display: block; margin: 0 auto 12px; background:#f7f3ea; border-radius:50%; padding:12px; }
.org-role { color: var(--stobi-orange); font-size: 14px; margin: 0; }
@media (max-width:900px){ .org-grid { grid-template-columns: repeat(2,1fr); } }

/* In the media — uniform cards */
.media .media-slide { display: block; text-decoration: none; color: inherit; }
.media .media-slide .slider-image { aspect-ratio: 16/10; overflow: hidden; border-radius: 8px; }
.media .media-slide .slider-image img { width: 100%; height: 100%; object-fit: cover; transition:.3s; }
.media .media-slide:hover .slider-image img { transform: scale(1.05); }
.media .media-slide .slider-content { padding-top: 10px; }
.media .media-slide .publication-date { color: var(--stobi-orange); font-size: 13px; font-weight:600; text-transform:uppercase; letter-spacing:.02em; }
.media .media-slide h2 { font-size: 15px; line-height: 1.35; }

/* ============================================================
   PROFESSIONAL SHOP CARDS (override) — Stobi colours
   ============================================================ */
.woocommerce ul.products, .woocommerce-content ul.products {
    display: grid !important;
    grid-template-columns: repeat(4, 1fr);
    gap: 24px; margin: 26px 0 !important; padding: 0 !important; list-style: none;
}
.woocommerce ul.products li.product {
    width: auto !important; margin: 0 !important; float: none !important; padding: 0 !important;
    background: #fff; border: 1px solid #ece5d8; border-radius: 12px; overflow: hidden;
    display: flex !important; flex-direction: column; text-align: left;
    transition: box-shadow .2s ease, transform .2s ease;
}
.woocommerce ul.products li.product:hover { box-shadow: 0 14px 34px rgba(35,37,47,.12); transform: translateY(-3px); }
/* image */
.woocommerce ul.products li.product > a img,
.woocommerce ul.products li.product img.attachment-woocommerce_thumbnail {
    width: 100% !important; height: 240px !important; object-fit: contain !important;
    background: #faf7f1; margin: 0 !important; border-radius: 0 !important; padding: 16px;
}
/* title */
.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce ul.products li.product h2 {
    font-size: 15px !important; line-height: 1.35; font-weight: 600 !important;
    color: #23252f !important; padding: 14px 16px 4px !important; margin: 0 !important;
    text-decoration: none !important; min-height: 44px;
}
.woocommerce ul.products li.product a { text-decoration: none !important; color: #23252f !important; }
.woocommerce ul.products li.product a:hover .woocommerce-loop-product__title { color: var(--stobi-orange) !important; }
/* price */
.woocommerce ul.products li.product .price {
    color: var(--stobi-orange) !important; font-weight: 700 !important; font-size: 17px !important;
    padding: 0 16px 12px !important; margin: 0 !important; display: block;
}
.woocommerce ul.products li.product .price del { color: #b7ac98 !important; font-weight: 400; margin-right: 6px; }
/* add-to-cart button — full width, filled orange */
.woocommerce ul.products li.product .button,
.woocommerce ul.products li.product a.add_to_cart_button,
.woocommerce ul.products li.product a.added_to_cart {
    display: block !important; margin: auto 16px 16px !important; text-align: center;
    background: var(--stobi-orange) !important; color: #fff !important;
    border: 0 !important; border-radius: 8px !important; padding: 11px 14px !important;
    font-weight: 600 !important; font-size: 14px !important; text-decoration: none !important;
    text-transform: none !important; letter-spacing: 0; transition: filter .15s;
}
.woocommerce ul.products li.product .button:hover { filter: brightness(.92); color:#fff !important; }
.woocommerce ul.products li.product a.added_to_cart { background:#23252f !important; }
/* rating / sale flash */
.woocommerce ul.products li.product .star-rating { margin: 0 16px 8px; font-size: 13px; }
.woocommerce span.onsale, .woocommerce ul.products li.product .onsale {
    background: #23252f !important; color:#fff !important; border-radius: 0 0 8px 0; padding: 6px 12px; min-height:auto; min-width:auto; top:0; left:0; margin:0; line-height:1;
}
@media (max-width: 1100px){ .woocommerce ul.products, .woocommerce-content ul.products { grid-template-columns: repeat(3,1fr); } }
@media (max-width: 820px){ .woocommerce ul.products, .woocommerce-content ul.products { grid-template-columns: repeat(2,1fr); } .woocommerce ul.products li.product > a img { height: 200px !important; } }
@media (max-width: 520px){ .woocommerce ul.products, .woocommerce-content ul.products { grid-template-columns: 1fr; } }

/* ============================================================
   App-store badges + reservation form (АР/ВР, Immersium, Audio)
   ============================================================ */
.store-badges { display:flex; flex-wrap:wrap; gap:14px; align-items:center; margin:18px 0 6px; }
.store-badges a { display:inline-block; transition:transform .15s ease, opacity .15s ease; }
.store-badges a:hover { transform:translateY(-2px); opacity:.9; }
.store-badges img { height:34px !important; width:auto; display:block; }
@media (max-width:480px){ .store-badges img { height:30px !important; } }

.reservation-form {
  max-width:760px; background:#fff; border:1px solid #e7e2d8; border-radius:12px;
  padding:26px 26px 30px; margin:22px 0; box-shadow:0 6px 22px rgba(60,40,10,.06);
}
.reservation-form .rf-row { display:flex; gap:18px; flex-wrap:wrap; margin-bottom:16px; }
.reservation-form .rf-row > label { flex:1 1 220px; }
.reservation-form label { display:block; font-weight:600; color:#5a4a2f; font-size:.92rem; margin-bottom:16px; }
.reservation-form label.rf-full { display:block; }
.reservation-form input, .reservation-form select, .reservation-form textarea {
  width:100%; margin-top:6px; padding:11px 13px; font-size:1rem; font-weight:400;
  border:1px solid #d9d2c4; border-radius:8px; background:#fdfcfa; color:#2b2b2b;
}
.reservation-form input:focus, .reservation-form select:focus, .reservation-form textarea:focus {
  outline:none; border-color:#c8912f; box-shadow:0 0 0 3px rgba(200,145,47,.15);
}
.reservation-form .rf-intro { font-size:.85rem; color:#8a7c63; font-weight:400; margin:6px 0 18px; }
.reservation-form .button {
  background:#c8912f; color:#fff; border:none; padding:13px 30px; border-radius:8px;
  font-weight:600; font-size:1rem; cursor:pointer; transition:background .15s ease;
}
.reservation-form .button:hover { background:#a9761f; }
.reservation-thanks {
  max-width:760px; background:#f2f8ee; border:1px solid #cfe6c0; border-radius:12px;
  padding:22px 24px; margin:22px 0; color:#3d6b28; font-weight:600;
}
.vr-experience { margin:10px 0 26px; }
.vr-experience .vr-note { background:#faf6ee; border-left:4px solid #c8912f; padding:14px 18px; border-radius:0 8px 8px 0; margin:16px 0; }

/* Single publication — cover + download */
.pub-single-cover { max-width:340px; margin:0 0 22px; }
.pub-single-cover img { width:100%; height:auto; border-radius:8px; box-shadow:0 6px 20px rgba(0,0,0,.1); }
a.pub-download { display:inline-block; background:var(--stobi-orange); color:#fff !important; padding:13px 28px; border-radius:8px; font-weight:600; text-decoration:none; transition:filter .15s; }
a.pub-download:hover { filter:brightness(.92); }

/* ============================================================
   Single product + archive polish (apply on ALL WC pages)
   ============================================================ */
/* breadcrumb */
.woocommerce .woocommerce-breadcrumb { font-size:.85rem; color:#8a7c63; margin-bottom:18px; }
.woocommerce .woocommerce-breadcrumb a { color:var(--stobi-orange); text-decoration:none; }
/* result count + ordering row */
.woocommerce .woocommerce-result-count { color:#8a7c63; font-size:.9rem; }
.woocommerce .woocommerce-ordering select { padding:8px 12px; border:1px solid #d9d2c4; border-radius:8px; background:#fff; }

/* --- single product --- */
.woocommerce div.product { display:flex; flex-wrap:wrap; gap:38px; margin-top:8px; }
.woocommerce div.product > .woocommerce-product-gallery { flex:1 1 380px; max-width:520px; margin:0 !important; }
.woocommerce div.product > .summary { flex:1 1 340px; margin:0 !important; }
.woocommerce div.product .woocommerce-product-gallery__image img { border-radius:12px; border:1px solid #ece5d8; background:#faf7f1; }
.woocommerce div.product .product_title { font-size:2rem; color:#23252f; margin:0 0 10px; }
.woocommerce div.product p.price, .woocommerce div.product span.price { color:var(--stobi-orange) !important; font-weight:700; font-size:1.6rem; margin-bottom:18px; }
.woocommerce div.product .woocommerce-product-details__short-description { color:#5a5346; margin-bottom:20px; }
.woocommerce div.product form.cart { display:flex; gap:12px; align-items:center; margin:18px 0 22px; }
.woocommerce div.product form.cart .quantity input.qty { width:72px; padding:12px 8px; border:1px solid #d9d2c4; border-radius:8px; text-align:center; }
.woocommerce div.product form.cart .single_add_to_cart_button {
    background:var(--stobi-orange) !important; color:#fff !important; border:0 !important;
    padding:13px 30px !important; border-radius:8px !important; font-weight:600 !important; font-size:1rem !important;
}
.woocommerce div.product form.cart .single_add_to_cart_button:hover { filter:brightness(.92); }
.woocommerce div.product .product_meta { font-size:.88rem; color:#8a7c63; border-top:1px solid #ece5d8; padding-top:14px; }
.woocommerce div.product .product_meta a { color:var(--stobi-orange); text-decoration:none; }
/* tabs */
.woocommerce div.product .woocommerce-tabs { width:100%; margin-top:14px; }
.woocommerce div.product .woocommerce-tabs ul.tabs { padding:0; border-bottom:2px solid #ece5d8; margin-bottom:18px; }
.woocommerce div.product .woocommerce-tabs ul.tabs li { background:none; border:0; border-radius:0; margin:0 18px 0 0; padding:0 0 10px; }
.woocommerce div.product .woocommerce-tabs ul.tabs li a { color:#8a7c63; font-weight:600; text-decoration:none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a { color:#23252f; }
.woocommerce div.product .woocommerce-tabs ul.tabs::before { border-color:#ece5d8; }
.woocommerce div.product .woocommerce-tabs .panel h2 { font-size:1.3rem; color:#23252f; }
/* related products heading */
.woocommerce .related > h2, .woocommerce .up-sells > h2 { font-size:1.5rem; color:#23252f; margin:34px 0 20px; }
@media (max-width:640px){ .woocommerce div.product { gap:24px; } .woocommerce div.product .product_title { font-size:1.5rem; } }

/* ============================================================
   Organization — member popup (fixed close btn) + staff directory
   ============================================================ */
.org-modal .modal-content { position:relative; border:0; border-radius:14px; padding:8px; box-shadow:0 20px 60px rgba(0,0,0,.28); }
.org-modal .btn-close.org-close { position:absolute; top:14px; right:14px; width:14px; height:14px; padding:8px; background-size:12px; opacity:.55; z-index:5; }
.org-modal .btn-close.org-close:hover { opacity:1; }
.org-modal .modal-body { text-align:center; padding:26px 26px 30px; }
.org-modal .modal-body h3 { font-size:1.35rem; color:#23252f; margin:6px 0 2px; }
.org-modal .org-bio { color:#4a4436; line-height:1.6; text-align:left; margin-top:14px; }
/* staff directory */
.org-dept { color:var(--stobi-orange); font-size:1.15rem; margin:26px 0 10px; padding-bottom:6px; border-bottom:2px solid #ece5d8; }
.org-list { list-style:none; padding:0; margin:0 0 8px; }
.org-list li { padding:7px 0; border-bottom:1px solid #f1ece1; color:#4a4436; }
.org-list .org-name { font-weight:600; color:#23252f; }
.org-list a { color:var(--stobi-orange); text-decoration:none; font-size:.92em; }
/* management */
.mgmt h3 { color:var(--stobi-orange); font-size:1.15rem; margin:24px 0 8px; }
.mgmt ul { margin:0 0 10px; padding-left:20px; }
.mgmt li, .mgmt p { color:#4a4436; line-height:1.6; margin:4px 0; }

/* Donations + visitor terms */
.donate-needs, .donate-past { display:grid; grid-template-columns:repeat(2,1fr); gap:18px; margin:18px 0; }
.donate-need, .donate-item { background:#faf7f1; border:1px solid #ece5d8; border-radius:10px; padding:18px 20px; }
.donate-need h3, .donate-item h3 { color:var(--stobi-orange); font-size:1.05rem; margin:0 0 8px; }
.donate-need p, .donate-item p { color:#4a4436; margin:0; line-height:1.55; }
.visitor-terms { list-style:none; padding:0; margin:14px 0; }
.visitor-terms li { position:relative; padding:9px 0 9px 26px; border-bottom:1px solid #f1ece1; color:#4a4436; line-height:1.5; }
.visitor-terms li::before { content:"•"; position:absolute; left:6px; color:var(--stobi-orange); font-weight:700; }
@media(max-width:640px){ .donate-needs,.donate-past{ grid-template-columns:1fr; } }

/* ============================================================
   Research-history timeline
   ============================================================ */
.stobi-timeline { margin:18px 0; }
.tl-years { display:flex; gap:0; overflow-x:auto; padding:0 0 4px; position:relative; scrollbar-width:thin; }
.tl-years::before { content:""; position:absolute; left:0; right:0; top:19px; height:2px; background:#e6ddcd; z-index:0; }
.tl-year { position:relative; z-index:1; flex:0 0 auto; background:none; border:0; cursor:pointer; padding:0 20px 14px; color:#8a7c63; font-weight:600; font-size:.95rem; white-space:nowrap; }
.tl-year::before { content:""; display:block; width:14px; height:14px; border-radius:50%; background:#fff; border:2px solid #d4c6ad; margin:6px auto 12px; transition:.15s; }
.tl-year:hover { color:#23252f; }
.tl-year.active { color:var(--stobi-orange); }
.tl-year.active::before { background:var(--stobi-orange); border-color:var(--stobi-orange); transform:scale(1.2); }
.tl-panels { margin-top:14px; }
.tl-panel { display:none; animation:tlfade .25s ease; }
.tl-panel.active { display:block; }
.tl-panel h3 { font-size:1.6rem; color:#23252f; margin:0 0 12px; }
.tl-panel > p { color:#4a4436; line-height:1.7; margin:0 0 16px; max-width:820px; }
.tl-panel .tl-empty { color:#8a7c63; font-style:italic; }
@keyframes tlfade { from{opacity:0; transform:translateY(6px);} to{opacity:1; transform:none;} }

/* Историја на Стоби (below the Градот map) */
.stobi-history { margin-top:34px; padding-top:24px; border-top:1px solid #ece5d8; max-width:880px; }
.stobi-history h2 { color:#23252f; font-size:1.7rem; margin:0 0 16px; }
.stobi-history p { color:#4a4436; line-height:1.75; margin:0 0 14px; }

/* linked staff names (open bio popup) */
.org-list a.org-link { color:#23252f; text-decoration:none; border-bottom:1px dashed var(--stobi-orange); cursor:pointer; }
.org-list a.org-link:hover { color:var(--stobi-orange); }

/* Org card grid — all members as cards */
.org-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:18px; margin:14px 0 26px; }
.org-member { text-align:center; padding:20px 16px; border:1px solid #ece5d8; border-radius:12px; background:#fff; }
.org-member.has-bio { cursor:pointer; transition:box-shadow .15s, transform .15s; }
.org-member.has-bio:hover { box-shadow:0 10px 26px rgba(0,0,0,.1); transform:translateY(-3px); }
.org-member.has-bio h4::after { content:"›"; color:var(--stobi-orange); margin-left:6px; font-weight:700; }
.org-member .org-photo { width:96px; height:96px; object-fit:cover; border-radius:50%; background:#f7f3ea; margin:0 auto 12px; display:block; }
.org-member h4 { margin:8px 0 3px; font-size:15px; color:#23252f; }
.org-member .org-role { color:var(--stobi-orange); font-size:12.5px; margin:0 0 8px; line-height:1.4; }
.org-member .org-mail { font-size:12px; color:#8a7c63; text-decoration:none; word-break:break-all; }
.org-member .org-mail:hover { color:var(--stobi-orange); }
@media(max-width:900px){ .org-grid{ grid-template-columns:repeat(2,1fr); } }
@media(max-width:480px){ .org-grid{ grid-template-columns:1fr; } }
.mgmt h4 { color:#23252f; font-size:1rem; margin:14px 0 6px; }

/* Visitor-terms right column (Посетете нè subpages) */
.page-wrapper.has-terms { align-items: flex-start; }
.page-wrapper.has-terms .article-wrapper { flex: 1 1 auto; min-width: 0; }
.terms-sidebar { flex: 0 0 300px; align-self: flex-start; background: #faf7f1; border: 1px solid #ece5d8; border-radius: 12px; padding: 20px 22px; margin-top: 2rem; position: sticky; top: 20px; }
.terms-sidebar h3 { color: var(--stobi-orange); font-size: 1.1rem; margin: 0 0 12px; }
.terms-sidebar ul { list-style: none; padding: 0; margin: 0; }
.terms-sidebar li { position: relative; padding: 8px 0 8px 18px; border-bottom: 1px solid #efe8db; font-size: 12.5px; line-height: 1.45; color: #4a4436; }
.terms-sidebar li:last-child { border-bottom: 0; }
.terms-sidebar li::before { content: "•"; position: absolute; left: 3px; color: var(--stobi-orange); font-weight: 700; }
@media (max-width: 992px) { .page-wrapper.has-terms { flex-wrap: wrap; } .terms-sidebar { flex: 1 1 100%; position: static; } }

/* ============================================================
   Билети и работно време — content-aware [stobi_tickets]
   ============================================================ */
.tk-hours { display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:10px; margin:6px 0 16px; }
.tk-card { background:#fff; border:1px solid #ece5d8; border-radius:12px; padding:12px 15px; }
.tk-card .tk-lbl { font-size:12px; color:#8a7c63; display:flex; align-items:center; gap:5px; }
.tk-card b { display:block; font-size:18px; color:#23252f; margin-top:2px; font-weight:600; }
.tk-card small { font-size:11px; color:#8a7c63; }
.tk-card.tk-dark { background:#23252f; }
.tk-card.tk-dark .tk-lbl, .tk-card.tk-dark small, .tk-card.tk-dark small a { color:#cbbfa6; }
.tk-card.tk-dark a { color:#fff; text-decoration:none; font-size:15px; font-weight:600; display:block; margin-top:3px; }
.tk-card.tk-dark small a { font-size:12px; font-weight:400; }
.tk-i { font-style:normal; }
.tk-audio { background:#fff; border:1px solid #ece5d8; border-radius:12px; padding:12px 16px; margin-bottom:16px; display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:10px; }
.tk-audio .store-badges { margin:0; }
.tk-audio .store-badges img { height:34px !important; }
.tk-h { font-size:1.15rem; color:#23252f; margin:18px 0 10px; }
.tk-table { width:100%; border-collapse:collapse; font-size:14px; background:#fff; border:1px solid #ece5d8; border-radius:12px; overflow:hidden; }
.tk-table th { background:#faf7f1; color:#8a7c63; font-size:12px; font-weight:600; text-align:left; padding:10px 15px; }
.tk-table td { padding:10px 15px; border-top:1px solid #f1ece1; }
.tk-table .r { text-align:right; font-weight:600; }
.tk-table .accent { color:var(--stobi-orange); }
.tk-table .muted { color:#8a7c63; font-weight:400; }
.tk-table .tk-free { background:#eef7ea; }
.tk-table .tk-free .r { color:#3b6d11; }
.tk-disc { background:#fbf0d9; border:1px solid #f0d9a3; border-radius:12px; padding:12px 16px; margin:16px 0; font-size:13.5px; color:#7a5a12; }
.tk-free-days { display:flex; flex-direction:column; gap:7px; margin-bottom:18px; }
.tk-day { font-size:13.5px; color:#4a4436; }
.tk-day b { display:inline-block; background:#eef7ea; color:#3b6d11; font-size:10.5px; font-weight:700; padding:2px 8px; border-radius:20px; margin-right:8px; min-width:60px; text-align:center; }
.tk-buy { display:inline-block; background:var(--stobi-orange); color:#fff !important; padding:12px 26px; border-radius:8px; font-weight:600; text-decoration:none; transition:filter .15s; margin-top:6px; }
.tk-buy:hover { filter:brightness(.92); }

/* ---- Interactive site map (new numbered plan) ----
   Layout matched to the client's design: compact map on the left, the legend
   beside it in THREE columns, no inner scrollbar. */
.stobi-sitemap { display: grid; grid-template-columns: minmax(0,0.95fr) minmax(0,1.5fr); gap: 28px; align-items: start; margin: 1.2rem 0 1.6rem; }
.smap-heading { font-size: 1.5rem; font-weight: 700; color: #23252f; margin: 0 0 1rem; }
.smap-image { line-height: 0; border: 1px solid #d9d2c4; border-bottom: 3px solid #16233a; border-radius: 10px; overflow: hidden; background: #fff; }
/* the pins live in here so their %% coordinates resolve against the image box */
.smap-canvas { position: relative; display: block; line-height: 0; }
.smap-image img, .smap-canvas img { width: 100%; height: auto; display: block; }
/* hotspot sits on top of the printed pin; transparent so the artwork shows through */
.smap-pin { position: absolute; width: 2.2%; aspect-ratio: 1; transform: translate(-50%, -50%); border-radius: 50%; text-indent: -9999px; overflow: hidden; }
.smap-pin span { display: block; }
a.smap-pin { cursor: pointer; box-shadow: 0 0 0 0 rgba(228,86,53,.55); transition: box-shadow .18s, background .18s; }
a.smap-pin:hover, a.smap-pin:focus { background: rgba(255,255,255,.28); box-shadow: 0 0 0 6px rgba(228,86,53,.35); outline: none; }
.smap-pin--plain { cursor: default; }
.smap-legend { background: transparent; border: 0; border-radius: 0; padding: 0; }
.smap-legend h4 { margin: 0 0 14px; font-size: 17px; font-weight: 700; color: #23252f; }
.smap-legend ul { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 10px 18px; max-height: none; overflow: visible; }
.smap-legend li { padding: 0; }
.smap-legend li a, .smap-legend li .lm-plain { display: flex; align-items: flex-start; gap: 9px; padding: 0; font-size: 13.5px; line-height: 1.35; color: #23252f; text-decoration: none; border: 0; }
.smap-legend li a:hover { color: var(--stobi-orange); }
.smap-legend .num { flex: 0 0 auto; width: 21px; height: 21px; margin-top: 1px; border-radius: 50%; background: var(--stobi-orange); color: #fff; font-size: 11.5px; font-weight: 700; display: flex; align-items: center; justify-content: center; }
.smap-legend .lm-plain { color: #8a7c63; }
.smap-legend .lm-plain .num { background: #e3d9c8; color: #7d7361; }
.stobi-sitemap--wide { grid-template-columns: 1fr; }
/* NOTE: no padding here - the hotspots are positioned in percentages of this
   box, so any padding shifts every pin off its printed circle. Frame styling
   goes on the border/background only. */
.stobi-sitemap--wide .smap-image { border-radius: 12px; background: #fafaf7; }
.stobi-sitemap--wide .smap-image img { border-radius: 6px; }
@media (max-width: 1100px) { .smap-legend ul { grid-template-columns: repeat(2, minmax(0,1fr)); } }
@media (max-width: 900px) { .stobi-sitemap { grid-template-columns: 1fr; } }
@media (max-width: 560px) { .smap-legend ul { grid-template-columns: 1fr; } }

/* ============================================================
   Order received / thank-you page — brought in line with the
   rest of the site (was raw WooCommerce default markup).
   ============================================================ */
.woocommerce-order { max-width: 900px; margin: 0 auto; }

/* the "order number / date / email / total / payment method" strip */
.woocommerce-order .woocommerce-thankyou-order-details,
.woocommerce ul.order_details {
  list-style: none; display: flex; flex-wrap: wrap; gap: 14px;
  margin: 0 0 30px; padding: 18px 20px;
  background: #faf7f1; border: 1px solid #ece5d8; border-radius: 12px;
}
.woocommerce ul.order_details li {
  flex: 1 1 150px; border: 0 !important; padding: 0 !important; margin: 0 !important;
  font-size: 11px; letter-spacing: .09em; text-transform: uppercase; color: #8a7c63;
}
.woocommerce ul.order_details li strong {
  display: block; margin-top: 4px; font-size: 16px; letter-spacing: 0;
  text-transform: none; color: #23252f; font-weight: 600;
}

.woocommerce-order .woocommerce-notice--success,
.woocommerce-thankyou-order-received {
  background: #eef5ec; border: 1px solid #bcd6b4; color: #3f6135;
  padding: 14px 18px; border-radius: 10px; margin: 0 0 24px; font-size: 15.5px;
}

.woocommerce-order h2, .woocommerce-order-details__title, .woocommerce-column__title {
  font-size: 1.4rem; font-weight: 700; color: #23252f;
  margin: 30px 0 14px; padding-bottom: 8px; position: relative;
}
.woocommerce-order h2::after, .woocommerce-order-details__title::after, .woocommerce-column__title::after {
  content: ""; position: absolute; left: 0; bottom: 0;
  width: 46px; height: 3px; background: var(--stobi-orange); border-radius: 2px;
}

.woocommerce table.order_details, .woocommerce table.shop_table {
  width: 100%; border-collapse: separate; border-spacing: 0;
  border: 1px solid #ece5d8 !important; border-radius: 12px; overflow: hidden; margin-bottom: 26px;
}
.woocommerce table.shop_table th {
  background: #faf7f1; font-size: 12px; letter-spacing: .07em; text-transform: uppercase;
  color: #8a7c63; font-weight: 700; padding: 12px 16px; border: 0;
}
.woocommerce table.shop_table td { padding: 13px 16px; border: 0; border-top: 1px solid #f0ebe1; }
.woocommerce table.shop_table tfoot th, .woocommerce table.shop_table tfoot td { font-weight: 700; color: #23252f; }
.woocommerce table.shop_table .product-total, .woocommerce table.shop_table td.woocommerce-table__product-total { text-align: right; }

/* tickets block appended by the tickets plugin */
.stobi-tickets-block, .woocommerce-order .stobi-tickets {
  background: #fff; border: 1px solid #ece5d8; border-left: 3px solid var(--stobi-orange);
  border-radius: 12px; padding: 20px 22px; margin: 0 0 26px;
}
.woocommerce-order a { color: var(--stobi-orange); }
.woocommerce-order .stobi-ticket-link,
.woocommerce-order a.button {
  display: inline-block; background: var(--stobi-orange); color: #fff !important;
  padding: 9px 18px; border-radius: 8px; font-weight: 600; text-decoration: none; border: 0;
}
.woocommerce-order .stobi-ticket-link:hover { filter: brightness(.92); }

.woocommerce-customer-details address {
  border: 1px solid #ece5d8 !important; border-radius: 12px; padding: 16px 18px; font-style: normal;
}
@media (max-width: 600px) {
  .woocommerce ul.order_details { flex-direction: column; gap: 12px; }
}
