/*
Theme Name: Kayals Academy
Theme URI: https://kayalsacademy.com/
Author: Kayals Academy of Performing Arts
Description: Custom, lightweight theme for Kayals Academy of Performing Arts. Block-editor content, built-in trial booking form, WhatsApp and call buttons, and local SEO schema.
Version: 1.0.0
Requires at least: 6.5
Requires PHP: 8.0
License: GNU General Public License v2 or later
Text Domain: kayals
*/

:root {
	--k-maroon: #6B1E2E;
	--k-maroon-deep: #3A0F18;
	--k-gold: #C9A24A;
	--k-gold-soft: #E9D7A8;
	--k-ivory: #FAF6EF;
	--k-sand: #F1E8DA;
	--k-ink: #2B2422;
	--k-muted: #6E625C;
	--k-line: #E4D9C6;
	--k-serif: 'Cormorant Garamond', Georgia, serif;
	--k-sans: Manrope, system-ui, -apple-system, 'Segoe UI', sans-serif;
	--k-radius: 18px;
	--k-gutter: clamp(16px, 4vw, 40px);
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--k-ivory); color: var(--k-ink); font-family: var(--k-sans); -webkit-font-smoothing: antialiased; overflow-x: hidden; }
img { max-width: 100%; height: auto; }
a { color: var(--k-maroon); text-underline-offset: 3px; }
a:hover { color: var(--k-maroon-deep); }
:focus-visible { outline: 3px solid var(--k-gold); outline-offset: 2px; }

