/* ==========================================================================
   Tulia design system — child theme for Ecomus
   ========================================================================== */

:root {
	--tl-ivory: #f5ebdd;
	--tl-cream: #ede0d0;
	--tl-choc: #382316;
	--tl-amber: #6a3a1e;
	--tl-taupe: #b69a7b;
	--tl-text: #2d2118;
	--tl-muted: #6f5d4e;
	--tl-line: rgba(45, 33, 24, 0.14);
	--tl-line-light: rgba(245, 235, 221, 0.28);

	--tl-serif: "Gambarino", "Gilda Display", Georgia, serif;
	--tl-sans: "Instrument Sans", "Helvetica Neue", Arial, sans-serif;
	--tl-hand: "Satoshi", "Instrument Sans", ui-sans-serif, system-ui, sans-serif;

	--tl-max: 1440px;
	--tl-gutter: clamp(20px, 4.4vw, 64px);
	--tl-section: clamp(72px, 9vw, 136px);
	--tl-header-h: 76px;
	--tl-admin: var(--wp-admin--admin-bar--height, 0px);
	--tl-ease: cubic-bezier(.22, .61, .36, 1);

	/* Feed the Ecomus variables so its own components follow the palette */
	--em-color__primary: var(--tl-choc);
	--em-color__dark: var(--tl-text);
	--em-color__base: var(--tl-text);
	--em-link-color: var(--tl-text);
	--em-button-color: var(--tl-ivory);
	--em-button-bg-color: var(--tl-choc);
	--em-button-bg-color-hover: var(--tl-amber);
	--em-button-border-color: var(--tl-choc);
	--em-border-color: var(--tl-line);
	--em-image-rounded: 0;
	--em-button-rounded: 999px;
}

@media (max-width: 899px) {
	:root { --tl-header-h: 64px; }
}

/* ---------- Base ---------- */
body.tulia {
	background: var(--tl-ivory);
	color: var(--tl-text);
	font-family: var(--tl-sans);
	-webkit-font-smoothing: antialiased;
}
body.tulia h1, body.tulia h2, body.tulia h3, body.tulia h4,
body.tulia .product_title, body.tulia .page-header__title, body.tulia .entry-title {
	font-family: var(--tl-serif);
	font-weight: 400;
	color: inherit;
	letter-spacing: -0.005em;
}
body.tulia a { color: inherit; }
body.tulia :focus-visible { outline: 2px solid var(--tl-amber); outline-offset: 3px; }

.tulia .screen-reader-text {
	position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px;
	overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}

/* Hide the Ecomus header bar (its panels still render) and the duplicate
   mobile bottom bar; the Tulia header covers both. */
body.tulia #site-header,
body.tulia .ecomus-mobile-navigation-bar { display: none !important; }
body.tulia.ecomus-navigation-bar-show { padding-bottom: 0 !important; }

/* One bag: the Ecomus cart panel. Hide the Modern Cart floating button. */
body.tulia #moderncart-floating-cart { display: none !important; }

/* ---------- Buttons & links ---------- */
.tl-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 10px;
	min-height: 52px; padding: 0 28px; border-radius: 999px;
	font: 500 0.9375rem/1 var(--tl-sans); letter-spacing: 0.01em;
	text-decoration: none; border: 1px solid transparent;
	transition: background-color .3s var(--tl-ease), color .3s var(--tl-ease), border-color .3s var(--tl-ease);
}
.tl-btn .tl-arrow { transition: transform .3s var(--tl-ease); }
.tl-btn:hover .tl-arrow, .tl-link:hover .tl-arrow { transform: translateX(4px); }
.tl-btn--light { background: var(--tl-ivory); color: var(--tl-choc) !important; }
.tl-btn--light:hover { background: #fff; }
.tl-btn--ghost-light { border-color: rgba(245, 235, 221, .6); color: var(--tl-ivory) !important; }
.tl-btn--ghost-light:hover { border-color: var(--tl-ivory); background: rgba(245, 235, 221, .08); }

.tl-link {
	display: inline-flex; align-items: center; gap: 10px;
	font: 500 1rem/1.4 var(--tl-sans); text-decoration: none;
	color: var(--tl-text);
}
.tl-link { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 6px; }
.tl-link:hover { text-decoration-color: transparent; }
.tl-link .tl-arrow { flex: none; transition: transform .3s var(--tl-ease); }
.tl-link--light { color: var(--tl-ivory) !important; }

.tl-h2 {
	font-family: var(--tl-serif); font-weight: 400;
	font-size: clamp(2.25rem, 3.6vw, 3.25rem); line-height: 1.05; margin: 0;
}
.tl-label {
	font: 500 0.875rem/1.2 var(--tl-sans); letter-spacing: 0.04em;
	color: var(--tl-taupe); margin: 0 0 18px; padding-bottom: 18px; position: relative;
}
.tl-label::after { content: ""; position: absolute; left: 0; bottom: 0; width: 32px; height: 1px; background: currentColor; }

/* ==========================================================================
   Header — smoky glass bar
   ========================================================================== */
.tl-header {
	--tl-glass: rgba(32, 23, 16, .42);
	--tl-glass-strong: rgba(28, 21, 15, .78);
	--tl-glass-line: rgba(255, 240, 220, .16);
	--tl-glass-ink: var(--tl-ivory);
	--tl-glass-muted: rgba(245, 235, 221, .58);
	position: sticky; top: var(--tl-admin); z-index: 999;
	padding: 14px var(--tl-gutter) 0;
	color: var(--tl-glass-ink);
	pointer-events: none;
}
.tulia-overlay .tl-header { position: fixed; left: 0; right: 0; }
/* Sit below the WordPress admin bar when logged in. */
body.admin-bar { --tl-admin: 32px; }
@media (max-width: 782px) { body.admin-bar { --tl-admin: 46px; } }
@media (max-width: 600px) { body.admin-bar .tulia-overlay .tl-header, body.admin-bar.tulia-overlay .tl-header { --tl-admin: 0px; } }
.tl-header.is-solid, body:not(.tulia-overlay) .tl-header { --tl-glass: rgba(44, 30, 20, .86); }

.tl-glass {
	background: var(--tl-glass);
	-webkit-backdrop-filter: blur(26px) saturate(150%);
	backdrop-filter: blur(26px) saturate(150%);
	border: 1px solid var(--tl-glass-line);
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, .10), 0 24px 48px -28px rgba(10, 6, 3, .7);
}
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
	.tl-glass { background: rgba(38, 27, 19, .94); }
}

