/*
Theme Name: KC's Finest Custom
Theme URI: https://example.com/kcs-finest-custom
Author: KC's Finest DJs & Events
Description: A fully customizable luxury wedding DJ and photo booth theme with a seven-image hero slideshow, DJ profiles, package cards, photo booth section, black testimonial section, and consultation CTA. Edit content in Appearance > Customize.
Version: 2.0.0
Requires at least: 6.0
Tested up to: 6.8
Requires PHP: 7.4
Text Domain: kcs-finest
*/

:root{--gold:#d9ad62;--gold2:#efc97f;--black:#0b0b0b;--ink:#161616;--cream:#f7f3ec;--muted:#6f6f6f;--max:1120px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Arial,Helvetica,sans-serif;color:var(--ink);background:#fff}a{color:inherit;text-decoration:none}img{max-width:100%;height:auto}h1,h2,h3,p{margin-top:0}.kcs-container{max-width:var(--max);margin:0 auto;padding:0 28px}.kcs-eyebrow{color:#c79035;text-transform:uppercase;letter-spacing:.18em;font-size:12px;font-weight:700}.kcs-btn{display:inline-block;padding:14px 26px;border:1px solid var(--gold);background:linear-gradient(90deg,#c89a4c,#edca86);color:#111;text-transform:uppercase;letter-spacing:.12em;font-size:12px;font-weight:700;border-radius:2px;transition:.2s ease}.kcs-btn:hover{transform:translateY(-1px);filter:brightness(1.04)}.kcs-btn-outline{background:transparent;color:#fff;border-color:#aaa}
.site-header{position:absolute;z-index:30;top:0;left:0;right:0;color:#fff;border-bottom:1px solid rgba(255,255,255,.18);background:rgba(0,0,0,.35);backdrop-filter:blur(5px)}.kcs-nav{display:flex;align-items:center;justify-content:space-between;min-height:72px;gap:24px}.custom-logo-link img{max-height:54px;width:auto}.kcs-text-logo{font-family:Georgia,serif;color:var(--gold2);font-size:24px;line-height:.9}.kcs-text-logo span{display:block;font-family:Arial,sans-serif;font-size:8px;letter-spacing:.25em;margin-top:8px;text-align:center}.kcs-menu{display:flex;align-items:center;gap:28px;list-style:none;margin:0;padding:0;font-size:11px;text-transform:uppercase;letter-spacing:.12em}.kcs-menu a:hover{color:var(--gold2)}.menu-toggle{display:none;background:transparent;border:1px solid rgba(255,255,255,.45);color:#fff;padding:9px 12px}
.kcs-hero{min-height:540px;position:relative;display:flex;align-items:center;color:#fff;background:#000;overflow:hidden}.kcs-slide{position:absolute;inset:0;background-size:cover;background-position:center;opacity:0;transition:opacity 1s ease}.kcs-slide.is-active{opacity:1}.kcs-slide:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.80),rgba(0,0,0,.18))}.kcs-hero:after{content:"";position:absolute;z-index:2;left:0;right:0;bottom:0;height:110px;background:linear-gradient(transparent,rgba(0,0,0,.8))}.kcs-hero-content{position:relative;z-index:4;max-width:600px;padding-top:90px}.kcs-hero h1{font-family:Georgia,"Times New Roman",serif;font-size:58px;line-height:.98;font-weight:400;margin-bottom:18px}.kcs-hero h1 .accent{color:var(--gold2)}.kcs-hero p{font-size:16px;line-height:1.6;max-width:510px;color:#efefef}.kcs-hero-actions{display:flex;gap:14px;margin-top:24px;flex-wrap:wrap}.kcs-dots{position:absolute;z-index:5;left:50%;bottom:17px;transform:translateX(-50%);display:flex;gap:9px}.kcs-dot{width:8px;height:8px;border:1px solid #fff;border-radius:50%;background:transparent;padding:0;cursor:pointer}.kcs-dot.is-active{background:#fff}
.kcs-features{background:#090909;color:#fff;border-top:1px solid #232323}.kcs-features-grid{display:grid;grid-template-columns:repeat(4,1fr)}.kcs-feature{padding:18px 22px;border-right:1px solid #333}.kcs-feature:last-child{border-right:0}.kcs-feature strong{display:block;text-transform:uppercase;letter-spacing:.12em;font-size:10px;margin-bottom:6px}.kcs-feature span{font-size:10px;color:#bbb}
.kcs-section{padding:68px 0}.kcs-meet{background:#faf8f4}.kcs-meet-grid{display:grid;grid-template-columns:1.05fr 1.6fr;gap:40px;align-items:center}.kcs-section h2{font-family:Georgia,"Times New Roman",serif;font-size:42px;line-height:1.03;font-weight:400;margin-bottom:14px}.kcs-meet-copy p{line-height:1.7;color:#444}.kcs-djs{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.kcs-card{background:#fff;border:1px solid #ddd;border-radius:4px;overflow:hidden;text-align:center}.kcs-card img{display:block;width:100%;height:170px;object-fit:cover}.kcs-card-body{padding:15px}.kcs-card h3{font-family:Georgia,serif;font-size:18px;margin-bottom:4px}.kcs-card small{display:block;color:#666;margin-bottom:12px}.kcs-card-link{font-size:10px;text-transform:uppercase;letter-spacing:.12em;font-weight:700}
.kcs-packages{background:#fff}.kcs-center{text-align:center}.kcs-pack-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:28px}.kcs-package{border:1px solid #ddd;border-radius:4px;overflow:hidden;background:#fff;position:relative}.kcs-package.popular{border:1.5px solid var(--gold)}.kcs-badge{position:absolute;top:0;left:50%;transform:translateX(-50%);background:var(--gold);font-size:9px;letter-spacing:.12em;text-transform:uppercase;padding:6px 14px;z-index:2;white-space:nowrap}.kcs-package img{width:100%;height:145px;object-fit:cover;display:block}.kcs-package-body{padding:20px 24px 24px;text-align:center}.kcs-package h3{font-family:Georgia,serif;font-size:22px;margin-bottom:2px}.kcs-price{font-family:Georgia,serif;font-size:20px;margin-bottom:14px}.kcs-package ul{list-style:none;padding:0;margin:0 0 20px;text-align:left;font-size:13px;line-height:1.8}.kcs-package li:before{content:"✓";display:inline-block;margin-right:9px;font-weight:700}
.kcs-photo{padding:0;background:#0b0b0b;color:#fff}.kcs-photo-grid{display:grid;grid-template-columns:1fr 1.12fr;min-height:420px}.kcs-photo-img{min-height:420px;background-size:cover;background-position:center}.kcs-photo-copy{padding:60px 48px;display:flex;flex-direction:column;justify-content:center;background:radial-gradient(circle at 70% 30%,#202020 0,#0b0b0b 55%)}.kcs-photo-copy p{color:#ccc;line-height:1.65}.kcs-photo-points{display:grid;grid-template-columns:1fr 1fr;gap:10px 22px;margin:14px 0 24px;font-size:13px;color:#ddd}
.kcs-review{background:#050505;color:#fff;padding:62px 0}.kcs-review-grid{display:grid;grid-template-columns:.9fr 1.4fr;gap:42px;align-items:center}.kcs-review img{width:100%;height:290px;object-fit:cover;border-radius:3px}.kcs-review blockquote{font-family:Georgia,serif;font-size:34px;line-height:1.15;margin:8px 0 14px}.kcs-review p{color:#d2d2d2;line-height:1.65}.kcs-stars{color:var(--gold2);font-size:22px;letter-spacing:.12em;margin:14px 0}.kcs-review-meta{color:#aaa;font-size:12px}
.kcs-schedule{background:#111;color:#fff}.kcs-schedule-grid{display:grid;grid-template-columns:.85fr 1.4fr;gap:34px;align-items:center}.kcs-schedule p{color:#ccc;line-height:1.65}.kcs-schedule-points{display:flex;gap:16px;flex-wrap:wrap;font-size:12px;color:#ddd}.kcs-calendar-wrap{background:#fff;border-radius:10px;overflow:hidden;box-shadow:0 20px 60px rgba(0,0,0,.35);min-height:520px}.kcs-calendar-placeholder{display:flex;align-items:center;justify-content:center;min-height:520px;padding:30px;text-align:center;color:#333;background:#fafafa}.kcs-calendar-wrap iframe{width:100%;height:700px;border:0;display:block}
.site-footer{background:#060606;color:#8c8c8c;text-align:center;padding:28px;font-size:12px;border-top:1px solid #1d1d1d}
@media(max-width:900px){.menu-toggle{display:block}.kcs-menu-wrap{display:none;position:absolute;top:72px;left:0;right:0;background:#090909;padding:20px}.kcs-menu-wrap.is-open{display:block}.kcs-menu{flex-direction:column;align-items:flex-start;gap:18px}.kcs-header-cta{display:none}.kcs-hero{min-height:620px}.kcs-hero h1{font-size:44px}.kcs-features-grid{grid-template-columns:1fr 1fr}.kcs-feature{border-bottom:1px solid #333}.kcs-meet-grid,.kcs-review-grid,.kcs-schedule-grid,.kcs-photo-grid{grid-template-columns:1fr}.kcs-djs,.kcs-pack-grid{grid-template-columns:1fr}.kcs-photo-img{min-height:360px}.kcs-review img{height:360px}}
@media(max-width:560px){.kcs-container{padding:0 18px}.kcs-hero h1{font-size:38px}.kcs-section h2{font-size:34px}.kcs-features-grid{grid-template-columns:1fr}.kcs-feature{border-right:0}.kcs-photo-copy{padding:44px 24px}.kcs-photo-points{grid-template-columns:1fr}.kcs-review blockquote{font-size:29px}}


/* KC's Finest DJs — Instagram section */
.kcs-instagram { background: #17191a; color: #fff; text-align: center; padding: 85px 20px; }
.kcs-instagram .kcs-container { max-width: 1200px; margin: 0 auto; }
.kcs-instagram .kcs-eyebrow { color: #e9be73; letter-spacing: 3px; margin-bottom: 16px; }
.kcs-instagram h2 { color: #fff; font-size: clamp(28px, 4vw, 48px); line-height: 1.15; margin: 0 0 18px; }
.kcs-instagram-description { color: #ccc; margin: 0 auto 32px; max-width: 650px; }
.kcs-instagram-gallery { margin: 0 auto 32px; max-width: 1100px; }
.kcs-instagram-button { display: inline-block; background: #e9be73; color: #17191a; padding: 16px 30px; text-decoration: none; font-size: 13px; font-weight: 700; letter-spacing: 1px; border-radius: 3px; }
.kcs-instagram-button:hover, .kcs-instagram-button:focus { background: #fff; color: #17191a; }
@media (max-width: 768px) { .kcs-instagram { padding: 60px 16px; } }

/* Dedicated photobooth page: allow for the fixed-over-content header. */
body.page-photobooth .kcf-pb { padding-top: 165px; }
body.page-photobooth .site-header { background: rgba(8,8,8,.96); }
@media(max-width:650px) { body.page-photobooth .kcf-pb { padding-top: 125px; } }

/* DJ biographies - three individual sections */
.kcs-dj-bios { background:#f5f3ef; color:#171717; }
.kcs-dj-bios .kcs-center { margin-bottom:38px; }
.kcs-dj-bios .kcs-center h2 { max-width:780px; margin-left:auto; margin-right:auto; }
.kcs-dj-bios-intro { max-width:600px; margin:16px auto 0; line-height:1.7; }
.kcs-dj-bio-list { display:grid; gap:30px; }
.kcs-dj-bio { display:grid; grid-template-columns:minmax(220px,38%) 1fr; gap:38px; align-items:center; background:#fff; border:1px solid #e8e0d3; overflow:hidden; scroll-margin-top:115px; }
.kcs-dj-bio-photo { height:100%; min-height:330px; background:#252525; }
.kcs-dj-bio-photo img { display:block; height:100%; width:100%; object-fit:cover; }
.kcs-dj-bio-copy { padding:40px 38px 40px 0; }
.kcs-dj-bio-copy h3 { font-size:clamp(27px,3vw,42px); margin:8px 0; line-height:1.12; }
.kcs-dj-bio-name { font-size:12px; letter-spacing:.16em; text-transform:uppercase; color:#9b783e; font-weight:700; }
.kcs-dj-bio-copy p { line-height:1.8; max-width:620px; }
.kcs-dj-bio-copy .kcs-btn { margin-top:14px; }
@media(max-width:700px) {
 .kcs-dj-bio { grid-template-columns:1fr; gap:0; }
 .kcs-dj-bio-photo { height:300px; min-height:0; }
 .kcs-dj-bio-copy { padding:28px 24px 32px; }
}

/* Homepage refresh v2: controlled bios, reel and gallery, editable review cards */
.kcs-dj-bios[hidden]{display:none!important}
.kcs-bios-toggle{border:0;cursor:pointer;font:inherit;font-weight:700;text-transform:uppercase}
.kcs-photo-home{background:#faf8f4;color:#171717}
.kcs-photo-home-layout{display:grid;grid-template-columns:1.05fr 1fr;align-items:center;gap:6vw}
.kcs-photo-media{display:grid;grid-template-columns:.8fr 1fr;gap:16px;align-items:center}
.kcs-home-reel{aspect-ratio:9/16;min-width:0;overflow:hidden;background:#121212;border-radius:12px;box-shadow:0 12px 35px #0003}
.kcs-home-reel video,.kcs-home-reel img{width:100%;height:100%;object-fit:cover;display:block}
.kcs-home-pb-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}
.kcs-home-pb-grid img,.kcs-empty-photo{display:block;width:100%;aspect-ratio:1/1;object-fit:cover;background:#d8d3cb;color:#777;font-size:10px;display:grid;place-items:center}
.kcs-photo-home-copy h2{font-family:Georgia,serif;font-size:clamp(35px,4vw,62px);font-weight:400;line-height:1.06}
.kcs-photo-home-copy p{max-width:440px;line-height:1.75;color:#555}
.kcs-review h2{font-family:Georgia,serif;font-size:clamp(32px,4vw,49px);font-weight:400;max-width:760px}
.kcs-review-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:30px}
.kcs-review-card{border:1px solid #65543a;background:#141414;padding:25px;border-radius:7px;display:flex;flex-direction:column;min-height:230px}
.kcs-review-card p{line-height:1.65;color:#eee;flex:1}
.kcs-review-person{display:flex;align-items:center;gap:12px;font-size:13px;color:#eee}
.kcs-review-person img{height:42px;width:42px;object-fit:cover;border-radius:50%}
@media(max-width:800px){.kcs-photo-home-layout{grid-template-columns:1fr}.kcs-review-cards{grid-template-columns:1fr}}
@media(max-width:540px){.kcs-photo-media{gap:9px}.kcs-section{padding:46px 0}}