.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(1px, 1px, 1px, 1px); white-space: nowrap; }
.k-skip { position: absolute; left: -999px; top: 8px; z-index: 100; background: #fff; padding: 8px 14px; }
.k-skip:focus { left: 8px; }

.k-wrap { width: 100%; max-width: 1240px; margin: 0 auto; padding: 0 var(--k-gutter); }

/* ---------- Buttons ---------- */
.k-btn,
.wp-element-button,
.wp-block-button__link {
	display: inline-flex; align-items: center; justify-content: center; gap: 8px;
	background: var(--k-maroon); color: #fff; border: 1.5px solid var(--k-maroon);
	border-radius: 999px; padding: 12px 24px; font: 600 15px/1.2 var(--k-sans);
	text-decoration: none; cursor: pointer; transition: background .2s, color .2s, border-color .2s, transform .2s;
}
.k-btn:hover, .wp-element-button:hover, .wp-block-button__link:hover { background: var(--k-maroon-deep); border-color: var(--k-maroon-deep); color: #fff; transform: translateY(-1px); }
.k-btn--ghost, .is-style-outline > .wp-block-button__link { background: transparent; color: var(--k-maroon); }
.k-btn--ghost:hover, .is-style-outline > .wp-block-button__link:hover { background: var(--k-maroon); color: #fff; }

/* ---------- Top bar + header ---------- */
.k-topbar { background: var(--k-maroon-deep); color: var(--k-gold-soft); font-size: 12.5px; letter-spacing: .08em; text-transform: uppercase; }
.k-topbar .k-wrap { display: flex; justify-content: space-between; gap: 12px; padding-top: 7px; padding-bottom: 7px; }
.k-topbar a { color: #fff; text-decoration: none; font-weight: 600; letter-spacing: .04em; }
@media (max-width: 640px) { .k-topbar span { display: none; } .k-topbar .k-wrap { justify-content: center; } }

.k-header { position: sticky; top: 0; z-index: 50; background: var(--k-ivory); border-bottom: 1px solid transparent; transition: box-shadow .2s, border-color .2s; }
.admin-bar .k-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .k-header { top: 0; } }
.k-header.is-scrolled { box-shadow: 0 6px 24px rgba(58, 15, 24, .08); border-color: var(--k-line); }
.k-header__inner { display: flex; align-items: center; justify-content: space-between; gap: 20px; min-height: 78px; }
.k-logo img, .custom-logo { display: block; width: 136px; height: auto; }

.k-nav { display: flex; align-items: center; gap: 22px; }
.k-menu { list-style: none; margin: 0; padding: 0; display: flex; gap: 4px; }
.k-menu > li { position: relative; }
.k-menu a { display: block; white-space: nowrap; padding: 10px 12px; color: var(--k-ink); text-decoration: none; font-size: 14.5px; font-weight: 600; border-radius: 8px; }
.k-menu a:hover, .k-menu .current-menu-item > a, .k-menu .current-menu-ancestor > a { color: var(--k-maroon); }
.k-menu .menu-item-has-children > a::after { content: ""; display: inline-block; width: 6px; height: 6px; margin-left: 7px; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: translateY(-3px) rotate(45deg); }
.k-menu .sub-menu { list-style: none; margin: 0; padding: 10px; position: absolute; top: 100%; left: 0; min-width: 260px; background: #fff; border: 1px solid var(--k-line); border-radius: 14px; box-shadow: 0 18px 40px rgba(58, 15, 24, .12); opacity: 0; visibility: hidden; transform: translateY(6px); transition: .18s; }
.k-menu li:hover > .sub-menu, .k-menu li:focus-within > .sub-menu { opacity: 1; visibility: visible; transform: none; }
.k-menu .sub-menu a { font-weight: 500; padding: 9px 12px; }
.k-menu .sub-menu a:hover { background: var(--k-sand); }
.k-nav__cta { display: flex; gap: 8px; }
.k-nav__cta .k-btn { padding: 10px 18px; font-size: 14px; white-space: nowrap; }

.k-navtoggle { display: none; width: 46px; height: 46px; border: 1px solid var(--k-line); border-radius: 12px; background: #fff; cursor: pointer; }
.k-navtoggle__bars, .k-navtoggle__bars::before, .k-navtoggle__bars::after { display: block; width: 20px; height: 2px; background: var(--k-maroon-deep); margin: 0 auto; position: relative; transition: .2s; content: ""; }
.k-navtoggle__bars::before { position: absolute; top: -6px; }
.k-navtoggle__bars::after { position: absolute; top: 6px; }
.k-nav-open .k-navtoggle__bars { background: transparent; }
.k-nav-open .k-navtoggle__bars::before { top: 0; transform: rotate(45deg); }
.k-nav-open .k-navtoggle__bars::after { top: 0; transform: rotate(-45deg); }

@media (max-width: 1199px) {
	.k-navtoggle { display: block; }
	.k-nav { position: fixed; inset: 0 0 0 auto; width: min(360px, 88vw); background: var(--k-ivory); flex-direction: column; align-items: stretch; padding: 96px 20px 24px; gap: 16px; transform: translateX(100%); transition: transform .25s, visibility .25s; visibility: hidden; overflow-y: auto; box-shadow: -20px 0 40px rgba(0, 0, 0, .12); z-index: 1; }
	.k-navtoggle { position: relative; z-index: 2; }
	.k-nav-open { overflow: hidden; }
	.k-nav-open .k-nav { transform: none; visibility: visible; }
	.k-menu { flex-direction: column; }
	.k-menu a { font-size: 17px; padding: 12px 8px; border-bottom: 1px solid var(--k-line); border-radius: 0; }
	.k-menu .sub-menu { position: static; opacity: 1; visibility: visible; transform: none; box-shadow: none; border: 0; padding: 0 0 0 12px; display: none; background: transparent; min-width: 0; }
	.k-menu .is-open > .sub-menu { display: block; }
	.k-nav__cta { flex-direction: column; }
	.k-nav__cta .k-btn { padding: 14px; }
}

/* ---------- Content blocks ---------- */
.k-main { display: block; }
.entry-content > *:first-child { margin-top: 0; }
.entry-content > .alignfull { margin-top: 0; margin-bottom: 0; }
.entry-content p, .entry-content li { max-width: 72ch; }
.entry-content .has-text-align-center { margin-left: auto; margin-right: auto; }

.k-sec { padding: clamp(56px, 8vw, 104px) var(--k-gutter); }
.k-sand { background: var(--k-sand); }
.k-white { background: #fff; }
.k-dark { background: var(--k-maroon-deep); color: #F4EBDD; }
.k-dark :where(h1, h2, h3, h4) { color: #fff; }
.k-dark a:not(.wp-block-button__link) { color: var(--k-gold-soft); }
.k-dark .is-style-outline > .wp-block-button__link { color: #fff; border-color: rgba(255, 255, 255, .6); }

.k-eyebrow { font-size: 12.5px !important; letter-spacing: .18em; text-transform: uppercase; font-weight: 700; color: var(--k-gold) !important; margin-bottom: 10px !important; }
.k-lead { font-size: clamp(1.05rem, 1.6vw, 1.22rem); color: var(--k-muted); }
.k-dark .k-lead { color: #E6D9C6; }
.k-center { text-align: center; }
.k-center p { margin-left: auto; margin-right: auto; }
.k-center .wp-block-buttons { justify-content: center; }

/* Hero */
.k-hero.wp-block-cover { min-height: min(86vh, 720px) !important; padding: clamp(56px, 8vw, 96px) var(--k-gutter); align-items: flex-end; }
.k-hero .wp-block-cover__inner-container { max-width: 1200px; width: 100%; margin: 0 auto; }
.k-hero .wp-block-cover__inner-container > * { max-width: 640px; margin-left: 0 !important; }
.k-hero h1 { color: #fff; margin: 6px 0 18px; }
.k-hero p { color: #F1E6D6; font-size: 1.1rem; }
.k-hero .k-heroline { font-size: 13.5px; letter-spacing: .06em; color: var(--k-gold-soft); margin-top: 22px; }
.k-hero .is-style-outline > .wp-block-button__link { color: #fff; border-color: rgba(255, 255, 255, .7); }
.k-hero .wp-block-cover__image-background { object-position: 70% 30%; }

/* Page intro (inner pages) */
.k-intro { padding-top: clamp(48px, 7vw, 88px); padding-bottom: clamp(40px, 6vw, 72px); background: linear-gradient(180deg, var(--k-sand), var(--k-ivory)); }
.k-intro h1 { margin: 4px 0 18px; }

/* Trust strip */
.k-trust { gap: 0 !important; border-top: 1px solid var(--k-line); border-bottom: 1px solid var(--k-line); }
.k-trust > .wp-block-column { padding: 26px 22px; border-right: 1px solid var(--k-line); }
.k-trust > .wp-block-column:last-child { border-right: 0; }
.k-trust h3 { font-size: 1.3rem; margin: 0 0 6px; }
.k-trust p { font-size: 14.5px; color: var(--k-muted); margin: 0; }
@media (max-width: 781px) { .k-trust > .wp-block-column { border-right: 0; border-bottom: 1px solid var(--k-line); padding: 18px 4px; } }

/* Cards */
.k-cards { gap: 22px !important; }
.k-cards > .wp-block-column { background: #fff; border: 1px solid var(--k-line); border-radius: var(--k-radius); padding: 28px 26px; transition: transform .2s, box-shadow .2s; display: flex; flex-direction: column; }
.k-cards > .wp-block-column:hover { transform: translateY(-3px); box-shadow: 0 18px 38px rgba(58, 15, 24, .08); }
.k-cards h3 { margin: 0 0 8px; }
.k-cards p { font-size: 15.5px; color: var(--k-muted); }
.k-cards p:last-child { margin-top: auto; margin-bottom: 0; font-weight: 700; }
.k-cards p:last-child a { text-decoration: none; }
.k-cards .k-num { font-family: var(--k-serif); font-size: 2.1rem; color: var(--k-gold); line-height: 1; margin: 0 0 12px; }
.k-dark .k-cards > .wp-block-column { background: rgba(255, 255, 255, .05); border-color: rgba(255, 255, 255, .14); }
.k-dark .k-cards p { color: #E2D4C1; }

/* Feature grid (why us) */
.k-features { gap: 30px 34px !important; }
.k-features h3 { font-size: 1.35rem; margin: 0 0 6px; padding-top: 14px; border-top: 2px solid var(--k-gold); }
.k-features p { font-size: 15.5px; color: var(--k-muted); margin-top: 0; }
.k-dark .k-features p { color: #E2D4C1; }

/* Split image + text */
.k-split { gap: clamp(28px, 5vw, 64px) !important; align-items: center !important; }
.k-split .wp-block-image img { border-radius: var(--k-radius); width: 100%; object-fit: cover; aspect-ratio: 4 / 5; }
.k-split .wp-block-image.k-wide img { aspect-ratio: 4 / 3; }

/* Steps */
.k-steps { list-style: none; counter-reset: k; padding: 0; margin: 28px auto 0; }
.k-steps li { counter-increment: k; position: relative; padding: 0 0 26px 64px; margin: 0; max-width: none; }
.k-steps li::before { content: counter(k, decimal-leading-zero); position: absolute; left: 0; top: -4px; width: 44px; height: 44px; border-radius: 50%; display: grid; place-items: center; background: var(--k-maroon); color: #fff; font: 600 14px var(--k-sans); }
.k-steps li::after { content: ""; position: absolute; left: 21px; top: 44px; bottom: 4px; width: 2px; background: var(--k-line); }
.k-steps li:last-child::after { display: none; }
.k-dark .k-steps li::before { background: var(--k-gold); color: var(--k-maroon-deep); }
.k-dark .k-steps li::after { background: rgba(255, 255, 255, .18); }

/* Checklist */
.k-check { list-style: none; padding: 0; }
.k-check li { position: relative; padding-left: 30px; margin-bottom: 10px; }
.k-check li::before { content: ""; position: absolute; left: 2px; top: .5em; width: 14px; height: 8px; border-left: 2px solid var(--k-gold); border-bottom: 2px solid var(--k-gold); transform: rotate(-45deg); }

/* Quotes / testimonials */
.k-quote { background: #fff; border: 1px solid var(--k-line); border-radius: var(--k-radius); padding: 28px; }
.k-quote p { font-family: var(--k-serif); font-size: 1.35rem; line-height: 1.45; color: var(--k-maroon-deep); }
.k-quote cite, .k-quote .k-who { font: 600 14px var(--k-sans); color: var(--k-muted); font-style: normal; }

/* Tables (batch timings) */
.k-table table { border-collapse: separate; border-spacing: 0; width: 100%; background: #fff; border: 1px solid var(--k-line); border-radius: 14px; overflow: hidden; font-size: 15.5px; }
.k-table th { background: var(--k-maroon); color: #fff; text-align: left; font-weight: 600; padding: 14px 18px; border: 0; }
.k-table td { padding: 13px 18px; border: 0; border-top: 1px solid var(--k-line); }
.k-table tr:nth-child(even) td { background: var(--k-ivory); }

/* FAQ (Details block) */
.k-faq .wp-block-details { background: #fff; border: 1px solid var(--k-line); border-radius: 14px; padding: 0; margin: 0 0 12px; }
.k-faq summary { cursor: pointer; list-style: none; padding: 18px 54px 18px 22px; font-weight: 700; position: relative; color: var(--k-maroon-deep); }
.k-faq summary::-webkit-details-marker { display: none; }
.k-faq summary::after { content: "+"; position: absolute; right: 22px; top: 50%; transform: translateY(-50%); font: 400 26px/1 var(--k-sans); color: var(--k-gold); }
.k-faq details[open] summary::after { content: "–"; }
.k-faq .wp-block-details > :not(summary) { padding: 0 22px; margin-top: 0; color: var(--k-muted); }
.k-faq .wp-block-details > :last-child { padding-bottom: 18px; }

/* Branch cards */
.k-branch { background: #fff; border-radius: var(--k-radius); border: 1px solid var(--k-line); padding: 28px; }
.k-branch h3 { margin-top: 0; }
.k-map iframe { width: 100%; min-height: 360px; border: 0; border-radius: var(--k-radius); display: block; }

/* Placeholders to confirm */
mark.k-confirm { background: #FFF1B8; color: #6B4E00; border: 1px dashed #D4A800; padding: 1px 6px; border-radius: 6px; font-size: .88em; font-family: var(--k-sans); }

/* ---------- Trial form ---------- */
.k-form { background: #fff; border: 1px solid var(--k-line); border-radius: var(--k-radius); padding: clamp(20px, 4vw, 34px); max-width: 780px; margin: 0 auto; color: var(--k-ink); text-align: left; }
.k-form__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 4px 18px; }
.k-form__full { grid-column: 1 / -1; }
.k-form--compact .k-form__grid { grid-template-columns: repeat(4, 1fr); }
@media (max-width: 900px) { .k-form--compact .k-form__grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .k-form__grid, .k-form--compact .k-form__grid { grid-template-columns: 1fr; } }
.k-form label { display: block; font-size: 13.5px; font-weight: 600; margin-bottom: 6px; color: var(--k-maroon-deep); }
.k-form input[type=text], .k-form input[type=tel], .k-form input[type=email], .k-form input[type=number], .k-form select, .k-form textarea { width: 100%; padding: 12px 14px; border: 1px solid #D8CCB8; border-radius: 10px; font: 16px var(--k-sans); background: var(--k-ivory); color: var(--k-ink); }
.k-form input:focus, .k-form select:focus, .k-form textarea:focus { outline: 2px solid var(--k-gold); border-color: var(--k-gold); background: #fff; }
.k-form__consent label { display: flex; gap: 10px; align-items: flex-start; font-weight: 500; color: var(--k-muted); }
.k-form__consent input { margin-top: 4px; }
.k-form button { width: 100%; padding: 15px; font-size: 16px; }
.k-hp { position: absolute; left: -9999px; }

/* ---------- Footer ---------- */
.k-footer { background: var(--k-maroon-deep); color: #D9C9B4; font-size: 15px; padding-top: 64px; }
.k-footer a { color: #fff; text-decoration: none; }
.k-footer a:hover { color: var(--k-gold-soft); }
.k-footer__grid { display: grid; grid-template-columns: 1.4fr 1fr 1.2fr 1fr; gap: 36px; padding-bottom: 48px; }
.k-footer__grid ul { list-style: none; padding: 0; margin: 0; }
.k-footer__grid li { margin-bottom: 9px; }
.k-footer__h { font: 700 12.5px var(--k-sans); letter-spacing: .16em; text-transform: uppercase; color: var(--k-gold); margin: 0 0 16px; }
.k-footer .k-logo img { width: 150px; border-radius: 10px; background: #fff; padding: 6px; }
.k-footer__tag { font-family: var(--k-serif); font-size: 1.3rem; color: var(--k-gold-soft); font-style: italic; }
.k-footer__bottom { border-top: 1px solid rgba(255, 255, 255, .12); padding: 18px 0 90px; font-size: 13.5px; }
.k-footer__bottom .k-wrap { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 10px; }
.k-footer__menu { list-style: none; display: flex; gap: 18px; margin: 0; padding: 0; }
@media (min-width: 1024px) { .k-footer__bottom { padding-bottom: 18px; } }
@media (max-width: 900px) { .k-footer__grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .k-footer__grid { grid-template-columns: 1fr; } }

/* ---------- Floating WhatsApp + mobile bar ---------- */
.k-wa-float { position: fixed; right: 20px; bottom: 22px; z-index: 40; width: 56px; height: 56px; border-radius: 50%; display: grid; place-items: center; background: #1F8F4E; color: #fff; box-shadow: 0 10px 26px rgba(0, 0, 0, .22); }
.k-wa-float:hover { color: #fff; transform: scale(1.05); }
.k-mobilebar { display: none; }
@media (max-width: 1023px) {
	.k-wa-float { display: none; }
	.k-mobilebar { display: grid; grid-template-columns: 1fr 1fr 1.3fr; position: fixed; left: 0; right: 0; bottom: 0; z-index: 45; background: #fff; border-top: 1px solid var(--k-line); box-shadow: 0 -6px 20px rgba(0, 0, 0, .06); padding: 8px 10px calc(8px + env(safe-area-inset-bottom)); gap: 8px; }
	.k-mobilebar a { text-align: center; padding: 12px 6px; border-radius: 999px; font-weight: 700; font-size: 14.5px; text-decoration: none; border: 1.5px solid var(--k-maroon); color: var(--k-maroon); }
	.k-mobilebar a.is-primary { background: var(--k-maroon); color: #fff; }
}

/* ---------- Elementor ---------- */
.k-elementor { max-width: none; }
.k-is-elementor .k-main { overflow-x: clip; }
.elementor-page .entry-content > .elementor { width: 100%; }

/* ---------- Blog + misc ---------- */
.k-posts { padding-top: 56px; padding-bottom: 80px; }
.k-postgrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 26px; }
.k-postcard { background: #fff; border: 1px solid var(--k-line); border-radius: var(--k-radius); overflow: hidden; }
.k-postcard img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; display: block; }
.k-postcard h2 { font-size: 1.5rem; margin: 18px 22px 8px; }
.k-postcard h2 a { text-decoration: none; }
.k-postcard p { margin: 0 22px 22px; color: var(--k-muted); font-size: 15px; }
.k-single { max-width: 780px; margin: 0 auto; }
.k-404 { padding: 100px var(--k-gutter); text-align: center; }
.k-404 .k-btn { margin: 6px; }