.tl-header__wrap { position: relative; max-width: calc(var(--tl-max) - 96px); margin: 0 auto; }
.tl-header__bar {
	pointer-events: auto; position: relative;
	height: var(--tl-header-h);
	padding: 0 12px 0 28px; border-radius: 999px;
	display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 24px;
	transition: background-color .4s var(--tl-ease);
}
.tl-logo {
	font-family: var(--tl-serif); font-size: 1.875rem; line-height: 1;
	text-decoration: none; color: inherit !important; justify-self: start; letter-spacing: 0.005em;
}
.tl-nav__list { list-style: none; margin: 0; padding: 0; display: flex; gap: 4px; }
.tl-nav__link {
	display: inline-flex; align-items: center; gap: 8px; height: 40px; padding: 0 18px; border-radius: 999px;
	font: 500 0.9375rem/1 var(--tl-sans); text-decoration: none; color: inherit !important;
	background: none; border: 0; cursor: pointer;
	transition: background-color .25s var(--tl-ease);
}
.tl-nav__link:hover, .tl-nav__link[aria-expanded="true"] { background: rgba(255, 245, 230, .12); }
.tl-nav__link svg { transition: transform .3s var(--tl-ease); }
.tl-nav__link[aria-expanded="true"] svg { transform: rotate(180deg); }

.tl-icons { justify-self: end; display: flex; align-items: center; gap: 2px; }
.tl-icon {
	position: relative; display: inline-grid; place-items: center;
	width: 44px; height: 44px; border-radius: 50%; color: inherit !important;
	transition: background-color .25s var(--tl-ease);
}
.tl-icon:hover { background: rgba(255, 245, 230, .12); }
.tl-bag-count {
	position: absolute; top: 5px; right: 3px; min-width: 18px; height: 18px; padding: 0 5px;
	border-radius: 9px; background: var(--tl-ivory); color: var(--tl-choc);
	font: 600 0.6875rem/18px var(--tl-sans); text-align: center;
}
.tl-bag-count.is-empty { display: none; }

.tl-header__menu-btn {
	display: none; background: none; border: 0; padding: 0; width: 44px; height: 44px; border-radius: 50%;
	color: inherit; cursor: pointer; place-items: center;
}

.tl-mobile-nav {
	pointer-events: auto; max-width: calc(var(--tl-max) - 96px);
	margin: 10px auto 0; border-radius: 22px; --tl-glass: var(--tl-glass-strong);
	padding: 8px 22px 16px; color: var(--tl-glass-ink);
	max-height: calc(100svh - var(--tl-header-h) - 48px); overflow-y: auto;
}
.tl-mobile-nav__label { font: 400 .8125rem/1.2 var(--tl-sans); color: var(--tl-glass-muted); margin: 18px 0 4px; }
.tl-mobile-nav ul { list-style: none; margin: 0; padding: 0; }
.tl-mobile-nav a {
	display: block; padding: 12px 0; border-bottom: 1px solid var(--tl-glass-line);
	font: 400 1.375rem/1.2 var(--tl-serif); text-decoration: none; color: inherit !important;
}
.tl-mobile-nav li:last-child a { border-bottom: 0; }

@media (max-width: 899px) {
	.tl-header { padding-top: 10px; }
	.tl-header__bar { grid-template-columns: 1fr auto 1fr; gap: 4px; padding: 0 6px; }
	.tl-nav { display: none; }
	.tl-header__menu-btn { display: inline-grid; justify-self: start; }
	.tl-logo { justify-self: center; font-size: 1.625rem; }
	.tl-icon--account { display: none; }
}

