/**
 * LT Florist: the shop floor on a market morning (the LT Florist Joomla design, rebuilt).
 * Blush page, dusty blue and sage bands, a white footer. Questrial (one weight) for everything,
 * Allura script in deep coral for three words only. Every photo is a sharp square or rectangle.
 * The one device is the bucket scatter: this week's flowers as floating squares, size = stems in stock.
 * No shadows, no gradients.
 */

/* Questrial has one weight: never fake bold. */
h1, h2, h3, h4, h5, h6,
.elementor-heading-title,
.lt-blog__title,
.lt-single__title,
.lt-404__title,
.lt-post__title,
.lt-404__links,
body .lt-menu a,
body .lt-faq .elementor-tab-title a,
body .lt-faq .elementor-tab-title.elementor-active a,
.lt-brand__name,
strong, b {
	font-weight: 400;
	letter-spacing: 0;
}

.lt-num,
.lt-num p {
	font-variant-numeric: tabular-nums lining-nums;
}

/* Buttons: the Joomla thin coral rectangle, sentence case. */
body .elementor-button {
	font-size: 0.9375rem;
	font-weight: 400;
	letter-spacing: 0.06em;
}

body .elementor-widget-button.lt-btn--outline .elementor-button {
	padding: 0.95em 2em;
	border: 1px solid var(--lt-primary);
	border-radius: 0;
	background: transparent;
	color: var(--lt-primary);
}

body .elementor-widget-button.lt-btn--outline .elementor-button:hover {
	background: var(--lt-primary);
	color: var(--lt-white);
}

body .elementor-widget-button.lt-btn--quiet .elementor-button {
	font-size: 0.9375rem;
	letter-spacing: 0.04em;
	text-decoration-thickness: 1px;
	text-underline-offset: 0.3em;
}

.e-con.lt-buttons--center {
	justify-content: center;
}

/* ---------- Script words (three sections at most) ---------- */

.lt-script.elementor-widget-text-editor {
	font-family: var(--lt-font-script);
	font-size: var(--lt-fs-script);
	line-height: 1;
	color: var(--lt-primary);
}

.lt-script p {
	margin: 0;
}

/* ---------- Top bar and header ---------- */

.e-con.lt-sec.lt-topbar-bar {
	--padding-top: 0.45rem;
	--padding-bottom: 0.45rem;
	background: var(--lt-white);
	border-bottom: 1px solid var(--lt-line);
	font-size: var(--lt-fs-sm);
}

.lt-topbar-bar .elementor-widget-text-editor {
	color: var(--lt-ink);
	white-space: nowrap;
}

.lt-topbar-bar .lt-topbar__open {
	flex: 1 1 auto;
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	color: var(--lt-soft);
}

.lt-site-header {
	--lt-brand-color: var(--lt-primary);
}

.lt-brand__mark {
	width: 1.9rem;
	height: 1.9rem;
}

.lt-brand__name {
	font-size: 1.5rem;
	letter-spacing: 0.04em;
}

/* ---------- Section intros ---------- */

.e-con.lt-intro--center {
	text-align: center;
	max-width: 50rem;
	margin-inline: auto;
}

.lt-intro--center .lt-lead.elementor-widget-text-editor {
	max-width: 44rem;
	margin-inline: auto;
}

.lt-lead.elementor-widget-text-editor {
	font-size: var(--lt-fs-base);
}

.lt-rule p {
	display: block;
	width: 4.5rem;
	height: 1px;
	margin: 0;
	overflow: hidden;
	background: var(--lt-accent);
	font-size: 0;
	line-height: 0;
}

.lt-rule--center p {
	margin-inline: auto;
}

/* ---------- Square photos (sharp corners everywhere) ---------- */

.elementor-widget-image.lt-sq img {
	display: block;
	width: 100%;
	aspect-ratio: 1;
	object-fit: cover;
	border-radius: 0;
}

/* ---------- Home hero ---------- */

