/*
 * Blunsdon Abbey Park – Plots (bap-plots MU plugin, Heer Digital)
 *
 * Every rule is scoped to `.bap.bap` (two classes) so it outranks the site's
 * Elementor kit rules (e.g. `.elementor-kit-7 button:hover`) and the Hello
 * theme reset, without needing !important. Colours read the Elementor global
 * colours first, so a brand change in Site Settings flows through.
 */

.bap.bap {
	--bap-primary: var(--e-global-color-primary, #005A3B);
	--bap-grey: var(--e-global-color-secondary, #EFEFEF);
	--bap-text: var(--e-global-color-text, #223028);
	--bap-accent: var(--e-global-color-accent, #BED238);
	--bap-rust: var(--e-global-color-07bac3d, #BC4F17);
	--bap-line: rgba(128, 128, 128, .5);
	--bap-muted: #5d6a62;
	--bap-serif: "DM Serif Display", Georgia, serif;
	--bap-sans: "Work Sans", Arial, sans-serif;
	display: block;
	color: var(--bap-text);
	font-family: var(--bap-sans);
	font-size: 20px;
	line-height: 1.5;
}
.bap.bap *, .bap.bap *::before, .bap.bap *::after { box-sizing: border-box; }
.bap.bap img { max-width: 100%; height: auto; display: block; }
.bap.bap a { color: var(--bap-primary); font-family: inherit; font-weight: inherit; line-height: inherit; text-decoration: none; transition: color .2s; }
.bap.bap a:hover { color: var(--bap-rust); }
.bap.bap p { margin: 0 0 14px; font-size: 18px; line-height: 27px; }
.bap.bap [hidden] { display: none !important; }
.bap.bap .bap-h1, .bap.bap .bap-h2, .bap.bap .bap-h3 { font-family: var(--bap-serif); font-weight: 400; color: var(--bap-primary); margin: 0; }
.bap.bap .bap-h1 { font-size: 48px; line-height: 53px; }
.bap.bap .bap-h2 { font-size: 44px; line-height: 53px; }
.bap.bap .bap-h3 { font-size: 28px; line-height: 1.3; }
.bap.bap .bap-mb { margin-bottom: 20px; }
.bap.bap .bap-wrap { width: min(1280px, 100% - 40px); margin-inline: auto; }
.bap.bap .bap-sec { padding: 80px 0; }
.bap.bap .bap-sec--first { padding-top: 30px; }
.bap.bap .bap-sec--grey { background: var(--bap-grey); }

/* Buttons (live site style: green, uppercase, 10px radius) */
.bap.bap .bap-btn { display: inline-flex; align-items: center; justify-content: center; gap: 10px; background: var(--bap-primary); color: #fff; font-family: var(--bap-sans); font-size: 18px; line-height: 23.4px; font-weight: 500; text-transform: uppercase; letter-spacing: .4px; padding: 13px 18px; border-radius: 10px; border: 0; box-shadow: none; cursor: pointer; text-decoration: none; transition: background .2s, color .2s; white-space: normal; text-align: center; }
.bap.bap .bap-btn:hover, .bap.bap .bap-btn:focus-visible { background: var(--bap-accent); color: var(--bap-primary); }
.bap.bap .bap-btn:focus { outline: none; }
.bap.bap .bap-btn:focus-visible { outline: 3px solid var(--bap-text); outline-offset: 2px; }
.bap.bap .bap-btn--block { width: 100%; }
.bap.bap .bap-btn--lime { background: var(--bap-accent); color: var(--bap-primary); }
.bap.bap .bap-btn--lime:hover, .bap.bap .bap-btn--lime:focus-visible { background: var(--bap-primary); color: #fff; }
/* On dark green panels a dark green hover would make the button vanish: use white. */
.bap.bap .bap-qe .bap-btn--lime:hover, .bap.bap .bap-qe .bap-btn--lime:focus-visible,
.bap.bap .bap-qe-card .bap-btn--lime:hover, .bap.bap .bap-qe-card .bap-btn--lime:focus-visible { background: #fff; color: var(--bap-primary); }
.bap.bap .bap-btn--lime:active { transform: translateY(1px); }
.bap.bap .bap-btn--line { background: transparent; color: #fff; box-shadow: inset 0 0 0 1px var(--bap-grey); font-size: 16px; padding: 12px 16px; }
.bap.bap .bap-btn--line:hover, .bap.bap .bap-btn--line:focus-visible { background: var(--bap-accent); color: var(--bap-primary); box-shadow: inset 0 0 0 1px var(--bap-accent); }
.bap.bap .bap-btn svg { flex: none; }
.bap.bap .bap-btnrow { display: flex; flex-wrap: wrap; gap: 15px; }

/* Status pills */
.bap.bap .bap-pill { display: inline-block; font-family: var(--bap-sans); font-size: 14px; line-height: 1; font-weight: 600; letter-spacing: .6px; text-transform: uppercase; padding: 8px 12px; border-radius: 999px; color: #fff; background: var(--bap-primary); }
.bap.bap .bap-pill--reserved { background: var(--bap-rust); }
.bap.bap .bap-pill--sold { background: var(--bap-text); }

/* Hero (same pattern as the Homes for Sale page) */
.bap.bap .bap-hero { position: relative; height: 480px; background: #9aa49e center / cover no-repeat; display: flex; align-items: flex-end; padding-bottom: 50px; }
.bap.bap .bap-hero__wrap { display: flex; }
.bap.bap .bap-hero__box { background: var(--bap-accent); width: 60%; max-width: 768px; padding: 30px 35px; }
.bap.bap .bap-hero__inner { max-width: 600px; margin: 0 auto; }
.bap.bap .bap-hero .bap-pill { margin-bottom: 10px; }
.bap.bap .bap-hero__sub { font-size: 20px; line-height: 28px; color: var(--bap-primary); font-weight: 500; margin: 8px 0 0; }

/* Quick enquiry strip under the hero */
.bap.bap .bap-qe { background: var(--bap-primary); color: #fff; padding: 28px 0 30px; }
.bap.bap .bap-qe__in { display: grid; grid-template-columns: minmax(0, 1fr) 250px; gap: 30px; align-items: end; }
.bap.bap .bap-qe__intro { font-size: 18px; line-height: 26px; margin: 0 0 14px; color: #fff; }
.bap.bap .bap-qe__intro b { font-family: var(--bap-serif); font-weight: 400; font-size: 26px; color: var(--bap-accent); margin-right: 8px; }
.bap.bap .bap-qe__form { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)) auto; gap: 12px; align-items: end; margin: 0; }
.bap.bap .bap-qe__form label { display: block; font-size: 14px; line-height: 1.3; font-weight: 500; color: #dfe9e3; margin: 0 0 5px; }
.bap.bap .bap-qe__form input { width: 100%; font-family: var(--bap-sans); font-size: 15px; line-height: 1.4; color: var(--bap-text); background: #fff; border: 0; border-radius: 10px; padding: 8px 16px; min-height: 46px; margin: 0; box-shadow: none; }
.bap.bap .bap-qe__form input:focus { outline: 3px solid var(--bap-accent); outline-offset: 1px; }
.bap.bap .bap-qe__form .bap-btn { min-height: 46px; padding: 0 28px; }
.bap.bap .bap-qe__msg { grid-column: 1 / -1; background: rgba(255, 255, 255, .12); border-radius: 10px; padding: 14px 16px; font-size: 15px; line-height: 22px; color: #fff; }
.bap.bap .bap-qe__msg.is-error { background: rgba(188, 79, 23, .85); }
.bap.bap .bap-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.bap.bap .bap-qe__side { display: flex; flex-direction: column; gap: 10px; }
.bap.bap .bap-qe-card { background: var(--bap-primary); border-radius: 10px; padding: 30px; color: #fff; }
.bap.bap .bap-qe-card .bap-qe__form { grid-template-columns: 1fr 1fr; }
.bap.bap .bap-qe-card .bap-qe__form .bap-btn { width: 100%; }

/* Breadcrumb */
.bap.bap .bap-crumbs { font-size: 15px; line-height: 1.4; padding: 18px 0 0; color: var(--bap-muted); }
.bap.bap .bap-crumbs span { margin: 0 8px; color: #9aa49e; }
.bap.bap .bap-crumbs b { font-weight: 500; }

/* Two columns: gallery + details | price card (875 / 375 like the live page) */
.bap.bap .bap-cols { display: grid; grid-template-columns: minmax(0, 875fr) minmax(0, 375fr); grid-template-areas: 'gal side' 'det side'; gap: 40px 30px; align-items: start; }
.bap.bap .bap-galwrap { grid-area: gal; }
.bap.bap .bap-side { grid-area: side; display: flex; flex-direction: column; gap: 20px; }
.bap.bap .bap-det { grid-area: det; }
.bap.bap .bap-main > * + * { margin-top: 40px; }

/* Gallery */
.bap.bap .bap-gal__stage { position: relative; border-radius: 10px; overflow: hidden; background: var(--bap-grey); aspect-ratio: 16 / 10; }
.bap.bap .bap-gal__main { width: 100%; height: 100%; object-fit: cover; cursor: zoom-in; }
.bap.bap .bap-gal__nav { position: absolute; top: 50%; transform: translateY(-50%); width: 48px; height: 48px; border-radius: 50%; border: 0; padding: 0; background: rgba(255, 255, 255, .92); color: var(--bap-primary); display: grid; place-items: center; cursor: pointer; transition: background .2s; box-shadow: none; }
.bap.bap .bap-gal__nav:hover, .bap.bap .bap-gal__nav:focus-visible { background: var(--bap-accent); color: var(--bap-primary); }
.bap.bap .bap-gal__prev { left: 16px; }
.bap.bap .bap-gal__next { right: 16px; }
.bap.bap .bap-gal__count { position: absolute; right: 16px; bottom: 16px; background: rgba(34, 48, 40, .8); color: #fff; font-size: 14px; line-height: 1; padding: 8px 12px; border-radius: 999px; }
.bap.bap .bap-gal__thumbs { display: grid; grid-template-columns: repeat(8, 1fr); gap: 10px; margin-top: 10px; }
.bap.bap .bap-gal__thumbs button { padding: 0; border: 0; background: none; cursor: pointer; border-radius: 6px; overflow: hidden; aspect-ratio: 4 / 3; opacity: .65; outline: 3px solid transparent; outline-offset: -3px; transition: opacity .2s; box-shadow: none; }
.bap.bap .bap-gal__thumbs button:hover, .bap.bap .bap-gal__thumbs button:focus-visible { opacity: 1; background: none; }
.bap.bap .bap-gal__thumbs button.is-on { opacity: 1; outline-color: var(--bap-accent); }
.bap.bap .bap-gal__thumbs img { width: 100%; height: 100%; object-fit: cover; }
.bap.bap .bap-gal__note { font-size: 14px; line-height: 20px; color: var(--bap-muted); margin: 10px 0 0; }

/* Details */
.bap.bap .bap-lede .bap-h2 { margin-bottom: 4px; }
.bap.bap .bap-lede__tag { font-family: var(--bap-sans); font-size: 20px; line-height: 28px; font-weight: 600; color: var(--bap-rust); margin: 0 0 18px; }
.bap.bap .bap-text ul, .bap.bap .bap-text ol { font-size: 18px; line-height: 27px; margin: 0 0 14px 1.2em; padding: 0; }
.bap.bap .bap-alist { list-style: none; margin: 0; padding: 0; columns: 2; column-gap: 30px; }
.bap.bap .bap-alist li { display: flex; gap: 10px; font-size: 16px; line-height: 24px; padding-bottom: 6.5px; break-inside: avoid; }
.bap.bap .bap-alist li svg { flex: none; margin-top: 4px; }
.bap.bap .bap-ess { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; margin: 0; }
.bap.bap .bap-ess div { background: var(--bap-grey); border-radius: 10px; padding: 16px 18px; border-top: 4px solid var(--bap-accent); }
.bap.bap .bap-ess dt { font-size: 14px; line-height: 18px; font-weight: 600; color: var(--bap-primary); text-transform: uppercase; letter-spacing: .4px; margin: 0 0 6px; }
.bap.bap .bap-ess dd { margin: 0; font-size: 16px; line-height: 22px; }

/* Price card */
.bap.bap .bap-card { background: var(--bap-grey); border-radius: 10px; padding: 30px; }
.bap.bap .bap-price__label { font-size: 16px; line-height: 1; color: var(--bap-text); margin: 18px 0 6px; }
.bap.bap .bap-price__val { font-family: var(--bap-serif); font-size: 44px; line-height: 1.1; color: var(--bap-primary); }
.bap.bap .bap-price__poa { font-family: var(--bap-serif); font-size: 32px; line-height: 1.2; color: var(--bap-primary); }
.bap.bap .bap-price__fee { font-size: 16px; line-height: 22px; margin-top: 8px; }
.bap.bap .bap-facts { margin: 22px 0 24px; padding: 0; }
.bap.bap .bap-facts div { display: grid; grid-template-columns: 112px 1fr; gap: 12px; padding: 10px 0; border-bottom: 1px solid var(--bap-line); font-size: 16px; line-height: 22px; }
.bap.bap .bap-facts div:first-child { border-top: 1px solid var(--bap-line); }
.bap.bap .bap-facts dt { font-weight: 600; color: var(--bap-primary); margin: 0; }
.bap.bap .bap-facts dd { margin: 0; }
.bap.bap .bap-card .bap-btn + .bap-btn { margin-top: 12px; }
.bap.bap .bap-card > .bap-btn:first-of-type { margin-top: 24px; }
.bap.bap .bap-px { background: var(--bap-rust); border-radius: 10px; padding: 35px 30px; }
.bap.bap .bap-px .bap-h3 { color: #fff; margin-bottom: 14px; }
.bap.bap .bap-px p { color: var(--bap-grey); margin: 0; }
.bap.bap .bap-px a { color: #fff; text-decoration: underline; font-weight: 500; }

/* Section heads and white panels */
.bap.bap .bap-sec__head { margin-bottom: 30px; }
.bap.bap .bap-sec__head p { margin: 8px 0 0; max-width: 720px; }
.bap.bap .bap-sec__head p a { font-family: var(--bap-sans); font-weight: 500; line-height: inherit; color: var(--bap-primary); text-decoration: underline; }
.bap.bap .bap-sec__head p a:hover { color: var(--bap-rust); }
.bap.bap .bap-panel { background: #fff; border-radius: 3px; padding: 30px; }

/* Floorplan */
.bap.bap .bap-fp { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 40px; align-items: center; }
.bap.bap .bap-fp__img { display: block; width: 100%; padding: 0; border: 0; background: none; cursor: zoom-in; box-shadow: none; }
.bap.bap .bap-fp__img:hover, .bap.bap .bap-fp__img:focus { background: none; }
.bap.bap .bap-fp__img img { width: 100%; }
.bap.bap .bap-rooms { list-style: none; margin: 0 0 24px; padding: 0; }
.bap.bap .bap-rooms li { display: flex; justify-content: space-between; gap: 12px; padding: 10px 0; border-bottom: 1px solid var(--bap-line); font-size: 16px; line-height: 22px; }
.bap.bap .bap-rooms li:first-child { border-top: 1px solid var(--bap-line); }
.bap.bap .bap-rooms b { font-weight: 600; color: var(--bap-primary); }
.bap.bap .bap-rooms span { text-align: right; }
.bap.bap .bap-fp__note { font-size: 14px; line-height: 20px; color: var(--bap-muted); margin: 0 0 20px; }

/* Virtual tour (Matterport loads only when clicked) */
.bap.bap .bap-tour { position: relative; border-radius: 10px; overflow: hidden; aspect-ratio: 16 / 9; background: #000; }
.bap.bap .bap-tour__poster { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; padding: 0; border-radius: 0; cursor: pointer; background: #000 center / cover no-repeat; box-shadow: none; }
.bap.bap .bap-tour__poster::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0, 90, 59, .15), rgba(0, 40, 26, .7)); }
.bap.bap .bap-tour__cta { position: absolute; inset: 0; z-index: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 16px; color: #fff; text-align: center; padding: 20px; }
.bap.bap .bap-tour__play { width: 96px; height: 96px; border-radius: 50%; background: var(--bap-accent); display: grid; place-items: center; transition: transform .2s; }
.bap.bap .bap-tour__poster:hover .bap-tour__play { transform: scale(1.06); }
.bap.bap .bap-tour__cta strong { font-family: var(--bap-serif); font-weight: 400; font-size: 34px; line-height: 1.2; }
.bap.bap .bap-tour__cta small { font-size: 16px; line-height: 22px; max-width: 520px; opacity: .95; }
.bap.bap .bap-tour iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }

/* Availability: site map + plots table */
.bap.bap .bap-avail { display: grid; grid-template-columns: minmax(0, 654fr) minmax(0, 515fr); gap: 20px; align-items: center; }
.bap.bap .bap-avail--single { grid-template-columns: 1fr; }
.bap.bap .bap-avail__map { padding: 10px; }
.bap.bap .bap-avail__btns { margin-top: 30px; }

/* Site map with pins */
.bap.bap .bap-map { width: 100%; }
.bap.bap .bap-map__hint { font-size: 15px; line-height: 1.4; color: var(--bap-muted); margin: 0 0 10px; text-align: center; }
.bap.bap .bap-map__drag { display: none; }
.bap.bap .bap-map__stage { position: relative; max-width: 600px; margin: 0 auto; }
.bap.bap .bap-map__stage img { width: 100%; height: auto; }
.bap.bap .bap-pin { position: absolute; transform: translate(-50%, -50%); width: 30px; height: 30px; border-radius: 50%; display: grid; place-items: center; background: var(--bap-primary); color: #fff; box-shadow: 0 0 0 2px #fff, 0 2px 6px rgba(0, 0, 0, .35); font-family: var(--bap-sans); font-size: 13px; font-weight: 700; line-height: 1; text-decoration: none; z-index: 1; transition: transform .15s; }
.bap.bap .bap-pin--reserved { background: var(--bap-rust); }
.bap.bap .bap-pin--sold { background: var(--bap-text); }
.bap.bap a.bap-pin { color: #fff; cursor: pointer; }
.bap.bap a.bap-pin:hover, .bap.bap .bap-pin:focus-visible { transform: translate(-50%, -50%) scale(1.18); z-index: 3; color: #fff; outline: none; box-shadow: 0 0 0 3px var(--bap-accent), 0 2px 8px rgba(0, 0, 0, .4); }
.bap.bap .bap-pin.is-current { box-shadow: 0 0 0 3px var(--bap-accent), 0 0 0 6px rgba(190, 210, 56, .45), 0 2px 6px rgba(0, 0, 0, .35); z-index: 2; }
.bap.bap .bap-pin__tip { position: absolute; bottom: calc(100% + 10px); left: 50%; transform: translateX(-50%); background: var(--bap-text); color: #fff; font-size: 13px; font-weight: 500; line-height: 1.35; padding: 7px 10px; border-radius: 6px; white-space: nowrap; pointer-events: none; opacity: 0; visibility: hidden; transition: opacity .15s; text-align: center; }
.bap.bap .bap-pin__tip em { display: block; font-style: normal; color: var(--bap-accent); font-weight: 600; }
.bap.bap .bap-pin:hover .bap-pin__tip, .bap.bap .bap-pin:focus-visible .bap-pin__tip { opacity: 1; visibility: visible; }
.bap.bap .bap-map__legend { display: flex; justify-content: center; flex-wrap: wrap; gap: 8px 18px; list-style: none; margin: 12px 0 0; padding: 0; font-size: 14px; line-height: 1.4; }
.bap.bap .bap-map__legend li { display: flex; align-items: center; gap: 6px; }
.bap.bap .bap-dot { width: 12px; height: 12px; border-radius: 50%; background: var(--bap-primary); display: inline-block; }
.bap.bap .bap-dot--reserved { background: var(--bap-rust); }
.bap.bap .bap-dot--sold { background: var(--bap-text); }

/* Plots table (matches the live Available plots table) */
.bap.bap .bap-ptable { width: 100%; border-collapse: collapse; border: 0; margin: 0; font-size: 16px; line-height: 1.4; background: transparent; }
.bap.bap .bap-ptable td { padding: 15px; border: 0; border-bottom: 1px solid var(--bap-line); background: transparent; vertical-align: middle; line-height: 1.4; }
.bap.bap .bap-ptable tr:hover td { background: transparent; }
.bap.bap .bap-ptable td.bap-ptable__status { text-align: right; font-weight: 700; white-space: nowrap; }
.bap.bap .bap-ptable td.bap-ptable__price { text-align: right; white-space: nowrap; }
.bap.bap .bap-ptable .bap-st--available { color: var(--bap-primary); }
.bap.bap .bap-ptable .bap-st--reserved { color: #d22b2b; }
.bap.bap .bap-ptable .bap-st--sold { color: var(--bap-text); }
.bap.bap .bap-ptable tr.is-current td { background: rgba(190, 210, 56, .28); }
.bap.bap .bap-ptable tr.is-current td:first-child { box-shadow: inset 4px 0 0 var(--bap-accent); }
.bap.bap .bap-ptable a { font-weight: 400; text-decoration: none; }
.bap.bap .bap-ptable a b { text-decoration: underline; text-underline-offset: 3px; }
.bap.bap .bap-ptable b { font-weight: 700; }
.bap.bap .bap-here { display: inline-block; margin-left: 8px; font-size: 12px; font-weight: 600; letter-spacing: .5px; text-transform: uppercase; background: var(--bap-primary); color: #fff; padding: 3px 8px; border-radius: 999px; vertical-align: middle; }

/* Contact section */
.bap.bap .bap-enq { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 60px; align-items: start; }
.bap.bap .bap-enq__lead { margin-top: 16px; }
.bap.bap .bap-enq__contact { margin-top: 24px; display: grid; gap: 10px; }
.bap.bap .bap-enq__tel { font-family: var(--bap-serif); font-size: 27px; line-height: 1.3; }
.bap.bap .bap-enq__mail { font-size: 18px; font-weight: 500; }
.bap.bap .bap-enq__addr { font-size: 16px; line-height: 22.4px; margin: 6px 0 0; }

/* Orange banner (live) */
.bap.bap .bap-band { background: var(--bap-rust); padding: 35px 0; }
.bap.bap .bap-band p { font-family: var(--bap-serif); font-size: 28px; line-height: 39.2px; color: #fff; max-width: 1000px; margin: 0 auto; padding: 0 20px; text-align: center; }
.bap.bap .bap-band a { color: #fff; text-decoration: underline; }
.bap.bap .bap-band a:hover { color: var(--bap-accent); }

/* Lightbox (photos and floorplan) */
.bap.bap .bap-lb { position: fixed; inset: 0; z-index: 100000; background: rgba(10, 20, 15, .94); display: flex; align-items: center; justify-content: center; padding: 60px 70px; }
.bap.bap .bap-lb img { max-width: 100%; max-height: 100%; width: auto; object-fit: contain; border-radius: 6px; background: #fff; }
.bap.bap .bap-lb button { position: absolute; background: rgba(255, 255, 255, .12); border: 0; padding: 0; color: #fff; width: 52px; height: 52px; border-radius: 50%; cursor: pointer; display: grid; place-items: center; box-shadow: none; }
.bap.bap .bap-lb button:hover, .bap.bap .bap-lb button:focus-visible { background: var(--bap-accent); color: var(--bap-primary); }
.bap.bap .bap-lb__close { top: 16px; right: 16px; }
.bap.bap .bap-lb__prev { left: 12px; top: 50%; transform: translateY(-50%); }
.bap.bap .bap-lb__next { right: 12px; top: 50%; transform: translateY(-50%); }
.bap.bap .bap-lb__count { position: absolute; bottom: 18px; left: 0; right: 0; text-align: center; color: #fff; font-size: 15px; }

/* Shortcodes placed in Elementor (Homes for Sale page) */
.bap.bap.bap-sc { font-size: 16px; }
.bap.bap.bap-sc .bap-map__stage { max-width: 760px; }

/* ===== Tablet (Elementor breakpoint 1024) ===== */
@media (max-width: 1024px) {
	.bap.bap .bap-cols { grid-template-columns: 1fr; grid-template-areas: 'gal' 'side' 'det'; }
	.bap.bap .bap-side { display: grid; grid-template-columns: 1fr 1fr; align-items: start; }
	.bap.bap .bap-fp, .bap.bap .bap-avail, .bap.bap .bap-enq { grid-template-columns: minmax(0, 1fr); }
	.bap.bap .bap-fp { gap: 24px; }
	.bap.bap .bap-enq { gap: 30px; }
	.bap.bap .bap-qe__in { grid-template-columns: 1fr; gap: 14px; }
	.bap.bap .bap-qe__side { flex-direction: row; }
	.bap.bap .bap-qe__side .bap-btn { flex: 1; }
	.bap.bap .bap-hero__box { width: 78%; }
}

/* ===== Mobile (Elementor breakpoint 767) ===== */
@media (max-width: 767px) {
	.bap.bap { font-size: 18px; }
	.bap.bap .bap-h1 { font-size: 34px; line-height: 40px; }
	.bap.bap .bap-h2 { font-size: 32px; line-height: 38px; }
	.bap.bap .bap-h3 { font-size: 24px; }
	.bap.bap .bap-sec { padding: 56px 0; }
	.bap.bap .bap-sec--first { padding-top: 24px; }
	.bap.bap .bap-hero { height: auto; min-height: 420px; padding-bottom: 20px; }
	.bap.bap .bap-hero__box { width: 100%; padding: 24px 20px; }
	.bap.bap .bap-qe__form, .bap.bap .bap-qe-card .bap-qe__form { grid-template-columns: 1fr; }
	.bap.bap .bap-qe__intro b { display: block; margin: 0 0 4px; }
	.bap.bap .bap-qe__side { flex-direction: column; }
	.bap.bap .bap-qe-card { padding: 22px 18px; }
	.bap.bap .bap-side { grid-template-columns: 1fr; }
	.bap.bap .bap-alist { columns: 1; }
	.bap.bap .bap-ess { grid-template-columns: 1fr 1fr; }
	.bap.bap .bap-gal__thumbs { grid-template-columns: repeat(4, 1fr); }
	.bap.bap .bap-gal__nav { width: 40px; height: 40px; }
	.bap.bap .bap-facts div { grid-template-columns: 100px 1fr; }
	.bap.bap .bap-panel { padding: 18px; }
	.bap.bap .bap-ptable td { padding: 12px 8px; }
	/* Small screens: the map keeps a readable size inside a window you can drag around. */
	.bap.bap .bap-map__drag { display: block; font-size: 14px; line-height: 1.4; color: var(--bap-muted); margin: 0 0 8px; text-align: center; }
	.bap.bap .bap-map__view { max-width: 100%; overflow: auto; max-height: 460px; border: 1px solid var(--bap-line); border-radius: 8px; -webkit-overflow-scrolling: touch; overscroll-behavior: contain; }
	.bap.bap .bap-map__stage, .bap.bap.bap-sc .bap-map__stage { width: 640px; max-width: none; margin: 0; }
	.bap.bap .bap-pin { width: 26px; height: 26px; font-size: 12px; }
	.bap.bap .bap-band p { font-size: 23px; line-height: 32px; }
	.bap.bap .bap-lb { padding: 60px 10px; }
	.bap.bap .bap-tour__cta strong { font-size: 26px; }
	.bap.bap .bap-tour__play { width: 72px; height: 72px; }
}
