/* Belovode · hero + контент + паттерны + подвал + базовый адаптив (секции 9–14)
   Часть brand.css — подключается в inc/assets.php.
   Источник истины: исторический разрез по секциям 1–26. */

/* ---------------------------------------------------------------------
   9. HERO (первая крупная картинка / cover-блок)
   --------------------------------------------------------------------- */
.entry-content > .wp-block-image:first-child,
.entry-content > .wp-block-cover:first-child {
    margin: -1em calc(50% - 50vw) 2.5em;
    width: 100vw;
    max-width: 100vw;
    position: relative;
}
.entry-content > .wp-block-image:first-child figure,
.entry-content > .wp-block-image:first-child img {
    width: 100%;
    max-height: 68vh;
    min-height: 380px;
    object-fit: cover;
    border-radius: 0;
    display: block;
    box-shadow: inset 0 -80px 120px -40px rgba(43, 32, 24, 0.4);
}
.entry-content > .wp-block-image:first-child figcaption {
    max-width: var(--bel-content-width);
    margin: 0.8em auto 0;
    padding: 0 1em;
    text-align: left;
    font-family: var(--bel-font-body);
    font-size: 0.72rem;
    font-weight: 500;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--bel-oak);
}
.page-home .entry-content > .wp-block-image:first-child img {
    max-height: 78vh;
    min-height: 520px;
}

/* wp:cover как Hero */
.entry-content > .wp-block-cover:first-child,
.belovode-hero {
    min-height: 70vh;
    max-height: 82vh;
    align-items: center;
    justify-content: center;
    position: relative;
}
.belovode-hero::after {
    content: '';
    position: absolute;
    left: 0; right: 0; bottom: 0;
    height: 80px;
    background: linear-gradient(180deg, transparent, var(--bel-bg));
    pointer-events: none;
    z-index: 2;
}
.belovode-hero__eyebrow {
    font-family: var(--bel-font-body) !important;
    font-weight: 600 !important;
    font-size: 0.78rem !important;
    letter-spacing: 0.28em !important;
    padding-left: 0.28em;
    text-transform: uppercase !important;
    color: var(--bel-bg) !important;
    max-width: none !important;
    margin: 0 auto 1.5em !important;
    text-shadow:
        0 1px 2px rgba(43, 32, 24, 0.9),
        0 2px 14px rgba(43, 32, 24, 0.75);
}
.belovode-hero__title {
    padding-left: 0.06em;
    font-family: var(--bel-font-display) !important;
    font-size: clamp(2.1rem, 9vw, 6rem) !important;
    font-weight: 700 !important;
    color: var(--bel-bg) !important;
    letter-spacing: 0.06em !important;
    text-transform: uppercase;
    line-height: 1 !important;
    max-width: none !important;
    margin: 0 auto 0.3em !important;
    text-shadow: 0 4px 40px rgba(43, 32, 24, 0.5);
}
.belovode-hero__title::before { display: none !important; }
.belovode-hero__lede {
    font-family: var(--bel-font-heading) !important;
    font-size: clamp(1.1rem, 2vw, 1.35rem) !important;
    font-style: italic !important;
    color: rgba(247, 241, 229, 0.95) !important;
    max-width: 600px;
    margin: 0 auto 2em !important;
    line-height: 1.5 !important;
    text-shadow: 0 2px 16px rgba(43, 32, 24, 0.5);
}
.belovode-hero .wp-block-buttons { justify-content: center; gap: 14px; }
.belovode-hero .wp-block-button__link { padding: 1.1em 2.4em !important; font-size: 0.9rem !important; }
.belovode-hero .is-style-outline .wp-block-button__link {
    color: var(--bel-bg) !important;
    border-color: var(--bel-bg) !important;
    background: transparent !important;
    box-shadow: none !important;
}
.belovode-hero .is-style-outline .wp-block-button__link:hover {
    background: var(--bel-bg) !important;
    color: var(--bel-ink) !important;
}