.e-con.lt-hero {
	--padding-top: clamp(2.5rem, 1.5rem + 3vw, 4.5rem);
	--padding-bottom: clamp(2rem, 1rem + 3vw, 3.5rem);
	overflow: hidden;
}

.lt-hero__title .elementor-heading-title {
	font-size: var(--lt-fs-hero);
	line-height: 1.1;
}

.lt-hero__text.elementor-widget-text-editor {
	max-width: 30rem;
	font-size: var(--lt-fs-md);
	line-height: 1.55;
	color: var(--lt-soft);
}

.e-con.lt-hero__media {
	position: relative;
}

.elementor-widget-image.lt-hero__photo img {
	display: block;
	width: 100%;
	aspect-ratio: 5 / 4;
	object-fit: cover;
	object-position: 50% 40%;
	border-radius: 0;
}

/* The script word laid across the photo's left edge, as in the Joomla hero. */
.e-con > .elementor-widget-text-editor.lt-hero__script {
	position: absolute;
	left: -5.5rem;
	bottom: 8%;
	z-index: 1;
	width: auto;
	margin: 0;
	font-size: clamp(4.5rem, 2.6rem + 7vw, 9.5rem);
	white-space: nowrap;
	color: var(--lt-primary);
	pointer-events: none;
	animation: lt-draw 0.7s ease-out 0.2s both;
}

@keyframes lt-draw {
	from {
		opacity: 0;
		transform: translateX(-8px);
	}
	to {
		opacity: 1;
		transform: none;
	}
}

@media (prefers-reduced-motion: reduce) {
	.e-con > .elementor-widget-text-editor.lt-hero__script {
		animation: none;
	}
}

/* ---------- The bucket scatter ---------- */

.e-con.lt-sec.lt-scatter {
	--padding-top: calc(var(--lt-sec-y) * 0.55);
}

.e-con.lt-scatter__grid {
	align-items: center;
}

.e-con.lt-scatter__side {
	--gap: 3.5rem;
}

.e-con.lt-tile {
	--width: 100%;
}

.e-con.lt-tile.lt-tile--m {
	--width: 76%;
	width: 76%;
}

.e-con.lt-tile.lt-tile--s {
	--width: 56%;
	width: 56%;
}

/* Scatter the squares: alternate their alignment so they float like buckets on the floor. */
.lt-scatter__side--left > .e-con.lt-tile:nth-child(2),
.lt-scatter__side--right > .e-con.lt-tile:nth-child(1),
.lt-scatter__side--right > .e-con.lt-tile:nth-child(3) {
	align-self: flex-end;
}

.lt-scatter__side--left > .e-con.lt-tile:nth-child(1) {
	margin-top: 2rem;
}

.lt-scatter__side--right > .e-con.lt-tile:nth-child(2) {
	margin-left: -1.5rem;
}

.lt-tag.elementor-widget-text-editor {
	font-size: var(--lt-fs-sm);
	line-height: 1.35;
}

.lt-tag p {
	margin: 0;
}

.lt-tag .lt-tag__name {
	color: var(--lt-ink);
}

.lt-tag .lt-tag__stock {
	color: var(--lt-soft);
}

.lt-tag .lt-tag__stock::before {
	content: "";
	display: inline-block;
	width: 0.45rem;
	height: 0.45rem;
	margin-right: 0.45rem;
	border-radius: 50%;
	background: var(--lt-accent);
	vertical-align: 0.1em;
}

.e-con.lt-scatter__offer {
	text-align: center;
}

.lt-scatter__title .elementor-heading-title {
	font-size: var(--lt-fs-2xl);
}

.lt-scatter__offer .lt-lead.elementor-widget-text-editor {
	max-width: 30rem;
	margin-inline: auto;
}

.lt-scatter__note.elementor-widget-text-editor {
	color: var(--lt-primary);
}

.lt-scatter--stock .e-con.lt-rows {
	width: 100%;
	max-width: 26rem;
	text-align: left;
}

