/*
Theme Name: KeKe's Party Kart Elementor
Theme URI: https://example.com/
Author: TSERA Limited
Description: Lightweight premium WordPress theme for KeKe's Party Kart. The theme provides the site header and footer while all page content is designed with Elementor.
Version: 2.2.0
Requires at least: 6.0
Tested up to: 6.8
Requires PHP: 7.4
Text Domain: kekes-party-kart
*/

:root{
  --keke-navy:#101d4a;
  --keke-navy-deep:#0b1432;
  --keke-sage:#dbe5d7;
  --keke-sage-soft:#f1f5ee;
  --keke-sage-mid:#c5d4bf;
  --keke-ivory:#f8f4e9;
  --keke-cream:#fcfaf5;
  --keke-white:#ffffff;
  --keke-champagne:#d7bf91;
  --keke-gold:#c6a568;
  --keke-ink:#18213a;
  --keke-muted:#66706d;
  --keke-line:rgba(16,29,74,.11);
  --keke-shadow:0 24px 70px rgba(13,22,54,.11);
  --keke-shadow-lg:0 30px 85px rgba(13,22,54,.17);
  --keke-serif:Georgia,'Times New Roman',serif;
  --keke-sans:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;
}

html{scroll-behavior:smooth;scroll-padding-top:120px}
body{margin:0;overflow-x:hidden;background:var(--keke-cream)}
body.keke-nav-open{overflow:hidden}
*,*::before,*::after{box-sizing:border-box}
.keke-site-header img,.keke-site-footer img,.keke-mobile-menu img{display:block;max-width:100%}
.keke-site-header a,.keke-site-footer a,.keke-mobile-menu a{text-decoration:none}
.keke-container{width:min(1240px,calc(100% - 48px));margin-inline:auto}

/* Announcement */
.keke-announcement{
  min-height:34px;
  padding:8px 20px;
  text-align:center;
  background:var(--keke-navy);
  color:#fff8ec;
  font-family:var(--keke-sans);
  font-size:.66rem;
  line-height:1.45;
  font-weight:750;
  letter-spacing:.1em;
  text-transform:uppercase;
}

/* Header */
.keke-site-header{
  position:sticky;
  top:0;
  z-index:1000;
  background:rgba(255,255,255,.96);
  border-bottom:1px solid rgba(198,165,104,.18);
  -webkit-backdrop-filter:blur(18px);
  backdrop-filter:blur(18px);
  font-family:var(--keke-sans);
}
body.admin-bar .keke-site-header{top:32px}
.keke-navbar{
  min-height:88px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  position:relative;
}
.keke-brand{
  display:flex;
  align-items:center;
  gap:13px;
  min-width:max-content;
  color:var(--keke-navy);
}
.keke-brand:hover{color:var(--keke-navy)}
.keke-brand-logo{
  width:58px;
  height:58px;
  object-fit:contain;
  border-radius:50%;
  box-shadow:0 8px 22px rgba(16,29,74,.08);
}
.keke-brand-wordmark{display:grid;line-height:1}
.keke-brand-wordmark strong{
  font-family:var(--keke-serif);
  font-size:1.42rem;
  color:var(--keke-navy);
  font-weight:500;
  letter-spacing:-.03em;
}
.keke-brand-wordmark small{
  font-family:var(--keke-sans);
  font-size:.54rem;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:#788477;
  margin-top:6px;
}

/* Desktop navigation */
.keke-desktop-nav{display:flex;align-items:center;gap:3px}
.keke-desktop-nav>a:not(.keke-nav-cta),
.keke-experience-trigger{
  position:relative;
  min-height:48px;
  padding:0 10px;
  border:0;
  background:transparent;
  color:#59616a;
  font-family:var(--keke-sans);
  font-size:.68rem;
  line-height:1.2;
  font-weight:800;
  letter-spacing:.075em;
  text-transform:uppercase;
  white-space:nowrap;
  cursor:pointer;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:5px;
  text-decoration:none;
}
.keke-desktop-nav>a:not(.keke-nav-cta)::after,
.keke-experience-trigger::after{
  content:"";
  position:absolute;
  left:10px;
  right:10px;
  bottom:5px;
  height:1px;
  background:var(--keke-navy);
  transform:scaleX(0);
  transform-origin:right;
  transition:.24s ease;
}
.keke-desktop-nav>a:not(.keke-nav-cta):hover::after,
.keke-desktop-nav>a.keke-active::after,
.keke-experience-menu:hover .keke-experience-trigger::after,
.keke-experience-menu.keke-open .keke-experience-trigger::after,
.keke-experience-menu.keke-active .keke-experience-trigger::after{
  transform:scaleX(1);
  transform-origin:left;
}
.keke-desktop-nav>a:hover,
.keke-desktop-nav>a.keke-active,
.keke-experience-menu:hover .keke-experience-trigger,
.keke-experience-menu.keke-open .keke-experience-trigger,
.keke-experience-menu.keke-active .keke-experience-trigger{color:var(--keke-navy)}
.keke-experience-trigger svg{width:14px;height:14px;fill:var(--keke-gold);transition:transform .22s ease}
.keke-experience-menu.keke-open .keke-experience-trigger svg,
.keke-experience-menu:hover .keke-experience-trigger svg{transform:rotate(180deg)}
.keke-experience-menu{position:relative}

