/* VIP Booth – layout and component styles. Colours, fonts and spacing live in theme.json. */

:root {
	--vip-radius: 18px;
	--vip-ease: cubic-bezier(.2, .7, .2, 1);
}

html { scroll-behavior: smooth; }
body { -webkit-font-smoothing: antialiased; }
.wp-site-blocks > * + * { margin-block-start: 0; }
img { height: auto; }

/* ---------- Header ---------- */
.vip-header {
	position: sticky;
	top: 0;
	z-index: 50;
	background: transparent;
	border-bottom: 1px solid transparent;
	transition: box-shadow .3s var(--vip-ease), border-color .3s var(--vip-ease);
}
/* The frosted background lives on a pseudo-element: backdrop-filter on the header
   itself would trap the fixed full-screen mobile menu inside the header bar. */
.vip-header::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: rgba(255, 255, 255, .88);
	backdrop-filter: saturate(180%) blur(14px);
	-webkit-backdrop-filter: saturate(180%) blur(14px);
}
.admin-bar .vip-header { top: 32px; }
.vip-header.is-scrolled { box-shadow: 0 8px 30px -18px rgba(21, 24, 41, .35); border-bottom-color: var(--wp--preset--color--line); }
.vip-header__inner { padding-block: .7rem; gap: 1.5rem; }
.vip-logo { display: inline-flex; color: var(--wp--preset--color--ink); line-height: 0; }
.vip-logo svg { width: 150px; height: auto; }
.vip-logo--footer { color: var(--wp--preset--color--line); margin-bottom: .5rem; }
.vip-logo--footer svg { width: 170px; }
.vip-nav .wp-block-navigation-item__content { padding: .5rem .2rem; color: var(--wp--preset--color--ink); }
.vip-nav .wp-block-navigation-item__content:hover { color: var(--wp--preset--color--brand); }
.vip-nav.wp-block-navigation { gap: 1.6rem; }
.vip-nav .wp-block-navigation__submenu-container {
	border: 0 !important;
	border-radius: 14px;
	padding: .5rem !important;
	box-shadow: 0 20px 45px -18px rgba(21, 24, 41, .35);
	min-width: 230px !important;
}
.vip-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content { padding: .55rem .8rem; border-radius: 10px; }
.vip-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover { background: var(--wp--preset--color--mist); }
.vip-header__cta { gap: 1rem; }
.vip-phone {
	font-family: var(--wp--preset--font-family--heading);
	font-weight: 600;
	color: var(--wp--preset--color--ink);
	text-decoration: none;
	white-space: nowrap;
}
.vip-phone::before { content: "\260E"; margin-right: .35rem; color: var(--wp--preset--color--pink); }
.vip-btn-small .wp-block-button__link { padding: .6rem 1.2rem; font-size: .92rem; }