/* ==========================================================================
   Front page
   ========================================================================== */
.tl-home { background: var(--tl-ivory); }
.tl-home > section { position: relative; }

/* ---------- Hero ---------- */
.tl-hero {
	height: clamp(600px, 88vh, 960px); min-height: 0;
	display: flex; align-items: center; overflow: hidden;
	background: #2a1a10; color: var(--tl-ivory);
}
.tl-hero__media, .tl-hero__media img {
	position: absolute; inset: 0; width: 100%; height: 100%;
}
.tl-hero__media img { object-fit: cover; object-position: 62% 40%; animation: tl-hero-in 2.2s var(--tl-ease) both; }
.tl-hero::after {
	content: ""; position: absolute; inset: 0; pointer-events: none;
	background:
		linear-gradient(90deg, rgba(30, 18, 10, .62) 0%, rgba(30, 18, 10, .32) 34%, rgba(30, 18, 10, 0) 58%),
		linear-gradient(180deg, rgba(30, 18, 10, .45) 0%, rgba(30, 18, 10, 0) 22%);
}
.tl-hero__inner {
	position: relative; z-index: 1; width: 100%; max-width: var(--tl-max); margin: 0 auto;
	padding: calc(var(--tl-header-h) + 40px) var(--tl-gutter) 48px;
}
.tl-hero__title {
	font-family: var(--tl-serif); font-weight: 400; color: var(--tl-ivory) !important;
	font-size: clamp(3.25rem, 6.6vw, 7rem); line-height: .96; letter-spacing: -0.015em;
	max-width: 8.6em; margin: 0 0 24px; text-wrap: balance;
}
.tl-hero__lede {
	font: 400 clamp(1.125rem, 1.6vw, 1.375rem)/1.45 var(--tl-sans);
	max-width: 20em; margin: 0 0 40px; color: rgba(245, 235, 221, .92);
}
.tl-hero__actions { display: flex; flex-wrap: wrap; gap: 14px; }
.tl-hero__title, .tl-hero__lede, .tl-hero__actions { animation: tl-rise 1.1s var(--tl-ease) both; }
.tl-hero__lede { animation-delay: .15s; }
.tl-hero__actions { animation-delay: .3s; }

@keyframes tl-hero-in { from { transform: scale(1.05); filter: brightness(.6); } to { transform: none; filter: none; } }
@keyframes tl-rise { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: none; } }

@media (max-width: 699px) {
	.tl-hero { height: auto; min-height: min(100svh, 860px); align-items: flex-end; }
	.tl-hero__media img { object-position: 50% 30%; }
	.tl-hero::after {
		background:
			linear-gradient(0deg, rgba(28, 17, 10, .92) 0%, rgba(28, 17, 10, .62) 30%, rgba(28, 17, 10, 0) 56%),
			linear-gradient(180deg, rgba(28, 17, 10, .5) 0%, rgba(28, 17, 10, 0) 18%);
	}
	.tl-hero__inner { padding-bottom: 40px; }
	.tl-hero__title { font-size: clamp(2.75rem, 12.5vw, 3.9rem); margin-bottom: 14px; }
	.tl-hero__lede { margin-bottom: 28px; }
	.tl-hero__actions { display: grid; grid-template-columns: 1.4fr 1fr; gap: 10px; }
	.tl-hero__actions .tl-btn { padding: 0 12px; min-height: 50px; font-size: .875rem; white-space: nowrap; gap: 6px; }
	.tl-hero__actions .tl-arrow { width: 16px; height: 16px; }
}

/* ---------- Section frame ---------- */
.tl-collection, .tl-journal-wrap {
	max-width: var(--tl-max); margin: 0 auto;
	padding: var(--tl-section) var(--tl-gutter);
}
.tl-section-head {
	display: flex; align-items: flex-end; justify-content: space-between; gap: 24px;
	margin-bottom: clamp(32px, 4vw, 56px);
}