.wp-block-cover .wp-block-cover__inner-container {
    max-width: 800px;
    padding: 0 1.5em;
    text-align: center;
}
.wp-block-cover h1,
.wp-block-cover h2 {
    color: var(--bel-bg);
    font-family: var(--bel-font-display);
    font-weight: 700;
    font-size: clamp(2.4rem, 5vw, 4rem);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    margin: 0 0 0.4em;
    text-shadow: 0 2px 20px rgba(43, 32, 24, 0.4);
}
.wp-block-cover h1::before,
.wp-block-cover h2::before { display: none; }
.wp-block-cover p {
    color: var(--bel-bg);
    font-family: var(--bel-font-body);
    font-size: 1.2rem;
    max-width: 600px;
    margin: 0 auto 1.5em;
}

/* ---------------------------------------------------------------------
   10. ОСНОВНОЙ КОНТЕНТ
   --------------------------------------------------------------------- */
.site-content,
.ast-container { background: transparent; }

.entry-content,
.ast-article-post .entry-content {
    max-width: var(--bel-content-width);
    margin-left: auto;
    margin-right: auto;
    padding-bottom: 4em;
}

.entry-content img,
.wp-block-image img {
    border-radius: var(--bel-radius);
    max-width: 100%;
    height: auto;
    box-shadow: var(--bel-shadow-sm);
}
.entry-content > .wp-block-image:first-child img { box-shadow: none; }

/* Inline-картинки в теле статьи — по центру колонки.
   Hero (первая wp-block-image в .entry-content) выходит на 100vw — её
   правила выше живут отдельно, поэтому сюда :first-child не попадает.
   :not(.alignleft):not(.alignright) оставляет редкие случаи обтекания,
   :not(.alignfull):not(.alignwide) — wp-блоки на всю ширину. */
.entry-content :not(:first-child).wp-block-image:not(.alignleft):not(.alignright):not(.alignfull):not(.alignwide) {
    text-align: center;
}
.entry-content :not(:first-child).wp-block-image:not(.alignleft):not(.alignright):not(.alignfull):not(.alignwide) img {
    display: block;
    margin-left: auto;
    margin-right: auto;
}

.entry-content figcaption {
    font-family: var(--bel-font-body);
    font-size: 0.75rem;
    font-weight: 500;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    color: var(--bel-oak);
    text-align: center;
    margin-top: 0.6em;
}

/* Списки — маркер «розетка» */
.entry-content ul.wp-block-list,
.entry-content ul:not(.wp-block-navigation__container):not(.sub-menu) {
    list-style: none;
    padding-left: 0;
}
.entry-content ul.wp-block-list li,
.entry-content ul:not(.wp-block-navigation__container):not(.sub-menu) > li {
    padding-left: 1.9em;
    margin-bottom: 0.55em;
    position: relative;
}
.entry-content ul.wp-block-list li::before,
.entry-content ul:not(.wp-block-navigation__container):not(.sub-menu) > li::before {
    content: '';
    position: absolute;
    left: 0.3em;
    top: 0.5em;
    width: 10px; height: 10px;
    background-color: var(--bel-ochre);
    -webkit-mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 40' fill='none' stroke='black' stroke-width='3'><circle cx='20' cy='20' r='12'/><circle cx='20' cy='20' r='5' fill='black'/></svg>") no-repeat center / contain;
            mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 40' fill='none' stroke='black' stroke-width='3'><circle cx='20' cy='20' r='12'/><circle cx='20' cy='20' r='5' fill='black'/></svg>") no-repeat center / contain;
}
.entry-content ul li::marker { content: ''; }

