/* Kudavana — supplemental styles. theme.json owns the rest. */

:root {
	--kdv-page-width: 1280px;
	--kdv-hero-min-height: 560px;
}

/* Top-level sections must sit flush against each other.
   WordPress core inserts margin-block-start: var(--wp--style--block-gap)
   between siblings inside .wp-site-blocks; override at that scope only. */
.wp-site-blocks > * { margin-block-start: 0 !important; margin-block-end: 0 !important; }
.wp-site-blocks > * + * { margin-top: 0 !important; }

body { font-feature-settings: "kern", "liga", "calt"; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }

/* Site-wide link defaults for muted bars */
.kdv-topbar a, .kdv-strategic-thrust a { color: #fff; text-decoration: none; }
.kdv-topbar a:hover { color: var(--wp--preset--color--accent); }
.kdv-strategic-thrust a:hover { text-decoration: underline; }

/* Logo wordmark */
.kdv-logo { display: inline-flex; align-items: center; gap: 0.75rem; text-decoration: none; color: inherit; }
.kdv-logo__mark {
	display: inline-grid; place-items: center;
	width: 42px; height: 42px;
	background: var(--wp--preset--color--primary); color: #fff;
	border-radius: 6px;
	font-weight: 700; font-size: 0.95rem; letter-spacing: 0.02em;
}
.kdv-logo__text { display: flex; flex-direction: column; line-height: 1.1; }
.kdv-logo__name { font-weight: 700; font-size: 1.1rem; color: var(--wp--preset--color--text-primary); }
.kdv-logo__sub { font-size: 0.7rem; color: var(--wp--preset--color--text-secondary); margin-top: 2px; }

/* Hero overlay sits inside the cover block; theme.json sets the gradient. */
.kdv-hero { position: relative; isolation: isolate; min-height: var(--kdv-hero-min-height); }
/* Core .wp-block-cover defaults to padding:1em. Override its L/R padding to
   match the root container rail so hero text starts at the same x as every
   other section. */
.kdv-hero {
	padding-left: var(--wp--style--root--padding-left) !important;
	padding-right: var(--wp--style--root--padding-right) !important;
}
/* Inner-container shouldn't add extra horizontal inset on top of the cover's
   own root-padding gutter. */
.kdv-hero > .wp-block-cover__inner-container { padding: 0; width: 100%; }
/* Hero outer group keeps the alignwide rail (max 1200, centered) so it lines
   up with every other section. The 600px text column is enforced on each
   direct child and anchored to the LEFT of the rail. */
.wp-block-group.kdv-hero-content.alignwide {
	padding-left: 0 !important;
	padding-right: 0 !important;
}
.kdv-hero-content > * {
	max-width: 600px !important;
	margin-left: 0 !important;
	margin-right: auto !important;
}
/* 24px gap between hero content blocks (caption → headline → body → buttons). */
.kdv-hero-content > * + * { margin-top: 1.5rem !important; }

/* Stats strip — five SOLID color segments. */
.kdv-stats-strip { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); }
.kdv-stat-seg { padding: 1.5rem 1rem; text-align: center; color: #fff; }
.kdv-stat-seg .kdv-stat-number { font-size: clamp(1.75rem, 2.6vw, 2.4rem); font-weight: 700; line-height: 1; margin: 0 0 0.35rem; color: #fff; }
.kdv-stat-seg .kdv-stat-label { font-size: 0.85rem; opacity: 0.95; margin: 0; color: #fff; }

/* Numbered program rows */
/* Vertical gap between numbered programs is handled by WP blockGap on the
   wrapper group (see patterns/our-programs.php). */
.kdv-program { display: grid; grid-template-columns: 44px 1fr; gap: 1.25rem; align-items: flex-start; }
.kdv-program__num {
	width: 44px; height: 44px; border-radius: 999px;
	display: grid; place-items: center;
	font-weight: 700; font-size: 1.05rem; color: #fff;
}
.kdv-program__num--purple { background: var(--wp--preset--color--primary); }
.kdv-program__num--orange { background: var(--wp--preset--color--accent); }
.kdv-program__num--green  { background: var(--wp--preset--color--success); }
.kdv-program__body h3 { font-size: 1.1rem; font-weight: 700; margin: 0 0 0.4rem; color: var(--wp--preset--color--text-primary); line-height: 1.3; }
.kdv-program__body h3 + p { margin-top: 0.5rem; }
.kdv-program__body p  { margin: 0; color: var(--wp--preset--color--text-secondary); font-size: 0.95rem; line-height: 1.65; }

/* Vision/Mission — 1px vertical divider between columns at large widths. */
.kdv-vm-columns .wp-block-column + .wp-block-column { position: relative; padding-left: 3rem; }
.kdv-vm-columns .wp-block-column + .wp-block-column::before {
	content: "";
	position: absolute;
	left: 0; top: 0; bottom: 0;
	width: 1px;
	background: var(--wp--preset--color--border-light);
}
@media (max-width: 782px) {
	.kdv-vm-columns .wp-block-column + .wp-block-column { padding-left: 0; }
	.kdv-vm-columns .wp-block-column + .wp-block-column::before { display: none; }
}

/* Year in Review — four stat columns, alternating accent/dark numbers */
.kdv-yir { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.5rem; max-width: 960px; margin: 3rem auto 0; }
.kdv-yir__item { text-align: center; }
.kdv-yir__num { font-size: clamp(2rem, 3vw, 2.5rem); font-weight: 700; line-height: 1; margin: 0 0 0.5rem; color: var(--wp--preset--color--text-primary); }
.kdv-yir__num--accent { color: var(--wp--preset--color--accent); }
.kdv-yir__lbl { font-size: 0.85rem; color: var(--wp--preset--color--text-secondary); margin: 0; line-height: 1.4; }

/* Contact section — half image, half white panel */
.kdv-contact { display: grid; grid-template-columns: 1fr 1fr; min-height: 600px; background: var(--wp--preset--color--dark-bg); }
.kdv-contact__media { background-size: cover; background-position: center; background-color: var(--wp--preset--color--dark-surface); }
.kdv-contact__panel { background: #fff; padding: clamp(1.5rem, 4vw, 3rem); display: flex; flex-direction: column; justify-content: center; }
/* Form content fills the panel's content area (panel width minus padding),
   matching Pencil where the form spans the inner column. */
.kdv-contact__panel > * { width: 100%; max-width: 100%; }
.kdv-contact__title { font-size: 2rem; font-weight: 700; margin: 0 0 0.4rem; color: var(--wp--preset--color--text-primary); }
.kdv-contact__lead { font-size: 0.95rem; color: var(--wp--preset--color--text-primary); margin: 0 0 0.25rem; }
.kdv-contact__lead a { color: var(--wp--preset--color--text-primary); text-decoration: none; }
.kdv-contact__lead a:hover { color: var(--wp--preset--color--accent); }
.kdv-contact__addr { font-size: 0.9rem; color: var(--wp--preset--color--text-secondary); margin: 0 0 1.25rem; line-height: 1.5; }

/* Inline contact form */
.kdv-contact-form { display: grid; gap: 0.85rem; }
.kdv-contact-form .kdv-field { display: grid; gap: 0.35rem; }
.kdv-contact-form label { font-size: 0.8rem; font-weight: 600; color: var(--wp--preset--color--text-primary); }
.kdv-contact-form input, .kdv-contact-form textarea, .kdv-contact-form select {
	width: 100%; padding: 0.7rem 0.85rem; font: inherit; font-size: 0.95rem;
	border: 1px solid var(--wp--preset--color--border-light);
	border-radius: 6px; background: #fff; color: var(--wp--preset--color--text-primary);
	box-sizing: border-box;
}
.kdv-contact-form textarea { resize: vertical; min-height: 96px; }
.kdv-contact-form input:focus, .kdv-contact-form textarea:focus, .kdv-contact-form select:focus {
	outline: none; border-color: var(--wp--preset--color--primary);
	box-shadow: 0 0 0 3px rgba(131, 40, 135, 0.12);
}
.kdv-contact-form__submit {
	margin-top: 0.25rem;
	border: 0; border-radius: 6px; cursor: pointer;
	background: var(--wp--preset--color--accent); color: #fff;
	padding: 0.85rem 1.25rem; font: inherit; font-weight: 600; font-size: 0.95rem;
	transition: background 200ms ease;
}
.kdv-contact-form__submit:hover { background: var(--wp--preset--color--primary); }
.kdv-contact-form__hint { font-size: 0.72rem; color: var(--wp--preset--color--text-secondary); margin: 0.5rem 0 0; }
.kdv-contact-form__hint code { font-size: 0.7rem; background: var(--wp--preset--color--light-bg); padding: 0.1rem 0.3rem; border-radius: 4px; }

/* Footer columns — 1.5fr / 1fr / 1fr / 1fr on desktop */
.kdv-footer-grid { display: grid; grid-template-columns: 1.5fr 1fr 1fr 1fr; gap: 2.5rem; }
.kdv-footer-h { font-size: 0.85rem; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; margin: 0 0 1rem; color: #fff; }
.kdv-footer-list { list-style: none; padding: 0; margin: 0; display: grid; gap: 0.6rem; color: #C4B8CF; font-size: 0.9rem; }
.kdv-footer-list a { color: #C4B8CF; text-decoration: none; }
.kdv-footer-list a:hover { color: var(--wp--preset--color--accent); }

/* Footer horizontal rule — full container width, thin, slightly muted. */
.kdv-footer-rule {
	border: 0 !important;
	height: 1px !important;
	width: 100% !important;
	max-width: none !important;
	opacity: 1 !important;
	background-color: var(--wp--preset--color--border-dark) !important;
}

/* Social pills in footer */
.kdv-social {
	width: 34px; height: 34px; border-radius: 6px;
	background: var(--wp--preset--color--dark-surface);
	display: inline-grid; place-items: center;
	color: #fff; text-decoration: none;
	font-weight: 700; font-size: 0.75rem;
	transition: background 200ms ease;
}
.kdv-social:hover { background: var(--wp--preset--color--accent); }

/* Cards (used by other patterns/post listings) */
.kdv-card {
	background: #fff;
	border: 1px solid var(--wp--preset--color--border-light);
	border-radius: 12px;
	padding: 1.5rem;
	transition: box-shadow 200ms ease, transform 200ms ease;
}
.kdv-card:hover { box-shadow: var(--wp--preset--shadow--lifted); transform: translateY(-2px); }

/* Feature card icon chip */
.kdv-program-card { display: grid; grid-template-columns: 44px 1fr; gap: 1rem; align-items: flex-start; }
.kdv-program-card .kdv-icon {
	width: 44px; height: 44px; border-radius: 999px;
	display: grid; place-items: center;
	background: rgba(131, 40, 135, 0.1);
	color: var(--wp--preset--color--primary);
	font-size: 1.1rem; flex-shrink: 0;
}
.kdv-program-card .kdv-icon svg { width: 20px; height: 20px; }

/* Stat card (design system) */
.kdv-stat-card { text-align: center; }
.kdv-stat-card .kdv-stat-card__number { color: var(--wp--preset--color--accent); font-size: clamp(2rem, 3vw, 2.75rem); font-weight: 700; line-height: 1; margin: 0 0 0.5rem; }
.kdv-stat-card .kdv-stat-card__label { color: var(--wp--preset--color--text-secondary); font-size: 0.95rem; margin: 0; }

/* Alerts */
.kdv-alert { display: flex; gap: 0.75rem; align-items: flex-start; padding: 0.875rem 1rem; border-radius: 8px; border-left: 4px solid; font-size: 0.95rem; }
.kdv-alert--info    { background: var(--wp--preset--color--info-soft);    border-color: var(--wp--preset--color--info);    color: #133e63; }
.kdv-alert--success { background: var(--wp--preset--color--success-soft); border-color: var(--wp--preset--color--success); color: #1d5234; }
.kdv-alert--warning { background: var(--wp--preset--color--warning-soft); border-color: var(--wp--preset--color--warning); color: #6a4a0a; }
.kdv-alert--error   { background: var(--wp--preset--color--error-soft);   border-color: var(--wp--preset--color--error);   color: #6a1f30; }

/* Badges + tags */
.kdv-badge { display: inline-flex; align-items: center; gap: 0.25rem; padding: 0.2rem 0.6rem; border-radius: 999px; font-size: 0.75rem; font-weight: 600; background: rgba(131, 40, 135, 0.1); color: var(--wp--preset--color--primary); }
.kdv-badge--outline { background: transparent; border: 1px solid var(--wp--preset--color--primary); }
.kdv-tag { display: inline-flex; align-items: center; gap: 0.4rem; padding: 0.2rem 0.6rem; border-radius: 4px; font-size: 0.75rem; background: var(--wp--preset--color--light-bg); color: var(--wp--preset--color--text-primary); }
.kdv-tag .kdv-tag__close { cursor: pointer; opacity: 0.6; }

/* Post meta */
.kdv-post-meta { display: inline-flex; gap: 1rem; align-items: center; font-size: 0.85rem; color: var(--wp--preset--color--text-secondary); }
.kdv-post-meta__item { display: inline-flex; gap: 0.35rem; align-items: center; }

/* Sidebar widgets */
.kdv-widget { background: var(--wp--preset--color--light-bg); border-radius: 12px; padding: 1.25rem; }
.kdv-widget__title { font-size: 1rem; font-weight: 700; margin: 0 0 0.75rem; color: var(--wp--preset--color--text-primary); }
.kdv-widget ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.5rem; }
.kdv-widget li { display: flex; justify-content: space-between; align-items: center; font-size: 0.9rem; }
.kdv-widget a { color: var(--wp--preset--color--text-primary); text-decoration: none; }
.kdv-widget a:hover { color: var(--wp--preset--color--accent); }

/* Tables */
.kdv-table { width: 100%; border-collapse: collapse; background: #fff; border: 1px solid var(--wp--preset--color--border-light); border-radius: 12px; overflow: hidden; }
.kdv-table thead { background: var(--wp--preset--color--light-bg); }
.kdv-table th, .kdv-table td { padding: 0.875rem 1rem; text-align: left; font-size: 0.9rem; border-bottom: 1px solid var(--wp--preset--color--border-light); }
.kdv-table th { font-weight: 700; color: var(--wp--preset--color--text-primary); }
.kdv-table tbody tr:last-child td { border-bottom: 0; }

/* Accordion */
.kdv-accordion details { background: #fff; border: 1px solid var(--wp--preset--color--border-light); border-radius: 8px; padding: 0.875rem 1rem; }
.kdv-accordion details + details { margin-top: 0.5rem; }
.kdv-accordion summary { cursor: pointer; font-weight: 600; color: var(--wp--preset--color--text-primary); list-style: none; display: flex; justify-content: space-between; gap: 1rem; }
.kdv-accordion summary::after { content: "⌄"; transition: transform 200ms ease; opacity: 0.6; }
.kdv-accordion details[open] summary::after { transform: rotate(180deg); }
.kdv-accordion summary::-webkit-details-marker { display: none; }
.kdv-accordion details > p { margin: 0.75rem 0 0; color: var(--wp--preset--color--text-secondary); font-size: 0.95rem; }

/* Comment block */
.kdv-comment { display: grid; grid-template-columns: 40px 1fr; gap: 0.75rem; }
.kdv-comment__avatar { width: 40px; height: 40px; border-radius: 999px; object-fit: cover; background: var(--wp--preset--color--light-bg); }
.kdv-comment__head { display: flex; gap: 0.75rem; align-items: baseline; }
.kdv-comment__name { font-weight: 700; font-size: 0.95rem; color: var(--wp--preset--color--text-primary); }
.kdv-comment__time { font-size: 0.8rem; color: var(--wp--preset--color--text-secondary); }
.kdv-comment__body { margin: 0.25rem 0 0.5rem; font-size: 0.95rem; color: var(--wp--preset--color--text-primary); }
.kdv-comment__actions { font-size: 0.8rem; color: var(--wp--preset--color--text-secondary); display: inline-flex; gap: 0.75rem; }

/* Pagination */
.kdv-pagination { display: inline-flex; gap: 0.4rem; align-items: center; }
.kdv-pagination__item { min-width: 36px; height: 36px; display: inline-grid; place-items: center; border: 1px solid var(--wp--preset--color--border-light); border-radius: 8px; font-size: 0.85rem; color: var(--wp--preset--color--text-primary); background: #fff; text-decoration: none; }
.kdv-pagination__item--current { background: var(--wp--preset--color--primary); border-color: var(--wp--preset--color--primary); color: #fff; }
.kdv-pagination__item:hover { border-color: var(--wp--preset--color--primary); color: var(--wp--preset--color--primary); }
.kdv-pagination__item--current:hover { color: #fff; }

/* Section heading underline */
.kdv-section-title { position: relative; padding-bottom: 0.75rem; }
.kdv-section-title::after {
	content: ""; position: absolute; left: 50%; bottom: 0;
	transform: translateX(-50%);
	width: 56px; height: 3px;
	background: var(--wp--preset--color--accent);
	border-radius: 999px;
}
.kdv-section-title.has-text-align-left::after { left: 0; transform: none; }

/* Mobile breakpoints */
@media (max-width: 900px) {
	.kdv-stats-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.kdv-stat-seg { border-bottom: 1px solid rgba(255,255,255,0.18); }
	.kdv-yir { grid-template-columns: repeat(2, 1fr); }
	.kdv-footer-grid { grid-template-columns: 1fr 1fr; }
	.kdv-contact { grid-template-columns: 1fr; }
	.kdv-contact__media { min-height: 280px; }
	.kdv-contact__panel { max-width: 100%; }
}
@media (max-width: 600px) {
	.kdv-stats-strip { grid-template-columns: 1fr; }
	.kdv-yir { grid-template-columns: 1fr; }
	.kdv-footer-grid { grid-template-columns: 1fr; gap: 1.5rem; }
	.kdv-logo__sub { display: none; }
	.kdv-program { grid-template-columns: 36px 1fr; gap: 0.75rem; }
	.kdv-program__num { width: 36px; height: 36px; }
}