/* Premium Experiences mega menu */
.keke-experience-mega{
  position:absolute;
  top:calc(100% + 14px);
  left:50%;
  width:min(760px,calc(100vw - 48px));
  transform:translate(-50%,12px);
  padding:12px;
  border-radius:25px;
  background:rgba(255,255,255,.995);
  border:1px solid rgba(16,29,74,.09);
  box-shadow:0 28px 78px rgba(11,20,50,.18);
  display:grid;
  grid-template-columns:.82fr 1.18fr;
  gap:10px;
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity .22s ease,transform .22s ease,visibility .22s ease;
}
.keke-experience-mega::before{
  content:"";
  position:absolute;
  left:0;right:0;top:-18px;height:20px;
}
.keke-experience-menu:hover .keke-experience-mega,
.keke-experience-menu:focus-within .keke-experience-mega,
.keke-experience-menu.keke-open .keke-experience-mega{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
  transform:translate(-50%,0);
}
.keke-mega-intro{
  border-radius:18px;
  padding:28px;
  background:linear-gradient(145deg,var(--keke-sage),var(--keke-sage-soft));
  display:flex;
  flex-direction:column;
  justify-content:center;
  min-height:320px;
}
.keke-mega-kicker{
  font-size:.6rem;
  line-height:1.4;
  text-transform:uppercase;
  letter-spacing:.15em;
  font-weight:850;
  color:#657266;
}
.keke-mega-intro h3{
  margin:14px 0 12px;
  font-family:var(--keke-serif);
  font-size:2rem;
  line-height:1.02;
  font-weight:500;
  letter-spacing:-.035em;
  color:var(--keke-navy);
}
.keke-mega-intro p{
  margin:0;
  font-size:.73rem;
  line-height:1.7;
  color:#5f695f;
}
.keke-mega-call{
  margin-top:22px;
  color:var(--keke-navy)!important;
  font-size:.64rem;
  line-height:1.3;
  font-weight:850;
  letter-spacing:.08em;
  text-transform:uppercase;
  display:inline-flex;
  align-items:center;
  gap:8px;
}
.keke-mega-call span{color:var(--keke-gold);font-size:1rem}
.keke-mega-links{display:grid;gap:3px}
.keke-mega-links>a{
  min-height:58px;
  padding:10px 12px;
  border-radius:14px;
  display:grid;
  grid-template-columns:31px 1fr 22px;
  gap:9px;
  align-items:center;
  color:var(--keke-navy);
  transition:.2s ease;
}
.keke-mega-links>a:hover,
.keke-mega-links>a.keke-active{background:var(--keke-ivory)}
.keke-mega-number{font-size:.55rem;letter-spacing:.08em;color:var(--keke-gold);font-weight:850}
.keke-mega-copy{display:grid;gap:2px}
.keke-mega-copy strong{font-family:var(--keke-serif);font-size:1.05rem;font-weight:600;letter-spacing:-.015em}
.keke-mega-copy small{font-size:.61rem;line-height:1.4;color:#7a817d}
.keke-mega-arrow{font-size:1rem;color:var(--keke-gold);transition:transform .2s ease}
.keke-mega-links>a:hover .keke-mega-arrow{transform:translateX(3px)}

/* Buttons */
.keke-btn{
  min-height:48px;
  padding:13px 22px;
  border:0;
  border-radius:999px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  font-family:var(--keke-sans);
  font-size:.68rem;
  line-height:1;
  text-transform:uppercase;
  letter-spacing:.09em;
  font-weight:850;
  transition:.25s ease;
  text-decoration:none;
}
.keke-btn-primary,
.keke-btn-primary:link,
.keke-btn-primary:visited{
  background:var(--keke-navy);
  color:#fff!important;
  box-shadow:0 12px 25px rgba(16,29,74,.16);
  -webkit-tap-highlight-color:transparent;
}
.keke-btn-primary:hover,
.keke-btn-primary:focus{
  background:#b28e4f;
  color:#fff!important;
  transform:translateY(-2px);
  box-shadow:0 14px 30px rgba(142,108,53,.24);
}
.keke-btn-primary:active{
  background:#9d793d;
  color:#fff!important;
  transform:translateY(0);
}
.keke-nav-cta,
.keke-nav-cta:link,
.keke-nav-cta:visited,
.keke-nav-cta:hover,
.keke-nav-cta:focus,
.keke-nav-cta:active{
  color:#fff!important;
}
.keke-nav-cta{margin-left:7px}
.keke-nav-cta:focus-visible{
  outline:3px solid rgba(198,165,104,.35);
  outline-offset:3px;
}

/* Header hamburger */
.keke-menu-toggle{
  display:none;
  align-items:center;
  justify-content:center;
  position:relative;
  width:46px;
  height:46px;
  padding:0;
  border:1px solid var(--keke-line);
  border-radius:50%;
  background:var(--keke-ivory);
  color:var(--keke-navy);
  cursor:pointer;
}
.keke-menu-toggle span,.keke-menu-toggle::before,.keke-menu-toggle::after{
  content:"";
  display:block;
  width:18px;
  height:1.5px;
  background:currentColor;
  position:absolute;
  transition:.25s;
}
.keke-menu-toggle::before{transform:translateY(-5px)}
.keke-menu-toggle::after{transform:translateY(5px)}
.keke-menu-toggle.keke-active span{opacity:0}
.keke-menu-toggle.keke-active::before{transform:rotate(45deg)}
.keke-menu-toggle.keke-active::after{transform:rotate(-45deg)}

/* Full-screen mobile menu */
.keke-mobile-menu{
  position:fixed;
  inset:0;
  z-index:2000;
  background:var(--keke-cream);
  font-family:var(--keke-sans);
  color:var(--keke-navy);
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transform:translateY(-10px);
  transition:opacity .28s ease,transform .28s ease,visibility .28s ease;
  overflow:auto;
  overscroll-behavior:contain;
}
.keke-mobile-menu.keke-open{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
  transform:none;
}
.keke-mobile-menu-top{
  min-height:90px;
  width:min(100% - 36px,900px);
  margin:0 auto;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  border-bottom:1px solid var(--keke-line);
}
.keke-mobile-brand{display:flex;align-items:center;gap:12px;color:var(--keke-navy)}
.keke-mobile-brand img{width:52px;height:52px;border-radius:50%;object-fit:contain}
.keke-mobile-brand span{display:grid;line-height:1}
.keke-mobile-brand strong{font-family:var(--keke-serif);font-size:1.26rem;font-weight:500;letter-spacing:-.025em}
.keke-mobile-brand small{font-size:.48rem;letter-spacing:.17em;text-transform:uppercase;color:#788477;margin-top:6px}
.keke-mobile-close{
  width:46px;height:46px;border-radius:50%;border:1px solid var(--keke-line);background:#fff;color:var(--keke-navy);position:relative;cursor:pointer;flex:0 0 auto
}
.keke-mobile-close::before,.keke-mobile-close::after{content:"";position:absolute;left:13px;right:13px;top:22px;height:1.5px;background:currentColor}
.keke-mobile-close::before{transform:rotate(45deg)}
.keke-mobile-close::after{transform:rotate(-45deg)}
.keke-mobile-menu-body{
  width:min(900px,calc(100% - 36px));
  margin:0 auto;
  padding:34px 0 46px;
  display:grid;
  grid-template-columns:.78fr 1.22fr;
  gap:36px;
}
.keke-mobile-main-links{display:grid;align-content:start}
.keke-mobile-main-links>a{
  min-height:70px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  border-bottom:1px solid var(--keke-line);
  color:var(--keke-navy);
  font-family:var(--keke-serif);
  font-size:1.9rem;
  line-height:1;
  letter-spacing:-.03em;
}
.keke-mobile-main-links>a>span:last-child{font-family:var(--keke-sans);font-size:.53rem;letter-spacing:.12em;color:#a38b61;font-weight:850}
.keke-mobile-main-links>a.keke-active{color:#7b684a}
.keke-mobile-experiences{min-width:0}
.keke-mobile-section-label{display:flex;justify-content:space-between;align-items:end;gap:20px;padding-bottom:13px;border-bottom:1px solid var(--keke-line)}
.keke-mobile-section-label span{font-size:.64rem;text-transform:uppercase;letter-spacing:.16em;font-weight:850}
.keke-mobile-section-label small{font-size:.58rem;color:#8a918a;text-transform:uppercase;letter-spacing:.09em}
.keke-mobile-experience-links{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:12px}
.keke-mobile-experience-links>a{
  min-height:112px;
  padding:18px;
  border-radius:18px;
  border:1px solid var(--keke-line);
  background:#fff;
  color:var(--keke-navy);
  display:grid;
  grid-template-columns:1fr auto;
  grid-template-rows:auto 1fr;
  align-items:start;
  gap:6px 12px;
}
.keke-mobile-experience-links>a>span{font-family:var(--keke-serif);font-size:1.28rem;line-height:1;font-weight:600;letter-spacing:-.02em}
.keke-mobile-experience-links>a>small{font-size:.61rem;line-height:1.45;color:#7a827c;align-self:end}
.keke-mobile-experience-links>a>b{grid-column:2;grid-row:1 / span 2;align-self:center;font-size:1rem;color:var(--keke-gold)}
.keke-mobile-experience-links>a.keke-active{background:var(--keke-sage);border-color:rgba(16,29,74,.08)}
.keke-mobile-call-card{
  grid-column:1/-1;
  margin-top:8px;
  border-radius:22px;
  padding:24px 26px;
  background:var(--keke-navy);
  color:#fff;
  display:grid;
  grid-template-columns:1fr auto;
  gap:5px 24px;
  align-items:center;
}
.keke-mobile-call-card>span{font-size:.58rem;text-transform:uppercase;letter-spacing:.14em;color:#decaa1;font-weight:800}
.keke-mobile-call-card>strong{font-family:var(--keke-serif);font-size:1.5rem;font-weight:500;grid-column:1}
.keke-mobile-call-card>a,
.keke-mobile-call-card>a:link,
.keke-mobile-call-card>a:visited{grid-column:2;grid-row:1/span 2;color:#fff!important;border:1px solid rgba(255,255,255,.22);border-radius:999px;padding:13px 17px;font-size:.62rem;letter-spacing:.08em;text-transform:uppercase;font-weight:850;white-space:nowrap;transition:.22s ease}
.keke-mobile-call-card>a:hover,
.keke-mobile-call-card>a:focus{background:#b28e4f;color:#fff!important;border-color:#b28e4f}
.keke-mobile-call-card>a:active{background:#9d793d;color:#fff!important;border-color:#9d793d}
.keke-mobile-call-card a b{color:var(--keke-champagne);margin-left:5px}

/* Elementor content area: intentionally unstyled/full width */
.keke-elementor-main{width:100%;max-width:none;margin:0;padding:0;overflow:clip}
#our-story{scroll-margin-top:120px}

/* Footer */
.keke-site-footer{
  background:var(--keke-navy-deep);
  color:#fff;
  padding:48px 0 28px;
  font-family:var(--keke-sans);
}
.keke-footer-topline{
  padding-bottom:26px;
  margin-bottom:44px;
  border-bottom:1px solid rgba(255,255,255,.09);
  display:flex;
  justify-content:space-between;
  gap:20px;
  align-items:center;
}
.keke-footer-topline span:first-child{font-family:var(--keke-serif);font-size:1.35rem;color:#fff}
.keke-footer-topline span:last-child{font-size:.6rem;letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.45)}
.keke-footer-grid{
  display:grid;
  grid-template-columns:1.35fr .62fr .72fr .92fr;
  gap:46px;
}
.keke-footer-brand{display:flex;align-items:center;gap:14px;margin-bottom:18px;color:#fff}
.keke-footer-brand img{width:72px;height:72px;border-radius:50%;object-fit:contain}
.keke-footer-brand>span{display:grid;line-height:1}
.keke-footer-brand strong{font-family:var(--keke-serif);font-size:1.72rem;font-weight:400}
.keke-footer-brand small{font-size:.5rem;text-transform:uppercase;letter-spacing:.16em;color:#9ca49e;margin-top:6px}
.keke-site-footer p{font-size:.76rem;line-height:1.75;color:rgba(255,255,255,.58);max-width:360px;margin:0}
.keke-site-footer h4{font-size:.64rem;text-transform:uppercase;letter-spacing:.14em;color:#ddc59a;margin:9px 0 18px}
.keke-footer-links{display:grid;gap:10px}
.keke-footer-links a,.keke-footer-links span{font-size:.74rem;line-height:1.55;color:rgba(255,255,255,.66);text-decoration:none}
.keke-footer-links a:hover{color:#fff}
.keke-footer-contact .keke-footer-service-area{max-width:230px}
.keke-footer-phone{display:inline-block;margin-top:18px;color:#fff!important;font-family:var(--keke-serif);font-size:1.55rem;line-height:1;font-weight:500}
.keke-footer-phone-note{display:block;margin-top:9px;font-size:.64rem;line-height:1.55;color:rgba(255,255,255,.45);max-width:210px}

/* Social media icons in footer */
.keke-socials{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-top:22px}
.keke-social-link{
  width:40px;height:40px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;
  color:#fff!important;background:rgba(255,255,255,.055);border:1px solid rgba(255,255,255,.14);transition:.22s ease
}
.keke-social-link svg{width:17px;height:17px;fill:currentColor}
a.keke-social-link:hover{transform:translateY(-2px);background:var(--keke-sage);border-color:var(--keke-sage);color:var(--keke-navy)!important}
.keke-social-placeholder{opacity:.58;cursor:default}

.keke-copyright{
  margin-top:48px;
  padding-top:22px;
  border-top:1px solid rgba(255,255,255,.09);
  display:flex;
  justify-content:space-between;
  gap:20px;
  color:rgba(255,255,255,.38);
  font-size:.63rem;
}

/* Simple fallback content styling for non-Elementor pages */
.keke-fallback-content{width:min(900px,calc(100% - 48px));margin:80px auto;font-family:var(--keke-sans);color:var(--keke-ink)}
.keke-fallback-content h1,.keke-fallback-content h2,.keke-fallback-content h3{font-family:var(--keke-serif);color:var(--keke-navy)}

@media(max-width:1210px){
  .keke-brand-wordmark{display:none}
  .keke-desktop-nav>a:not(.keke-nav-cta),.keke-experience-trigger{font-size:.63rem;padding-inline:8px}
  .keke-nav-cta{padding-inline:18px}
}

@media(max-width:1024px){
  .keke-desktop-nav{display:none}
  .keke-menu-toggle{display:flex}
  .keke-footer-grid{grid-template-columns:1.15fr .85fr .85fr}
  .keke-footer-contact{grid-column:1/-1;padding-top:22px;border-top:1px solid rgba(255,255,255,.08)}
}

@media(max-width:782px){body.admin-bar .keke-site-header{top:46px}}

@media(max-width:720px){
  .keke-container{width:min(100% - 28px,1240px)}
  .keke-announcement{font-size:.57rem;letter-spacing:.065em;padding-inline:14px}
  .keke-navbar{min-height:78px}
  .keke-brand-logo{width:52px;height:52px}
  .keke-mobile-menu-top{min-height:82px;width:calc(100% - 28px)}
  .keke-mobile-brand img{width:48px;height:48px}
  .keke-mobile-brand small{display:none}
  .keke-mobile-menu-body{width:calc(100% - 28px);padding-top:24px;grid-template-columns:1fr;gap:28px}
  .keke-mobile-main-links>a{min-height:62px;font-size:1.72rem}
  .keke-mobile-experiences{grid-row:2}
  .keke-mobile-experience-links{grid-template-columns:1fr}
  .keke-mobile-experience-links>a{min-height:88px}
  .keke-mobile-call-card{grid-column:auto;grid-template-columns:1fr;padding:22px}
  .keke-mobile-call-card>strong{grid-column:1}
  .keke-mobile-call-card>a{grid-column:1;grid-row:auto;margin-top:12px;text-align:center}
  .keke-footer-topline{display:block}
  .keke-footer-topline span:last-child{display:block;margin-top:8px}
  .keke-footer-grid{grid-template-columns:1fr 1fr;gap:34px 28px}
  .keke-footer-about{grid-column:1/-1}
  .keke-footer-contact{grid-column:1/-1}
  .keke-copyright{flex-direction:column}
  .keke-site-footer{padding-top:42px}
}

@media(max-width:460px){
  .keke-mobile-brand strong{font-size:1.08rem}
  .keke-footer-grid{grid-template-columns:1fr}
  .keke-footer-about,.keke-footer-contact{grid-column:auto}
}

@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .keke-experience-mega,.keke-mobile-menu,.keke-social-link,.keke-btn{transition:none!important}
}
