/* =====================================================================
   cbt-astra-child — brand.css
   Matched On Your Bike tokens (see docs/BRAND.md). Overrides Astra's
   global CSS variables so the whole front end inherits the OYB look:
   lime-green #b6e925 accent on near-black #0f0f0f, Oswald / Roboto.
   ===================================================================== */

:root {
	--ast-global-color-0: #b6e925; /* accent / link */
	--ast-global-color-1: #b6e925; /* accent hover base */
	--ast-global-color-2: #ffffff; /* text/headings on dark */
	--ast-global-color-3: #d8d8d8; /* borders */
	--ast-global-color-4: #0f0f0f; /* secondary */
	--ast-global-color-5: #0f0f0f; /* primary text/bg */
	--ast-global-color-6: #080808; /* subtle bg */
	--ast-global-color-7: #0f0f0f; /* alternate bg */
	--ast-global-color-8: rgba(255, 255, 255, 0.75); /* muted */

	--cbt-accent: #b6e925;
	--cbt-accent-hover: #a3d41f;
	--cbt-base: #0f0f0f;
	--cbt-base-subtle: #080808;
	--cbt-surface: #ffffff;
	--cbt-radius: 3px;
}

/* ---- Base canvas: dark with light text ---- */
body {
	background-color: var(--cbt-base);
	color: #ffffff;
	font-family: "Roboto", sans-serif;
}

/* ---- Headings: Oswald, uppercase, bold ---- */
h1, h2, h3, h4, h5, h6,
.site-title,
.entry-title {
	font-family: "Oswald", sans-serif;
	text-transform: uppercase;
	letter-spacing: 0.01em;
	color: #ffffff;
}

/* ---- Links / accents ---- */
a { color: var(--cbt-accent); }
a:hover, a:focus { color: var(--cbt-accent-hover); }

/* ---- Buttons: lime on black, small radius (matches OYB) ---- */
.wp-block-button__link,
.ast-button,
button.menu-toggle,
.main-header-bar .button,
input[type="submit"] {
	background-color: var(--cbt-accent);
	color: var(--cbt-base);
	border-radius: var(--cbt-radius);
	font-family: "Oswald", sans-serif;
	text-transform: uppercase;
	font-weight: 700;
	letter-spacing: 0.02em;
}
.wp-block-button__link:hover,
.ast-button:hover,
input[type="submit"]:hover {
	background-color: var(--cbt-accent-hover);
	color: var(--cbt-base);
}

/* Outline button variant for dark sections */
.is-style-outline .wp-block-button__link {
	background: transparent;
	color: var(--cbt-accent);
	border: 2px solid var(--cbt-accent);
}

/* Guarantee the buttons row lays out horizontally and wraps (no overlap) */
.wp-block-buttons {
	display: flex;
	flex-wrap: wrap;
	gap: 0.8rem;
	align-items: center;
}
.wp-block-buttons > .wp-block-button {
	margin: 0;
}
.wp-block-button__link {
	display: inline-block;
	padding: 0.7em 1.5em;
	line-height: 1.2;
}

/* ---- Logo sizing (wordmark already contains the brand name) ---- */
.site-header .custom-logo,
.custom-logo-link img,
.site-logo-img .custom-logo {
	max-width: 200px;
	width: 100%;
	height: auto;
}

