/*
Version: 1.18.6
Version date: 30-09-2026

Asty Booking — the classic look (setting `front.classic_look`, on by default).

## Why this sheet exists

Until 1.18.4 our markup never had a base look of its own. Text size, weight,
colour, heading sizes and every form control came from the theme — Villagio —
and `front.css` only added layout on top. Panos moved the site to Avada
(30-09-2026) and every one of those inherited values changed at once: Figtree
18px weight 300, 48–60px headings Capitalised Like This, underlined links,
native selects, a grey default «Search» button.

This sheet restates what Villagio gave us, **inside our own wrappers only**, so
the cards, the search forms and the property page look the same under any
theme. The theme's header, footer and pages are not touched.

Measured, not guessed: the Customizer's theme preview renders Villagio on the
same database without activating it, and `docs/migration/style-probe.js`
compared the computed style of every `astyb-*` / `mphb*` element under both.

★ The font family is NOT restated — Panos chose to keep the theme's font.

## ⚠⚠ The specificity law of this file

Every rule is Villagio's own rule with `:where(<our wrappers>)` in front —
**zero added specificity**, so each one weighs exactly what Villagio's did.
Consequences, all intended:

- `front.css`, `property.css` and the Layout screen's CSS override these rules
  exactly as they overrode Villagio's (they print after this sheet).
- The theme's element-level rules (`select`, `input[type="date"]`…) tie with
  these and lose on source order: our sheets print at `PHP_INT_MAX`, after
  Avada's dynamic CSS ({@see Front::ASSET_PRIORITY}).

Where the theme out-weighs Villagio's rule, each exception says so where it
stands:
- headings — Avada's `.post-content hN` (0,1,1): sizes here are `:is()`,
  and our own per-heading rules carry a doubled class;
- link underline and colour — Avada's ID-weight and `body a` rules, answered
  through Avada's own custom properties, never `!important`;
- `button.button` — Avada's (0,1,1);
- the search-result card title's margin — see its block.
Paragraph margins lost to Avada's `.post-content p` (0,1,1) in exactly one
place, `.astyb-results__count`, which front.css now doubles.

The property page's `<main id="main">` clash with Avada's `#main` is not a
matter of look, so it lives in `property.css`, on whether this sheet is on or
not.

Measured on 30-09-2026 after the last change: on /home/, /search-results/ and
a short-term property page, every computed value inside our markup equals
Villagio's except the font family (by choice), hidden inputs, the photo link's
invisible colour, and the page's own width (Avada's site width).
*/

/* ---------------------------------------------------------------------------
   The wrappers — Villagio's `body`
   ------------------------------------------------------------------------ */

:where(.astyb-search, .astyb-results, .astyb-filters, .astyb-property, .astyb-request, .astyb-cta, .astyb-checkout, .astyb-category) {
	color: #333;
	font-size: 0.875rem;
	font-weight: 400;
	line-height: 1.4;
	letter-spacing: normal;

	/* ⚠ Avada underlines links with
	   `.awb-link-decoration #wrapper a:not(…) { text-decoration-line: var(--awb-link_decoration_line) }`
	   — an ID selector no class rule can outweigh. Its own custom property,
	   set here, makes that rule say «none» inside our markup. Inert under any
	   other theme. */
	--awb-link_decoration_line: none;
	--awb-link_decoration_line_hover: none;

	/* ⚠ And its link colour is `body a { color: var(--link_color) }` (0,0,2),
	   which out-weighs Villagio's `a` — `currentColor` makes it «inherit». */
	--link_color: currentColor;
}

@media screen and (min-width: 48em) {
	:where(.astyb-search, .astyb-results, .astyb-filters, .astyb-property, .astyb-request, .astyb-cta, .astyb-checkout, .astyb-category) {
		font-size: 1rem;
	}

	/* A wrapper inside another (results in the filter block, the price block
	   on the property page) must not restart the size — only the outermost
	   one sets it. */
	:where(.astyb-search, .astyb-results, .astyb-filters, .astyb-property, .astyb-request, .astyb-cta, .astyb-checkout, .astyb-category) :where(.astyb-search, .astyb-results, .astyb-filters, .astyb-request, .astyb-cta) {
		font-size: inherit;
	}
}

