/* Lakaw Core blocks. Colours come from the theme presets, with fallbacks so the blocks stay
   readable under another theme. Prices use even-width digits so columns of numbers line up. */

.lk-sr { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.lk-btn { display: inline-block; padding: .9rem 1.4rem; border: 0; border-radius: 6px; background: var(--wp--preset--color--amber, #e8a317); color: var(--wp--preset--color--ink, #23262b) !important; font: inherit; font-weight: 700; text-decoration: none; line-height: 1.2; white-space: nowrap; cursor: pointer; }
.lk-btn:hover { background: var(--wp--preset--color--amber-light, #f5c451); }
.lk-btn.is-quiet { background: transparent; box-shadow: inset 0 0 0 2px var(--wp--preset--color--ink, #23262b); }
.lk-btn.is-quiet:hover { background: var(--wp--preset--color--ink, #23262b); color: #fff !important; }
.lk-btn[hidden] { display: none; }

/* The quote form: where, when, driver. Shared by the search on Home, the fleet and the calculator. */
.lk-q { display: grid; gap: 1rem; container-type: inline-size; }
.lk-q__group { display: grid; gap: .75rem 1rem; grid-template-columns: repeat(2, minmax(0, 1fr)); min-width: 0; margin: 0; padding: 0; border: 0; }
.lk-q__legend { grid-column: 1 / -1; margin: 0 0 .1rem; padding: 0; font-size: .875rem; font-weight: 700; color: var(--wp--preset--color--muted, #5c6168); }
.lk-q__when { grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); }
.lk-q__field { display: grid; gap: .3rem; margin: 0; min-width: 0; }
.lk-q__field label { font-size: .9375rem; font-weight: 600; }
.lk-q :is(input[type="date"], select) { width: 100%; min-width: 0; box-sizing: border-box; min-height: 3rem; padding: .6rem .75rem; border: 2px solid var(--wp--preset--color--road, #8a8f96); border-radius: 6px; background: #fff; font: inherit; color: inherit; }
.lk-q :is(input, select):focus { border-color: var(--wp--preset--color--ink, #23262b); }
.lk-q__driver { margin: 0; font-weight: 600; }
.lk-q__driver input { width: 1.25rem; height: 1.25rem; margin: 0 .5rem 0 0; vertical-align: -.2rem; accent-color: var(--wp--preset--color--ink, #23262b); }
.lk-q__driver.is-fixed { color: var(--wp--preset--color--muted, #5c6168); }
.lk-q__submit { margin: .25rem 0 0; }
.lk-q__submit .lk-btn { width: 100%; }

/* The search on Home: a white panel topped with an amber band, like the tag on a key. */
.lk-search { padding: 1.5rem; border-radius: 6px; background: #fff; box-shadow: 0 1px 0 var(--wp--preset--color--line, #d8d5cc), 0 20px 40px -28px rgba(35, 38, 43, .45); border-top: 8px solid var(--wp--preset--color--amber, #e8a317); }
/* Pickup and return side by side only when the form itself is wide enough for four fields. */
@container (min-width: 640px) {
	.lk-q__when { grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr) minmax(0, 1.4fr) minmax(0, 1fr); }
}

/* Fleet types: photo tiles opening the fleet filtered to that type. */
.lk-types { margin: 0; padding: 0; list-style: none; display: grid; gap: 1.5rem 1.25rem; grid-template-columns: repeat(auto-fill, minmax(min(100%, 19rem), 1fr)); }
.lk-type { position: relative; display: flex; flex-direction: column; }
.lk-type .lk-type__photo { order: -1; display: block; width: 100%; aspect-ratio: 4 / 3; height: auto !important; object-fit: cover; border-radius: 6px; margin-bottom: .8rem; }
.lk-type__name { margin: 0; font-size: 1.25rem; font-weight: 800; font-stretch: 125%; letter-spacing: -.02em; }
.lk-type__name a { color: inherit; text-decoration: none; }
.lk-type__name a::after { content: ""; position: absolute; inset: 0; }
.lk-type:hover .lk-type__name a { text-decoration: underline; text-decoration-color: var(--wp--preset--color--amber, #e8a317); text-decoration-thickness: 3px; }
.lk-type:focus-within { outline: 3px solid var(--wp--preset--color--ink, #23262b); outline-offset: 4px; border-radius: 6px; }
.lk-type__name a:focus-visible { outline: none; box-shadow: none; }
.lk-type__line { margin: .2rem 0 0; color: var(--wp--preset--color--muted, #5c6168); }
.lk-type__from { margin: .4rem 0 0; font-weight: 700; color: var(--wp--preset--color--amber-ink, #7a4f00); font-variant-numeric: tabular-nums; }

/* Car cards. The whole card opens the car; with dates, the price is the total for them. A car that
   is booked on the dates, or cannot be quoted, is greyed with the reason. */
.lk-cars { margin: 0; padding: 0; list-style: none; display: grid; gap: 1.25rem; grid-template-columns: repeat(auto-fill, minmax(min(100%, 19rem), 1fr)); }
.lk-car { position: relative; display: flex; flex-direction: column; border: 1px solid var(--wp--preset--color--line, #d8d5cc); border-radius: 6px; background: #fff; overflow: hidden; }
.lk-car__photo { margin: 0; background: var(--wp--preset--color--surface, #eceae3); }
.lk-car .lk-car__photo img { display: block; width: 100%; aspect-ratio: 4 / 3; height: auto !important; object-fit: cover; border-radius: 0 !important; }
.lk-car__body { display: flex; flex-direction: column; flex: 1; padding: 1.1rem 1.25rem 1.25rem; }
.lk-car__type { order: -1; margin: 0 0 .2rem; font-size: .875rem; font-weight: 700; color: var(--wp--preset--color--amber-ink, #7a4f00); }
.lk-car__name { margin: 0; font-size: 1.375rem; font-weight: 800; font-stretch: 125%; letter-spacing: -.025em; line-height: 1.1; }
.lk-car__name a { color: inherit; text-decoration: none; }
.lk-car__name a::after { content: ""; position: absolute; inset: 0; }
.lk-car:hover .lk-car__name a { text-decoration: underline; text-decoration-color: var(--wp--preset--color--amber, #e8a317); text-decoration-thickness: 3px; }
.lk-car:focus-within { outline: 3px solid var(--wp--preset--color--ink, #23262b); outline-offset: 3px; }
.lk-car__name a:focus-visible { outline: none; box-shadow: none; }
.lk-car__similar { margin: .15rem 0 0; font-size: .875rem; color: var(--wp--preset--color--muted, #5c6168); }
.lk-car__facts { display: flex; flex-wrap: wrap; gap: .3rem .5rem; margin: .8rem 0 0; padding: 0; list-style: none; }
.lk-car__facts li { padding: .15rem .55rem; border-radius: 4px; background: var(--wp--preset--color--surface, #eceae3); font-size: .875rem; font-weight: 600; }
.lk-car__price { margin-top: auto; padding-top: .9rem; }
.lk-car__price p { margin: .9rem 0 0; padding-top: .8rem; border-top: 2px dashed var(--wp--preset--color--line, #d8d5cc); font-variant-numeric: tabular-nums; }
.lk-car__price p + p { margin-top: .2rem; padding-top: 0; border: 0; }
.lk-car__price strong { font-size: 1.625rem; font-weight: 800; font-stretch: 125%; letter-spacing: -.02em; }
.lk-car__price span { color: var(--wp--preset--color--muted, #5c6168); }
.lk-car__from { font-size: .875rem; }
.lk-car__incl { font-size: .875rem; color: var(--wp--preset--color--muted, #5c6168); }
.lk-car__note { font-weight: 700; color: var(--wp--preset--color--muted, #5c6168); }
.lk-car.is-out { background: var(--wp--preset--color--base, #f6f5f1); }
.lk-car.is-out .lk-car__photo img { filter: grayscale(1); opacity: .7; }

/* The fleet page: dates and filters in a side panel, the cars beside them. */
.lk-fleet { display: grid; gap: 2rem; grid-template-columns: minmax(0, 1fr); align-items: start; }
@media (min-width: 1000px) {
	.lk-fleet { grid-template-columns: 19rem minmax(0, 1fr); gap: 2.5rem; }
	.lk-fleet__form { position: sticky; top: 6rem; }
}
.lk-fleet__form { padding: 1.25rem; border: 1px solid var(--wp--preset--color--line, #d8d5cc); border-radius: 6px; background: #fff; }
.lk-fleet__form .lk-q__group { grid-template-columns: minmax(0, 1fr); }
.lk-fleet__form .lk-q__when { grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); }
@media (min-width: 600px) and (max-width: 999px) { .lk-fleet__form .lk-q__filters { grid-template-columns: repeat(3, minmax(0, 1fr)); } .lk-fleet__form .lk-q__places { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.lk-fleet__count { margin: 0 0 1rem; font-weight: 600; }
.lk-fleet__none { padding: 1.5rem; border: 2px dashed var(--wp--preset--color--line, #d8d5cc); border-radius: 6px; }

/* Car page top: type, name, lead, facts and rate beside the photo. */
.lk-carhero { display: grid; gap: 2rem; grid-template-columns: minmax(0, 1fr); align-items: center; }
@media (min-width: 1000px) { .lk-carhero { grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: clamp(2rem, 5vw, 5rem); } }
.lk-crumbs { margin: 0; font-size: .9375rem; font-weight: 600; }
.lk-carhero__title { margin: .75rem 0 0; font-size: clamp(2.4rem, 1.6rem + 3vw, 4rem) !important; font-weight: 800; font-stretch: 125%; letter-spacing: -.035em; line-height: 1; }
.lk-carhero__title span { display: block; margin-top: .35rem; font-size: 1.125rem; font-weight: 600; font-stretch: 100%; letter-spacing: 0; color: var(--wp--preset--color--muted, #5c6168); }
.lk-carhero__lead { margin: 1rem 0 0; max-width: 46ch; font-size: 1.1875rem; }
.lk-facts { display: grid; grid-template-columns: repeat(4, minmax(0, auto)); justify-content: start; gap: .5rem 2rem; margin: 1.5rem 0 0; padding: 1rem 0; border-block: 1px solid var(--wp--preset--color--line, #d8d5cc); }
.lk-facts div { display: flex; flex-direction: column-reverse; }
.lk-facts dt { font-size: .8125rem; color: var(--wp--preset--color--muted, #5c6168); }
.lk-facts dd { margin: 0; font-size: 1.125rem; font-weight: 700; }
.lk-carhero__price { margin: 1.25rem 0 1rem; font-variant-numeric: tabular-nums; }
.lk-carhero__price strong { font-size: 2.25rem; font-weight: 800; font-stretch: 125%; letter-spacing: -.03em; }
.lk-carhero__price span { color: var(--wp--preset--color--muted, #5c6168); }
.lk-carhero__photo { margin: 0; }
.lk-carhero__photo img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 6px; }
@media (max-width: 999px) { .lk-carhero__photo { order: -1; } }
@media (max-width: 520px) { .lk-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* The calculator: the form beside the quote, printed as a slip with torn edges. */
.lk-calc { display: grid; gap: 2rem; grid-template-columns: minmax(0, 1fr); align-items: start; }
@media (min-width: 1000px) { .lk-calc { grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: clamp(2rem, 5vw, 4.5rem); } .lk-slip { position: sticky; top: 6rem; } }
.lk-calc__form .lk-q__places { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.lk-calc__form .lk-q__submit .lk-btn { width: auto; }
.lk-slip {
	padding: 1.75rem 1.5rem 1.5rem; background: var(--wp--preset--color--base, #f6f5f1); font-variant-numeric: tabular-nums;
	-webkit-mask: radial-gradient(circle at 8px 0, transparent 6px, #000 6.5px) top / 16px 51% repeat-x, radial-gradient(circle at 8px 100%, transparent 6px, #000 6.5px) bottom / 16px 51% repeat-x;
	mask: radial-gradient(circle at 8px 0, transparent 6px, #000 6.5px) top / 16px 51% repeat-x, radial-gradient(circle at 8px 100%, transparent 6px, #000 6.5px) bottom / 16px 51% repeat-x;
}
.lk-slip__head { margin: 0; font-size: 1.25rem; font-weight: 800; font-stretch: 125%; letter-spacing: -.02em; }
.lk-slip__when { margin: .35rem 0 0; font-size: .9375rem; color: var(--wp--preset--color--muted, #5c6168); }
.lk-slip__error, .lk-slip__clash { margin: 1rem 0 0; padding: .75rem .9rem; border-left: 5px solid var(--wp--preset--color--ink, #23262b); background: #fff; font-weight: 600; }
.lk-slip__error[hidden], .lk-slip__clash[hidden], .lk-slip__deposit[hidden] { display: none; }
.lk-slip__lines { margin: 1.25rem 0 0; padding: 0; list-style: none; }
.lk-slip__lines li { display: flex; justify-content: space-between; gap: 1rem; padding: .55rem 0; border-bottom: 2px dotted var(--wp--preset--color--road, #8a8f96); }
.lk-slip__lines li span:last-child { font-weight: 700; white-space: nowrap; }
.lk-slip__total { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; margin: 1rem -.5rem 0; padding: .6rem .5rem; background: var(--wp--preset--color--amber, #e8a317); }
.lk-slip__total span { font-weight: 700; }
.lk-slip__total strong { font-size: clamp(1.9rem, 1.5rem + 1.2vw, 2.5rem); font-weight: 800; font-stretch: 125%; letter-spacing: -.03em; line-height: 1; }
.lk-slip__deposit { margin: .75rem 0 0; font-size: .9375rem; color: var(--wp--preset--color--muted, #5c6168); }
.lk-slip__act { margin: 1.25rem 0 0; }
.lk-slip__act .lk-btn { width: 100%; box-sizing: border-box; text-align: center; background: var(--wp--preset--color--ink, #23262b); color: #fff !important; }
.lk-slip__act .lk-btn:hover { background: #000; }
.lk-slip__fine { margin: .75rem 0 0; font-size: .875rem; color: var(--wp--preset--color--muted, #5c6168); }

/* Availability: two months, booked days striped and crossed out, the chosen days in amber. */
.lk-cal { display: grid; gap: 1.5rem 2rem; grid-template-columns: minmax(0, 1fr); }
@media (min-width: 600px) { .lk-cal { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.lk-cal__month { width: 100%; border-collapse: separate; border-spacing: 3px; table-layout: fixed; font-variant-numeric: tabular-nums; }
.lk-cal__month caption { margin-bottom: .4rem; text-align: left; font-weight: 800; font-stretch: 125%; letter-spacing: -.01em; }
.lk-cal__month th { padding: .2rem 0; font-size: .75rem; font-weight: 700; color: var(--wp--preset--color--muted, #5c6168); }
.lk-cal__month td { padding: 0; height: 2.35rem; border-radius: 4px; text-align: center; font-size: .9375rem; background: #fff; }
.lk-cal__month td:empty { background: transparent; }
.lk-cal__month td.is-past { background: transparent; color: var(--wp--preset--color--muted, #5c6168); }
.lk-cal__month td.is-booked { background: repeating-linear-gradient(135deg, var(--wp--preset--color--lane, #c9ccd1) 0 4px, var(--wp--preset--color--surface, #eceae3) 4px 8px); color: var(--wp--preset--color--ink, #23262b); text-decoration: line-through; }
.lk-cal__month td.is-picked { background: var(--wp--preset--color--amber, #e8a317); color: var(--wp--preset--color--ink, #23262b); font-weight: 700; }
.lk-cal__month td.is-picked.is-booked { background: repeating-linear-gradient(135deg, var(--wp--preset--color--amber, #e8a317) 0 4px, var(--wp--preset--color--lane, #c9ccd1) 4px 8px); box-shadow: inset 0 0 0 2px var(--wp--preset--color--ink, #23262b); }
.lk-cal__key { display: flex; flex-wrap: wrap; gap: .5rem 1.5rem; margin: 1rem 0 0; padding: 0; list-style: none; font-size: .875rem; }
.lk-cal__key li::before { content: ""; display: inline-block; width: 1rem; height: 1rem; margin-right: .4rem; vertical-align: -.15rem; border-radius: 3px; }
.lk-cal__key .is-booked::before { background: repeating-linear-gradient(135deg, var(--wp--preset--color--lane, #c9ccd1) 0 3px, var(--wp--preset--color--surface, #eceae3) 3px 6px); }
.lk-cal__key .is-picked::before { background: var(--wp--preset--color--amber, #e8a317); }

/* Rates. */
.lk-rates { width: 100%; border-collapse: collapse; font-variant-numeric: tabular-nums; }
.lk-rates th, .lk-rates td { padding: .75rem 0; border-bottom: 1px solid var(--wp--preset--color--line, #d8d5cc); vertical-align: baseline; }
.lk-rates th { padding-right: 1rem; text-align: left; font-weight: 400; }
.lk-rates td { text-align: right; white-space: nowrap; }
.lk-rates td strong { font-size: 1.125rem; font-weight: 800; }
.lk-rates td span { display: block; font-size: .8125rem; color: var(--wp--preset--color--muted, #5c6168); white-space: normal; }

/* In every rental, and what to know. */
.lk-specs { display: grid; gap: 1.5rem 3rem; grid-template-columns: minmax(0, 1fr); }
@media (min-width: 700px) { .lk-specs { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.lk-specs h3 { margin: 0 0 .5rem; }
.lk-ticks, .lk-notes { margin: 0; padding: 0; list-style: none; }
.lk-ticks li, .lk-notes li { position: relative; padding: .45rem 0 .45rem 1.75rem; }
.lk-ticks li::before { content: ""; position: absolute; left: .15rem; top: .8rem; width: .55rem; height: .3rem; border-left: 3px solid var(--wp--preset--color--ink, #23262b); border-bottom: 3px solid var(--wp--preset--color--ink, #23262b); transform: rotate(-45deg); }
.lk-notes li::before { content: ""; position: absolute; left: .2rem; top: .95rem; width: .6rem; height: .3rem; background: var(--wp--preset--color--amber, #e8a317); }

/* Pickup points. */
.lk-places { margin: 0; padding: 0; list-style: none; display: grid; gap: 1.25rem; grid-template-columns: repeat(auto-fit, minmax(min(100%, 17rem), 1fr)); }
.lk-place { padding: 1.4rem; border: 1px solid var(--wp--preset--color--line, #d8d5cc); border-radius: 6px; background: #fff; }
.lk-place__name { margin: 0; font-size: 1.25rem; font-weight: 800; font-stretch: 125%; letter-spacing: -.02em; }
.lk-place__where { margin: .4rem 0 0; color: var(--wp--preset--color--muted, #5c6168); }
.lk-place__facts { margin: 1rem 0 0; }
.lk-place__facts div { display: flex; justify-content: space-between; gap: 1rem; padding: .5rem 0; border-top: 1px solid var(--wp--preset--color--line, #d8d5cc); }
.lk-place__facts dt { color: var(--wp--preset--color--muted, #5c6168); }
.lk-place__facts dd { margin: 0; font-weight: 700; text-align: right; font-variant-numeric: tabular-nums; }
.lk-place__note { margin: .75rem 0 0; font-size: .9375rem; }

/* Drive guide cards. */
.lk-stories { margin: 0; padding: 0; list-style: none; display: grid; gap: 2rem 1.5rem; grid-template-columns: repeat(auto-fit, minmax(min(100%, 18rem), 1fr)); }
.lk-story { position: relative; display: flex; flex-direction: column; }
.lk-story__photo { margin: 0 0 .9rem; order: -2; }
.lk-story__photo img { display: block; width: 100%; aspect-ratio: 3 / 2; object-fit: cover; border-radius: 6px; }
.lk-story__meta { order: -1; margin: 0 0 .35rem; font-size: .9375rem; color: var(--wp--preset--color--muted, #5c6168); }
.lk-story__title { margin: 0; font-size: 1.375rem; font-weight: 800; font-stretch: 125%; letter-spacing: -.02em; line-height: 1.15; }
.lk-story__title a { color: inherit; text-decoration: none; }
.lk-story__title a::after { content: ""; position: absolute; inset: 0; }
.lk-story:hover .lk-story__title a { text-decoration: underline; text-decoration-color: var(--wp--preset--color--amber, #e8a317); text-decoration-thickness: 3px; }
.lk-story:focus-within { outline: 3px solid var(--wp--preset--color--ink, #23262b); outline-offset: 4px; border-radius: 6px; }
.lk-story__title a:focus-visible { outline: none; box-shadow: none; }
.lk-story__excerpt { margin: .5rem 0 0; color: var(--wp--preset--color--muted, #5c6168); }

.lk-post-meta { margin: 0; color: var(--wp--preset--color--muted, #5c6168); }

/* Request and contact forms (the plugin's own; Fluent Forms replaces them on the demo). */
.lk-form__grid { display: grid; gap: 1rem 1.25rem; grid-template-columns: 1fr; }
@media (min-width: 640px) { .lk-form__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.lk-form__field { display: grid; gap: .4rem; margin: 0; }
.lk-form__field--wide, .lk-form__actions { grid-column: 1 / -1; }
.lk-form label { font-weight: 600; }
.lk-form :is(input, select, textarea) { width: 100%; box-sizing: border-box; padding: .8rem 1rem; border: 2px solid var(--wp--preset--color--road, #8a8f96); border-radius: 6px; background: #fff; font: inherit; color: inherit; }
.lk-form__req { color: var(--wp--preset--color--amber-ink, #7a4f00); }
.lk-form__hp { position: absolute; left: -9999px; }
.lk-form__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem; margin: .5rem 0 0; }
.lk-form__hint { font-size: .9375rem; color: var(--wp--preset--color--muted, #5c6168); }
.lk-form__notice { margin: 0 0 1rem; padding: .9rem 1rem; border-radius: 6px; }
.lk-form__notice--ok { background: #fbeccb; }
.lk-form__notice--error { background: #fde8e6; }

.lk-editor-empty { padding: 1rem; border: 1px dashed #8a8f96; border-radius: 6px; color: #5c6168; }

/* Narrow phones: one pickup point per row, so the names are not cut off. */
@media (max-width: 519px) { .lk-q .lk-q__places, .lk-calc__form .lk-q__places { grid-template-columns: minmax(0, 1fr); } }
