/*
Theme Name:   Little & Large
Theme URI:    https://landlchristmastrees.co.uk
Description:  Child theme of Woostify for Little & Large Christmas Trees. Holds the colour palette, typography and layout styling so Woostify updates do not overwrite them.
Author:       Little & Large Christmas Trees
Template:     woostify
Version:      1.0.0
Text Domain:  little-large
*/

/* ==========================================================================
   Design tokens
   ========================================================================== */
:root {
	--llct-bg: #FBF7EE;
	--llct-surface: #FFFDF8;
	/* Greens taken from the Little & Large logo (#084404) */
	--llct-ink: #17251A;
	--llct-muted: #47584A;
	--llct-accent: #0B4A0B;
	--llct-accent-deep: #063506;
	--llct-gold: #B8954A;
	--llct-gold-ink: #7D5F23;
	--llct-line: #E6DCC6;
	--llct-line-strong: #C9BB9B;
	--llct-cream-on-dark: #F4ECDA;
	--llct-font-display: "DM Serif Display", Georgia, "Times New Roman", serif;
	--llct-font-body: "Figtree", Arial, Helvetica, sans-serif;
	--llct-radius-sm: 6px;
	--llct-radius-md: 10px;
}

/* ==========================================================================
   Base
   ========================================================================== */
