:root {
	--ll-ink: #2f0e13;
	--ll-black: #111111;
	--ll-berry: #8a2458;
	--ll-pink: #eba2c2;
	--ll-lilac: #d3b6e0;
	--ll-cream: #f4efea;
	--ll-mint: #c5d8d1;
	--ll-line: #e8e3e5;
	--ll-white: #ffffff;
	--ll-radius: 8px;
	--ll-shadow: 0 12px 36px rgba(47, 14, 19, 0.08);
}

html { scroll-behavior: smooth; }

body,
button,
input,
select,
textarea {
	font-family: Montserrat, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

body {
	color: var(--ll-ink);
	background: var(--ll-white);
}

h1, h2, h3, h4, h5, h6 {
	color: var(--ll-ink);
	font-weight: 600;
	letter-spacing: -0.025em;
}

a { color: var(--ll-berry); }
a:hover { color: var(--ll-ink); }

.col-full {
	max-width: 1440px;
	padding-right: clamp(20px, 4vw, 64px);
	padding-left: clamp(20px, 4vw, 64px);
}

.site-header {
	padding: 0;
	border-bottom: 1px solid var(--ll-line);
	background: var(--ll-white);
}

.ll-announcement { padding: 9px 16px; background: var(--ll-ink); color: #fff; text-align: center; font-size: .78rem; font-weight: 700; letter-spacing: .025em; }
.ll-announcement span { margin: 0 9px; color: var(--ll-pink); }
.site-header .col-full { display: flex; align-items: center; gap: clamp(24px,4vw,64px); }
.site-header > .col-full:empty { display: none; }
.storefront-primary-navigation { border: 0; }
.storefront-primary-navigation .col-full { min-height: 82px; }
.site-branding { width: auto; min-width: max-content; margin: 0; }
.site-branding .site-title { margin: 0; font-size: clamp(1.25rem,2vw,1.65rem); }
.ll-site-branding { display: flex; flex: 0 0 190px; align-items: center; width: 190px; min-height: 54px; margin: 0; }
.ll-site-branding a { display: block; color: var(--ll-ink); text-decoration: none; }
.ll-brand-logo { display: block; width: auto; max-width: 180px; height: 52px; object-fit: contain; object-position: left center; }
.ll-brand-fallback { font-size: 1.35rem; font-weight: 800; }
.main-navigation { flex: 1; width: auto; }
.main-navigation div.menu { display: flex; align-items: center; }
.main-navigation ul.menu > li > a { padding: .9rem 1rem; font-size: .86rem; letter-spacing: .005em; }
.ll-header-actions { display: flex; align-items: center; gap: 16px; margin-left: auto; }
.ll-header-actions a { color: var(--ll-ink); text-decoration: none; }
.ll-header-actions svg { display: block; width: 23px; height: 23px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.ll-header-account { font-size: 1.35rem; }
.ll-header-cart { position: relative; font-size: .8rem; font-weight: 800; text-transform: uppercase; letter-spacing: .05em; }
.ll-cart-count { position: absolute; top: -10px; right: -13px; display: grid; place-items: center; width: 19px; height: 19px; border-radius: 50%; background: var(--ll-berry); color: #fff; font-size: .68rem; }

.site-branding .site-title a { color: var(--ll-ink); }
.site-branding .site-description { display: none; }

.main-navigation ul li a,
.site-header-cart .cart-contents {
	color: var(--ll-ink);
	font-weight: 600;
}

button,
.button,
input[type="button"],
input[type="reset"],
input[type="submit"],
.wc-block-components-button,
.added_to_cart {
	min-height: 48px;
	padding: 12px 22px;
	border: 1px solid var(--ll-berry);
	border-radius: 6px;
	background: var(--ll-berry);
	color: var(--ll-white);
	font-weight: 700;
	line-height: 1.2;
	box-shadow: none;
}

button:hover,
.button:hover,
input[type="submit"]:hover,
.wc-block-components-button:hover {
	border-color: var(--ll-ink);
	background: var(--ll-ink);
	color: var(--ll-white);
}

input[type="text"],
input[type="email"],
input[type="tel"],
input[type="password"],
input[type="number"],
select,
textarea,
.wc-block-components-text-input input {
	border: 1px solid var(--ll-line);
	border-radius: var(--ll-radius);
	background: var(--ll-white);
	box-shadow: none;
}

ul.products li.product {
	margin-bottom: 36px;
	text-align: left;
}

ul.products li.product img {
	width: 100%;
	border-radius: 10px;
	background: var(--ll-cream);
	box-shadow: 0 1px 0 rgba(47, 14, 19, 0.05);
}

ul.products li.product .woocommerce-loop-product__title {
	font-size: 1rem;
	line-height: 1.35;
}

ul.products li.product .price,
.single-product div.product p.price {
	color: var(--ll-ink);
	font-weight: 700;
}

.onsale {
	border: 0;
	border-radius: 4px;
	background: var(--ll-mint);
	color: #172621;
}

.single-product div.product {
	padding-top: 24px;
}

.single-product div.product .woocommerce-product-gallery img {
	border-radius: 10px;
}

.single-product div.product form.cart {
	padding: 20px 0;
}

.single-product .summary .product_title { font-size: clamp(1.8rem,3vw,3rem); line-height: 1.06; }
.single-product .summary .price { font-size: 1.35rem; }
.single-product table.variations th { display: block; padding: 0 0 8px; }
.single-product table.variations td { display: block; padding: 0 0 16px; }
.single-product table.variations select { width: 100%; min-height: 52px; }
.ll-product-promises { display: grid; grid-template-columns: repeat(3,1fr); gap: 1px; margin: 22px 0; border: 1px solid var(--ll-line); border-radius: 10px; overflow: hidden; background: var(--ll-line); }
.ll-product-promises span { display: flex; flex-direction: column; padding: 14px 10px; background: #fff; text-align: center; }
.ll-product-promises strong { font-size: .78rem; }
.ll-product-promises small { color: #725f63; font-size: .68rem; }
.ll-product-details { clear: both; max-width: 900px; margin: 48px auto; border-top: 1px solid var(--ll-line); }
.ll-product-details details { border-bottom: 1px solid var(--ll-line); }
.ll-product-details summary { cursor: pointer; padding: 20px 4px; font-weight: 750; list-style: none; }
.ll-product-details summary::after { content: '+'; float: right; font-size: 1.3rem; font-weight: 400; }
.ll-product-details details[open] summary::after { content: '–'; }
.ll-detail-content { padding: 0 4px 20px; color: #59484c; }
.ll-mobile-buy { display: none; }

.ll-home { max-width: 1440px; margin: 0 auto; padding: 0 clamp(20px,4vw,64px) 72px; }
.ll-hero { display: block; margin-top: 26px; overflow: hidden; border-radius: 16px; background: #f5d9e5; box-shadow: 0 18px 55px rgba(47,14,19,.09); }
.ll-hero-copy { display: flex; flex-direction: column; justify-content: center; align-items: flex-start; padding: clamp(36px,7vw,96px); }
.ll-eyebrow { margin: 0 0 12px; color: var(--ll-berry); font-size: .75rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.ll-hero h1 { max-width: 720px; margin: 0 0 22px; font-size: clamp(2.7rem,5.2vw,5.4rem); line-height: .95; }
.ll-hero-copy > p:not(.ll-eyebrow) { max-width: 570px; font-size: clamp(1rem,1.5vw,1.2rem); }
.ll-hero-actions { display: flex; align-items: center; gap: 24px; margin-top: 14px; }
.ll-text-link { font-weight: 750; text-decoration: underline; text-underline-offset: 4px; }
.ll-hero-art { display: block; background: #ead9e6; }
.ll-hero-art img { display: block; width: 100%; height: auto; object-fit: contain; }
.ll-trust-line { padding: 16px 16px 0; text-align: center; font-size: .88rem; font-weight: 650; }
.ll-trust-line span { margin-right: 7px; color: #d91b68; letter-spacing: .06em; }
.ll-home-section { padding-top: clamp(56px,8vw,100px); }
.ll-section-heading { display: flex; align-items: end; justify-content: space-between; gap: 24px; margin-bottom: 28px; }
.ll-section-heading h2 { margin: 0; font-size: clamp(2rem,4vw,3.4rem); }
.ll-collection-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 14px; }
.ll-collection-card { position: relative; display: block; aspect-ratio: 1 / 1; overflow: hidden; padding: 0; border-radius: 10px; background-color: #fbf8fa; background-image: var(--ll-card-image); background-position: center; background-repeat: no-repeat; background-size: contain; color: #fff; text-decoration: none; transition: transform .25s ease,box-shadow .25s ease; }
.ll-collection-card:hover { transform: translateY(-4px); color: #fff; box-shadow: 0 20px 45px rgba(47,14,19,.18); }
.ll-collection-card span { position: relative; font-size: 1.65rem; font-weight: 800; line-height: 1.08; }
.ll-collection-card small { position: relative; margin-top: 6px; color: rgba(255,255,255,.86); }
.ll-section-heading em { font-family: Georgia,serif; font-weight: 400; }
.ll-review-stage { display: grid; justify-items: center; margin-top: clamp(64px,8vw,110px); padding: clamp(44px,7vw,88px) 24px; border-radius: 18px; background: #fbf6f8; text-align: center; }
.ll-review-stage h2 { max-width: 720px; margin: 0; font-size: clamp(2rem,4vw,3.7rem); }
.ll-review-stats { display: flex; align-items: center; gap: 16px; margin-top: 24px; }
.ll-review-stats strong { font-size: 3.6rem; line-height: 1; }
.ll-review-stats span { display: flex; flex-direction: column; color: #d91b68; text-align: left; }
.ll-review-stats small { margin-top: 3px; color: #725f63; }
.ll-marquee { width: 100vw; margin: 72px calc(50% - 50vw) 0; overflow: hidden; border-block: 1px solid var(--ll-line); white-space: nowrap; }
.ll-marquee div { width: max-content; padding: 26px 0; font-size: clamp(1.7rem,3vw,3rem); font-weight: 800; animation: llMarquee 28s linear infinite; }
.ll-marquee em { font-family: Georgia,serif; font-weight: 400; }
.ll-marquee i { margin: 0 28px; color: #d4af37; font-style: normal; }
@keyframes llMarquee { to { transform: translateX(-50%); } }
.ll-social-stage { display: flex; align-items: end; justify-content: space-between; gap: 30px; margin-top: 64px; padding: clamp(36px,6vw,70px); border-radius: 16px; background: linear-gradient(130deg,#f4dce7,#e8ddf1); }
.ll-social-stage h2 { margin: 0; font-size: clamp(2rem,4vw,3.6rem); }
.ll-social-stage p:not(.ll-eyebrow) { max-width: 600px; }
.ll-confidence { display: grid; grid-template-columns: repeat(3,1fr); gap: 1px; margin-top: 90px; background: var(--ll-line); border: 1px solid var(--ll-line); border-radius: 14px; overflow: hidden; }
.ll-confidence div { display: flex; min-height: 140px; flex-direction: column; justify-content: center; padding: 28px; background: #fff; }
.ll-confidence strong { font-size: 1.05rem; }
.ll-confidence span { margin-top: 5px; color: #725f63; font-size: .86rem; }

.single_add_to_cart_button {
	min-height: 54px;
	font-size: 1rem;
}

.woocommerce-message,
.woocommerce-info,
.woocommerce-error,
.wc-block-components-notice-banner {
	border-radius: var(--ll-radius);
}

.ll-footer-credit {
	display: flex;
	justify-content: space-between;
	gap: 24px;
	padding: 24px 0;
	font-size: 0.875rem;
}
.site-footer { padding: 0; background: #f7f4f5; }
.ll-footer-main { display: grid; grid-template-columns: 1.5fr repeat(3,1fr); gap: clamp(28px,5vw,72px); padding: 64px 0 46px; border-bottom: 1px solid #dfd9db; }
.ll-footer-main h2 { margin: 0 0 14px; font-size: 1.65rem; }
.ll-footer-main h3 { margin: 0 0 18px; font-size: .78rem; letter-spacing: .1em; text-transform: uppercase; }
.ll-footer-main p { max-width: 340px; color: #725f63; font-size: .85rem; }
.ll-footer-main > div:not(.ll-footer-brand) { display: flex; align-items: flex-start; flex-direction: column; }
.ll-footer-main a:not(.button) { margin-bottom: 10px; color: var(--ll-ink); font-size: .84rem; text-decoration: none; }
.ll-footer-connect .button { margin-top: 10px; }
.ll-footer-main .button,.site-footer .ll-footer-main .button { color: #fff; }

.ll-footer-credit nav {
	display: flex;
	flex-wrap: wrap;
	gap: 18px;
}

/* Checkout stays deliberately quiet and card-first. */
.woocommerce-checkout .site-header,
.woocommerce-cart .site-header {
	padding-top: 14px;
	padding-bottom: 14px;
}

.woocommerce-checkout .site-footer {
	padding-top: 12px;
}

.wc-block-checkout,
.woocommerce-checkout form.checkout {
	max-width: 1180px;
	margin-right: auto;
	margin-left: auto;
}

.wc-block-components-order-summary,
.wc-block-checkout__payment-method,
.woocommerce-checkout-review-order {
	border-color: var(--ll-line);
	border-radius: 10px;
}

@media (max-width: 767px) {
	.site-header {
		padding: 12px 0;
	}

	.site-header .col-full {
		padding-right: 16px;
		padding-left: 16px;
	}
	.site-header .col-full { justify-content: space-between; }
	.main-navigation { order: 3; flex: 0; }
	.storefront-primary-navigation { order: 3; }
	.ll-header-account { display: none; }
	.ll-announcement { font-size: .68rem; }

	.site-branding {
		width: auto;
		margin-bottom: 0;
	}

	.col-full {
		padding-right: 16px;
		padding-left: 16px;
	}

	ul.products {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 22px 12px;
	}

	ul.products::before,
	ul.products::after { display: none; }

	ul.products li.product {
		width: auto !important;
		margin: 0 !important;
	}

	.ll-footer-credit {
		flex-direction: column;
	}

	.wc-block-checkout,
	.woocommerce-checkout form.checkout {
		padding-right: 0;
		padding-left: 0;
	}
	.ll-hero { margin: 12px 0 0; min-height: 0; }
	.ll-hero-copy { padding: 42px 24px 38px; }
	.ll-hero h1 { font-size: clamp(2.6rem,14vw,4rem); }
	.ll-hero-art { min-height: 340px; }
	.ll-hero-art img { min-height: 340px; object-fit: cover; }
	.ll-hero-actions { width: 100%; justify-content: space-between; }
	.ll-collection-grid { display: flex; width: calc(100vw - 16px); margin-left: -8px; padding: 0 16px 12px; gap: 12px; overflow-x: auto; scroll-snap-type: x mandatory; }
	.ll-collection-card { min-width: 82vw; min-height: 0; padding: 0; scroll-snap-align: center; }
	.ll-collection-card span { font-size: 1.4rem; }
	.ll-review-stage { margin-inline: -8px; border-radius: 12px; }
	.ll-social-stage { align-items: flex-start; flex-direction: column; margin-top: 56px; padding: 34px 24px; }
	.ll-marquee { margin-top: 56px; }
	.ll-footer-main { grid-template-columns: 1fr 1fr; padding: 42px 0 30px; }
	.ll-footer-brand,.ll-footer-connect { grid-column: span 2; }
	.ll-confidence { grid-template-columns: 1fr; margin-top: 56px; }
	.ll-confidence div { min-height: 105px; }
	.single-product div.product { padding-top: 8px; }
	.single-product .woocommerce-product-gallery { margin-bottom: 18px; }
	.single-product .summary .product_title { font-size: 1.75rem; }
	.ll-product-promises { grid-template-columns: 1fr; }
	.ll-product-promises span { flex-direction: row; align-items: center; justify-content: space-between; text-align: left; }
	.ll-mobile-buy { position: fixed; z-index: 9999; bottom: 0; left: 0; right: 0; display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 10px 14px calc(10px + env(safe-area-inset-bottom)); border-top: 1px solid var(--ll-line); background: rgba(255,255,255,.96); box-shadow: 0 -8px 28px rgba(47,14,19,.1); backdrop-filter: blur(12px); }
	.ll-mobile-buy > div { min-width: 0; }
	.ll-mobile-buy strong { display: block; max-width: 48vw; overflow: hidden; font-size: .74rem; text-overflow: ellipsis; white-space: nowrap; }
	.ll-mobile-buy .price { font-size: .78rem; }
	.ll-mobile-buy button { min-height: 44px; padding: 10px 16px; }
}
