/*
Theme Name: Sanctum Dojo
Theme URI: https://commonsanctum.com/
Author: Common Sanctum
Description: A quiet, spacious block theme for Common Sanctum — paper tones, ink type, and the five lotus colors used as small markers for each section.
Version: 1.0.2
Requires at least: 6.6
Tested up to: 7.1
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: sanctum-dojo
*/

/* ---------- Base ---------- */
:root {
	--cs-red: #B01A02;
	--cs-blue: #0251D1;
	--cs-yellow: #F0C000;
	--cs-green: #70B038;
	--cs-rule: #D9D2C3;
	--cs-rule-deep: #C9C1AF;
	--cs-muted: #5C5850;
	--cs-ink: #1F1E1B;
	--cs-paper: #F4F1EA;
	--cs-paper-deep: #EBE6DA;
	--cs-placeholder: #E2DCCF;
}
body { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
a { text-underline-offset: 3px; text-decoration-thickness: 1px; }
:where(.wp-site-blocks) > * { margin-block-start: 0; }
img { height: auto; }

/* ---------- Header ---------- */
.cs-header { border-bottom: 1px solid var(--cs-rule); }
.cs-header .wp-block-site-logo img { max-height: 84px; width: auto; }
.cs-header .wp-block-navigation a { text-decoration: none; }
.cs-header .wp-block-navigation a:hover { text-decoration: underline; text-underline-offset: 6px; }
.cs-nav-button > a {
	border: 1px solid var(--cs-ink);
	padding: 10px 18px !important;
	min-height: 44px;
	box-sizing: border-box;
	display: inline-flex !important;
	align-items: center;
	border-radius: 2px;
}
.cs-nav-button > a:hover { background: var(--cs-ink); color: var(--cs-paper) !important; text-decoration: none !important; }
.wp-block-navigation .current-menu-item > a { text-decoration: underline; text-underline-offset: 6px; text-decoration-thickness: 2px; text-decoration-color: var(--cs-blue); }
.wp-block-navigation__responsive-container.is-menu-open { background: var(--cs-paper) !important; }

/* ---------- Section labels and lotus dots ---------- */
.cs-label {
	font-size: 13px;
	letter-spacing: 0.24em;
	text-transform: uppercase;
	color: var(--cs-muted);
	display: flex;
	align-items: center;
	gap: 12px;
	margin: 0;
}
.cs-label a { color: inherit; text-decoration: none; }
.cs-dot-blue::before, .cs-dot-green::before, .cs-dot-yellow::before, .cs-dot-red::before, .cs-dot-white::before {
	content: "";
	flex: 0 0 auto;
	width: 10px;
	height: 10px;
	border-radius: 50%;
	display: inline-block;
	box-sizing: border-box;
}
.cs-dot-blue::before { background: var(--cs-blue); }
.cs-dot-green::before { background: var(--cs-green); }
.cs-dot-yellow::before { background: var(--cs-yellow); }
.cs-dot-red::before { background: var(--cs-red); }
.cs-dot-white::before { background: #fff; border: 1px solid #8C8574; }

/* Category label on posts: blue by default, green for Karma Builders */
.cs-cat-label { display: flex; align-items: center; gap: 12px; font-size: 13px; letter-spacing: 0.24em; text-transform: uppercase; color: var(--cs-muted); }
.cs-cat-label::before { content: ""; width: 10px; height: 10px; border-radius: 50%; background: var(--cs-blue); flex: 0 0 auto; }
.cs-cat-label a { color: inherit; text-decoration: none; }
.cs-cat-karma .cs-cat-label::before { background: var(--cs-green); }

/* ---------- Home: hero ---------- */
.cs-hero-title { font-size: var(--wp--preset--font-size--huge) !important; line-height: 1.04 !important; letter-spacing: -0.01em; }
.cs-lead { font-size: 20px; color: var(--wp--preset--color--ink-soft); max-width: 560px; }
.cs-hero-sketch { margin: 0; }
.cs-hero-sketch img { width: 100%; max-width: 420px; aspect-ratio: 4 / 5; object-fit: cover; display: block; margin-left: auto; }
.cs-hero-sketch:has(img:not([src])), .cs-hero-sketch:has(img[src=""]) { display: none; }

/* ---------- Home: five paths ---------- */
.cs-paths { border-top: 1px solid var(--cs-rule); border-bottom: 1px solid var(--cs-rule); }
.cs-paths .wp-block-columns { gap: 0 !important; margin: 0; }
.cs-paths .wp-block-column { padding: 40px 24px 44px; border-right: 1px solid var(--cs-rule); }
.cs-paths .wp-block-column:first-child { padding-left: 0; }
.cs-paths .wp-block-column:last-child { border-right: 0; padding-right: 0; }
.cs-path-title { display: flex; flex-direction: column; align-items: flex-start; gap: 14px; font-size: 28px !important; margin: 0; }
.cs-path-title a { text-decoration: none; }
.cs-path-title a::after { content: ""; position: absolute; inset: 0; }
.cs-paths .wp-block-column { position: relative; }
.cs-paths .wp-block-column:hover { background: rgba(235, 230, 218, 0.5); }
.cs-path-desc { font-size: 15px; line-height: 1.55; color: var(--cs-muted); margin-top: 14px !important; }
@media (max-width: 781px) {
	.cs-paths .wp-block-column { border-right: 0; border-bottom: 1px solid var(--cs-rule); padding: 28px 0; }
	.cs-paths .wp-block-column:last-child { border-bottom: 0; }
}

/* ---------- Home: featured karma builder ---------- */
.cs-band { background: var(--cs-paper-deep); }
.cs-featured-row { gap: 40px !important; align-items: flex-start !important; }
.cs-featured-row > .wp-block-post-featured-image { flex: 0 1 260px; margin: 0; }
.cs-featured-row > .wp-block-group { flex: 999 1 300px; min-width: 0; }
.cs-featured-title { font-size: 56px !important; margin: 18px 0 0 !important; }
.cs-featured-title a { text-decoration: none; }
.cs-featured-karma .wp-block-post-excerpt { font-size: 19px; color: var(--wp--preset--color--ink-soft); margin-top: 22px; }
.cs-featured-karma .wp-block-read-more,
.cs-button-dark {
	display: inline-flex; align-items: center; min-height: 48px; padding: 0 26px; margin-top: 28px;
	background: var(--cs-ink); color: var(--cs-paper) !important; text-decoration: none !important;
	font-size: 16px; letter-spacing: 0.04em; border-radius: 2px;
}
.cs-featured-karma .wp-block-read-more:hover { background: var(--wp--preset--color--ink-soft); }

/* ---------- Lists with thumbnails ---------- */
.cs-list { border-top: 1px solid var(--cs-rule); }
.cs-band .cs-list { border-top-color: var(--cs-rule-deep); }
.cs-list .wp-block-post-template { margin: 0; padding: 0; list-style: none; }
.cs-list .wp-block-post { margin: 0 !important; padding: 20px 0; border-bottom: 1px solid var(--cs-rule); }
.cs-band .cs-list .wp-block-post { border-bottom-color: var(--cs-rule-deep); }
.cs-row { flex-wrap: nowrap !important; align-items: center !important; gap: 22px !important; }
.cs-row > .wp-block-post-featured-image { flex: 0 0 auto; margin: 0; }
.cs-row > .wp-block-group { flex: 1 1 auto; min-width: 0; }
.cs-row-title { font-size: 26px !important; margin: 0 !important; }
.cs-row-title a { text-decoration: none; }
.cs-row-title a:hover { text-decoration: underline; }
.cs-row-meta { margin-top: 4px !important; font-size: 14px; color: var(--cs-muted); }
.cs-row-meta a { color: inherit; text-decoration: none; }
.cs-thumb-small img, .cs-thumb-small .wp-block-post-featured-image__placeholder { width: 64px !important; height: 64px !important; object-fit: cover; }
.cs-thumb-wide img { width: 120px !important; height: 80px !important; object-fit: cover; }
.cs-row:not(:has(.wp-block-post-featured-image img)) { gap: 0 !important; }

/* Archive cards */
.cs-cards .wp-block-post-template { gap: 40px !important; }
.cs-cards .wp-block-post-featured-image { margin: 0 0 14px; }
.cs-cards .wp-block-post-featured-image img { aspect-ratio: 3 / 2; object-fit: cover; width: 100%; }
.cs-cards .wp-block-post-title { font-size: 26px; font-weight: 600; margin: 0; }
.cs-cards .wp-block-post-title a { text-decoration: none; }

/* ---------- Single article ---------- */
.cs-article-head { padding-top: var(--wp--preset--spacing--60); }
.cs-article-title { margin-top: 26px !important; }
.cs-byline { border-bottom: 1px solid var(--cs-rule); padding-bottom: 36px; font-size: 15px; color: var(--cs-muted); }
.cs-article-image img { aspect-ratio: 3 / 2; object-fit: cover; width: 100%; }
.cs-article-body { font-size: 20px; line-height: 1.8; color: #2A2925; }
.cs-article-body > p { margin-block: 0 1.5em; }
.cs-article-body blockquote { margin: 2em 0; text-align: center; border: 0; padding: 0; }
.cs-article-body .wp-block-image { margin-block: 2em; }
.cs-side-image { float: right; width: 44%; margin: 8px 0 24px 36px !important; }
.cs-side-image img { aspect-ratio: 4 / 5; object-fit: cover; width: 100%; }
@media (max-width: 640px) { .cs-side-image { float: none; width: 100%; margin: 0 0 28px !important; } }
.cs-tags a { display: inline-block; padding: 6px 14px; border: 1px solid var(--cs-rule); border-radius: 999px; text-decoration: none; color: var(--cs-muted); margin: 0 6px 6px 0; }
.cs-tags .wp-block-post-terms__separator { display: none; }

/* ---------- Karma Builder post ---------- */
.cs-karma-head { gap: 32px 40px !important; align-items: center !important; }
.cs-karma-head > .wp-block-group { flex: 999 1 360px; min-width: 0; }
.cs-karma-head > .wp-block-post-featured-image { flex: 0 1 220px; margin: 0; }
.cs-karma-head .wp-block-post-featured-image img { aspect-ratio: 1; object-fit: cover; }
.cs-muscle { display: inline-block; font-size: 14px; padding: 6px 14px; border: 1px solid var(--cs-green); border-radius: 999px; }
.cs-steps { list-style: none; counter-reset: cs-step; padding: 0 !important; margin-top: 48px !important; border-top: 1px solid var(--cs-rule); }
.cs-steps > li { counter-increment: cs-step; display: flex; gap: 28px; padding: 26px 0; border-bottom: 1px solid var(--cs-rule); font-size: 20px; line-height: 1.7; }
.cs-steps > li::before { content: counter(cs-step); flex: 0 0 44px; font-family: var(--wp--preset--font-family--display); font-size: 40px; line-height: 1; color: #8C8574; }
.cs-training-note { background: var(--cs-paper-deep); padding: 40px 44px !important; margin-top: 64px !important; }
.cs-training-note > :first-child { margin-top: 0; }
.cs-benefits { gap: 32px !important; margin-top: 28px !important; }
.cs-benefits .wp-block-column { border-top: 2px solid var(--cs-green); padding-top: 18px; }
.cs-benefits h3 { font-size: 26px; margin: 0 0 10px; }
.cs-benefits p { font-size: 16px; color: var(--wp--preset--color--ink-soft); }
.cs-postnav { border-top: 1px solid var(--cs-rule); }
.cs-postnav .post-navigation-link-previous, .cs-postnav .post-navigation-link-next { font-family: var(--wp--preset--font-family--display); font-size: 24px; font-weight: 600; max-width: 460px; }
.cs-postnav a { text-decoration: none; }
.cs-postnav .post-navigation-link__label, .cs-postnav .wp-block-post-navigation-link__label { display: block; font-family: var(--wp--preset--font-family--body); font-size: 13px; font-weight: 400; letter-spacing: 0.2em; text-transform: uppercase; color: var(--cs-muted); }

/* ---------- Comments ---------- */
.cs-comments textarea, .cs-comments input[type="text"], .cs-comments input[type="email"], .cs-comments input[type="url"],
.cs-subscribe input[type="email"] {
	background: #FBF9F4; border: 1px solid var(--cs-rule-deep); border-radius: 2px; padding: 12px 14px; font: inherit; font-size: 17px; width: 100%; box-sizing: border-box;
}
.cs-comments .wp-block-comment-template { padding: 0; list-style: none; }
.cs-comments .wp-block-comment-template li { border-top: 1px solid var(--cs-rule); padding: 20px 0; }
.cs-comments .comment-reply-title { font-family: var(--wp--preset--font-family--display); font-size: 32px; font-weight: 500; }
.cs-comments .form-submit input[type="submit"] { background: var(--cs-ink); color: var(--cs-paper); border: 0; min-height: 48px; padding: 0 26px; font: inherit; font-size: 16px; letter-spacing: 0.04em; border-radius: 2px; cursor: pointer; }

/* ---------- Pagination ---------- */
.wp-block-query-pagination { margin-top: 48px; font-size: 16px; }
.wp-block-query-pagination a { text-decoration: none; }
.wp-block-query-pagination .current { text-decoration: underline; text-underline-offset: 6px; }

/* ---------- Gathering cards ---------- */
.cs-gathering { border: 1px solid var(--cs-rule); padding: 28px !important; }

/* ---------- Footer ---------- */
.cs-footer { background: var(--cs-ink); color: #E9E4D8; }
.cs-footer a { color: #E9E4D8; }
.cs-footer .cs-muted-dark { color: #B5AE9F; }
.cs-footer h2 { color: var(--cs-paper); }
.cs-mon img { width: 72px; height: 72px; border-radius: 50%; display: block; }
.cs-footer .wp-block-button__link { background: var(--cs-paper); color: var(--cs-ink); }
.cs-footer .wp-block-button__link:hover { background: #fff; color: var(--cs-ink); }
.cs-footer-bottom { border-top: 1px solid #3A3833; font-size: 14px; }
.cs-footer-bottom a { text-decoration: none; }
.cs-footer-bottom a:hover { text-decoration: underline; }

/* ---------- Lead paragraphs inside centered layouts stay left-aligned ---------- */
.is-layout-constrained > .cs-lead { max-width: var(--wp--style--global--content-size); }

/* ---------- The Events Calendar (+ Event Tickets): match the theme ---------- */
html:root,
body .tribe-common,
body .tribe-events,
body .tribe-tickets,
body .tribe-events-single,
body #tribe-events-pg-template {
	--tec-font-family-sans-serif: "Source Serif 4", Georgia, "Times New Roman", serif;

	--tec-color-text-primary: #1F1E1B;
	--tec-color-text-primary-light: rgba(31, 30, 27, 0.62);
	--tec-color-text-secondary: #5C5850;
	--tec-color-icon-primary: #5C5850;
	--tec-color-icon-primary-alt: #5C5850;
	--tec-color-icon-secondary: #B9B09D;
	--tec-color-icon-active: #1F1E1B;
	--tec-color-icon-focus: #1F1E1B;
	--tec-color-event-icon: #1F1E1B;
	--tec-color-event-icon-hover: #5C5850;

	/* Accent: ink for buttons and links, a soft lotus-yellow tint for highlights */
	--tec-color-accent-primary: #1F1E1B;
	--tec-color-accent-primary-hover: #3E3B35;
	--tec-color-accent-primary-active: #3E3B35;
	--tec-color-accent-primary-background: rgba(240, 192, 0, 0.16);
	--tec-color-accent-secondary: #1F1E1B;
	--tec-color-accent-secondary-hover: #3E3B35;
	--tec-color-accent-secondary-active: #3E3B35;
	--tec-color-accent-secondary-background: rgba(31, 30, 27, 0.06);
	--tec-color-link-accent: #1F1E1B;
	--tec-color-link-accent-hover: #0241A8;

	--tec-color-background: #FBF9F4;
	--tec-color-background-secondary: #EBE6DA;
	--tec-color-background-secondary-hover: #E2DCCF;
	--tec-color-background-messages: #EBE6DA;
	--tec-color-background-transparent: rgba(244, 241, 234, 0.6);
	--tec-color-background-primary-multiday: rgba(240, 192, 0, 0.28);
	--tec-color-background-primary-multiday-hover: rgba(240, 192, 0, 0.4);
	--tec-color-background-secondary-multiday: rgba(31, 30, 27, 0.12);
	--tec-color-background-secondary-multiday-hover: rgba(31, 30, 27, 0.2);
	--tec-color-accent-primary-week-event: rgba(240, 192, 0, 0.14);
	--tec-color-accent-primary-week-event-hover: rgba(240, 192, 0, 0.26);
	--tec-color-accent-primary-week-event-featured: rgba(240, 192, 0, 0.08);
	--tec-color-accent-primary-week-event-featured-hover: rgba(240, 192, 0, 0.2);

	--tec-color-border-default: #D9D2C3;
	--tec-color-border-secondary: #D9D2C3;
	--tec-color-border-tertiary: #B9B09D;
	--tec-color-border-hover: #5C5850;
	--tec-color-border-active: #1F1E1B;

	/* Values the plugin derives from the accent, set directly so they follow it */
	--tec-color-button-primary: #1F1E1B;
	--tec-color-button-primary-hover: #3E3B35;
	--tec-color-button-primary-active: #3E3B35;
	--tec-color-button-primary-background: rgba(240, 192, 0, 0.16);
	--tec-color-button-secondary: #1F1E1B;
	--tec-color-button-secondary-hover: #3E3B35;
	--tec-color-button-secondary-active: #3E3B35;
	--tec-color-button-secondary-background: rgba(31, 30, 27, 0.06);
	--tec-form-color-accent-primary: #1F1E1B;
	--tec-color-accent-primary-background-datepicker: rgba(240, 192, 0, 0.16);
	--tec-color-background-secondary-datepicker: #EBE6DA;
	--tec-color-background-tooltip: #FBF9F4;
	--tec-color-category-legend-default-1: #1F1E1B;
	--tec-color-background-events-bar: #FBF9F4;
	--tec-color-background-view-selector: #FBF9F4;
	--tec-color-background-search-container: #FBF9F4;
	--tec-color-border-events-bar: #D9D2C3;
	--tec-color-text-events-bar-submit-button: #F4F1EA;
	--tec-color-text-events-bar-submit-button-hover: #F4F1EA;
	--tec-color-text-events-bar-submit-button-active: #F4F1EA;
	--tec-color-background-events-bar-submit-button: #1F1E1B;
	--tec-color-background-events-bar-submit-button-hover: #3E3B35;
	--tec-color-background-events-bar-submit-button-active: #3E3B35;
	--tec-color-icon-hover: #1F1E1B;

	--tec-border-radius-default: 2px;
	--tec-box-shadow-default: none;
	--tec-box-shadow-card: 0 1px 0 0 #D9D2C3;
}

/* Headlines in the calendar use the theme's headline face */
.tribe-events .tribe-events-c-top-bar__datepicker-button,
.tribe-events .tribe-events-calendar-list__event-title,
.tribe-events .tribe-events-calendar-day__event-title,
.tribe-events .tribe-events-calendar-month__calendar-event-title,
.tribe-events .tribe-events-calendar-latest-past__event-title,
.tribe-events .tribe-events-header__title-text,
.tribe-events-single .tribe-events-single-event-title,
.tribe-events .tribe-events-calendar-list__month-separator-text,
.tribe-events .tribe-events-calendar-month__header-column-title {
	font-family: var(--wp--preset--font-family--display) !important;
	font-weight: 600 !important;
}
.tribe-events .tribe-events-calendar-list__event-title { font-size: 28px; line-height: 1.2; }
.tribe-events .tribe-events-c-top-bar__datepicker-button { font-size: 32px; }
.tribe-events .tribe-events-calendar-list__event-title-link,
.tribe-events .tribe-events-calendar-day__event-title-link,
.tribe-events .tribe-events-calendar-month__calendar-event-title-link { text-decoration: none; }

/* Quiet search bar: paper ground, hairline, no shadow */
.tribe-events .tribe-events-header__events-bar,
.tribe-events .tribe-events-c-events-bar { background: #FBF9F4 !important; box-shadow: none !important; }

/* Buttons: ink, square-ish, letterspaced like the rest of the site */
.tribe-common .tribe-common-c-btn,
.tribe-common a.tribe-common-c-btn,
.tribe-events .tribe-events-c-subscribe-dropdown__button,
.tribe-common .tribe-common-c-btn-border {
	font-family: var(--wp--preset--font-family--body) !important;
	letter-spacing: 0.04em;
	border-radius: 2px !important;
}
.tribe-events .tribe-events-c-subscribe-dropdown__button { border-color: #1F1E1B !important; color: #1F1E1B !important; }
.tribe-events .tribe-events-c-subscribe-dropdown__button:hover,
.tribe-events .tribe-events-c-subscribe-dropdown__button:focus-within { background: #1F1E1B !important; color: #F4F1EA !important; }
.tribe-events .tribe-events-c-subscribe-dropdown__button:hover svg path { fill: #F4F1EA; }

/* Today / current day markers use the Calendar section's lotus yellow */
.tribe-events .tribe-events-calendar-month__day--current .tribe-events-calendar-month__day-date,
.tribe-events .tribe-events-calendar-month__day--current .tribe-events-calendar-month__day-date-link { color: #1F1E1B; }
.tribe-events .tribe-events-calendar-month__day--current .tribe-events-calendar-month__day-date-daynum { border-bottom: 3px solid #F0C000; }
.tribe-events .tribe-events-c-view-selector__list-item--active .tribe-events-c-view-selector__list-item-link::after { background-color: #F0C000 !important; }

/* Featured-event marker: lotus yellow instead of plugin blue */
.tribe-events .tribe-events-calendar-list__event-row--featured .tribe-events-calendar-list__event-date-tag-datetime::after,
.tribe-events .tribe-events-calendar-day__event--featured::after { background-color: #F0C000 !important; }
.tribe-common .tribe-common-c-svgicon--featured path,
.tribe-events .tribe-events-calendar-list__event-datetime-featured-icon path { fill: #8C6E00; }
