/* ------------------------------------------------------------------
   Copper Bluffs — site styles
   Namespaced .cb-* so nothing collides with the theme stylesheets.
   Colours and type follow the theme tokens already in use:
   contrast #111111, accent-2 #c2a990, accent-3 #d8613c,
   Cardo headings, Inter body.
   ------------------------------------------------------------------ */
:root {
	--cb-accent: #a8512b;
	--cb-copper: var(--wp--preset--color--accent-3, #d8613c);
	--cb-sand: var(--wp--preset--color--accent-2, #c2a990);
	--cb-ink: var(--wp--preset--color--contrast, #111111);
	--cb-muted: var(--wp--preset--color--contrast-2, #636363);
	--cb-line: #e3ded6;
	--cb-surface: var(--wp--preset--color--base, #f9f9f9);
	--cb-tint: #f2eee7;
	--cb-dark: #1a1613;
	--cb-head: var(--wp--preset--font-family--heading, Cardo), Georgia, serif;
	--cb-body: var(--wp--preset--font-family--body, "Inter"), sans-serif; }
/* The donor paints headings h1–h6 and every button with its own brand colour,
   --wp--preset--color--custom-kleur-1 (#314c67, a slate blue). Rather than
   fight those rules we re-point the variable: the donor's own CSS then paints
   Copper Bluffs copper, and no donor rule is edited. */
:root {
	--wp--preset--color--custom-kleur-1: #8c4a2f; }
/* Outline buttons sit on dark cover images, where a currentColor border
   disappears. */
.wp-block-cover .wp-block-button.is-style-outline > .wp-block-button__link {
	color: #fff;
	border-color: rgba(255, 255, 255, .75);
	border-width: 1px; }
.wp-block-cover .wp-block-button.is-style-outline > .wp-block-button__link:hover {
	background-color: #fff;
	border-color: #fff;
	color: var(--cb-ink); }
/* and inside the dark section the same applies */
.has-contrast-background-color .wp-block-button.is-style-outline > .wp-block-button__link {
	color: #fff;
	border-color: rgba(255, 255, 255, .6);
	border-width: 1px; }
.has-contrast-background-color .wp-block-button.is-style-outline > .wp-block-button__link:hover {
	background-color: #fff;
	color: var(--cb-ink); }
/* nothing on this site is meant to scroll sideways */
html, body { overflow-x: hidden; max-width: 100%; }
.wp-site-blocks { overflow-x: clip; }
/* ---------- top bar ---------- */
.cb-topbar { background: var(--cb-dark); color: #efe9e1; }
.cb-topbar__inner {
	max-width: 1280px; margin: 0 auto; padding: 9px 20px;
	display: flex; gap: 16px; align-items: center; justify-content: space-between; flex-wrap: wrap; }
.cb-topbar p { margin: 0; }
.cb-topbar__contact { font-family: var(--cb-body); font-size: 12.5px; letter-spacing: .2px; }
.cb-topbar__contact a { color: #efe9e1; text-decoration: none; }
.cb-topbar__contact a:hover { color: var(--cb-copper); }
.cb-topbar__contact .cb-sep { opacity: .4; margin: 0 5px; }
.cb-topbar__badge {
	font-family: var(--cb-body); font-size: 10.5px; font-weight: 600;
	letter-spacing: 1.4px; text-transform: uppercase;
	border: 1px solid rgba(255,255,255,.3); padding: 4px 11px; white-space: nowrap; }
@media (max-width: 860px) {
	.cb-topbar__inner { justify-content: center; text-align: center; padding: 10px 16px; }
	.cb-topbar__contact { font-size: 11.5px; line-height: 1.9; }
}
/* ---------- text logo ---------- */
/* the theme sets .wp-block-site-logo a{line-height:0} — beat it on specificity
   or the two logo lines stack on top of each other */
.wp-block-site-logo a.cb-logo,
.cb-logo { display: block; text-decoration: none; line-height: 1.15; }
.cb-logo__mark {
	display: block; font-family: var(--cb-head); font-weight: 700;
	font-size: 30px; letter-spacing: 1px; color: var(--cb-ink); }
.cb-logo__sub {
	display: block; font-family: var(--cb-body); font-weight: 500;
	font-size: 9.5px; letter-spacing: 2.6px; text-transform: uppercase;
	color: var(--cb-accent); margin-top: 4px; }
.cb-logo:hover .cb-logo__mark { color: var(--cb-accent); }
.cb-logo--footer .cb-logo__mark { font-size: 26px; }
@media (max-width: 767px) {
	.cb-logo__mark { font-size: 22px; }
	.cb-logo__sub { font-size: 8.5px; letter-spacing: 2px; }
}
/* ---------- header nav ---------- */
.wp-block-navigation .wp-block-navigation-item__content {
	font-family: var(--cb-body); font-size: 14px; font-weight: 500; letter-spacing: .3px; }
header .wp-block-navigation__container > .wp-block-navigation-item > a { padding: 6px 0; }
header .wp-block-navigation-item.current-menu-item > a { color: var(--cb-accent); text-decoration: underline; text-underline-offset: 6px; }
header .wp-block-button__link {
	background: var(--cb-accent); color: #fff; border-radius: 2px;
	font-family: var(--cb-body); font-size: 13px; font-weight: 600; letter-spacing: 1px;
	text-transform: uppercase; padding: 12px 22px; }
header .wp-block-button__link:hover { background: var(--cb-dark); color: #fff; }
/* mobile overlay — driven by cb.js, styles mirror the theme */
.wp-block-navigation__responsive-container-open,
.wp-block-navigation__responsive-container-close { background: none; border: 0; padding: 4px; cursor: pointer; color: var(--cb-ink); }
@media (min-width: 900px) {
	.wp-block-navigation__responsive-container-open,
	.wp-block-navigation__responsive-container-open:not(.always-shown) { display: none; }
}
@media (max-width: 899px) {
	/* core ships .responsive-container:not(.hidden-by-default):not(.is-menu-open){display:block}
	   — match its specificity or the desktop menu stays in flow and overflows the viewport */
	.wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open),
	.wp-block-navigation__responsive-container:not(.is-menu-open) { display: none; }
	.wp-block-navigation__responsive-container-open:not(.always-shown) { display: flex; }
	.wp-block-navigation__responsive-container.is-menu-open {
		position: fixed; inset: 0; z-index: 99500; background: var(--cb-surface);
		display: flex; overflow: auto; padding: 24px; }
	.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-dialog { width: 100%; padding-top: 40px; }
	.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close { position: absolute; top: 20px; right: 20px; }
	.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { display: flex; flex-direction: column; gap: 4px; list-style: none; margin: 0; padding: 0; }
	.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content { font-size: 22px; font-family: var(--cb-head); }
	.wp-block-navigation__responsive-container.is-menu-open .wp-block-buttons { margin-top: 22px; }
}
/* ---------- shared blocks ---------- */
/* ---------- hero ---------- */
/* ---------- buttons ---------- */
.cb-btn {
	display: inline-block; font-family: var(--cb-body); font-weight: 600;
	font-size: 12.5px; letter-spacing: 1.4px; text-transform: uppercase;
	padding: 14px 28px; border: 1px solid var(--cb-accent); border-radius: 2px;
	background: var(--cb-accent); color: #fff; cursor: pointer; text-decoration: none;
	transition: background .2s ease, color .2s ease, border-color .2s ease; }
.cb-btn:hover { background: #8c4223; border-color: #8c4223; color: #fff; }
.cb-btn--solid { background: var(--cb-accent); border-color: var(--cb-accent); color: #fff; }
.cb-btn--ghost { background: transparent; border-color: rgba(255,255,255,.7); color: #fff; }
.cb-btn--ghost:hover { background: #fff; border-color: #fff; color: var(--cb-ink); }
.cb-btn--link { background: transparent; border-color: transparent; color: inherit; text-decoration: underline; padding: 14px 12px; }
.cb-btn--link:hover { background: transparent; border-color: transparent; color: var(--cb-copper); }
/* ---------- card grids ---------- */
/* ---------- alternating rows ---------- */
/* ---------- room rows ---------- */
/* ---------- statistics ---------- */
/* ---------- info lists ---------- */
/* ---------- notice panel ---------- */
/* ---------- form ---------- */
.cb-form { background: #fff; border: 1px solid var(--cb-line); padding: 36px; }
.cb-field { margin-bottom: 20px; }
.cb-field label { display: block; font-family: var(--cb-body); font-size: 11px; font-weight: 600; letter-spacing: 1.6px; text-transform: uppercase; margin-bottom: 8px; }
.cb-field input[type=text], .cb-field input[type=email], .cb-field input[type=tel],
.cb-field input[type=date], .cb-field input[type=number], .cb-field select, .cb-field textarea {
	width: 100%; padding: 12px 14px; border: 1px solid #cfc7bb; background: #fff;
	font-family: var(--cb-body); font-size: 14.5px; color: var(--cb-ink); border-radius: 2px; }
.cb-field textarea { min-height: 130px; resize: vertical; }
.cb-field input:focus, .cb-field select:focus, .cb-field textarea:focus { outline: 2px solid var(--cb-accent); outline-offset: 1px; border-color: var(--cb-accent); }
.cb-form__row { display: grid; grid-template-columns: repeat(2, 1fr); gap: 0 20px; }
@media (max-width: 700px) {
	.cb-form__row { grid-template-columns: 1fr; }
	.cb-form { padding: 24px; }
}
.cb-check { display: flex; gap: 10px; align-items: flex-start; margin-bottom: 14px; font-size: 13.5px; line-height: 1.7; }
.cb-check input { margin-top: 4px; flex: 0 0 auto; }
.cb-req { color: var(--cb-accent); }
.cb-error { display: none; color: var(--cb-accent); font-family: var(--cb-body); font-size: 11.5px; letter-spacing: .4px; margin-top: 6px; }
.cb-field.is-invalid .cb-error, .cb-check.is-invalid .cb-error { display: block; }
.cb-field.is-invalid input, .cb-field.is-invalid select, .cb-field.is-invalid textarea { border-color: var(--cb-accent); }
.cb-form__note { font-size: 12.5px; color: var(--cb-muted); margin-top: 16px; }
.cb-form__done { display: none; border-left: 3px solid #38683f; background: #f1f6f1; padding: 20px 24px; margin-bottom: 22px; }
.cb-form__done.is-visible { display: block; }
/* honeypot: off-screen for bots, invisible and unfocusable for everyone else */
.cb-honey { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
/* ---------- contact panel ---------- */
.cb-map { width: 100%; height: 360px; border: 0; display: block; }
/* ---------- legal pages ---------- */
/* ---------- footer ---------- */
.cb-footer { background: var(--cb-surface); border-top: 1px solid var(--cb-line); }
.cb-footer .cb-logo__mark { color: var(--cb-ink); }
.cb-footer h2 { margin-top: 0; }
.cb-footer__blurb { font-size: 14px; line-height: 1.8; color: var(--cb-muted); margin: 14px 0 0; font-family: var(--cb-body); }
.cb-footer__blurb a { color: var(--cb-accent); }
.cb-footer .wp-block-navigation__container { list-style: none; margin: 14px 0 0; padding: 0; }
.cb-footer .wp-block-navigation-item { margin-bottom: 9px; }
.cb-footer .wp-block-navigation-item__content { font-size: 14px; text-decoration: none; color: var(--cb-muted); }
.cb-footer .wp-block-navigation-item__content:hover { color: var(--cb-accent); text-decoration: underline; }
.cb-footer-bottom { background: var(--cb-dark); color: #b9b0a4; padding: 26px 0; }
.cb-footer-bottom__inner { max-width: 1180px; margin: 0 auto; padding: 0 24px; }
.cb-footer-bottom p { margin: 0 0 10px; line-height: 1.8; font-size: 12.5px; font-family: var(--cb-body); }
.cb-footer-bottom .cb-legalline { margin-bottom: 0; opacity: .8; }
.cb-footer-bottom a { color: var(--cb-sand); text-decoration: underline; }
.cb-scroll-top {
	position: fixed; right: 22px; bottom: 22px; z-index: 9000;
	width: 42px; height: 42px; display: none; align-items: center; justify-content: center;
	background: var(--cb-dark); color: #fff; border-radius: 50%; text-decoration: none; }
.cb-scroll-top.is-visible { display: flex; }
.cb-scroll-top:hover { background: var(--cb-accent); }
.cb-scroll-top svg { fill: currentColor; }
/* ---------- age gate ---------- */
.cb-agegate { position: fixed; inset: 0; z-index: 100000; background: rgba(12,9,7,.95); display: flex; align-items: center; justify-content: center; padding: 20px; }
.cb-agegate[hidden] { display: none; }
.cb-agegate__panel { background: #fff; max-width: 570px; width: 100%; padding: 46px 42px; text-align: center; font-family: var(--cb-body); }
.cb-agegate__brand { font-family: var(--cb-head); font-weight: 700; font-size: 22px; letter-spacing: .5px; color: var(--cb-accent); margin-bottom: 22px; }
.cb-agegate h2 { font-family: var(--cb-head); font-weight: 400; font-size: 27px; margin: 0 0 16px; line-height: 1.25; }
.cb-agegate p { line-height: 1.8; margin: 0 0 24px; font-size: 15px; }
.cb-agegate__actions { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; margin-bottom: 22px; }
.cb-agegate__actions .cb-btn--ghost { border-color: #c8c0b5; color: var(--cb-ink); }
.cb-agegate__actions .cb-btn--ghost:hover { background: var(--cb-ink); border-color: var(--cb-ink); color: #fff; }
.cb-agegate__note { font-size: 12.5px; color: var(--cb-muted); margin: 0; }
.cb-agegate__denied { position: fixed; inset: 0; background: #0c0907; display: flex; align-items: center; justify-content: center; padding: 20px; }
.cb-agegate__denied[hidden] { display: none; }
@media (max-width: 560px) {
	.cb-agegate__panel { padding: 30px 22px; }
	.cb-agegate h2 { font-size: 22px; }
}
/* ---------- cookie banner ---------- */
.cb-cookie { position: fixed; left: 0; right: 0; bottom: 0; z-index: 99000; background: var(--cb-dark); color: #e9e2d8; padding: 22px 20px; box-shadow: 0 -4px 24px rgba(0,0,0,.32); font-family: var(--cb-body); }
.cb-cookie[hidden] { display: none; }
.cb-cookie__inner { max-width: 1180px; margin: 0 auto; display: flex; gap: 30px; align-items: center; justify-content: space-between; flex-wrap: wrap; }
.cb-cookie__text { flex: 1 1 420px; }
.cb-cookie__text strong { font-size: 11.5px; letter-spacing: 1.6px; text-transform: uppercase; display: block; margin-bottom: 8px; color: #fff; }
.cb-cookie__text p { margin: 0; font-size: 13px; line-height: 1.75; color: #c3b9ab; }
.cb-cookie__text a { color: var(--cb-sand); }
.cb-cookie__actions { display: flex; gap: 10px; flex-wrap: wrap; }
.cb-cookie .cb-btn { padding: 11px 20px; font-size: 11.5px; }
.cb-cookie .cb-btn--ghost { border-color: #6a6055; }
.cb-cookie .cb-btn--link { color: #c3b9ab; }
.cb-cookie__settings { max-width: 1180px; margin: 20px auto 0; padding-top: 18px; border-top: 1px solid #322b25; }
.cb-cookie__settings[hidden] { display: none; }
.cb-cookie__row { display: flex; gap: 10px; align-items: flex-start; margin-bottom: 12px; font-size: 13px; line-height: 1.7; color: #c3b9ab; }
.cb-cookie__row strong { color: #fff; }
