/*
Theme Name: Kavi + Numi's
Theme URI: https://example.com/
Author: Kavi + Numi's
Description: Custom WordPress theme converted from the supplied Kavi + Numi's single-page HTML design.
Version: 1.0.0
Requires at least: 6.0
Tested up to: 6.6
Requires PHP: 7.4
Text Domain: kavi-numis
*/

:root{
    --canopy:#164C3B;
    --canopy-800:#123E30;
    --canopy-deep:#0E3529;
    --kavi:#C84E16;
    --kavi-deep:#A83E10;
    --kavi-light:#E8823C;
    --numi:#D89B20;
    --teal:#3D8C83;
    --mango:#FFA51F;
    --orchid:#9A376A;
    --mist:#F4EDDF;
    --cream:#FBF6EC;
    --ink:#241F17;
    --ink-soft:#4C4535;
    --timber:#7A5433;
    --leaf:#5C9E6E;
    --nav-h:74px;
    --shadow:22px 28px 55px -28px rgba(14,53,41,.55);
    --shadow-sm:0 14px 30px -18px rgba(14,53,41,.45);
  }
  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    margin:0;background:var(--mist);color:var(--ink);
    font-family:"Nunito Sans",system-ui,-apple-system,"Segoe UI",sans-serif;
    font-size:18px;line-height:1.62;-webkit-font-smoothing:antialiased;
  }
  h1,h2,h3,.fred{font-family:"Fredoka","Nunito Sans",sans-serif;font-weight:600;line-height:1.04;letter-spacing:-.005em;margin:0;}
  p{margin:0 0 1rem;}
  a{color:inherit;text-decoration:none;}
  img,svg{display:block;max-width:100%;}
  .wrap{width:min(1180px,92vw);margin-inline:auto;}
  section{padding:5.2rem 0;scroll-margin-top:calc(var(--nav-h) + 8px);}

  /* leaf-plus device */
  .plus{display:inline-block;vertical-align:-.14em;}

  /* ---------- Buttons ---------- */
  .btn{display:inline-flex;align-items:center;gap:.5rem;font-family:"Nunito Sans";font-weight:800;font-size:1rem;
    padding:.85rem 1.55rem;border-radius:999px;border:2px solid transparent;cursor:pointer;line-height:1;
    transition:transform .18s ease,background .18s ease,box-shadow .18s ease;}
  .btn:focus-visible{outline:3px solid var(--mango);outline-offset:3px;}
  .btn-primary{background:var(--kavi);color:#fff;box-shadow:0 10px 22px -12px rgba(168,62,16,.9);}
  .btn-primary:hover{background:var(--kavi-deep);transform:translateY(-2px);}
  .btn-ghost{background:transparent;color:#fff;border-color:rgba(255,255,255,.6);}
  .btn-ghost:hover{background:rgba(255,255,255,.14);transform:translateY(-2px);}
  .btn-forest{background:var(--canopy);color:var(--cream);}
  .btn-forest:hover{background:var(--canopy-deep);transform:translateY(-2px);}
  .btn-gold{background:var(--numi);color:var(--canopy-deep);}
  .btn-gold:hover{background:#c98c17;transform:translateY(-2px);}

  /* ---------- Nav ---------- */
  header.nav{position:fixed;top:0;left:0;right:0;z-index:60;height:var(--nav-h);display:flex;align-items:center;
    transition:background .3s ease,box-shadow .3s ease;}
  header.nav::before{content:"";position:absolute;inset:0;z-index:-1;
    background:linear-gradient(to bottom,rgba(14,53,41,.72),rgba(14,53,41,0));opacity:1;transition:opacity .3s ease;}
  header.nav.solid{background:rgba(15,53,41,.96);box-shadow:0 8px 30px -18px rgba(0,0,0,.7);backdrop-filter:saturate(1.1) blur(6px);}
  header.nav.solid::before{opacity:0;}
  .nav-inner{display:flex;align-items:center;justify-content:space-between;width:min(1180px,92vw);margin-inline:auto;}
  .wordmark{font-family:"Fredoka";font-weight:700;font-size:1.55rem;letter-spacing:-.01em;display:inline-flex;align-items:center;gap:.08em;}
  .wordmark .wm-k{color:var(--kavi-light);} .wordmark .wm-n{color:var(--numi);} .wordmark .lp{margin:0 .12em;}
  nav.links{display:flex;align-items:center;gap:1.5rem;}
  nav.links a{color:#F3ECDD;font-weight:700;font-size:1rem;position:relative;padding:.2rem 0;}
  nav.links a::after{content:"";position:absolute;left:0;right:100%;bottom:-3px;height:2px;background:var(--mango);transition:right .25s ease;}
  nav.links a:hover::after,nav.links a:focus-visible::after{right:0;}
  nav.links a:focus-visible{outline:none;}
  .menu-btn{display:none;background:none;border:0;color:#fff;cursor:pointer;padding:.4rem;}

  /* ---------- Hero ---------- */
  .hero{position:relative;min-height:min(92vh,760px);display:flex;align-items:flex-end;overflow:hidden;background:var(--canopy-deep);}
  .hero-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 28%;}
  .hero-scrim{position:absolute;inset:0;background:
     linear-gradient(to top,rgba(11,40,28,.92) 0%,rgba(11,40,28,.55) 26%,rgba(11,40,28,0) 52%);}
  .hero-content{position:relative;z-index:2;width:min(1180px,92vw);margin:0 auto;padding:0 0 3rem;
    display:flex;justify-content:space-between;align-items:flex-end;gap:2rem;flex-wrap:wrap;color:#fff;}
  .hero-text{max-width:36rem;}
  .hero-eyebrow{font-family:"Nunito Sans";font-weight:800;color:var(--mango);letter-spacing:.01em;margin-bottom:.7rem;font-size:1.05rem;}
  .hero h1{font-size:clamp(2.8rem,6.2vw,5rem);font-weight:600;text-shadow:0 4px 30px rgba(0,0,0,.35);}
  .hero-sub{font-family:"Fredoka";font-weight:500;font-size:clamp(1.2rem,2.3vw,1.7rem);color:#F6E8C9;margin:.5rem 0 1.5rem;}
  .hero-cta{display:flex;gap:.8rem;flex-wrap:wrap;}
  .parent-strip{background:rgba(11,40,28,.62);border:1px solid rgba(255,255,255,.18);border-radius:18px;
    padding:.7rem .8rem;backdrop-filter:blur(4px);display:flex;flex-direction:column;gap:.35rem;min-width:210px;}
  .parent-strip .lead{font-weight:800;font-size:.74rem;letter-spacing:.08em;text-transform:uppercase;color:#BFD8C4;padding:.1rem .5rem;}
  .parent-strip .ps-links{display:flex;flex-wrap:wrap;gap:.15rem;}
  .parent-strip a{font-weight:700;padding:.4rem .75rem;border-radius:10px;font-size:.95rem;color:#fff;transition:background .18s ease;}
  .parent-strip a:hover{background:rgba(255,255,255,.14);}

  /* ---------- Section heads ---------- */
  .kicker{font-family:"Nunito Sans";font-weight:800;font-size:1rem;letter-spacing:.01em;margin-bottom:.55rem;color:var(--canopy);}
  .section-head{max-width:42rem;margin-bottom:2.8rem;}
  .section-head h2{font-size:clamp(2rem,4.2vw,3.1rem);color:var(--canopy);}
  .section-head p{color:var(--ink-soft);font-size:1.12rem;margin-top:.9rem;}

  /* ---------- Promise ---------- */
  .promise{background:var(--cream);}
  .promise-top{text-align:center;max-width:37rem;margin:0 auto 3rem;}
  .promise-top h2{font-size:clamp(2.2rem,4.6vw,3.4rem);color:var(--canopy);}
  .promise-top h2 .accent{color:var(--kavi);}
  .promise-top p{color:var(--ink-soft);font-size:1.14rem;margin-top:1rem;}
  .layer-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.4rem;}
  .layer{border-radius:26px;padding:2.2rem;}
  .layer.kids{background:linear-gradient(160deg,var(--canopy),var(--canopy-800));color:#F3ECDD;}
  .layer.grown{background:var(--mist);border:1.5px solid #E6D9BF;}
  .layer .who{font-weight:800;font-size:.82rem;letter-spacing:.05em;text-transform:uppercase;margin-bottom:.9rem;}
  .layer.kids .who{color:var(--mango);} .layer.grown .who{color:var(--teal);}
  .layer h3{font-size:1.7rem;margin-bottom:.9rem;} .layer.kids h3{color:#fff;} .layer.grown h3{color:var(--canopy);}
  .layer ul{list-style:none;margin:0;padding:0;display:grid;gap:.7rem;}
  .layer li{display:flex;gap:.7rem;align-items:flex-start;font-size:1.02rem;}
  .layer li svg{flex:none;margin-top:.28rem;}

  /* ---------- Zones ---------- */
  .zones{background:var(--canopy-deep);color:#F3ECDD;}
  .zones .kicker{color:var(--mango);}
  .zones .section-head h2{color:#fff;} .zones .section-head p{color:#CFE0D3;}
  .zones-head{display:grid;grid-template-columns:1.35fr .65fr;gap:2.4rem;align-items:center;margin-bottom:2.8rem;}
  .signpost-wrap{position:relative;justify-self:end;}
  .signpost-wrap img{width:min(300px,80%);border-radius:16px;box-shadow:var(--shadow);}
  .signpost-cap{margin-top:.8rem;color:#9FC4A6;font-family:"Fredoka";font-style:normal;font-size:1rem;text-align:center;}
  .zone-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.1rem;}
  .zone{background:linear-gradient(180deg,rgba(255,255,255,.06),rgba(255,255,255,.02));
    border:1px solid rgba(243,236,221,.14);border-radius:22px;padding:1.6rem;
    transition:transform .2s ease,border-color .2s ease,background .2s ease;}
  .zone:hover{transform:translateY(-4px);border-color:rgba(255,165,31,.55);background:linear-gradient(180deg,rgba(255,255,255,.1),rgba(255,255,255,.03));}
  .zone .badge{width:52px;height:52px;border-radius:14px;display:grid;place-items:center;margin-bottom:1rem;}
  .zone h3{font-size:1.45rem;color:#fff;}
  .zone .func{display:inline-block;margin-top:.55rem;font-weight:700;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;
    color:#9FC4A6;border:1px solid rgba(159,196,166,.4);border-radius:999px;padding:.24rem .7rem;}
  .zone p{color:#D6E4D8;margin:1rem 0 0;font-size:.97rem;}
  .zones-cta{text-align:center;margin-top:2.6rem;}
  .zones-cta .paws{color:#9FC4A6;font-family:"Fredoka";font-size:1.15rem;margin-top:1rem;}

  /* ---------- Characters ---------- */
  .cast{background:var(--mist);}
  .cast-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;margin-top:.5rem;}
  .char{background:var(--cream);border-radius:28px;padding:2rem;border:1.5px solid #EADFC7;box-shadow:var(--shadow);
    display:grid;grid-template-columns:150px 1fr;gap:1.6rem;align-items:start;}
  .char .portrait{width:150px;height:150px;border-radius:50%;object-fit:cover;border:5px solid #fff;box-shadow:0 10px 24px -12px rgba(14,53,41,.5);}
  .char.kavi .portrait{outline:4px solid var(--kavi);outline-offset:-1px;}
  .char.numi .portrait{outline:4px solid var(--numi);outline-offset:-1px;}
  .char .role{font-weight:800;letter-spacing:.04em;text-transform:uppercase;font-size:.78rem;}
  .char.kavi .role{color:var(--kavi);} .char.numi .role{color:var(--timber);}
  .char h3{font-size:2.1rem;color:var(--canopy);margin:.15rem 0 .3rem;}
  .char .quote{font-family:"Fredoka";font-weight:500;font-size:1.3rem;color:var(--teal);margin-bottom:.7rem;}
  .char p{color:var(--ink-soft);font-size:1rem;margin:0;}
  .char .traits{display:flex;flex-wrap:wrap;gap:.45rem;margin-top:1rem;}
  .char .traits span{background:var(--mist);border:1px solid #E6D9BF;border-radius:999px;padding:.32rem .8rem;font-weight:700;font-size:.83rem;color:var(--ink-soft);}
  .friendship{text-align:center;max-width:36rem;margin:2.8rem auto 0;}
  .friendship p{font-family:"Fredoka";font-weight:500;font-size:1.5rem;color:var(--canopy);}

  /* ---------- Food ---------- */
  .food{background:var(--canopy-800);color:#F3ECDD;}
  .food-grid{display:grid;grid-template-columns:1fr 1fr;gap:2.6rem;align-items:center;}
  .food .kicker{color:var(--mango);} .food h2{color:#fff;font-size:clamp(2rem,4vw,3rem);}
  .food .breather{font-family:"Fredoka";font-weight:500;font-size:1.5rem;color:var(--numi);margin:1rem 0;}
  .food .lede{color:#E7DAC0;font-size:1.12rem;margin-bottom:1.6rem;}
  .menu-card{background:var(--cream);color:var(--ink);border-radius:26px;padding:1.9rem;box-shadow:var(--shadow);}
  .menu-card h3{color:var(--canopy);font-size:1.5rem;margin-bottom:.2rem;}
  .menu-card .sub{font-size:.9rem;color:var(--ink-soft);margin-bottom:1.1rem;}
  .menu-item{display:flex;align-items:baseline;gap:.6rem;padding:.65rem 0;border-bottom:1px dashed #E6D9BF;}
  .menu-item:last-child{border-bottom:0;}
  .menu-item .name{font-weight:800;} .menu-item small{display:block;font-weight:600;color:var(--ink-soft);font-size:.82rem;}
  .menu-item .dots{flex:1;border-bottom:2px dotted #DCceb0;transform:translateY(-4px);}
  .menu-item .price{font-weight:800;color:var(--kavi);}

  /* ---------- Shop ---------- */
  .shop{background:var(--mist);}
  .shop-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.1rem;margin-top:.5rem;}
  .product{background:var(--cream);border-radius:22px;overflow:hidden;border:1.5px solid #EADFC7;box-shadow:var(--shadow-sm);
    transition:transform .2s ease,box-shadow .2s ease;}
  .product:hover{transform:translateY(-5px);box-shadow:var(--shadow);}
  .product .pic{aspect-ratio:1/1;overflow:hidden;background:#EFE7D6;}
  .product .pic img{width:100%;height:100%;object-fit:cover;}
  .product .body{padding:1rem 1.1rem 1.2rem;}
  .product h3{font-size:1.15rem;color:var(--canopy);}
  .product .price{font-weight:800;color:var(--kavi);margin-top:.2rem;}
  .shop-note{display:flex;gap:1rem;align-items:center;margin-top:2rem;background:var(--cream);
    border:1.5px dashed var(--numi);border-radius:20px;padding:1.2rem 1.4rem;}
  .shop-note p{margin:0;color:var(--ink-soft);} .shop-note strong{color:var(--canopy);}

  /* ---------- Parties ---------- */
  .parties{background:var(--canopy-deep);color:#F3ECDD;}
  .parties .kicker{color:var(--mango);} .parties .section-head h2{color:#fff;} .parties .section-head p{color:#CFE0D3;}
  .party-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.1rem;}
  .party{background:linear-gradient(180deg,rgba(255,255,255,.06),rgba(255,255,255,.02));border:1px solid rgba(243,236,221,.14);
    border-radius:24px;padding:1.8rem;display:flex;flex-direction:column;position:relative;}
  .party.feature{background:linear-gradient(165deg,var(--kavi),var(--kavi-deep));border-color:transparent;}
  .party .tier{font-weight:800;text-transform:uppercase;letter-spacing:.05em;font-size:.76rem;color:var(--mango);}
  .party.feature .tier{color:#FFE8C9;}
  .party h3{font-size:1.5rem;color:#fff;margin:.35rem 0 .6rem;}
  .party .desc{color:#D6E4D8;font-size:.97rem;flex:1;} .party.feature .desc{color:#FBE9D6;}
  .party .tag{margin-top:1.1rem;font-weight:800;color:var(--mango);} .party.feature .tag{color:#fff;}
  .party .flag{position:absolute;top:1.1rem;right:1.1rem;background:var(--mango);color:var(--canopy-deep);font-weight:800;
    font-size:.7rem;text-transform:uppercase;letter-spacing:.04em;padding:.28rem .6rem;border-radius:999px;}
  .badge-note{display:flex;gap:1rem;align-items:center;margin-top:2rem;background:rgba(255,255,255,.05);
    border:1.5px dashed var(--numi);border-radius:20px;padding:1.2rem 1.4rem;}
  .badge-note p{margin:0;color:#DCE9DC;} .badge-note strong{color:#fff;}

  /* ---------- Find ---------- */
  .find{background:var(--mist);}
  .find-grid{display:grid;grid-template-columns:.95fr 1.05fr;gap:2.6rem;align-items:center;}
  .find-photo{border-radius:26px;overflow:hidden;box-shadow:var(--shadow);}
  .find-photo img{width:100%;display:block;}
  .find h2{color:var(--canopy);font-size:clamp(2rem,4vw,3rem);}
  .find p{color:var(--ink-soft);}
  .find-list{list-style:none;padding:0;margin:1.4rem 0;display:grid;gap:.9rem;}
  .find-list li{display:flex;gap:.75rem;align-items:flex-start;color:var(--ink);}
  .find-list li svg{flex:none;margin-top:.15rem;}
  .hours{display:grid;gap:.5rem;margin:1.2rem 0 1.4rem;max-width:22rem;}
  .hours div{display:flex;justify-content:space-between;border-bottom:1px dashed #E0D3B9;padding-bottom:.5rem;}
  .hours span:last-child{font-weight:800;color:var(--canopy);}
  .under-tree{font-family:"Fredoka";font-weight:500;color:var(--teal);font-size:1.2rem;}

  /* ---------- Footer ---------- */
  footer{background:var(--canopy-deep);color:#F3ECDD;padding:3.2rem 0 2rem;}
  .foot-grid{display:flex;justify-content:space-between;gap:2rem;flex-wrap:wrap;}
  .foot-brand .wordmark{font-size:1.7rem;margin-bottom:.5rem;}
  .foot-tag{font-family:"Fredoka";font-weight:500;font-size:1.35rem;color:var(--numi);}
  .foot-cols{display:flex;gap:3.4rem;flex-wrap:wrap;}
  .foot-col h4{font-size:.8rem;text-transform:uppercase;letter-spacing:.06em;color:#9FC4A6;margin:0 0 .8rem;font-family:"Nunito Sans";font-weight:800;}
  .foot-col a{display:block;color:#DCE9DC;padding:.28rem 0;font-weight:600;}
  .foot-col a:hover{color:var(--mango);}
  .foot-bottom{margin-top:2.6rem;padding-top:1.4rem;border-top:1px solid rgba(243,236,221,.14);
    display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;color:#8FAF97;font-size:.85rem;}
  .foot-bottom .calling{font-family:"Fredoka";color:#CFE0D3;}

  /* ---------- Pip game ---------- */
  .pip{position:absolute;cursor:pointer;background:none;border:0;padding:0;line-height:0;z-index:5;
    filter:drop-shadow(0 3px 5px rgba(0,0,0,.25));transition:transform .15s ease;}
  .pip:hover{transform:scale(1.15) rotate(-6deg);}
  .pip:focus-visible{outline:3px solid var(--mango);outline-offset:3px;border-radius:8px;}
  .pip.found{animation:pop .5s ease forwards;pointer-events:none;}
  @keyframes pop{40%{transform:scale(1.4) rotate(12deg);}100%{transform:scale(0) rotate(40deg);opacity:0;}}
  .pip-counter{position:fixed;right:16px;bottom:16px;z-index:70;background:var(--canopy-800);color:#F3ECDD;
    border:1.5px solid var(--mango);border-radius:999px;padding:.55rem 1rem;display:flex;align-items:center;gap:.5rem;font-weight:800;
    box-shadow:0 14px 30px -14px rgba(0,0,0,.6);}
  .pip-counter .n{color:var(--mango);}
  .pip-toast{position:fixed;left:50%;bottom:74px;transform:translateX(-50%) translateY(14px);background:var(--kavi);color:#fff;
    font-weight:800;padding:.75rem 1.3rem;border-radius:999px;box-shadow:var(--shadow);opacity:0;z-index:70;pointer-events:none;
    transition:opacity .3s ease,transform .3s ease;}
  .pip-toast.show{opacity:1;transform:translateX(-50%) translateY(0);}

  /* ---------- Responsive ---------- */
  @media(max-width:900px){
    .hero-content{flex-direction:column;align-items:flex-start;}
    .parent-strip{width:100%;}
    .layer-grid,.food-grid,.find-grid,.cast-grid{grid-template-columns:1fr;}
    .zones-head{grid-template-columns:1fr;} .signpost-wrap{justify-self:start;}
    .zone-grid,.party-grid{grid-template-columns:1fr 1fr;}
    .shop-grid{grid-template-columns:1fr 1fr;}
    .find-photo{order:-1;}
    nav.links{display:none;} .menu-btn{display:block;}
    nav.links.open{display:flex;position:absolute;top:var(--nav-h);left:0;right:0;flex-direction:column;align-items:flex-start;
      background:rgba(15,53,41,.98);padding:1rem 6vw 1.4rem;gap:.3rem;}
    nav.links.open a{padding:.55rem 0;font-size:1.1rem;}
  }
  @media(max-width:560px){
    body{font-size:17px;} section{padding:3.8rem 0;}
    .zone-grid,.party-grid,.shop-grid{grid-template-columns:1fr;}
    .char{grid-template-columns:1fr;justify-items:center;text-align:center;}
    .char .traits{justify-content:center;} .char.kavi,.char.numi{text-align:center;}
  }
  @media(prefers-reduced-motion:reduce){html{scroll-behavior:auto;} *{animation:none!important;}}