/* ---- Header / footer: dark ---- */
.site-header,
.ast-primary-header-bar,
.main-header-bar,
.site-footer,
.ast-small-footer,
footer.site-footer {
	background-color: var(--cbt-base) !important;
}
.main-header-bar a,
.site-footer a { color: #ffffff; }
.main-header-bar a:hover { color: var(--cbt-accent); }

/* =====================================================================
   Mobile: prevent horizontal overflow (flex min-width + media guards)
   (No overflow-x:hidden on .site — it can clip Astra's mobile menu.)
   ===================================================================== */
.ast-container,
.entry-content,
.wp-block-group,
.wp-block-buttons,
.wp-block-columns,
.wp-block-column { min-width: 0; max-width: 100%; }
img, iframe, video, svg { max-width: 100%; height: auto; }
.wp-block-table { display: block; overflow-x: auto; -webkit-overflow-scrolling: touch; }
.entry-content, .wp-block-heading, .entry-content p { overflow-wrap: break-word; }

/* =====================================================================
   Sticky mobile CTA bar (Call + Book)
   ===================================================================== */
.cbt-sticky-bar {
	position: fixed;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 999;
	display: none;
	grid-template-columns: 1fr 1.4fr;
	gap: 1px;
	background: #000;
	box-shadow: 0 -2px 12px rgba(0, 0, 0, 0.4);
}
.cbt-sticky-bar a {
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 14px 8px;
	font-family: "Oswald", sans-serif;
	text-transform: uppercase;
	font-weight: 700;
	letter-spacing: 0.02em;
	text-decoration: none;
}
.cbt-sticky-bar__call { background: var(--cbt-base); color: #fff; }
.cbt-sticky-bar__book { background: var(--cbt-accent); color: var(--cbt-base); }

@media (max-width: 768px) {
	.cbt-sticky-bar { display: grid; }
	body { padding-bottom: 56px; } /* avoid overlap with content/footer */
}

/* =====================================================================
   Contact form
   ===================================================================== */
.cbt-form { max-width: 560px; }
.cbt-form__row { margin: 0 0 1rem; }
.cbt-form label { display: block; margin-bottom: 0.35rem; font-weight: 500; }
.cbt-form input[type="text"],
.cbt-form input[type="email"],
.cbt-form input[type="tel"],
.cbt-form textarea {
	width: 100%;
	padding: 0.7rem 0.8rem;
	background: #1a1a1a;
	border: 1px solid #444;
	border-radius: var(--cbt-radius);
	color: #fff;
	font: inherit;
}
.cbt-form input:focus,
.cbt-form textarea:focus {
	outline: 2px solid var(--cbt-accent);
	outline-offset: 1px;
	border-color: var(--cbt-accent);
}
.cbt-form__row--check label {
	display: flex;
	gap: 0.5rem;
	align-items: flex-start;
	font-weight: 400;
}
.cbt-form__row--check input { margin-top: 0.2rem; }
.cbt-form button { border: 0; cursor: pointer; }
.cbt-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.cbt-form__notice {
	padding: 0.8rem 1rem;
	border-radius: var(--cbt-radius);
	margin-bottom: 1rem;
}
.cbt-form__notice--ok  { background: rgba(182, 233, 37, 0.15); border: 1px solid var(--cbt-accent); }
.cbt-form__notice--err { background: rgba(255, 80, 80, 0.12); border: 1px solid #ff5050; }

/* =====================================================================
   Cookie consent banner
   ===================================================================== */
.cbt-cookie {
	position: fixed;
	left: 16px;
	right: 16px;
	bottom: 16px;
	z-index: 1000;
	max-width: 640px;
	margin: 0 auto;
	background: #1a1a1a;
	border: 1px solid var(--cbt-accent);
	border-radius: 6px;
	padding: 16px 18px;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px;
	box-shadow: 0 6px 24px rgba(0, 0, 0, 0.5);
}
.cbt-cookie__text { margin: 0; flex: 1 1 280px; font-size: 0.9rem; color: #fff; }
.cbt-cookie__text a { color: var(--cbt-accent); }
.cbt-cookie__actions { display: flex; gap: 8px; }
.cbt-cookie__btn {
	font-family: "Oswald", sans-serif;
	text-transform: uppercase;
	font-weight: 700;
	border: 0;
	border-radius: var(--cbt-radius);
	padding: 9px 16px;
	cursor: pointer;
}
.cbt-cookie__btn--accept { background: var(--cbt-accent); color: var(--cbt-base); }
.cbt-cookie__btn--decline { background: transparent; color: #fff; border: 1px solid #555; }

@media (max-width: 768px) {
	.cbt-cookie { bottom: 64px; } /* sit above the sticky bar */
}

/* Fix: respect the [hidden] attribute so the consent banner can actually close */
.cbt-cookie[hidden]{display:none !important}

/* Booking embed: restore intended height (the global iframe{height:auto} reset collapses it to 150px) */
.cbt-booking iframe { height: 613px; }
