/* County Contact & Directory — public styles */

.ccd-directory {
	--ccd-primary: #0a5c36;
	--ccd-primary-dark: #073f25;
	--ccd-accent: #b8860b;
	--ccd-border: #e1e5e1;
	--ccd-bg-soft: #f6f8f6;
	--ccd-text: #1f2a24;
	--ccd-text-muted: #5b6b60;
	--ccd-radius: 10px;

	display: flex;
	align-items: flex-start;
	gap: 24px;
	color: var(--ccd-text);
	font-size: 15px;
	line-height: 1.55;
	margin: 24px 0;
}

/* ---------- Vertical tab nav ---------- */
.ccd-directory-tabs {
	display: flex;
	flex-direction: column;
	flex: 0 0 230px;
	gap: 4px;
	position: sticky;
	top: 20px;
	border-right: 1px solid var(--ccd-border);
	padding-right: 8px;
}

.ccd-directory-tab {
	display: flex;
	align-items: center;
	gap: 10px;
	width: 100%;
	text-align: left;
	background: transparent;
	border: none;
	border-radius: var(--ccd-radius);
	padding: 12px 14px;
	font-size: 14.5px;
	font-weight: 600;
	color: var(--ccd-text-muted);
	cursor: pointer;
	transition: background 0.15s ease, color 0.15s ease;
}

.ccd-directory-tab:hover {
	background: var(--ccd-bg-soft);
	color: var(--ccd-primary-dark);
}

.ccd-directory-tab.is-active {
	background: var(--ccd-primary);
	color: #fff;
}

.ccd-tab-icon {
	font-size: 17px;
	line-height: 1;
}

/* ---------- Panels ---------- */
.ccd-directory-panels {
	flex: 1 1 auto;
	min-width: 0;
}

.ccd-directory-panel {
	display: none;
}

.ccd-directory-panel.is-active {
	display: block;
	animation: ccd-fade-in 0.15s ease;
}

@keyframes ccd-fade-in {
	from { opacity: 0; transform: translateY(4px); }
	to   { opacity: 1; transform: translateY(0); }
}

/* ---------- Cards ---------- */
.ccd-card {
	background: #fff;
	border: 1px solid var(--ccd-border);
	border-radius: var(--ccd-radius);
	padding: 20px 22px;
}

.ccd-county-info-grid {
	display: grid;
	grid-template-columns: 1.1fr 1fr;
	gap: 24px;
	align-items: start;
}

.ccd-info-row {
	margin: 0 0 14px;
}

.ccd-info-label {
	display: block;
	font-size: 12px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	color: var(--ccd-primary);
	margin-bottom: 3px;
}

.ccd-county-info-map iframe {
	display: block;
	width: 100%;
	border-radius: var(--ccd-radius);
	border: 1px solid var(--ccd-border);
}

.ccd-btn {
	display: inline-block;
	background: var(--ccd-primary);
	color: #fff !important;
	text-decoration: none;
	padding: 9px 18px;
	border-radius: 6px;
	font-weight: 600;
	font-size: 13.5px;
}

.ccd-btn:hover {
	background: var(--ccd-primary-dark);
}

/* ---------- Grid of entries (departments, sub-counties, etc.) ---------- */
.ccd-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
	gap: 16px;
}

.ccd-entry-card {
	padding: 18px 20px;
}

.ccd-entry-title {
	margin: 0 0 2px;
	font-size: 16px;
	color: var(--ccd-primary-dark);
}

.ccd-entry-sub {
	margin: 0 0 10px;
	font-size: 12.5px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.03em;
	color: var(--ccd-accent);
}

.ccd-entry-meta {
	list-style: none;
	margin: 0;
	padding: 0;
	font-size: 13.5px;
	color: var(--ccd-text);
}

.ccd-entry-meta li {
	padding: 3px 0;
	border-top: 1px dashed var(--ccd-border);
}

.ccd-entry-meta li:first-child {
	border-top: none;
}

.ccd-entry-meta a {
	color: var(--ccd-primary-dark);
	text-decoration: none;
}

.ccd-entry-meta a:hover {
	text-decoration: underline;
}

.ccd-empty-state {
	color: var(--ccd-text-muted);
	font-style: italic;
	padding: 20px 0;
}

/* ---------- Responsive: tabs become a horizontal scroll strip ---------- */
@media (max-width: 782px) {
	.ccd-directory {
		flex-direction: column;
	}

	.ccd-directory-tabs {
		flex-direction: row;
		overflow-x: auto;
		width: 100%;
		position: static;
		border-right: none;
		border-bottom: 1px solid var(--ccd-border);
		padding-right: 0;
		padding-bottom: 8px;
		gap: 6px;
	}

	.ccd-directory-tab {
		flex: 0 0 auto;
		white-space: nowrap;
	}

	.ccd-county-info-grid {
		grid-template-columns: 1fr;
	}
}

