/* Venue 92 sections: only what blocks cannot say. Bands, grounds, type and spacing are block attributes and style
   variations (Charcoal, Ivory panel, Card, Mark, Eyebrow, Lead, Section title, Accordion, Champagne, Outline),
   written by tools/build-site.py. Here: the gold offset frame behind feature photos, the events photo cards (whole
   card is the link, two-row first card), the facts and area lists, rows of the "included" panel, the reviews score,
   feature dividers, accent words, grounds for text on charcoal. Token variables only (raw: 0, hairlines). */

/* ---------- accent words: Josefin Sans upright (headings, stats, score) ---------- */
:where(.wp-block-heading, .vn-glance, .vn-score) em { font-family: var(--wp--preset--font-family--accent); font-style: normal; font-weight: var(--wp--custom--font-weight--regular); color: var(--wp--preset--color--gold-text); }
:where(.is-style-section-deep, .wp-block-cover.is-dark) :where(.wp-block-heading, .vn-glance, .vn-score) em { color: var(--wp--preset--color--accent-1); }

/* ---------- bands: every section is a full-width band; no gap between bands ---------- */
.vn-band { margin-block: 0 !important; }
.vn-band + .vn-band { margin-block-start: 0 !important; }
.is-style-section-deep :where(p, li):not(.has-text-color) { color: var(--wp--preset--color--on-dark-muted); }
.is-style-section-deep :where(.wp-block-heading, strong, .vn-strong) { color: var(--wp--preset--color--on-accent); }
.is-style-section-deep .wp-block-button.is-style-outline-arrow .wp-block-button__link { color: var(--wp--preset--color--on-accent); }

/* ---------- split: photo with a thin gold frame offset behind it ---------- */
.vn-frame { position: relative; isolation: isolate; }
.vn-frame .wp-block-image { margin: 0; }
.vn-frame img { filter: saturate(0.85); }
@media (max-width: 781px) { .vn-frame img { aspect-ratio: 4 / 3 !important; } }

/* facts list: two columns of short facts with a gold dot */
.vn-facts { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: 1fr 1fr; gap: var(--wp--preset--spacing--20) var(--wp--preset--spacing--50); }
.vn-facts li { display: flex; gap: var(--wp--preset--spacing--20); align-items: baseline; color: var(--wp--preset--color--contrast); }
.vn-facts li::before { content: ""; width: 5px; height: 5px; border-radius: var(--wp--custom--radius--badge); background: var(--wp--preset--color--gold-text); flex: none; transform: translateY(-3px); }
@media (max-width: 420px) { .vn-facts { grid-template-columns: 1fr; } }

/* areas: pills */
.vn-chips { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: var(--wp--preset--spacing--20); }
.vn-chips li { padding: var(--wp--preset--spacing--20) var(--wp--preset--spacing--40); border: var(--wp--custom--border--hairline) solid var(--wp--preset--color--accent-6); border-radius: var(--wp--custom--radius--badge); font-size: var(--wp--preset--font-size--small); font-weight: var(--wp--custom--font-weight--regular); letter-spacing: 0.06em; }

