/*
Theme Name: Cafresco
Theme URI: https://cafresco.example
Author: Cafresco
Description: Warm café ordering theme for WooCommerce - espresso & terracotta palette, Newsreader + Hanken Grotesk. Built from the Cafresco app design.
Version: 1.0.0
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: cafresco
Tags: e-commerce, food-and-drink
WC requires at least: 7.0
*/

/* ============================= tokens & base ============================= */

:root {
	--espresso: #2E211B;
	--coffee: #5A3E2B;
	--terra: #C2673F;
	--terra-dk: #A9502C;
	--sage: #7E8E6A;
	--cream: #F5EDE1;
	--paper: #FBF6EC;
	--line: rgba(46, 33, 27, .1);
	--shell: #E7DAC6;
	--radius: 16px;
	--shadow-btn: 0 12px 24px -10px rgba(194, 103, 63, .7);
}

* { box-sizing: border-box; margin: 0; padding: 0; }

html { -webkit-text-size-adjust: 100%; }

body {
	background: var(--shell);
	color: var(--espresso);
	font-family: 'Hanken Grotesk', -apple-system, sans-serif;
	font-size: 15px;
	line-height: 1.5;
	-webkit-font-smoothing: antialiased;
}

img { max-width: 100%; height: auto; display: block; }
a { color: var(--terra-dk); text-decoration: none; }
a:hover { color: var(--terra); }

h1, h2, h3, h4, .caf-serif {
	font-family: 'Newsreader', Georgia, serif;
	font-weight: 500;
	color: var(--espresso);
	line-height: 1.12;
}

::-webkit-scrollbar { width: 8px; height: 8px; }
::-webkit-scrollbar-thumb { background: rgba(46, 33, 27, .2); border-radius: 8px; }
::-webkit-scrollbar-track { background: transparent; }

@keyframes cafFade { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } }
@keyframes cafPop  { from { opacity: 0; transform: scale(.96); }        to { opacity: 1; transform: scale(1); } }
@keyframes steam   { 0% { opacity: 0; transform: translateY(0) scaleX(1); } 30% { opacity: .5; } 100% { opacity: 0; transform: translateY(-18px) scaleX(1.6); } }

/* ============================= app shell ============================= */

.caf-app {
	max-width: 1080px;
	margin: 0 auto;
	min-height: 100vh;
	background: var(--paper);
	display: flex;
	flex-direction: column;
}

.caf-main { flex: 1; width: 100%; animation: cafFade .4s ease both; padding: 80px 0;}

@media (min-width: 1120px) {
	.caf-app {
		margin: 28px auto;
		min-height: calc(100vh - 56px);
		border-radius: 26px;
		box-shadow: 0 30px 70px -34px rgba(46, 33, 27, .5);
		overflow: hidden;
	}
}

.caf-wrap { max-width: 640px; margin: 0 auto; padding: 0 22px; width: 100%; }
.caf-wrap--wide { max-width: 940px; }

/* ============================= top bar ============================= */

.caf-topbar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	padding: 16px 22px;
	border-bottom: 1px solid var(--line);
	background: var(--paper);
	position: sticky;
	top: 0;
	z-index: 50;
}

.caf-brand { display: inline-flex; align-items: center; gap: 10px; color: var(--espresso); }
.caf-logo { width: 100%; height: 48px; flex: none; object-fit: contain; }
.caf-brand-name { font-family: 'Newsreader', Georgia, serif; font-size: 21px; letter-spacing: .3px; }

.caf-nav { display: flex; align-items: center; gap: 4px; }
.caf-nav a {
	padding: 9px 15px; border-radius: 20px;
	font-size: 13px; font-weight: 600; color: var(--coffee);
}
.caf-nav a:hover { background: var(--cream); }
.caf-nav a.is-active { background: var(--espresso); color: var(--cream); }

.caf-topbar-actions { display: flex; align-items: center; gap: 10px; }

.caf-icon-btn {
	position: relative;
	width: 40px; height: 40px; border-radius: 50%;
	border: 1px solid var(--line); background: var(--cream);
	display: inline-flex; align-items: center; justify-content: center;
	font-size: 16px; color: var(--coffee); cursor: pointer;
}
.caf-icon-btn:hover { color: var(--espresso); }

.caf-bag-count {
	position: absolute; top: -4px; right: -6px;
	background: var(--terra); color: #fff;
	font-size: 10px; font-weight: 700;
	min-width: 16px; height: 16px; border-radius: 8px;
	display: inline-flex; align-items: center; justify-content: center;
	padding: 0 4px;
}
.caf-bag-count.is-empty { display: none; }

@media (max-width: 760px) {
	.caf-nav { display: none; }
}

/* ============================= bottom tab bar (mobile) ============================= */

.caf-tabbar {
	display: none;
	position: fixed;
	bottom: 0; left: 0; right: 0;
	background: rgba(251, 246, 236, .92);
	-webkit-backdrop-filter: blur(12px);
	backdrop-filter: blur(12px);
	border-top: 1px solid var(--line);
	padding: 4px 6px calc(10px + env(safe-area-inset-bottom));
	z-index: 90;
}
.caf-tabbar a {
	flex: 1;
	display: flex; flex-direction: column; align-items: center; gap: 2px;
	padding: 8px 4px 4px;
	font-size: 11px; font-weight: 600; color: rgba(46, 33, 27, .45);
}
.caf-tabbar a.is-active { color: var(--terra-dk); }
.caf-tabbar .caf-tab-icon { font-size: 17px; position: relative; line-height: 1.2; font-style: normal; }

@media (max-width: 760px) {
	.caf-tabbar { display: flex; }
	body { padding-bottom: 74px; }
}

/* ============================= toast ============================= */

.caf-toast {
	position: fixed;
	bottom: 96px; left: 50%;
	transform: translateX(-50%);
	background: var(--espresso); color: var(--cream);
	padding: 11px 20px; border-radius: 24px;
	font-size: 13px; font-weight: 600;
	z-index: 120;
	box-shadow: 0 12px 24px -8px rgba(0, 0, 0, .4);
	white-space: nowrap;
	animation: cafPop .25s ease;
}
.caf-toast[hidden] { display: none; }
@media (min-width: 761px) { .caf-toast { bottom: 40px; } }

/* ============================= buttons ============================= */