:where(.astyb-search, .astyb-results, .astyb-filters, .astyb-property, .astyb-request, .astyb-cta, .astyb-checkout, .astyb-category) :where(.astyb-search, .astyb-results, .astyb-filters, .astyb-request, .astyb-cta) {
	font-size: inherit;
}

/* ---------------------------------------------------------------------------
   Text
   ------------------------------------------------------------------------ */

:where(.astyb-search, .astyb-results, .astyb-filters, .astyb-property, .astyb-request, .astyb-cta, .astyb-checkout, .astyb-category) p {
	margin: 0 0 1.5em;
}

@media screen and (min-width: 48em) {
	:where(.astyb-search, .astyb-results, .astyb-filters, .astyb-property, .astyb-request, .astyb-cta, .astyb-checkout, .astyb-category) p {
		margin: 0 0 1.45em;
	}
}

:where(.astyb-search, .astyb-results, .astyb-filters, .astyb-property, .astyb-request, .astyb-cta, .astyb-checkout, .astyb-category) small {
	font-size: 0.75rem;
	line-height: 1.4;
	color: #666;
}

:where(.astyb-search, .astyb-results, .astyb-filters, .astyb-property, .astyb-request, .astyb-cta, .astyb-checkout, .astyb-category) form {
	margin: 0 0 1.5em;
}

:where(.astyb-search, .astyb-results, .astyb-filters, .astyb-property, .astyb-request, .astyb-cta, .astyb-checkout, .astyb-category) form > :last-child {
	margin-bottom: 0;
}

:where(.astyb-search, .astyb-results, .astyb-filters, .astyb-property, .astyb-request, .astyb-cta, .astyb-checkout, .astyb-category) summary {
	display: block;
}

:where(.astyb-search, .astyb-results, .astyb-filters, .astyb-property, .astyb-request, .astyb-cta, .astyb-checkout, .astyb-category) dt {
	font-weight: 600;
}

:where(.astyb-search, .astyb-results, .astyb-filters, .astyb-property, .astyb-request, .astyb-cta, .astyb-checkout, .astyb-category) :is(b, strong) {
	font-weight: 700;
}

:where(.astyb-search, .astyb-results, .astyb-filters, .astyb-property, .astyb-request, .astyb-cta, .astyb-checkout, .astyb-category) a {
	color: inherit;
	text-decoration: none;
}

:where(.astyb-search, .astyb-results, .astyb-filters, .astyb-property, .astyb-request, .astyb-cta, .astyb-checkout, .astyb-category) a:hover {
	color: #01bea0;
}

/* Villagio underlined links in page content (`.entry-content a`, green, no
   underline on hover). Of ours, only the page numbers showed it — the card
   links set their own. Restated for them alone; the custom property carries it
   past Avada's ID-weight link rule (see the wrappers above). */
:where(.astyb-results, .astyb-filters) a.astyb-pagination__page {
	text-decoration: underline;
	--awb-link_decoration_line: underline;
}

:where(.astyb-results, .astyb-filters) a.astyb-pagination__page:hover {
	text-decoration: none;
	--awb-link_decoration_line_hover: none;
}

/* ---------------------------------------------------------------------------
   Headings

   ⚠ The one block that is NOT at Villagio's weight. Avada sizes headings with
   `.post-content h3 { font-size: var(--h3_typography-font-size); text-transform: … }`
   (0,1,1), which a bare `h3` cannot beat — so these are `:is()`, (0,1,1),
   and win on source order. Our own per-heading sizes (card title, offer
   label…) are written with a doubled class in `front.css` / `property.css`
   (0,2,0) so they still win over these, as they did over Villagio's.
   ------------------------------------------------------------------------ */