/* ---------- events: photo cards on charcoal ---------- */
.vn-egrid { grid-template-columns: 1fr !important; }
@media (min-width: 600px) { .vn-egrid { grid-template-columns: 1fr 1fr !important; } }
@media (min-width: 900px) { .vn-egrid { grid-template-columns: repeat(3, 1fr) !important; } .vn-ecard--tall { grid-row: span 2; } }
.vn-ecard.wp-block-cover { min-height: 0 !important; aspect-ratio: 4 / 5; padding: var(--wp--preset--spacing--50) !important; align-items: flex-end; position: relative; overflow: hidden; }
@media (min-width: 900px) { .vn-ecard--tall.wp-block-cover { aspect-ratio: auto; } }
@media (max-width: 599px) { .vn-ecard.wp-block-cover { aspect-ratio: 3 / 2; } }
.vn-ecard .wp-block-cover__image-background { filter: saturate(0.7) brightness(0.6); transition: transform 0.8s cubic-bezier(0.2, 0.7, 0.2, 1); }
.vn-ecard:hover .wp-block-cover__image-background { transform: scale(1.05); }
.vn-ecard .wp-block-cover__inner-container { width: 100%; }
.vn-ecard h3 { margin: 0; }
.vn-ecard h3 a { color: var(--wp--preset--color--on-accent); text-decoration: none; }
.vn-ecard h3 a::after { content: ""; position: absolute; inset: 0; z-index: 2; }
.vn-ecard h3 a::before { content: ""; position: absolute; top: var(--wp--preset--spacing--40); right: var(--wp--preset--spacing--40); width: 40px; height: 40px; border: var(--wp--custom--border--hairline) solid var(--wp--preset--color--on-dark-muted); border-radius: var(--wp--custom--radius--badge); background: var(--wp--preset--color--accent-1); -webkit-mask: var(--wp--custom--icon-url--arrow-right) center / 18px no-repeat; mask: var(--wp--custom--icon-url--arrow-right) center / 18px no-repeat; }
.vn-ecard:has(h3 a:focus-visible) { outline: var(--wp--custom--border--focus) solid var(--wp--preset--color--focus-inverse); outline-offset: var(--wp--custom--border--focus-offset); }
.vn-ecard h3 a:focus-visible { outline: 0; }

/* ---------- features: items separated by a hairline above ---------- */
.vn-feat { padding-top: var(--wp--preset--spacing--40); border-top: var(--wp--custom--border--hairline) solid var(--wp--preset--color--accent-6); }
.is-style-section-deep .vn-feat { border-top-color: color-mix(in srgb, var(--wp--preset--color--on-accent) 16%, transparent); }
.vn-feat h3 { font-weight: var(--wp--custom--font-weight--regular); }

/* "what's included": rows of icon + text */
.vn-included__row { gap: var(--wp--preset--spacing--30) !important; }
.vn-included__row .wp-block-icon { flex: none; }
.vn-included__row p { margin: 0; color: var(--wp--preset--color--accent-4); }
.vn-included__row strong { font-weight: var(--wp--custom--font-weight--regular); color: var(--wp--preset--color--contrast); }

/* two sections side by side: the right column lines up with the panel's inner padding on the left */
@media (min-width: 782px) { .vn-pair--plan > .wp-block-column:last-child { padding-top: calc(var(--wp--preset--spacing--60) + var(--wp--custom--border--hairline)); } }

/* ---------- reviews ---------- */
.vn-score { font-size: clamp(4rem, 9vw, 6.5rem); line-height: 1; font-weight: var(--wp--custom--font-weight--light); margin: 0; }
.vn-score em { font-size: 0.55em; }
.vn-stars { color: var(--wp--preset--color--gold-text); letter-spacing: 0.15em; margin: 0; }
.is-style-section-deep .vn-stars { color: var(--wp--preset--color--accent-1); }
.vn-reviews-widget { min-height: 220px; }

/* ---------- questions + enquiry side by side on charcoal ---------- */
.vn-enquiry { border: var(--wp--custom--border--hairline) solid color-mix(in srgb, var(--wp--preset--color--on-accent) 16%, transparent); }
.vn-contact-lines p { margin: 0; }
.vn-contact-lines a { display: inline-flex; align-items: center; min-height: var(--wp--custom--control--min); text-decoration: none; }

/* ---------- accordion on charcoal ---------- */
.is-style-section-deep .wp-block-details.is-style-accordion { border-bottom-color: color-mix(in srgb, var(--wp--preset--color--on-accent) 16%, transparent); }
.is-style-section-deep .wp-block-details.is-style-accordion > summary { color: var(--wp--preset--color--on-accent); }
.is-style-section-deep .wp-block-details.is-style-accordion > summary::after { background: var(--wp--preset--color--accent-1); }
.is-style-section-deep .wp-block-details.is-style-accordion > :not(summary) { color: var(--wp--preset--color--on-dark-muted); }
.vn-faq { max-width: var(--wp--style--global--content-size); border-top: var(--wp--custom--border--hairline) solid var(--wp--preset--color--accent-6); }
.is-style-section-deep .vn-faq { border-top-color: color-mix(in srgb, var(--wp--preset--color--on-accent) 16%, transparent); }