/* ---------- Mobile / tablet menu (hamburger up to 1024px) ---------- */
.vip-nav .wp-block-navigation__responsive-container-open { padding: .55rem; border-radius: 12px; background: var(--wp--preset--color--mist); color: var(--wp--preset--color--ink); }
.vip-nav .wp-block-navigation__responsive-container-open svg { width: 26px; height: 26px; }
@media (max-width: 1024px) {
	.vip-nav .wp-block-navigation__responsive-container-open:not(.always-shown) { display: flex !important; }
	.vip-nav .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) { display: none !important; }
	.vip-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close { display: flex !important; }
	.vip-header__inner { flex-wrap: nowrap; }
	.vip-header__cta { order: 2; margin-left: auto; }
	.vip-nav { order: 3; }
}
.vip-nav .wp-block-navigation__responsive-container.is-menu-open {
	position: fixed !important;
	inset: 0 !important;
	height: 100dvh;
	background: var(--wp--preset--gradient--vip) !important;
	color: #fff !important;
	padding: 1.25rem 1.5rem 2rem !important;
	overflow-y: auto;
	z-index: 100000;
	animation: vip-menu-in .25s var(--vip-ease);
}
@keyframes vip-menu-in { from { opacity: 0; transform: translateY(-8px); } }
.vip-nav .is-menu-open .wp-block-navigation__responsive-container-close {
	top: 1rem; right: 1rem;
	width: 44px; height: 44px;
	align-items: center; justify-content: center;
	border-radius: 50%;
	background: rgba(255, 255, 255, .18);
	color: #fff;
}
.vip-nav .is-menu-open .wp-block-navigation__responsive-container-close svg { width: 26px; height: 26px; fill: currentColor; }
.vip-nav .is-menu-open .wp-block-navigation__responsive-container-content { padding-top: 3.5rem !important; align-items: stretch !important; gap: 0 !important; }
.vip-nav .is-menu-open .wp-block-navigation__container { gap: 0 !important; align-items: stretch !important; width: 100%; }
.vip-nav .is-menu-open .wp-block-navigation-item { width: 100%; border-bottom: 1px solid rgba(255, 255, 255, .18); padding: .2rem 0; }
.vip-nav .is-menu-open .wp-block-navigation-item__content { color: #fff !important; font-size: 1.3rem; padding: .7rem 0 !important; }
.vip-nav .is-menu-open .wp-block-navigation__submenu-container {
	background: transparent !important;
	box-shadow: none !important;
	padding: 0 0 .6rem 1rem !important;
	min-width: 0 !important;
	border-left: 2px solid rgba(255, 255, 255, .3) !important;
	border-radius: 0;
	gap: 0 !important;
}
.vip-nav .is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item { border: 0; padding: 0; }
.vip-nav .is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content { font-size: 1.02rem; padding: .45rem .6rem !important; opacity: .92; }
.vip-nav .is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover { background: rgba(255, 255, 255, .12); }
.vip-nav .is-menu-open .wp-block-navigation__submenu-icon { display: none !important; }
.vip-menu-extra { display: none; }
.is-menu-open .vip-menu-extra { display: grid; gap: .8rem; margin-top: 1.8rem; }
.vip-menu-extra a { display: block; text-align: center; padding: .9rem 1rem; border-radius: 999px; font-family: var(--wp--preset--font-family--heading); font-weight: 600; text-decoration: none; }
.vip-menu-extra .is-call { background: #fff; color: var(--wp--preset--color--brand-dark); }
.vip-menu-extra .is-book { border: 2px solid #fff; color: #fff; }
html.has-modal-open { overflow: hidden; }

@media (max-width: 1080px) {
	.vip-phone { display: none; }
}
@media (max-width: 600px) {
	.vip-logo svg { width: 120px; }
	.admin-bar .vip-header { top: 0; }
}

/* ---------- Buttons ---------- */
.wp-element-button, .wp-block-button__link {
	transition: transform .25s var(--vip-ease), box-shadow .25s var(--vip-ease), filter .25s;
	background-size: 140% 100%;
}
.wp-element-button:hover, .wp-block-button__link:hover { transform: translateY(-2px); filter: brightness(1.06); }
.wp-block-button.is-style-outline > .wp-block-button__link {
	background: transparent;
	border: 2px solid currentColor;
	box-shadow: none;
	color: var(--wp--preset--color--brand-dark);
}
.wp-block-button.is-style-light > .wp-block-button__link {
	background: #fff;
	color: var(--wp--preset--color--brand-dark);
	box-shadow: 0 14px 30px -16px rgba(0, 0, 0, .5);
}
.has-white-color .wp-block-button.is-style-outline > .wp-block-button__link { color: #fff; }

/* ---------- Hero ---------- */
.vip-hero {
	position: relative;
	overflow: hidden;
	isolation: isolate;
	padding-block: clamp(3.5rem, 9vw, 6.5rem);
}
.vip-hero::before, .vip-hero::after {
	content: "";
	position: absolute;
	z-index: -1;
	border-radius: 50%;
	filter: blur(10px);
	opacity: .35;
}
.vip-hero::before { width: 420px; height: 420px; right: -120px; top: -160px; background: radial-gradient(circle, #fff 0%, transparent 70%); }
.vip-hero::after { width: 300px; height: 300px; left: -100px; bottom: -150px; background: radial-gradient(circle, #ffd5ec 0%, transparent 70%); }
.vip-hero--page { padding-block: clamp(3rem, 7vw, 5rem); text-align: center; }
.vip-hero--page h1 { color: #fff; margin: 0 auto; max-width: 900px; }
.vip-hero .wp-block-post-terms a, .vip-hero__meta { color: rgba(255, 255, 255, .85); text-decoration: none; }
.vip-hero p { color: rgba(255, 255, 255, .92); }
.vip-eyebrow, .vip-eyebrow a {
	font-family: var(--wp--preset--font-family--heading);
	font-size: .78rem;
	font-weight: 600;
	letter-spacing: .12em;
	text-transform: uppercase;
	text-decoration: none;
}
.vip-hero .vip-eyebrow { color: rgba(255, 255, 255, .85); }

/* Home hero */
.vip-home-hero { padding-block: clamp(3.5rem, 8vw, 6.5rem) clamp(4rem, 9vw, 7rem); }
.vip-home-hero .wp-block-columns { align-items: center !important; gap: clamp(2rem, 5vw, 4rem); }
.vip-home-hero h1 { color: #fff; font-size: clamp(2.4rem, 5.4vw, 4.1rem); line-height: 1.06; letter-spacing: -.02em; margin-block: 1rem 1.2rem; }
.vip-home-hero .vip-lead { font-size: clamp(1.05rem, 1.6vw, 1.22rem); max-width: 48ch; color: rgba(255, 255, 255, .92); }
.vip-home-hero .wp-block-buttons { margin-top: 1.8rem; }
.vip-hero__ticks { font-size: .92rem; margin-top: 1.4rem; color: rgba(255, 255, 255, .85) !important; }

/* Photo collage */
.vip-collage { position: relative; aspect-ratio: 1 / .92; max-width: 560px; margin-inline: auto; }
.vip-collage .wp-block-image { position: absolute; margin: 0; }
.vip-collage img {
	width: 100%; height: 100%; object-fit: cover;
	border-radius: 20px !important;
	border: 6px solid #fff;
	box-shadow: 0 30px 60px -25px rgba(21, 24, 41, .6) !important;
	transition: transform .5s var(--vip-ease);
}
.vip-collage__a { width: 62%; height: 52%; left: 0; top: 4%; transform: rotate(-5deg); z-index: 2; }
.vip-collage__b { width: 54%; height: 46%; right: 0; top: 0; transform: rotate(4deg); z-index: 1; }
.vip-collage__c { width: 52%; height: 44%; left: 8%; bottom: 0; transform: rotate(3deg); z-index: 3; }
.vip-collage__d { width: 50%; height: 44%; right: 2%; bottom: 6%; transform: rotate(-3deg); z-index: 4; }
.vip-collage .wp-block-image:hover img { transform: scale(1.04); }
@media (prefers-reduced-motion: no-preference) {
	.vip-collage .wp-block-image { animation: vip-float 7s ease-in-out infinite; }
	.vip-collage__b { animation-delay: -2s !important; }
	.vip-collage__c { animation-delay: -4s !important; }
	.vip-collage__d { animation-delay: -5.5s !important; }
}
@keyframes vip-float { 50% { translate: 0 -10px; } }
@media (max-width: 781px) {
	.vip-collage { max-width: 420px; margin-top: 1rem; }
}

.vip-pill {
	display: inline-block;
	padding: .4rem .9rem;
	border-radius: 999px;
	background: rgba(255, 255, 255, .16);
	border: 1px solid rgba(255, 255, 255, .3);
	color: #fff;
	font-size: .85rem;
	font-weight: 600;
	backdrop-filter: blur(6px);
}

/* ---------- Main content ---------- */
.vip-main { padding-bottom: var(--wp--preset--spacing--60); }
.vip-content { padding-top: var(--wp--preset--spacing--50); }
.vip-content--landing { padding-top: 0; }
.vip-content > .alignfull:first-child { margin-top: 0; }
.vip-content h2 { margin-top: 2.4rem; }
.vip-content h2:first-child { margin-top: 0; }
.vip-content .wp-block-image img { box-shadow: var(--wp--preset--shadow--card); }
.vip-content .wp-block-columns { gap: 2rem; }

/* Section helpers used by the home page and converted pages */
.vip-section { padding-block: var(--wp--preset--spacing--60); }
.vip-section--mist { background: var(--wp--preset--color--mist); }
.vip-section-head { text-align: center; max-width: 680px; margin-inline: auto; margin-bottom: 2.5rem; }
.vip-section-head .vip-eyebrow { color: var(--wp--preset--color--pink); margin-bottom: .4rem; }

/* ---------- Cards ---------- */
.vip-card {
	height: 100%;
	background: #fff;
	border-radius: var(--vip-radius);
	overflow: hidden;
	box-shadow: var(--wp--preset--shadow--card);
	border: 1px solid var(--wp--preset--color--line);
	transition: transform .35s var(--vip-ease), box-shadow .35s var(--vip-ease);
	display: flex;
	flex-direction: column;
}
.vip-card:hover { transform: translateY(-6px); box-shadow: var(--wp--preset--shadow--lift); }
.vip-card .wp-block-post-featured-image, .vip-card > .wp-block-image { margin: 0; }
.vip-card .wp-block-post-featured-image img, .vip-card > .wp-block-image img { border-radius: 0; box-shadow: none; width: 100%; aspect-ratio: 4/3; object-fit: cover; }
.vip-card__body { padding: 1.3rem 1.4rem 1.6rem; display: flex; flex-direction: column; gap: .6rem; flex: 1; }
.vip-card__body > * { margin: 0 !important; }
.vip-card__body h3 { font-size: 1.2rem; }
.vip-card__body h3 a { text-decoration: none; }
.vip-card__body .wp-block-buttons { margin-top: auto !important; padding-top: .4rem; }
.vip-card .vip-eyebrow a, .vip-card .vip-eyebrow { color: var(--wp--preset--color--pink); }
.vip-card .wp-block-post-excerpt__excerpt { font-size: .95rem; margin: 0; }

/* Coloured top border per package */
.vip-card--green { border-top: 5px solid var(--wp--preset--color--green); }
.vip-card--brand { border-top: 5px solid var(--wp--preset--color--brand); }
.vip-card--orange { border-top: 5px solid var(--wp--preset--color--orange); }
.vip-card--coral { border-top: 5px solid var(--wp--preset--color--coral); }
.vip-card--green .vip-eyebrow { color: var(--wp--preset--color--green); }
.vip-card--brand .vip-eyebrow { color: var(--wp--preset--color--brand); }
.vip-card--orange .vip-eyebrow { color: #e08600; }
.vip-card--coral .vip-eyebrow { color: var(--wp--preset--color--coral); }

.vip-grid-4 { gap: 1.5rem !important; }
.vip-grid-4 > .wp-block-column { display: flex; }

/* Feature tiles */
.vip-feature {
	background: #fff;
	border-radius: var(--vip-radius);
	padding: 1.6rem;
	border: 1px solid var(--wp--preset--color--line);
	height: 100%;
}
.vip-feature__icon {
	width: 52px; height: 52px;
	display: grid; place-items: center;
	border-radius: 14px;
	background: var(--wp--preset--gradient--vip);
	color: #fff;
	font-size: 1.5rem;
	margin-bottom: .9rem !important;
}
.vip-feature h3 { margin: 0 0 .4rem; font-size: 1.1rem; }
.vip-feature p { margin: 0; font-size: .96rem; }

/* Stats strip */
.vip-stats { text-align: center; }
.vip-stats strong { display: block; font-family: var(--wp--preset--font-family--heading); font-size: 2.2rem; color: var(--wp--preset--color--ink); line-height: 1.1; }
.vip-stats span { font-size: .9rem; }

/* Testimonial */
.vip-testimonial {
	border-radius: 28px;
	padding: clamp(2rem, 5vw, 3.5rem);
	color: #fff;
	position: relative;
}
.vip-testimonial p { color: #fff; font-size: clamp(1.1rem, 2.2vw, 1.4rem); line-height: 1.6; font-family: var(--wp--preset--font-family--heading); font-weight: 600; }
.vip-testimonial cite, .vip-testimonial .vip-cite { color: rgba(255, 255, 255, .8); font-style: normal; font-size: .95rem; }
.vip-testimonial::before {
	content: "\201C";
	position: absolute;
	top: -.15em; left: .2em;
	font-size: 9rem;
	line-height: 1;
	font-family: Georgia, serif;
	color: rgba(255, 255, 255, .18);
}

/* CTA band */
.vip-cta { border-radius: 28px; padding: clamp(2.2rem, 6vw, 4rem); text-align: center; }
.vip-cta h2 { color: #fff; }
.vip-cta p { color: rgba(255, 255, 255, .9); }

/* Latest posts grid (converted portfolio / testimonial grids) */
ul.wp-block-latest-posts.is-grid { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.5rem; margin: 0; padding: 0; }
ul.wp-block-latest-posts.is-grid.columns-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
ul.wp-block-latest-posts.is-grid > li { width: auto !important; margin: 0 !important; }
@media (max-width: 960px) { ul.wp-block-latest-posts.is-grid, ul.wp-block-latest-posts.is-grid.columns-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { ul.wp-block-latest-posts.is-grid, ul.wp-block-latest-posts.is-grid.columns-4 { grid-template-columns: 1fr; } }
.wp-block-latest-posts.is-grid li {
	margin: 0 !important;
	background: #fff;
	border: 1px solid var(--wp--preset--color--line);
	border-radius: var(--vip-radius);
	overflow: hidden;
	box-shadow: var(--wp--preset--shadow--card);
	padding-bottom: 1.2rem;
	transition: transform .35s var(--vip-ease);
}
.wp-block-latest-posts.is-grid li:hover { transform: translateY(-5px); }
.wp-block-latest-posts__featured-image { margin: 0 0 1rem !important; }
.wp-block-latest-posts__featured-image img { width: 100%; aspect-ratio: 4/3; object-fit: cover; }
.wp-block-latest-posts__post-title { display: block; padding-inline: 1.2rem; font-family: var(--wp--preset--font-family--heading); font-weight: 600; color: var(--wp--preset--color--ink); text-decoration: none; }
.wp-block-latest-posts__post-excerpt { padding-inline: 1.2rem; font-size: .95rem; margin-top: .5rem; }


/* Galleries & images */
.wp-block-gallery.has-nested-images figure.wp-block-image img { border-radius: 14px; }
.wp-block-gallery.has-nested-images figure.wp-block-image { transition: transform .3s var(--vip-ease); }
.wp-block-gallery.has-nested-images figure.wp-block-image:hover { transform: scale(1.02); }
.wp-block-embed iframe { border-radius: var(--vip-radius); }

/* FAQ / details */
.wp-block-details { background: #fff; transition: box-shadow .25s; }
.wp-block-details + .wp-block-details { margin-top: .75rem; }
.wp-block-details[open] { box-shadow: var(--wp--preset--shadow--card); }
.wp-block-details summary {
	font-family: var(--wp--preset--font-family--heading);
	font-weight: 600;
	color: var(--wp--preset--color--ink);
	cursor: pointer;
	list-style: none;
	display: flex;
	justify-content: space-between;
	gap: 1rem;
}
.wp-block-details summary::-webkit-details-marker { display: none; }
.wp-block-details summary::after { content: "+"; font-size: 1.4rem; line-height: 1; color: var(--wp--preset--color--violet); transition: transform .25s; }
.wp-block-details[open] summary::after { transform: rotate(45deg); }
.wp-block-details > :not(summary) { margin-top: .75rem; }

/* Lists with ticks */
.vip-content ul.wp-block-list { padding-left: 0; list-style: none; }
.vip-content ul.wp-block-list li { padding-left: 1.8rem; position: relative; margin-bottom: .4rem; }
.vip-content ul.wp-block-list li::before {
	content: "";
	position: absolute; left: 0; top: .45em;
	width: 1.05rem; height: 1.05rem;
	border-radius: 50%;
	background: var(--wp--preset--gradient--vip);
	-webkit-mask: radial-gradient(circle at center, #000 0 100%);
}
.vip-content ul.wp-block-list li::after {
	content: "";
	position: absolute; left: .36rem; top: .62em;
	width: .3rem; height: .55rem;
	border: solid #fff; border-width: 0 2px 2px 0;
	transform: rotate(45deg);
}

/* Contact Form 7 */
.wpcf7 form { display: grid; gap: 1rem; }
.wpcf7 label { font-weight: 600; color: var(--wp--preset--color--ink); font-size: .95rem; }
.wpcf7 input:not([type=submit]):not([type=checkbox]):not([type=radio]), .wpcf7 select, .wpcf7 textarea {
	width: 100%;
	padding: .8rem 1rem;
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 12px;
	background: var(--wp--preset--color--mist);
	font: inherit;
	transition: border-color .2s, box-shadow .2s, background .2s;
	box-sizing: border-box;
}
.wpcf7 input:focus, .wpcf7 select:focus, .wpcf7 textarea:focus { outline: none; border-color: var(--wp--preset--color--brand); background: #fff; box-shadow: 0 0 0 4px rgba(90, 115, 207, .15); }
.wpcf7 input[type=submit] {
	background: var(--wp--preset--gradient--vip);
	color: #fff;
	border: 0;
	border-radius: 999px;
	padding: .9rem 2rem;
	font-family: var(--wp--preset--font-family--heading);
	font-weight: 600;
	font-size: 1rem;
	cursor: pointer;
	box-shadow: var(--wp--preset--shadow--lift);
	justify-self: start;
}

/* ---------- Footer ---------- */
.vip-footer { margin-top: 0; }
.vip-footer p, .vip-footer a { color: rgba(227, 230, 242, .78); }
.vip-footer a:hover { color: #fff; }
.vip-footer-nav .wp-block-navigation-item__content { color: rgba(227, 230, 242, .78); padding: .2rem 0; }
.vip-footer-nav .wp-block-navigation-item__content:hover { color: #fff; }
.vip-footer-nav.wp-block-navigation { gap: .35rem; font-family: var(--wp--preset--font-family--body); font-weight: 400; }
.vip-footer-nav--inline.wp-block-navigation { gap: .4rem 1rem; }
.vip-footer__rule { opacity: .25; margin-block: 2.5rem 1.5rem !important; }
.vip-footer .wp-block-social-links { margin-top: 1.2rem; }

/* Single posts & archives */
.vip-single-image { margin-top: var(--wp--preset--spacing--50) !important; }
.vip-single-image img { box-shadow: var(--wp--preset--shadow--card); }
.vip-post-nav { margin-top: var(--wp--preset--spacing--50); padding-top: 1.5rem; border-top: 1px solid var(--wp--preset--color--line); }
.vip-cards { margin-top: var(--wp--preset--spacing--50); }
.wp-block-query-pagination { margin-top: 2.5rem; }

/* Reveal on scroll (progressive enhancement; see site.js) */
@media (prefers-reduced-motion: no-preference) {
	.js .vip-reveal { opacity: 0; transform: translateY(24px); transition: opacity .7s var(--vip-ease), transform .7s var(--vip-ease); }
	.js .vip-reveal.is-visible { opacity: 1; transform: none; }
}

.screen-reader-text { clip: rect(1px, 1px, 1px, 1px); position: absolute !important; height: 1px; width: 1px; overflow: hidden; }

/* Home extras */
.vip-section--tight { padding-block: var(--wp--preset--spacing--50); }
.vip-section .wp-block-columns + .wp-block-columns { margin-top: 1.5rem; }
.vip-section > .wp-block-buttons { margin-top: 2.5rem; }
.vip-about h2 { font-size: 1.6rem; }
.vip-areas { margin-top: 1.8rem !important; font-size: .95rem; }
.vip-area {
	display: inline-block;
	margin: .25rem .15rem;
	padding: .35rem .9rem;
	border-radius: 999px;
	background: rgba(255, 255, 255, .1);
	border: 1px solid rgba(255, 255, 255, .22);
	color: #fff !important;
	text-decoration: none;
	transition: background .2s;
}
.vip-area:hover { background: rgba(255, 255, 255, .22); }
.vip-cta a:not(.wp-block-button__link):not(.vip-area) { color: #fff; }
.vip-testimonial .wp-block-buttons { margin-top: 1.5rem; }

/* Mobile header: logo, Book Now, then the menu toggle on the far right */
@media (max-width: 600px) {
	.vip-header__inner { gap: .75rem; }
	.vip-header__cta { order: 2; margin-left: auto; }
	.vip-nav { order: 3; }
	.vip-hero__ticks { font-size: .85rem; }
}

/* "Call now" lines inside converted pages */
.vip-callout {
	font-family: var(--wp--preset--font-family--heading);
	font-weight: 600;
	font-size: 1.05rem;
	color: var(--wp--preset--color--ink);
	padding: .9rem 1.2rem;
	border-radius: 14px;
	background: var(--wp--preset--color--mist);
	border-left: 4px solid var(--wp--preset--color--pink);
}
.vip-callout a { color: var(--wp--preset--color--pink); text-decoration: none; white-space: nowrap; }

/* Post images are small originals (~370px), so keep them modest rather than stretched */
.vip-single-image { max-width: 560px; margin-inline: auto !important; }
.vip-single-image img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; }

/* Pages with wide multi-column sections: line everything up on the wide grid
   so headings and buttons share the same left edge as the columns below. */
.vip-content:has(> .wp-block-columns.alignwide) > :where(:not(.alignfull)) { max-width: var(--wp--style--global--wide-size); }

/* ---------- Area landing pages ---------- */
.vip-crumbs { font-size: .88rem; color: rgba(255, 255, 255, .85) !important; margin-bottom: .2rem !important; }
.vip-crumbs a { color: #fff; text-decoration: none; border-bottom: 1px solid rgba(255, 255, 255, .4); }
.vip-area-hero h1 { font-size: clamp(2.2rem, 4.8vw, 3.6rem); max-width: 16ch; }
.vip-area-intro { gap: clamp(2rem, 5vw, 4rem) !important; }
.vip-area-intro h2 { margin-top: 0; }
.vip-facts-card {
	background: #fff;
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 22px;
	padding: 1.8rem;
	box-shadow: var(--wp--preset--shadow--lift);
	position: sticky;
	top: 100px;
}
.vip-facts-card h3 { margin-top: 0; }
.vip-content ul.vip-facts { margin: 0 0 1.4rem; }
.vip-content ul.vip-facts li { padding: .8rem 0 .8rem 2.6rem; border-bottom: 1px dashed var(--wp--preset--color--line); margin: 0; font-size: .95rem; }
.vip-content ul.vip-facts li:last-child { border-bottom: 0; }
.vip-content ul.vip-facts li::before, .vip-content ul.vip-facts li::after { display: none; }
.vip-facts li span { position: absolute; left: 0; top: .75rem; font-size: 1.3rem; }
.vip-facts li strong { display: block; color: var(--wp--preset--color--ink); font-family: var(--wp--preset--font-family--heading); font-size: .9rem; }
.vip-price-line { margin: 0; font-size: .9rem; }
.vip-price { font-family: var(--wp--preset--font-family--heading); font-size: 1.8rem; color: var(--wp--preset--color--ink); margin-right: .3rem; background: var(--wp--preset--gradient--vip); -webkit-background-clip: text; background-clip: text; color: transparent; }
.vip-card .wp-block-list { font-size: .93rem; }
.vip-note { text-align: center; margin-top: 2rem !important; font-size: .95rem; }
.vip-towns { display: flex; flex-wrap: wrap; gap: .5rem; }
.vip-town {
	padding: .35rem .85rem;
	border-radius: 999px;
	background: var(--wp--preset--color--mist);
	border: 1px solid var(--wp--preset--color--line);
	font-size: .9rem;
	color: var(--wp--preset--color--ink);
}
.vip-areas--light .vip-area { background: #fff; border-color: var(--wp--preset--color--line); color: var(--wp--preset--color--brand-dark) !important; }
.vip-areas--light .vip-area:hover { background: var(--wp--preset--color--mist); }
@media (max-width: 781px) { .vip-facts-card { position: static; } }

/* Tables (price guides) */
.wp-block-table { overflow-x: auto; }
.wp-block-table table { border-collapse: separate; border-spacing: 0; width: 100%; border: 1px solid var(--wp--preset--color--line); border-radius: 14px; overflow: hidden; font-size: .95rem; }
.wp-block-table th { background: var(--wp--preset--color--mist); color: var(--wp--preset--color--ink); font-family: var(--wp--preset--font-family--heading); font-weight: 600; text-align: left; }
.wp-block-table th, .wp-block-table td { padding: .8rem 1rem; border: 0; border-bottom: 1px solid var(--wp--preset--color--line); vertical-align: top; }
.wp-block-table tr:last-child td { border-bottom: 0; }
.vip-nav .is-menu-open .wp-block-navigation__responsive-container-content,
.vip-nav .is-menu-open .wp-block-navigation__container,
.vip-nav .is-menu-open .wp-block-navigation-item { align-items: flex-start !important; justify-content: flex-start !important; text-align: left; }
.vip-nav .is-menu-open .vip-menu-extra { order: 99; width: 100%; max-width: 480px; }
.vip-nav .is-menu-open .wp-block-navigation__responsive-dialog::before {
	content: "VIP";
	position: absolute; top: 1.15rem; left: 1.5rem;
	font: 800 1.9rem/1 var(--wp--preset--font-family--heading);
	letter-spacing: -1px; color: #fff;
}

/* Offers */
.vip-offers > .wp-block-column { display: flex; }
.vip-offer--featured { box-shadow: var(--wp--preset--shadow--lift); border-color: var(--wp--preset--color--violet); position: relative; }
.vip-offer--featured::before {
	content: "Best value";
	position: absolute; top: 14px; right: 14px;
	padding: .25rem .7rem; border-radius: 999px;
	background: var(--wp--preset--gradient--vip); color: #fff;
	font: 600 .75rem var(--wp--preset--font-family--heading);
}
.vip-save { display: inline-block; margin: 0 !important; padding: .25rem .7rem; border-radius: 999px; background: #e9fbf4; color: #0f7a55; font-size: .82rem; font-weight: 600; width: fit-content; }
.vip-price-line s { opacity: .6; }

/* ---------- Forms (grid layout) ---------- */
.wpcf7 form { display: block; }
.vip-form { display: grid; grid-template-columns: 1fr 1fr; gap: 1.1rem 1.25rem; }
.vip-form > .is-full { grid-column: 1 / -1; }
.vip-form h3 { margin: 1.2rem 0 0; padding-top: 1rem; border-top: 1px solid var(--wp--preset--color--line); font-size: 1.1rem; }
.vip-form h3:first-child { margin-top: 0; padding-top: 0; border-top: 0; }
.vip-form label { display: flex; flex-direction: column; gap: .4rem; }
.vip-form .wpcf7-form-control-wrap { display: block; }
.wpcf7 input[type=date], .wpcf7 input[type=number], .wpcf7 input[type=tel] { min-height: 3rem; }
.wpcf7 select {
	-webkit-appearance: none; appearance: none;
	min-height: 3rem;
	padding-right: 2.5rem !important;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%238b5cf6' stroke-width='2'/%3E%3C/svg%3E") !important;
	background-repeat: no-repeat !important;
	background-position: right 1rem center !important;
}
.vip-radio > span { display: block; font-weight: 600; color: var(--wp--preset--color--ink); font-size: .95rem; margin-bottom: .5rem; }
.vip-radio .wpcf7-list-item { margin: 0 1.2rem 0 0; }
.vip-radio .wpcf7-list-item label { flex-direction: row; align-items: center; font-weight: 500; }
.vip-radio input[type=radio], .vip-accept input[type=checkbox] { width: 1.2rem; height: 1.2rem; accent-color: var(--wp--preset--color--violet); margin-right: .5rem; }
.vip-accept { font-size: .95rem; }
.vip-accept .wpcf7-list-item { margin: 0; }
.wpcf7-not-valid-tip { font-size: .85rem; margin-top: .3rem; }
.wpcf7 form .wpcf7-response-output { border-radius: 12px; margin: 1.2rem 0 0; padding: .9rem 1.1rem; }
@media (max-width: 640px) {
	.vip-form { grid-template-columns: 1fr; }
	.wpcf7 input, .wpcf7 select, .wpcf7 textarea { font-size: 16px !important; } /* stops iOS zooming into fields */
}
.vip-accept .wpcf7-list-item label, .vip-radio .wpcf7-list-item label { display: inline-flex; flex-direction: row; align-items: center; gap: .1rem; }

/* Postcode lookup */
.vip-postcode { display: grid; gap: .6rem; }
.vip-pc-row { display: flex; gap: .6rem; align-items: flex-end; }
.vip-pc-row > label { flex: 1; }
.vip-pc-find { min-height: 3rem; }
.vip-pc-row .wpcf7-form-control-wrap { flex: 1; }
.vip-pc-find {
	flex: none;
	padding: 0 1.4rem;
	border: 0;
	border-radius: 12px;
	background: var(--wp--preset--gradient--vip);
	color: #fff;
	font: 600 .95rem var(--wp--preset--font-family--heading);
	cursor: pointer;
}
.vip-pc-find:disabled { opacity: .6; cursor: wait; }
.vip-pc-manual {
	justify-self: start;
	background: none; border: 0; padding: 0;
	color: var(--wp--preset--color--brand-dark);
	font: inherit; font-size: .9rem;
	text-decoration: underline; cursor: pointer;
}
.vip-pc-status { margin: 0; font-size: .92rem; }
.vip-pc-status:empty { display: none; }
.vip-pc-status.is-ok { color: #0f7a55; }
.vip-pc-status.is-error { color: #c0392b; }
.vip-pc-fields { display: grid; gap: 1rem; }
.vip-pc-pair { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
/* With JavaScript, address fields stay tucked away until a lookup or "enter manually". */
.vip-postcode.has-js:not(.is-open) .vip-pc-fields { display: none; }
.vip-postcode.is-open .vip-pc-manual { display: none; }
.vip-postcode:not(.has-js) .vip-pc-find, .vip-postcode:not(.has-js) .vip-pc-manual { display: none; }
@media (max-width: 640px) { .vip-pc-pair { grid-template-columns: 1fr; } }