:is(.astyb-search, .astyb-results, .astyb-filters, .astyb-property, .astyb-request, .astyb-cta, .astyb-checkout, .astyb-category) :is(h1, h2, h3, h4, h5, h6) {
	font-family: inherit;
	font-weight: 700;
	line-height: 1.4;
	letter-spacing: normal;
	text-transform: none;
	color: inherit;
}

/* Villagio's `margin: 0`, at ITS weight (0,0,1) so every margin our own sheets
   give a heading still wins — and Avada's bare `h2 { margin-bottom: var(…) }`
   loses on source order. */
:where(.astyb-search, .astyb-results, .astyb-filters, .astyb-property, .astyb-request, .astyb-cta, .astyb-checkout, .astyb-category) :is(h1, h2, h3, h4, h5, h6) {
	margin: 0;
}

:is(.astyb-search, .astyb-results, .astyb-filters, .astyb-property, .astyb-request, .astyb-cta, .astyb-checkout, .astyb-category) h1 { font-size: 2rem; }
:is(.astyb-search, .astyb-results, .astyb-filters, .astyb-property, .astyb-request, .astyb-cta, .astyb-checkout, .astyb-category) h2 { font-size: 1.75rem; }
:is(.astyb-search, .astyb-results, .astyb-filters, .astyb-property, .astyb-request, .astyb-cta, .astyb-checkout, .astyb-category) h3 { font-size: 1.5rem; }
:is(.astyb-search, .astyb-results, .astyb-filters, .astyb-property, .astyb-request, .astyb-cta, .astyb-checkout, .astyb-category) h4 { font-size: 1.375rem; }
:is(.astyb-search, .astyb-results, .astyb-filters, .astyb-property, .astyb-request, .astyb-cta, .astyb-checkout, .astyb-category) h5 { font-size: 1.25rem; }
:is(.astyb-search, .astyb-results, .astyb-filters, .astyb-property, .astyb-request, .astyb-cta, .astyb-checkout, .astyb-category) h6 { font-size: 1rem; }

@media screen and (min-width: 48em) {
	:is(.astyb-search, .astyb-results, .astyb-filters, .astyb-property, .astyb-request, .astyb-cta, .astyb-checkout, .astyb-category) h1 { font-size: 2.125rem; }
	:is(.astyb-search, .astyb-results, .astyb-filters, .astyb-property, .astyb-request, .astyb-cta, .astyb-checkout, .astyb-category) h2 { font-size: 1.875rem; }
	:is(.astyb-search, .astyb-results, .astyb-filters, .astyb-property, .astyb-request, .astyb-cta, .astyb-checkout, .astyb-category) h3 { font-size: 1.625rem; }
	:is(.astyb-search, .astyb-results, .astyb-filters, .astyb-property, .astyb-request, .astyb-cta, .astyb-checkout, .astyb-category) h4 { font-size: 1.5rem; }
	:is(.astyb-search, .astyb-results, .astyb-filters, .astyb-property, .astyb-request, .astyb-cta, .astyb-checkout, .astyb-category) h5 { font-size: 1.375rem; }
	:is(.astyb-search, .astyb-results, .astyb-filters, .astyb-property, .astyb-request, .astyb-cta, .astyb-checkout, .astyb-category) h6 { font-size: 1.125rem; }
}

/* ---------------------------------------------------------------------------
   Form controls — Villagio's «Forms» section
   ------------------------------------------------------------------------ */

:where(.astyb-search, .astyb-results, .astyb-filters, .astyb-property, .astyb-request, .astyb-cta, .astyb-checkout, .astyb-category) label {
	display: inline-block;
	max-width: 100%;
	margin-bottom: 0.5625em;
	color: #666;
}

:where(.astyb-search, .astyb-results, .astyb-filters, .astyb-property, .astyb-request, .astyb-cta, .astyb-checkout, .astyb-category) :is(input[type="radio"], input[type="checkbox"]) {
	display: inline-block;
	margin: 0 0.25em 0.25em 0;
	font-size: 1rem;
	line-height: normal;
	vertical-align: middle;
}