/* ---------- Collection ---------- */
.tl-grid {
	list-style: none; margin: 0; padding: 0;
	display: grid; grid-template-columns: repeat(var(--tl-cols, 4), minmax(0, 1fr));
	gap: clamp(28px, 2.4vw, 40px) clamp(16px, 2vw, 28px);
}
.tl-card { margin: 0; }
.tl-card__media {
	display: block; position: relative; overflow: hidden;
	aspect-ratio: 4 / 5; background: var(--tl-cream);
}
.tl-grid[style*="--tl-cols: 1"] .tl-card__media,
.tl-grid[style*="--tl-cols: 2"] .tl-card__media { aspect-ratio: 1 / 1; }
.tl-card__img {
	position: absolute; inset: 0; width: 100% !important; height: 100% !important;
	object-fit: cover; transition: transform 1.1s var(--tl-ease), opacity .6s var(--tl-ease);
}
.tl-card__img--alt { opacity: 0; }
@media (hover: hover) {
	.tl-card:hover .tl-card__img { transform: scale(1.035); }
	.tl-card:hover .tl-card__img--alt { opacity: 1; }
}
.tl-card__badge {
	position: absolute; top: 16px; left: 16px; z-index: 1;
	padding: 6px 12px; border-radius: 999px; background: var(--tl-ivory); color: var(--tl-text);
	font: 500 0.8125rem/1 var(--tl-sans);
}
.tl-card__meta {
	display: flex; align-items: flex-start; justify-content: space-between; gap: 16px;
	padding-top: 18px;
}
.tl-card__name { font: 500 1.0625rem/1.3 var(--tl-sans) !important; margin: 0 0 6px; letter-spacing: 0; }
.tl-card__name a { text-decoration: none; }
.tl-card__name a:hover { text-decoration: underline; text-underline-offset: 4px; }
.tl-card__price { margin: 0; font: 400 1rem/1.3 var(--tl-sans); color: var(--tl-muted); }
.tl-card__price .woocommerce-Price-amount { color: inherit; font-weight: 400; }
.tl-card.is-sold-out .tl-card__img { filter: saturate(.75); }

.tl-quick-add {
	flex: none; display: inline-grid !important; place-items: center;
	width: 40px; height: 40px; border-radius: 50%; padding: 0 !important; margin: 0 !important;
	border: 1px solid rgba(45, 33, 24, .35); background: transparent !important; color: var(--tl-text) !important;
	transition: background-color .25s var(--tl-ease), color .25s var(--tl-ease), border-color .25s var(--tl-ease);
	min-height: 0 !important; line-height: 0 !important;
}
.tl-quick-add:hover { background: var(--tl-choc) !important; border-color: var(--tl-choc); color: var(--tl-ivory) !important; }
.tl-quick-add.loading { opacity: .5; pointer-events: none; }
.tl-quick-add.added { background: var(--tl-choc) !important; color: var(--tl-ivory) !important; }
.tl-quick-add.loading::after, .tl-quick-add.added::after { display: none !important; }
.tl-card .added_to_cart { display: none !important; }

@media (max-width: 1099px) {
	.tl-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.tl-grid .tl-card__media { aspect-ratio: 4 / 5 !important; }
}
@media (max-width: 599px) {
	.tl-grid { gap: 28px 12px; }
	.tl-card__meta { gap: 8px; padding-top: 12px; }
	.tl-card__name { font-size: .9375rem !important; }
	.tl-card__price { font-size: .875rem; }
	.tl-quick-add { width: 36px; height: 36px; }
	.tl-section-head { align-items: center; }
}

/* ---------- Studio ---------- */
.tl-studio {
	background: var(--tl-choc); color: var(--tl-ivory);
	display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr);
	min-height: clamp(520px, 62vw, 820px);
}
.tl-studio__media { position: relative; overflow: hidden; margin: 0; }
.tl-studio__media img {
	position: absolute; inset: 0; width: 100%; height: 100%;
	object-fit: cover; object-position: 50% 35%;
}
.tl-studio__copy {
	align-self: center; padding: clamp(56px, 7vw, 120px) var(--tl-gutter) clamp(56px, 7vw, 120px) clamp(40px, 7vw, 120px);
	max-width: 640px;
}
.tl-studio__title {
	font-family: var(--tl-serif); font-weight: 400; color: var(--tl-ivory) !important;
	font-size: clamp(2.25rem, 3.8vw, 3.75rem); line-height: 1.08; margin: 0; max-width: 12em; text-wrap: balance;
}
@media (max-width: 899px) {
	.tl-studio { grid-template-columns: 1fr; min-height: 0; }
	.tl-studio__copy { scroll-margin-top: 0; }
	.tl-studio__media { aspect-ratio: 4 / 4.4; }
	.tl-studio__copy { padding: 56px var(--tl-gutter) 72px; }
}

