/*
 * One button, one small button, one chip, one page title — sitewide.
 *
 * Each page was built with its own button class, and they drifted: orange
 * buttons came in six heights (38–54px), three font sizes and two typefaces.
 * Rather than rewrite every template, this file gives each of those classes
 * the design system's size, type and corners (system.css .ui-btn / .ui-chip).
 * Colours stay with each page's own stylesheet.
 *
 *   Button        48px tall, Poppins 600 16px, 22px sides
 *   Small button  40px tall, Poppins 600 14.4px, 14px sides (dashboards, tools)
 *   Chip          36px tall, DM Sans 600 14.4px, 14px sides (filters, tabs)
 *
 * Heights come from padding + line-height (1px less padding so bordered and
 * borderless buttons both land on the height) rather than display:flex, so a
 * block, inline or full-width button keeps its own layout.
 *
 * Several page stylesheets size these with !important at up to (0,3,1); the
 * :not(#cul-ui) adds an id's weight so this file wins without load order.
 * A new button should just use .ui-btn instead of being added here.
 */

:is(
	.cul-offer-card__btn, .cul-rv__btn, .cul-hc-offer__claim, .cul-ev__btn-o,
	.cul-offerstrip__btn, .cul-post__offer-btn, .cul-claim-card__btn,
	.cul-offer-claim-btn, .cul-fx-btn, .cul-m5-card__go, .cul-findus__dirs,
	.cul-set__btn, .cul-pv__btn, .cul-pv__seeall, .cul-bv__btn, .cul-ev__btn-g
):not(#cul-ui) {
	box-sizing: border-box !important;
	min-height: var(--ui-control, 48px) !important;
	padding: 13px 22px !important;
	font-family: var(--ui-font-display) !important;
	font-size: 1rem !important;
	font-weight: 600 !important;
	line-height: 20px !important;
	letter-spacing: 0 !important;
	text-transform: none !important;
	border-radius: var(--ui-radius, 5px) !important;
}

:is(
	.cul-mo__btn, .cul-tb__btn, .cul-sales-btn, .cul-an__go, .cul-evr-act
):not(#cul-ui) {
	box-sizing: border-box !important;
	min-height: 40px !important;
	padding: 9px 14px !important;
	font-family: var(--ui-font-display) !important;
	font-size: .9rem !important;
	font-weight: 600 !important;
	line-height: 20px !important;
	letter-spacing: 0 !important;
	text-transform: none !important;
	border-radius: var(--ui-radius, 5px) !important;
}

:is(
	.cul-offers__chip, .cul-bl__chip, .cul-sr__tab, .cul-ev__pill,
	.cul-evr-filter, .cul-cl__tab, .cul-amb-cities__chip
):not(#cul-ui) {
	box-sizing: border-box !important;
	min-height: 36px !important;
	padding: 7px 14px !important;
	font-family: var(--ui-font) !important;
	font-size: .9rem !important;
	font-weight: 600 !important;
	line-height: 20px !important;
	letter-spacing: 0 !important;
	border-radius: var(--ui-radius, 5px) !important;
}

/*
 * Page titles. Most pages already use the system's title (.ui-h1: Poppins
 * 600, 41.6px on desktop); these few drifted (38–42px, weight 500, near-black).
 * Business names and photo-hero titles keep their larger hero size.
 */
:is(
	.cul-page__body > h1, .cul-sup__h1, .cul-yd > h1, .cul-page__title,
	.cul-ev__title, .cul-post__title
):not(#cul-ui) {
	font-family: var(--ui-font-display) !important;
	font-size: var(--ui-h1) !important;
	font-weight: 600 !important;
	line-height: 1.15 !important;
	letter-spacing: -.015em !important;
	color: var(--ui-navy) !important;
}

/* ════════════════════════════════════════════════════════════════════
   Panel fixes C (Nov 14): one orange, 5px corners, 44px taps, readable
   small text. Colour rules live here (not in each page file) because the
   same few mistakes were spread over many templates.
   ════════════════════════════════════════════════════════════════════ */

/* Primary actions that were navy are dark orange: Tell Derek, Subscribe,
   Contact Derek, Claim your page, Send. Call stays navy (owner's choice). */