:where(.astyb-search, .astyb-results, .astyb-filters, .astyb-property, .astyb-request, .astyb-cta, .astyb-checkout, .astyb-category) select,
:where(.astyb-search, .astyb-results, .astyb-filters, .astyb-property, .astyb-request, .astyb-cta, .astyb-checkout, .astyb-category) input[type="text"],
:where(.astyb-search, .astyb-results, .astyb-filters, .astyb-property, .astyb-request, .astyb-cta, .astyb-checkout, .astyb-category) input[type="email"],
:where(.astyb-search, .astyb-results, .astyb-filters, .astyb-property, .astyb-request, .astyb-cta, .astyb-checkout, .astyb-category) input[type="url"],
:where(.astyb-search, .astyb-results, .astyb-filters, .astyb-property, .astyb-request, .astyb-cta, .astyb-checkout, .astyb-category) input[type="password"],
:where(.astyb-search, .astyb-results, .astyb-filters, .astyb-property, .astyb-request, .astyb-cta, .astyb-checkout, .astyb-category) input[type="search"],
:where(.astyb-search, .astyb-results, .astyb-filters, .astyb-property, .astyb-request, .astyb-cta, .astyb-checkout, .astyb-category) input[type="number"],
:where(.astyb-search, .astyb-results, .astyb-filters, .astyb-property, .astyb-request, .astyb-cta, .astyb-checkout, .astyb-category) input[type="tel"],
:where(.astyb-search, .astyb-results, .astyb-filters, .astyb-property, .astyb-request, .astyb-cta, .astyb-checkout, .astyb-category) input[type="date"],
:where(.astyb-search, .astyb-results, .astyb-filters, .astyb-property, .astyb-request, .astyb-cta, .astyb-checkout, .astyb-category) input[type="month"],
:where(.astyb-search, .astyb-results, .astyb-filters, .astyb-property, .astyb-request, .astyb-cta, .astyb-checkout, .astyb-category) textarea {
	display: block;
	width: 100%;
	max-width: 100%;
	height: 3.125rem;
	padding: 0.75em 1.25em 0.875em;
	font-size: 1rem;
	font-weight: 400;
	line-height: 1.4;
	color: inherit;
	background-color: #fff;
	background-image: none;
	border: 1px solid #e0e1e5;
	border-radius: 0;
	box-shadow: none;
	transition: border-color ease-in-out 0.15s, color ease-in-out 0.15s;
}

/* ⚠ Avada sets `appearance: none` on date and number fields, which removes
   the browser's calendar button and the number arrows; Villagio left them. */
:where(.astyb-search, .astyb-results, .astyb-filters, .astyb-property, .astyb-request, .astyb-cta, .astyb-checkout, .astyb-category) input[type="date"],
:where(.astyb-search, .astyb-results, .astyb-filters, .astyb-property, .astyb-request, .astyb-cta, .astyb-checkout, .astyb-category) input[type="number"] {
	-webkit-appearance: auto;
	appearance: auto;
}

:where(.astyb-search, .astyb-results, .astyb-filters, .astyb-property, .astyb-request, .astyb-cta, .astyb-checkout, .astyb-category) textarea {
	height: auto;
}

:where(.astyb-search, .astyb-results, .astyb-filters, .astyb-property, .astyb-request, .astyb-cta, .astyb-checkout, .astyb-category) :is(select, input, textarea):focus {
	outline: none;
	border: 1px solid #666;
	box-shadow: none;
}

/* The flat select with Villagio's chevron — drawn here, so it does not depend
   on the Villagio folder existing. Font Awesome 4 «angle-down», #222. */
:where(.astyb-search, .astyb-results, .astyb-filters, .astyb-property, .astyb-request, .astyb-cta, .astyb-checkout, .astyb-category) select {
	-webkit-appearance: none;
	appearance: none;
	padding-right: 2.875em;
	overflow: auto;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1792 1792'%3E%3Cpath fill='%23222' d='M1395 736q0 13-10 23l-466 466q-10 10-23 10t-23-10l-466-466q-10-10-10-23t10-23l50-50q10-10 23-10t23 10l393 393 393-393q10-10 23-10t23 10l50 50q10 10 10 23z'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 1.0625em top 1em;
	background-size: 1rem;
}