/* ---------- Journal: notepad + notes ---------- */
.tl-journal {
	display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr);
	gap: clamp(40px, 6vw, 104px); align-items: start;
}
.tl-paper {
	--tl-rule: 34px;
	position: relative; background-color: #fbf5ec; color: var(--tl-text);
	border-radius: 3px 3px 6px 6px;
	padding: 64px clamp(28px, 4vw, 52px) 40px clamp(56px, 6vw, 84px);
	background-image:
		linear-gradient(90deg, transparent calc(clamp(40px, 4.4vw, 62px) - 1px), rgba(106, 58, 30, .38) calc(clamp(40px, 4.4vw, 62px) - 1px), rgba(106, 58, 30, .38) clamp(40px, 4.4vw, 62px), transparent clamp(40px, 4.4vw, 62px)),
		repeating-linear-gradient(180deg, transparent 0, transparent calc(var(--tl-rule) - 1px), rgba(106, 58, 30, .13) calc(var(--tl-rule) - 1px), rgba(106, 58, 30, .13) var(--tl-rule));
	background-position: 0 0, 0 58px;
	box-shadow:
		0 1px 0 rgba(45, 33, 24, .06),
		6px 7px 0 -1px #f1e6d6, 6px 7px 0 0 rgba(45, 33, 24, .08),
		12px 14px 0 -2px #ecdfcc, 12px 14px 0 -1px rgba(45, 33, 24, .07),
		0 30px 60px -36px rgba(45, 33, 24, .5);
}
/* binding strip with punched holes */
.tl-paper::before {
	content: ""; position: absolute; left: 0; right: 0; top: 0; height: 30px;
	border-radius: 3px 3px 0 0; background-color: var(--tl-choc);
	background-image: radial-gradient(circle at 50% 55%, var(--tl-ivory) 0 5px, transparent 5.5px);
	background-size: 30px 30px; background-repeat: repeat-x; background-position: 12px 0;
}
.tl-paper__head { margin-bottom: var(--tl-rule); }
@media (min-width: 1000px) { .tl-journal > .tl-paper { position: sticky; top: calc(var(--tl-header-h) + var(--tl-admin) + 40px); } }
.tl-paper .tl-h2 { line-height: var(--tl-rule); font-size: clamp(2rem, 3vw, 2.75rem); padding-top: 4px; }
.tl-paper .tl-h2 { line-height: 1.15; }
.tl-paper__intro { font: 400 1rem/var(--tl-rule) var(--tl-sans); color: var(--tl-muted); margin: 6px 0 0; }
.tl-paper__note { margin: 0 0 var(--tl-rule); }
.tl-paper__note .tl-note__meta { margin-bottom: 6px; }
.tl-paper__title { font: 400 clamp(1.5rem, 2.2vw, 1.875rem)/var(--tl-rule) var(--tl-serif); margin: 0; }
.tl-paper__title a { text-decoration: none; }
.tl-paper__title a:hover { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 5px; }
.tl-paper__excerpt { font: 400 1.0625rem/var(--tl-rule) var(--tl-serif); color: #4a392b; margin: 0 0 0; max-width: 32em; }
.tl-paper__links { display: flex; flex-wrap: wrap; gap: 8px 28px; line-height: var(--tl-rule); }
.tl-paper .tl-link { line-height: var(--tl-rule); }

.tl-notes { min-width: 0; }
.tl-notes__head {
	display: flex; align-items: baseline; justify-content: space-between; gap: 16px;
	padding-bottom: 18px; border-bottom: 1px solid var(--tl-text);
}
.tl-notes__head h3 { font: 500 1rem/1.3 var(--tl-sans) !important; margin: 0; letter-spacing: 0; }
.tl-notes__head span { font: 400 .9375rem/1.3 var(--tl-sans); color: var(--tl-muted); }
.tl-notes__list { list-style: none; margin: 0; padding: 0; }
.tl-note {
	display: grid; grid-template-columns: 7.5rem minmax(0, 1fr); gap: 8px 24px;
	padding: 26px 0; border-bottom: 1px solid var(--tl-line);
}
.tl-note__date { font: 400 .875rem/1.6 var(--tl-sans); color: var(--tl-muted); font-variant-numeric: tabular-nums; padding-top: 2px; }
.tl-note__meta { display: flex; align-items: center; gap: 10px; }
.tl-chip {
	display: inline-flex; align-items: center; height: 24px; padding: 0 10px; border-radius: 999px;
	font: 500 .75rem/1 var(--tl-sans); letter-spacing: .02em;
	border: 1px solid rgba(106, 58, 30, .45); color: var(--tl-amber);
}
.tl-chip--release { background: var(--tl-amber); border-color: var(--tl-amber); color: var(--tl-ivory); }
.tl-note__title { font: 400 1.375rem/1.25 var(--tl-serif) !important; margin: 10px 0 6px; }
.tl-note__title a { text-decoration: none; }
.tl-note__title a:hover { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 5px; }
.tl-note__text { font: 400 1rem/1.6 var(--tl-sans); color: var(--tl-muted); margin: 0; max-width: 38em; }

@media (max-width: 999px) {
	.tl-journal { grid-template-columns: 1fr; }
}
@media (max-width: 599px) {
	.tl-paper { padding: 56px 20px 32px 48px; }
	.tl-paper { background-image:
		linear-gradient(90deg, transparent 33px, rgba(106, 58, 30, .38) 33px, rgba(106, 58, 30, .38) 34px, transparent 34px),
		repeating-linear-gradient(180deg, transparent 0, transparent calc(var(--tl-rule) - 1px), rgba(106, 58, 30, .13) calc(var(--tl-rule) - 1px), rgba(106, 58, 30, .13) var(--tl-rule)); }
	.tl-note { grid-template-columns: 1fr; gap: 0; padding: 22px 0; }
	.tl-note__date { padding: 0 0 8px; }
}

/* Only one note so far: centre the notepad on its own */
.tl-journal--solo { grid-template-columns: minmax(0, 760px); justify-content: center; }
.tl-journal--solo > .tl-paper { position: relative !important; top: auto !important; }

/* Journal archive page (category-journal.php) */
.tl-journal-page { max-width: var(--tl-max); margin: 0 auto; padding: calc(var(--tl-section) * .6) var(--tl-gutter) var(--tl-section); }
.tl-journal-page .tl-journal { padding: 0; max-width: none; }
.tl-journal-page .tl-paper { position: sticky; top: calc(var(--tl-header-h) + var(--tl-admin) + 40px); }
@media (max-width: 999px) { .tl-journal-page .tl-paper { position: static; } }
.tl-journal-page .navigation.pagination { margin-top: 40px; }

/* ---------- Studio page (page-studio.php) ---------- */
/* Full-bleed: drop Ecomus' page title banner, top padding and boxed container. */
body.tulia-overlay .page-header { display: none !important; }
body.tulia-overlay #site-content { padding-top: 0 !important; padding-bottom: 0 !important; }
body.tulia-overlay #site-content > .em-container { max-width: none !important; padding-left: 0 !important; padding-right: 0 !important; }

.tl-studio--page { min-height: clamp(560px, 82vh, 900px); }
.tl-studio--page .tl-studio__copy { padding-top: calc(var(--tl-header-h) + 72px); }
.tl-studio--page .tl-studio__title { font-size: clamp(2.5rem, 4.6vw, 4.5rem); max-width: 11em; }
.tl-studio-page__body {
	max-width: var(--tl-max); margin: 0 auto;
	padding: var(--tl-section) var(--tl-gutter);
	display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 42rem) minmax(0, 1fr);
}
.tl-studio-page__body > * { grid-column: 2; }
.tl-prose { font: 400 1.125rem/1.75 var(--tl-sans); color: var(--tl-text); }
.tl-prose > * { margin: 0 0 1.2em; }
.tl-prose .tl-lede, .tl-prose > p:first-child {
	font: 400 clamp(1.5rem, 2.4vw, 2rem)/1.35 var(--tl-serif); margin-bottom: 1.4em; text-wrap: pretty;
}
.tl-prose h2 { font: 400 clamp(1.625rem, 2.4vw, 2.125rem)/1.2 var(--tl-serif) !important; margin: 2em 0 .6em; }
.tl-prose a { color: var(--tl-amber); text-underline-offset: 4px; }
.tl-prose img, .tl-prose figure { max-width: 100%; height: auto; margin: 2em 0; }
.tl-studio-page__cta { margin-top: 48px; }
.tl-btn--dark { background: var(--tl-choc); color: var(--tl-ivory) !important; }
.tl-btn--dark:hover { background: var(--tl-amber); }
@media (max-width: 899px) {
	.tl-studio--page .tl-studio__copy { padding-top: 48px; }
	.tl-studio-page__body { display: block; }
}