:is(.rx-btn--ink, .hw-btn--ink, .cul-newsletter-signup__btn, .cul-cta__ask button,
	.cul-m5-card__go, .hm-search button, .bx-find button, .cul-bv__find button):not(#cul-ui) {
	background: var(--ui-orange-dark, #BC5A0E) !important;
	color: #fff !important;
	border-color: transparent !important;
	border-radius: var(--ui-radius, 5px) !important;
}
:is(.rx-btn--ink, .hw-btn--ink, .cul-newsletter-signup__btn, .cul-cta__ask button,
	.cul-m5-card__go, .hm-search button, .bx-find button, .cul-bv__find button):is(:hover, :focus-visible):not(#cul-ui) {
	background: var(--ui-orange-hover, #9F4B0B) !important;
	color: #fff !important;
}
/* Every claim button looks the same wherever it is (wording stays the
   owner's own): dark orange, white Poppins 600, 5px, 44px or taller. Claim
   buttons all carry data-cul-claim, so new ones are covered too. */
:is(a, button)[data-cul-claim]:not(#cul-ui),
:is(.cul-ofx-claim, .cul-offer-claim-btn, .cul-post__offer-btn, .cul-ev__offer-go, .cul-offerstrip__btn, .cul-stickybar__claim, .cul-claim-card__btn):not(#cul-ui) {
	background: var(--ui-orange-dark, #BC5A0E) !important;
	color: #fff !important;
	border: 0 !important;
	border-radius: var(--ui-radius, 5px) !important;
	font-family: var(--ui-font-display, Poppins, sans-serif) !important;
	font-weight: 600 !important;
	min-height: 44px !important;
	text-decoration: none !important;
	box-shadow: none !important;
}
:is(a, button)[data-cul-claim]:is(:hover, :focus-visible):not(#cul-ui),
:is(.cul-ofx-claim, .cul-offer-claim-btn, .cul-post__offer-btn, .cul-ev__offer-go, .cul-offerstrip__btn, .cul-stickybar__claim, .cul-claim-card__btn):is(:hover, :focus-visible):not(#cul-ui) {
	background: var(--ui-orange-hover, #9F4B0B) !important;
	color: #fff !important;
}
/* A claimed offer keeps its green "done" state. */
.cul-offer-stickybar--claimed:not(#cul-ui) { background: var(--ui-success, #2D7A4F) !important; }

/* One newsletter box: the stand-alone sign-up reads the same on every page
   (white card, 1px line, navy title, field plus dark orange Subscribe). */
.cul-newsletter-signup:not(#cul-ui) { border-radius: var(--ui-radius, 5px) !important; }
:is(.cul-newsletter-signup__input, .cul-m5-card__form input):not(#cul-ui) {
	min-height: 48px !important;
	border: 1px solid var(--ui-line-strong, #D0DCE8) !important;
	border-radius: var(--ui-radius, 5px) !important;
	background: #fff !important;
}
:is(.cul-newsletter-signup__btn, .cul-m5-card__form .cul-m5-card__go):not(#cul-ui) {
	min-height: 48px !important;
	padding: 0 22px !important;
	font-family: var(--ui-font-display, Poppins, sans-serif) !important;
	font-weight: 600 !important;
}
.cul-newsletter-signup__title:not(#cul-ui) { color: var(--ui-navy) !important; }

/* Joined search bars: the field keeps its left corners, the button its right. */
:is(.hm-search, .bx-find, .cul-bv__find) input:not(#cul-ui) { border-radius: 5px 0 0 5px !important; }
:is(.hm-search, .bx-find, .cul-bv__find) button:not(#cul-ui) { border-radius: 0 5px 5px 0 !important; }
.cul-offer-stickybar:not(#cul-ui) { border-radius: 5px !important; }

/* Close (×) buttons: 44×44. */
:is(.culoc__close, .cul-m5__x, .cul-terms-modal__x, .cul-faq-modal__close, .cul-quote-modal__x,
	.cul-sg__close, .cul-br__side-close, .cul-stickybar__close):not(#cul-ui) {
	min-width: 44px !important;
	min-height: 44px !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
}
.cul-m5-card__no:not(#cul-ui) { min-height: 44px !important; display: inline-flex !important; align-items: center !important; }

/* Text links in lists: footer, legal row, breadcrumbs, event and filter
   actions get a 44px tall tap area from padding, not bigger text. */
:is(.cul-footer__col, .cul-footer__legal) a:not(#cul-ui) {
	display: inline-flex !important;
	align-items: center !important;
	min-height: 44px !important;
}
:is(.cul-footer__col li, .cul-footer__legal li):not(#cul-ui) { margin-top: 0 !important; margin-bottom: 0 !important; }
.cul-sitebar__burger:not(#cul-ui) { min-width: 44px !important; min-height: 44px !important; }
:is(.cul-ev__act, .cul-ev__offer-go, .cul-ev__pill, .hm-ev__cal, .cul-ofx__chip, .cul-ofx-claim, .hm-chip):not(#cul-ui) { min-height: 44px !important; }
:is(.rx-link, .cul-ev__offer-go):not(#cul-ui) { display: inline-flex !important; align-items: center !important; min-height: 44px !important; }
.cul-ev__offer-go:not(#cul-ui) { border-radius: var(--ui-radius, 5px) !important; }
:is(.cul-ps-soc a, .cul-ofx__pick .ui-btn, .cul-ev__catmenu a, .nav-links a.page-numbers, .nav-links a.next, .nav-links a.prev):not(#cul-ui) {
	min-height: 44px !important;
	min-width: 44px !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
}
/* Business name links inside offer cards: a taller hit area without moving
   the text (padding taken back by negative margin). */
.cul-ofx-card__biz a:not(#cul-ui) { display: inline-block; padding: 13px 0; margin: -13px 0; }

/* Faint or small text people need to read: 14px at least, 4.5:1 or better. */
.cul-faq-block__empty:not(#cul-ui) { color: var(--ui-muted, #55657A) !important; }
:is(.cul-ofx-card__meta, .cul-ofx-card__meta span, .cul-ofx-card__pop, .cul-ofx-card__biz, .cul-ofx-card__biz a,
	.cul-newsletter-signup__fine, .cul-related__meta, .cul-card__sub, .cul-ev__count, .cul-ev__act,
	.cul-ev__offer-go, .cul-offerstrip__k, .hm-issue__k, .culoc__smsfine, .culoc__note, .culoc__smswhy,
	.cul-m5-card__fine, .cul-qtags a):not(#cul-ui) {
	font-size: 14px !important;
}
:is(.cul-ofx-card__meta, .cul-ofx-card__meta span, .cul-ofx-card__pop):not(#cul-ui) { color: var(--ui-muted, #55657A) !important; }
