@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;700&family=Fredoka:wght@500;600;700&display=swap');
:root{--ink:#17261f;--paper:#fbf2d7;--rust:#a83222;--yellow:#ffc838}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.55 'DM Sans',sans-serif}a{color:inherit}header{padding:20px 5vw;display:flex;justify-content:space-between;border-bottom:1px solid #17261f30;gap:20px}header a{font-weight:700;text-decoration:none}.booking{max-width:1220px;padding:65px 30px 90px;margin:auto}h1{font:600 clamp(3rem,7vw,6.3rem)/.95 Fredoka,sans-serif;letter-spacing:-.045em;margin:15px 0 30px}h1 em{color:var(--rust);font-style:normal}h2{font:500 1.65rem/1.15 Fredoka,sans-serif;margin:10px 0}p{margin:10px 0 20px}.eyebrow{text-transform:uppercase;letter-spacing:.09em;font-size:.75rem;font-weight:700}.booking-layout{display:grid;grid-template-columns:1.35fr 1fr;gap:35px;margin-top:35px}.product{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:25px;border:2px solid var(--ink);background:#fff9e9;margin-bottom:20px;box-shadow:4px 4px var(--ink)}.product:nth-child(2n){background:#e5ebc3}.product label{max-width:80px}.cart{padding:28px;background:#f5b4a9;border:2px solid var(--ink);align-self:start}.cart #total{font:600 2.5rem Fredoka;display:block;margin-bottom:25px}label{display:block;font-size:.85rem;font-weight:700;margin:12px 0}input{display:block;width:100%;padding:12px;border:1px solid #546057;border-radius:5px;font:inherit;margin-top:6px;background:#fffdf7}button,.button{display:inline-block;background:var(--ink);color:var(--paper);border:0;padding:13px 19px;font:700 .85rem 'DM Sans',sans-serif;text-decoration:none;cursor:pointer;border-radius:5px}button:disabled{opacity:.6;cursor:wait}.small,small{font-size:.8rem}.small a{text-decoration:underline}.confirmation{max-width:850px}.confirmation h1{font-size:clamp(2.6rem,6vw,4.5rem)}.confirmation .cart{margin:35px 0;background:#fff9e9}.confirmation .cart strong{float:right}.admin h1{font-size:4rem}.admin-nav{display:flex;gap:20px;flex-wrap:wrap}.inventory{display:flex;flex-wrap:wrap;gap:20px;margin:25px 0}.inventory article{padding:15px;border:1px solid;flex:1 1 160px}.admin-order{background:#fff9e9;padding:25px;margin:25px 0;border:1px solid}.admin-order form{margin:15px 0}.admin-order input{max-width:400px}.redemption{border-bottom:1px solid #17261f20;padding:8px 0}.redemption form{display:flex;gap:10px}.redemption input{width:90px;margin:0}.search{max-width:500px}.error{color:#a52421}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #bc491f;outline-offset:4px}
/* Ticket confirmation: a small festival poster, not an admin receipt. */
.mini-mushroom{display:inline-block;width:14px;height:13px;margin-right:5px;border:2px solid var(--ink);border-radius:10px 10px 5px 5px;background:var(--rust);vertical-align:-1px;position:relative}.mini-mushroom:after{content:'';position:absolute;background:var(--paper);width:4px;height:8px;left:3px;top:10px;border:2px solid var(--ink);border-top:0}.confirmation{max-width:820px}.confirmation-hero{padding:clamp(30px,7vw,70px);background:#ffc838;border:3px solid var(--ink);box-shadow:9px 10px 0 var(--ink);position:relative;overflow:hidden}.confirmation-hero:after{content:'✳';position:absolute;font:100px/.8 Fredoka;color:#e94a2d;right:-8px;top:22px;transform:rotate(16deg)}.confirmation-hero>*{position:relative;z-index:1}.confirmation h1{max-width:620px;margin:10px 0 18px}.confirmation .lead{max-width:540px;font-size:1.08rem}.reference-card{background:var(--ink);color:var(--paper);padding:22px 24px;margin:30px 0 22px;max-width:600px}.reference-card span,.reference-card small{display:block;text-transform:uppercase;letter-spacing:.1em;font-weight:700;font-size:.68rem}.reference-card strong{display:block;font:600 clamp(1.7rem,5vw,2.7rem)/1 Fredoka;margin:8px 0 10px;letter-spacing:.03em}.reference-card small{text-transform:none;font-weight:500;letter-spacing:0}.confirmation-actions{display:flex;align-items:center;gap:18px;flex-wrap:wrap}.confirmation-actions .button{background:var(--rust)}.confirmation-actions span{font-size:.8rem;max-width:240px}.confirmation .ticket-summary{margin:42px 0 0;background:#fff9e9;padding:30px;border:3px solid var(--ink);box-shadow:7px 8px 0 var(--ink)}.ticket-summary h2{font-size:clamp(2rem,5vw,3rem);margin:4px 0 17px}.ticket-summary h2 em{color:var(--rust);font-style:normal}.ticket-line{display:flex;justify-content:space-between;gap:18px;padding:17px 0;border-top:1px dashed #4f5c51}.ticket-line strong,.ticket-line small{display:block}.ticket-line small{color:#4d5a50;margin-top:3px}.ticket-line>b{white-space:nowrap}.ticket-total{display:flex;justify-content:space-between;align-items:end;border-top:3px solid var(--ink);padding-top:15px;margin-top:3px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;font-size:.75rem}.ticket-total strong{font:600 2rem/1 Fredoka;letter-spacing:0}.inn-note{margin:27px 0 0;background:#e1ecbf;padding:17px 20px;border:2px solid var(--ink);display:flex;gap:13px;align-items:center}.inn-note .mini-mushroom{transform:scale(1.8);margin:0 11px 8px 4px}.help{font-size:.86rem;margin:28px 5px 0}.help a{font-weight:700}.confirmation .cart strong{float:none}
@media(max-width:760px){.booking{padding:35px 20px 60px}.booking-layout{grid-template-columns:1fr}.product{padding:20px 16px}.product h2{font-size:1.4rem}.cart{padding:22px}.product label{min-width:65px}.admin-order{padding:15px}.admin-order h2{overflow-wrap:anywhere}.confirmation-hero{padding:29px 22px;box-shadow:5px 6px 0 var(--ink)}.confirmation-hero:after{font-size:72px;right:-17px;top:38px}.confirmation-actions{align-items:flex-start;flex-direction:column}.confirmation .ticket-summary{padding:22px 17px;box-shadow:5px 6px 0 var(--ink)}.ticket-line{font-size:.92rem}.ticket-line>b{font-size:.9rem}.reference-card{padding:18px}.inn-note{font-size:.88rem}}
@media print{header,.admin-nav,.search,button,.inventory{display:none!important}.booking{padding:0;max-width:none}.admin-order{break-inside:avoid}.admin h1{font-size:28px}body{background:white;color:black;font-size:12px}}
