/* Base element + utility styles (Section 59) */

body {
	font-family: var(--theme-font-body);
	background: var(--theme-background);
	color: var(--theme-text);
	line-height: var(--theme-line-height);
	font-size: var(--theme-font-size-base);
	font-weight: var(--theme-body-weight);
}

h1, h2, h3, h4, h5, h6 {
	font-family: var(--theme-font-heading);
	font-weight: var(--theme-heading-weight);
	line-height: 1.25;
}

/* Skip link (Section 41) */
.skip-link {
	position: absolute;
	left: -9999px;
	top: 0;
	background: var(--theme-primary);
	color: #fff;
	padding: 12px 20px;
	z-index: 999;
	border-radius: 0 0 8px 0;
	font-weight: 600;
}
.skip-link:focus {
	left: 0;
}

/* Visible focus states everywhere (Section 41) */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
[tabindex]:focus-visible {
	outline: 3px solid var(--theme-accent);
	outline-offset: 2px;
}

.screen-reader-text {
	position: absolute !important;
	width: 1px; height: 1px;
	overflow: hidden;
	clip: rect(1px, 1px, 1px, 1px);
	white-space: nowrap;
}
.screen-reader-text:focus {
	position: static !important;
	width: auto; height: auto;
	clip: auto;
}

/* Layout utilities */
.container { max-width: var(--theme-container-width); margin: 0 auto; padding: 0 var(--theme-page-padding); }
.flex { display: flex; }
.flex-1 { flex: 1; }
.items-center { align-items: center; }
.items-start { align-items: flex-start; }
.justify-between { justify-content: space-between; }
.gap-2 { gap: 8px; } .gap-3 { gap: 12px; } .gap-4 { gap: 16px; } .gap-6 { gap: 24px; } .gap-8 { gap: 32px; }
.grid { display: grid; }
.grid-2 { grid-template-columns: repeat(2, 1fr); }
.grid-3 { grid-template-columns: repeat(3, 1fr); }
.grid-4 { grid-template-columns: repeat(4, 1fr); }
.grid-6 { grid-template-columns: repeat(6, 1fr); }
.grid-cards { grid-template-columns: repeat(var(--theme-grid-columns), 1fr); }
.mt-1{margin-top:4px;} .mt-2{margin-top:8px;} .mt-3{margin-top:12px;} .mt-4{margin-top:16px;} .mt-6{margin-top:24px;} .mt-8{margin-top:32px;}
.mb-2{margin-bottom:8px;} .mb-4{margin-bottom:16px;} .mb-6{margin-bottom:24px;} .mb-8{margin-bottom:32px;} .mb-10{margin-bottom:var(--theme-section-spacing);}
.p-4{padding:16px;} .p-5{padding:20px;} .p-6{padding:24px;} .p-8{padding:32px;}
.text-xs{font-size:11px;} .text-sm{font-size:13px;} .text-base{font-size:var(--theme-font-size-base);} .text-lg{font-size:17px;} .text-xl{font-size:20px;} .text-2xl{font-size:24px;}
.font-medium{font-weight:500;} .font-semibold{font-weight:600;} .font-bold{font-weight:700;} .font-extrabold{font-weight:800;}
.text-muted{color:var(--theme-muted);} .text-primary{color:var(--theme-primary);} .text-accent{color:var(--theme-accent);} .text-white{color:#fff;} .text-center{text-align:center;}
.rounded{border-radius:6px;} .rounded-lg{border-radius:var(--theme-card-radius);} .rounded-xl{border-radius:16px;} .rounded-2xl{border-radius:20px;} .rounded-full{border-radius:9999px;}
.shadow{box-shadow:var(--theme-shadow);} .shadow-md{box-shadow:var(--theme-shadow-md);}
.border{border:var(--theme-border-width) solid var(--theme-border);}
.bg-white{background:var(--theme-surface);} .bg-bg{background:var(--theme-background);} .bg-primary{background:var(--theme-primary);}
.overflow-hidden{overflow:hidden;} .relative{position:relative;} .sticky-top{position:sticky;top:0;z-index:100;}
.w-full{width:100%;} .line-clamp-2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.hidden{display:none !important;}

/* Horizontally-scrollable table wrapper injected via inc/template-functions.php (Section 27, 40) */
.sd-table-scroll { width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; margin: 28px 0; }
.sd-table-scroll table { margin: 0; }

/* Comments (Section 52) */
.sd-comment-list { list-style: none; margin: 20px 0; }
.sd-comment { border-bottom: 1px solid var(--theme-border); padding: 20px 0; }
.sd-comment-meta { display: flex; align-items: center; gap: 10px; margin-bottom: 10px; }
.sd-comment-avatar { border-radius: 50%; }
.sd-comment-author { font-weight: 700; font-size: 13px; display: block; }
.sd-comment-date a { font-size: 12px; color: var(--theme-muted); }
.sd-comment-content { font-size: 14px; line-height: 1.7; color: var(--theme-text); }
.sd-comment-awaiting-moderation { font-size: 12px; color: var(--theme-warning); font-style: italic; }
.comment-reply-link { font-size: 12px; color: var(--theme-primary); font-weight: 600; }
.sd-comment-form p { margin-bottom: 14px; }
.sd-comment-form label { display: block; font-size: 13px; font-weight: 600; margin-bottom: 6px; }
.sd-comment-form input[type="text"],
.sd-comment-form input[type="email"],
.sd-comment-form input[type="url"],
.sd-comment-form textarea {
	width: 100%; padding: 10px 14px; border: var(--theme-border-width) solid var(--theme-border);
	border-radius: 10px; font-family: var(--theme-font-body); font-size: 14px;
}
.sd-comment-form .required { color: var(--theme-warning); }
.sd-comment-form .form-submit input[type="submit"] {
	background: var(--theme-primary); color: #fff; padding: 10px 24px;
	border-radius: var(--theme-button-radius); font-weight: 700; font-size: 13px;
}
.sd-page-links { margin-top: 24px; display: flex; align-items: center; gap: 8px; font-size: 13px; }
.sd-thumb-placeholder { width: 100%; height: 100%; min-height: 150px; }
.sd-thumb-img { width: 100%; height: 100%; object-fit: cover; }