@media screen and (min-width: 48em) {
	/* Villagio's own desktop width for a lone field; every field of ours sets
	   its own width in front.css and wins, as it did before. */
	:where(.astyb-search, .astyb-results, .astyb-filters, .astyb-property, .astyb-request, .astyb-cta, .astyb-checkout, .astyb-category) :is(select, input[type="text"], input[type="email"], input[type="url"], input[type="password"], input[type="search"], input[type="number"], input[type="tel"], input[type="date"], input[type="month"], textarea) {
		width: 418px;
	}
}

/* Hotel Booking's date fields — Villagio's `motopress-hotel-booking.css`,
   calendar included (Font Awesome 4 «calendar-o», #222). */
:where(.astyb-property, .astyb-checkout) input[type="text"].mphb-datepick.is-datepick {
	padding-right: 2.7em;
	-webkit-appearance: none;
	appearance: none;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1792 1792'%3E%3Cpath fill='%23222' d='M192 1664h1408v-1024h-1408v1024zm384-1216v-288q0-14-9-23t-23-9h-64q-14 0-23 9t-9 23v288q0 14 9 23t23 9h64q14 0 23-9t9-23zm768 0v-288q0-14-9-23t-23-9h-64q-14 0-23 9t-9 23v288q0 14 9 23t23 9h64q14 0 23-9t9-23zm384-64v1280q0 52-38 90t-90 38h-1408q-52 0-90-38t-38-90v-1280q0-52 38-90t90-38h128v-96q0-66 47-113t113-47h64q66 0 113 47t47 113v96h384v-96q0-66 47-113t113-47h64q66 0 113 47t47 113v96h128q52 0 90 38t38 90z'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 1.0625em top 1em;
	background-size: 1rem;
}

/* Villagio's layout of Hotel Booking's reservation form. */
:where(.astyb-property, .astyb-checkout) .mphb-booking-form .mphb-reserve-btn-wrapper {
	margin-top: 2.75rem;
	clear: both;
}

:where(.astyb-property, .astyb-checkout) .mphb-booking-form .mphb-reserve-room-section .mphb-rooms-quantity {
	display: inline-block;
	width: auto;
	margin: 0 10px;
}

/* ---------------------------------------------------------------------------
   Buttons — Villagio's green, UPPERCASE, 700

   ⚠ Avada styles `button.button` (0,1,1), which out-weighs Villagio's `.button`
   (0,1,0) — and our «Search» button carries both. `:is(button, input).button`
   is (0,1,1) and wins on source order.
   ------------------------------------------------------------------------ */

:where(.astyb-search, .astyb-results, .astyb-filters, .astyb-property, .astyb-request, .astyb-cta, .astyb-checkout, .astyb-category) button,
:where(.astyb-search, .astyb-results, .astyb-filters, .astyb-property, .astyb-request, .astyb-cta, .astyb-checkout, .astyb-category) .button,
:where(.astyb-search, .astyb-results, .astyb-filters, .astyb-property, .astyb-request, .astyb-cta, .astyb-checkout, .astyb-category) :is(button, input).button,
:where(.astyb-search, .astyb-results, .astyb-filters, .astyb-property, .astyb-request, .astyb-cta, .astyb-checkout, .astyb-category) input[type="button"],
:where(.astyb-search, .astyb-results, .astyb-filters, .astyb-property, .astyb-request, .astyb-cta, .astyb-checkout, .astyb-category) input[type="reset"],
:where(.astyb-search, .astyb-results, .astyb-filters, .astyb-property, .astyb-request, .astyb-cta, .astyb-checkout, .astyb-category) input[type="submit"] {
	display: inline-block;
	margin-bottom: 0;
	padding: 0.92929em 2em;
	font-family: inherit;
	font-size: 0.875rem;
	font-weight: 700;
	line-height: 1.57143;
	text-align: center;
	text-transform: uppercase;
	vertical-align: middle;
	color: #fff;
	background-color: #01bea0;
	background-image: none;
	border: 1px solid #01bea0;
	border-radius: 0;
	cursor: pointer;
	-webkit-appearance: button;
	appearance: button;
	touch-action: manipulation;
	user-select: none;
	transition: background ease-in-out 0.15s, color ease-in-out 0.15s, border ease-in-out 0.15s;
}