.caf-btn,
.woocommerce button.button,
.woocommerce a.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce-page button.button,
button[name="apply_coupon"],
.wc-block-components-button {
	display: inline-flex; align-items: center; justify-content: center; gap: 8px;
	padding: 13px 24px;
	border: none; border-radius: var(--radius);
	background: var(--terra); color: #fff;
	font-family: inherit; font-size: 14px; font-weight: 700;
	cursor: pointer;
	transition: background .15s;
	text-decoration: none;
	line-height: 1.3;
}
.caf-btn:hover,
.woocommerce button.button:hover,
.woocommerce a.button:hover,
.woocommerce input.button:hover { background: var(--terra-dk); color: #fff; }

.caf-btn--big { width: 100%; padding: 16px; font-size: 15px; box-shadow: var(--shadow-btn); }
.caf-btn--dark { background: var(--espresso); color: var(--cream); }
.caf-btn--dark:hover { background: #3a2a1f; }
.caf-btn--ghost {
	background: transparent; color: var(--coffee);
	border: 1px solid var(--line); box-shadow: none;
}
.caf-btn--ghost:hover { background: var(--cream); color: var(--espresso); }

.woocommerce button.button:disabled,
.woocommerce button.button:disabled[disabled] {
	background: var(--terra); color: #fff; opacity: .5; padding: 13px 24px;
}

/* round "+" add button on rows */
.caf-add {
	width: 30px; height: 30px; border-radius: 50%;
	border: none; background: var(--terra); color: #fff !important;
	font-size: 18px; line-height: 1; cursor: pointer;
	display: inline-flex; align-items: center; justify-content: center;
	flex: none;
}
.caf-add:hover { background: var(--terra-dk); }
.caf-add.loading { opacity: .5; }
.caf-add.added::after { content: ''; }

/* hide the "View cart →" link Woo appends after ajax add — the toast covers it */
.added_to_cart.wc-forward { display: none; }

/* ============================= shared bits ============================= */

.caf-eyebrow {
	font-size: 11px; letter-spacing: 1.6px; text-transform: uppercase;
	color: var(--terra); font-weight: 700;
}

.caf-chip {
	display: inline-flex; align-items: center; gap: 7px;
	background: var(--cream); border: 1px solid var(--line);
	padding: 8px 14px; border-radius: 20px;
	font-size: 13px; color: var(--coffee); font-weight: 600;
	white-space: nowrap;
}
.caf-chip:hover { border-color: var(--terra); color: var(--terra-dk); }
.caf-chip .caf-dot { color: var(--terra); }

.caf-card {
	background: var(--cream);
	border: 1px solid var(--line);
	border-radius: var(--radius);
}

.caf-tile {
	width: 56px; height: 56px; border-radius: 14px;
	flex: none; position: relative; overflow: hidden; display: block;
}
.caf-tile-shine {
	position: absolute; inset: 0;
	background: radial-gradient(circle at 32% 28%, rgba(255, 255, 255, .28), transparent 60%);
}
.caf-tile.has-img img { width: 100%; height: 100%; object-fit: cover; }

/* ============================= home ============================= */

.caf-home-notices:not(:empty) { padding-top: 18px; }
.caf-home-notices .woocommerce-error, .caf-home-notices .woocommerce-message { margin-bottom: 0; }

.caf-home-head {
	padding: 30px 0 14px;
	display: flex; align-items: flex-start; justify-content: space-between; gap: 16px;
}
.caf-home-head h1 { font-size: 30px; margin-top: 4px; }
.caf-location { padding: 0 0 20px; }

.caf-hero {
	display: block;
	border-radius: 24px; overflow: hidden;
	background: linear-gradient(150deg, #3a2a1f, var(--coffee));
	position: relative;
	padding: 22px;
	color: var(--cream);
	min-height: 210px;
	display: flex; flex-direction: column; justify-content: flex-end;
	box-shadow: 0 18px 34px -18px rgba(46, 33, 27, .6);
}
.caf-hero:hover { color: var(--cream); }
.caf-hero-badge {
	position: absolute; top: 16px; left: 18px;
	font-size: 10px; letter-spacing: 1.6px; text-transform: uppercase;
	background: var(--terra); color: #fff;
	padding: 5px 10px; border-radius: 20px; font-weight: 700;
}
.caf-hero-title { font-family: 'Newsreader', Georgia, serif; font-size: 27px; line-height: 1.05; max-width: 220px; color: var(--cream); }
.caf-hero-desc { font-size: 13px; opacity: .75; margin-top: 6px; max-width: 240px; line-height: 1.4; }
.caf-hero-cta { margin-top: 14px; display: flex; align-items: center; gap: 12px; }
.caf-hero-price { font-family: 'Newsreader', Georgia, serif; font-size: 20px; white-space: nowrap; }
.caf-hero-price .amount { font-family: inherit; }
.caf-hero-view {
	background: var(--cream); color: var(--espresso);
	font-size: 12px; font-weight: 700;
	padding: 9px 16px; border-radius: 20px;
	flex: none; white-space: nowrap;
}
.caf-hero-img {
	position: absolute; top: 18px; right: 18px;
	width: 120px; height: 120px; object-fit: cover; border-radius: 18px;
}

/* CSS cup art */
.caf-cup { position: absolute; top: 34px; right: 20px; width: 96px; height: 104px; pointer-events: none; }
.caf-cup i { display: block; position: absolute; font-style: normal; }
.caf-cup .steam1, .caf-cup .steam2 {
	width: 8px; height: 20px; background: rgba(245, 237, 225, .5); border-radius: 6px;
	animation: steam 2.6s ease-in-out infinite;
}
.caf-cup .steam1 { left: 16px; top: 10px; }
.caf-cup .steam2 { left: 38px; top: 4px; animation-delay: .8s; }
.caf-cup .body { bottom: 0; left: 6px; width: 78px; height: 66px; background: var(--cream); border-radius: 10px 10px 22px 22px; }
.caf-cup .handle { bottom: 22px; right: -2px; width: 26px; height: 30px; border: 7px solid var(--cream); border-radius: 50%; }
.caf-cup .band { bottom: 52px; left: 12px; width: 66px; height: 14px; background: var(--terra); border-radius: 8px; }

.caf-cats { display: flex; gap: 9px; padding: 20px 0 8px; overflow-x: auto; scrollbar-width: none; }
.caf-cats::-webkit-scrollbar { display: none; }

.caf-row-head {
	padding: 16px 0 12px;
	display: flex; align-items: baseline; justify-content: space-between;
}
.caf-row-head h2 { font-size: 20px; }
.caf-link-more { border: none; background: none; color: var(--terra); font-weight: 700; font-size: 13px; }

/* product rows (home + menu) */
.caf-prod-list { display: flex; flex-direction: column; gap: 12px; padding-bottom: 30px; }

.caf-prod-row {
	display: flex; gap: 14px; align-items: center;
	background: var(--cream); border: 1px solid var(--line);
	border-radius: 18px; padding: 12px;
	animation: cafFade .4s ease both;
}
.caf-prod-row .caf-tile { width: 58px; height: 58px; }
.caf-prod-main { flex: 1; min-width: 0; color: inherit; display: block; }
.caf-prod-name { font-weight: 700; font-size: 15px; color: var(--espresso); }
.caf-prod-sub { font-size: 12px; color: var(--coffee); opacity: .65; line-height: 1.35; margin-top: 2px; }
.caf-prod-side { text-align: right; flex: none; }
.caf-prod-price { font-family: 'Newsreader', Georgia, serif; font-size: 17px; color: var(--espresso); }
.caf-prod-price .amount { font-family: inherit; }
.caf-prod-side .caf-add { margin-top: 5px; }

/* ============================= browse-only: carousel, hours, reserve ============================= */

.caf-chip-ext { opacity: .45; font-size: 11px; }
.caf-social-btn svg { width: 18px; height: 18px; }

/* best sellers carousel */
.caf-carousel { position: relative; }
.caf-carousel-track {
	display: flex; gap: 12px;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
	margin: 0 -22px; padding: 0 22px 4px;
}
.caf-carousel-track::-webkit-scrollbar { display: none; }
.caf-slide {
	flex: 0 0 86%;
	max-width: 420px;
	scroll-snap-align: center;
	border-radius: 24px; overflow: hidden;
	position: relative;
	/* top padding reserves the art zone — text never runs under the cup */
	padding: 128px 20px 20px;
	color: var(--cream);
	display: flex; flex-direction: column; justify-content: flex-end;
	box-shadow: 0 18px 34px -18px rgba(46, 33, 27, .6);
}
.caf-slide:hover { color: var(--cream); }
.caf-slide .caf-cup { top: 20px; right: 18px; }
.caf-slide .caf-hero-title { max-width: none; font-size: 24px; }
.caf-slide .caf-hero-desc {
	max-width: none;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
.caf-slide .caf-hero-img { top: 14px; right: 14px; width: 96px; height: 96px; }
@media (min-width: 761px) { .caf-slide { flex-basis: 46%; } }

.caf-carousel-dots { display: flex; justify-content: center; gap: 7px; padding: 12px 0 2px; }
.caf-carousel-dots button {
	width: 7px; height: 7px; border-radius: 50%;
	border: none; padding: 0; cursor: pointer;
	background: rgba(46, 33, 27, .18);
	transition: all .25s;
}
.caf-carousel-dots button.is-active { background: var(--terra); width: 20px; border-radius: 5px; }

.caf-beverages-btn { margin-top: 18px; }

/* coffee cart — coming soon */
@keyframes cartBob { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-4px); } }
@keyframes cartWheel { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }

.caf-cart-soon {
	margin-top: 18px;
	display: flex; align-items: center; gap: 20px;
	background: var(--cream);
	border: 1px solid var(--line);
	border-radius: 20px;
	padding: 20px;
	overflow: hidden;
}
.caf-cart-art {
	position: relative;
	width: 130px; height: 118px;
	flex: none;
	animation: cartBob 3.2s ease-in-out infinite;
}
.caf-cart-art i { position: absolute; display: block; font-style: normal; }
.caf-cart-art .cart-awning {
	top: 8px; left: 8px;
	width: 114px; height: 26px;
	border-radius: 12px 12px 4px 4px;
	overflow: hidden;
	display: flex;
	box-shadow: 0 2px 0 rgba(46, 33, 27, .08);
}
.caf-cart-art .cart-awning i { position: static; flex: 1; height: 100%; background: var(--terra); }
.caf-cart-art .cart-awning i:nth-child(2n) { background: var(--paper); }
.caf-cart-art .cart-pole { top: 30px; left: 62px; width: 4px; height: 26px; background: var(--coffee); border-radius: 2px; }
.caf-cart-art .cart-body {
	top: 52px; left: 14px;
	width: 102px; height: 40px;
	background: var(--coffee);
	border-radius: 8px 8px 4px 4px;
}
.caf-cart-art .cart-window {
	top: 60px; left: 26px;
	width: 34px; height: 16px;
	background: var(--cream);
	border-radius: 4px;
	opacity: .85;
}
.caf-cart-art .cart-sign {
	top: 58px; left: 78px;
	width: 22px; height: 22px;
	background: var(--terra);
	color: var(--cream);
	border-radius: 50%;
	font-family: 'Newsreader', Georgia, serif; font-size: 14px; font-weight: 600;
	display: flex; align-items: center; justify-content: center;
}
.caf-cart-art .cart-wheel {
	top: 92px;
	width: 22px; height: 22px;
	border-radius: 50%;
	border: 4px solid var(--espresso);
	background: var(--paper);
	animation: cartWheel 6s linear infinite;
}
.caf-cart-art .cart-wheel::after {
	content: '';
	position: absolute; left: 50%; top: 1px; bottom: 1px;
	width: 2px; margin-left: -1px;
	background: var(--espresso);
	border-radius: 1px;
}
.caf-cart-art .cart-wheel.w1 { left: 26px; }
.caf-cart-art .cart-wheel.w2 { left: 82px; animation-delay: -3s; }
.caf-cart-art .cart-cup {
	top: 38px; left: 18px;
	width: 16px; height: 13px;
	background: var(--terra);
	border-radius: 3px 3px 6px 6px;
}
.caf-cart-art .cart-cup-band { top: 42px; left: 18px; width: 16px; height: 3px; background: var(--cream); opacity: .7; }
.caf-cart-art .cart-steam {
	width: 4px; height: 10px;
	background: rgba(90, 62, 43, .4);
	border-radius: 3px;
	animation: steam 2.6s ease-in-out infinite;
}
.caf-cart-art .cart-steam.s1 { top: 24px; left: 21px; }
.caf-cart-art .cart-steam.s2 { top: 22px; left: 28px; animation-delay: .8s; }

.caf-cart-copy { flex: 1; min-width: 0; }
.caf-cart-title { font-size: 21px; margin-top: 4px; }
.caf-cart-copy p { font-size: 13px; color: var(--coffee); opacity: .75; line-height: 1.5; margin-top: 6px; }
.caf-cart-follow { display: inline-block; margin-top: 10px; font-size: 13px; font-weight: 700; color: var(--terra); }

@media (max-width: 480px) {
	.caf-cart-soon { flex-direction: column; text-align: center; }
	.caf-cart-copy { text-align: center; }
}

/* reservation date field */
.caf-reserve-date-row { margin-top: 14px; }
.caf-reserve-date-row input[type="date"] { display: block; width: 100%; }
.caf-date-status { display: block; margin-top: 7px; font-size: 12px; font-weight: 700; }
.caf-date-status.is-ok { color: var(--sage); }
.caf-date-status.is-bad { color: #a03b2e; }

/* opening hours card */
.caf-hours-card {
	margin-top: 18px;
	background: linear-gradient(160deg, #3a2a1f, var(--coffee));
	color: var(--cream);
	border-radius: 20px;
	padding: 22px;
}
.caf-hours-card .caf-eyebrow { color: #EFB48F; }
.caf-hours-lines { margin-top: 10px; }
.caf-hours-line {
	font-size: 21px; color: var(--cream);
	padding: 7px 0;
	border-bottom: 1px solid rgba(245, 237, 225, .12);
}
.caf-hours-line:last-child { border-bottom: none; }
.caf-hours-note { font-size: 13px; opacity: .72; line-height: 1.5; margin-top: 8px; }
.caf-hours-fb { margin-top: 14px; border-color: rgba(245, 237, 225, .25); color: var(--cream); }
.caf-hours-fb:hover { background: rgba(245, 237, 225, .1); color: #fff; }

/* footer info */
.caf-footer-hours { display: flex; flex-direction: column; gap: 2px; font-size: 12px; opacity: .75; }
.caf-footer-links { display: flex; gap: 14px; font-weight: 600; font-size: 13px; }

/* static size list (drinks, browse mode) */
.caf-sizes-static { margin-top: 22px; }
.caf-size-row {
	display: flex; justify-content: space-between; align-items: center;
	padding: 12px 16px;
	background: var(--cream); border: 1px solid var(--line);
	border-radius: 14px;
	margin-top: 8px;
	font-size: 14px; font-weight: 600; color: var(--coffee);
}
.caf-size-price { font-family: 'Newsreader', Georgia, serif; font-size: 17px; color: var(--espresso); }
.caf-size-price .amount { font-family: inherit; }

.caf-browse-cta { margin-top: 22px; }
.caf-browse-cta p { font-size: 13px; color: var(--coffee); opacity: .7; margin-bottom: 12px; }

/* reservation form */
.caf-reserve { margin-top: 26px; padding-top: 20px; border-top: 1px solid var(--line); }
.caf-reserve-title { font-size: 22px; }
.caf-reserve-sub { font-size: 13px; color: var(--coffee); opacity: .7; margin: 6px 0 16px; }
.caf-reserve-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
@media (max-width: 560px) { .caf-reserve-grid { grid-template-columns: 1fr; } }
.caf-reserve .input-text {
	width: 100%;
	background: var(--cream); border: 1px solid var(--line);
	border-radius: 14px; padding: 13px 16px;
	font-size: 15px; font-family: inherit; color: var(--espresso);
	outline: none;
}
.caf-reserve .input-text:focus { border-color: var(--terra); }
.caf-reserve-qty-row { margin-top: 14px; }
.caf-reserve-qty { display: flex; align-items: center; gap: 10px; }
.caf-reserve-qty .caf-qty, .caf-reserve-qty .quantity { margin-top: 0; }
.caf-reserve-min { font-size: 12px; font-weight: 700; color: var(--terra-dk); }
.caf-reserve-note { margin-top: 14px; }
.caf-reserve textarea.input-text { resize: vertical; min-height: 54px; }
.caf-reserve form .caf-btn--big { margin-top: 16px; }
.caf-reserve-fineprint { font-size: 12px; color: var(--coffee); opacity: .65; line-height: 1.5; margin-top: 10px; }
.caf-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }

/* reservation confirmation */
.caf-reserve-done { margin-top: 26px; padding-top: 4px; text-align: center; animation: cafFade .4s ease both; }
.caf-reserve-done .caf-confirm-badge { width: 64px; height: 64px; font-size: 30px; }
.caf-reserve-done h2 { font-size: 24px; margin-top: 14px; }
.caf-shot-card { text-align: left; }
.caf-reserve-steps {
	text-align: left;
	margin: 18px 0 4px; padding-left: 22px;
	font-size: 14px; color: var(--coffee);
	display: flex; flex-direction: column; gap: 8px;
}
.caf-reserve-done .caf-btn--big { margin-top: 16px; }
.caf-reserve-warning {
	margin-top: 14px;
	font-size: 12px; line-height: 1.55;
	color: var(--terra-dk);
	background: rgba(194, 103, 63, .08);
	border: 1px solid rgba(194, 103, 63, .3);
	border-radius: 14px;
	padding: 12px 14px;
	text-align: left;
}

/* paused pre-orders */
.caf-paused { text-align: center; }
.caf-paused-badge {
	display: inline-flex; align-items: center; justify-content: center;
	width: 46px; height: 46px; border-radius: 50%;
	background: rgba(194, 103, 63, .12);
	color: var(--terra-dk);
	font-size: 20px;
	flex: none;
}
.caf-paused .caf-reserve-title { margin-top: 12px; }
.caf-paused .caf-btn { margin-top: 14px; }

.caf-paused-note {
	display: flex; gap: 14px; align-items: flex-start;
	background: rgba(194, 103, 63, .08);
	border: 1px solid rgba(194, 103, 63, .3);
	border-radius: 16px;
	padding: 16px;
	margin: 14px 0 6px;
	color: var(--terra-dk);
}
.caf-paused-note strong { font-size: 14px; }
.caf-paused-note p { font-size: 13px; margin-top: 3px; line-height: 1.5; color: var(--coffee); }

.caf-catalog-banner.is-paused .caf-catalog-banner-icon { background: rgba(46, 33, 27, .07); }
.caf-catalog-banner.is-paused .caf-catalog-banner-sub { color: var(--terra-dk); opacity: 1; font-weight: 600; }

/* reserve pill on list rows */
.caf-reserve-link {
	display: inline-block;
	margin-top: 4px;
	padding: 8px 14px; border-radius: 16px;
	background: var(--terra); color: #fff !important;
	font-size: 12px; font-weight: 700;
	white-space: nowrap;
}
.caf-reserve-link:hover { background: var(--terra-dk); }

/* ============================= pre-order catalog ============================= */

.caf-badge-pre {
	display: inline-block;
	vertical-align: 2px;
	margin-left: 6px;
	font-size: 9px; letter-spacing: 1.2px; text-transform: uppercase;
	background: rgba(194, 103, 63, .12);
	color: var(--terra-dk);
	border: 1px solid rgba(194, 103, 63, .35);
	padding: 3px 8px; border-radius: 12px; font-weight: 700;
	white-space: nowrap;
}
.caf-eyebrow + .caf-badge-pre { margin-left: 8px; vertical-align: 1px; }

.caf-prod-min { color: var(--terra-dk); opacity: .85; font-weight: 600; }

.caf-preorder-info { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 14px; }
.caf-note--pre {
	background: rgba(194, 103, 63, .08);
	border-color: rgba(194, 103, 63, .35);
	color: var(--terra-dk);
}

/* home banner */
.caf-catalog-banner {
	display: flex; align-items: center; gap: 14px;
	margin-top: 18px;
	background: var(--cream); border: 1px solid var(--line);
	border-radius: 18px; padding: 14px 16px;
	color: var(--espresso);
}
.caf-catalog-banner:hover { border-color: var(--terra); color: var(--espresso); }
.caf-catalog-banner-icon {
	width: 44px; height: 44px; border-radius: 12px; flex: none;
	background: rgba(194, 103, 63, .12);
	display: inline-flex; align-items: center; justify-content: center;
	font-size: 20px;
}
.caf-catalog-banner-text { flex: 1; min-width: 0; }
.caf-catalog-banner-title { display: block; font-weight: 700; font-size: 14px; }
.caf-catalog-banner-sub { display: block; font-size: 12px; color: var(--coffee); opacity: .65; }
.caf-catalog-banner-go { color: var(--terra); font-weight: 700; font-size: 16px; }

/* quantity stepper (pre-order product page + injected by JS) */
.caf-buy--preorder .quantity { display: inline-flex !important; }
.caf-qty {
	display: inline-flex; align-items: center; gap: 4px;
	background: var(--cream); border: 1px solid var(--line);
	border-radius: 20px; padding: 4px 6px;
	margin-top: 16px;
}
.caf-qty input.qty {
	width: 48px; border: none; background: transparent;
	text-align: center; font-weight: 700; font-size: 15px; font-family: inherit;
	color: var(--espresso);
	padding: 6px 0;
	-moz-appearance: textfield;
	appearance: textfield;
}
.caf-qty input.qty::-webkit-outer-spin-button,
.caf-qty input.qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.caf-qty-btn {
	width: 28px; height: 28px; border-radius: 50%;
	border: none; cursor: pointer;
	font-size: 16px; line-height: 1; font-family: inherit;
	display: inline-flex; align-items: center; justify-content: center;
	padding: 0;
}
.caf-qty-btn--dec { background: transparent; color: var(--coffee); }
.caf-qty-btn--inc { background: var(--terra); color: #fff; }
.caf-qty-btn--inc:hover { background: var(--terra-dk); }
.woocommerce-cart .caf-qty { margin-top: 0; }

/* menu search box */
.caf-search {
	margin-top: 14px;
	display: flex; align-items: center; gap: 9px;
	background: var(--cream); border: 1px solid var(--line);
	border-radius: 14px; padding: 3px 14px;
}
.caf-search-icon { opacity: .4; font-size: 16px; }
.caf-search input[type="search"] {
	flex: 1; border: none; background: transparent; outline: none;
	font-family: inherit; font-size: 14px; color: var(--espresso);
	padding: 10px 0;
}
.caf-search input[type="search"]::placeholder { color: var(--coffee); opacity: .5; }

/* menu category tabs (Coffee / Non-Coffee) */
.caf-tabs { display: flex; gap: 9px; margin-top: 16px; }
.caf-tab {
	padding: 10px 18px;
	border-radius: 14px; border: 1px solid var(--line);
	background: transparent;
	font-family: inherit; font-size: 13px; font-weight: 600; color: var(--coffee);
	cursor: pointer;
}
.caf-tab.is-active {
	border: 2px solid var(--terra);
	background: rgba(194, 103, 63, .08);
	font-weight: 700; color: var(--terra-dk);
	padding: 9px 17px;
}

.caf-panel-title { margin-bottom: 16px; }

/* menu page flat rows */
.caf-menu-group { margin-top: 22px; }
.caf-menu-group > .caf-eyebrow { margin-bottom: 4px; display: block; }
.caf-menu-row {
	display: flex; gap: 14px; align-items: center;
	padding: 13px 0; border-bottom: 1px solid var(--line);
}
.caf-page-title { font-size: 30px; padding-top: 30px; }
.caf-page-sub { font-size: 13px; color: var(--coffee); opacity: .6; margin-top: 2px; }

/* ============================= single product ============================= */

.caf-product { animation: cafFade .4s ease both; }

.caf-product-hero {
	height: 300px;
	position: relative; overflow: hidden;
	border-radius: 0;
}
.caf-product-hero .shine {
	position: absolute; inset: 0;
	background: radial-gradient(circle at 40% 30%, rgba(255, 255, 255, .22), transparent 55%);
}
.caf-back {
	position: absolute; top: 22px; left: 20px;
	width: 40px; height: 40px; border-radius: 50%;
	border: none; background: rgba(251, 246, 236, .9);
	color: var(--espresso) !important; font-size: 18px;
	display: inline-flex; align-items: center; justify-content: center;
	z-index: 5;
}
.caf-product-hero .caf-cup {
	top: auto; bottom: -10px; left: 50%; right: auto;
	transform: translateX(-50%);
	width: 170px; height: 180px;
}
.caf-product-hero .caf-cup .steam1 { left: 44px; top: 2px; width: 11px; height: 26px; }
.caf-product-hero .caf-cup .steam2 { left: 78px; top: -6px; width: 11px; height: 26px; animation-delay: .9s; }
.caf-product-hero .caf-cup .body { left: 20px; width: 130px; height: 120px; border-radius: 16px 16px 40px 40px; }
.caf-product-hero .caf-cup .handle { bottom: 38px; right: 0; width: 40px; height: 46px; border-width: 11px; }
.caf-product-hero .caf-cup .band { bottom: 92px; left: 34px; width: 102px; height: 20px; border-radius: 12px; filter: brightness(.8); }
.caf-product-hero > img,
.caf-product-hero > video { width: 100%; height: 100%; object-fit: cover; }

/* CSS pastry art (food/pastry products without a photo) */
.caf-pastry {
	position: absolute; bottom: 10px; left: 50%; transform: translateX(-50%);
	width: 180px; height: 150px; pointer-events: none;
}
.caf-pastry i { display: block; position: absolute; font-style: normal; }
.caf-pastry .croissant {
	bottom: 44px; left: 22px; width: 136px; height: 84px;
	background: radial-gradient(circle at 38% 30%, #EFC48A, #C98A42);
	border-radius: 50%;
	-webkit-mask-image: radial-gradient(circle 60px at 50% 92%, transparent 98%, #000 100%);
	mask-image: radial-gradient(circle 60px at 50% 92%, transparent 98%, #000 100%);
	box-shadow: 0 10px 18px -8px rgba(46, 33, 27, .35);
	animation: pastryRise 3.2s ease-in-out infinite;
	transform-origin: bottom center;
}
.caf-pastry .croissant::before,
.caf-pastry .croissant::after {
	content: ''; position: absolute; top: 14px;
	width: 44px; height: 5px;
	background: rgba(122, 74, 30, .35); border-radius: 3px;
}
.caf-pastry .croissant::before { left: 22px; transform: rotate(24deg); }
.caf-pastry .croissant::after  { left: 68px; transform: rotate(-24deg); }
.caf-pastry .shine {
	bottom: 112px; left: 50px; width: 36px; height: 10px;
	background: rgba(255, 244, 224, .7); border-radius: 50%;
	filter: blur(1px);
}
.caf-pastry .crumb1, .caf-pastry .crumb2, .caf-pastry .crumb3 {
	width: 8px; height: 8px; border-radius: 50%;
	background: #C98A42; opacity: 0;
	animation: crumbFloat 2.8s ease-in-out infinite;
}
.caf-pastry .crumb1 { bottom: 100px; left: 34px; }
.caf-pastry .crumb2 { bottom: 112px; left: 90px; width: 6px; height: 6px; animation-delay: .7s; }
.caf-pastry .crumb3 { bottom: 96px; left: 132px; width: 7px; height: 7px; animation-delay: 1.4s; }

@keyframes pastryRise { 0%, 100% { transform: translateY(0) scale(1); } 50% { transform: translateY(-6px) scale(1.015); } }
@keyframes crumbFloat {
	0%   { opacity: 0; transform: translateY(0); }
	40%  { opacity: .8; }
	100% { opacity: 0; transform: translateY(-22px); }
}

.caf-product-hero .caf-pastry {
	width: 230px; height: 190px;
	transform: translateX(-50%) scale(1.35);
	transform-origin: bottom center;
}

.caf-product-body {
	padding: 22px 22px 40px;
	margin-top: -22px;
	background: var(--paper);
	border-radius: 26px 26px 0 0;
	position: relative;
	max-width: 640px;
	margin-left: auto; margin-right: auto;
}
.caf-product-head {
	display: flex; align-items: flex-start; justify-content: space-between;
	gap: 14px; margin-top: 5px;
}
.caf-product-head h1 { font-size: 28px; }
.caf-product-price { font-family: 'Newsreader', Georgia, serif; font-size: 24px; color: var(--espresso); flex: none; }
.caf-product-price .amount { font-family: inherit; }
.caf-product-desc { font-size: 14px; color: var(--coffee); line-height: 1.55; margin-top: 10px; }
.caf-notes { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 16px; }
.caf-note {
	background: var(--cream); border: 1px solid var(--line);
	padding: 7px 13px; border-radius: 18px;
	font-size: 12px; font-weight: 600; color: var(--coffee);
}

/* buy form */
.caf-buy { margin-top: 22px; }
.caf-buy .quantity, .caf-buy .qib-container { display: none !important; }

.caf-buy form.cart .single_add_to_cart_button {
	width: 100%; padding: 16px; font-size: 15px;
	border-radius: var(--radius);
	box-shadow: var(--shadow-btn);
	margin-top: 16px;
}

/* variations — hidden select, pill UI injected by JS */
.caf-buy table.variations { width: 100%; border-collapse: collapse; }
.caf-buy table.variations th.label {
	display: block; text-align: left; padding: 0 0 9px;
	font-size: 11px; letter-spacing: 1.4px; text-transform: uppercase;
	color: var(--coffee); opacity: .6; font-weight: 700;
}
.caf-buy table.variations td.value { display: block; }
.caf-buy table.variations tr { display: block; margin-bottom: 6px; }
.caf-buy .caf-has-pills select { display: none; }
.caf-buy .reset_variations { font-size: 12px; color: var(--coffee); opacity: .6; display: inline-block; margin-top: 6px; }

.caf-pills { display: flex; gap: 9px; }
.caf-pill {
	flex: 1; text-align: center; padding: 12px;
	border-radius: 14px; border: 1px solid var(--line);
	background: transparent;
	font-family: inherit; font-size: 13px; font-weight: 600; color: var(--coffee);
	cursor: pointer;
}
.caf-pill.is-active {
	border: 2px solid var(--terra);
	background: rgba(194, 103, 63, .08);
	font-weight: 700; color: var(--terra-dk);
	padding: 11px;
}

.caf-buy .woocommerce-variation-price { margin-top: 12px; }
.caf-buy .woocommerce-variation-price .price {
	font-family: 'Newsreader', Georgia, serif; font-size: 20px; color: var(--espresso);
}
.caf-buy .woocommerce-variation-availability p { font-size: 13px; color: var(--coffee); margin-top: 4px; }
.caf-buy .stock.out-of-stock { color: var(--terra-dk); font-weight: 700; }

/* ============================= forms (Woo-wide) ============================= */

.woocommerce form .form-row { margin-bottom: 14px; }
.woocommerce form .form-row label,
.caf-field-label {
	display: block;
	font-size: 11px; letter-spacing: 1.2px; text-transform: uppercase;
	color: var(--coffee); opacity: .75; font-weight: 700;
	margin-bottom: 7px;
}
.woocommerce input.input-text,
.woocommerce textarea.input-text,
.woocommerce select,
.woocommerce .input-text,
.woocommerce-page .select2-selection {
	width: 100%;
	background: var(--cream);
	border: 1px solid var(--line);
	border-radius: 14px;
	padding: 13px 16px;
	font-size: 15px; font-family: inherit; color: var(--espresso);
	outline: none;
	height: auto;
}
.woocommerce .input-text:focus,
.woocommerce select:focus { border-color: var(--terra); }
.woocommerce-page .select2-selection { display: flex; align-items: center; min-height: 48px; }
.woocommerce-page .select2-selection__arrow { top: 50% !important; transform: translateY(-50%); right: 10px !important; }

.woocommerce-form-login .show-password-input { top: 14px; right: 14px; }

/* notices */
.woocommerce-message, .woocommerce-info, .woocommerce-error,
.woocommerce-noreviews, .wc-block-components-notice-banner {
	list-style: none;
	background: var(--espresso); color: var(--cream);
	border: none; border-radius: 14px;
	padding: 13px 18px;
	margin: 0 0 16px;
	font-size: 13px; font-weight: 600;
}
.woocommerce-message a, .woocommerce-info a, .woocommerce-error a { color: #EFB48F; }
.woocommerce-error { background: #5c2b2e; color: #ffd9d4; }
.woocommerce-error li { margin: 2px 0; }
.woocommerce-message .button, .woocommerce-info .button, .woocommerce-error .button {
	background: transparent; padding: 0; margin-right: 10px; color: #EFB48F; box-shadow: none;
	float: right;
}

/* ============================= cart ("Your bag") ============================= */

.caf-panel { max-width: 640px; margin: 0 auto; padding: 0 22px 40px; }
.caf-panel--wide { max-width: 940px; }

/* ============================= about us ============================= */

.caf-about-body { font-size: 15px; line-height: 1.7; color: var(--coffee); }
.caf-about-body p { margin-bottom: 16px; }

.caf-about-collage {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	grid-auto-rows: 140px;
	gap: 10px;
	margin: 24px 0 28px;
}
.caf-about-collage img {
	width: 100%; height: 100%;
	object-fit: cover;
	border-radius: 16px;
	box-shadow: 0 8px 20px -12px rgba(46, 33, 27, .35);
}

@media (min-width: 560px) {
	.caf-about-collage { grid-auto-rows: 190px; }
}

.caf-about-thanks {
	font-family: 'Newsreader', Georgia, serif; font-style: italic;
	font-size: 17px; color: var(--espresso);
	margin-top: 24px !important;
	padding-top: 20px; border-top: 1px solid var(--line);
}

.caf-about-social {
	display: flex; align-items: center; flex-wrap: wrap; gap: 18px;
	margin-top: 20px;
}
.caf-about-social a {
	display: inline-flex; align-items: center; gap: 8px;
	color: var(--coffee); font-weight: 700; font-size: 13px;
}
.caf-about-social a:hover { color: var(--terra-dk); }
.caf-about-social svg { width: 20px; height: 20px; flex: none; }
.caf-about-handle { font-size: 13px; color: var(--coffee); opacity: .55; }

.woocommerce-cart .caf-panel table.cart { width: 100%; border-collapse: collapse; }
.woocommerce-cart table.cart thead { display: none; }
.woocommerce-cart table.cart tr.woocommerce-cart-form__cart-item {
	display: flex; align-items: center; gap: 14px;
	padding: 14px 0;
	border-bottom: 1px solid var(--line);
}
.woocommerce-cart table.cart td { border: none; padding: 0; background: none; }
.woocommerce-cart table.cart td.product-remove { order: 9; }
.woocommerce-cart table.cart td.product-remove a {
	display: inline-flex; align-items: center; justify-content: center;
	width: 26px; height: 26px; border-radius: 50%;
	color: var(--coffee) !important; background: var(--cream);
	border: 1px solid var(--line);
	font-size: 15px; font-weight: 400;
}
.woocommerce-cart table.cart td.product-remove a:hover { background: #5c2b2e; color: #fff !important; }
.woocommerce-cart table.cart td.product-thumbnail { width: 52px; }
.woocommerce-cart table.cart td.product-thumbnail a { display: block; }
.woocommerce-cart table.cart td.product-thumbnail img,
.woocommerce-cart table.cart td.product-thumbnail .caf-tile { width: 52px; height: 52px; border-radius: 13px; object-fit: cover; }
.woocommerce-cart table.cart td.product-name { flex: 1; min-width: 0; font-weight: 700; font-size: 15px; }
.woocommerce-cart table.cart td.product-name a { color: var(--espresso); }
.woocommerce-cart table.cart td.product-name .variation {
	display: block; font-size: 12px; color: var(--coffee); opacity: .7; font-weight: 500; margin: 2px 0 0;
}
.woocommerce-cart table.cart td.product-name .variation dt,
.woocommerce-cart table.cart td.product-name .variation dd { display: inline; margin: 0; }
.woocommerce-cart table.cart td.product-price { display: none; }
.woocommerce-cart table.cart td.product-subtotal {
	font-family: 'Newsreader', Georgia, serif; font-size: 17px;
}
.woocommerce-cart table.cart td.product-quantity .quantity {
	display: inline-flex; align-items: center; gap: 4px;
	background: var(--cream); border: 1px solid var(--line);
	border-radius: 20px; padding: 3px 6px;
}
.woocommerce-cart table.cart td.product-quantity input.qty {
	width: 44px; border: none; background: transparent;
	text-align: center; font-weight: 700; font-size: 14px; font-family: inherit;
	color: var(--espresso);
	padding: 6px 0;
}
.woocommerce-cart table.cart td.actions { display: block; padding-top: 16px; border: none; }
.woocommerce-cart table.cart td.actions .coupon { display: flex; gap: 9px; margin-bottom: 12px; }
.woocommerce-cart table.cart td.actions .coupon .input-text { flex: 1; width: auto; }
.woocommerce-cart table.cart td.actions > .button { width: 100%; background: var(--cream); color: var(--coffee); border: 1px solid var(--line); box-shadow: none; }
.woocommerce-cart table.cart td.actions > .button:hover { color: var(--espresso); }

.cart-collaterals { margin-top: 20px; }
.cart-collaterals .cart_totals > h2 { display: none; }
.cart-collaterals table {
	width: 100%;
	background: var(--cream); border: 1px solid var(--line);
	border-radius: var(--radius);
	border-collapse: separate; border-spacing: 0;
	padding: 8px 16px;
}
.cart-collaterals table th, .cart-collaterals table td {
	border: none; padding: 8px 0; font-size: 14px; color: var(--coffee);
	text-align: left; background: none;
}
.cart-collaterals table td { text-align: right; }
.cart-collaterals table tr.order-total th,
.cart-collaterals table tr.order-total td {
	border-top: 1px solid var(--line);
	font-weight: 700; font-size: 16px; color: var(--espresso);
}
.cart-collaterals table tr.order-total .amount { font-family: 'Newsreader', Georgia, serif; font-size: 20px; }
.wc-proceed-to-checkout { margin-top: 14px; }
.wc-proceed-to-checkout a.checkout-button {
	width: 100%; padding: 16px; font-size: 15px; box-shadow: var(--shadow-btn);
}

/* empty bag */
.cart-empty.woocommerce-info {
	background: none; color: var(--espresso);
	text-align: center;
	font-family: 'Newsreader', Georgia, serif; font-size: 20px; font-weight: 500;
	padding: 80px 30px 6px;
}
.cart-empty.woocommerce-info::before { content: '🍶'; display: block; font-size: 44px; margin-bottom: 12px; }
.woocommerce-cart .return-to-shop { text-align: center; padding-bottom: 60px; }
.woocommerce-cart .return-to-shop a { background: var(--espresso); color: var(--cream); }

/* ============================= checkout ============================= */

.woocommerce-checkout .caf-panel { max-width: 940px; }
.woocommerce-checkout form.checkout { display: flex; flex-wrap: wrap; gap: 28px; align-items: flex-start; }
.woocommerce-checkout form.checkout #customer_details { flex: 1 1 420px; min-width: 0; }
.woocommerce-checkout form.checkout #order_review_heading,
.woocommerce-checkout form.checkout #order_review { flex: 1 1 320px; min-width: 0; }
.woocommerce-checkout form.checkout #order_review_heading {
	flex-basis: 100%; margin: 0; font-size: 20px;
	display: none;
}
#order_review {
	background: var(--cream); border: 1px solid var(--line);
	border-radius: var(--radius); padding: 20px;
	position: sticky; top: 84px;
}
.woocommerce-billing-fields h3, .woocommerce-additional-fields h3, .woocommerce-shipping-fields h3 {
	font-size: 20px; margin: 6px 0 14px;
}
.woocommerce-checkout table.shop_table { width: 100%; border-collapse: collapse; }
.woocommerce-checkout table.shop_table th,
.woocommerce-checkout table.shop_table td {
	border: none; padding: 7px 0; font-size: 14px; color: var(--coffee); text-align: left; background: none;
}
.woocommerce-checkout table.shop_table td:last-child { text-align: right; }
.woocommerce-checkout table.shop_table thead { display: none; }
.woocommerce-checkout table.shop_table tr.order-total th,
.woocommerce-checkout table.shop_table tr.order-total td {
	border-top: 1px solid var(--line); font-weight: 700; color: var(--espresso); font-size: 16px;
}
.woocommerce-checkout table.shop_table tr.order-total .amount { font-family: 'Newsreader', Georgia, serif; font-size: 20px; }

#payment { background: none; }
#payment ul.payment_methods { list-style: none; padding: 14px 0 0; margin: 14px 0 0; border-top: 1px solid var(--line); }
#payment ul.payment_methods li { margin-bottom: 10px; font-weight: 600; font-size: 14px; }
#payment div.payment_box {
	background: var(--paper); border-radius: 12px;
	padding: 12px 14px; margin-top: 8px;
	font-size: 13px; color: var(--coffee);
}
#payment #place_order { width: 100%; padding: 16px; font-size: 15px; box-shadow: var(--shadow-btn); margin-top: 8px; }
.woocommerce-terms-and-conditions-wrapper { font-size: 12px; color: var(--coffee); margin: 10px 0; }

/* ============================= order received ============================= */

.caf-confirm { max-width: 480px; margin: 0 auto; padding: 50px 22px 60px; text-align: center; animation: cafFade .4s ease both; }
.caf-confirm-badge {
	width: 88px; height: 88px; border-radius: 50%;
	background: var(--sage); color: #fff;
	font-size: 42px;
	display: flex; align-items: center; justify-content: center;
	margin: 0 auto;
	animation: cafPop .5s ease both;
}
.caf-confirm-badge--failed { background: #5c2b2e; }
.caf-confirm h1 { font-size: 30px; margin-top: 22px; }
.caf-confirm-sub { font-size: 14px; color: var(--coffee); opacity: .75; margin-top: 8px; }
.caf-confirm-sub b { color: var(--terra-dk); }

.caf-order-card {
	background: var(--cream); border: 1px solid var(--line);
	border-radius: 18px; padding: 18px;
	margin-top: 26px; text-align: left;
}
.caf-order-card-head {
	display: flex; justify-content: space-between; align-items: center;
	padding-bottom: 12px; border-bottom: 1px solid var(--line);
}
.caf-order-card-head .caf-field-label { margin: 0; }
.caf-order-eta { font-family: 'Newsreader', Georgia, serif; font-size: 20px; color: var(--terra-dk); }
.caf-order-lines { padding-top: 12px; display: flex; flex-direction: column; gap: 9px; }
.caf-order-line { display: flex; justify-content: space-between; font-size: 14px; color: var(--coffee); gap: 14px; }
.caf-order-line .amount { white-space: nowrap; }
.caf-order-total {
	display: flex; justify-content: space-between;
	font-weight: 700; font-size: 15px; color: var(--espresso);
	margin-top: 6px; padding-top: 10px; border-top: 1px solid var(--line);
}
.caf-confirm .caf-btn { margin-top: 26px; }
.caf-confirm .caf-btn + .caf-btn { margin-top: 10px; }

/* ============================= my account ============================= */

.woocommerce-account .caf-panel { max-width: 760px; }

.caf-profile {
	display: flex; align-items: center; gap: 14px;
	background: linear-gradient(160deg, #3a2a1f, var(--coffee));
	color: var(--cream);
	border-radius: 20px; padding: 20px;
	margin-bottom: 20px;
}
.caf-avatar {
	width: 58px; height: 58px; border-radius: 50%;
	background: var(--terra); color: #fff;
	font-family: 'Newsreader', Georgia, serif; font-size: 26px;
	display: inline-flex; align-items: center; justify-content: center;
	flex: none;
}
.caf-profile-meta { min-width: 0; }
.caf-profile-name { display: block; font-family: 'Newsreader', Georgia, serif; font-size: 24px; line-height: 1.15; }
.caf-profile-email { display: block; font-size: 13px; opacity: .7; overflow: hidden; text-overflow: ellipsis; }

.woocommerce-MyAccount-navigation ul {
	list-style: none;
	display: flex; flex-wrap: wrap; gap: 8px;
	padding: 0 0 20px; margin: 0;
}
.woocommerce-MyAccount-navigation li a {
	display: inline-block;
	padding: 9px 16px; border-radius: 20px;
	border: 1px solid var(--line);
	background: var(--cream);
	font-size: 13px; font-weight: 600; color: var(--coffee);
}
.woocommerce-MyAccount-navigation li.is-active a {
	background: var(--espresso); border-color: var(--espresso); color: var(--cream);
}
.woocommerce-MyAccount-content { font-size: 14px; color: var(--coffee); }
.woocommerce-MyAccount-content > p { margin-bottom: 14px; }
.woocommerce-MyAccount-content a { font-weight: 600; }
.woocommerce-MyAccount-content h3 { margin: 18px 0 10px; }
.woocommerce-MyAccount-content fieldset legend { font-weight: 700; color: var(--espresso); margin: 16px 0 8px; }

.woocommerce-MyAccount-content table.shop_table {
	width: 100%; border-collapse: collapse;
	background: var(--cream); border: 1px solid var(--line); border-radius: var(--radius);
	overflow: hidden;
}
.woocommerce-MyAccount-content table.shop_table th,
.woocommerce-MyAccount-content table.shop_table td {
	border: none; border-bottom: 1px solid var(--line);
	padding: 12px 14px; font-size: 13px; text-align: left;
}
.woocommerce-MyAccount-content table.shop_table thead th {
	font-size: 11px; letter-spacing: 1px; text-transform: uppercase;
	color: var(--coffee); opacity: .6;
}
.woocommerce-MyAccount-content table.shop_table .button { padding: 8px 14px; font-size: 12px; }

/* login / register */
.caf-login-hello { text-align: center; padding: 30px 0 6px; }
.caf-login-hello .caf-logo-dot { width: 52px; height: 52px; font-size: 26px; margin: 0 auto; display: inline-flex; }
.caf-login-hello h1 { font-size: 30px; margin-top: 18px; }
.caf-login-hello p { font-size: 14px; color: var(--coffee); opacity: .7; margin-top: 6px; }

#customer_login { display: flex; flex-wrap: wrap; gap: 24px; justify-content: center; padding-top: 20px; }
#customer_login > div { flex: 1 1 320px; max-width: 420px; }
#customer_login h2 {
	font-size: 12px; letter-spacing: 1.4px; text-transform: uppercase;
	font-family: 'Hanken Grotesk', sans-serif; font-weight: 700;
	color: var(--coffee); opacity: .6;
	margin-bottom: 12px;
}
.woocommerce form.login, .woocommerce form.register,
.woocommerce-ResetPassword {
	background: var(--cream); border: 1px solid var(--line);
	border-radius: 20px; padding: 22px;
}
.woocommerce form.login .input-text, .woocommerce form.register .input-text,
.woocommerce-ResetPassword .input-text { background: var(--paper); }
.woocommerce form.login .button, .woocommerce form.register .button { width: 100%; padding: 15px; box-shadow: var(--shadow-btn); }
.woocommerce-LostPassword { font-size: 13px; margin-top: 10px; }
.woocommerce-LostPassword a { color: var(--terra); font-weight: 700; }
.woocommerce-form-login__rememberme { display: block; margin-bottom: 10px; font-size: 13px; color: var(--coffee); }
.woocommerce-privacy-policy-text { font-size: 12px; color: var(--coffee); opacity: .8; margin-bottom: 10px; }

/* ============================= footer ============================= */

.caf-footer {
	border-top: 1px solid var(--line);
	padding: 26px 22px calc(30px + env(safe-area-inset-bottom));
	display: flex; align-items: center; justify-content: space-between; gap: 16px;
	flex-wrap: wrap;
	color: var(--coffee);
	font-size: 13px;
}
.caf-footer .caf-brand-name { font-size: 18px; }
.caf-footer-note { opacity: .65; }

/* ============================= misc / fallback content ============================= */

.caf-entry { padding: 30px 0 50px; }
.caf-entry h1 { font-size: 30px; margin-bottom: 16px; }
.caf-entry p { margin-bottom: 14px; color: var(--coffee); }
.caf-entry ul, .caf-entry ol { margin: 0 0 14px 20px; color: var(--coffee); }

/* keep any stray Woo product grids presentable */
ul.products { list-style: none; display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 14px; padding: 20px 0; }
ul.products li.product { background: var(--cream); border: 1px solid var(--line); border-radius: var(--radius); padding: 14px; }
ul.products li.product img { border-radius: 12px; margin-bottom: 10px; }
ul.products li.product .woocommerce-loop-product__title { font-size: 15px; font-weight: 700; font-family: 'Hanken Grotesk', sans-serif; }
ul.products li.product .price { font-family: 'Newsreader', Georgia, serif; font-size: 17px; display: block; margin: 4px 0 10px; }

@media (max-width: 760px) {
	.caf-product-hero { height: 260px; }
	.woocommerce-checkout form.checkout { display: block; }
	#order_review { position: static; margin-top: 20px; }
}
