/*
Theme Name: Enlightink
Template: generatepress
Description: GeneratePress child theme for enlightink.com
Version: 0.3.1
*/

:root {
	--el-paper: #fbf7f0;
	--el-card: #ffffff;
	--el-ink: #17124d;
	--el-ink-soft: #55517a;
	--el-line: #e6dfd2;
	--el-coral: #f26b3f;
	--el-coral-soft: #ffe6da;
	--el-coral-deep: #b23a0b; /* coral for small text and badges: readable on white and cream */
	--el-blue-deep: #2f62c9;
	--el-blue: #4a86f0;
	--el-blue-soft: #e4eeff;
	--el-serif: "Iowan Old Style", "Palatino Linotype", Palatino, "Book Antiqua", Georgia, serif;
	--el-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
	--el-wrap: 1160px;
}

/* ---------- Site-wide ---------- */
body { background: var(--el-paper); color: var(--el-ink); font-family: var(--el-sans); }
h1, h2, h3, .main-title { font-family: var(--el-serif); color: var(--el-ink); letter-spacing: -0.01em; }
a { color: var(--el-ink); }
a:hover, a:focus { color: var(--el-coral); }

body .site-header { background: var(--el-paper); border-bottom: 1px solid var(--el-line); }
body .inside-header { padding-top: 14px; padding-bottom: 14px; }
.site-header .header-image { width: 168px; height: auto; }
body .main-navigation, body .main-navigation ul ul { background: transparent; }
body .main-navigation .main-nav ul li a { color: var(--el-ink); font-weight: 500; font-size: 15px; }
body .main-navigation .main-nav ul li:hover > a,
body .main-navigation .main-nav ul li[class*="current-menu-"] > a { color: var(--el-coral); background: transparent; }
body .main-navigation .menu-toggle, body .main-navigation .menu-bar-item > a { color: var(--el-ink); }
body .main-navigation.toggled .main-nav > ul { background: var(--el-paper); }

