.dhcc-calendar {
	--dhcc-forest:#26372c;
	--dhcc-paper:#eee5d4;
	--dhcc-paper2:#f7f0e3;
	--dhcc-ink:#29271f;
	--dhcc-line:#b7a98e;
	--dhcc-muted:#746b5d;
	--dhcc-warn:#7a3f2b;
	background:var(--dhcc-paper);
	color:var(--dhcc-ink);
	font-family:Inter,Arial,sans-serif;
	padding:34px 4vw 38px;
}

.dhcc-calendar * { box-sizing:border-box; }

.dhcc-wrap {
	max-width:1160px;
	margin:auto;
}

.dhcc-heading {
	display:flex;
	justify-content:space-between;
	align-items:flex-end;
	gap:20px;
	margin-bottom:10px;
}

.dhcc-eyebrow,
.dhcc-location {
	font-size:10px;
	letter-spacing:.13em;
	text-transform:uppercase;
	color:var(--dhcc-muted);
}

.dhcc-calendar h2,
.dhcc-calendar h3 {
	font-family:Cardo,Georgia,serif;
	font-weight:400;
}

.dhcc-calendar h2 {
	font-size:36px;
	line-height:1.05;
	margin:5px 0 0;
}

.dhcc-status {
	display:inline-block;
	font-size:10px;
	color:var(--dhcc-muted);
	margin-bottom:12px;
}

.dhcc-status.is-ready::before {
	content:"●";
	margin-right:6px;
	color:var(--dhcc-forest);
}

.dhcc-status.is-error {
	color:var(--dhcc-warn);
}

.dhcc-today {
	display:grid;
	grid-template-columns:minmax(0,1fr) minmax(250px,.8fr);
	gap:20px;
	align-items:center;
	border:1px solid var(--dhcc-line);
	border-left:5px solid var(--dhcc-forest);
	padding:14px 16px;
	border-radius:8px;
	margin-bottom:12px;
}

.dhcc-today h3 {
	font-size:27px;
	margin:2px 0 3px;
	line-height:1.1;
}

.dhcc-date {
	font-size:10px;
	letter-spacing:.11em;
	color:var(--dhcc-muted);
	text-transform:uppercase;
}

.dhcc-small {
	font-size:11px;
	color:var(--dhcc-muted);
	line-height:1.4;
}

.dhcc-field {
	font:italic 15px/1.35 Cardo,Georgia,serif;
}

.dhcc-week {
	display:grid;
	grid-template-columns:repeat(7,minmax(120px,1fr));
	gap:6px;
	overflow-x:auto;
	padding:2px 2px 8px;
	scrollbar-width:thin;
}

.dhcc-day {
	appearance:none;
	-webkit-appearance:none;
	width:100%;
	min-width:120px;
	min-height:108px;
	text-align:left;
	color:var(--dhcc-ink);
	background:var(--dhcc-paper2);
	border:1px solid var(--dhcc-line);
	border-radius:8px;
	padding:10px 9px;
	cursor:pointer;
	font:inherit;
}

.dhcc-day:hover,
.dhcc-day:focus-visible {
	border-color:var(--dhcc-forest);
	outline:none;
}

.dhcc-day.is-current {
	outline:2px solid var(--dhcc-forest);
	outline-offset:1px;
}

.dhcc-type {
	font:600 18px/1.1 Cardo,Georgia,serif;
	margin:7px 0 5px;
}

.dhcc-moon {
	font-size:10.5px;
	color:var(--dhcc-muted);
	line-height:1.3;
}

.dhcc-avoid {
	font-size:10px;
	margin-top:6px;
	color:#5f2f21;
	font-weight:600;
}

.dhcc-details {
	display:none;
	margin-top:7px;
	padding-top:7px;
	border-top:1px solid rgba(41,39,31,.18);
	font-size:10px;
	color:var(--dhcc-muted);
	line-height:1.4;
}

.dhcc-details span {
	display:block;
}

.dhcc-day.is-open .dhcc-details {
	display:block;
}

.dhcc-footer {
	display:flex;
	justify-content:space-between;
	align-items:center;
	gap:18px;
	margin-top:12px;
	padding-top:11px;
	border-top:1px solid var(--dhcc-line);
}

.dhcc-legend {
	display:flex;
	flex-wrap:wrap;
	gap:6px 13px;
	font-size:10.5px;
}

.dhcc-learn {
	font-size:11px;
	font-weight:600;
	text-decoration:none;
	color:var(--dhcc-forest);
	white-space:nowrap;
}

.dhcc-learn:hover {
	text-decoration:underline;
}

.dhcc-day.dhcc-root,
.dhcc-today.dhcc-root { background:#e4ecd9; }

.dhcc-day.dhcc-leaf,
.dhcc-today.dhcc-leaf { background:#ddebf1; }

.dhcc-day.dhcc-flower,
.dhcc-today.dhcc-flower { background:#f3ebc8; }

.dhcc-day.dhcc-fruit,
.dhcc-today.dhcc-fruit { background:#eedbd5; }

.dhcc-day.dhcc-root-to-flower,
.dhcc-today.dhcc-root-to-flower { background:linear-gradient(135deg,#e4ecd9 0 50%,#f3ebc8 50%); }

.dhcc-day.dhcc-flower-to-leaf,
.dhcc-today.dhcc-flower-to-leaf { background:linear-gradient(135deg,#f3ebc8 0 50%,#ddebf1 50%); }

.dhcc-day.dhcc-leaf-to-fruit,
.dhcc-today.dhcc-leaf-to-fruit { background:linear-gradient(135deg,#ddebf1 0 50%,#eedbd5 50%); }

.dhcc-day.dhcc-fruit-to-root,
.dhcc-today.dhcc-fruit-to-root { background:linear-gradient(135deg,#eedbd5 0 50%,#e4ecd9 50%); }

.dhcc-day.dhcc-root-to-leaf,
.dhcc-today.dhcc-root-to-leaf { background:linear-gradient(135deg,#e4ecd9 0 50%,#ddebf1 50%); }

.dhcc-day.dhcc-leaf-to-flower,
.dhcc-today.dhcc-leaf-to-flower { background:linear-gradient(135deg,#ddebf1 0 50%,#f3ebc8 50%); }

.dhcc-day.dhcc-flower-to-fruit,
.dhcc-today.dhcc-flower-to-fruit { background:linear-gradient(135deg,#f3ebc8 0 50%,#eedbd5 50%); }

.dhcc-day.dhcc-fruit-to-flower,
.dhcc-today.dhcc-fruit-to-flower { background:linear-gradient(135deg,#eedbd5 0 50%,#f3ebc8 50%); }

@media(max-width:850px) {
	.dhcc-heading {
		align-items:flex-start;
		flex-direction:column;
		gap:5px;
	}

	.dhcc-location { display:none; }

	.dhcc-today {
		grid-template-columns:1fr;
		gap:7px;
	}

	.dhcc-footer {
		align-items:flex-start;
		flex-direction:column;
		gap:8px;
	}

	.dhcc-learn { white-space:normal; }
}

@media(max-width:480px) {
	.dhcc-calendar { padding:28px 20px 30px; }
	.dhcc-calendar h2 { font-size:31px; }
	.dhcc-today h3 { font-size:24px; }
}