/* Разделитель — колос посреди тонкой линии */
.wp-block-separator,
hr.wp-block-separator {
    border: none;
    background: none;
    position: relative;
    height: 42px;
    margin: 3.5em auto;
    overflow: visible;
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 320 42' fill='none' stroke='%23B96D3D' stroke-width='1.2' stroke-linecap='round'><path d='M0 30 H 130' opacity='.55'/><path d='M190 30 H 320' opacity='.55'/><g transform='translate(160 30)'><path d='M0 0 V -30'/><path d='M0 -10 C -6 -12 -9 -16 -9 -22 M0 -10 C 6 -12 9 -16 9 -22'/><path d='M0 -18 C -5 -20 -7 -23 -7 -27 M0 -18 C 5 -20 7 -23 7 -27'/><path d='M0 -26 V -34 M-4 -32 L 0 -28 L 4 -32'/></g></svg>");
    background-repeat: no-repeat;
    background-position: center;
    background-size: auto 100%;
}

/* Цитаты */
blockquote, .wp-block-quote {
    background: var(--bel-bg);
    border-left: 4px solid var(--bel-ochre);
    border-top: 1px solid var(--bel-oak-faded);
    border-bottom: 1px solid var(--bel-oak-faded);
    padding: 1.3em 1.7em;
    margin: 2em 0;
    font-family: var(--bel-font-heading);
    font-style: italic;
    font-size: 1.15rem;
    color: var(--bel-ink-soft);
    border-radius: 0 var(--bel-radius) var(--bel-radius) 0;
    position: relative;
}
blockquote::before, .wp-block-quote::before {
    content: '"';
    position: absolute;
    top: -14px; left: 12px;
    font-family: var(--bel-font-display);
    font-size: 4rem;
    color: var(--bel-ochre);
    opacity: 0.3;
    line-height: 1;
}
.wp-block-quote cite {
    display: block;
    margin-top: 0.8em;
    font-family: var(--bel-font-body);
    font-style: normal;
    font-size: 0.75rem;
    font-weight: 500;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--bel-oak);
}

/* Таблицы — прейскурант */
.entry-content table,
.wp-block-table table {
    border-collapse: collapse;
    width: 100%;
    margin: 1.5em 0;
    font-size: 0.98rem;
    background: var(--bel-bg);
    border: 1px solid var(--bel-oak-faded);
    box-shadow: var(--bel-shadow-sm);
}
.entry-content table th,
.entry-content table td {
    border-bottom: 1px solid var(--bel-oak-faded);
    padding: 0.9em 1.1em;
    text-align: left;
    font-family: var(--bel-font-heading);
}
.entry-content table thead th {
    background: var(--bel-ink);
    color: var(--bel-bg);
    font-family: var(--bel-font-body);
    font-weight: 500;
    font-size: 0.76rem;
    letter-spacing: 0.18em;
    text-transform: uppercase;
}
.entry-content table tbody tr:nth-child(even) { background: var(--bel-oak-wash); }
.entry-content table tbody tr:hover { background: var(--bel-bg-alt); }

/* Код */
code, kbd, samp, pre {
    font-family: var(--bel-font-mono);
    background: var(--bel-bg-alt);
    color: var(--bel-ink);
    border-radius: var(--bel-radius);
    padding: 0.1em 0.35em;
    font-size: 0.9em;
}
pre { padding: 1em; overflow-x: auto; }