/* ---------- template notice (legal pages until replaced) ---------- */
.vn-notice { border: var(--wp--custom--border--hairline) dashed var(--wp--preset--color--border-strong); }

/* muted text set as a block colour turns to the light muted grey on charcoal bands */
.is-style-section-deep .has-accent-4-color { color: var(--wp--preset--color--on-dark-muted) !important; }

/* Charcoal-band colours for the named styles (block style variations cannot scope by an ancestor) */
:where(.is-style-section-deep, .wp-block-cover.is-dark) .is-style-eyebrow { color: var(--wp--preset--color--accent-1); }
:where(.is-style-section-deep, .wp-block-cover.is-dark) .is-style-lead { color: var(--wp--preset--color--on-dark-muted); }
:where(.is-style-section-deep, .wp-block-cover.is-dark) .wp-block-icon.is-style-mark svg { color: var(--wp--preset--color--accent-1); }
:where(.is-style-section-deep, .wp-block-cover.is-dark) .wp-block-button.is-style-outline-arrow .wp-block-button__link:is(:hover, :focus-visible) { background-color: var(--wp--preset--color--on-accent); border-color: var(--wp--preset--color--on-accent); color: var(--wp--preset--color--accent-3); }
/* the footer shows the white logo */
.vn-footer .vn-brand .vn-logo--light { display: block; }

/* ---------- review cards (verbatim 5-star Google reviews) ---------- */
.vn-review { height: 100%; box-sizing: border-box; padding: var(--wp--preset--spacing--50); background: var(--wp--preset--color--raised-dark); border: var(--wp--custom--border--hairline) solid color-mix(in srgb, var(--wp--preset--color--on-accent) 16%, transparent); }
.vn-review .vn-stars { color: var(--wp--preset--color--accent-1); letter-spacing: 0.2em; margin: 0; }

/* ---------- dark map under the enquiry contact details (Google embed, no key; filter makes it dark) ---------- */
.vn-enquiry .wp-block-column:has(.vn-map) { display: flex; flex-direction: column; }
.vn-map { flex: 1; min-height: 280px; border: var(--wp--custom--border--hairline) solid color-mix(in srgb, var(--wp--preset--color--on-accent) 16%, transparent); overflow: hidden; }
.vn-map iframe { display: block; width: 100%; height: 100%; min-height: 280px; border: 0; filter: invert(0.9) hue-rotate(180deg) grayscale(0.85) sepia(0.15) contrast(0.95); }

/* ---------- areas as a plain line, not pill chips ---------- */
.vn-chips { gap: 0 !important; }
.vn-chips li { padding: 0 !important; border: 0 !important; border-radius: 0 !important; }
.vn-chips li:not(:last-child)::after { content: "\00a0\00b7\00a0"; color: var(--wp--preset--color--on-dark-muted); }

/* ---------- glass cards (30 Oct, owner reference): thin glowing champagne border, rounded,
   number + title at the top, arrow top right, caption at the bottom ---------- */
