*{margin:0;padding:0;box-sizing:border-box;}
:root{
  --pink:#FF6B9D;--pink-light:#FFB3D1;--pink-dark:#C94070;
  --purple:#9B59B6;--purple-light:#D7AEFB;--purple-dark:#6C3483;
  --teal:#00BFA5;--teal-light:#B2DFDB;--teal-dark:#00796B;
  --yellow:#FFD600;--yellow-dark:#F9A825;
  --orange:#FF7043;
  --gold:#C9A84C;--gold-dark:#8B6914;
  --offwhite:#FFF8FD;--cream:#FFF0F7;
  --black:#1a0a1e;--gray:#6B6B8A;--border:#E8C8F0;
}
html{scroll-behavior:smooth;}
body{font-family:'Nunito',sans-serif;background:var(--offwhite);color:var(--black);}

/* NAV */
nav{position:fixed;top:0;left:0;right:0;z-index:1000;background:linear-gradient(135deg,#2d0a4e,#4a1280);box-shadow:0 2px 20px rgba(155,89,182,.4);}
.nav-inner{max-width:1300px;margin:0 auto;padding:0 2rem;display:flex;align-items:center;justify-content:space-between;height:66px;}
.nav-logo{font-family:'Pacifico',cursive;font-size:1.3rem;color:var(--yellow);}
.nav-links{display:flex;gap:1.5rem;list-style:none;}
.nav-links a{color:rgba(255,255,255,.85);text-decoration:none;font-size:.75rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;transition:color .2s;}
.nav-links a:hover{color:var(--yellow);}
.nav-cta{background:linear-gradient(135deg,var(--pink),var(--orange));color:#fff;padding:.45rem 1.1rem;font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;text-decoration:none;font-weight:800;border-radius:25px;}

/* HERO */
.hero{min-height:100vh;background:linear-gradient(160deg,#2d0a4e 0%,#6a1b9a 40%,#ad1457 75%,#e91e63 100%);display:flex;align-items:center;justify-content:center;text-align:center;position:relative;overflow:hidden;padding-top:66px;}
.hero-confetti{position:absolute;inset:0;pointer-events:none;overflow:hidden;}
@keyframes fall{0%{transform:translateY(-20px) rotate(0);opacity:1;}100%{transform:translateY(110vh) rotate(720deg);opacity:.3;}}
.hero-content{position:relative;z-index:1;max-width:860px;padding:0 2rem;}
.hero-tag{display:inline-block;background:rgba(255,214,0,.2);border:1px solid rgba(255,214,0,.5);color:var(--yellow);font-size:.75rem;letter-spacing:.2em;text-transform:uppercase;font-weight:700;padding:.4rem 1.2rem;border-radius:20px;margin-bottom:1.25rem;}
.hero h1{font-family:'Pacifico',cursive;font-size:clamp(2.4rem,6vw,4.5rem);color:#fff;line-height:1.2;margin-bottom:1rem;text-shadow:2px 3px 0 rgba(0,0,0,.3);}
.hero h1 .accent{color:var(--yellow);}
.hero-sub{color:rgba(255,255,255,.8);font-size:1rem;line-height:1.8;max-width:580px;margin:0 auto 1.25rem;}
.hero-location{display:inline-flex;align-items:center;gap:.5rem;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.25);color:#fff;padding:.45rem 1.2rem;border-radius:20px;font-size:.83rem;font-weight:600;margin-bottom:1.75rem;}
.hero-badges{display:flex;gap:.75rem;justify-content:center;flex-wrap:wrap;margin-bottom:2rem;}
.hero-badge{background:rgba(255,255,255,.15);border:1px solid rgba(255,255,255,.3);color:#fff;padding:.35rem .9rem;border-radius:15px;font-size:.75rem;font-weight:700;}
.hero-btns{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;}
.btn-hero{background:linear-gradient(135deg,var(--yellow),var(--orange));color:var(--black);padding:.85rem 2rem;font-size:.88rem;font-weight:800;border:none;cursor:pointer;border-radius:30px;text-decoration:none;display:inline-block;box-shadow:0 4px 20px rgba(255,214,0,.4);}
.btn-hero-outline{background:transparent;border:2px solid rgba(255,255,255,.6);color:#fff;padding:.85rem 2rem;font-size:.88rem;font-weight:700;cursor:pointer;border-radius:30px;text-decoration:none;display:inline-block;}
.hero-photo-zone{position:absolute;bottom:2rem;right:2rem;z-index:10;}
.hero-upload-btn{background:rgba(255,255,255,.15);border:2px dashed rgba(255,255,255,.4);color:#fff;padding:.55rem 1rem;font-size:.7rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;border-radius:10px;display:flex;align-items:center;gap:.4rem;position:relative;overflow:hidden;}
.hero-upload-btn input{position:absolute;inset:0;opacity:0;cursor:pointer;}
.hero-uploaded-img{max-width:240px;max-height:150px;border-radius:8px;border:3px solid var(--yellow);display:block;margin-top:.5rem;}

/* ABOUT */
.about-strip{background:linear-gradient(135deg,#FFB3D1,#D7AEFB,#B2DFDB);padding:3rem 2rem;}
.about-inner{max-width:1100px;margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:3rem;align-items:center;}
.about-text h2{font-family:'Pacifico',cursive;font-size:clamp(1.5rem,3vw,2.2rem);color:#4a1280;margin-bottom:.85rem;}
.about-text p{font-size:.92rem;line-height:1.85;color:#3a1060;margin-bottom:.65rem;}
.about-badges{display:flex;flex-wrap:wrap;gap:.65rem;margin-top:1rem;}
.about-badge{background:white;border-radius:20px;padding:.4rem .9rem;font-size:.75rem;font-weight:700;color:#6C3483;}
.about-stats{display:grid;grid-template-columns:1fr 1fr;gap:1rem;}
.stat-card{background:white;border-radius:16px;padding:1.15rem;text-align:center;box-shadow:0 4px 16px rgba(0,0,0,.08);}
.stat-num{font-family:'Pacifico',cursive;font-size:1.8rem;line-height:1.1;}
.stat-label{font-size:.72rem;font-weight:700;color:var(--gray);margin-top:.2rem;text-transform:uppercase;letter-spacing:.05em;}

/* DELIVERY BANNER */
.delivery-banner{background:linear-gradient(135deg,#00BFA5,#4FC3F7);padding:2rem;}
.delivery-inner{max-width:1100px;margin:0 auto;display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:1.1rem;}
.delivery-card{background:rgba(255,255,255,.2);border:1px solid rgba(255,255,255,.35);border-radius:16px;padding:1.1rem 1.3rem;display:flex;align-items:flex-start;gap:.9rem;}
.delivery-icon{font-size:1.8rem;flex-shrink:0;}
.delivery-title{font-size:.82rem;font-weight:800;color:#fff;margin-bottom:.2rem;}
.delivery-desc{font-size:.75rem;color:rgba(255,255,255,.88);line-height:1.6;}

/* SECTIONS */
section{padding:5rem 2rem;}
.container{max-width:1200px;margin:0 auto;}
.sec-header{text-align:center;margin-bottom:2.5rem;}
.sec-tag{display:inline-block;background:var(--purple-light);color:var(--purple-dark);font-size:.68rem;font-weight:800;letter-spacing:.15em;text-transform:uppercase;padding:.3rem .85rem;border-radius:15px;margin-bottom:.7rem;}
.sec-title{font-family:'Pacifico',cursive;font-size:clamp(1.7rem,4vw,2.6rem);line-height:1.2;margin-bottom:.7rem;}
.sec-sub{color:var(--gray);line-height:1.8;max-width:580px;margin:0 auto;font-size:.92rem;}

/* INVENTORY */
#inventory{background:linear-gradient(180deg,#FFF0F7 0%,#F3E5FF 100%);}
.inv-header-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem;flex-wrap:wrap;gap:1rem;}
.cart-summary-pill{background:linear-gradient(135deg,var(--purple),var(--pink));color:#fff;padding:.7rem 1.4rem;border-radius:25px;font-size:.82rem;font-weight:700;}
.items-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:1.4rem;}
.item-card{background:#fff;border:2px solid transparent;border-radius:18px;padding:1.4rem;position:relative;transition:all .25s;box-shadow:0 4px 16px rgba(0,0,0,.06);}
.item-card:hover{transform:translateY(-3px);box-shadow:0 8px 28px rgba(155,89,182,.2);border-color:var(--purple-light);}
.item-badge{position:absolute;top:-.5rem;right:1rem;color:#fff;font-size:.63rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;padding:.28rem .75rem;border-radius:14px;}
.item-photo{width:100%;height:140px;border-radius:12px;margin-bottom:.9rem;display:flex;align-items:center;justify-content:center;font-size:3rem;overflow:hidden;position:relative;background:linear-gradient(135deg,#f3e5ff,#ffe0f7);}
.item-photo img{width:100%;height:100%;object-fit:cover;border-radius:12px;}
.item-photo-upload{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:rgba(155,89,182,.08);border-radius:12px;cursor:pointer;border:2px dashed var(--purple-light);}
.item-photo-upload:hover{background:rgba(155,89,182,.18);}
.item-photo-upload input{position:absolute;inset:0;opacity:0;cursor:pointer;}
.item-photo-upload span{font-size:.68rem;font-weight:700;color:var(--purple);text-transform:uppercase;letter-spacing:.07em;margin-top:.35rem;}
.item-name{font-size:1rem;font-weight:800;margin-bottom:.28rem;}
.item-desc{font-size:.78rem;color:var(--gray);margin-bottom:.8rem;line-height:1.55;}
.item-price{font-size:1.1rem;font-weight:800;color:var(--purple-dark);margin-bottom:.35rem;}
.item-avail{font-size:.73rem;color:var(--gray);margin-bottom:.8rem;}
.item-avail span{font-weight:700;color:var(--purple);}
.qty-control{display:flex;align-items:center;border-radius:12px;overflow:hidden;border:2px solid var(--purple-light);}
.qty-btn{width:36px;height:36px;border:none;background:var(--purple-light);cursor:pointer;font-size:1.15rem;color:var(--purple-dark);font-weight:700;transition:background .15s;}
.qty-btn:hover{background:var(--purple);color:#fff;}
.qty-num{flex:1;text-align:center;font-size:.92rem;font-weight:700;line-height:36px;background:#fff;}

/* LINENS */
#linens{background:linear-gradient(180deg,#F3E5FF 0%,#FFF0F7 100%);}
.linens-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:.9rem;margin-top:1.75rem;}
.linen-card{border:3px solid transparent;border-radius:14px;padding:.9rem;cursor:pointer;transition:all .2s;background:#fff;box-shadow:0 2px 10px rgba(0,0,0,.06);text-align:center;}
.linen-card.selected{border-color:var(--purple);box-shadow:0 0 0 3px rgba(155,89,182,.2);}
.linen-swatch{width:100%;height:56px;border-radius:9px;margin-bottom:.55rem;border:1px solid rgba(0,0,0,.08);}
.linen-name{font-size:.78rem;font-weight:700;margin-bottom:.18rem;}
.linen-price{font-size:.72rem;color:var(--purple-dark);font-weight:700;}
.linen-check{width:22px;height:22px;border:2px solid var(--border);border-radius:50%;margin:.45rem auto 0;display:flex;align-items:center;justify-content:center;font-size:.7rem;transition:all .2s;}
.linen-card.selected .linen-check{background:var(--purple);border-color:var(--purple);color:#fff;}

/* PACKAGES */
#packages{background:linear-gradient(160deg,#1a0a2e 0%,#4a1280 100%);}
#packages .sec-tag{background:rgba(255,214,0,.2);color:var(--yellow);}
#packages .sec-title{color:#fff;}
#packages .sec-sub{color:rgba(255,255,255,.6);}
.packages-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.4rem;}
.pkg-card{border:2px solid rgba(255,255,255,.12);border-radius:18px;overflow:hidden;position:relative;transition:all .25s;background:rgba(255,255,255,.05);}
.pkg-card:hover{border-color:rgba(255,214,0,.5);transform:translateY(-3px);}
.pkg-card.featured{border-color:var(--yellow);}
.pkg-photo{width:100%;height:150px;background:rgba(255,255,255,.06);display:flex;align-items:center;justify-content:center;font-size:3.2rem;position:relative;overflow:hidden;}
.pkg-photo img{width:100%;height:100%;object-fit:cover;}
.pkg-photo-upload{position:absolute;bottom:.5rem;right:.5rem;background:rgba(0,0,0,.55);border:1px solid rgba(255,255,255,.3);color:#fff;font-size:.62rem;font-weight:700;padding:.28rem .55rem;border-radius:7px;cursor:pointer;display:flex;align-items:center;gap:.3rem;text-transform:uppercase;}
.pkg-photo-upload input{position:absolute;inset:0;opacity:0;cursor:pointer;}
.pkg-featured-badge{position:absolute;top:1rem;left:50%;transform:translateX(-50%);background:var(--yellow);color:var(--black);font-size:.62rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;padding:.28rem .9rem;border-radius:14px;white-space:nowrap;z-index:2;}
.pkg-color-bar{height:4px;}
.pkg-body{padding:1.3rem;}
.pkg-name{font-size:1.1rem;font-weight:800;color:#fff;margin-bottom:.35rem;}
.pkg-desc{font-size:.78rem;color:rgba(255,255,255,.5);margin-bottom:1rem;line-height:1.65;}
.pkg-price-row{display:flex;align-items:baseline;gap:.55rem;margin-bottom:.75rem;flex-wrap:wrap;}
.pkg-amount{font-family:'Pacifico',cursive;font-size:1.9rem;color:var(--yellow);}
.pkg-was{font-size:.78rem;color:rgba(255,255,255,.28);text-decoration:line-through;}
.pkg-save{background:rgba(255,214,0,.18);color:var(--yellow);font-size:.63rem;font-weight:700;padding:.18rem .5rem;border-radius:10px;text-transform:uppercase;}
.pkg-table-choice{margin-bottom:1rem;}
.pkg-table-choice-label{font-size:.68rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.55);margin-bottom:.4rem;}
.pkg-table-select{width:100%;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.25);color:#fff;padding:.5rem .75rem;font-family:'Nunito',sans-serif;font-size:.8rem;border-radius:8px;outline:none;cursor:pointer;}
.pkg-table-select option{background:#2d0a4e;color:#fff;}
.pkg-price-note{font-size:.7rem;color:rgba(255,214,0,.7);margin-top:.3rem;min-height:1rem;}
.pkg-includes{list-style:none;margin-bottom:1.3rem;}
.pkg-includes li{font-size:.77rem;color:rgba(255,255,255,.68);padding:.32rem 0;border-bottom:1px solid rgba(255,255,255,.07);display:flex;align-items:flex-start;gap:.55rem;line-height:1.4;}
.pkg-includes li::before{content:'✦';color:var(--yellow);font-size:.58rem;flex-shrink:0;margin-top:.15rem;}
.pkg-btn{width:100%;background:linear-gradient(135deg,var(--pink),var(--purple));color:#fff;border:none;padding:.75rem;font-family:'Nunito',sans-serif;font-size:.8rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;border-radius:12px;transition:all .2s;}
.pkg-btn:hover{box-shadow:0 6px 20px rgba(155,89,182,.5);}

/* GAMES */
#birthday{background:linear-gradient(180deg,#FFF9E7 0%,#FFE0F7 100%);}
#birthday .sec-tag{background:#FFD6E8;color:#C94070;}
#birthday .sec-title{color:var(--pink-dark);}
.games-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:1.2rem;}
.game-card{background:#fff;border:3px solid transparent;border-radius:18px;padding:1.4rem;transition:all .25s;cursor:pointer;position:relative;box-shadow:0 4px 16px rgba(0,0,0,.06);}
.game-card:hover{transform:translateY(-2px);border-color:var(--pink-light);}
.game-card.selected{border-color:var(--pink);box-shadow:0 0 0 4px rgba(255,107,157,.15);}
.game-icon{font-size:2.3rem;margin-bottom:.7rem;}
.game-name{font-size:1rem;font-weight:800;margin-bottom:.3rem;}
.game-note{font-size:.75rem;color:var(--gray);line-height:1.55;margin-bottom:.7rem;}
.game-single{font-size:.78rem;color:var(--pink-dark);font-weight:700;}
.game-sel-btn{position:absolute;top:1rem;right:1rem;width:28px;height:28px;border:2px solid var(--border);background:#fff;cursor:pointer;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.85rem;transition:all .2s;}
.game-card.selected .game-sel-btn{background:var(--pink);border-color:var(--pink);color:#fff;}
.bday-note{background:#fff;border-left:4px solid var(--pink);border-radius:0 12px 12px 0;padding:1rem 1.2rem;font-size:.8rem;color:var(--gray);line-height:1.7;margin-top:1.75rem;}

/* NERF */
#nerf{background:linear-gradient(135deg,#0f0c29,#302b63,#24243e);}
#nerf .sec-tag{background:rgba(255,112,67,.25);color:#FF7043;}
#nerf .sec-title{color:#fff;}
#nerf .sec-sub{color:rgba(255,255,255,.5);}
.nerf-layout{display:grid;grid-template-columns:1fr 1fr;gap:3rem;align-items:start;}
.nerf-tiers{display:flex;flex-direction:column;gap:.9rem;margin-top:1.25rem;}
.nerf-tier{border:2px solid rgba(255,112,67,.25);border-radius:14px;padding:1.1rem 1.35rem;transition:all .2s;cursor:pointer;background:rgba(255,255,255,.04);}
.nerf-tier:hover,.nerf-tier.selected{border-color:#FF7043;background:rgba(255,112,67,.08);}
.nerf-tier-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem;}
.nerf-tier-name{font-size:.95rem;font-weight:800;color:#fff;}
.nerf-tier-price{font-family:'Pacifico',cursive;font-size:1.35rem;color:#FF7043;}
.nerf-tier-desc{font-size:.73rem;color:rgba(255,255,255,.45);margin-bottom:.65rem;}
.nerf-chairs-toggle{margin-top:.65rem;padding:.65rem;background:rgba(255,255,255,.06);border-radius:10px;border:1px solid rgba(255,112,67,.2);}
.nerf-chairs-label{font-size:.68rem;color:rgba(255,255,255,.55);font-weight:700;margin-bottom:.45rem;text-transform:uppercase;letter-spacing:.06em;}
.nerf-select{width:100%;background:rgba(255,255,255,.1);border:1px solid rgba(255,112,67,.3);color:#fff;padding:.45rem .7rem;font-family:'Nunito',sans-serif;font-size:.78rem;border-radius:8px;outline:none;cursor:pointer;}
.nerf-select option{background:#0f0c29;color:#fff;}
.nerf-photo-area{border:2px solid rgba(255,112,67,.2);border-radius:18px;overflow:hidden;background:rgba(255,255,255,.04);}
.nerf-photo-display{width:100%;height:200px;display:flex;align-items:center;justify-content:center;font-size:4.5rem;position:relative;overflow:hidden;}
.nerf-photo-display img{width:100%;height:100%;object-fit:cover;}
.nerf-upload-overlay{position:absolute;bottom:.65rem;right:.65rem;background:rgba(0,0,0,.6);border:1px solid rgba(255,112,67,.4);color:#FF7043;font-size:.65rem;font-weight:700;padding:.3rem .68rem;border-radius:7px;cursor:pointer;text-transform:uppercase;display:flex;align-items:center;gap:.3rem;}
.nerf-upload-overlay input{position:absolute;inset:0;opacity:0;cursor:pointer;}
.nerf-info{padding:1.1rem;}
.nerf-info-note{font-size:.77rem;color:rgba(255,255,255,.55);background:rgba(255,112,67,.07);border:1px solid rgba(255,112,67,.2);border-radius:12px;padding:.85rem 1rem;line-height:1.75;margin:.75rem 0 0;}
.nerf-add-btn{width:calc(100% - 2.5rem);margin:1rem 1.25rem 1.25rem;background:linear-gradient(135deg,#FF7043,#FF1744);color:#fff;border:none;padding:.8rem;font-family:'Nunito',sans-serif;font-size:.82rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;border-radius:12px;box-shadow:0 4px 16px rgba(255,112,67,.4);transition:all .2s;}

/* CART */
.cart-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.7);z-index:2000;align-items:flex-start;justify-content:flex-end;}
.cart-overlay.open{display:flex;}
.cart-panel{background:#fff;width:440px;max-width:100%;height:100vh;overflow-y:auto;padding:1.75rem;}
.cart-panel-title{font-family:'Pacifico',cursive;font-size:1.5rem;color:var(--purple);margin-bottom:1.3rem;padding-bottom:.9rem;border-bottom:2px solid var(--purple-light);}
.cart-item{display:flex;justify-content:space-between;align-items:center;padding:.65rem 0;border-bottom:1px solid #f0e0ff;}
.cart-item-name{font-size:.82rem;font-weight:700;}
.cart-item-price{font-weight:700;color:var(--purple-dark);}
.cart-row{display:flex;justify-content:space-between;padding:.42rem 0;font-size:.82rem;color:var(--gray);}
.cart-row.deposit{padding:.55rem 0;font-weight:700;color:var(--pink-dark);border-top:1px solid #f0e0ff;}
.cart-row.dmg{padding:.55rem 0;font-weight:700;color:#e65100;border-top:1px solid #ffe0cc;}
.cart-row.total{padding:.85rem 0;font-weight:800;font-size:1rem;border-top:2px solid #f0e0ff;}
.cart-warn{background:#fff3e0;border-left:3px solid var(--orange);padding:.55rem .85rem;font-size:.75rem;color:#e65100;font-weight:600;border-radius:0 8px 8px 0;margin:.5rem 0;}
.cart-note{font-size:.75rem;color:var(--gray);line-height:1.7;margin-bottom:1.1rem;padding:.7rem .95rem;background:var(--cream);border-left:4px solid var(--pink);border-radius:0 10px 10px 0;}
.cart-btn{width:100%;padding:.85rem;font-family:'Nunito',sans-serif;font-size:.8rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;transition:all .2s;margin-bottom:.7rem;border:none;border-radius:12px;}
.cart-btn-main{background:linear-gradient(135deg,var(--pink),var(--purple));color:#fff;}
.cart-btn-clear{background:#f5f5f5;color:var(--gray);border:1px solid #ddd;}
.cart-close-btn{position:absolute;top:1rem;right:450px;background:none;border:none;color:#fff;font-size:1.5rem;cursor:pointer;}
.cart-empty{text-align:center;color:var(--gray);padding:3rem 0;font-size:.88rem;}
.cart-trigger{position:fixed;bottom:2rem;right:2rem;z-index:999;background:linear-gradient(135deg,var(--pink),var(--purple));color:#fff;padding:.8rem 1.5rem;font-family:'Nunito',sans-serif;font-size:.75rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;display:flex;align-items:center;gap:.55rem;box-shadow:0 6px 24px rgba(155,89,182,.45);border-radius:30px;border:none;}
.cart-count{background:var(--yellow);color:var(--black);border-radius:50%;width:22px;height:22px;display:flex;align-items:center;justify-content:center;font-size:.7rem;font-weight:800;}

/* BOOKING WIZARD */
.booking-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.86);z-index:3000;align-items:center;justify-content:center;padding:1rem;}
.booking-overlay.open{display:flex;}
.booking-modal{background:#fff;width:780px;max-width:100%;max-height:92vh;overflow-y:auto;position:relative;border-radius:18px;overflow:hidden;}
.booking-modal-close{position:absolute;top:1rem;right:1rem;background:rgba(255,255,255,.2);border:none;font-size:1.2rem;cursor:pointer;color:#fff;z-index:10;width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;}
.booking-header{background:linear-gradient(135deg,#4a1280,#ad1457);padding:1.6rem 2rem;}
.booking-header-title{font-family:'Pacifico',cursive;font-size:1.6rem;color:#fff;}
.booking-header-sub{font-size:.75rem;color:rgba(255,255,255,.55);margin-top:.2rem;}
.booking-steps{display:flex;border-bottom:1px solid #f0e0ff;background:#fdf5ff;overflow-x:auto;}
.booking-step{flex:1;min-width:72px;padding:.75rem .3rem;text-align:center;font-size:.62rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--gray);border-bottom:3px solid transparent;transition:all .2s;white-space:nowrap;}
.booking-step.active{color:var(--purple);border-bottom-color:var(--purple);}
.booking-step.done{color:var(--teal-dark);}
.booking-body{padding:1.75rem;}
.step-panel{display:none;}
.step-panel.active{display:block;}
.field-group{margin-bottom:1.1rem;}
.field-label{font-size:.7rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--gray);margin-bottom:.38rem;display:block;}
.field-input{width:100%;border:2px solid var(--border);border-radius:10px;padding:.7rem .95rem;font-family:'Nunito',sans-serif;font-size:.85rem;color:var(--black);background:#fff;outline:none;transition:border-color .2s;}
.field-input:focus{border-color:var(--purple);}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:.9rem;}
.field-note{font-size:.7rem;color:var(--gray);margin-top:.3rem;line-height:1.5;}

/* CALENDAR */
.cal-wrap{border:2px solid var(--border);border-radius:14px;padding:1.1rem;background:#fdf5ff;}
.cal-nav{display:flex;justify-content:space-between;align-items:center;margin-bottom:.9rem;}
.cal-nav-btn{background:var(--purple-light);border:none;width:30px;height:30px;cursor:pointer;font-size:.95rem;color:var(--purple-dark);border-radius:8px;font-weight:700;}
.cal-nav-btn:hover{background:var(--purple);color:#fff;}
.cal-month{font-family:'Pacifico',cursive;font-size:1rem;color:var(--purple);}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;}
.cal-day-name{text-align:center;font-size:.6rem;font-weight:700;color:var(--gray);padding:.28rem 0;text-transform:uppercase;}
.cal-day{text-align:center;padding:.42rem .18rem;font-size:.8rem;font-weight:600;cursor:pointer;border-radius:7px;transition:all .15s;position:relative;}
.cal-day:hover:not(.cal-day-empty):not(.cal-day-past):not(.cal-day-full){background:var(--purple-light);color:var(--purple-dark);}
.cal-day.cal-day-empty,.cal-day.cal-day-past{color:#ccc;cursor:default;}
.cal-day.cal-day-full{color:#e53935;cursor:not-allowed;text-decoration:line-through;}
.cal-day.cal-day-selected{background:var(--purple);color:#fff;}
.cal-day.cal-day-today{color:var(--pink-dark);font-weight:800;}
.cal-day-dot{position:absolute;bottom:2px;left:50%;transform:translateX(-50%);width:5px;height:5px;border-radius:50%;}
.cal-sel{margin-top:.7rem;padding:.55rem .9rem;background:linear-gradient(135deg,#f3e5ff,#ffe0f7);border-radius:10px;font-size:.8rem;color:var(--purple-dark);font-weight:600;}
.cal-legend{display:flex;gap:1rem;margin-top:.65rem;font-size:.7rem;color:var(--gray);flex-wrap:wrap;}
.cal-legend-item{display:flex;align-items:center;gap:.35rem;}
.cal-legend-dot{width:10px;height:10px;border-radius:50%;}
.time-slots{margin-top:1rem;}
.time-slots-label{font-size:.7rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--gray);margin-bottom:.6rem;}
.time-slot-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:.55rem;}
.time-slot{border:2px solid var(--border);border-radius:10px;padding:.55rem .8rem;cursor:pointer;font-size:.78rem;font-weight:700;text-align:center;transition:all .2s;background:#fff;}
.time-slot:hover:not(.time-slot-taken){border-color:var(--purple);background:var(--cream);}
.time-slot.selected{border-color:var(--purple);background:var(--purple);color:#fff;}
.time-slot.time-slot-taken{background:#f5f5f5;color:#bbb;cursor:not-allowed;text-decoration:line-through;}

/* DELIVERY CHOICE */
.delivery-choice{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1.1rem;}
.delivery-opt{border:2px solid var(--border);border-radius:12px;padding:1.1rem;cursor:pointer;text-align:center;transition:all .2s;background:#fff;}
.delivery-opt:hover{border-color:var(--purple);}
.delivery-opt.selected{border-color:var(--purple);background:var(--cream);}
.delivery-opt-icon{font-size:1.8rem;margin-bottom:.4rem;}
.delivery-opt-name{font-size:.85rem;font-weight:800;margin-bottom:.2rem;}
.delivery-opt-desc{font-size:.72rem;color:var(--gray);line-height:1.55;}
.delivery-fee-box{background:linear-gradient(135deg,#fff9e7,#fff3e0);border:2px solid #ffe082;border-radius:12px;padding:.9rem 1.1rem;font-size:.8rem;color:#5d4037;line-height:1.75;margin-top:.75rem;}

/* PAYMENT */
.pay-tabs{display:flex;gap:.7rem;margin-bottom:1.3rem;}
.pay-tab{flex:1;padding:.7rem;border:2px solid var(--border);cursor:pointer;text-align:center;font-size:.75rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;transition:all .2s;background:#fff;border-radius:12px;}
.pay-tab.active{border-color:var(--purple);background:var(--cream);color:var(--purple-dark);}
.pay-panel{display:none;}
.pay-panel.active{display:block;}
.card-row{display:grid;grid-template-columns:2fr 1fr 1fr;gap:.7rem;}
.pay-secure{display:flex;align-items:center;gap:.45rem;font-size:.7rem;color:var(--gray);margin-top:.7rem;padding:.45rem .7rem;background:var(--cream);border-radius:10px;}
.zelle-box{border:2px solid var(--teal-light);border-radius:12px;padding:1.1rem;margin-bottom:.9rem;background:linear-gradient(135deg,#e0f7f4,#f3e5ff);}
.zelle-num{font-size:1.15rem;font-weight:800;color:var(--teal-dark);margin:.35rem 0 .18rem;}

/* UPLOAD */
.upload-zone{border:2px dashed var(--border);border-radius:12px;padding:1.75rem;text-align:center;cursor:pointer;transition:all .2s;position:relative;background:#fdf5ff;}
.upload-zone:hover{border-color:var(--purple);background:#f3e5ff;}
.upload-zone input[type=file]{position:absolute;inset:0;opacity:0;cursor:pointer;}
.upload-icon{font-size:2.2rem;margin-bottom:.45rem;}
.upload-text{font-size:.8rem;color:var(--gray);line-height:1.55;}
.upload-preview{margin-top:.55rem;font-size:.75rem;color:var(--purple-dark);font-weight:700;}

/* SIGNATURE */
.sig-wrap{border:2px solid var(--border);border-radius:12px;position:relative;background:#fff;overflow:hidden;}
.sig-canvas{display:block;width:100%;touch-action:none;}
.sig-clear{position:absolute;top:.45rem;right:.45rem;background:var(--cream);border:1px solid var(--border);padding:.22rem .58rem;font-size:.68rem;cursor:pointer;font-family:'Nunito',sans-serif;font-weight:700;letter-spacing:.06em;text-transform:uppercase;border-radius:8px;color:var(--gray);}
.sig-hint{font-size:.7rem;color:var(--gray);margin-top:.38rem;text-align:center;}

/* FORM BUTTONS */
.next-btn{width:100%;background:linear-gradient(135deg,var(--pink),var(--purple));color:#fff;border:none;padding:.85rem;font-family:'Nunito',sans-serif;font-size:.82rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;cursor:pointer;margin-top:1.35rem;border-radius:12px;}
.back-btn{width:100%;background:transparent;border:2px solid var(--border);color:var(--gray);padding:.7rem;font-family:'Nunito',sans-serif;font-size:.77rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;margin-top:.65rem;border-radius:12px;}
.policy-box{background:linear-gradient(135deg,#fffde7,#fff3e0);border:2px solid #ffe082;border-radius:12px;padding:1.1rem;font-size:.78rem;color:#5d4037;line-height:1.85;margin-bottom:1.3rem;}
.policy-box strong{color:#3e2723;display:block;font-size:.8rem;margin-bottom:.38rem;}
.step-summary{background:linear-gradient(135deg,var(--cream),#f3e5ff);border-radius:12px;padding:.95rem 1.1rem;font-size:.8rem;line-height:1.85;margin-bottom:1.3rem;border-left:4px solid var(--purple);}
.pending-box{background:linear-gradient(135deg,#e3f2fd,#e8f5e9);border:2px solid #81c784;border-radius:14px;padding:1.5rem;text-align:center;font-size:.9rem;color:#1b5e20;line-height:1.8;}
.pending-box .big-check{font-size:3rem;display:block;margin-bottom:.75rem;}
.pending-box strong{display:block;font-size:1.1rem;font-weight:800;margin-bottom:.5rem;color:#1a0a1e;}

/* INVOICE */
.invoice-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.87);z-index:4000;align-items:center;justify-content:center;padding:1rem;}
.invoice-overlay.open{display:flex;}
.invoice-modal{background:#fff;width:740px;max-width:100%;max-height:93vh;overflow-y:auto;border-radius:18px;overflow:hidden;}
.inv-actions{padding:.9rem 1.4rem;background:linear-gradient(135deg,#f3e5ff,#ffe0f7);display:flex;align-items:center;gap:.7rem;flex-wrap:wrap;}
.inv-print-btn{background:linear-gradient(135deg,var(--pink),var(--purple));color:#fff;border:none;padding:.55rem 1.3rem;font-family:'Nunito',sans-serif;font-size:.75rem;font-weight:800;cursor:pointer;border-radius:10px;}
.inv-close-btn{background:#fff;border:2px solid var(--border);padding:.55rem .9rem;font-family:'Nunito',sans-serif;font-size:.75rem;font-weight:700;cursor:pointer;color:var(--gray);border-radius:10px;}
.inv-doc{padding:2.25rem;font-size:.8rem;}
.inv-top{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1.75rem;padding-bottom:1.35rem;border-bottom:3px solid var(--pink);}
.inv-brand{font-family:'Pacifico',cursive;font-size:1.6rem;background:linear-gradient(135deg,var(--pink),var(--purple));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;}
.inv-brand-sub{font-size:.68rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--gray);margin-top:.22rem;}
.inv-meta-right{text-align:right;color:var(--gray);line-height:1.75;}
.inv-num{font-family:'Pacifico',cursive;font-size:1.05rem;color:var(--purple);display:block;margin-bottom:.22rem;}
.inv-badge{display:inline-block;padding:.18rem .7rem;font-size:.62rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;border-radius:12px;margin-top:.3rem;}
.inv-badge-pending{background:rgba(255,152,0,.18);color:#e65100;}
.inv-badge-signed{background:rgba(0,191,165,.15);color:var(--teal-dark);}
.inv-parties{display:grid;grid-template-columns:1fr 1fr;gap:1.75rem;margin-bottom:1.75rem;padding:1.1rem;background:#fdf5ff;border-radius:12px;}
.inv-party-label{font-size:.62rem;font-weight:700;letter-spacing:.17em;text-transform:uppercase;color:var(--purple);margin-bottom:.38rem;}
.inv-party-name{font-size:.92rem;font-weight:700;margin-bottom:.18rem;}
.inv-party-detail{color:var(--gray);line-height:1.65;font-size:.78rem;}
.inv-tbl{width:100%;border-collapse:collapse;margin-bottom:1.35rem;}
.inv-tbl th{background:linear-gradient(135deg,#4a1280,#ad1457);color:#fff;padding:.52rem .7rem;text-align:left;font-size:.64rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;}
.inv-tbl th:last-child{text-align:right;}
.inv-tbl td{padding:.52rem .7rem;border-bottom:1px solid #f0e0ff;vertical-align:top;}
.inv-tbl td:last-child{text-align:right;font-weight:700;}
.inv-totals-wrap{margin-left:auto;width:290px;}
.inv-tr{display:flex;justify-content:space-between;padding:.32rem 0;color:var(--gray);}
.inv-tr.dep{padding:.52rem 0;color:var(--pink-dark);font-weight:700;border-top:1px solid #f0e0ff;}
.inv-tr.dmg{padding:.52rem 0;color:#e65100;font-weight:700;border-top:1px solid #ffe0cc;}
.inv-tr.grand{padding:.65rem 0;font-weight:800;font-size:.92rem;color:var(--black);border-top:3px solid var(--purple);margin-top:.32rem;}
.inv-sec-title{font-size:.65rem;font-weight:700;letter-spacing:.17em;text-transform:uppercase;color:var(--purple);margin:.25rem 0 .8rem;margin-top:1.5rem;}
.inv-pay-grid{display:grid;grid-template-columns:1fr 1fr;gap:.9rem;margin-bottom:1.1rem;}
.inv-pay-box{border:2px solid var(--border);border-radius:11px;padding:.85rem;}
.inv-pay-icon{font-size:1.3rem;margin-bottom:.28rem;}
.inv-pay-name{font-size:.8rem;font-weight:700;margin-bottom:.18rem;}
.inv-pay-detail{font-size:.73rem;color:var(--gray);line-height:1.55;}
.inv-policy-box{background:linear-gradient(135deg,#fffde7,#fff3e0);border-radius:12px;padding:.95rem 1.1rem;font-size:.75rem;color:#5d4037;line-height:1.82;margin-bottom:1rem;}
.inv-policy-title{font-size:.65rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#3e2723;margin-bottom:.45rem;}
.inv-dmg-box{background:linear-gradient(135deg,#fff3e0,#fce4ec);border:2px solid #ffab91;border-radius:12px;padding:.95rem 1.1rem;font-size:.75rem;color:#bf360c;line-height:1.82;margin-bottom:1rem;}
.inv-dmg-title{font-size:.65rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#b71c1c;margin-bottom:.45rem;}
.inv-sig-sec{display:grid;grid-template-columns:1fr 1fr;gap:1.75rem;margin-top:1.75rem;padding-top:1.35rem;border-top:1px solid #f0e0ff;}
.inv-sig-box{text-align:center;}
.inv-sig-img{width:100%;max-height:68px;object-fit:contain;border-bottom:1px solid #333;margin-bottom:.38rem;}
.inv-sig-line{border-bottom:1px solid #333;height:68px;margin-bottom:.38rem;}
.inv-sig-label{font-size:.68rem;color:var(--gray);}
.inv-id-sec{margin-top:1.35rem;}
.inv-id-img{max-width:190px;max-height:95px;object-fit:contain;border:2px solid var(--border);padding:.22rem;border-radius:8px;}
.inv-footer{margin-top:1.75rem;padding-top:.9rem;border-top:1px solid #f0e0ff;text-align:center;font-size:.68rem;color:var(--gray);}
.inv-approval-banner{background:linear-gradient(135deg,#fff3e0,#fff8e1);border:2px solid var(--yellow-dark);border-radius:12px;padding:1rem 1.2rem;margin-bottom:1.25rem;font-size:.8rem;color:#5d4037;text-align:center;line-height:1.75;}

/* CONTACT */
#contact{background:linear-gradient(160deg,#f3e5ff 0%,#ffe0f7 100%);}
.contact-inner{display:grid;grid-template-columns:1fr 1fr;gap:3.5rem;margin-top:2.5rem;}
.contact-info-card,.contact-form-card{background:#fff;border-radius:18px;padding:1.75rem;box-shadow:0 8px 32px rgba(155,89,182,.1);}
.contact-info-card p{color:var(--gray);line-height:1.85;font-size:.88rem;margin-bottom:1.35rem;}
.contact-items{display:flex;flex-direction:column;gap:.85rem;}
.contact-item{display:flex;gap:.9rem;align-items:flex-start;}
.contact-icon{width:38px;height:38px;background:linear-gradient(135deg,var(--pink),var(--purple));border-radius:11px;display:flex;align-items:center;justify-content:center;font-size:.95rem;flex-shrink:0;color:#fff;}
.contact-text{font-size:.82rem;color:var(--gray);line-height:1.65;}
.contact-text strong{color:var(--black);display:block;font-size:.75rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;margin-bottom:.12rem;}
.contact-form-card form{display:flex;flex-direction:column;gap:.9rem;}
.contact-form-card input,.contact-form-card textarea,.contact-form-card select{width:100%;border:2px solid var(--border);border-radius:10px;padding:.75rem .95rem;font-family:'Nunito',sans-serif;font-size:.83rem;outline:none;transition:border-color .2s;background:#fdf5ff;color:var(--black);}
.contact-form-card input:focus,.contact-form-card textarea:focus,.contact-form-card select:focus{border-color:var(--purple);}
.contact-form-card select option{background:#fff;}
.contact-form-card textarea{resize:vertical;min-height:110px;}
.contact-form-card button{background:linear-gradient(135deg,var(--pink),var(--purple));color:#fff;border:none;padding:.85rem;font-family:'Nunito',sans-serif;font-size:.82rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;border-radius:12px;}

/* Inquiry / booking submit feedback. Hidden until JS sets a state class, so a
   customer always sees whether their request actually reached us. */
.form-status{display:none;font-size:.8rem;line-height:1.65;border-radius:10px;padding:.75rem .95rem;margin-top:.25rem;}
.form-status-ok{display:block;background:#e0f2f1;border:2px solid #4DB6AC;color:#00695C;font-weight:700;}
.form-status-error{display:block;background:#fdecea;border:2px solid #ef9a9a;color:#b71c1c;font-weight:700;}
.form-status a{color:inherit;text-decoration:underline;font-weight:800;}
.contact-form-card button:disabled,.booking-body .next-btn:disabled{opacity:.6;cursor:progress;}

/* FOOTER */
footer{background:linear-gradient(135deg,#2d0a4e,#4a1280);padding:2.25rem 2rem;text-align:center;}
.footer-logo{font-family:'Pacifico',cursive;font-size:1.4rem;color:var(--yellow);margin-bottom:.65rem;}
footer p{font-size:.75rem;color:rgba(255,255,255,.38);line-height:1.75;}
footer span{color:var(--pink-light);}

/* PRINT */
@media print{.inv-actions,.cart-trigger,.booking-overlay,.cart-overlay{display:none!important;}.invoice-overlay{position:static;background:none;padding:0;display:block!important;}.invoice-modal{max-height:none;border-radius:0;}}

/* RESPONSIVE */
@media(max-width:768px){
  .nerf-layout,.contact-inner,.about-inner,.inv-parties,.inv-pay-grid,.inv-sig-sec,.field-row,.card-row,.delivery-choice{grid-template-columns:1fr;}
  .nav-links{display:none;}
  .cart-close-btn{right:2rem;top:.5rem;color:#333;}
  .cart-panel,.invoice-modal,.booking-modal{width:100%;}
  .inv-totals-wrap{width:100%;}
  .booking-steps .booking-step{font-size:.58rem;padding:.65rem .2rem;}
}

/* ============================================================
   BLACKOUT CALENDAR ADMIN PANEL
   ============================================================ */
.cal-day-blackout { background: #2a2a2a !important; color: #fff !important; cursor: not-allowed !important; position: relative; }
.cal-day-blackout::after { content: '🚫'; position: absolute; top: 50%; left: 50%; transform: translate(-50%,-50%); font-size: .65rem; }

/* Owner-only elements: hidden until the server confirms the owner session.
   Hiding is cosmetic — every write is authorised server-side as well. */
.admin-only { display: none !important; }
body.is-admin .owner-toolbar.admin-only      { display: flex !important; }
body.is-admin .hero-upload-btn.admin-only    { display: flex !important; }
body.is-admin .item-photo-upload.admin-only  { display: flex !important; }
body.is-admin .pkg-photo-upload.admin-only   { display: flex !important; }
body.is-admin .tier-upload.admin-only        { display: flex !important; }
body.is-admin .nerf-upload-overlay.admin-only { display: flex !important; }

.owner-login-link { font-size: .68rem; color: rgba(255,255,255,.35); cursor: pointer; margin-top: .5rem; text-decoration: underline; display: inline-block; }
.owner-login-link:hover { color: rgba(255,255,255,.6); }
.owner-password-input { width: 100%; padding: .7rem .9rem; border: 2px solid #E8C8F0; border-radius: 10px; font-size: .9rem; font-family: 'Nunito', sans-serif; }

/* Admin overlay */
.admin-overlay { display: none; position: fixed; inset: 0; background: rgba(0,0,0,.85); z-index: 5000; align-items: center; justify-content: center; padding: 1rem; }
.admin-overlay.open { display: flex; }
.admin-modal { background: #fff; width: 560px; max-width: 100%; max-height: 90vh; overflow-y: auto; border-radius: 16px; overflow: hidden; }
.admin-header { background: linear-gradient(135deg, #2d0a4e, #4a1280); padding: 1.25rem 1.5rem; display: flex; align-items: center; justify-content: space-between; }
.admin-header h2 { font-family: 'Pacifico', cursive; font-size: 1.2rem; color: var(--yellow); }
.admin-close { background: rgba(255,255,255,.15); border: none; color: #fff; font-size: 1.2rem; cursor: pointer; width: 32px; height: 32px; border-radius: 50%; display: flex; align-items: center; justify-content: center; }
.admin-body { padding: 1.5rem; }
.admin-section-title { font-size: .68rem; font-weight: 800; letter-spacing: .15em; text-transform: uppercase; color: var(--purple); margin-bottom: .85rem; }
.admin-note { background: var(--cream); border-left: 3px solid var(--purple); border-radius: 0 8px 8px 0; padding: .65rem .9rem; font-size: .78rem; color: var(--gray); margin-bottom: 1.1rem; line-height: 1.6; }

/* Admin calendar grid */
.adm-cal-wrap { border: 2px solid var(--border); border-radius: 12px; padding: 1rem; background: #fdf5ff; margin-bottom: 1.1rem; }
.adm-cal-nav { display: flex; justify-content: space-between; align-items: center; margin-bottom: .75rem; }
.adm-cal-nav button { background: var(--purple-light); border: none; width: 28px; height: 28px; cursor: pointer; font-size: .9rem; color: var(--purple-dark); border-radius: 7px; font-weight: 700; }
.adm-cal-nav button:hover { background: var(--purple); color: #fff; }
.adm-cal-month { font-family: 'Pacifico', cursive; font-size: .95rem; color: var(--purple); }
.adm-cal-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 3px; }
.adm-day-name { text-align: center; font-size: .58rem; font-weight: 700; color: var(--gray); padding: .22rem 0; text-transform: uppercase; }
.adm-day { text-align: center; padding: .5rem .15rem; font-size: .78rem; font-weight: 600; cursor: pointer; border-radius: 7px; border: 1px solid transparent; transition: all .15s; min-height: 32px; display: flex; align-items: center; justify-content: center; }
.adm-day:hover:not(.adm-past):not(.adm-bo) { background: #f3e5ff; border-color: var(--purple-light); }
.adm-day.adm-bo { background: #1a1a1a; color: #fff; border-color: #333; font-size: .7rem; }
.adm-day.adm-bo:hover { background: #333; }
.adm-day.adm-past { color: #ccc; cursor: default; }
.adm-day.adm-booked { background: rgba(155,89,182,.12); border-color: var(--purple-light); color: var(--purple-dark); }
.adm-legend { display: flex; gap: 1rem; font-size: .7rem; color: var(--gray); flex-wrap: wrap; margin-top: .6rem; }
.adm-legend-item { display: flex; align-items: center; gap: .35rem; }
.adm-legend-dot { width: 14px; height: 14px; border-radius: 4px; flex-shrink: 0; }

/* Blackout list */
.bo-list { margin-top: 1rem; display: flex; flex-direction: column; gap: .5rem; }
.bo-list-item { display: flex; justify-content: space-between; align-items: center; padding: .5rem .75rem; background: #f8f4fb; border: 1px solid var(--border); border-radius: 8px; font-size: .8rem; color: var(--black); }
.bo-list-item button { background: none; border: 1px solid #ffb3b3; color: #c0392b; font-family: 'Nunito', sans-serif; font-size: .7rem; font-weight: 700; padding: .2rem .55rem; border-radius: 6px; cursor: pointer; }
.bo-list-item button:hover { background: #fce4e4; }

/* ============================================================
   COMING SOON BANNER
   ============================================================ */
.coming-soon-bar {
  background: linear-gradient(135deg, #C9A84C, #e8c96a, #C9A84C);
  background-size: 200% 100%;
  animation: shimmer 3s linear infinite;
  text-align: center;
  padding: .55rem 1rem;
  font-family: 'Nunito', sans-serif;
  font-size: .78rem;
  font-weight: 800;
  color: #1a0a2e;
  letter-spacing: .1em;
  text-transform: uppercase;
  position: fixed;
  top: 66px;
  left: 0; right: 0;
  z-index: 999;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .75rem;
  box-shadow: 0 2px 10px rgba(0,0,0,.2);
}
.coming-soon-bar a {
  color: #4a1280;
  font-weight: 900;
  text-decoration: underline;
  cursor: pointer;
}
.coming-soon-bar .csb-dismiss {
  background: rgba(26,10,46,.15);
  border: none;
  color: #1a0a2e;
  font-size: .75rem;
  font-weight: 800;
  cursor: pointer;
  padding: .15rem .5rem;
  border-radius: 10px;
  font-family: 'Nunito', sans-serif;
  flex-shrink: 0;
}
@keyframes shimmer {
  0% { background-position: 200% 0; }
  100% { background-position: -200% 0; }
}
/* push hero down for coming soon bar */
.hero { padding-top: calc(66px + 36px); }

/* ============================================================
   TABLE & CHAIR PACKAGES (linens included)
   ============================================================ */
#tablepkgs{background:linear-gradient(160deg,#2b1055 0%,#1a0a2e 100%);}
#tablepkgs .sec-title{color:#fff;}
#tablepkgs .sec-sub{color:rgba(255,255,255,.62);}
#tablepkgs .sec-sub strong{color:var(--yellow);}
.pkg-rate-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:1rem;margin-bottom:2rem;}
.pkg-rate-card{display:flex;align-items:center;gap:.85rem;background:rgba(255,255,255,.06);border:1px solid rgba(255,214,0,.28);border-radius:14px;padding:.9rem 1.1rem;}
.pkg-rate-num{font-family:'Pacifico',cursive;font-size:1.55rem;color:var(--yellow);line-height:1;flex-shrink:0;}
.pkg-rate-label{font-size:.74rem;font-weight:700;color:rgba(255,255,255,.8);line-height:1.4;}
.pkg-rate-label em{color:var(--yellow);font-style:normal;}
.pkg-rate-label span{display:block;font-weight:600;font-size:.66rem;color:rgba(255,255,255,.4);text-decoration:line-through;margin-top:.15rem;}

/* Savings / area / free-game bits on package cards */
.pkg-vs-note{font-size:.66rem;font-weight:700;color:#7CE0B0;margin:-.35rem 0 .9rem;line-height:1.4;}
.pkg-area-badge{display:inline-block;background:rgba(255,214,0,.16);border:1px solid rgba(255,214,0,.4);color:var(--yellow);font-size:.63rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase;padding:.22rem .6rem;border-radius:10px;margin-bottom:.55rem;}
.pkg-freegame{margin-bottom:1rem;padding:.75rem;background:rgba(255,214,0,.08);border:1px solid rgba(255,214,0,.25);border-radius:10px;}

/* Coming-soon packages: visible but not selectable */
.pkg-card.coming-soon{opacity:.72;border-color:rgba(255,255,255,.14);}
.pkg-card.coming-soon:hover{transform:none;border-color:rgba(255,255,255,.14);}
.pkg-card.coming-soon .pkg-photo span{filter:grayscale(.55);}
.pkg-cs-ribbon{position:absolute;top:0;left:0;right:0;background:linear-gradient(135deg,#6C3483,#2b1055);color:var(--yellow);font-size:.72rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;text-align:center;padding:.5rem;z-index:3;border-bottom:1px solid rgba(255,214,0,.4);}
.pkg-card.coming-soon .pkg-photo{padding-top:2rem;}
.pkg-cs-price{font-size:1rem;font-weight:800;color:rgba(255,255,255,.7);letter-spacing:.04em;}
.pkg-cs-note{font-size:.74rem;color:rgba(255,255,255,.45);line-height:1.5;}
.pkg-btn:disabled{background:rgba(255,255,255,.12);color:rgba(255,255,255,.45);cursor:not-allowed;box-shadow:none;}
.pkg-btn:disabled:hover{box-shadow:none;}

/* Coming-soon lawn game */
.game-card.coming-soon{cursor:not-allowed;opacity:.7;background:#F7F4FA;}
.game-card.coming-soon:hover{transform:none;border-color:transparent;}
.game-card.coming-soon .game-icon{filter:grayscale(.6);}
.game-cs-ribbon{position:absolute;top:.9rem;right:.9rem;background:var(--purple);color:#fff;font-size:.58rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;padding:.25rem .55rem;border-radius:10px;}

/* ============================================================
   NERF / SOCCER TIER CARDS (shared markup)
   ============================================================ */
.tier-card{border:2px solid rgba(255,112,67,.25);border-radius:14px;overflow:hidden;transition:all .2s;cursor:pointer;background:rgba(255,255,255,.04);}
.tier-card:hover,.tier-card.selected{border-color:#FF7043;background:rgba(255,112,67,.08);}
.tier-card.soccer-tier{border-color:rgba(0,191,165,.25);}
.tier-card.soccer-tier:hover,.tier-card.soccer-tier.selected{border-color:#00E5A0;background:rgba(0,229,160,.08);}
.tier-photo{position:relative;width:100%;height:120px;background:rgba(255,255,255,.06);display:flex;align-items:center;justify-content:center;font-size:2.8rem;overflow:hidden;}
.tier-photo img{width:100%;height:100%;object-fit:cover;}
.tier-upload{position:absolute;bottom:.5rem;right:.5rem;background:rgba(0,0,0,.6);border:1px solid rgba(255,255,255,.35);color:#fff;font-size:.62rem;font-weight:700;padding:.28rem .55rem;border-radius:7px;cursor:pointer;text-transform:uppercase;display:flex;align-items:center;gap:.3rem;}
.tier-upload input{position:absolute;inset:0;opacity:0;cursor:pointer;}
.tier-body{padding:1.1rem 1.35rem 1.2rem;}
.tier-includes{list-style:none;margin:.15rem 0 .35rem;}
.tier-includes li{font-size:.72rem;color:rgba(255,255,255,.6);padding:.2rem 0;display:flex;align-items:flex-start;gap:.5rem;line-height:1.45;}
.tier-includes li::before{content:'✓';color:#7CE0B0;font-size:.66rem;flex-shrink:0;}
.tier-addon-note{font-size:.63rem;color:rgba(124,224,176,.85);font-weight:700;margin-top:.4rem;line-height:1.4;}
.tier-card.soccer-tier .nerf-tier-price{color:#00E5A0;}
.tier-card.soccer-tier .nerf-chairs-toggle{border-color:rgba(0,229,160,.22);}
.tier-card.soccer-tier .nerf-select{border-color:rgba(0,229,160,.32);}

/* SOCCER SECTION */
#soccer{background:linear-gradient(135deg,#04160f,#0c3b2a,#123f56);padding:5rem 2rem;}
#soccer .sec-title{color:#fff;}
#soccer .sec-sub{color:rgba(255,255,255,.55);}
#soccer .nerf-info-note{background:rgba(0,229,160,.07);border-color:rgba(0,229,160,.22);}
#soccer .nerf-select option{background:#04160f;color:#fff;}
.soccer-photo-area{border-color:rgba(0,229,160,.22)!important;}
.soccer-upload-overlay{border-color:rgba(0,229,160,.45)!important;color:#00E5A0!important;}
.soccer-add-btn{background:linear-gradient(135deg,#00BFA5,#00E5A0)!important;color:#04160f!important;box-shadow:0 4px 16px rgba(0,229,160,.35)!important;}

/* ============================================================
   OWNER TOOLBAR & PRICING MANAGER
   ============================================================ */
.owner-toolbar {
  position: fixed; top: 5rem; right: 1.5rem; z-index: 998;
  flex-direction: column; align-items: stretch; gap: .4rem; width: 190px;
}
.owner-tool-btn {
  background: #2d0a4e; border: 1.5px solid rgba(201,168,76,.5);
  color: rgba(255,255,255,.85); padding: .5rem .9rem;
  font-family: 'Nunito', sans-serif; font-size: .7rem; font-weight: 700;
  letter-spacing: .08em; text-transform: uppercase; cursor: pointer;
  border-radius: 20px; display: flex; align-items: center; justify-content: center;
  gap: .4rem; transition: all .2s;
}
.owner-tool-btn:hover { background: #4a1280; color: #fff; border-color: var(--gold); }
.owner-tool-logout { border-color: rgba(229,57,53,.5); }
.owner-badge {
  background: #e53935; color: #fff; border-radius: 999px; min-width: 18px;
  padding: 0 .35rem; font-size: .62rem; font-weight: 800; line-height: 18px;
  text-align: center; letter-spacing: 0;
}

/* REQUESTS INBOX (owner only) */
.req-alert { border-radius: 10px; padding: .7rem .9rem; font-size: .76rem; line-height: 1.6; margin-bottom: .9rem; }
.req-alert-ok { background: #eafaf4; border-left: 3px solid var(--teal-dark); color: #16624f; }
.req-alert-warn { background: #fff8e1; border-left: 3px solid var(--yellow-dark); color: #6d4c00; }
.req-toolbar { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; margin-bottom: .75rem; }
.req-count { font-size: .72rem; color: var(--gray); font-weight: 700; margin-left: auto; }
.req-mini-btn {
  color: var(--purple); border-color: var(--purple); background: #fff;
  padding: .4rem .85rem; font-size: .7rem; border-radius: 18px; border-width: 1.5px;
  border-style: solid; font-weight: 700; cursor: pointer; text-decoration: none;
  display: inline-block; font-family: 'Nunito', sans-serif;
}
.req-mini-btn:hover { background: var(--cream); }
.req-mini-danger { color: #c0392b; border-color: rgba(192,57,43,.55); }
.req-mini-danger:hover { background: #fdecea; }
.req-status { border-radius: 10px; padding: .6rem .85rem; font-size: .75rem; line-height: 1.55; margin-bottom: .8rem; }
.req-status-ok { background: #eafaf4; color: #16624f; border-left: 3px solid var(--teal-dark); }
.req-status-err { background: #fdecea; color: #a33227; border-left: 3px solid #c0392b; }
.req-empty { color: var(--gray); font-size: .78rem; padding: 1rem .2rem; }
.req-card { border: 1.5px solid var(--border); border-radius: 12px; margin-bottom: .6rem; overflow: hidden; background: #fff; }
.req-card-unread { border-color: var(--purple); box-shadow: 0 2px 10px rgba(155,89,182,.15); }
.req-card-head { padding: .7rem .9rem; cursor: pointer; }
.req-card-head:hover { background: #fdf7ff; }
.req-card-main { display: flex; flex-wrap: wrap; align-items: center; gap: .45rem; font-size: .85rem; }
.req-card-sub { font-size: .72rem; color: var(--gray); margin-top: .3rem; }
.req-tag { font-size: .62rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; padding: .18rem .5rem; border-radius: 12px; }
.req-tag-booking { background: rgba(155,89,182,.15); color: var(--purple-dark); }
.req-tag-inquiry { background: rgba(0,191,165,.15); color: var(--teal-dark); }
.req-new { background: #e53935; color: #fff; font-size: .58rem; font-weight: 800; letter-spacing: .08em; padding: .15rem .45rem; border-radius: 10px; }
.req-approve { background: var(--yellow); color: #5c4400; font-size: .58rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; padding: .15rem .45rem; border-radius: 10px; }
.req-email-warn { margin-top: .4rem; font-size: .68rem; color: #a33227; font-weight: 700; }
.req-detail { display: none; }
.req-detail.open { display: block; border-top: 1px solid var(--border); padding: .8rem .9rem; background: #fdfaff; }
.req-table { width: 100%; border-collapse: collapse; font-size: .76rem; }
.req-table th { text-align: left; color: var(--gray); font-weight: 700; padding: .3rem .8rem .3rem 0; vertical-align: top; white-space: nowrap; text-transform: capitalize; }
.req-table td { padding: .3rem 0; vertical-align: top; white-space: pre-wrap; word-break: break-word; }
.req-detail-actions { display: flex; flex-wrap: wrap; gap: .45rem; margin-top: .85rem; }
.req-notified { margin-top: .7rem; font-size: .68rem; color: var(--gray); }

.owner-tool-logout:hover { background: #7a1414; border-color: #e53935; }
.owner-pw-notice {
  background: #4a2a00; border: 1.5px solid rgba(255,193,7,.55); border-radius: 12px;
  color: #FFE082; font-size: .66rem; line-height: 1.5; padding: .55rem .7rem;
}

/* Toast used for photo-upload and session feedback */
.owner-toast {
  position: fixed; left: 50%; bottom: 1.5rem; transform: translate(-50%, 130%);
  background: #1b3a2a; border: 1.5px solid rgba(0,229,160,.5); color: #C8FFE8;
  font-family: 'Nunito', sans-serif; font-size: .78rem; font-weight: 700;
  padding: .7rem 1.1rem; border-radius: 22px; z-index: 6000; max-width: 90vw;
  text-align: center; transition: transform .25s ease, opacity .25s ease; opacity: 0;
}
.owner-toast.show { transform: translate(-50%, 0); opacity: 1; }
.owner-toast.is-error { background: #4a1414; border-color: rgba(229,57,53,.6); color: #FFD3D1; }

/* Pricing Manager rows */
.pr-section {
  margin: 1.1rem 0 .5rem; font-size: .72rem; font-weight: 800; letter-spacing: .09em;
  text-transform: uppercase; color: var(--purple); border-bottom: 2px solid #F0DDF6;
  padding-bottom: .3rem;
}
.pr-section-note {
  margin-top: .3rem; font-size: .68rem; font-weight: 600; letter-spacing: 0;
  text-transform: none; color: #7a6a86;
}
.pr-row {
  display: flex; align-items: center; justify-content: space-between; gap: .75rem;
  padding: .4rem 0; border-bottom: 1px solid #F6EEF9;
}
.pr-label { font-size: .82rem; font-weight: 700; color: #3a2b45; display: flex; flex-direction: column; }
.pr-note { font-size: .66rem; font-weight: 600; color: #8a7a95; margin-top: .1rem; }
.pr-fields { display: flex; gap: .4rem; flex-shrink: 0; }
.pr-input {
  width: 96px; padding: .42rem .55rem; border: 2px solid #E8C8F0; border-radius: 8px;
  font-family: 'Nunito', sans-serif; font-size: .85rem; font-weight: 700;
  text-align: right; color: #3a2b45;
}
.pr-input:focus { outline: none; border-color: var(--purple); }
.pr-status {
  margin-top: .9rem; padding: .6rem .8rem; border-radius: 10px; font-size: .78rem;
  font-weight: 700; background: #e8f8f0; color: #176b48;
}
.pr-status.is-error { background: #fdecea; color: #b3271e; }

/* "This no longer beats à la carte" warning — advisory, never blocking */
.pr-warn {
  background: #fff8e1; border: 2px solid #FFCC80; border-radius: 12px;
  padding: .7rem .85rem; margin-bottom: .9rem; color: #7a4a00; font-size: .76rem;
}
.pr-warn-title { font-weight: 800; margin-bottom: .35rem; }
.pr-warn ul { margin: 0 0 .4rem 1.1rem; padding: 0; }
.pr-warn li { margin-bottom: .18rem; line-height: 1.45; }
.pr-warn-foot { font-size: .7rem; font-weight: 600; color: #8a5c14; }

@media (max-width: 640px) {
  .owner-toolbar { top: auto; bottom: 5.5rem; right: .75rem; left: .75rem; width: auto; flex-direction: row; flex-wrap: wrap; }
  .owner-tool-btn { flex: 1 1 30%; padding: .5rem .4rem; font-size: .62rem; }
  .owner-pw-notice { flex: 1 1 100%; }
  .pr-row { flex-direction: column; align-items: flex-start; gap: .35rem; }
  .pr-input { width: 100%; }
  .pr-fields { width: 100%; }
}