/* ---------- Journal pages (archive + single note) ---------- */
body.tulia-journal .page-header { display: none !important; }
body.tulia-journal #site-content { padding-top: 0 !important; }
body.tulia-journal #site-content > .em-container { max-width: none !important; padding-left: 0 !important; padding-right: 0 !important; }

.tl-note-page {
	max-width: 880px; margin: 0 auto;
	padding: clamp(40px, 6vw, 80px) var(--tl-gutter) var(--tl-section);
}
.tl-note-page__back { margin-bottom: 28px; }
.tl-note-page__back .tl-arrow { order: -1; }
.tl-paper--article { padding-bottom: 56px; }
.tl-paper--article .tl-paper__head { margin-bottom: var(--tl-rule); }
.tl-paper__article-title {
	font: 400 clamp(2.125rem, 4.2vw, 3.25rem)/1.12 var(--tl-serif) !important;
	margin: 14px 0 0; max-width: 16em; text-wrap: balance;
}
.tl-paper__body { font: 400 clamp(1.0625rem, 1.5vw, 1.1875rem)/var(--tl-rule) var(--tl-serif); color: #3a2a1f; max-width: 36em; }
.tl-paper__body > * { margin: 0 0 var(--tl-rule); }
.tl-paper__body > :last-child { margin-bottom: 0; }
.tl-paper__body h2, .tl-paper__body h3 { font: 400 1.5rem/var(--tl-rule) var(--tl-serif) !important; }
.tl-paper__body a { color: var(--tl-amber); text-underline-offset: 4px; }
.tl-paper__body img { max-width: 100%; height: auto; }
.tl-paper__body .tl-signoff, .tl-paper__body > p:last-child:not(:first-child) {
	font-size: clamp(1.375rem, 2vw, 1.625rem); color: var(--tl-text);
}
.tl-note-page__more { margin-top: 48px; }

/* ---------- Notepad: plain paper, set in Satoshi ---------- */
.tl-paper, .tl-paper.tl-paper--article {
	background-image: none !important;
	padding-left: clamp(28px, 4vw, 56px) !important;
	padding-right: clamp(28px, 4vw, 56px) !important;
}
.tl-paper .tl-h2,
.tl-paper .tl-paper__title,
.tl-paper .tl-paper__article-title {
	font-family: var(--tl-hand) !important; font-weight: 700 !important; letter-spacing: -0.03em !important;
	color: #2a1c13;
}
.tl-paper .tl-h2 { font-size: clamp(2.25rem, 3.4vw, 3rem) !important; line-height: 1.05 !important; }
.tl-paper .tl-paper__title { font-size: clamp(1.5rem, 2.1vw, 1.875rem) !important; line-height: 1.15 !important; margin-top: 8px; }
.tl-paper .tl-paper__article-title { font-size: clamp(2.125rem, 4.2vw, 3.25rem) !important; line-height: 1.06 !important; }
.tl-paper .tl-paper__intro,
.tl-paper .tl-paper__excerpt,
.tl-paper .tl-paper__body {
	font-family: var(--tl-hand) !important; font-weight: 400; letter-spacing: -0.005em;
	font-size: clamp(1.0625rem, 1.25vw, 1.1875rem) !important; line-height: 1.7 !important;
	color: #3a2a1f;
}
.tl-paper .tl-paper__intro { color: #5b4636; margin-top: 10px; }
.tl-paper .tl-paper__excerpt { margin-top: 8px; }
.tl-paper .tl-paper__body > * { margin: 0 0 1.1em !important; }
.tl-paper .tl-paper__body > :last-child { margin-bottom: 0 !important; }
.tl-paper .tl-paper__body h2, .tl-paper .tl-paper__body h3 { font: 700 1.5rem/1.2 var(--tl-hand) !important; letter-spacing: -0.02em !important; }
.tl-paper .tl-paper__body .tl-signoff,
.tl-paper .tl-paper__body > p:last-child:not(:first-child) { font-size: clamp(1.0625rem, 1.25vw, 1.1875rem) !important; font-weight: 700; color: #2a1c13; margin-top: 1.6em !important; }
.tl-paper .tl-paper__head { margin-bottom: 28px; }
.tl-paper .tl-paper__note { margin-bottom: 28px; }
.tl-paper .tl-paper__links, .tl-paper .tl-link { line-height: 1.4; }

/* ---------- Scroll reveal ---------- */
.tl-js .tl-reveal { opacity: 0; transform: translateY(24px); transition: opacity 1s var(--tl-ease), transform 1s var(--tl-ease); }
.tl-js .tl-reveal.is-in { opacity: 1; transform: none; }

/* ==========================================================================
   Store-wide restyle (shop, product, cart, checkout, account, panels)
   ========================================================================== */
body.tulia .site-content { background: var(--tl-ivory); }
body.tulia .page-header,
body.tulia .page-header--shop { background: var(--tl-cream) !important; color: var(--tl-text); }
body.tulia .page-header__title { font-size: clamp(2.5rem, 5vw, 4rem); }

/* Buttons */
body.tulia .button,
body.tulia button.button,
body.tulia .em-button-primary,
body.tulia .single_add_to_cart_button,
body.tulia .checkout-button,
body.tulia #place_order,
body.tulia .woocommerce-mini-cart__buttons .button {
	border-radius: 999px !important;
	font-family: var(--tl-sans) !important; font-weight: 500 !important; letter-spacing: .01em;
	transition: background-color .3s var(--tl-ease), color .3s var(--tl-ease), border-color .3s var(--tl-ease);
}
body.tulia .single_add_to_cart_button,
body.tulia .checkout-button,
body.tulia #place_order,
body.tulia .woocommerce-mini-cart__buttons .button.checkout,
body.tulia .button.alt {
	background: var(--tl-choc) !important; border-color: var(--tl-choc) !important; color: var(--tl-ivory) !important;
}
body.tulia .single_add_to_cart_button:hover,
body.tulia .checkout-button:hover,
body.tulia #place_order:hover,
body.tulia .woocommerce-mini-cart__buttons .button.checkout:hover,
body.tulia .button.alt:hover { background: var(--tl-amber) !important; border-color: var(--tl-amber) !important; }

/* Ecomus primary buttons (404, empty cart, etc.) keep readable text */
body.tulia .em-button-primary,
body.tulia a.em-button-primary,
body.tulia .em-button.em-button-primary { background: var(--tl-choc) !important; border-color: var(--tl-choc) !important; color: var(--tl-ivory) !important; }
body.tulia .em-button-primary:hover { background: var(--tl-amber) !important; border-color: var(--tl-amber) !important; }

/* "Return to shop" on the empty cart: ivory text on the dark pill */
body.tulia .return-to-shop .button,
body.tulia a.button.wc-backward { background: var(--tl-choc) !important; border-color: var(--tl-choc) !important; color: var(--tl-ivory) !important; }
body.tulia .return-to-shop .button:hover,
body.tulia a.button.wc-backward:hover { background: var(--tl-amber) !important; border-color: var(--tl-amber) !important; }

/* Cart page: hide the theme-demo "Happy Clients" testimonials */
body.tulia.woocommerce-cart .elementor-element-25fe117,
body.tulia.woocommerce-cart .e-con.e-parent:has(.elementor-widget-ecomus-testimonial-carousel) { display: none !important; }

/* Prices */
body.tulia .price, body.tulia .woocommerce-Price-amount { color: var(--tl-text); }
body.tulia .price del { color: var(--tl-taupe); }
body.tulia .onsale, body.tulia .woocommerce-badge { background: var(--tl-amber) !important; color: var(--tl-ivory) !important; border-radius: 999px; }

/* Product listing */
body.tulia ul.products li.product .woocommerce-loop-product__title,
body.tulia ul.products li.product h2 { font-family: var(--tl-sans) !important; font-weight: 500; font-size: 1.0625rem; }
body.tulia ul.products li.product .product-thumbnail,
body.tulia ul.products li.product img { border-radius: 0 !important; background: var(--tl-cream); }

/* Single product */
body.tulia .product_title { font-size: clamp(2.5rem, 4.4vw, 3.75rem) !important; line-height: 1.04; }
body.tulia .single-product .summary .price { font-family: var(--tl-sans); font-size: 1.375rem; }
body.tulia .woocommerce-product-gallery img { border-radius: 0 !important; }
body.tulia .variations select, body.tulia .quantity input, body.tulia input.input-text,
body.tulia select, body.tulia textarea { border-radius: 6px; border-color: var(--tl-line); background-color: #fffaf3; }

/* Panels & modals keep Ecomus behaviour, adopt the palette */
body.tulia .offscreen-panel .panel__container,
body.tulia .modal__container,
body.tulia .search-modal .modal__container { background: var(--tl-ivory); color: var(--tl-text); }
body.tulia .offscreen-panel .panel__header,
body.tulia .modal__header { border-color: var(--tl-line); }

/* Footer */
body.tulia .site-footer { background: var(--tl-choc) !important; color: rgba(245, 235, 221, .82); }
body.tulia .site-footer a { color: var(--tl-ivory) !important; }
body.tulia .site-footer .elementor-section,
body.tulia .site-footer .e-con,
body.tulia .site-footer .elementor-widget-wrap { background: transparent !important; }
body.tulia .site-footer .elementor-heading-title,
body.tulia .site-footer h1, body.tulia .site-footer h2,
body.tulia .site-footer h3, body.tulia .site-footer h4,
body.tulia .site-footer p, body.tulia .site-footer li,
body.tulia .site-footer .elementor-icon-list-text { color: rgba(245, 235, 221, .82) !important; }

/* Journal / blog */
body.tulia .entry-content { font-size: 1.0625rem; line-height: 1.7; }
body.tulia.single-post .entry-content > * { max-width: 68ch; margin-left: auto; margin-right: auto; }
body.tulia.single-post .entry-content h2 { font-size: 1.875rem; margin-top: 2em; }

@media (prefers-reduced-motion: reduce) {
	.tl-hero__media img, .tl-hero__title, .tl-hero__lede, .tl-hero__actions { animation: none !important; }
	.tl-js .tl-reveal { opacity: 1; transform: none; transition: none; }
	.tl-card__img { transition: none; }
}

/* ---------- Handwriting on the notepad ---------- */
.tl-writing .tl-ink {
	clip-path: inset(-25% 100% -35% -6%);
	animation: tl-ink var(--d, 200ms) cubic-bezier(.45, .05, .55, .95) var(--t, 0ms) forwards;
}
.tl-written .tl-ink { animation: none; clip-path: none; }
/* Before the homepage notepad scrolls into view, keep its text hidden so it can be written. */
.tl-writing-wait .tl-paper__title, .tl-writing-wait .tl-paper__excerpt { visibility: hidden; }
@keyframes tl-ink { to { clip-path: inset(-25% -12% -35% -6%); } }
@media (prefers-reduced-motion: reduce) {
	.tl-writing .tl-ink { animation: none; clip-path: none; }
}

/* Studio page: section headings in terracotta */
.tl-studio-page__body .tl-prose h2,
.tl-studio-page__body .tl-prose h3 { color: #b55933 !important; }

/* Studio intro: sans, a step larger than body; only the word "Tulia" in the serif */
.tl-studio-page__body .tl-prose .tl-lede,
.tl-studio-page__body .tl-prose > p:first-child {
	font: 400 clamp(1.25rem, 1.7vw, 1.4375rem)/1.55 var(--tl-sans);
	margin-bottom: .9em;
}
.tl-studio-page__body .tl-prose .tl-lede + .tl-lede { margin-bottom: 2.2em; }
.tl-studio-page__body .tl-prose .tl-lede em {
	font-family: var(--tl-serif); font-style: normal; font-size: 1.12em; letter-spacing: 0;
}

/* Journal: text under the written title fades in after it */
.tl-writing .tl-after { opacity: 0; transform: translateY(8px); animation: tl-after .7s cubic-bezier(.22, 1, .36, 1) var(--t, 0ms) forwards; }
.tl-written .tl-after { animation: none; opacity: 1; transform: none; }
@keyframes tl-after { to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .tl-writing .tl-after { animation: none; opacity: 1; transform: none; } }