.vn-egrid { counter-reset: vn-card; }
.vn-ecard.wp-block-cover,
.vn-frame {
  border: 1px solid rgba(212, 183, 126, 0.42);
  border-radius: var(--wp--custom--radius--card);
  overflow: hidden;
  box-shadow: 0 0 0 1px rgba(212, 183, 126, 0.06), 0 0 28px -4px rgba(195, 164, 106, 0.28), 0 24px 48px -24px rgba(0, 0, 0, 0.8), inset 0 1px 0 rgba(243, 237, 227, 0.14);
  transition: border-color 0.4s ease, box-shadow 0.4s ease;
}
.vn-ecard.wp-block-cover:hover,
.vn-frame:hover {
  border-color: rgba(212, 183, 126, 0.7);
  box-shadow: 0 0 0 1px rgba(212, 183, 126, 0.1), 0 0 36px -2px rgba(195, 164, 106, 0.4), 0 24px 48px -24px rgba(0, 0, 0, 0.8), inset 0 1px 0 rgba(243, 237, 227, 0.2);
}
/* soft light along the top edge, like glass */
.vn-ecard.wp-block-cover::after,
.vn-frame::after {
  content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none; border-radius: inherit;
  background: radial-gradient(120% 40% at 50% 0%, rgba(243, 237, 227, 0.1) 0%, rgba(243, 237, 227, 0) 70%);
}
/* photo: dark at top for the title, clear in the middle, dark at the bottom for the caption */
.vn-ecard .wp-block-cover__background {
  background: linear-gradient(180deg, rgba(20, 19, 17, 0.82) 0%, rgba(20, 19, 17, 0.25) 26%, rgba(20, 19, 17, 0.05) 50%, rgba(20, 19, 17, 0.35) 72%, rgba(20, 19, 17, 0.92) 100%) !important;
  opacity: 1 !important;
}
.vn-ecard .wp-block-cover__image-background { filter: saturate(0.6) sepia(0.12) brightness(0.8); }
.vn-ecard.wp-block-cover { align-items: stretch; counter-increment: vn-card; }
.vn-ecard .wp-block-cover__inner-container { display: flex; flex-direction: column; align-self: stretch; z-index: 2; }
.vn-ecard .wp-block-cover__inner-container::before {
  content: counter(vn-card, decimal-leading-zero);
  font-size: var(--wp--preset--font-size--small); letter-spacing: 0.12em; color: var(--wp--preset--color--contrast);
  margin-bottom: var(--wp--preset--spacing--20);
}
.vn-ecard h3 { padding-right: 32px; }
.vn-ecard .wp-block-cover__inner-container > p { margin-top: auto; padding-top: var(--wp--preset--spacing--40); }
/* arrow: small, no circle, pointing up-right, top right corner */
.vn-ecard h3 a::before {
  top: 2px; right: 0; width: 18px; height: 18px; border: 0; border-radius: 0;
  background: var(--wp--preset--color--contrast);
  -webkit-mask: var(--wp--custom--icon-url--arrow-right) center / 18px no-repeat; mask: var(--wp--custom--icon-url--arrow-right) center / 18px no-repeat;
  transform: rotate(-45deg); transition: transform 0.4s ease, background-color 0.4s ease;
}
.vn-ecard:hover h3 a::before { background: var(--wp--preset--color--accent-1-strong); transform: rotate(-45deg) translateX(3px); }
.vn-ecard:has(h3 a:focus-visible) { border-radius: var(--wp--custom--radius--card); }
/* hall photo: same box, top and bottom fade */
.vn-frame .wp-block-image img { display: block; }
.vn-frame::before {
  content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none;
  background: linear-gradient(180deg, rgba(20, 19, 17, 0.35) 0%, rgba(20, 19, 17, 0) 22%, rgba(20, 19, 17, 0) 70%, rgba(20, 19, 17, 0.5) 100%);
}
@media (prefers-reduced-motion: reduce) { .vn-ecard.wp-block-cover, .vn-frame, .vn-ecard h3 a::before { transition: none; } }
/* ---------- 30 Oct (owner): every box on the site has a 10px corner (token radius.card) ---------- */
.vn-enquiry, .vn-faq, .vn-review, .vn-map, .vn-notice, .is-style-card, .wp-block-group.is-style-card { border-radius: var(--wp--custom--radius--card); }
.vn-map, .vn-enquiry, .vn-review { overflow: hidden; }
.vn-map iframe { border-radius: var(--wp--custom--radius--card); }

/* ---------- 30 Oct (owner): FAQ fills the width — heading left, questions right on desktop ---------- */
.vn-faq { border-radius: 0; } /* a hairline list, not a box */
@media (min-width: 900px) {
  .wp-block-group:has(> .wp-block-group + .vn-faq) {
    display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
    column-gap: var(--wp--preset--spacing--80); align-items: start;
  }
  .wp-block-group:has(> .wp-block-group + .vn-faq) > * { margin-block-start: 0 !important; max-width: none !important; margin-inline: 0 !important; }
  .wp-block-group:has(> .wp-block-group + .vn-faq) > .wp-block-group:first-child { position: sticky; top: 120px; }
}