/* ---------- Two photos edge to edge ---------- */

.e-con.lt-sec.lt-pair {
	--padding-top: 0;
	--padding-bottom: 0;
	--padding-left: 0;
	--padding-right: 0;
	--content-width: 100%;
}

.e-con.lt-pair > .e-con-inner {
	max-width: none !important;
	width: 100%;
}

.elementor-widget-image.lt-pair__img img {
	display: block;
	width: 100%;
	aspect-ratio: 5 / 4;
	object-fit: cover;
	border-radius: 0;
}

/* ---------- Bands ---------- */

.e-con.lt-sage {
	background-color: var(--lt-sage);
}

/* ---------- Collections ---------- */

.e-con.lt-coll {
	text-align: center;
}

.lt-coll__name .elementor-heading-title {
	margin-top: 0.6rem;
	font-size: var(--lt-fs-md);
}

.lt-coll__name .elementor-heading-title a {
	color: var(--lt-ink);
}

.lt-coll__text.elementor-widget-text-editor {
	max-width: 22rem;
	margin-inline: auto;
	color: var(--lt-soft);
	font-size: 1rem;
	line-height: 1.55;
}

/* ---------- Studio: steps and the overlapping squares ---------- */

.e-con.lt-step {
	--flex-direction: row;
	--flex-wrap: nowrap;
	--align-items: flex-start;
	flex-wrap: nowrap;
}

.e-con.lt-step > .e-con {
	--width: auto;
	flex: 1 1 auto;
	min-width: 0;
}

.e-con > .lt-step__n.elementor-widget-text-editor {
	--container-widget-width: 2.75rem;
	flex: 0 0 2.75rem;
	width: 2.75rem;
	font-size: var(--lt-fs-xl);
	line-height: 1;
	color: var(--lt-primary);
}

.lt-step__n p {
	margin: 0;
}

.lt-step__title .elementor-heading-title {
	font-size: var(--lt-fs-md);
}

.e-con.lt-overlap {
	position: relative;
}

.e-con > .elementor-widget-image.lt-overlap__large {
	width: 80%;
	--container-widget-width: 80%;
}

.e-con > .elementor-widget-image.lt-overlap__small {
	position: relative;
	z-index: 1;
	width: 50%;
	--container-widget-width: 50%;
	align-self: flex-end;
	margin-top: -32%;
}

.elementor-widget-image.lt-overlap__small img {
	border: 10px solid var(--lt-base);
}

/* ---------- Catalogue cards ---------- */

.e-con.lt-item {
	--padding-top: 0.75rem;
	--padding-right: 0.75rem;
	--padding-bottom: 1.25rem;
	--padding-left: 0.75rem;
	background: var(--lt-white);
}

.lt-item__name .elementor-heading-title {
	margin-top: 0.4rem;
	font-size: var(--lt-fs-md);
	color: var(--lt-primary);
}

.lt-item__what.elementor-widget-text-editor {
	color: var(--lt-soft);
	font-size: 1rem;
	line-height: 1.5;
}

.lt-item__price {
	margin-top: auto;
	font-size: var(--lt-fs-md);
	color: var(--lt-ink);
}

.lt-items__foot .lt-note {
	flex: 1 1 18rem;
}

/* ---------- Customer quote ---------- */

.e-con.lt-review {
	max-width: 52rem;
	margin-inline: auto;
	text-align: center;
}

.lt-quote.elementor-widget-text-editor {
	font-size: var(--lt-fs-md);
	line-height: 1.6;
	color: var(--lt-ink);
}

.lt-quote.elementor-widget-text-editor::before {
	content: "\201C";
	display: block;
	height: 2.4rem;
	font-family: var(--lt-font-display);
	font-size: 4.5rem;
	line-height: 1;
	color: var(--lt-accent);
}

.lt-quote__name .elementor-heading-title {
	font-size: var(--lt-fs-base);
	color: var(--lt-primary);
}