:where(.astyb-search, .astyb-results, .astyb-filters, .astyb-property, .astyb-request, .astyb-cta, .astyb-checkout, .astyb-category) button:hover,
:where(.astyb-search, .astyb-results, .astyb-filters, .astyb-property, .astyb-request, .astyb-cta, .astyb-checkout, .astyb-category) .button:hover,
:where(.astyb-search, .astyb-results, .astyb-filters, .astyb-property, .astyb-request, .astyb-cta, .astyb-checkout, .astyb-category) :is(button, input).button:hover,
:where(.astyb-search, .astyb-results, .astyb-filters, .astyb-property, .astyb-request, .astyb-cta, .astyb-checkout, .astyb-category) input[type="button"]:hover,
:where(.astyb-search, .astyb-results, .astyb-filters, .astyb-property, .astyb-request, .astyb-cta, .astyb-checkout, .astyb-category) input[type="reset"]:hover,
:where(.astyb-search, .astyb-results, .astyb-filters, .astyb-property, .astyb-request, .astyb-cta, .astyb-checkout, .astyb-category) input[type="submit"]:hover {
	color: #fff;
	background-color: #333;
	border-color: #333;
	text-decoration: none;
}

:where(.astyb-search, .astyb-results, .astyb-filters, .astyb-property, .astyb-request, .astyb-cta, .astyb-checkout, .astyb-category) button[disabled],
:where(.astyb-search, .astyb-results, .astyb-filters, .astyb-property, .astyb-request, .astyb-cta, .astyb-checkout, .astyb-category) .button[disabled],
:where(.astyb-search, .astyb-results, .astyb-filters, .astyb-property, .astyb-request, .astyb-cta, .astyb-checkout, .astyb-category) input[type="submit"][disabled] {
	cursor: not-allowed;
	color: #fff;
	background-color: #e0e1e5;
	border-color: #e0e1e5;
}

/* ---------------------------------------------------------------------------
   The filter column we draw (1.18.4) — Villagio's sidebar size

   Under Villagio the filters were a widget in the theme's sidebar, which sets
   `.widget-area { font-size: 0.875rem }`. Our own column restates it.
   ------------------------------------------------------------------------ */

:where(.astyb-filters) .astyb-filters__side {
	font-size: 0.875rem;
}

/* Villagio's `.widget label` (0,1,1) — the amenity ticks and the «from / to»
   labels were full size in the sidebar. */
:where(.astyb-filters) .astyb-filters__side label {
	font-size: 0.875rem;
}

@media screen and (min-width: 48em) {
	:where(.astyb-filters) .astyb-filters__side label {
		font-size: 1rem;
	}
}

/* Villagio's `.widget p` (0,1,1). */
:where(.astyb-filters) .astyb-filters__side p {
	margin-bottom: 1.78571em;
}

/* ---------------------------------------------------------------------------
   Search-result cards — Villagio's `.entry-content h3` margin

   Before 1.18.4 Villagio's `.entry-content h3 { margin-bottom: 0.91em }`
   (0,1,1) out-weighed front.css's 0.3em on the title of a search-result card,
   and that gap under the title IS the look Panos knows. (0,2,1) here beats the
   doubled (0,2,0) in front.css. Only the search cards: the pinned grid on the
   home page sat inside WPBakery, whose `:last-child` rule zeroed it.
   ------------------------------------------------------------------------ */

:where(.astyb-results--search, .astyb-results--as-results) h3.astyb-card__title.astyb-card__title {
	margin-bottom: 1.04167em;
}

@media screen and (min-width: 48em) {
	:where(.astyb-results--search, .astyb-results--as-results) h3.astyb-card__title.astyb-card__title {
		margin-bottom: 0.91em;
	}
}