/* Цифровой акцент — мелкая табличная численная строка */
.belovode-stat, .is-style-stat {
    font-family: var(--bel-font-body);
    color: var(--bel-moss);
    font-size: 0.85em;
    font-weight: 500;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

/* ---------------------------------------------------------------------
   11. ПАТТЕРН «АФИША» (.belovode-poster) — для главной и ключевых блоков
   Используется через inline-класс в редакторе или как обёртка Cover-блока.
   --------------------------------------------------------------------- */
.belovode-poster {
    background: var(--bel-bg-deep);
    padding: 52px 44px;
    position: relative;
    border: 3px double var(--bel-ink);
    outline: 1px solid var(--bel-bg-deep);
    outline-offset: 6px;
    text-align: center;
    margin: 2em 0;
    overflow: hidden;
}
.belovode-poster::before,
.belovode-poster::after {
    content: '';
    position: absolute;
    left: 20px; right: 20px;
    height: 1px;
    background: var(--bel-ink);
    opacity: 0.4;
}
.belovode-poster::before { top: 14px; }
.belovode-poster::after  { bottom: 14px; }
.belovode-poster > h1,
.belovode-poster > h2,
.belovode-poster > h3 {
    font-family: var(--bel-font-display);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    margin: 0 0 0.3em;
}
.belovode-poster > h1 { font-size: clamp(36px, 5vw, 56px); line-height: 1; }
.belovode-poster > h1::before,
.belovode-poster > h2::before { display: none; }

/* ---------------------------------------------------------------------
   12. ПАТТЕРН «КАРТОЧКА» (.belovode-card)
   --------------------------------------------------------------------- */
.belovode-card {
    background: var(--bel-bg);
    border: 1px solid var(--bel-oak-faded);
    display: flex;
    flex-direction: column;
    overflow: hidden;
    transition: transform 180ms ease, box-shadow 180ms ease;
}
.belovode-card:hover {
    transform: translateY(-2px);
    box-shadow: var(--bel-shadow-md);
}
.belovode-card__img {
    height: 200px;
    background: linear-gradient(135deg, #C8B68B, #8B6F47, #4A3A2E);
}
.belovode-card__body { padding: 20px 22px 24px; }
.belovode-card__kicker {
    font-family: var(--bel-font-body);
    font-size: 10px;
    font-weight: 500;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: var(--bel-oak);
    margin: 0 0 6px;
}
.belovode-card__title {
    font-family: var(--bel-font-heading);
    font-weight: 600;
    font-size: 19px;
    line-height: 1.25;
    margin: 0 0 10px;
    color: var(--bel-ink);
}
.belovode-card__title::before { display: none; }
.belovode-card__spec {
    font-size: 13.5px;
    color: var(--bel-ink-soft);
    margin: 0 0 14px;
}
.belovode-card__foot {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-top: 6px;
    padding-top: 12px;
    border-top: 1px solid var(--bel-oak-faded);
}
.belovode-card__price {
    font-family: var(--bel-font-heading);
    font-weight: 600;
    font-size: 18px;
    color: var(--bel-ink);
    font-feature-settings: "tnum";
}
.belovode-card__price small {
    font-family: var(--bel-font-body);
    font-size: 10px;
    font-weight: 500;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--bel-oak);
    margin-left: 4px;
}

/* ---------------------------------------------------------------------
   13. ПОДВАЛ
   --------------------------------------------------------------------- */
.site-footer,
.footer-sml-layout-1,
.ast-footer-bar,
.footer-width-fixer {
    background: var(--bel-ink) !important;
    color: rgba(247, 241, 229, 0.9) !important;
    border-top: 2px solid var(--bel-ochre);
}
.site-footer a,
.ast-footer-bar a { color: var(--bel-bg) !important; }
.site-footer a:hover { color: var(--bel-ochre) !important; }
.site-footer .ast-footer-copyright {
    font-family: var(--bel-font-body);
    font-size: 0.75rem;
    font-weight: 500;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: rgba(247, 241, 229, 0.55) !important;
}

/* ---------------------------------------------------------------------
   14. АДАПТИВ
   --------------------------------------------------------------------- */
@media (max-width: 920px) {
    body { font-size: 16px; }
    .entry-content > .wp-block-image:first-child img {
        max-height: 48vh;
        min-height: 300px;
    }
    .page-home .entry-content > .wp-block-image:first-child img {
        max-height: 60vh;
        min-height: 380px;
    }
    .menu-item.menu-item-cta { margin: 8px 0 0 !important; }
    h1, .entry-title { font-size: clamp(1.7rem, 6vw, 2.3rem); }
    .belovode-poster { padding: 40px 24px; }
}


/* =====================================================================
   Сетка номеров (шорткоды belovode_rooms_grid / belovode_room).
   Используется на /lodging/lodging-rooms/. Adaptive grid:
   3 колонки на десктопе, 2 на планшете, 1 на мобиле.
   ===================================================================== */
.belovode-rooms { margin: 3em auto; }
.belovode-rooms__grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 28px 24px;
    margin-top: 2em;
}
.belovode-rooms__note {
    margin-top: 1.6em;
    text-align: center;
    font-family: var(--bel-font-body);
    font-size: 0.85rem;
    color: var(--bel-oak);
}