/* ---------- Visit: contacts with coral icons, then the questions ---------- */

.elementor-widget-image.lt-visit__img img {
	display: block;
	width: 100%;
	aspect-ratio: 1;
	object-fit: cover;
	border-radius: 0;
}

.elementor-widget-image.lt-questions__img img {
	display: block;
	width: 100%;
	aspect-ratio: 4 / 5;
	object-fit: cover;
	border-radius: 0;
}

.e-con.lt-visit__head {
	position: relative;
}

.lt-visit__script.elementor-widget-text-editor {
	margin-top: -0.2em;
	margin-left: 2.5rem;
}

.lt-contact__title .elementor-heading-title {
	font-size: var(--lt-fs-base);
	color: var(--lt-ink);
}

.elementor-widget-heading.lt-ico {
	padding-left: 1.9rem;
	position: relative;
}

.elementor-widget-heading.lt-ico::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.15em;
	width: 1.2rem;
	height: 1.2rem;
	background: var(--lt-accent);
	-webkit-mask: var(--lt-ico) center / contain no-repeat;
	mask: var(--lt-ico) center / contain no-repeat;
}

.lt-ico--phone { --lt-ico: url("../images/icon-phone.svg"); }
.lt-ico--mail { --lt-ico: url("../images/icon-mail.svg"); }
.lt-ico--pin { --lt-ico: url("../images/icon-pin.svg"); }
.lt-ico--clock { --lt-ico: url("../images/icon-clock.svg"); }

.lt-contact__text.elementor-widget-text-editor {
	padding-left: 1.9rem;
	color: var(--lt-soft);
	font-size: 1rem;
	line-height: 1.6;
}

body .lt-contact__text a {
	color: var(--lt-primary);
}

.lt-faq__title .elementor-heading-title {
	font-size: var(--lt-fs-2xl);
}

/* Questions as white rows, like the Joomla accordion. */
.lt-faq .elementor-toggle-item {
	margin-bottom: 0.6rem;
	border: 0;
	background: var(--lt-white);
}

.lt-faq .elementor-toggle-item:last-child {
	border: 0;
}

.lt-faq .elementor-tab-title {
	padding: 1rem 3rem 1rem 1.25rem !important;
}

body .lt-faq .elementor-tab-title a,
body .lt-faq .elementor-tab-title.elementor-active a {
	font-family: var(--lt-font-body);
	font-size: var(--lt-fs-base);
	color: var(--lt-soft);
}

.lt-faq .elementor-tab-title::after {
	right: 1.1rem;
}

.lt-faq .elementor-tab-content {
	padding: 0 3rem 1.25rem 1.25rem !important;
}

/* ---------- Journal ---------- */

.lt-posts--grid .lt-post__img {
	aspect-ratio: 3 / 2;
	border-radius: 0;
}

.lt-posts--grid .lt-post__title {
	font-size: var(--lt-fs-md);
}

body .lt-posts--grid .lt-post__title a {
	color: var(--lt-primary);
}

/* ---------- Closing band ---------- */

.e-con.lt-closing {
	background-color: color-mix(in srgb, var(--lt-line) 45%, var(--lt-base));
	text-align: center;
}

.lt-closing__title .elementor-heading-title {
	font-size: var(--lt-fs-2xl);
}

.lt-closing .lt-lead.elementor-widget-text-editor {
	max-width: 40rem;
	margin-inline: auto;
}

/* ---------- Inner pages ---------- */

.e-con.lt-pagehead {
	--padding-top: clamp(3rem, 2rem + 4vw, 5.5rem);
	--padding-bottom: clamp(2.75rem, 1.75rem + 3.5vw, 5rem);
	background: var(--lt-white);
	text-align: center;
}

.lt-pagehead__title .elementor-heading-title {
	font-size: var(--lt-fs-3xl);
}

.lt-pagehead .lt-lead.elementor-widget-text-editor {
	max-width: 42rem;
	margin-inline: auto;
}