/* ---------- Citizen feedback ---------- */
.ccd-feedback-wrap{font-family:"Open Sans",Arial,sans-serif}.ccd-feedback-footer{display:flex;justify-content:center;padding:22px 16px}.ccd-feedback-floating{position:fixed;right:24px;bottom:24px;z-index:9997}.ccd-feedback-trigger{display:inline-flex;align-items:center;gap:9px;border:0;border-radius:999px;padding:12px 22px;background:var(--ccd-feedback-primary,#4A9236);color:#fff;font:600 14px/1.2 "Open Sans",Arial,sans-serif;box-shadow:0 8px 24px rgba(0,0,0,.16);cursor:pointer;transition:transform .18s ease,box-shadow .18s ease,filter .18s ease}.ccd-feedback-trigger:hover{transform:translateY(-2px);box-shadow:0 12px 28px rgba(0,0,0,.2);filter:brightness(.95)}.ccd-feedback-trigger span{color:var(--ccd-feedback-accent,#D4AE67);font-size:18px}.ccd-feedback-modal[hidden]{display:none!important}.ccd-feedback-modal{position:fixed;inset:0;z-index:99999;display:grid;place-items:center;padding:24px;font-family:"Open Sans",Arial,sans-serif}.ccd-feedback-backdrop{position:absolute;inset:0;background:rgba(13,28,20,.68);backdrop-filter:blur(3px)}.ccd-feedback-dialog{position:relative;width:min(760px,100%);max-height:90vh;overflow:auto;background:#fff;border-radius:18px;box-shadow:0 30px 80px rgba(0,0,0,.3);padding:0 30px 28px;color:#1f2a24}.ccd-feedback-heading{margin:0 -30px 26px;padding:28px 64px 24px 30px;background:linear-gradient(135deg,var(--ccd-feedback-primary,#4A9236),#326d28);color:#fff;border-radius:18px 18px 0 0}.ccd-feedback-kicker{display:block;color:var(--ccd-feedback-accent,#D4AE67);font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;margin-bottom:5px}.ccd-feedback-heading h2{color:#fff!important;margin:0 0 6px;font-size:25px}.ccd-feedback-heading p{margin:0;color:rgba(255,255,255,.9)}.ccd-feedback-close{position:absolute;right:18px;top:15px;width:38px;height:38px;border:1px solid rgba(255,255,255,.35);border-radius:50%;background:rgba(255,255,255,.12);color:#fff;font-size:25px;line-height:1;cursor:pointer;z-index:2}.ccd-feedback-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.ccd-feedback-field{display:flex;flex-direction:column;gap:7px;font-size:13px;font-weight:700;color:#33443a}.ccd-feedback-field>span,.ccd-feedback-field label>span{color:#b42318}.ccd-feedback-field small{font-weight:400;color:#7a887f}.ccd-feedback-field input[type=text],.ccd-feedback-field input[type=email],.ccd-feedback-field input[type=tel],.ccd-feedback-field textarea{box-sizing:border-box;width:100%;border:1px solid #d7dfd9;border-radius:9px;padding:11px 12px;background:#fbfcfb;color:#1f2a24;font:400 14px/1.45 "Open Sans",Arial,sans-serif;outline:none;transition:border-color .15s,box-shadow .15s}.ccd-feedback-field input:focus,.ccd-feedback-field textarea:focus{border-color:var(--ccd-feedback-primary,#4A9236);box-shadow:0 0 0 3px rgba(74,146,54,.13);background:#fff}.ccd-feedback-full{margin-bottom:18px}.ccd-feedback-categories{display:grid;grid-template-columns:repeat(5,1fr);gap:7px}.ccd-feedback-category input{position:absolute;opacity:0;pointer-events:none}.ccd-feedback-category span{height:100%;box-sizing:border-box;display:flex;align-items:center;justify-content:center;text-align:center;border:1px solid #dce3de;border-radius:9px;padding:10px 7px;background:#f7f9f7;color:#415047;font-size:12px;cursor:pointer;transition:.15s}.ccd-feedback-category input:checked+span{border-color:var(--ccd-feedback-primary,#4A9236);background:rgba(74,146,54,.1);color:#285d21;box-shadow:inset 0 0 0 1px var(--ccd-feedback-primary,#4A9236)}.ccd-rating-field{margin-top:18px}.ccd-rating-options{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}.ccd-rating-options input{position:absolute;opacity:0}.ccd-rating-options span{display:flex;min-height:50px;align-items:center;justify-content:center;flex-direction:column;border:1px solid #dce3de;border-radius:9px;background:#fafbfa;cursor:pointer;font-size:16px}.ccd-rating-options small{font-size:9px;line-height:1;margin-top:2px}.ccd-rating-options input:checked+span{background:var(--ccd-feedback-primary,#4A9236);border-color:var(--ccd-feedback-primary,#4A9236);color:#fff}.ccd-rating-options input:checked+span small{color:#fff}.ccd-feedback-privacy{font-size:11.5px;color:#6c796f;margin:0 0 16px}.ccd-feedback-actions{display:flex;justify-content:flex-end;gap:10px}.ccd-feedback-cancel,.ccd-feedback-submit{border-radius:8px;padding:10px 18px;font-weight:700;cursor:pointer}.ccd-feedback-cancel{border:1px solid #d7dfd9;background:#fff;color:#425047}.ccd-feedback-submit{border:1px solid var(--ccd-feedback-primary,#4A9236);background:var(--ccd-feedback-primary,#4A9236);color:#fff}.ccd-feedback-submit[disabled]{opacity:.6;cursor:wait}.ccd-feedback-status{margin-top:12px;font-size:13px;font-weight:600}.ccd-feedback-status.is-success{padding:10px 12px;border-radius:8px;background:#edf7ea;color:#285d21}.ccd-feedback-status.is-error{padding:10px 12px;border-radius:8px;background:#fff1f0;color:#9f231d}.ccd-feedback-hp{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}body.ccd-feedback-open{overflow:hidden}@media(max-width:700px){.ccd-feedback-modal{padding:12px}.ccd-feedback-dialog{padding:0 18px 22px;border-radius:14px}.ccd-feedback-heading{margin:0 -18px 20px;padding:24px 55px 20px 18px;border-radius:14px 14px 0 0}.ccd-feedback-grid{grid-template-columns:1fr}.ccd-feedback-categories{grid-template-columns:1fr 1fr}.ccd-feedback-category:last-child{grid-column:1/-1}.ccd-feedback-floating{right:14px;bottom:14px}.ccd-feedback-trigger{padding:11px 17px}.ccd-feedback-actions>*{flex:1}.ccd-feedback-actions{justify-content:stretch}}

/* Feedback Centre v1.2 */
.ccd-feedback-floating-left{position:fixed;left:0;top:52%;transform:translateY(-50%);z-index:9997}.ccd-feedback-floating-left .ccd-feedback-trigger{border-radius:0 14px 14px 0;padding:15px 12px;writing-mode:vertical-rl;transform:rotate(180deg);box-shadow:6px 8px 24px rgba(0,0,0,.18);letter-spacing:.02em}.ccd-feedback-floating-left .ccd-feedback-trigger:hover{transform:rotate(180deg) translateX(-2px)}.ccd-feedback-icon{writing-mode:horizontal-tb;transform:rotate(180deg);font-size:17px}.ccd-feedback-dialog{width:min(820px,100%);max-height:92vh}.ccd-feedback-form{padding-bottom:4px}.ccd-feedback-section{padding:0 0 21px;margin:0 0 21px;border-bottom:1px solid #e8eee9}.ccd-feedback-section:last-of-type{border-bottom:0;margin-bottom:5px}.ccd-feedback-section-title{display:flex;align-items:center;gap:11px;margin:0 0 15px}.ccd-feedback-section-title>span{flex:0 0 30px;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:var(--ccd-feedback-primary,#4A9236);color:#fff;font-weight:800;font-size:13px}.ccd-feedback-section-title strong{display:block;color:#24342a;font-size:15px}.ccd-feedback-section-title small{display:block;color:#758079;font-weight:400;margin-top:1px}.ccd-feedback-field select,.ccd-feedback-field input[type=date]{box-sizing:border-box;width:100%;border:1px solid #d7dfd9;border-radius:9px;padding:11px 12px;background:#fbfcfb;color:#1f2a24;font:400 14px/1.45 "Open Sans",Arial,sans-serif;outline:none;min-height:44px}.ccd-feedback-field select:focus,.ccd-feedback-field input[type=date]:focus{border-color:var(--ccd-feedback-primary,#4A9236);box-shadow:0 0 0 3px rgba(74,146,54,.13);background:#fff}.ccd-conditional{margin-top:14px;padding:16px;border-radius:12px;background:#f7faf7;border:1px solid #e1e9e2}.ccd-char-count{align-self:flex-end;margin-top:-3px}.ccd-feedback-status.is-success strong{display:block;font-size:15px;margin-bottom:3px}@media(max-width:700px){.ccd-feedback-floating-left{left:12px;top:auto;bottom:16px;transform:none}.ccd-feedback-floating-left .ccd-feedback-trigger{writing-mode:horizontal-tb;transform:none;border-radius:999px;padding:12px 17px}.ccd-feedback-floating-left .ccd-feedback-trigger:hover{transform:translateY(-2px)}.ccd-feedback-icon{transform:none}.ccd-feedback-section-title small{font-size:11px}.ccd-feedback-dialog{max-height:94vh}}