body {
	background-color: var(--llct-bg);
	color: var(--llct-ink);
	font-family: var(--llct-font-body);
	font-size: 17px;
	line-height: 1.65;
	-webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4,
.entry-title,
.product_title,
.woocommerce-loop-product__title,
.page-title {
	font-family: var(--llct-font-display);
	font-weight: 400;
	color: var(--llct-accent-deep);
	line-height: 1.12;
	letter-spacing: 0;
}

a {
	color: var(--llct-accent);
	text-underline-offset: 3px;
}
a:hover {
	color: var(--llct-gold-ink);
}

/* Visible keyboard focus everywhere */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
[tabindex]:focus-visible,
.button:focus-visible {
	outline: 3px solid var(--llct-gold-ink) !important;
	outline-offset: 3px !important;
	box-shadow: none !important;
}

::selection {
	background: var(--llct-accent);
	color: var(--llct-surface);
}

/* ==========================================================================
   Buttons
   ========================================================================== */
.button,
button.button,
.woocommerce .button,
.woocommerce button.button,
.woocommerce a.button,
.single_add_to_cart_button,
.wc-block-components-button:not(.is-link),
input[type="submit"],
.llct-button {
	background-color: var(--llct-accent) !important;
	color: var(--llct-surface) !important;
	border: 2px solid var(--llct-accent) !important;
	border-radius: var(--llct-radius-sm) !important;
	font-family: var(--llct-font-body);
	font-weight: 600;
	font-size: 1rem;
	letter-spacing: 0.01em;
	line-height: 1.2;
	padding: 14px 26px;
	min-height: 48px;
	text-transform: none;
	box-shadow: none;
	transition: background-color .15s ease, border-color .15s ease;
}
.button:hover,
button.button:hover,
.woocommerce .button:hover,
.woocommerce a.button:hover,
.single_add_to_cart_button:hover,
.wc-block-components-button:not(.is-link):hover,
input[type="submit"]:hover,
.llct-button:hover {
	background-color: var(--llct-accent-deep) !important;
	border-color: var(--llct-accent-deep) !important;
	color: var(--llct-surface) !important;
}
.single_add_to_cart_button.disabled,
.single_add_to_cart_button:disabled {
	opacity: .55;
	cursor: not-allowed;
}

/* ==========================================================================
   Header
   ========================================================================== */
.site-header,
.site-header .header-layout-1 {
	background-color: var(--llct-surface);
}
.site-header {
	border-bottom: 1px solid var(--llct-line);
}
.site-branding .site-title a,
.site-branding .site-title {
	font-family: var(--llct-font-display);
	font-size: 1.6rem;
	color: var(--llct-accent-deep);
	line-height: 1.1;
}
.site-branding .site-description {
	display: none;
}
.primary-navigation > li > a,
.main-navigation .primary-navigation > li > a {
	font-family: var(--llct-font-body);
	font-weight: 600;
	font-size: 15.5px;
	color: var(--llct-ink);
}
.primary-navigation > li.current-menu-item > a,
.primary-navigation > li > a:hover {
	color: var(--llct-accent);
}
.primary-navigation > li.current-menu-item > a {
	text-decoration: underline;
	text-decoration-color: var(--llct-gold);
	text-decoration-thickness: 2px;
	text-underline-offset: 8px;
}
.site-tools .tools-icon,
.site-tools a {
	color: var(--llct-accent-deep);
}
.shop-cart-count {
	background-color: var(--llct-accent) !important;
	color: var(--llct-surface) !important;
}

/* ==========================================================================
   Page content area
   ========================================================================== */
#view,
.site-content {
	background-color: var(--llct-bg);
}

/* Elementor pages run full width and own their spacing */
.elementor-page .site-content > .container {
	max-width: none;
	padding-left: 0;
	padding-right: 0;
}

/* ==========================================================================
   Shop listing
   ========================================================================== */
.woocommerce-products-header,
.woostify-shop-header {
	text-align: center;
}
.products .product .product-loop-wrapper,
ul.products li.product {
	background: var(--llct-surface);
	border: 1px solid var(--llct-line);
	border-radius: var(--llct-radius-md);
	overflow: hidden;
}
ul.products li.product .product-loop-content,
ul.products li.product .product-loop-meta {
	padding-left: 18px;
	padding-right: 18px;
}
ul.products li.product .woocommerce-loop-product__title,
ul.products li.product .woocommerce-loop-product__title a {
	font-family: var(--llct-font-display);
	font-size: 1.45rem;
	color: var(--llct-accent-deep);
	line-height: 1.15;
}
ul.products li.product .price {
	font-size: 1.15rem;
	color: var(--llct-ink);
	font-weight: 600;
}

/* ==========================================================================
   Single product
   ========================================================================== */
.single-product .product_title {
	font-size: clamp(2rem, 3.4vw, 2.8rem);
	margin-bottom: 10px;
}
.single-product .summary .price,
.single-product .woocommerce-variation-price .price {
	font-size: 1.6rem;
	color: var(--llct-accent-deep);
	font-weight: 700;
}
.single-product .woocommerce-variation-availability .stock {
	font-weight: 600;
}
.single-product .stock.out-of-stock {
	color: #A3271F;
}
.single-product .stock.in-stock {
	color: var(--llct-accent);
}
.single-product .product-gallery,
.single-product .woocommerce-product-gallery img {
	border-radius: var(--llct-radius-md);
}
.woocommerce-tabs .tabs li a {
	font-family: var(--llct-font-body);
	font-weight: 600;
}

/* Quantity control */
.quantity .qty,
.quantity input {
	min-height: 48px;
	font-size: 1rem;
	color: var(--llct-ink);
}

/* ==========================================================================
   Basket & checkout (WooCommerce blocks)
   ========================================================================== */
.wc-block-components-product-name {
	font-family: var(--llct-font-display);
	font-size: 1.2rem;
	color: var(--llct-accent-deep);
}
.wc-block-components-product-details {
	font-weight: 600;
	color: var(--llct-ink);
}
.wc-block-components-text-input input,
.wc-block-components-textarea,
.wc-blocks-components-select__select {
	border-color: var(--llct-line-strong) !important;
}

/* ==========================================================================
   Footer
   ========================================================================== */
.site-footer {
	background-color: var(--llct-accent-deep);
	color: var(--llct-cream-on-dark);
	padding: 0;
	margin-top: 0;
}
.ll-footer {
	max-width: 1200px;
	margin: 0 auto;
	padding: 64px 24px 28px;
}
.ll-footer__grid {
	display: grid;
	grid-template-columns: 1.4fr 1fr 1fr 1.3fr;
	gap: 40px;
}
.ll-footer__name {
	font-family: var(--llct-font-display);
	font-size: 1.7rem;
	line-height: 1.1;
	color: var(--llct-surface);
	margin: 0 0 12px;
}
.ll-footer__logo img {
	max-width: 140px;
	height: auto;
	display: block;
	margin-bottom: 18px;
}
.ll-footer__tag {
	color: var(--llct-cream-on-dark);
	max-width: 30ch;
	margin: 0;
}
.ll-footer__heading {
	font-family: var(--llct-font-body);
	font-size: .85rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .1em;
	color: var(--llct-gold);
	margin: 0 0 14px;
}
.ll-footer__links,
.ll-footer__policies {
	list-style: none;
	margin: 0;
	padding: 0;
}
.ll-footer__links li {
	margin: 0 0 8px;
}
.site-footer a,
.ll-footer a {
	color: var(--llct-surface);
	text-decoration: none;
}
.site-footer a:hover,
.ll-footer a:hover {
	color: var(--llct-surface);
	text-decoration: underline;
	text-decoration-color: var(--llct-gold);
}
.ll-footer a:focus-visible {
	outline-color: var(--llct-gold) !important;
}
.ll-footer .llct-detail {
	margin: 0 0 10px;
	color: var(--llct-cream-on-dark);
}
.ll-footer .llct-detail__label {
	display: block;
	font-size: .85rem;
	color: var(--llct-gold);
}
.ll-footer__cta {
	display: inline-block;
	padding: 10px 18px;
	border: 2px solid var(--llct-gold);
	border-radius: var(--llct-radius-sm);
	font-weight: 600;
}
.ll-footer__bottom {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: 12px 24px;
	margin-top: 48px;
	padding-top: 22px;
	border-top: 1px solid rgba(244, 236, 218, .2);
	font-size: .92rem;
}
.ll-footer__copy {
	margin: 0;
	color: var(--llct-cream-on-dark);
}
.ll-footer__policies {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 20px;
}

@media (max-width: 991px) {
	.ll-footer__grid {
		grid-template-columns: 1fr 1fr;
	}
	.ll-footer__brand {
		grid-column: 1 / -1;
	}
}
@media (max-width: 600px) {
	.ll-footer {
		padding: 48px 20px 24px;
	}
	.ll-footer__grid {
		grid-template-columns: 1fr;
		gap: 28px;
	}
}

/* ==========================================================================
   Shared content components used in the Elementor pages
   ========================================================================== */
.llct-rule {
	display: block;
	width: 48px;
	height: 2px;
	background: var(--llct-gold);
	border: 0;
	margin: 18px 0 22px;
}
.llct-photo-placeholder {
	position: relative;
	display: flex;
	align-items: flex-end;
	justify-content: flex-start;
	aspect-ratio: 4 / 5;
	width: 100%;
	border-radius: var(--llct-radius-md);
	background:
		linear-gradient(160deg, rgba(6, 53, 6, .0) 30%, rgba(6, 53, 6, .55) 100%),
		radial-gradient(circle at 70% 25%, #1F6A1F 0%, #0B4A0B 45%, #063506 100%);
	overflow: hidden;
}
.llct-photo-placeholder::before {
	content: "";
	position: absolute;
	left: 50%;
	bottom: 14%;
	width: 46%;
	aspect-ratio: 3 / 4;
	transform: translateX(-50%);
	background: rgba(244, 236, 218, .14);
	clip-path: polygon(50% 0, 66% 24%, 58% 24%, 78% 50%, 66% 50%, 90% 82%, 56% 82%, 56% 100%, 44% 100%, 44% 82%, 10% 82%, 34% 50%, 22% 50%, 42% 24%, 34% 24%);
}
.llct-photo-placeholder span {
	position: relative;
	margin: 16px;
	padding: 6px 12px;
	border-radius: 4px;
	background: rgba(6, 53, 6, .85);
	color: var(--llct-cream-on-dark);
	font-size: .85rem;
	font-weight: 600;
}
.llct-photo-placeholder--wide {
	aspect-ratio: 16 / 10;
}

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after {
		transition-duration: 0.01ms !important;
		animation-duration: 0.01ms !important;
		scroll-behavior: auto !important;
	}
}

/* ==========================================================================
   Page sections (Elementor containers carry these classes)
   ========================================================================== */
.ll-section {
	padding-top: 88px;
	padding-bottom: 88px;
}
.ll-section--tight {
	padding-top: 56px;
	padding-bottom: 56px;
}
.ll-section--surface {
	background: var(--llct-surface);
	border-top: 1px solid var(--llct-line);
	border-bottom: 1px solid var(--llct-line);
}
.ll-section--green {
	background: var(--llct-accent-deep);
	color: var(--llct-cream-on-dark);
}
.ll-section--green h2,
.ll-section--green .elementor-heading-title {
	color: var(--llct-surface) !important;
}
.ll-section--green p,
.ll-section--green .elementor-widget-text-editor {
	color: var(--llct-cream-on-dark);
}

.ll-hero {
	padding-top: 64px;
	padding-bottom: 72px;
}
.ll-hero .elementor-heading-title.ll-h1,
.ll-hero h1 {
	font-size: clamp(2.4rem, 4.4vw, 3.6rem) !important;
	line-height: 1.05 !important;
	max-width: 16ch;
}
.ll-lead .elementor-heading-title,
.ll-lead {
	font-family: var(--llct-font-body) !important;
	font-size: 1.3rem !important;
	font-weight: 600 !important;
	color: var(--llct-accent) !important;
	line-height: 1.35 !important;
}
.ll-copy,
.ll-copy p {
	font-size: 1.08rem;
	line-height: 1.7;
	max-width: 60ch;
	color: var(--llct-ink);
}
.ll-copy p:last-child {
	margin-bottom: 0;
}
.ll-h2 .elementor-heading-title {
	font-size: clamp(2rem, 3.4vw, 2.75rem) !important;
	line-height: 1.1 !important;
}
.ll-center {
	text-align: center;
}
.ll-center .ll-copy,
.ll-center .ll-copy p {
	margin-left: auto;
	margin-right: auto;
}
.ll-rule-wrap .elementor-widget-container::after,
.ll-rule .elementor-heading-title::after {
	content: "";
	display: block;
	width: 48px;
	height: 2px;
	background: var(--llct-gold);
	margin-top: 18px;
}
.ll-center .ll-rule .elementor-heading-title::after {
	margin-left: auto;
	margin-right: auto;
}

/* Images */
.ll-photo img {
	width: 100%;
	height: auto;
	border-radius: var(--llct-radius-md);
	display: block;
}
.ll-photo--offset img {
	box-shadow: 18px 18px 0 0 var(--llct-line);
}
.ll-section--green .ll-photo--offset img {
	box-shadow: -18px 18px 0 0 rgba(184, 149, 74, .55);
}

/* Secondary (outline) button */
.ll-btn-outline .elementor-button {
	background: transparent !important;
	color: var(--llct-accent) !important;
	border: 2px solid var(--llct-accent) !important;
}
.ll-btn-outline .elementor-button:hover {
	background: var(--llct-accent) !important;
	color: var(--llct-surface) !important;
}
.ll-section--green .ll-btn-light .elementor-button {
	background: var(--llct-surface) !important;
	color: var(--llct-accent-deep) !important;
	border-color: var(--llct-surface) !important;
}
.ll-section--green .ll-btn-light .elementor-button:hover {
	background: var(--llct-cream-on-dark) !important;
}
.elementor-button {
	background-color: var(--llct-accent);
	color: var(--llct-surface);
	border: 2px solid var(--llct-accent);
	border-radius: var(--llct-radius-sm);
	font-family: var(--llct-font-body);
	font-weight: 600;
	font-size: 1rem;
	padding: 15px 28px;
	line-height: 1.2;
}
.elementor-button:hover,
.elementor-button:focus {
	background-color: var(--llct-accent-deep);
	border-color: var(--llct-accent-deep);
	color: var(--llct-surface);
}

/* Why choose us list */
.ll-reasons .elementor-icon-list-item {
	padding: 16px 0 !important;
	border-bottom: 1px solid var(--llct-line);
	font-size: 1.1rem;
	color: var(--llct-ink);
}
.ll-reasons .elementor-icon-list-item:first-child {
	border-top: 1px solid var(--llct-line);
}
.ll-reasons .elementor-icon-list-icon svg,
.ll-reasons .elementor-icon-list-icon i {
	fill: var(--llct-gold-ink);
	color: var(--llct-gold-ink);
}
.ll-reasons .elementor-icon-list-text {
	color: var(--llct-ink);
}

/* Panel used for calls to action */
.ll-panel {
	background: var(--llct-surface);
	border: 1px solid var(--llct-line);
	border-top: 3px solid var(--llct-gold);
	border-radius: var(--llct-radius-md);
	padding: 40px !important;
}

/* Simple text pages (About, Delivery, Contact) */
.ll-page-hero {
	padding-top: 72px;
	padding-bottom: 40px;
}
.ll-page-hero .elementor-heading-title {
	font-size: clamp(2.4rem, 4.4vw, 3.4rem) !important;
	line-height: 1.08 !important;
}
.ll-details .llct-detail {
	margin: 0 0 14px;
}
.ll-details .llct-detail__label {
	display: block;
	font-weight: 700;
	color: var(--llct-accent-deep);
}

@media (max-width: 767px) {
	.ll-section {
		padding-top: 56px;
		padding-bottom: 56px;
	}
	.ll-hero {
		padding-top: 32px;
		padding-bottom: 48px;
	}
	.ll-panel {
		padding: 28px 22px !important;
	}
	.ll-photo--offset img,
	.ll-section--green .ll-photo--offset img {
		box-shadow: 10px 10px 0 0 var(--llct-line);
	}
}
.ll-page-hero-title .elementor-heading-title {
	font-size: clamp(2.4rem, 4.4vw, 3.4rem) !important;
	line-height: 1.08 !important;
}
.ll-hero-title .elementor-heading-title {
	font-size: clamp(2.4rem, 4.4vw, 3.6rem) !important;
	line-height: 1.05 !important;
	max-width: 16ch;
}

/* Header logo sits centred in the bar */
.site-branding .custom-logo-link img {
	max-height: 74px;
	width: auto;
	margin: 6px 0;
}

.ll-shop-header {
	text-align: center;
	max-width: 720px;
	margin: 24px auto 40px;
}
.ll-shop-header__title {
	font-size: clamp(2.2rem, 4vw, 3.2rem);
	margin: 0 0 14px;
}
.ll-shop-header__title::after {
	content: "";
	display: block;
	width: 48px;
	height: 2px;
	background: var(--llct-gold);
	margin: 18px auto 0;
}
.ll-shop-header__intro {
	color: var(--llct-muted);
	font-size: 1.08rem;
	margin: 0;
}

/* Shop cards: always show price and Choose Size button */
ul.products li.product .product-loop-meta {
	height: auto !important;
	overflow: visible !important;
}
ul.products li.product .animated-meta {
	position: static !important;
	transform: none !important;
	top: auto !important;
}
ul.products li.product .loop-add-to-cart-btn {
	display: inline-flex !important;
	align-items: center;
	margin-top: 14px;
	opacity: 1 !important;
	visibility: visible !important;
}
ul.products li.product .loop-add-to-cart-btn svg {
	display: none;
}
ul.products li.product .product-loop-image-wrapper,
ul.products li.product .product-loop-image-wrapper a {
	display: block;
	padding: 0 !important;
	margin: 0 !important;
}
ul.products li.product img.product-loop-image {
	width: 100%;
	height: auto;
	display: block;
	margin: 0;
}
ul.products li.product .product-loop-content {
	padding: 18px 20px 22px !important;
}

ul.products li.product .product-loop-meta,
ul.products li.product .animated-meta {
	padding-left: 0 !important;
	padding-right: 0 !important;
}
ul.products li.product .loop-add-to-cart-btn {
	padding: 12px 24px !important;
	min-height: 46px;
}
.woocommerce ul.products {
	justify-content: center;
}

/* Heading scale that stays below the page title */
h2,
.elementor-widget-heading h2.elementor-heading-title {
	font-size: clamp(1.7rem, 3vw, 2.4rem);
	line-height: 1.12;
}
h3,
.elementor-widget-heading h3.elementor-heading-title {
	font-size: clamp(1.35rem, 2vw, 1.6rem);
	line-height: 1.18;
}
.site-footer .ll-footer__heading {
	font-family: var(--llct-font-body) !important;
	font-size: .85rem !important;
	letter-spacing: .1em !important;
	line-height: 1.4 !important;
}
@media (max-width: 767px) {
	.ll-hero .ll-photo img {
		max-height: 340px;
		object-fit: cover;
	}
}

.ll-page-title {
	font-size: clamp(2.2rem, 4vw, 3rem);
	margin: 32px 0 28px;
}

/* Green header with white menu text */
.site-header,
.site-header .header-layout-1,
.site-header .site-header-inner {
	background-color: var(--llct-accent) !important;
}
.site-header {
	border-bottom: 3px solid var(--llct-gold);
}
.site-header .primary-navigation > li > a,
.site-header .main-navigation .primary-navigation > li > a {
	color: #FFFFFF !important;
}
.site-header .primary-navigation > li > a:hover,
.site-header .primary-navigation > li > a:focus-visible {
	color: var(--llct-cream-on-dark) !important;
	text-decoration: underline;
	text-decoration-color: var(--llct-gold);
	text-decoration-thickness: 2px;
	text-underline-offset: 8px;
}
.site-header .primary-navigation > li.current-menu-item > a {
	color: #FFFFFF !important;
	text-decoration-color: var(--llct-gold);
}
.site-header .site-tools a,
.site-header .site-tools .tools-icon,
.site-header .site-tools svg,
.site-header .toggle-sidebar-menu-btn,
.site-header .toggle-sidebar-menu-btn svg {
	color: #FFFFFF !important;
	fill: #FFFFFF !important;
}
.site-header .toggle-sidebar-menu-btn span,
.site-header .woostify-icon-bar span {
	background-color: #FFFFFF !important;
}
.site-header .shop-cart-count {
	background-color: var(--llct-cream-on-dark) !important;
	color: var(--llct-accent-deep) !important;
}
.site-header a:focus-visible,
.site-header button:focus-visible {
	outline-color: var(--llct-gold) !important;
}

/* Footer: everything centred on mobile */
@media (max-width: 767px) {
	.ll-footer,
	.ll-footer__grid,
	.ll-footer__brand,
	.ll-footer__col,
	.ll-footer__bottom {
		text-align: center;
	}
	.ll-footer__grid {
		justify-items: center;
	}
	.ll-footer__logo,
	.ll-footer__logo a,
	.ll-footer__logo img {
		margin-left: auto !important;
		margin-right: auto !important;
	}
	.ll-footer__logo a {
		display: inline-block;
	}
	.ll-footer__tag {
		margin-left: auto;
		margin-right: auto;
	}
	.ll-footer__links,
	.ll-footer__policies {
		justify-content: center;
		padding: 0;
	}
	.ll-footer__bottom {
		flex-direction: column;
		align-items: center;
		justify-content: center;
	}
}

/* In-person store locations */
.ll-location {
	background: var(--llct-bg);
	border: 1px solid var(--llct-line);
	border-top: 3px solid var(--llct-accent);
	border-radius: var(--llct-radius-md);
	padding: 26px 24px !important;
}
.ll-location h3.elementor-heading-title {
	font-size: 1.35rem !important;
}
.ll-address,
.ll-address p {
	line-height: 1.6;
	color: var(--llct-ink);
	margin: 0;
}
.ll-location .elementor-widget-button {
	margin-top: auto;
}
@media (max-width: 767px) {
	.ll-location {
		text-align: left;
	}
}