.belovode-room {
    background: var(--bel-bg);
    border: 1px solid var(--bel-oak-faded);
    border-radius: var(--bel-radius);
    overflow: hidden;
    display: flex;
    flex-direction: column;
    box-shadow: 0 2px 10px rgba(43, 32, 24, 0.04);
    transition: box-shadow 200ms ease, transform 200ms ease, border-color 200ms ease;
}
.belovode-room:hover {
    box-shadow: 0 6px 22px rgba(43, 32, 24, 0.12);
    border-color: var(--bel-ochre);
    transform: translateY(-2px);
}
.belovode-room__media {
    position: relative;
    display: block;
    aspect-ratio: 4 / 3;
    overflow: hidden;
    background: var(--bel-oak-wash);
}
.belovode-room__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 400ms ease;
    border-radius: 0 !important;
    box-shadow: none !important;
}
.belovode-room:hover .belovode-room__media img { transform: scale(1.04); }
.belovode-room__num {
    position: absolute;
    top: 12px; left: 12px;
    background: var(--bel-ink);
    color: var(--bel-bg);
    font-family: var(--bel-font-display);
    font-weight: 700;
    font-size: 12px;
    letter-spacing: 0.14em;
    padding: 5px 10px;
    border-radius: 2px;
}
.belovode-room__body {
    display: flex;
    flex-direction: column;
    padding: 18px 20px 20px;
    gap: 10px;
    flex: 1 1 auto;
}
.belovode-room__title {
    font-family: var(--bel-font-display);
    font-weight: 700;
    font-size: 1.15rem;
    letter-spacing: 0.04em;
    color: var(--bel-ink);
    margin: 0;
    line-height: 1.25;
}
.belovode-room__meta {
    margin: 0;
    font-family: var(--bel-font-body);
    font-size: 12px;
    font-weight: 500;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--bel-ochre);
}
.belovode-room__features {
    list-style: none !important;
    margin: 4px 0 0 !important;
    padding: 0 !important;
    display: flex;
    flex-direction: column;
    gap: 6px;
    font-family: var(--bel-font-body);
    font-size: 14px;
    color: var(--bel-oak);
    flex: 1 1 auto;
}
.belovode-room__features li {
    margin: 0 !important;
    padding-left: 16px;
    position: relative;
}
.belovode-room__features li::before {
    content: '';
    position: absolute;
    left: 0; top: 0.55em;
    width: 6px; height: 6px;
    border-radius: 50%;
    background: var(--bel-ochre);
}
.belovode-room__foot {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-top: 14px;
    padding-top: 14px;
    border-top: 1px solid var(--bel-oak-faded);
}
.belovode-room__price { display: flex; flex-direction: column; line-height: 1.2; }
.belovode-room__price-val {
    font-family: var(--bel-font-display);
    font-weight: 700;
    font-size: 1.25rem;
    color: var(--bel-ink);
}
.belovode-room__price-period {
    font-family: var(--bel-font-body);
    font-size: 11px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--bel-oak);
}
.belovode-room__cta {
    background: var(--bel-burgundy);
    color: var(--bel-bg) !important;
    text-decoration: none !important;
    font-family: var(--bel-font-display);
    font-weight: 700;
    font-size: 12px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    padding: 10px 14px;
    border-radius: 2px;
    transition: background 150ms ease, transform 150ms ease;
    white-space: nowrap;
}
.belovode-room__cta:hover {
    background: var(--bel-burgundy-dark, #5a1a26);
    transform: translateY(-1px);
}
