/*
Theme Name: Khayal & Essentials Candles
Description: Handmade candle shop. Cash on Delivery orders are sent to a Google Doc.
Version: 2.0
Requires PHP: 7.0
*/
:root{--ivory:#F7F1E8;--plum:#6B2D3C;--coral:#E2703A;--ink:#1A1A1A;--accent:#E2703A;--serif:"Cormorant Garamond",Georgia,serif;--sans:Jost,system-ui,sans-serif;--script:"Dancing Script",cursive}
*{box-sizing:border-box;margin:0}html{scroll-behavior:smooth}
body{font:400 17px/1.65 var(--sans);color:var(--ink);background:var(--ivory) repeating-linear-gradient(45deg,rgba(107,45,60,.03) 0 1px,transparent 1px 4px);overflow-x:hidden;animation:pagein .6s both}
body.leaving{opacity:0;transition:opacity .22s}@keyframes pagein{from{opacity:0}}
img{max-width:100%;display:block}a{color:inherit}
h1,h2,h3{font-family:var(--serif);color:var(--plum);font-weight:600;line-height:1.1}
h2{font-size:clamp(2rem,5vw,3rem);margin-bottom:.6em}h3{font-size:1.5rem}
.wrap{max-width:1100px;margin:0 auto;padding:0 20px}section{padding:80px 0}
.script{font-family:var(--script);color:var(--plum)}.script.sm{font-size:1.5rem;color:var(--coral)}.script.big{font-size:2rem;color:var(--ivory)}
:focus-visible{outline:3px solid var(--coral);outline-offset:3px}
.btn{display:inline-block;border:0;cursor:pointer;font:500 1rem var(--sans);padding:14px 28px;border-radius:40px;background:var(--plum);color:var(--ivory);text-decoration:none;transition:transform .2s,box-shadow .2s}
.btn:hover{transform:translateY(-2px);box-shadow:0 8px 24px rgba(107,45,60,.3)}.btn.alt{background:transparent;color:var(--plum);border:1.5px solid var(--plum)}
.btn:disabled{opacity:.6;cursor:wait}
.top{position:fixed;top:0;left:0;right:0;z-index:20;display:flex;justify-content:space-between;align-items:center;padding:14px 20px;background:rgba(247,241,232,.88);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
.admin-bar .top{top:32px}@media(max-width:782px){.admin-bar .top{top:46px}}
.logo{font:600 1.8rem var(--script);color:var(--plum);text-decoration:none}
#cartBtn{background:none;border:0;cursor:pointer;font:500 1rem var(--sans);color:var(--plum)}
#cartBtn b{background:var(--coral);color:#fff;border-radius:20px;padding:1px 9px;margin-left:4px}
#cartBtn.bump{animation:bump .5s}@keyframes bump{40%{transform:scale(1.25)}}
.hero{min-height:100vh;display:flex;align-items:center;justify-content:center;text-align:center;position:relative;overflow:hidden;padding:100px 20px 60px;background:radial-gradient(circle at 50% 38%,rgba(226,112,58,.22),transparent 55%)}
.hero h1{font-size:clamp(4rem,14vw,8rem);font-family:var(--script)}
.amp{letter-spacing:.3em;font:500 1.1rem var(--serif);color:var(--plum)}
.tag{font:italic 1.5rem var(--serif);color:var(--plum);margin:14px 0 28px}
.flame{width:56px;height:84px;margin:0 auto 10px;filter:drop-shadow(0 0 22px var(--coral));transform-origin:50% 100%;animation:flick 2.2s infinite ease-in-out}
@keyframes flick{0%,100%{transform:scale(1,1) rotate(-1deg)}30%{transform:scale(.94,1.06) rotate(2deg)}60%{transform:scale(1.04,.96) rotate(-2deg)}}
.pt{position:absolute;bottom:-20px;border-radius:50%;background:var(--accent);opacity:0;pointer-events:none;filter:blur(1px);animation:rise linear infinite}
@keyframes rise{10%{opacity:.7}to{transform:translate(30px,-110vh);opacity:0}}
.grid{display:grid;gap:26px;grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}
.card{display:block;text-decoration:none;background:#fff;border-radius:22px;overflow:hidden;box-shadow:0 6px 24px rgba(107,45,60,.1);transition:transform .35s,box-shadow .35s}
.card:hover{transform:translateY(-8px);box-shadow:0 18px 44px var(--accent)}
.card .im{aspect-ratio:4/5;overflow:hidden}.card img,.zoom img{width:100%;height:100%;object-fit:cover;transition:transform .6s}
.card:hover img,.zoom:hover img{transform:scale(1.07)}
.card .t{padding:18px 22px 22px}.card small{display:block;color:#6a6a6a}
.story{background:var(--plum);color:var(--ivory)}.story h2{color:var(--ivory)}.story p{max-width:60ch;font:1.3rem/1.7 var(--serif)}
.why{display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.why>div{padding:6px 20px;border-left:3px solid var(--coral)}
.insta{text-align:center;background:#fff}.insta p{margin-bottom:20px}
.pp{min-height:100vh;padding:110px 0 60px;position:relative;overflow:hidden;background:radial-gradient(circle at 25% 20%,var(--accent),transparent 65%)}
.pp .wrap{display:grid;gap:40px;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));align-items:center}
.zoom{border-radius:26px;overflow:hidden;box-shadow:0 0 70px var(--accent);aspect-ratio:4/5;background:#fff}
.pp h1{font-size:clamp(2.6rem,7vw,4.2rem)}.price{font:600 1.7rem var(--serif);color:var(--coral)}
dl{margin:18px 0}dt{font-weight:500;color:var(--plum)}dd{margin:0 0 8px}
.row{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin-top:14px}
.qty{display:inline-flex;border:1.5px solid var(--plum);border-radius:40px;align-items:center}
.qty button{background:none;border:0;width:42px;height:46px;font-size:1.3rem;cursor:pointer;color:var(--plum)}.qty span{min-width:28px;text-align:center}
.plain{padding-top:120px;padding-bottom:60px}
#shade{position:fixed;inset:0;background:rgba(26,26,26,.45);opacity:0;pointer-events:none;transition:opacity .3s;z-index:30}
#drawer{position:fixed;top:0;right:0;height:100%;width:min(440px,100%);background:var(--ivory);z-index:31;transform:translateX(100%);visibility:hidden;transition:transform .4s cubic-bezier(.2,.8,.2,1),visibility .4s;padding:22px;overflow-y:auto}
body.cart-open #drawer{transform:none;visibility:visible}body.cart-open #shade{opacity:1;pointer-events:auto}
.dh{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.dh h2{margin:0;font-size:2rem}
.item{display:grid;grid-template-columns:64px 1fr auto;gap:12px;align-items:center;padding:12px 0;border-bottom:1px solid rgba(107,45,60,.15)}
.item img{width:64px;height:64px;border-radius:10px;object-fit:cover}.item .qty{margin-top:4px}.item .qty button{height:34px;width:34px}
.link{background:none;border:0;color:var(--coral);cursor:pointer;font:inherit;text-decoration:underline}
.sum p{display:flex;justify-content:space-between}.sum .tot{font-weight:600;font-size:1.2rem;border-top:1px solid var(--plum);margin-top:8px;padding-top:8px}
form label{display:block;margin-top:12px;font-weight:500}
form input,form textarea{width:100%;font:inherit;padding:11px 14px;border:1.5px solid rgba(107,45,60,.35);border-radius:12px;background:#fff}
.err{display:block;color:#b3261e;font-size:.9rem;min-height:1.1em}
.cod{background:#fff;padding:10px 14px;border-radius:12px;margin:14px 0;border:1px dashed var(--coral)}
.thanks{text-align:center;padding-top:50px;animation:pop .6s}.thanks .tick{font-size:4rem;color:var(--coral)}@keyframes pop{from{transform:scale(.8);opacity:0}}
.fly{position:fixed;z-index:50;width:70px;height:70px;border-radius:50%;object-fit:cover;pointer-events:none;transition:all .7s cubic-bezier(.5,0,.8,.4)}
.foot{background:var(--ink);color:var(--ivory);padding:50px 0;text-align:center}.foot p{margin:6px 0}
.js .rv{opacity:0;transform:translateY(24px);transition:opacity .8s,transform .8s}.js .rv.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}.js .rv{opacity:1;transform:none}.pt{display:none}}