body .site-footer .site-info { background: var(--el-ink); color: #cfcbe8; font-size: 14px; }
body .site-info a { color: #fff; }
.el-footer-menu { list-style: none; margin: 0 0 14px; padding: 0; display: flex; flex-wrap: wrap; gap: 8px 24px; justify-content: center; }
.el-footer-menu a { text-decoration: none; }
.el-footer-menu a:hover { color: #ffb59b; }

/* ---------- Homepage shell ---------- */
.home .site.grid-container { max-width: none; }
.home .site-content { display: block; }
.el-home { overflow-x: clip; }
.el-wrap { max-width: var(--el-wrap); margin: 0 auto; padding: 0 24px; }
.el-section { padding: 88px 0; }
.el-eyebrow { font-size: 13px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--el-coral-deep); margin: 0 0 14px; }
.el-home h2 { font-size: clamp(30px, 3.6vw, 44px); line-height: 1.12; margin: 0 0 16px; text-wrap: balance; }
.el-lede { font-size: 18px; line-height: 1.6; color: var(--el-ink-soft); max-width: 56ch; margin: 0; }

.el-btn { display: inline-flex; align-items: center; justify-content: center; min-height: 50px; padding: 0 26px; border-radius: 999px; font-weight: 600; font-size: 16px; text-decoration: none; border: 1.5px solid var(--el-ink); transition: transform .15s ease, background-color .15s ease, color .15s ease; }
.el-btn:hover { transform: translateY(-1px); }
.el-btn--solid { background: var(--el-ink); color: #fff; }
.el-btn--solid:hover, .el-btn--solid:focus { background: var(--el-coral); border-color: var(--el-coral); color: #fff; }
.el-btn--ghost { background: transparent; color: var(--el-ink); }
.el-btn--ghost:hover, .el-btn--ghost:focus { background: var(--el-ink); color: #fff; }
.el-btn--light { background: #fff; color: var(--el-ink); border-color: #fff; }
.el-btn--light:hover, .el-btn--light:focus { background: var(--el-coral); border-color: var(--el-coral); color: #fff; }
.el-home a:focus-visible { outline: 3px solid var(--el-blue); outline-offset: 3px; }

/* ---------- Hero ---------- */
.el-hero { padding: 64px 0 72px; }
.el-hero .el-wrap { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); gap: 56px; align-items: center; }
.el-hero h1 { font-size: clamp(40px, 5.4vw, 68px); line-height: 1.04; margin: 0 0 20px; text-wrap: balance; }
.el-hero h1 em { font-style: italic; color: var(--el-coral); }
.el-hero__cta { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 30px; }
.el-hero__note { margin: 22px 0 0; font-size: 14px; color: var(--el-ink-soft); }
.el-hero__art { position: relative; }
.el-hero__art img { display: block; width: 100%; aspect-ratio: 5 / 4; object-fit: cover; object-position: right center; border-radius: 28px; box-shadow: 0 30px 60px -30px rgba(23, 18, 77, .35); }
.el-hero__tag { position: absolute; left: -22px; bottom: 28px; background: var(--el-card); border: 1px solid var(--el-line); border-radius: 18px; padding: 14px 18px; box-shadow: 0 18px 40px -22px rgba(23, 18, 77, .4); font-family: var(--el-serif); font-style: italic; font-size: 17px; line-height: 1.35; max-width: 230px; transform: rotate(-2deg); }
.el-hero__tag span { display: block; font-family: var(--el-sans); font-style: normal; font-size: 12px; letter-spacing: .1em; text-transform: uppercase; color: var(--el-coral-deep); margin-bottom: 4px; }

/* ---------- Facts strip ---------- */
.el-facts { border-top: 1px solid var(--el-line); border-bottom: 1px solid var(--el-line); background: #fffdf9; }
.el-facts ul { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); }
.el-facts li { padding: 26px 24px; border-left: 1px solid var(--el-line); }
.el-facts li:first-child { border-left: 0; padding-left: 0; }
.el-facts strong { display: block; font-family: var(--el-serif); font-size: 20px; margin-bottom: 4px; }
.el-facts span { font-size: 14.5px; color: var(--el-ink-soft); line-height: 1.45; display: block; }

/* ---------- Products ---------- */
.el-head { display: flex; justify-content: space-between; align-items: end; gap: 24px; margin-bottom: 40px; flex-wrap: wrap; }
.el-products { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; }
.el-product { background: var(--el-card); border: 1px solid var(--el-line); border-radius: 22px; overflow: hidden; display: flex; flex-direction: column; transition: transform .2s ease, box-shadow .2s ease; }
.el-product:hover { transform: translateY(-4px); box-shadow: 0 26px 50px -30px rgba(23, 18, 77, .35); }
.el-product__img { position: relative; display: block; background: #f1ece2; }
.el-product__img img { display: block; width: 100%; aspect-ratio: 4 / 5; object-fit: cover; }
.el-product__sale { position: absolute; top: 14px; left: 14px; background: var(--el-coral-deep); color: #fff; font-size: 12px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; padding: 5px 10px; border-radius: 999px; }
.el-product__body { padding: 20px 22px 22px; display: flex; flex-direction: column; gap: 8px; flex: 1; }
.el-product__cat { font-size: 12px; letter-spacing: .12em; text-transform: uppercase; color: var(--el-blue-deep); font-weight: 600; }
.el-product__name { font-family: var(--el-serif); font-size: 20px; line-height: 1.25; margin: 0; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.el-product__name a { text-decoration: none; }
.el-product__foot { margin-top: auto; padding-top: 12px; display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.el-product__price { font-size: 18px; font-weight: 700; }
.el-product__price del { font-weight: 400; color: #6b6889; margin-right: 6px; font-size: 15px; }
.el-product__price ins { text-decoration: none; }
.el-product__price .screen-reader-text { position: absolute; clip: rect(1px, 1px, 1px, 1px); overflow: hidden; height: 1px; width: 1px; }
.el-product__foot .el-btn { min-height: 42px; padding: 0 18px; font-size: 14.5px; }

/* ---------- Five minutes ---------- */
.el-ritual { background: var(--el-blue-soft); }
.el-ritual .el-wrap { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); gap: 64px; align-items: center; }
.el-steps { list-style: none; margin: 30px 0 32px; padding: 0; display: grid; gap: 20px; }
.el-steps li { display: grid; grid-template-columns: 44px 1fr; gap: 16px; align-items: start; }
.el-steps b { width: 44px; height: 44px; border-radius: 50%; background: var(--el-ink); color: #fff; display: grid; place-items: center; font-family: var(--el-serif); font-size: 18px; }
.el-steps strong { display: block; font-size: 17px; margin-bottom: 2px; }
.el-steps span { color: var(--el-ink-soft); font-size: 15.5px; line-height: 1.5; }
.el-page { background: #fff; border-radius: 6px 20px 20px 6px; box-shadow: 0 30px 60px -30px rgba(23, 18, 77, .4), inset 10px 0 14px -10px rgba(23, 18, 77, .18); overflow: hidden; transform: rotate(1.2deg); max-width: 460px; margin-left: auto; }
.el-page__half { padding: 26px 34px 24px 42px; }
.el-page__half--night { background: #dfeaf6; }
.el-page__label { display: flex; justify-content: space-between; font-size: 12px; letter-spacing: .14em; text-transform: uppercase; color: var(--el-ink-soft); margin-bottom: 10px; }
.el-page p { font-family: var(--el-serif); font-style: italic; text-align: center; font-size: 16px; margin: 14px 0 6px; }
.el-page i { display: block; border-bottom: 1px solid #b9b6cc; height: 24px; }
.el-page i.is-filled { font-family: "Bradley Hand", "Segoe Print", "Comic Sans MS", cursive; font-style: normal; font-size: 16px; color: var(--el-blue-deep); padding-left: 6px; line-height: 24px; }

/* ---------- Timebox ---------- */
.el-timebox { background: var(--el-ink); color: #dcd9f2; }
.el-timebox h2 { color: #fff; }
.el-timebox .el-eyebrow { color: #ffb59b; }
.el-timebox .el-lede { color: #c9c5e6; }
.el-timebox .el-wrap { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); gap: 56px; align-items: center; }
.el-timebox img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; object-position: 78% center; border-radius: 24px; }
.el-ticks { list-style: none; margin: 26px 0 32px; padding: 0; display: grid; gap: 12px; }
.el-ticks li { position: relative; padding-left: 30px; font-size: 16px; line-height: 1.5; }
.el-ticks li::before { content: ""; position: absolute; left: 0; top: 4px; width: 18px; height: 18px; border-radius: 5px; border: 1.5px solid #ffb59b; background: no-repeat center / 12px url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M2 6.5l2.6 2.6L10 3.4' fill='none' stroke='%23ffb59b' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); }

/* ---------- Gifting ---------- */
.el-gift .el-wrap { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 56px; align-items: center; }
.el-gift img { display: block; width: 100%; aspect-ratio: 5 / 4; object-fit: cover; object-position: 88% center; border-radius: 24px; }
.el-gift__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin: 28px 0 0; padding: 0; list-style: none; }
.el-gift__grid li { background: var(--el-card); border: 1px solid var(--el-line); border-radius: 16px; padding: 16px 18px; font-size: 15px; line-height: 1.45; color: var(--el-ink-soft); }
.el-gift__grid strong { display: block; color: var(--el-ink); font-size: 16px; margin-bottom: 2px; }

/* ---------- Closing ---------- */
.el-close { padding-top: 0; }
.el-close__box { background: var(--el-coral-soft); border-radius: 32px; padding: 64px 32px; text-align: center; }
.el-close__box .el-lede { margin: 0 auto 28px; }
.el-close__alt { margin: 18px 0 0; font-size: 14.5px; color: var(--el-ink-soft); }

/* ---------- Responsive ---------- */
@media (max-width: 960px) {
	.el-section { padding: 64px 0; }
	.el-hero { padding: 40px 0 56px; }
	.el-hero .el-wrap, .el-ritual .el-wrap, .el-timebox .el-wrap, .el-gift .el-wrap { grid-template-columns: 1fr; gap: 40px; }
	.el-hero__tag { left: 14px; bottom: 14px; }
	.el-facts ul { grid-template-columns: 1fr 1fr; }
	.el-facts li { padding: 20px 16px; }
	.el-facts li:nth-child(odd) { border-left: 0; padding-left: 0; }
	.el-facts li:nth-child(n+3) { border-top: 1px solid var(--el-line); }
	.el-products { grid-template-columns: 1fr 1fr; }
	.el-page { margin: 0 auto; }
	.el-timebox__art { order: 2; }
}
@media (max-width: 600px) {
	.el-wrap { padding: 0 16px; }
	.el-products, .el-gift__grid { grid-template-columns: 1fr; }
	.el-hero__cta .el-btn { flex: 1 1 100%; }
	.el-page__half { padding: 22px 22px 20px 30px; }
	.el-close__box { padding: 44px 20px; border-radius: 24px; }
}
@media (prefers-reduced-motion: reduce) {
	.el-btn, .el-product { transition: none; }
	.el-btn:hover, .el-product:hover { transform: none; }
}

/* ---------- Fixes after first review ---------- */
.site-header .site-branding { display: none; } /* the logo already carries the name */
.site-info .inside-site-info { display: flex; flex-direction: column; align-items: center; }
.el-product__foot .el-btn { white-space: nowrap; }

/* =====================================================================
   Inner pages: shared shell
   ===================================================================== */
body:not(.home) .site-content { padding-top: 12px; padding-bottom: 72px; }
body.separate-containers .inside-article,
body.separate-containers .woocommerce-archive-wrapper .inside-article { background: transparent; padding-left: 0; padding-right: 0; }
body .site.grid-container { max-width: calc(var(--el-wrap) + 48px); padding: 0 24px; }
.home .site.grid-container { max-width: none; padding: 0; }
.entry-title, .page-title { font-size: clamp(32px, 4vw, 46px); line-height: 1.1; }
.entry-content a { text-underline-offset: 3px; }

input[type="text"], input[type="email"], input[type="tel"], input[type="password"], input[type="number"], input[type="search"], input[type="url"], textarea, select {
	background: #fff; border: 1.5px solid var(--el-line); border-radius: 12px; color: var(--el-ink); padding: 12px 14px; font-size: 16px;
}
input:focus, textarea:focus, select:focus { border-color: var(--el-blue); outline: 2px solid var(--el-blue-soft); background: #fff; color: var(--el-ink); }

/* Buttons: one pill style everywhere */
button, .button, input[type="submit"],
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button, .woocommerce #respond input#submit,
.woocommerce a.button.alt, .woocommerce button.button.alt,
.wc-block-components-button:not(.is-link), .wp-block-button__link {
	background: var(--el-ink); color: #fff; border: 1.5px solid var(--el-ink); border-radius: 999px;
	font-weight: 600; font-size: 15.5px; line-height: 1.2; padding: 13px 24px; text-decoration: none;
	transition: background-color .15s ease, border-color .15s ease;
}
button:hover, .button:hover, input[type="submit"]:hover,
.woocommerce a.button:hover, .woocommerce button.button:hover, .woocommerce input.button:hover, .woocommerce #respond input#submit:hover,
.woocommerce a.button.alt:hover, .woocommerce button.button.alt:hover,
.wc-block-components-button:not(.is-link):hover, .wp-block-button__link:hover {
	background: var(--el-coral); border-color: var(--el-coral); color: #fff;
}
.woocommerce button.button.alt.disabled, .woocommerce button.button.alt.disabled:hover, .woocommerce button.button:disabled {
	background: #736f93; border-color: #736f93; color: #fff; opacity: 1;
}
body .menu-toggle, body .menu-toggle:hover { background: transparent; border: 0; color: var(--el-ink); padding: 0 12px; }

/* =====================================================================
   WooCommerce: shared bits
   ===================================================================== */
.woocommerce .woocommerce-breadcrumb { font-size: 13.5px; color: var(--el-ink-soft); margin-bottom: 22px; }
.woocommerce .woocommerce-breadcrumb a { color: var(--el-ink-soft); }
.woocommerce span.onsale {
	background: var(--el-coral-deep); color: #fff; border-radius: 999px; min-height: 0; min-width: 0; line-height: 1;
	padding: 7px 11px; font-size: 12px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase;
	top: 14px; left: 14px; right: auto; margin: 0;
}
.woocommerce .price, .woocommerce div.product p.price, .woocommerce div.product span.price, .woocommerce ul.products li.product .price { color: var(--el-ink); font-weight: 700; }
.woocommerce .price del { color: #6b6889; font-weight: 400; opacity: 1; }
.woocommerce .price ins { text-decoration: none; }
.woocommerce .star-rating span::before, .woocommerce p.stars a { color: var(--el-coral); }
.woocommerce-message, .woocommerce-info, .woocommerce-error, .wc-block-components-notice-banner {
	background: #fff; border: 1px solid var(--el-line); border-left: 4px solid var(--el-blue); border-radius: 14px; color: var(--el-ink);
}
.woocommerce-message::before, .woocommerce-info::before { color: var(--el-blue); }
.woocommerce-error { border-left-color: #c8372d; }

/* =====================================================================
   Shop and category grid
   ===================================================================== */
.woocommerce .woocommerce-products-header { margin-bottom: 8px; }
.woocommerce .woocommerce-result-count { color: var(--el-ink-soft); font-size: 14.5px; margin: 10px 0 28px; }
.woocommerce .woocommerce-ordering { margin: 0 0 28px; }
.woocommerce .woocommerce-ordering select { padding: 10px 14px; font-size: 14.5px; }

.woocommerce ul.products, .woocommerce-page ul.products {
	display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px; margin: 0 0 40px; clear: both;
}
.woocommerce ul.products::before, .woocommerce ul.products::after { display: none; }
.woocommerce ul.products li.product, .woocommerce-page ul.products li.product {
	float: none; width: auto; margin: 0; padding: 0 0 22px; position: relative;
	background: var(--el-card); border: 1px solid var(--el-line); border-radius: 22px; overflow: hidden;
	display: flex; flex-direction: column; text-align: left;
	transition: transform .2s ease, box-shadow .2s ease;
}
.woocommerce ul.products li.product:hover { transform: translateY(-4px); box-shadow: 0 26px 50px -30px rgba(23, 18, 77, .35); }
.woocommerce ul.products li.product a.woocommerce-loop-product__link { display: block; }
.woocommerce ul.products li.product a img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; margin: 0 0 18px; background: #f1ece2; }
.woocommerce ul.products li.product .woocommerce-loop-product__title {
	font-family: var(--el-serif); font-size: 20px; line-height: 1.25; padding: 0 22px; margin: 0 0 8px;
	display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.woocommerce ul.products li.product .price { display: block; padding: 0 22px; margin: 0 0 16px; font-size: 18px; }
.woocommerce ul.products li.product .price del { display: inline; font-size: 15px; margin-right: 6px; }
.woocommerce ul.products li.product .button { margin: auto 22px 0; align-self: flex-start; padding: 11px 20px; font-size: 14.5px; }
.woocommerce ul.products li.product a.added_to_cart { margin: 10px 22px 0; font-size: 14.5px; font-weight: 600; }
.woocommerce nav.woocommerce-pagination ul, .woocommerce nav.woocommerce-pagination ul li { border: 0; }
.woocommerce nav.woocommerce-pagination ul li a, .woocommerce nav.woocommerce-pagination ul li span { border-radius: 999px; min-width: 40px; padding: 10px; }
.woocommerce nav.woocommerce-pagination ul li span.current { background: var(--el-ink); color: #fff; }

/* =====================================================================
   Single product
   ===================================================================== */
.single-product .featured-image { display: none; } /* WooCommerce's gallery already shows it */
.woocommerce div.product { position: relative; }
.woocommerce div.product div.images { width: 47%; }
.woocommerce div.product div.summary { width: 47%; }
.woocommerce div.product div.images img { border-radius: 24px; background: #f1ece2; }
.woocommerce div.product div.images .woocommerce-product-gallery__image:nth-child(n+2) img { border-radius: 12px; }
.woocommerce div.product div.images .flex-control-thumbs { margin-top: 12px; display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; }
.woocommerce div.product div.images .flex-control-thumbs li { width: auto; float: none; }
.woocommerce div.product div.images .flex-control-thumbs img { border-radius: 12px; }
.woocommerce div.product .woocommerce-product-gallery__trigger { top: 14px; right: 14px; }
.woocommerce div.product .product_title { font-size: clamp(28px, 3vw, 38px); line-height: 1.14; margin-bottom: 14px; text-wrap: balance; }
.woocommerce div.product p.price { font-size: 26px; margin-bottom: 18px; }
.woocommerce div.product p.price del { font-size: 18px; margin-right: 8px; }
.woocommerce div.product .woocommerce-product-details__short-description { color: var(--el-ink-soft); font-size: 16.5px; line-height: 1.6; }
.woocommerce div.product form.cart { margin: 24px 0; padding: 22px 0; border-top: 1px solid var(--el-line); border-bottom: 1px solid var(--el-line); }
.woocommerce div.product form.cart table.variations { margin-bottom: 16px; border: 0; }
.woocommerce div.product form.cart table.variations th, .woocommerce div.product form.cart table.variations td { display: block; padding: 0; border: 0; text-align: left; background: transparent; }
.woocommerce div.product form.cart table.variations label { font-size: 13px; letter-spacing: .1em; text-transform: uppercase; color: var(--el-ink-soft); display: block; margin-bottom: 8px; }
.woocommerce div.product form.cart .variations select { width: 100%; max-width: 320px; min-width: 0; margin: 0; }
.woocommerce div.product form.cart .reset_variations { font-size: 13.5px; margin-left: 10px; }
.woocommerce div.product .woocommerce-variation-price { margin-bottom: 8px; }
.woocommerce div.product .stock { color: #2c7a4b; font-size: 14.5px; font-weight: 600; }
.woocommerce div.product .out-of-stock { color: #c8372d; }
.woocommerce div.product form.cart .woocommerce-variation-add-to-cart, .woocommerce div.product form.cart:not(.variations_form) { display: flex; flex-wrap: wrap; gap: 12px; align-items: stretch; }
.woocommerce div.product form.cart div.quantity { margin: 0; float: none; }
.woocommerce .quantity .qty { width: 78px; height: 52px; text-align: center; border-radius: 999px; padding: 0 8px; }
.woocommerce div.product form.cart .single_add_to_cart_button { float: none; flex: 1 1 200px; max-width: 340px; min-height: 52px; font-size: 16.5px; }
.woocommerce div.product .product_meta { font-size: 14px; color: var(--el-ink-soft); }
.woocommerce div.product .product_meta a { color: var(--el-ink); }

.woocommerce div.product .woocommerce-tabs { padding-top: 56px; clear: both; }
.woocommerce div.product .woocommerce-tabs ul.tabs { padding: 0; margin: 0 0 32px; display: flex; flex-wrap: wrap; gap: 4px 28px; border-bottom: 1px solid var(--el-line); }
.woocommerce div.product .woocommerce-tabs ul.tabs::before, .woocommerce div.product .woocommerce-tabs ul.tabs li::before, .woocommerce div.product .woocommerce-tabs ul.tabs li::after { display: none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li { background: transparent; border: 0; border-radius: 0; margin: 0 0 -1px; padding: 0; }
.woocommerce div.product .woocommerce-tabs ul.tabs li a { padding: 12px 0; font-weight: 600; font-size: 16px; color: var(--el-ink-soft); border-bottom: 2px solid transparent; display: block; }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active { background: transparent; }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a { color: var(--el-ink); border-bottom-color: var(--el-coral); }
.woocommerce div.product .woocommerce-tabs .panel { max-width: 760px; font-size: 16.5px; line-height: 1.7; color: #2f2b5c; margin: 0; }
.woocommerce div.product .woocommerce-tabs .panel > h2:first-child { display: none; } /* repeats the tab label */
.woocommerce table.shop_attributes { border: 0; }
.woocommerce table.shop_attributes th, .woocommerce table.shop_attributes td { border: 0; border-bottom: 1px solid var(--el-line); padding: 12px 0; background: transparent; font-style: normal; text-align: left; }
.woocommerce table.shop_attributes th { width: 180px; font-weight: 600; }
.woocommerce #reviews #comments ol.commentlist li .comment-text { border: 1px solid var(--el-line); border-radius: 16px; background: #fff; }
.woocommerce .related.products, .woocommerce .upsells.products { clear: both; padding-top: 64px; }
.woocommerce .related.products > h2, .woocommerce .upsells.products > h2 { font-size: clamp(26px, 3vw, 36px); margin-bottom: 28px; }

/* =====================================================================
   Cart and checkout (block based)
   ===================================================================== */
.woocommerce-cart .entry-content, .woocommerce-checkout .entry-content { --wc-form-border-radius: 12px; }
.wc-block-cart, .wc-block-checkout { color: var(--el-ink); }
.wc-block-components-sidebar .wc-block-components-totals-wrapper, .wc-block-components-sidebar .wc-block-components-panel { border-color: var(--el-line); }
.wp-block-woocommerce-cart-order-summary-block, .wp-block-woocommerce-checkout-order-summary-block {
	background: var(--el-card); border: 1px solid var(--el-line); border-radius: 22px; padding: 8px 20px;
}
.wc-block-cart .wc-block-cart__totals-title, .wc-block-components-checkout-order-summary__title-text { font-family: var(--el-serif); font-size: 22px; text-transform: none; letter-spacing: 0; }
table.wc-block-cart-items, table.wc-block-cart-items th, table.wc-block-cart-items td { border-color: var(--el-line); background: transparent; }
table.wc-block-cart-items .wc-block-cart-items__header th { font-size: 12.5px; letter-spacing: .1em; color: var(--el-ink-soft); }
.wc-block-cart-item__image img, .wc-block-components-order-summary-item__image img { border-radius: 12px; }
.wc-block-components-product-name { font-family: var(--el-serif); font-size: 18px; color: var(--el-ink); text-decoration: none; }
.wc-block-components-product-badge { border-color: var(--el-coral-deep); color: var(--el-coral-deep); border-radius: 999px; }
.wc-block-components-quantity-selector { border-radius: 999px; }
.wc-block-components-quantity-selector::after { border-color: var(--el-line); border-radius: 999px; }
.wc-block-cart__submit-button, .wc-block-components-checkout-place-order-button { min-height: 54px; font-size: 16.5px; width: 100%; }
.wc-block-components-totals-footer-item .wc-block-components-totals-item__label, .wc-block-components-totals-footer-item .wc-block-components-totals-item__value { font-size: 20px; font-weight: 700; }
.wc-block-components-text-input input, .wc-blocks-components-select .wc-blocks-components-select__select, .wc-block-components-textarea { border-color: var(--el-line); border-width: 1.5px; }
.wc-block-components-checkout-step__title { font-family: var(--el-serif); font-size: 22px; }
.wc-block-components-radio-control--highlight-checked .wc-block-components-radio-control-accordion-option--checked-option-highlighted,
.wc-block-components-radio-control--highlight-checked label.wc-block-components-radio-control__option--checked-option-highlighted { box-shadow: inset 0 0 0 2px var(--el-ink); }
.wc-block-cart__empty-cart__title, .wp-block-woocommerce-empty-cart-block h2 { font-family: var(--el-serif); }

/* =====================================================================
   My account
   ===================================================================== */
.woocommerce-account .woocommerce-MyAccount-navigation ul { list-style: none; margin: 0 0 28px; padding: 0; display: grid; gap: 6px; }
.woocommerce-account .woocommerce-MyAccount-navigation li a { display: block; padding: 11px 16px; border-radius: 12px; text-decoration: none; font-weight: 500; }
.woocommerce-account .woocommerce-MyAccount-navigation li a:hover { background: #fff; color: var(--el-ink); }
.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a { background: var(--el-ink); color: #fff; }
.woocommerce form.login, .woocommerce form.register, .woocommerce form.checkout_coupon { background: #fff; border: 1px solid var(--el-line); border-radius: 22px; padding: 28px; }
.woocommerce table.shop_table { border: 1px solid var(--el-line); border-radius: 16px; background: #fff; }
.woocommerce table.shop_table th, .woocommerce table.shop_table td { border-color: var(--el-line); }

/* =====================================================================
   Inner pages: responsive
   ===================================================================== */
@media (max-width: 960px) {
	.woocommerce ul.products, .woocommerce-page ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
}
@media (max-width: 768px) {
	body .site.grid-container { padding: 0 16px; }
	.home .site.grid-container { padding: 0; }
	.woocommerce div.product div.images, .woocommerce div.product div.summary { width: 100%; float: none; }
	.woocommerce div.product form.cart .single_add_to_cart_button { max-width: none; }
	.woocommerce ul.products li.product .woocommerce-loop-product__title { font-size: 17px; padding: 0 14px; }
	.woocommerce ul.products li.product .price { padding: 0 14px; font-size: 16px; }
	.woocommerce ul.products li.product .button { margin: auto 14px 0; padding: 10px 16px; }
	.woocommerce ul.products li.product { padding-bottom: 16px; border-radius: 18px; }
}
@media (max-width: 420px) {
	.woocommerce ul.products, .woocommerce-page ul.products { grid-template-columns: 1fr; }
}

/* ---------- Fixes after reviewing inner pages ---------- */
.woocommerce ul.products li.product, .woocommerce-page ul.products li.product,
.woocommerce ul.products[class*="columns-"] li.product, .woocommerce-page ul.products[class*="columns-"] li.product { width: auto !important; margin: 0 !important; float: none !important; }
.htcompare-btn { display: none !important; } /* comparing is pointless with three products */
.wishsuite-button { display: inline-flex; align-items: center; gap: 6px; font-size: 14.5px; color: var(--el-ink-soft); margin: 0 0 14px; }
.woocommerce ul.products li.product .onsale { top: 14px; left: 14px; right: auto; margin: 0; }
/* Block cart/checkout come as "alignwide"; without this they stick out past the page edge. */
.no-sidebar .entry-content .alignwide { margin-left: 0; margin-right: 0; width: auto; max-width: 100%; }
/* Phone cart: WooCommerce fixes the middle column at 132px, which pushes the price off screen. */
.is-mobile table.wc-block-cart-items .wc-block-cart-items__row,
.is-small table.wc-block-cart-items .wc-block-cart-items__row,
.is-medium table.wc-block-cart-items .wc-block-cart-items__row { grid-template-columns: 80px minmax(0, 1fr) auto !important; }
/* WooLentor forces the Compare button visible with !important, so this needs to out-rank it. */
body.woocommerce a.htcompare-btn, body a.htcompare-btn.button { display: none !important; }

/* ---------- Header cart and slide-out cart ---------- */
.el-cart { display: flex; align-items: center; }
.el-cart .wc-block-mini-cart__button, .el-cart .wc-block-mini-cart__button:hover { background: transparent; border: 0; color: var(--el-ink); padding: 8px 10px; border-radius: 999px; }
.el-cart .wc-block-mini-cart__button:hover { color: var(--el-coral); }
.wc-block-mini-cart__badge { background: var(--el-coral-deep); color: #fff; font-weight: 700; }
.wc-block-components-drawer, .wc-block-mini-cart__drawer .wc-block-components-drawer__content { background: var(--el-paper); color: var(--el-ink); }
.wc-block-components-drawer .wc-block-components-drawer__close, .wc-block-components-drawer .wc-block-components-drawer__close:hover { background: transparent; border: 0; color: var(--el-ink); padding: 8px; }
.wc-block-mini-cart__title { font-family: var(--el-serif); }
.wc-block-mini-cart__footer .wc-block-components-button.outlined, .wc-block-mini-cart__footer-cart { background: transparent; color: var(--el-ink); }
.wc-block-mini-cart__footer .wc-block-components-button.outlined:hover, .wc-block-mini-cart__footer-cart:hover { background: var(--el-ink); border-color: var(--el-ink); color: #fff; }
.woocommerce a.added_to_cart { display: none; } /* the slide-out cart replaces the "View cart" link */

/* ---------- Cart suggestion card ---------- */
.el-upsell-slot:empty { display: none; }
.wc-block-mini-cart__drawer .el-upsell-slot { padding: 0 16px 14px; }
.wc-block-cart .el-upsell-slot { margin: 20px 0 0; max-width: 520px; }
.el-upsell { background: var(--el-blue-soft); border-radius: 16px; padding: 14px 16px; color: var(--el-ink); }
.el-upsell__label { font-size: 12px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--el-ink-soft); margin: 0 0 10px; }
.el-upsell__row { display: grid; grid-template-columns: 56px minmax(0, 1fr) auto; gap: 12px; align-items: center; }
.el-upsell__img img { display: block; width: 56px; height: 56px; object-fit: cover; border-radius: 10px; }
.el-upsell__text { display: grid; gap: 2px; font-size: 14px; line-height: 1.35; }
.el-upsell__text > a { font-family: var(--el-serif); font-size: 16px; text-decoration: none; color: var(--el-ink); }
.el-upsell__price { font-weight: 700; }
.el-upsell__price del { font-weight: 400; color: #6b6889; margin-right: 4px; }
.el-upsell__price ins { text-decoration: none; }
.el-upsell__price .screen-reader-text { position: absolute; clip: rect(1px, 1px, 1px, 1px); width: 1px; height: 1px; overflow: hidden; }
.el-upsell__save { color: #b8431d; font-weight: 600; font-size: 13.5px; }
.el-upsell a.el-upsell__add { background: var(--el-ink); color: #fff; border-radius: 999px; padding: 10px 18px; font-weight: 600; font-size: 14.5px; text-decoration: none; }
.el-upsell a.el-upsell__add:hover { background: var(--el-coral); color: #fff; }
.el-upsell a.el-upsell__add.loading { opacity: .6; pointer-events: none; }
.el-upsell--done { background: #e3f4e8; display: grid; gap: 2px; font-size: 14px; }
.el-upsell--done strong { color: #1f6b3d; font-size: 15px; }

/* ---------- One big leaf behind the top right of the homepage ---------- */
/* A single outlined leaf, kept faint so text and photos stay clear. It runs off the right edge.
   To make it stronger or lighter, change the fill-opacity / stroke-opacity numbers in the SVG. */
.el-home {
	background-color: var(--el-paper);
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-140 -60 880 1020'%3E%3Cg transform='rotate(24 300 450)' stroke='%2317124d' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M300 880C70 720 40 300 300 20C560 300 530 720 300 880Z' fill='%2317124d' fill-opacity='0.035' stroke-opacity='0.16' stroke-width='3'/%3E%3Cpath d='M300 905V20M300 790C246 750 204 695 180 640M300 790C354 750 396 695 420 640M300 680C221 640 160 585 125 530M300 680C379 640 440 585 475 530M300 570C212 530 144 475 105 420M300 570C388 530 456 475 495 420M300 460C217 420 152 365 115 310M300 460C383 420 448 365 485 310M300 350C232 310 180 255 150 200M300 350C368 310 420 255 450 200M300 240C255 200 220 145 200 90M300 240C345 200 380 145 400 90' fill='none' stroke-opacity='0.13' stroke-width='2.5'/%3E%3C/g%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right -60px top -90px;
	background-size: 760px auto;
}
@media (max-width: 960px) {
	.el-home { background-size: 460px auto; background-position: right -150px top -40px; }
}

/* =====================================================================
   Product page extras (product-page.php)
   ===================================================================== */
.el-ticks--light { margin: 4px 0 4px; gap: 9px; }
.el-ticks--light li { font-size: 15.5px; color: #2f2b5c; }
.el-ticks--light li::before { border-color: var(--el-coral); background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M2 6.5l2.6 2.6L10 3.4' fill='none' stroke='%23f26b3f' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); }
.sku_wrapper { display: none; }
.summary .el-upsell { margin: 0 0 18px; }
.el-promises { list-style: none; margin: 0 0 20px; padding: 16px 18px; display: grid; gap: 8px; background: #fff; border: 1px solid var(--el-line); border-radius: 16px; font-size: 14.5px; line-height: 1.45; color: var(--el-ink-soft); }
.el-promises strong { color: var(--el-ink); }

/* Colour buttons built from the dropdown by instant-cart.js */
.el-swatches { display: flex; flex-wrap: wrap; gap: 8px; }
.el-swatches button, .el-swatches button:hover { background: #fff; color: var(--el-ink); border: 1.5px solid var(--el-line); border-radius: 999px; padding: 10px 18px; font-size: 15px; font-weight: 600; }
.el-swatches button:hover { border-color: var(--el-ink); }
.el-swatches button[aria-pressed="true"] { background: var(--el-ink); border-color: var(--el-ink); color: #fff; }
.el-has-swatches select { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.woocommerce div.product form.cart table.variations td.value { position: relative; }

.el-pdp { clear: both; padding-top: 64px; display: grid; gap: 56px; }
.el-pdp h2 { font-size: clamp(26px, 3vw, 38px); line-height: 1.14; margin: 0 0 14px; text-wrap: balance; }
.el-pdp__band { border-radius: 28px; padding: 56px; }
.el-pdp__split { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 56px; align-items: center; }
.el-pdp__band.el-timebox img { width: 100%; }
.el-pdp__band .el-steps, .el-pdp__band .el-ticks { margin-bottom: 0; }
.el-pdp__specs { display: grid; grid-template-columns: repeat(3, 1fr); border: 1px solid var(--el-line); border-radius: 22px; background: #fff; overflow: hidden; }
.el-pdp__specs div { padding: 20px 24px; border-right: 1px solid var(--el-line); border-bottom: 1px solid var(--el-line); margin: 0 -1px -1px 0; }
.el-pdp__specs span { display: block; font-size: 12px; letter-spacing: .12em; text-transform: uppercase; color: var(--el-ink-soft); margin-bottom: 4px; }
.el-pdp__specs strong { font-family: var(--el-serif); font-size: 18px; font-weight: 400; }
.el-pdp__faq { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.5fr); gap: 48px; align-items: start; }
.el-pdp__faq details { border-bottom: 1px solid var(--el-line); }
.el-pdp__faq details:first-child { border-top: 1px solid var(--el-line); }
.el-pdp__faq summary { cursor: pointer; list-style: none; padding: 18px 36px 18px 0; font-weight: 600; font-size: 17px; position: relative; }
.el-pdp__faq summary::-webkit-details-marker { display: none; }
.el-pdp__faq summary::after { content: "+"; position: absolute; right: 4px; top: 50%; transform: translateY(-50%); font-size: 24px; font-weight: 400; color: var(--el-coral); }
.el-pdp__faq details[open] summary::after { content: "–"; }
.el-pdp__faq details p { margin: 0 0 18px; color: var(--el-ink-soft); font-size: 16px; line-height: 1.6; max-width: 60ch; }
.woocommerce div.product .el-pdp + .woocommerce-tabs { padding-top: 64px; }

@media (max-width: 960px) {
	.el-pdp { padding-top: 40px; gap: 40px; }
	.el-pdp__band { padding: 32px 20px; border-radius: 22px; }
	.el-pdp__split, .el-pdp__faq { grid-template-columns: 1fr; gap: 32px; }
	.el-pdp__specs { grid-template-columns: 1fr 1fr; }
	.el-pdp__faq { gap: 16px; }
}

/* Less empty space between the header and the page content on inner pages. */
body.separate-containers:not(.home) .inside-article { padding-top: 0; }
body.woocommerce .entry-content { margin-top: 0; } /* shop and product pages: the breadcrumb starts the page */

/* ---------- Contact page (page-contact.php) ---------- */
.el-contact { display: grid; gap: 56px; padding-top: 28px; }
.el-contact__head h1 { font-size: clamp(32px, 4.2vw, 52px); line-height: 1.08; margin: 0 0 18px; max-width: 20ch; text-wrap: balance; }
.el-contact__cards { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.el-contact__card { display: grid; gap: 6px; padding: 28px; background: #fff; border: 1px solid var(--el-line); border-radius: 22px; text-decoration: none; transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease; }
.el-contact__card:hover { transform: translateY(-3px); border-color: var(--el-ink); box-shadow: 0 26px 50px -30px rgba(23, 18, 77, .35); color: var(--el-ink); }
.el-contact__card span { font-size: 12px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--el-coral-deep); }
.el-contact__card strong { font-family: var(--el-serif); font-weight: 400; font-size: clamp(22px, 2.4vw, 30px); overflow-wrap: anywhere; }
.el-contact__card em { font-style: normal; font-size: 15px; color: var(--el-ink-soft); }
.el-contact h2 { font-size: clamp(26px, 3vw, 38px); line-height: 1.14; margin: 0 0 14px; }
.el-contact__legal { background: var(--el-blue-soft); border-radius: 22px; padding: 32px; }
.el-contact__legal h2 { font-size: 22px; margin-bottom: 18px; }
.el-contact__legal dl { margin: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 18px 32px; }
.el-contact__legal dt { font-size: 12px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--el-ink-soft); margin-bottom: 4px; }
.el-contact__legal dd { margin: 0; font-size: 15.5px; line-height: 1.5; }
@media (max-width: 700px) {
	.el-contact { gap: 40px; padding-top: 16px; }
	.el-contact__cards, .el-contact__legal dl { grid-template-columns: 1fr; }
	.el-contact__legal { padding: 24px 20px; }
}
@media (prefers-reduced-motion: reduce) { .el-contact__card { transition: none; } .el-contact__card:hover { transform: none; } }

/* ---------- Contact form ---------- */
.el-contact__form { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.5fr); gap: 48px; align-items: start; scroll-margin-top: 24px; }
.el-contact__form form { background: #fff; border: 1px solid var(--el-line); border-radius: 22px; padding: 28px; display: grid; gap: 18px; }
.el-field { margin: 0; display: grid; gap: 6px; }
.el-field label { font-weight: 600; font-size: 15px; }
.el-field label span { font-weight: 400; color: var(--el-ink-soft); }
.el-field input, .el-field textarea { width: 100%; }
.el-field textarea { resize: vertical; min-height: 140px; }
.el-field--trap { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.el-contact__form button { justify-self: start; min-height: 50px; padding: 0 28px; font-size: 16px; }
.el-form-note { margin: 0; padding: 14px 16px; border-radius: 12px; font-size: 15.5px; line-height: 1.45; }
.el-form-note--ok { background: #e3f4e8; color: #1f6b3d; }
.el-form-note--bad { background: #fde8e4; color: #9b2c1c; }
@media (max-width: 960px) {
	.el-contact__form { grid-template-columns: 1fr; gap: 20px; }
	.el-contact__form form { padding: 20px; }
	.el-contact__form button { justify-self: stretch; }
}

/* =====================================================================
   site-extras.php: rating badge, phone buy bar, account icon, footer
   ===================================================================== */
.el-amazon { display: inline-flex; align-items: center; gap: 8px; margin: 0 0 14px; font-size: 14.5px; color: var(--el-ink-soft); text-decoration: none; }
.el-amazon strong { color: var(--el-ink); font-size: 15.5px; }
a.el-amazon:hover span:last-child { text-decoration: underline; }
/* Five stars; the filled width follows the rating (4.3 fills 86%). */
.el-stars { --pct: calc(var(--el-rating) / 5 * 100%); display: inline-block; font-size: 17px; line-height: 1; letter-spacing: 2px; font-family: Arial, sans-serif; background: linear-gradient(90deg, #f5a623 var(--pct), #d9d4c7 var(--pct)); -webkit-background-clip: text; background-clip: text; color: transparent; }
.el-stars::before { content: "★★★★★"; }

.el-sticky-buy { display: none; }
@media (max-width: 768px) {
	.el-sticky-buy:not([hidden]) { display: flex; align-items: center; gap: 12px; position: fixed; left: 0; right: 0; bottom: 0; z-index: 90; padding: 10px 16px calc(10px + env(safe-area-inset-bottom)); background: #fff; border-top: 1px solid var(--el-line); box-shadow: 0 -10px 30px -18px rgba(23, 18, 77, .35); }
	.el-sticky-buy div { flex: 1; min-width: 0; display: grid; }
	.el-sticky-buy strong { font-family: var(--el-serif); font-weight: 400; font-size: 15px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
	.el-sticky-buy span { font-size: 14px; font-weight: 700; }
	.el-sticky-buy del { font-weight: 400; color: #6b6889; margin-right: 4px; }
	.el-sticky-buy ins { text-decoration: none; }
	.el-sticky-buy .screen-reader-text { position: absolute; clip: rect(1px, 1px, 1px, 1px); width: 1px; height: 1px; overflow: hidden; }
	.el-sticky-buy button { white-space: nowrap; padding: 12px 20px; }
	.single-product .site-footer { padding-bottom: 72px; }
}

.el-account { display: flex; align-items: center; }
.el-account a { display: flex; padding: 8px 6px 8px 14px; color: var(--el-ink); }
.el-account a:hover { color: var(--el-coral); }

.el-footer { background: var(--el-ink); color: #cfcbe8; padding: 64px 0 40px; margin-top: 24px; }
.home .el-footer { margin-top: 0; }
.el-footer .el-wrap { display: grid; grid-template-columns: 1.6fr 1fr 1fr 1fr; gap: 40px; }
.el-footer__brand strong { font-family: var(--el-serif); font-weight: 400; font-size: 28px; color: #fff; display: block; margin-bottom: 10px; }
.el-footer__brand p { margin: 0 0 12px; max-width: 34ch; font-size: 15px; line-height: 1.55; }
.el-footer__pay { font-size: 13.5px !important; color: #a9a4cf; }
.el-footer h2 { font-family: var(--el-sans); font-size: 12px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: #ffb59b; margin: 6px 0 14px; }
.el-footer ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.el-footer a { color: #fff; text-decoration: none; font-size: 15px; }
.el-footer a:hover { color: #ffb59b; text-decoration: underline; }
body .site-footer .site-info { border-top: 1px solid rgba(255, 255, 255, .12); font-size: 13.5px; }
@media (max-width: 860px) {
	.el-footer { padding: 48px 0 28px; }
	.el-footer .el-wrap { grid-template-columns: 1fr 1fr; gap: 32px 24px; }
	.el-footer__brand { grid-column: 1 / -1; }
}

/* =====================================================================
   Text pages: policies and any page written in the editor
   ===================================================================== */
body.page:not(.home):not(.woocommerce-page) .inside-article > .entry-header,
body.page:not(.home):not(.woocommerce-page) .inside-article > .entry-content { max-width: 760px; margin-left: auto; margin-right: auto; }
body.page:not(.home):not(.woocommerce-page) .entry-header { padding-top: 28px; }
body.page:not(.home):not(.woocommerce-page) .entry-content { font-size: 17px; line-height: 1.75; color: #2f2b5c; }
body.page:not(.home):not(.woocommerce-page) .entry-content :is(h2, h3, h4) { color: var(--el-ink); margin: 1.8em 0 .5em; line-height: 1.2; }
body.page:not(.home):not(.woocommerce-page) .entry-content h2 { font-size: 28px; }
body.page:not(.home):not(.woocommerce-page) .entry-content h3 { font-size: 22px; }
body.page:not(.home):not(.woocommerce-page) .entry-content p { margin-bottom: 1.1em; }
body.page:not(.home):not(.woocommerce-page) .entry-content :is(ul, ol) { margin: 0 0 1.2em 1.2em; }
body.page:not(.home):not(.woocommerce-page) .entry-content li { margin-bottom: .4em; }
body.page:not(.home):not(.woocommerce-page) .entry-content strong { color: var(--el-ink); }

/* ---------- About page (page-about.php) ---------- */
.el-about__img { width: 100%; aspect-ratio: 21 / 9; object-fit: cover; border-radius: 28px; display: block; }
.el-about__cols { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; }
.el-about__cols p { font-size: 17px; line-height: 1.7; color: #2f2b5c; margin: 0; }
.el-about__facts { border: 1px solid var(--el-line); border-radius: 22px; padding: 0 24px; }
@media (max-width: 700px) { .el-about__cols { grid-template-columns: 1fr; gap: 28px; } .el-about__img { aspect-ratio: 4 / 3; border-radius: 20px; } }

/* Phone header: keep logo, account, cart and menu button on one row. */
@media (max-width: 768px) {
	body .inside-header { padding-left: 16px; padding-right: 16px; flex-wrap: wrap; }
	.site-header .header-image { width: 140px; }
	.el-account a { padding-left: 8px; }
}
/* Checkout fields: keep the typed text clear of the small floating label. */
.wc-block-components-text-input input { line-height: 1.25; }
.wc-block-components-text-input label { line-height: 1.2; }

/* Suggestion card when the product has colours: a row of small colour buttons under the text. */
.el-upsell__row:has(.el-upsell__colours) { grid-template-columns: 56px minmax(0, 1fr); }
.el-upsell__colours { grid-column: 1 / -1; display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.el-upsell__colours em { font-style: normal; font-size: 13.5px; color: var(--el-ink-soft); }
.el-upsell__colours a.el-upsell__add { padding: 8px 14px; font-size: 14px; }

/* Homepage collection with two products: two centred cards instead of a gap. */
.el-products:has(> :nth-child(2):last-child) { grid-template-columns: repeat(2, minmax(0, 400px)); justify-content: center; }
@media (max-width: 600px) { .el-products:has(> :nth-child(2):last-child) { grid-template-columns: 1fr; } }

/* =====================================================================
   Order received page and order views (orders.php)
   ===================================================================== */
.woocommerce-order .woocommerce-thankyou-order-received { font-family: var(--el-serif); font-size: clamp(26px, 3.2vw, 38px); line-height: 1.15; color: var(--el-ink); margin: 0 0 28px; padding-left: 60px; position: relative; min-height: 44px; display: flex; align-items: center; background: none; border: 0; }
.woocommerce-order .woocommerce-thankyou-order-received::before { content: ""; position: absolute; left: 0; top: 50%; transform: translateY(-50%); width: 44px; height: 44px; border-radius: 50%; background: #1f6b3d no-repeat center / 22px url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5' fill='none' stroke='%23fff' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); }
.woocommerce ul.order_details { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 0; margin: 0 0 32px; padding: 0; background: #fff; border: 1px solid var(--el-line); border-radius: 22px; overflow: hidden; }
.woocommerce ul.order_details::before, .woocommerce ul.order_details::after { display: none; }
.woocommerce ul.order_details li { float: none; margin: 0 -1px -1px 0; padding: 18px 20px; border: 0; border-right: 1px solid var(--el-line); border-bottom: 1px solid var(--el-line); font-size: 12px; letter-spacing: .1em; color: var(--el-ink-soft); }
.woocommerce ul.order_details li strong { font-family: var(--el-serif); font-weight: 400; font-size: 18px; letter-spacing: 0; text-transform: none; color: var(--el-ink); margin-top: 4px; overflow-wrap: anywhere; }
.woocommerce-order > p:not([class]) { color: var(--el-ink-soft); margin-bottom: 28px; }

.el-next { list-style: none; margin: 0 0 20px; padding: 28px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; background: var(--el-blue-soft); border-radius: 22px; }
.el-next li { display: grid; grid-template-columns: 40px 1fr; gap: 14px; align-items: start; }
.el-next b { width: 40px; height: 40px; border-radius: 50%; background: var(--el-ink); color: #fff; display: grid; place-items: center; font-family: var(--el-serif); font-weight: 400; font-size: 17px; }
.el-next strong { display: block; font-size: 16px; margin-bottom: 2px; }
.el-next span { font-size: 14.5px; line-height: 1.5; color: var(--el-ink-soft); overflow-wrap: anywhere; }
.el-next__more { margin: 0 0 44px; }

.woocommerce .woocommerce-order-details__title, .woocommerce .woocommerce-column__title, .woocommerce-customer-details > h2 { font-size: 24px; margin: 0 0 16px; }
.woocommerce table.shop_table { border-collapse: separate; border-spacing: 0; overflow: hidden; }
.woocommerce table.shop_table th, .woocommerce table.shop_table td { padding: 14px 20px; }
.woocommerce table.shop_table thead th { font-size: 12px; letter-spacing: .1em; text-transform: uppercase; color: var(--el-ink-soft); background: #fffdf9; }
.woocommerce table.shop_table td.product-name a { font-family: var(--el-serif); font-size: 17px; text-decoration: none; }
.woocommerce table.shop_table .product-quantity { font-weight: 400; color: var(--el-ink-soft); }
.woocommerce table.shop_table ul.wc-item-meta { list-style: none; margin: 4px 0 0; padding: 0; font-size: 14px; color: var(--el-ink-soft); }
.woocommerce table.shop_table ul.wc-item-meta li { display: flex; gap: 6px; margin: 0; }
.woocommerce table.shop_table ul.wc-item-meta p { margin: 0; }
.woocommerce table.shop_table ul.wc-item-meta .wc-item-meta-label { font-weight: 400; float: none; margin: 0; }
.woocommerce table.shop_table tfoot th { font-weight: 500; color: var(--el-ink-soft); }
.woocommerce table.shop_table tfoot td { font-weight: 700; color: var(--el-ink); }
.woocommerce .woocommerce-customer-details { margin-top: 36px; }
.woocommerce .woocommerce-customer-details address { background: #fff; border: 1px solid var(--el-line); border-radius: 18px; padding: 20px 22px; font-style: normal; line-height: 1.6; max-width: 420px; }
.woocommerce .woocommerce-customer-details address p { margin: 6px 0 0; }
@media (max-width: 860px) {
	.el-next { grid-template-columns: 1fr; padding: 22px 20px; gap: 18px; }
	.woocommerce-order .woocommerce-thankyou-order-received { padding-left: 54px; }
	.woocommerce ul.order_details { grid-template-columns: 1fr 1fr; }
}

/* WooCommerce fades crossed-out prices with opacity, which makes them too faint to read. */
.woocommerce div.product p.price del, .woocommerce div.product span.price del, .woocommerce ul.products li.product .price del { opacity: 1; color: #6b6889; }

/* Order received: confirmation line, and both addresses side by side when there are two. */
.el-next__lead { font-size: 18px; line-height: 1.5; margin: 0 0 20px; color: var(--el-ink); }
.woocommerce-order > p:not([class]) { display: none; } /* the payment method's own one-liner; the line above covers it */
.woocommerce .woocommerce-customer-details .woocommerce-columns--addresses { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; width: auto; }
.woocommerce .woocommerce-customer-details .woocommerce-columns--addresses::before, .woocommerce .woocommerce-customer-details .woocommerce-columns--addresses::after { display: none; }
.woocommerce .woocommerce-customer-details .woocommerce-columns--addresses .woocommerce-column { float: none; width: auto; }
@media (max-width: 700px) { .woocommerce .woocommerce-customer-details .woocommerce-columns--addresses { grid-template-columns: 1fr; } }