.e-con.lt-people > .e-con {
	border-top: 1px solid var(--lt-accent);
	--padding-top: 1.25rem;
}

.lt-person__name .elementor-heading-title {
	font-size: var(--lt-fs-md);
}

.lt-service__title .elementor-heading-title {
	font-size: var(--lt-fs-lg);
}

.lt-price__label {
	font-size: var(--lt-fs-base);
}

.lt-price__note {
	color: var(--lt-soft);
	font-size: var(--lt-fs-sm);
}

.lt-price__amount {
	text-align: right;
	color: var(--lt-primary);
}

.lt-gallery__cap.elementor-widget-text-editor {
	text-align: center;
}

/* Contact form panel */
.e-con.lt-form {
	background: var(--lt-white);
}

/* ---------- Footer: white, four columns ---------- */

.lt-site-footer {
	--lt-footer-bg: var(--lt-white);
}

.e-con.lt-sec.lt-footer {
	--padding-top: clamp(3.5rem, 2.5rem + 3vw, 5rem);
	--padding-bottom: 3rem;
	background: var(--lt-white);
}

.lt-footer__brand .elementor-heading-title {
	font-size: var(--lt-fs-lg);
	letter-spacing: 0.04em;
	color: var(--lt-primary);
}

.lt-footer__head .elementor-heading-title {
	font-size: var(--lt-fs-md);
}

.lt-footer__line.elementor-widget-text-editor,
.lt-footer__text.elementor-widget-text-editor {
	color: var(--lt-soft);
	font-size: 1rem;
}

.lt-footer__links {
	margin: 0;
	padding: 0;
	list-style: none;
	line-height: 2;
}

body .lt-footer__links a,
body .lt-footer__text a {
	color: var(--lt-primary);
}

.lt-credit-bar {
	border-top: 1px solid var(--lt-line);
	color: var(--lt-soft);
}

body .lt-credit a {
	color: var(--lt-primary);
}

/* ---------- Phones and tablets ---------- */

@media (max-width: 1024px) {
	.e-con.lt-overlap {
		max-width: 34rem;
		margin-inline: auto;
	}

	.e-con > .elementor-widget-text-editor.lt-hero__script {
		left: -1.2rem;
	}
}

@media (max-width: 767px) {
	.lt-topbar-bar .lt-topbar__line:not(.lt-topbar__open) {
		display: none;
	}

	.e-con > .elementor-widget-text-editor.lt-hero__script {
		left: auto;
		right: 0.5rem;
		bottom: -0.45em;
	}

	.e-con.lt-hero__media {
		margin-bottom: 1.5rem;
	}

	/* The scatter: squares in loose rows above and below the offer, sizes kept. */
	.e-con.lt-scatter__side {
		--flex-direction: row !important;
		--flex-wrap: wrap !important;
		--align-items: flex-end !important;
		--justify-content: space-between !important;
		flex-direction: row !important;
		flex-wrap: wrap !important;
		align-items: flex-end !important;
		justify-content: space-between !important;
		--gap: 1rem !important;
		--row-gap: 1.5rem !important;
	}

	.e-con.lt-tile {
		--width: 46%;
		width: 46%;
	}

	.e-con.lt-tile.lt-tile--m {
		--width: 38%;
		width: 38%;
	}

	.e-con.lt-tile.lt-tile--s {
		--width: 30%;
		width: 30%;
	}

	.lt-scatter__side--left > .e-con.lt-tile:nth-child(1) {
		margin-top: 0;
	}

	.lt-scatter__side--right > .e-con.lt-tile:nth-child(2) {
		margin-left: 0;
	}

	.lt-scatter__side > .e-con.lt-tile {
		align-self: flex-end;
	}

	.lt-item.e-con .elementor-widget-image.lt-sq img {
		aspect-ratio: 1;
	}

	.lt-price__amount {
		text-align: right;
	}

	.lt-visit__script.elementor-widget-text-editor {
		margin-left: 1rem;
	}
}
