/* Shared page.php layout. Loaded last; custom landing pages retain their styles. */
body.vyv-page-layout {
    --vyv-page-line: rgba(17, 17, 17, .2);
    --vyv-page-paper: #ffffff;
}
.vyv-content-page .bp-inner-hero__card h1 {
    font-family: Georgia, 'Times New Roman', serif;
    font-weight: 400;
}
.vyv-content-page .bp-inner-hero__summary .vyv-page-action { margin-top: 20px; }
.vyv-content-page .bp-content-layout { padding-inline: 0; }
.vyv-content-page .bp-content-layout__grid { grid-template-columns: minmax(0, 1fr); gap: 0; max-width: 1980px; }
.vyv-content-page .bp-content-layout__entry { display: block; gap: clamp(28px, 3.2vw, 52px); padding: 0; font-size: 14px; line-height: 1.6; }
.bp-step-bg-card .bp-step-bg-card__content h3 {color: #c53d0b;}
.vyv-content-page .bp-content-layout__entry .bp-content-section { padding: clamp(24px, 2.5vw, 40px); }
.vyv-content-page .bp-content-layout__entry h2 {
    margin: 0 0 24px;
    text-wrap: balance;
}
.vyv-content-page .bp-content-layout__entry h3 { margin: 0 0 12px; font-size: clamp(17px, 1.15vw, 22px); font-weight: 500; line-height: 1.4; }
.vyv-content-page .bp-content-layout__entry p { margin: 0 0 16px; }
.vyv-content-page .bp-content-layout__entry p:last-child { margin-bottom: 0; }
.vyv-content-page [id] { scroll-margin-top: calc(var(--header-height) + 24px); }
.vyv-page-action {
    display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 12px 22px;
    border-radius: 28px; background: #141c54; color: #fff; font-size: 14px; line-height: 1.4; text-align: center;
}
.vyv-page-action:hover { background: #e13912; }
.vyv-page-nav { display: flex; flex-wrap: wrap; gap: 8px 28px; padding: 0 0 16px; border-bottom: 1px solid var(--vyv-page-line); }
.vyv-page-nav a { display: inline-flex; align-items: center; min-height: 44px; font-size: 13px; color: var(--muted); }
.vyv-page-nav a:hover { color: #111; }
.vyv-content-page .bp-content-layout__entry .vyv-page-benefits { background-size: auto 100%; }
.vyv-content-page .vyv-page-benefits h2 { max-width: 36ch; font-size: clamp(24px, 2.1vw, 34px); }
 li { display: flex; align-items: center; gap: 10px; margin: 0; padding: 0; min-width: 0; font-size: 14px; line-height: 1.4;}
 li img { flex: 0 0 44px; width: 44px; height: 44px; object-fit: contain; padding: 0; }

/* Shared cards, including compatible markup from existing service pages. */
.vyv-content-page .bp-content-layout__entry .vyv-page-cards-section { padding: 0; }
.vyv-content-page .vyv-page-card-grid { grid-template-columns: repeat(12, minmax(0, 1fr)); gap: clamp(16px, 2.6vw, 40px); margin: 0; }
.vyv-content-page .vyv-page-card { grid-column: span 4; display: flex; flex-direction: column; min-width: 0; background: var(--vyv-page-paper); border: 1px solid var(--vyv-page-line); border-radius: 18px; }
.vyv-content-page .vyv-page-card::after { display: none; }
.vyv-content-page .vyv-page-card-image { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.vyv-content-page .vyv-page-card-body { display: flex; flex-direction: column; flex: 1; min-width: 0; padding: clamp(18px, 1.8vw, 28px); }
.vyv-content-page .bp-content-layout__entry .vyv-page-card h3 { margin: 0 0 12px; font-size: clamp(17px, 1.1vw, 22px); font-weight: 500; line-height: 1.4; }
.vyv-content-page .bp-content-layout__entry .vyv-page-card-body > p { margin: 0; color: var(--muted); font-size: 14px; line-height: 1.6; }
.vyv-content-page .vyv-page-card:nth-child(n+4) { grid-column: span 6; display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1fr); }
.vyv-content-page .vyv-page-card:nth-child(n+4) .vyv-page-card-image { height: 100%; aspect-ratio: auto; }
/* Native HTML price table: every price is rendered on the server. */
.vyv-content-page .vyv-page-prices { background: var(--vyv-page-paper); border: 1px solid var(--vyv-page-line); }
.vyv-content-page .bp-content-layout__entry .vyv-page-price-unit { color: var(--muted); font-size: 13px; margin: 0 0 18px; }
.vyv-content-page .bp-content-layout__entry .vyv-page-price-table {
    display: table; width: 100%; margin: 0; border: 0; border-radius: 0; border-collapse: collapse; border-spacing: 0;
    table-layout: fixed; overflow: visible; font-size: 14px; line-height: 1.5;
}
.vyv-content-page .vyv-page-price-table tr { background: transparent; }
.vyv-content-page .vyv-page-price-table th { padding: 12px 18px 12px 0; color: var(--muted); background: transparent; font-size: 12px; font-weight: 400; border: 0; border-bottom: 1px solid #111; }
.vyv-content-page .vyv-page-price-table th:first-child { width: 34%; }
.vyv-content-page .vyv-page-price-table th:nth-child(2) { width: 44%; }
.vyv-content-page .vyv-page-price-table th:last-child { width: 22%; text-align: right; padding-right: 0; }
.vyv-content-page .vyv-page-price-table td { padding: 18px 18px 18px 0; border: 0; border-bottom: 1px solid var(--vyv-page-line); overflow-wrap: anywhere; }
.vyv-content-page .vyv-page-price-table td:nth-child(2) { color: var(--muted); font-size: 13px; }
.vyv-content-page .vyv-page-price-table td:last-child { padding-right: 0; text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
.vyv-content-page .vyv-page-price-table tr:last-child td { border-bottom: 1px solid var(--vyv-page-line); }
.vyv-page-price-footer { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 18px; margin-top: 24px; }
.vyv-content-page .bp-content-layout__entry .vyv-page-price-footer p { max-width: 62ch; margin: 0; color: var(--muted); font-size: 13px; }

/* Steps and real portfolio items, with no permanent sidebar. */
.vyv-content-page .bp-steps-grid--bg { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; }
.vyv-content-page .bp-step-bg-card { min-height: 210px; background: var(--vyv-page-paper); border: 1px solid var(--vyv-page-line); box-shadow: none; }
.vyv-content-page .bp-step-bg-card__content { max-width: 100%; padding: 24px 22px 76px; }
.vyv-content-page .bp-step-bg-card::after { width: 48px; height: 48px; opacity: .8; }
.vyv-content-page .bp-step-bg-card h3 { font-size: 17px; }
.vyv-content-page .bp-step-bg-card p { color: var(--muted); font-size: 13px; }
.vyv-content-page .bp-content-layout__entry :is(.vyv-page-works, .vyv-page-gallery, .vyv-page-faq) { padding: 0; }
.vyv-page-section-heading { display: flex; justify-content: space-between; align-items: baseline; flex-wrap: wrap; gap: 12px 24px; margin-bottom: 24px; }
.vyv-content-page .vyv-page-section-heading h2 { margin: 0; }
.vyv-page-section-heading > a { font-size: 13px; min-height: 44px; display: inline-flex; align-items: center; }
.vyv-page-work-grid, .vyv-page-gallery-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 40px; }
.vyv-page-work, .vyv-page-gallery-grid > a { min-width: 0; }
.vyv-page-work img, .vyv-page-gallery-grid img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 18px; }
.vyv-content-page .bp-content-layout__entry .vyv-page-work h3 { margin: 16px 0 8px; }
.vyv-content-page .bp-content-layout__entry .vyv-page-work p { color: var(--muted); font-size: 13px; }
.vyv-page-terms { background: var(--vyv-page-paper); border: 1px solid var(--vyv-page-line); }
.vyv-page-terms-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px; }
.vyv-page-faq details { padding: 18px 0; border-bottom: 1px solid var(--vyv-page-line); }
.vyv-page-faq summary { cursor: pointer; font-size: 15px; }
.vyv-content-page .bp-content-layout__entry .vyv-page-faq details p { color: var(--muted); margin: 12px 0 0; }
.vyv-page-quote { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 28px; background: var(--vyv-page-paper); border: 1px solid var(--vyv-page-line); }
.vyv-content-page .bp-content-layout__entry .vyv-page-quote h2 { margin-bottom: 16px; }
.vyv-content-page .bp-content-layout__entry .vyv-page-selection { color: #b83210; font-size: 14px; margin-top: 18px; }
.vyv-page-quote-actions { display: flex; flex-direction: column; gap: 14px; align-items: center; }
.vyv-page-contact-link { display: inline-flex; align-items: center; min-height: 44px; font-size: 13px; }

/* Standard page navigation: wide disclosure panel, then nested inline lists. */
.vyv-page-layout .site-header { background: #fffaf5; backdrop-filter: none; -webkit-backdrop-filter: none; }
.vyv-page-layout .site-header__inner { position: relative; gap: 24px; }
.vyv-page-layout .site-header__brand { justify-self: start; max-width: 100%; }
.vyv-page-layout .site-header__brand :is(.custom-logo-link, .site-logo) { display: flex; align-items: center; }
.vyv-page-layout .site-nav { position: static; }
.vyv-page-layout .site-menu { gap: clamp(12px, 1.5vw, 28px); }
.vyv-page-layout .site-menu > li { display: flex; align-items: center; min-width: 0; }
.vyv-page-layout .site-menu > li > a { display: flex; align-items: center; min-height: 44px; font-size: 14px; font-weight: 500; line-height: 1.4; }
.vyv-page-layout .vyv-submenu-toggle { display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; width: 36px; min-height: 44px; padding: 0; border: 0; background: transparent; color: #111; font: inherit; font-size: 19px; cursor: pointer; }
.vyv-page-layout .vyv-submenu-toggle[aria-expanded="true"] > span { transform: rotate(180deg); }
.vyv-page-layout .site-nav .sub-menu { display: none; margin: 0; list-style: none; background: #fffaf5; }
.vyv-page-layout .site-nav [hidden] { display: none !important; }
.vyv-page-layout .site-nav .sub-menu[data-open="true"] { display: grid; }
.vyv-page-layout .site-menu > li > .sub-menu { position: absolute; top: 100%; left: 0; right: 0; grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: start; gap: 24px; padding: 24px; border: 1px solid var(--vyv-page-line); border-radius: 0 0 18px 18px; box-shadow: 0 16px 28px rgba(17, 17, 17, .09); }
.vyv-page-layout .sub-menu > li { display: grid; grid-template-columns: minmax(0, 1fr) 44px; align-items: start; min-width: 0; }
.vyv-page-layout .sub-menu a { min-height: 44px; padding: 8px 0; font-size: 15px; font-weight: 500; color: #111; line-height: 1.45; overflow-wrap: break-word; }
.vyv-page-layout .sub-menu .sub-menu { position: static; grid-column: 1 / -1; grid-template-columns: 1fr; padding: 0 0 0 14px; border: 0; border-left: 1px solid var(--vyv-page-line); border-radius: 0; box-shadow: none; }
.vyv-page-layout .sub-menu .sub-menu a { font-size: 13px; font-weight: 400; color: var(--muted); }
.vyv-page-layout .site-nav:not([data-nav-ready]) li:hover > .sub-menu,
.vyv-page-layout .site-nav:not([data-nav-ready]) li:focus-within > .sub-menu { display: grid; }
.vyv-page-layout .site-nav a:hover { color: #b83210; }

@media (max-width: 1200px) {
    .vyv-content-page .vyv-page-card:nth-child(n+4) { display: flex; }
    .vyv-content-page .vyv-page-card:nth-child(n+4) .vyv-page-card-image { height: auto; aspect-ratio: 4 / 3; }
}
@media (pointer: coarse) {
    .vyv-page-layout .vyv-submenu-toggle { width: 44px; }
}
@media (max-width: 1200px) {
    .vyv-content-page .vyv-page-card { grid-column: span 6; }
    .vyv-content-page .bp-steps-grid--bg { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .vyv-content-page .vyv-page-benefits ul { grid-template-columns: 1fr; gap: 14px; }
    .vyv-page-work-grid, .vyv-page-gallery-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 1100px) {
    .vyv-page-layout .site-header__inner { grid-template-columns: 1fr auto; }
    .vyv-page-layout .nav-toggle { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; }
    .vyv-page-layout .site-nav { position: fixed; inset: var(--header-height) 0 0; justify-self: stretch; width: 100%; max-width: none; display: block; padding: 20px var(--vyv-gutter) 40px; overflow-y: auto; overscroll-behavior: contain; background: #fffaf5; visibility: hidden; opacity: 0; pointer-events: none; transform: none; }
    .vyv-page-layout.nav-open .site-nav { visibility: visible; opacity: 1; pointer-events: auto; }
    .vyv-page-layout.admin-bar .site-nav { top: calc(var(--header-height) + 32px); }
    .vyv-page-layout .site-menu { display: block; }
    .vyv-page-layout .site-menu > li { display: grid; grid-template-columns: minmax(0, 1fr) 44px; padding: 8px 0; border-bottom: 1px solid var(--vyv-page-line); }
    .vyv-page-layout .site-menu > li > a { color: #111; font-size: 21px; font-weight: 500; }
    .vyv-page-layout .vyv-submenu-toggle { width: 44px; }
    .vyv-page-layout .site-menu > li > .sub-menu { position: static; grid-column: 1 / -1; grid-template-columns: 1fr; gap: 0; padding: 4px 0 12px 14px; margin-left: 4px; border: 0; border-left: 1px solid var(--vyv-page-line); border-radius: 0; box-shadow: none; }
    .vyv-page-layout .sub-menu a { font-size: 16px; }
}
@media (max-width: 782px) {
    .vyv-page-layout.admin-bar .site-nav { top: calc(var(--header-height) + 46px); }
}
@media (max-width: 768px) {
    .vyv-content-page .bp-content-layout__entry .bp-content-section { padding: 24px; }
    .vyv-content-page .bp-content-layout__entry :is(.vyv-page-cards-section, .vyv-page-works, .vyv-page-gallery, .vyv-page-faq) { padding: 0; }
    .vyv-content-page .bp-content-layout__entry h2 { font-size: clamp(27px, 4.5vw, 36px); }
    .vyv-content-page .vyv-page-card, .vyv-content-page .vyv-page-card:nth-child(n+4) { grid-column: 1 / -1; display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1fr); }
    .vyv-content-page .vyv-page-card .vyv-page-card-image,
    .vyv-content-page .vyv-page-card:nth-child(n+4) .vyv-page-card-image { height: 100%; aspect-ratio: auto; }
    .vyv-content-page .vyv-page-card-body { padding: 20px; }
    .vyv-content-page .bp-content-layout__entry .vyv-page-card h3 { font-size: 18px; }
    .vyv-page-quote { grid-template-columns: 1fr; }
    .vyv-page-quote-actions { align-items: flex-start; }
}
@media (max-width: 600px) {
    .vyv-content-page .bp-content-layout__entry .bp-content-section { padding: 22px 20px; }
    .vyv-content-page .bp-content-layout__entry :is(.vyv-page-cards-section, .vyv-page-works, .vyv-page-gallery, .vyv-page-faq) { padding: 0; }
    .vyv-content-page .bp-content-layout__entry .vyv-page-benefits { background-image: none; }
    .vyv-page-nav { gap: 4px 20px; }
    .vyv-content-page .bp-content-layout__entry .vyv-page-price-table { display: block; }
    .vyv-content-page .vyv-page-price-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; }
    .vyv-content-page .vyv-page-price-table tbody { display: block; }
    .vyv-content-page .vyv-page-price-table tr { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px 14px; padding: 16px 0; border-bottom: 1px solid var(--vyv-page-line); }
    .vyv-content-page .vyv-page-price-table td { display: block; padding: 0; border: 0; }
    .vyv-content-page .vyv-page-price-table tr:last-child td { border: 0; }
    .vyv-content-page .vyv-page-price-table td:first-child { grid-column: 1; grid-row: 1; }
    .vyv-content-page .vyv-page-price-table td:nth-child(2) { grid-column: 1 / -1; grid-row: 2; }
    .vyv-content-page .vyv-page-price-table td:last-child { grid-column: 2; grid-row: 1; }
    .vyv-content-page .bp-steps-grid--bg, .vyv-page-terms-grid { grid-template-columns: 1fr; }
    .vyv-page-work-grid { grid-template-columns: 1fr; }
    .vyv-page-gallery-grid { gap: 14px; }
}
@media (max-width: 479px) {
    .vyv-content-page .vyv-page-card, .vyv-content-page .vyv-page-card:nth-child(n+4) { display: flex; }
    .vyv-content-page .vyv-page-card .vyv-page-card-image,
    .vyv-content-page .vyv-page-card:nth-child(n+4) .vyv-page-card-image { height: auto; aspect-ratio: 4 / 3; }
    .vyv-content-page .vyv-page-card-body { padding: 20px; }
    .vyv-page-gallery-grid { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) {
    html:has(body.vyv-page-layout) { scroll-behavior: auto; }
    .vyv-page-layout .site-nav { transition: none; }
}

/* HTML edited directly in the WordPress page. */
.vyv-content-page .bp-content-layout__entry > * { margin-bottom: clamp(28px, 3.2vw, 52px); }
.vyv-content-page .bp-content-layout__entry > :is(p, ul, ol, blockquote) { max-width: 78ch; }
.vyv-content-page .bp-content-layout__entry > :is(h2, h3, h4) { margin-top: 1.5em; margin-bottom: 20px; }
.vyv-content-page .bp-content-layout__entry > :first-child { margin-top: 0; }
.vyv-content-page .bp-content-layout__entry :is(strong, b) { font-weight: 600; }
.vyv-content-page .bp-content-layout__entry img { max-width: 100%; }
.vyv-content-page .bp-content-layout__entry a:focus-visible,
.vyv-content-page .vyv-page-nav a:focus-visible { outline: 2px solid #ff4a1c; outline-offset: 4px; }
.vyv-content-page .bp-content-layout__entry :is(ul, ol):not(.vyv-page-benefits ul) { list-style: revert; padding-left: 1.4em; }
.vyv-content-page .bp-content-layout__entry li { padding-left: 0; }
.vyv-content-page .vyv-page-card-grid { display: grid; }
.vyv-content-page .vyv-page-card { position: relative; overflow: hidden; }
.vyv-content-page .vyv-page-card-image { display: block; }
.vyv-content-page .vyv-page-steps-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; }
.vyv-content-page .vyv-page-step { padding: 24px; border: 1px solid var(--vyv-page-line); border-radius: 18px; background: var(--vyv-page-paper); }
.vyv-content-page .bp-content-layout__entry .vyv-page-step-number { margin-bottom: 24px; font-size: 32px; font-family: Georgia, 'Times New Roman', serif; color: #b83210; }
.vyv-content-page .vyv-page-step h3 { margin-top: 0; }
.vyv-content-page .bp-content-layout__entry .vyv-page-table { display: table; width: 100%; margin: 0; border-collapse: collapse; border: 0; border-radius: 0; line-height: 1.5; }
.vyv-content-page .vyv-page-table th { background: transparent; color: var(--muted); font-size: 12px; font-weight: 400; border: 0; border-bottom: 1px solid #111; padding: 14px 18px; }
.vyv-content-page .vyv-page-table td { border: 0; border-bottom: 1px solid var(--vyv-page-line); padding: 18px; overflow-wrap: anywhere; }
.vyv-content-page .vyv-page-table tr { background: transparent; }
.vyv-content-page .vyv-page-table-wrap { max-width: 100%; overflow-x: auto; overscroll-behavior-x: contain; border-radius: 4px; }
.vyv-content-page .vyv-page-table-wrap:focus-visible { outline: 2px solid #ff4a1c; outline-offset: 4px; }
.vyv-content-page .vyv-page-table-scroll { min-width: 600px; }
.vyv-content-page .bp-content-layout__entry .vyv-page-price-unit { display: none; font-size: 13px; color: var(--muted); margin: 0 0 18px; }
.vyv-content-page .vyv-page-note { padding: 22px 24px; background: var(--vyv-page-paper); border: 1px solid var(--vyv-page-line); border-radius: 18px; }
.vyv-content-page .vyv-page-note p:last-child { margin: 0; }
.vyv-content-page .vyv-page-pagination { display: flex; gap: 16px; margin-block: 32px; }
.vyv-content-page .vyv-page-nav { margin-bottom: 32px; }
@media (max-width: 1200px) {
    .vyv-content-page .vyv-page-steps-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 600px) {
    .vyv-content-page .bp-content-layout__entry .vyv-page-price-unit { display: block; }
    .vyv-content-page .bp-content-layout__entry .vyv-page-price-table { display: block; }
    .vyv-content-page .vyv-page-price-table td { padding: 0; border: 0; }
    .vyv-content-page .vyv-page-steps-grid { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) {
    .vyv-content-page .bp-inner-hero__video { display: none; }
}
.vyv-content-page .vyv-page-card.vyv-page-card--text { display: flex; }
.vyv-content-page .bp-content-layout__entry .vyv-page-table-hint { display: none; margin: 0 0 14px; color: var(--muted); font-size: 13px; }
.vyv-page-layout .site-menu > li > .sub-menu { max-height: calc(100dvh - var(--header-height) - 24px); overflow-y: auto; overscroll-behavior: contain; }
@media (max-width: 1100px) {
    .vyv-page-layout .site-menu > li > .sub-menu { max-height: none; overflow: visible; }
}
@media (max-width: 600px) {
    .vyv-content-page .bp-content-layout__entry .vyv-page-table-hint { display: block; }
    .vyv-content-page .vyv-page-price-table td:last-child { max-width: 14ch; white-space: normal; }
}

/* Agreed standard inner page: floating header and overlapping paper cards. */
body.vyv-page-layout { --header-height: 100px; }
.vyv-page-layout .site-header { height: var(--header-height); background: transparent; border: 0; }
.vyv-page-layout .site-header__inner { grid-template-columns: auto minmax(0, 1fr) auto; gap: clamp(16px, 2vw, 32px); align-items: start; padding-top: 16px; }
.vyv-page-layout .site-header__brand { grid-column: 1; grid-row: 1; padding: 12px 16px; border: 1px solid var(--vyv-page-line); border-radius: 14px; background: var(--vyv-page-paper); }
.vyv-page-layout .site-header__brand :is(.site-logo, .custom-logo-link) { min-height: 40px; padding: 0; background: transparent; border: 0; border-radius: 0; }
.vyv-page-layout .site-header__brand .vyv-brand-image { width: clamp(150px, 13vw, 240px); height: 81px; object-fit: contain;}
.vyv-page-layout .site-header__brand--custom { background: #111; }
.vyv-page-layout .site-header__brand .custom-logo { width: clamp(150px, 12vw, 220px); max-height: 40px; object-fit: contain; }
.vyv-page-layout .site-nav { grid-column: 2; grid-row: 1; justify-self: center; padding: 10px 18px; border: 1px solid var(--vyv-page-line); border-radius: 14px; background: var(--vyv-page-paper); }
.vyv-page-layout .site-menu { justify-content: center; gap: clamp(10px, 1.3vw, 24px); }
.vyv-page-layout .site-menu > li > a { font-size: clamp(12px, .9vw, 14px); white-space: nowrap; }
.vyv-page-layout .vyv-submenu-toggle { width: 26px; }
.vyv-page-layout .site-menu > li > .sub-menu { top: calc(100% + 4px); border-radius: 18px; }
.vyv-header-contacts { grid-column: 3; grid-row: 1; display: flex; flex-direction: column; justify-content: center; gap: 2px; min-height: 105px; padding: 10px 16px; border: 1px solid var(--vyv-page-line); border-radius: 14px; background: var(--vyv-page-paper); }
.vyv-header-contacts a { font-size: 16px; line-height: 1.6; overflow-wrap: anywhere; }
.vyv-header-phone { display: inline-flex; align-items: center; justify-content: center; gap: 8px; }
.vyv-header-phone-icon { display: none; flex-shrink: 0; }
.vyv-content-page .bp-inner-hero { padding: calc(var(--header-height) + 10px) 0 0; margin-bottom: 0; }
.vyv-content-page .bp-inner-hero--split .bp-inner-hero__layout { --vyv-heading-padding: clamp(28px, 4vw, 68px); --vyv-heading-overlap: 100px; }
.vyv-content-page .bp-inner-hero--split .bp-inner-hero__card { grid-column: 2 / 12; min-height: clamp(320px, 28vw, 520px); padding-bottom: calc(var(--vyv-heading-padding) + 100px); box-shadow: none; background-size: cover; background-position: center; }
.vyv-content-page .bp-inner-hero--split .bp-inner-hero__card h1 { max-width: 26ch; font-family: var(--font-main); font-size: clamp(32px, 4.5vw, 76px); font-weight: 600; line-height: 1.12; text-wrap: balance; }
.vyv-content-page .bp-inner-hero--split .bp-inner-hero__content > p { text-transform: none; font-family: var(--font-main); font-size: 17px; letter-spacing: 0; font-weight: 400; color: #111; }
.vyv-content-page .bp-inner-hero--split .bp-inner-hero__summary { grid-column: 1 / 7; margin-top: -90px; padding: clamp(28px, 3vw, 48px); box-shadow: none; }
.vyv-content-page .bp-content-layout { padding-top: 0; padding-bottom: clamp(50px, 5vw, 90px); }
.vyv-content-page .bp-content-layout__entry > * { margin-bottom: clamp(42px, 5vw, 80px); }
.vyv-content-page .bp-content-layout__entry .bp-content-section { box-shadow: none; }
.vyv-content-page .bp-content-layout__entry .vyv-page-intro-grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); align-items: start; column-gap: 0; margin-top: 0; }
.vyv-content-page .vyv-page-intro-grid > .vyv-page-intro-copy { grid-column: 1 / 7; grid-row: 1; margin: 48px 0 0; padding: clamp(28px, 3vw, 48px); border: 1px solid var(--vyv-page-line); border-radius: 18px; background: var(--vyv-page-paper); }
.vyv-content-page .vyv-page-intro-grid > .vyv-page-intro-prices { grid-column: 6 / -1; grid-row: 1; z-index: 4; margin: -90px 0 0; padding: clamp(24px, 2.5vw, 40px); border: 1px solid var(--vyv-page-line); border-radius: 18px; background: var(--vyv-page-paper); }
.vyv-content-page .vyv-page-intro-grid > .vyv-page-intro-prices p{font-size: 13px; padding-top:20px;}
.vyv-content-page .vyv-page-intro-copy > * { width: 83.333%; }
.vyv-content-page .vyv-page-intro-copy .vyv-page-benefits ul,
.vyv-content-page .vyv-page-intro-copy ul { display: block; }
.vyv-content-page .bp-content-layout__entry .vyv-page-intro-copy h2 { font-size: clamp(22px, 2vw, 34px); }
.vyv-content-page .bp-content-layout__entry .vyv-page-intro-prices h2 { font-size: clamp(23px, 2vw, 36px); }
.vyv-content-page .vyv-page-intro-prices .vyv-page-price-table { font-size: 13px; }
.vyv-content-page .vyv-page-intro-prices .vyv-page-price-table :is(th,td) { padding: 12px 10px; }
.vyv-content-page .vyv-page-intro-prices .vyv-page-price-table td:last-child { white-space: normal; }
.vyv-content-page .vyv-page-intro-prices .vyv-page-price-table th:first-child { width: 35%; }
.vyv-content-page .vyv-page-intro-prices .vyv-page-price-table th:nth-child(2) { width: 43%; }
.vyv-content-page .vyv-page-intro-prices .vyv-page-price-table th:last-child { width: 22%; }
.vyv-content-page .vyv-page-intro-grid .vyv-page-benefits { background-image: none; }
.vyv-content-page .vyv-page-intro-grid .vyv-page-benefits li { margin-bottom: 16px; }
.vyv-content-page .bp-content-layout__entry .vyv-page-quote { padding: clamp(28px, 3vw, 46px); }
.vyv-content-page .bp-content-layout__entry .vyv-page-quote h2 { font-size: clamp(25px, 2.2vw, 38px); }
.vyv-content-page .bp-content-layout__entry .vyv-page-quote p { margin-bottom: 0; }
.vyv-content-page .vyv-page-scene { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 24px 0; isolation: isolate; align-items: start; }
.vyv-content-page .vyv-page-scene-media { min-width: 0; overflow: hidden; border-radius: 18px; background: #14205a; }
.vyv-content-page .vyv-page-scene-media img { display: block; width: 100%; height: 100%; object-fit: cover; }
.vyv-content-page .vyv-page-scene-media--first { grid-column: 1 / 7; grid-row: 1 / 4; align-self: stretch; min-height: 480px; max-height: 900px; background: linear-gradient(180deg, #030b2e, #172fb3 55%, #eff0f7); }
.vyv-content-page .vyv-page-scene-media--second { grid-column: 5 / -1; grid-row: 3; z-index: 2; margin-top: 24px; aspect-ratio: 2 / 1; }
.vyv-content-page .bp-content-layout__entry .vyv-page-scene-note { position: relative; z-index: 3; margin: 0; padding: clamp(24px, 2.8vw, 44px); background: var(--vyv-page-paper); border: 1px solid var(--vyv-page-line); border-radius: 18px; }
.vyv-content-page .vyv-page-scene-note--first { grid-column: 5 / 11; grid-row: 1; margin-top: 54px !important; }
.vyv-content-page .vyv-page-scene-note--second { grid-column: 6 / 12; grid-row: 2; }
.vyv-content-page .vyv-page-scene-note--third { grid-column: 1 / 7; grid-row: 4; margin-top: -150px !important; }
.vyv-content-page .bp-content-layout__entry .vyv-page-scene-note h2 { font-size: clamp(23px, 2vw, 35px); }
.vyv-content-page .vyv-page-scene-note :is(ul,ol) { margin-bottom: 0; }
.vyv-content-page .vyv-page-gallery-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 1100px) {
    body.vyv-page-layout { --header-height: 86px; }
    .vyv-page-layout .site-header__inner { grid-template-columns: minmax(0, 1fr) auto auto; gap: 12px; padding-top: 12px; }
    .vyv-page-layout .site-header__brand { padding: 10px 12px; }
    .vyv-page-layout .site-header__brand .vyv-brand-image { width: 150px; height: 38px; }
    .vyv-page-layout .nav-toggle { grid-column: 3; grid-row: 1; display: inline-flex; min-height: 60px; padding: 10px 16px; border-radius: 14px; background: var(--vyv-page-paper); }
    .vyv-page-layout .vyv-header-contacts { grid-column: 2; min-height: 60px; padding: 10px 14px; }
    .vyv-page-layout .vyv-header-email { display: none; }
    .vyv-page-layout .site-nav { grid-column: auto; justify-self: stretch; padding: 24px var(--vyv-gutter) 40px; border: 0; border-radius: 0; }
    .vyv-page-layout .site-menu { display: block; }
    .vyv-page-layout .site-menu > li > a { white-space: normal; font-size: 21px; }
    .vyv-page-layout .vyv-submenu-toggle { width: 44px; }
    .vyv-page-layout .site-menu > li > .sub-menu { border-radius: 0; }
}
@media (max-width: 991px) {
    .vyv-content-page .bp-inner-hero--split .bp-inner-hero__card { grid-column: 1 / -1; padding-bottom: 100px; min-height: 0; }
    .vyv-content-page .bp-inner-hero--split .bp-inner-hero__summary { grid-column: 1 / -1; margin-top: -56px;}
    .vyv-content-page .bp-content-layout__entry .vyv-page-intro-grid { display: grid; grid-template-columns: 1fr; gap: 24px; margin-top: 24px; }
    .vyv-content-page .vyv-page-intro-grid > :is(.vyv-page-intro-copy, .vyv-page-intro-prices) { grid-column: 1; grid-row: auto; margin: 0; }
    .vyv-content-page .vyv-page-intro-copy > * { max-width: 100%; }
    .vyv-content-page .vyv-page-scene { grid-template-columns: repeat(8, minmax(0, 1fr)); }
    .vyv-content-page .vyv-page-scene-media--first { grid-column: 1 / 6; min-height: 350px; }
    .vyv-content-page .vyv-page-scene-note--first { grid-column: 3 / -1; }
    .vyv-content-page .vyv-page-scene-note--second { grid-column: 4 / -1; }
    .vyv-content-page .vyv-page-scene-media--second { grid-column: 2 / -1; }
    .vyv-content-page .vyv-page-scene-note--third { grid-column: 1 / 7; margin-top: -50px !important; }
}
@media (max-width: 768px) {
    .vyv-page-layout .site-header__brand .vyv-brand-image { width: clamp(110px, 28vw, 150px); }
    .vyv-page-layout .site-header__brand .custom-logo { width: clamp(110px, 28vw, 150px); }
    .vyv-page-layout .vyv-header-contacts { padding: 8px; }
    .vyv-page-layout .vyv-header-phone { width: 42px; height: 42px; }
    .vyv-page-layout .vyv-header-phone-icon { display: block; }
    .vyv-page-layout .vyv-header-phone-text { display: none; }
    .vyv-content-page .bp-inner-hero--split .bp-inner-hero__layout { row-gap: 0; }
    .vyv-content-page .bp-inner-hero--split .bp-inner-hero__card h1 { font-size: clamp(29px, 5.4vw, 44px); }
    .vyv-content-page .bp-inner-hero--split .bp-inner-hero__summary { margin-right: 0; }
    .vyv-content-page .vyv-page-scene { display: flex; flex-direction: column; gap: 18px; }
    .vyv-content-page .vyv-page-scene > * { width: 100%; }
    .vyv-content-page .vyv-page-scene-media--first { min-height: 0; height: 240px; }
    .vyv-content-page .vyv-page-scene-media--second { aspect-ratio: 4 / 3; margin-top: 0; }
    .vyv-content-page .vyv-page-scene-note--first { margin-top: -46px !important; width: calc(100% - 18px); margin-left: 18px !important; }
    .vyv-content-page .vyv-page-scene-note--third { margin-top: -34px !important; width: calc(100% - 18px); }
    .vyv-content-page .vyv-page-gallery-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 600px) {
    .vyv-content-page .vyv-page-intro-prices .vyv-page-price-table td { padding: 0; }
    .vyv-content-page .vyv-page-intro-prices .vyv-page-price-table th { padding: 0; }
    .vyv-content-page .vyv-page-intro-prices .vyv-page-price-table tr { gap: 8px 12px; }
    .vyv-content-page .vyv-page-quote-actions { align-items: flex-start; }
    .vyv-content-page .bp-inner-hero--split .bp-inner-hero__card { padding: 26px 22px 90px; }
    .vyv-content-page .bp-inner-hero--split .bp-inner-hero__summary { padding: 24px 22px; }
    .vyv-content-page .vyv-page-intro-grid > :is(.vyv-page-intro-copy, .vyv-page-intro-prices) { padding: 24px 20px; }
}
@media (max-width: 479px) {
    .vyv-page-layout .site-header__inner { gap: 8px; }
    .vyv-page-layout .site-header__brand { padding: 10px; }
    .vyv-page-layout .nav-toggle { padding: 10px 12px; font-size: 13px; }
    .vyv-page-layout .vyv-header-contacts { padding: 8px 4px; }
    .vyv-content-page .vyv-page-gallery-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
}
.vyv-nav-contacts { display: none; }
@media (max-width: 1100px) {
    .vyv-nav-contacts { display: flex; flex-direction: column; align-items: flex-start; gap: 8px; margin-top: 24px; padding-top: 18px; border-top: 1px solid var(--vyv-page-line); }
    .vyv-nav-contacts a { display: inline-flex; align-items: center; min-height: 44px; font-size: 15px; }
}
.vyv-page-layout .site-header__brand .site-logo::after { display: none; }
@media (max-width: 991px) {
    .vyv-content-page .vyv-page-intro-copy > * { max-width: 100%; }
}

@media (max-width: 991px) {
    .vyv-content-page .bp-content-layout__entry .vyv-page-intro-copy > :is(h2,h3,h4,p,ul,ol) { max-width: 100%; }
}

/* Framed page and header overlap, following the approved reference. */
body.vyv-page-layout {
    --vyv-gutter: clamp(20px, 2.778vw, 72px);
    --container: min(calc(100% - 2 * var(--vyv-gutter)), 1980px);
    position: relative;
    isolation: isolate;
    background: #fff;
}
body.vyv-page-layout::before {
    content: '';
    position: absolute;
    top: var(--vyv-gutter);
    bottom: var(--vyv-gutter);
    left: 50%;
    width: var(--container);
    transform: translateX(-50%);
    z-index: -1;
    pointer-events: none;
    background: #fff;
}
.vyv-page-layout .site-header { top: var(--vyv-gutter); }
.vyv-page-layout .site-header__inner { padding-top: 0; }
.vyv-page-layout .site-menu > li > .sub-menu { max-height: calc(100dvh - 2 * var(--vyv-gutter) - var(--header-height) - 8px); }
.vyv-page-layout.admin-bar .site-header { top: calc(var(--vyv-gutter) + 32px); }
.vyv-content-page .bp-inner-hero { padding-top: calc(var(--vyv-gutter) + 24px); }
.vyv-content-page .bp-inner-hero--split .bp-inner-hero__card { padding-top: calc(var(--header-height) + 24px); }
@media (max-width: 1100px) {
    .vyv-page-layout .site-header__inner { padding-top: 0; }
    .vyv-page-layout .site-nav {
        inset: calc(var(--vyv-gutter) + var(--header-height)) var(--vyv-gutter) var(--vyv-gutter);
        width: auto;
        border: 1px solid var(--vyv-page-line);
        border-radius: 18px;
    }
    .vyv-page-layout .site-menu > li > .sub-menu { max-height: none; }
    .vyv-page-layout.admin-bar .site-nav { top: calc(var(--vyv-gutter) + var(--header-height) + 32px); }
}
@media (max-width: 782px) {
    .vyv-page-layout.admin-bar .site-header { top: calc(var(--vyv-gutter) + 46px); }
    .vyv-page-layout.admin-bar .site-nav { top: calc(var(--vyv-gutter) + var(--header-height) + 46px); }
}
@media (max-width: 600px) {
    .vyv-content-page .bp-inner-hero--split .bp-inner-hero__card { padding-top: calc(var(--header-height) + 18px); }
}

/* Decorative video fills the viewport; content keeps its existing margins. */
.vyv-page-layout .vyv-page-background {
    position: fixed;
    inset: 0;
    width: 100%;
    overflow: hidden;
    z-index: -1;
    pointer-events: none;
    background: #fff;
}
.vyv-page-background__poster,
.vyv-page-background__video {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}
.vyv-page-background__video { opacity: 0; transition: opacity .35s ease; }
.vyv-page-background.is-playing .vyv-page-background__video { opacity: 1; }
body.vyv-page-layout.admin-bar .vyv-content-page .bp-inner-hero {
    padding-top: calc(var(--vyv-gutter) + 24px);
}
@media (prefers-reduced-motion: reduce) {
    .vyv-page-background__video { display: none; transition: none; }
}
/* Wider title card with a larger overlap under the header pills. */
@media (min-width: 992px) {
    body.vyv-page-layout .vyv-content-page .bp-inner-hero,
    body.vyv-page-layout.admin-bar .vyv-content-page .bp-inner-hero {
        padding-top: calc(var(--vyv-gutter) + 12px);
    }

    .vyv-content-page .bp-inner-hero--split .bp-inner-hero__card {
        grid-column: 1 / -1;
        margin-inline: clamp(24px, 3vw, 60px);
    }
}

/* Header scrolls away with the page. */
.vyv-page-layout .site-header { position: absolute; }
.vyv-page-layout.admin-bar .site-header { top: var(--vyv-gutter); }
.vyv-content-page .vyv-page-scene--notes {
    align-items: stretch;
    row-gap: 0;
}

.vyv-content-page .vyv-page-scene--notes .vyv-page-scene-media--first {
    position: relative;
    grid-row: 1;
    min-height: clamp(480px, 42vw, 740px);
}

.vyv-content-page .vyv-page-scene--notes .vyv-page-scene-media--first img {
    position: absolute;
    inset: 0;
}

.vyv-content-page .vyv-page-scene--notes .vyv-page-scene-notes {
    grid-column: 4 / -1;
    grid-row: 1;
    min-width: 0;
    z-index: 3;
    display: flex;
    flex-direction: column;
    gap: 32px;
    padding: 54px 0;
}

.vyv-content-page .vyv-page-scene--notes .vyv-page-scene-notes > .vyv-page-scene-note {
    grid-column: auto;
    grid-row: auto;
    align-self: flex-start;
    width: 75%;
    margin: 0 !important;
}

.vyv-content-page .vyv-page-scene--notes .vyv-page-scene-notes > .vyv-page-scene-note:nth-child(even) {
    align-self: flex-end;
}

@media (max-width: 991px) {
    .vyv-content-page .vyv-page-scene--notes .vyv-page-scene-media--first {
        min-height: 420px;
    }

    .vyv-content-page .vyv-page-scene--notes .vyv-page-scene-notes {
        grid-column: 3 / -1;
        padding: 36px 0;
    }

    .vyv-content-page .vyv-page-scene--notes .vyv-page-scene-notes > .vyv-page-scene-note {
        width: calc(100% - 24px);
    }
}

@media (max-width: 768px) {
    .vyv-content-page .vyv-page-scene--notes .vyv-page-scene-media--first {
        min-height: 0;
        height: 240px;
    }

    .vyv-content-page .vyv-page-scene--notes .vyv-page-scene-notes {
        gap: 18px;
        padding: 0;
        margin-top: -46px;
    }

    .vyv-content-page .vyv-page-scene--notes .vyv-page-scene-notes > .vyv-page-scene-note {
        width: calc(100% - 18px);
        align-self: flex-end;
    }

    .vyv-content-page .vyv-page-scene--notes .vyv-page-scene-notes > .vyv-page-scene-note:nth-child(even) {
        align-self: flex-start;
    }
}
.vyv-content-page .vyv-page-scene--notes .vyv-page-scene-media--first video {
    position: absolute;
    inset: 0;
    display: block;
    width: 100%;
    height: 100%;
    max-width: 100%;
    object-fit: cover;
}
.vyv-page-composition,
.vyv-page-composition * {
    box-sizing: border-box;
}

.vyv-page-composition {
    display: grid;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    align-items: start;
    isolation: isolate;
    width: 100%;
    max-width: 1980px;
    margin-inline: auto;
}

.vyv-page-composition > * {
    min-width: 0;
}

/* Картинка или видео */
.vyv-page-composition__media {
    position: relative;
    grid-column: 1 / 7;
    grid-row: 1;
    height: clamp(260px, 22vw, 420px);
    overflow: hidden;
    border: 1px solid var(--vyv-page-line, #d0cbc7);
    border-radius: 18px;
    background: var(--vyv-page-paper, #fffaf5);
}

.vyv-page-composition__media :is(img, video) {
    position: absolute;
    inset: 0;
    display: block;
    width: 100%;
    height: 100%;
    max-width: 100%;
    margin: 0;
    object-fit: cover;
}

/* Общие стили текстовых карточек */
.vyv-page-composition .bp-content-section.vyv-page-composition__card {
    position: relative;
    z-index: 1;
    width: 100%;
    margin: 0;
    padding: clamp(24px, 3vw, 54px);
    border: 1px solid var(--vyv-page-line, #d0cbc7);
    border-radius: 18px;
    background: var(--vyv-page-paper, #fffaf5);
    overflow-wrap: anywhere;
}

.vyv-page-composition .vyv-page-composition__card > * {
    max-width: none;
}

/* Первый текстовый блок */
.vyv-page-composition .bp-content-section.vyv-page-composition__card--main {
    grid-column: 4 / 11;
    grid-row: 1;
    margin-top: clamp(100px, 10vw, 180px);
    padding-bottom: calc(clamp(24px, 3vw, 54px) + 48px);
}

/* Второй текстовый блок */
.vyv-page-composition .bp-content-section.vyv-page-composition__card--second {
    grid-column: 2 / 9;
    grid-row: 2;
    z-index: 2;
    margin-top: -40px;
}

/* Кнопка */
.vyv-page-composition a.vyv-page-composition__cta {
    position: relative;
    z-index: 3;
    grid-column: 10 / -2;
    grid-row: 2;
    justify-self: end;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 208px;
    max-width: 100%;
    aspect-ratio: 4 / 3;
    margin-top: -40px;
    padding: 12px;
    border: 1px solid #111;
    border-radius: 16px;
    background:
        radial-gradient(
            circle at center,
            #fffaf5 0 28%,
            transparent 28.5%
        ),
        repeating-conic-gradient(
            #3047ff 0deg 2deg,
            transparent 2deg 13deg
        ),
        #fffaf5;
    color: #3047ff;
    font-size: 12px;
    font-weight: 700;
    line-height: 1.1;
    text-align: center;
    text-transform: uppercase;
    text-decoration: none;
}

.vyv-page-composition a.vyv-page-composition__cta:hover {
    color: #111;
}

.vyv-page-composition a.vyv-page-composition__cta:focus-visible {
    outline: 3px solid #ff4a1c;
    outline-offset: 4px;
}

/* Планшеты */
@media (max-width: 991px) {
    .vyv-page-composition__media {
        grid-column: 1 / 8;
    }

    .vyv-page-composition .bp-content-section.vyv-page-composition__card--main {
        grid-column: 3 / -1;
    }

    .vyv-page-composition .bp-content-section.vyv-page-composition__card--second {
        grid-column: 1 / 9;
    }
}

/* Небольшие экраны */
@media (max-width: 768px) {
    .vyv-page-composition {
        display: flex;
        flex-direction: column;
        gap: 18px;
    }

    .vyv-page-composition__media {
        width: 100%;
        height: 240px;
    }

    .vyv-page-composition .bp-content-section.vyv-page-composition__card {
        width: calc(100% - 18px);
        margin: 0;
        padding: 24px;
    }

    .vyv-page-composition .bp-content-section.vyv-page-composition__card--main {
        align-self: flex-end;
        margin-top: -64px;
    }

    .vyv-page-composition .bp-content-section.vyv-page-composition__card--second {
        align-self: flex-start;
    }

    .vyv-page-composition a.vyv-page-composition__cta {
        align-self: flex-end;
        margin-top: 0;
    }
}

@media (max-width: 479px) {
    .vyv-page-composition .bp-content-section.vyv-page-composition__card {
        padding: 22px 20px;
    }
}