/*
Theme Name: Kevin Lee Events
Theme URI: https://kevinleeevents.com
Author: Kevin Lee Events
Description: Luxury black & white theme for Kevin Lee Events — elite weddings and events by Kevin Lee. Homepage, Franchise, and Signature Collection templates, ADA widget, section dots, and inquire popup.
Version: 2.0
Requires at least: 6.0
Requires PHP: 7.4
License: Proprietary
Text Domain: kevin-lee-events
*/

html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: #050505;
  color: #F5F2EC;
  font-family: 'Jost', sans-serif;
  -webkit-font-smoothing: antialiased;
}
a { color: #F5F2EC; text-decoration: none; }
a:hover { color: #C9C4BA; }
::selection { background: #F5F2EC; color: #050505; }
@keyframes kle-marquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }
input::placeholder, textarea::placeholder { color: rgba(245,242,236,0.35); }
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible { outline: 2px solid #F5F2EC; outline-offset: 3px; }

/* Accessibility skip link */
.kle-skip { position: absolute; left: -9999px; top: 0; z-index: 100; background: #F5F2EC; color: #050505; padding: 14px 28px; font-size: 13px; letter-spacing: 0.2em; text-transform: uppercase; }
.kle-skip:focus { left: 0; }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  * { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; }
}

/* ADA modes */
body.ada-big { zoom: 1.2; }
body.ada-underline a { text-decoration: underline !important; }
body.ada-pause * { animation-play-state: paused !important; transition: none !important; }
body.ada-contrast h1, body.ada-contrast h2, body.ada-contrast h3, body.ada-contrast p,
body.ada-contrast span, body.ada-contrast a, body.ada-contrast label,
body.ada-contrast blockquote, body.ada-contrast div { color: #FFFFFF !important; }
body.ada-contrast .kle-light h2, body.ada-contrast .kle-light h3, body.ada-contrast .kle-light p,
body.ada-contrast .kle-light span, body.ada-contrast .kle-light div,
body.ada-contrast .kle-light blockquote { color: #000000 !important; }
body.ada-contrast .kle-ada-panel, body.ada-contrast .kle-ada-panel * { color: #000000 !important; }
body.ada-contrast .kle-ada-panel [aria-pressed="true"] { color: #FFFFFF !important; }

/* ADA widget */
.kle-ada-wrap { position: fixed; left: 22px; bottom: 22px; z-index: 70; display: flex; flex-direction: column; gap: 12px; align-items: flex-start; }
.kle-ada-panel { display: none; background: #F5F2EC; color: #0A0A0A; padding: 22px; width: 250px; flex-direction: column; gap: 10px; box-shadow: 0 16px 48px rgba(0,0,0,0.55); }
.kle-ada-panel p { margin: 0 0 6px; font-size: 12px; letter-spacing: 0.3em; text-transform: uppercase; font-weight: 500; }
.kle-ada-opt { display: block; width: 100%; text-align: left; padding: 11px 14px; border: 1px solid rgba(10,10,10,0.4); background: transparent; color: #0A0A0A; font-family: 'Jost', sans-serif; font-size: 12px; letter-spacing: 0.16em; text-transform: uppercase; cursor: pointer; }
.kle-ada-opt.is-on { background: #0A0A0A; color: #F5F2EC; }
.kle-ada-opt.kle-ada-reset { border-style: dashed; margin-top: 4px; }
.kle-ada-toggle { width: 54px; height: 54px; border-radius: 50%; background: #F5F2EC; color: #050505; border: none; cursor: pointer; display: flex; align-items: center; justify-content: center; box-shadow: 0 10px 28px rgba(0,0,0,0.55); }

@media (max-width: 640px) {
  .kle-ada-wrap { left: 14px; bottom: 14px; }
  .kle-ada-toggle { width: 44px; height: 44px; }
}

/* Honeypot spam trap - visually hidden field */
.kle-hp { position: absolute !important; left: -9999px !important; top: -9999px !important; height: 0 !important; width: 0 !important; overflow: hidden !important; }

/* Section dots (front page) */
.kle-dots { position: fixed; right: 22px; top: 50%; transform: translateY(-50%); z-index: 60; display: flex; flex-direction: column; gap: 16px; }
.kle-dot { width: 11px; height: 11px; border-radius: 50%; display: block; border: 1px solid rgba(245,242,236,0.8); background: rgba(245,242,236,0.15); transition: background 0.25s ease, border-color 0.25s ease, transform 0.25s ease; }
.kle-dot.is-active { background: #F5F2EC; transform: scale(1.25); }
.kle-dot.on-light { border-color: rgba(10,10,10,0.85); background: rgba(10,10,10,0.35); }
.kle-dot.on-light.is-active { background: #0A0A0A; }
@media (max-width: 900px) { .kle-dots { display: none !important; } }

/* Buttons */
.kle-cta {
  display: inline-block;
  padding: 18px 52px;
  border: 1px solid rgba(245,242,236,0.7);
  font-size: 12px;
  letter-spacing: 0.34em;
  text-transform: uppercase;
  color: #F5F2EC;
  background: rgba(5,5,5,0.25);
  transition: background 0.25s ease, color 0.25s ease, border-color 0.25s ease;
  cursor: pointer;
}
.kle-cta:hover { background: #F5F2EC; color: #050505; border-color: #F5F2EC; }

.kle-cta-solid {
  display: inline-block;
  padding: 18px 52px;
  background: #F5F2EC;
  color: #050505;
  border: 1px solid #F5F2EC;
  font-family: 'Jost', sans-serif;
  font-size: 12px;
  letter-spacing: 0.34em;
  text-transform: uppercase;
  cursor: pointer;
  transition: background 0.25s ease, color 0.25s ease;
}
.kle-cta-solid:hover { background: transparent; color: #F5F2EC; }

/* Form fields */
.kle-label { display: flex; flex-direction: column; gap: 10px; font-size: 11px; letter-spacing: 0.3em; text-transform: uppercase; color: rgba(245,242,236,0.6); }
.kle-field { background: transparent; border: none; border-bottom: 1px solid rgba(245,242,236,0.35); color: #F5F2EC; font-family: 'Jost', sans-serif; font-size: 16px; font-weight: 300; padding: 10px 0; outline: none; letter-spacing: 0.04em; border-radius: 0; }
.kle-field:focus { border-bottom-color: #F5F2EC; }
textarea.kle-field { resize: vertical; width: 100%; box-sizing: border-box; }

/* Contact Form 7 response message box */
.wpcf7-response-output {
  border: 1px solid #F5F2EC !important;
  color: #F5F2EC !important;
  background: transparent !important;
  border-radius: 2px;
  padding: 10px 16px !important;
  margin: 16px 0 0 !important;
  font-size: 14px;
  letter-spacing: 0.02em;
  font-weight: 300;
}

/* Form thank-you toggle */
.kle-thanks { display: none; }
.kle-form.is-sent { display: none !important; }
.kle-form.is-sent + .kle-thanks, .kle-thanks.is-visible { display: flex; }

/* Inquire modal */
.kle-modal { display: none; position: fixed; inset: 0; z-index: 90; align-items: center; justify-content: center; padding: 24px; }
.kle-modal.is-open { display: flex; }
.kle-modal-backdrop { position: absolute; inset: 0; background: rgba(5,5,5,0.82); backdrop-filter: blur(6px); }
.kle-modal-card { position: relative; background: #0A0A0A; border: 1px solid rgba(245,242,236,0.22); max-width: 980px; width: 100%; max-height: 90vh; overflow: auto; display: grid; grid-template-columns: minmax(260px, 1fr) minmax(300px, 1.2fr); box-shadow: 0 30px 90px rgba(0,0,0,0.7); }
.kle-modal-close { position: absolute; top: 14px; right: 14px; z-index: 2; width: 44px; height: 44px; background: rgba(5,5,5,0.5); color: #F5F2EC; border: 1px solid rgba(245,242,236,0.35); border-radius: 50%; font-size: 20px; line-height: 1; cursor: pointer; font-family: 'Jost', sans-serif; }
@media (max-width: 760px) { .kle-modal-card { grid-template-columns: 1fr; } .kle-modal-card .kle-modal-photo { min-height: 200px; } }

/* WordPress admin bar offset */
body.admin-bar .kle-skip:focus { top: 32px; }


/* ===== Mobile responsive fixes (added) ===== */
.kle-nav-toggle {
  display: none;
  flex-direction: column;
  justify-content: center;
  gap: 5px;
  width: 32px;
  height: 32px;
  background: none;
  border: none;
  cursor: pointer;
  padding: 0;
}
.kle-nav-toggle span {
  display: block;
  width: 100%;
  height: 2px;
  background: #F5F2EC;
  transition: transform 0.25s ease, opacity 0.25s ease;
}
.kle-nav-toggle-open span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.kle-nav-toggle-open span:nth-child(2) { opacity: 0; }
.kle-nav-toggle-open span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

@media (max-width: 860px) {
  header { position: relative !important; padding: 16px 20px !important; flex-wrap: wrap; z-index: 60; }
  .kle-logo { height: 64px !important; }
  .kle-nav-toggle { display: flex; position: relative; z-index: 61; }
  #kle-primary-nav {
    display: none !important;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    height: 100dvh;
    flex-direction: column !important;
    align-items: flex-start !important;
    justify-content: center !important;
    gap: 22px !important;
    padding: 110px 24px 36px !important;
    background: #050505;
    border-bottom: 1px solid rgba(245,242,236,0.14);
    overflow-y: auto;
    z-index: 50;
  }
  #kle-primary-nav.kle-nav-open { display: flex !important; }
}

/* Press ticker label should wrap on narrow screens */
@media (max-width: 700px) {
  p[style*="0.4em; text-transform: uppercase; color: rgba(245,242,236,0.5)"] {
    white-space: normal !important;
  }
}

/* Stack two-column / multi-column inline grid sections on mobile */
@media (max-width: 780px) {
  [style*="grid-template-columns: minmax(300px"],
  [style*="grid-template-columns: minmax(280px"],
  [style*="grid-template-columns: 1fr minmax(240px"],
  [style*="grid-template-columns: repeat(3, minmax(0, 1fr))"] {
    grid-template-columns: 1fr !important;
  }
}
@media (max-width: 600px) {
  [style*="grid-template-columns: 1fr 1fr"] {
    grid-template-columns: 1fr !important;
  }
}
