:root{font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#302923;background:#fcfaf6;line-height:1.55}*{box-sizing:border-box}body{margin:0}a{color:#775033}a:hover{color:#a56832}.wrap{width:min(1100px,calc(100% - 2rem));margin:auto}.site-header{background:#fff;border-bottom:1px solid #e7dfd4}.header-inner{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 0}.brand{font-family:Georgia,serif;font-size:1.55rem;font-weight:bold;text-decoration:none;color:#3b2b20}nav{display:flex;align-items:center;gap:1.1rem;flex-wrap:wrap}nav a{text-decoration:none}main{min-height:68vh;padding-top:2.5rem;padding-bottom:5rem}h1,h2,h3{font-family:Georgia,serif;line-height:1.2}h1{font-size:clamp(2rem,5vw,3.5rem)}h2{font-size:1.7rem}.hero{max-width:800px;padding:4rem 0 5rem}.hero img{max-width:140px;height:auto}.hero h1{max-width:720px}.hero>p{max-width:650px;font-size:1.15rem}.eyebrow{color:#986133;text-transform:uppercase;letter-spacing:.12em;font-size:.8rem!important;font-weight:bold}.button,button{display:inline-block;border:0;border-radius:.35rem;background:#845635;color:#fff;padding:.7rem 1rem;cursor:pointer;font:inherit;text-decoration:none}.button:hover,button:hover{background:#674026;color:#fff}.secondary{background:#e9dfd2;color:#4a3526}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:1.3rem}.card,.panel{background:#fff;border:1px solid #e8e1d7;border-radius:.5rem;overflow:hidden}.card img{display:block;width:100%;height:210px;object-fit:cover}.card-body{padding:1.2rem}.card h3{margin:.4rem 0}.card p{margin-bottom:0}.card small,.muted{color:#776e65}.intro{padding:1rem 0 2rem}.filters{display:flex;gap:.8rem;align-items:end;flex-wrap:wrap;margin:1rem 0 2rem}.filters label{flex:1;min-width:160px}.form{display:grid;gap:1rem;padding:1.5rem}.form label,.filters label{display:grid;gap:.35rem;font-weight:600}input,select,textarea{font:inherit;padding:.65rem;border:1px solid #baafa2;border-radius:.3rem;background:#fff;max-width:100%}textarea{min-height:130px;resize:vertical}.form .button{justify-self:start}.columns{display:grid;grid-template-columns:1fr 1.2fr;gap:3rem}.narrow{max-width:450px;margin:auto}.success{padding:1rem;background:#e5f2e7;border:1px solid #8dbb94}.error{color:#9a2929}.site-footer{background:#eee7dc;padding:2rem 0;color:#55493f}.site-footer p{margin:.25rem 0}.section-head{display:flex;align-items:center;justify-content:space-between;gap:1rem}.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%}th,td{text-align:left;border-bottom:1px solid #eee;padding:.8rem}.thumb{width:60px;height:50px;object-fit:cover}.preview{max-width:240px;max-height:180px;object-fit:contain}.inline{display:inline;margin-left:.5rem}.inline button{background:transparent;color:#775033;padding:0}.danger{background:#a02f2f}.category-row{padding:1rem;margin-bottom:1rem}.category-row .filters{margin:.5rem 0}.check{display:flex!important;align-items:center;gap:.4rem;min-width:auto!important}.message{white-space:pre-wrap}.panel:has(.message){padding:1.2rem;margin-bottom:1rem}@media(max-width:700px){.header-inner{align-items:flex-start;flex-direction:column}.columns{grid-template-columns:1fr}.hero{padding:2rem 0 3rem}.section-head{align-items:flex-start;flex-direction:column}}

/* Homepage. The hero borrows the logo's label silhouette and typewriter face; everything else stays quiet. */
@font-face{font-family:"Literata";src:url("/fonts/literata-latin-wght-normal.woff2") format("woff2");font-weight:200 900;font-style:normal;font-display:swap}
@font-face{font-family:"Special Elite";src:url("/fonts/special-elite-latin-400.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
:root{--espresso:#2b1d15;--mustard:#d4a325;--latte:#f7efe2;--muted:#65594f;--type:"Special Elite","Courier New",monospace;--text:"Literata",Georgia,serif;--ink-color:#8a600c;--grunge:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' seed='7'/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3.2 0 0 0 -.75'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
.home,.shop{font-family:var(--text);--focus:var(--espresso);font-size:1.0625rem;line-height:1.6}
.home>section+section{margin-top:clamp(4rem,9vw,7rem)}
.home h2,.shop h2{font-family:var(--type);font-weight:400;font-size:clamp(1.75rem,3.4vw,2.35rem);line-height:1.15;color:var(--espresso);margin:0 0 .75rem}
.home p,.shop p{margin:0}
:is(.home,.shop) :is(a,button,input,select,textarea):focus-visible{outline:3px solid var(--focus);outline-offset:3px}

:root:has(.awning),body:has(.awning){overflow-x:clip}
.awning{--focus:var(--mustard);--scallop:14px;position:relative;isolation:isolate;margin-top:-2.5rem;color:var(--latte)}
.home-hero{padding:clamp(3.5rem,7vw,6rem) 0 clamp(3.5rem,6vw,5rem)}
/* Full-bleed shop awning (homepage hero and page headers): espresso fill with a scalloped bottom edge, plus a faint grain layer. */
.awning::before,.awning::after{content:"";position:absolute;top:0;left:calc(50% - 50vw);width:100vw;z-index:-1;pointer-events:none}
.awning::before{bottom:calc(var(--scallop) * -1);background:linear-gradient(var(--espresso),var(--espresso)) top/100% calc(100% - var(--scallop)) no-repeat,radial-gradient(circle var(--scallop) at 50% 0,var(--espresso) 96%,#0000) bottom/calc(var(--scallop) * 2) var(--scallop) repeat-x}
.awning::after{bottom:0;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .97 0 0 0 0 .93 0 0 0 0 .87 0 0 0 .1 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23g)'/%3E%3C/svg%3E") 0 0/220px 220px}
.home-hero-inner{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);align-items:center;gap:clamp(2rem,5vw,4.5rem)}
.home-hero-logo{display:block;width:clamp(200px,22vw,290px);height:auto;margin-bottom:1.75rem;transform:rotate(-3deg)}
.home-hero h1{font-family:var(--type);font-weight:400;font-size:clamp(2.2rem,4.1vw,3.3rem);line-height:1.06;letter-spacing:-.01em;text-wrap:balance;margin:0 0 1.25rem;color:var(--latte)}
.home-hero-copy>p:not(.home-actions){max-width:44ch;font-size:1.15rem;color:#e8dccb}
.home-slips{position:relative;justify-self:center;width:min(100%,25rem)}
.home-slip{--line:2.4rem;position:relative;width:100%;padding:2.1rem 1.9rem 5rem;background:#fbf7ee;color:var(--espresso);font-family:var(--type);transform:rotate(2.5deg);box-shadow:0 22px 34px -16px #000c;-webkit-mask:radial-gradient(circle 5px at 50% 0,#0000 98%,#000) 0 0/16px 100% repeat-x;mask:radial-gradient(circle 5px at 50% 0,#0000 98%,#000) 0 0/16px 100% repeat-x}
.home-slip-head{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;padding-bottom:.6rem;border-bottom:2px solid var(--espresso);font-size:1rem}
.home-slip-items{list-style:none;margin:0;padding:0;line-height:var(--line);background:repeating-linear-gradient(#0000 0 calc(var(--line) - 1px),#dccdb4 calc(var(--line) - 1px) var(--line));font-size:1.2rem}
.home-slip-items li{display:grid;grid-template-columns:2.6rem 1fr}
.home-slip-stamp{position:absolute;right:1.1rem;bottom:1.2rem;padding:.2rem .7rem;border:3px solid var(--ink-color);border-radius:4px;color:var(--ink-color);font-size:1.5rem;line-height:1.2;transform:rotate(-11deg);opacity:.9;animation:home-stamp .35s cubic-bezier(.3,.6,.4,1.4) .7s both}
.home-slips{isolation:isolate}
.home-slip-old{position:absolute;inset:0;z-index:-1;background:#ddd0b8;color:#4a3a2e;box-shadow:0 14px 24px -14px #000b}
.home-slip-old .home-slip-stamp{animation:none;opacity:.75}
.home-slip-old-1{background:#e4d8c2;transform:translate(-16%,-7%) rotate(-7deg)}
.home-slip-old-2{transform:translate(4%,6%) rotate(8deg)}
.home-slip-old-3{display:none;z-index:-2;background:#d2c3a8;transform:translate(calc(18% + 9vw),-9%) rotate(-3deg)}
@keyframes home-stamp{from{opacity:0;transform:rotate(-4deg) scale(1.6)}to{opacity:.9;transform:rotate(-11deg) scale(1)}}

.home-actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:2rem!important}
.ticket{--face:var(--mustard);--face-hover:#e8bb42;--edge:var(--espresso);--notch:radial-gradient(circle 6px at 0 50%,#0000 97%,#000) left/51% 100% no-repeat,radial-gradient(circle 6px at 100% 50%,#0000 97%,#000) right/51% 100% no-repeat;position:relative;isolation:isolate;display:inline-block;padding:.85rem 1.6rem;font-family:var(--type);font-size:1.05rem;line-height:1.2;color:var(--espresso);text-decoration:none;transition:translate .12s ease-out}.ticket::before,.ticket::after{content:"";position:absolute;inset:0;z-index:-1;-webkit-mask:var(--notch);mask:var(--notch);transition:translate .12s ease-out,background-color .12s}.ticket::before{background:var(--face);outline:1.5px dashed #2b1d1573;outline-offset:-7px}.ticket::after{--notch:radial-gradient(circle 10px at 0 50%,#0000 97%,#000) left/51% 100% no-repeat,radial-gradient(circle 10px at 100% 50%,#0000 97%,#000) right/51% 100% no-repeat;z-index:-2;background:var(--edge);translate:3px 4px}.ticket:hover{color:var(--espresso);translate:-1px -1px}.ticket:hover::before{background:var(--face-hover)}.ticket:hover::after{translate:4px 5px}.ticket:active{translate:3px 4px}.ticket:active::after{translate:0 0}.ticket-quiet{--face:#fbf7ee;--face-hover:#fff6de}.home-hero .ticket{--edge:#0d0805}

.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.ink{-webkit-mask:var(--grunge) 0 0/160px 160px;mask:var(--grunge) 0 0/160px 160px}

.home-lede{font-family:var(--type);font-size:clamp(1.45rem,2.9vw,2.15rem);line-height:1.38;max-width:34ch;color:var(--espresso);text-wrap:pretty}
.home-values{list-style:none;margin:clamp(2.5rem,5vw,3.75rem) 0 0;padding:0;display:flex;flex-wrap:wrap;gap:clamp(1rem,5vw,4.5rem)}
.home-seal{display:block;width:clamp(96px,17vw,200px);height:auto;rotate:-8deg;overflow:visible}
.home-values li:nth-child(2) .home-seal{translate:0 1.5rem;rotate:6deg;-webkit-mask-position:60px 30px;mask-position:60px 30px}
.home-values li:nth-child(3) .home-seal{rotate:-3deg;opacity:.82;-webkit-mask-position:110px 80px;mask-position:110px 80px}
.home-seal-rim{fill:none;stroke:var(--ink-color);stroke-width:5}
.home-seal-line{fill:none;stroke:var(--ink-color);stroke-width:1.8}
.home-seal-word{font-family:var(--type);font-size:24px;letter-spacing:.06em;fill:var(--ink-color);stroke:var(--ink-color);stroke-width:.7;text-anchor:middle}
.home-seal-small{font-family:var(--type);font-size:13px;letter-spacing:.12em;fill:var(--ink-color);text-anchor:middle}
.home-seal-star{fill:var(--ink-color)}
.home-seal-icon{fill:none;stroke:var(--ink-color);stroke-width:3.2;stroke-linecap:round;stroke-linejoin:round}
.home-seal-icon .drawing-thick{stroke-width:8}

.home-products{--focus:var(--mustard);position:relative;isolation:isolate;padding-top:clamp(3rem,6vw,4.5rem)}
.home-products::before{content:"";position:absolute;inset:0 0 clamp(7rem,15vw,12rem);z-index:-1;border-image:conic-gradient(var(--espresso) 0 0) fill 0//0 100vw}
.home-products h2{color:var(--latte)}
.home-products-head{display:flex;justify-content:space-between;align-items:end;gap:1rem 2rem;flex-wrap:wrap;margin-bottom:3rem}
.home-products-head p{color:#e8dccb}
.home-products-head a{color:var(--latte);font-weight:700;text-underline-offset:.25em;text-decoration-color:var(--mustard);text-decoration-thickness:2px}
.home-products-head a:hover{color:#fff}
.home-tray{--r:11px;--pt:clamp(2.75rem,5vw,4.25rem);position:relative;isolation:isolate;padding:var(--pt) clamp(1.5rem,4vw,3.75rem) clamp(2.25rem,4.5vw,3.5rem);filter:drop-shadow(0 18px 20px #3a240840)}
.home-tray::before{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(#fff4 1px,#0000 1.6px) 0 0/10px 10px,linear-gradient(125deg,#b98522,#ebc766 28%,#c89630 52%,#f2d783 76%,#b98522);-webkit-mask:linear-gradient(#000 0 0) center/calc(100% - 2*var(--r)) calc(100% - 2*var(--r)) no-repeat,radial-gradient(farthest-side,#000 97%,#0000) 0 0/calc(2*var(--r)) calc(2*var(--r)) round;mask:linear-gradient(#000 0 0) center/calc(100% - 2*var(--r)) calc(100% - 2*var(--r)) no-repeat,radial-gradient(farthest-side,#000 97%,#0000) 0 0/calc(2*var(--r)) calc(2*var(--r)) round}
.home-tray-items{--g:clamp(1.25rem,3vw,2.5rem);--n:4;list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;justify-content:center;gap:var(--g)}
.home-pastry{flex:0 1 calc((100% - (var(--n) - 1) * var(--g)) / var(--n))}
.home-pastry:nth-child(2){translate:0 calc(-1 * var(--pt) - 1.1rem);rotate:6deg}
.home-pastry:focus-visible{outline:3px solid var(--espresso);outline-offset:6px;border-radius:14px}
.home-cup{aspect-ratio:1;border-radius:50%;padding:9%;background:repeating-conic-gradient(#fffdf8 0 4deg,#e4dccd 4deg 8deg);box-shadow:0 10px 16px -8px #5a3a0aa0;transition:translate .35s ease}
.home-cup img{display:block;width:100%;height:100%;object-fit:cover;border-radius:50%;box-shadow:0 0 0 1px #0002}
.home-cartellino{position:relative;width:88%;margin:-1.1rem auto 0;perspective:700px;rotate:-2deg}
.home-pastry:nth-child(even) .home-cartellino{rotate:1.5deg}
.home-card{display:grid;transform-style:preserve-3d;transition:transform .5s cubic-bezier(.3,.7,.3,1)}
.home-card>*{grid-area:1/1;display:grid;align-content:center;margin:0;padding:.5rem .7rem .55rem;background:#fffdf8;text-align:center;box-shadow:0 4px 8px -2px #5a3a0a80;-webkit-backface-visibility:hidden;backface-visibility:hidden}
.home-card-front{position:relative}
.home-card-front h3{margin:0;font-family:var(--type);font-weight:400;font-size:1.05rem;line-height:1.25;color:var(--espresso)}
.home-card-front span{font-size:.8rem;color:var(--muted)}
.home-card-back{transform:rotateY(180deg);font-size:.85rem;line-height:1.4;color:var(--espresso)}
.home-flips{outline:none}
/* Folded corner: tells touch users the label turns over. */
.home-flips .home-card-front::after{content:"";position:absolute;right:0;bottom:0;width:14px;height:14px;background:linear-gradient(to top left,#fcf7ee 50%,#e2d2b4 50%);box-shadow:-1px -1px 2px #5a3a0a33}
.home-tick{position:absolute;top:-.6rem;right:-.5rem;width:1.7rem;height:1.7rem;fill:none;stroke:#4d4843;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round;rotate:-6deg}
.home-flips:is(:hover,:focus) .home-cup{translate:0 -6px}
.home-flips:is(:hover,:focus) .home-card{transform:rotateY(180deg)}

.home-visit{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:clamp(2rem,5vw,4.5rem);align-items:center}
.home-visit address{font-style:normal;font-family:var(--type);font-size:1.25rem;color:var(--espresso)}
.home-visit p:not(.home-actions){color:var(--muted);max-width:46ch;margin-top:.5rem}
.home-visit .home-actions{margin-top:1.75rem!important}
.delivery-map{margin:0;padding:clamp(.75rem,2vw,1.25rem);background-color:#fbf7ee;background-image:linear-gradient(#e6dccb 1px,#0000 1px),linear-gradient(90deg,#e6dccb 1px,#0000 1px);background-size:22px 22px;rotate:-1.5deg;box-shadow:0 18px 30px -18px #3a240880}
.delivery-map svg{display:block;width:100%;height:auto;overflow:visible}
.delivery-map-zone{fill:#d4a32514;stroke:var(--mustard);stroke-width:2;stroke-dasharray:3 7;stroke-linecap:round}
.delivery-map-route{fill:none;stroke:var(--espresso);stroke-width:2;stroke-dasharray:1 7;stroke-linecap:round}
.delivery-map-town circle{fill:var(--espresso)}
.delivery-map text{font-family:var(--type);font-size:15px;fill:var(--espresso)}
.delivery-map .delivery-map-carpi-label{font-size:22px}
.delivery-map .delivery-map-more{font-size:18px;fill:var(--ink-color)}
.delivery-map-more-route{fill:none;stroke:var(--ink-color);stroke-width:2;stroke-dasharray:1 7;stroke-linecap:round}
.delivery-map-more-arrow{fill:none;stroke:var(--ink-color);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.delivery-map .delivery-map-note{font-size:12px;fill:var(--muted)}
.delivery-map-carpi{fill:var(--mustard);stroke:var(--espresso);stroke-width:2.5}
.delivery-map-van rect,.delivery-map-van path{fill:var(--mustard);stroke:var(--espresso);stroke-width:1.8;stroke-linejoin:round}
.delivery-map-van circle{fill:var(--espresso)}

@media(min-width:861px){.home-hero{display:grid;align-items:center;min-height:clamp(600px,92svh,1000px)}}
@media(min-width:1200px){.home-hero-inner{--w:min(1360px,100vw - 5rem);width:var(--w);margin-inline:calc((100% - var(--w)) / 2)}.home-hero-inner{grid-template-columns:minmax(0,1.35fr) minmax(0,1fr)}.home-hero h1{font-size:clamp(3.2rem,3.5vw,3.9rem)}.home-hero-logo{width:clamp(260px,19vw,360px)}.home-hero-copy>p:not(.home-actions){font-size:clamp(1.15rem,1.05vw,1.4rem)}.home-slip-old-2{transform:translate(calc(10% + 3vw),6%) rotate(8deg)}}
@media(min-width:1600px){.home-slips{scale:1.12}.home-slip-old-1{transform:translate(-10%,-7%) rotate(-7deg)}.home-slip-old-3{display:block}.home-hero .ticket{font-size:1.15rem}}
@media(min-width:1900px){.home-slips{scale:1.22}}
@media(min-width:901px){.home-mission{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:clamp(2rem,4vw,4rem)}.home-values{margin:0;display:grid;grid-template-columns:repeat(2,auto);gap:0 1rem;justify-content:center}.home-values li:nth-child(3){grid-column:1/-1;justify-self:center;margin-top:-1.5rem}.home-values li:nth-child(2) .home-seal{translate:0 .5rem}.home-seal{width:clamp(170px,15vw,210px)}}
@media(max-width:900px){.home-tray-items{--n:2}.home-visit{grid-template-columns:1fr}}
@media(max-width:860px){.home-hero-inner{grid-template-columns:1fr}}
@media(max-width:700px){.awning{--scallop:11px}.home-hero{padding-bottom:0}.home-hero h1{font-size:clamp(1.9rem,8.4vw,2.5rem)}.home>.home-hero+section{margin-top:7.5rem}.home-hero .home-slips{margin-bottom:-3.5rem}.home-slip.home-slip-old-1{transform:translate(-2%,-4%) rotate(-4deg)}.home-slip-old-2{display:none}.home-hero-inner{grid-template-columns:1fr;gap:1.75rem}.home-hero-logo{width:min(230px,70%)}.home-slip{transform:rotate(1.5deg);padding:1.8rem 1.3rem 4.6rem}.home-slip-head{font-size:.9rem;flex-direction:column;gap:0}.home-slip-items{font-size:1.05rem}.home-actions .ticket{flex:1 1 auto;text-align:center}}
@media(prefers-reduced-motion:reduce){.home-slip-stamp{animation:none}.ticket,.ticket::before,.ticket::after{transition:none}.home-cup,.home-card{transition:none}}
@media(forced-colors:active){.ticket{border:2px solid ButtonText}}
/* Site footer (public pages): torn-off receipt stub in the homepage palette. */
.site-footer{--footer-bg:#2b1d15;--footer-text:#e8dccb;--footer-accent:#d4a325;margin-top:0;padding:clamp(3rem,6vw,4.5rem) 0 1.5rem;background:var(--footer-bg);color:var(--footer-text);font-family:"Literata",Georgia,serif;font-size:1rem;line-height:1.6;-webkit-mask:radial-gradient(circle 6px at 50% 0,#0000 97%,#000) 0 0/18px 100% repeat-x;mask:radial-gradient(circle 6px at 50% 0,#0000 97%,#000) 0 0/18px 100% repeat-x}
.footer-inner{display:grid;grid-template-columns:1.4fr repeat(3,1fr);gap:2.5rem 2rem;padding-bottom:2.5rem;border-bottom:1.5px dashed #e8dccb4d}
.footer-brand img{display:block;width:170px;height:auto;rotate:-3deg;margin-bottom:1.1rem}
.footer-brand p{max-width:32ch;margin:0;color:#cbbba5}
.site-footer h2{margin:0 0 .8rem;font-family:"Special Elite","Courier New",monospace;font-weight:400;font-size:1.2rem;color:var(--footer-accent)}
.site-footer nav{display:block}
.site-footer ul{list-style:none;margin:0;padding:0;display:grid;gap:.35rem}
.site-footer address{font-style:normal}
.site-footer a{color:var(--footer-text);text-decoration:none;background:linear-gradient(var(--footer-accent),var(--footer-accent)) 0 100%/0 2px no-repeat;transition:background-size .2s ease-out;overflow-wrap:anywhere}
.site-footer a:hover{color:#fff;background-size:100% 2px}
.site-footer a:focus-visible{outline:3px solid var(--footer-accent);outline-offset:3px;border-radius:2px}
.footer-brand a{background:none;display:inline-block}
.site-footer .footer-base{margin:1.25rem auto 0;font-size:.85rem;color:#a8977f}
@media(max-width:900px){.footer-inner{grid-template-columns:1fr 1fr}.footer-brand{grid-column:1/-1}}
@media(max-width:480px){.footer-inner{grid-template-columns:1fr}.footer-brand img{width:140px}}
@media(prefers-reduced-motion:reduce){.site-footer a{transition:none}}
@media(forced-colors:active){.site-footer{border-top:2px solid CanvasText}}
/* Ticket extras for <button> (the base stylesheet colours every button) and smaller category tickets. */
.ticket,.ticket:hover{background:none;border:0;border-radius:0;cursor:pointer}
.ticket-small{--notch:radial-gradient(circle 5px at 0 50%,#0000 97%,#000) left/51% 100% no-repeat,radial-gradient(circle 5px at 100% 50%,#0000 97%,#000) right/51% 100% no-repeat;padding:.5rem 1.15rem;font-size:.98rem;white-space:nowrap}
.ticket-small::after{translate:2px 3px}
.ticket[aria-current]{--face:var(--mustard);--face-hover:#e8bb42}

/* Inner pages (/prodotti, /contatti): awning header, then paper on the counter. */
.page-awning{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:clamp(1.5rem,4vw,3rem);padding:clamp(2.5rem,5vw,3.75rem) 0}
.page-awning-logo{display:block;border-radius:6px}
.page-awning-logo img{display:block;width:clamp(120px,13vw,170px);height:auto;rotate:-3deg}
.page-awning h1{font-family:var(--type);font-weight:400;font-size:clamp(2.2rem,5vw,3.5rem);line-height:1.05;margin:0 0 .6rem;color:var(--latte)}
.page-awning p{max-width:52ch;font-size:1.1rem;color:#e8dccb}
.shop>.awning+*{margin-top:clamp(2.75rem,5vw,3.75rem)}
.shop input:not([type=checkbox],[type=radio],[type=file],[type=hidden]),.shop select,.shop textarea{font-family:var(--text);font-size:1.05rem;color:var(--espresso);background:transparent;border:0;border-bottom:2px solid var(--espresso);border-radius:0;padding:.4rem .1rem}
.shop input::placeholder{color:#8b7d70}

.shop-categories{display:flex;flex-wrap:wrap;gap:.8rem .7rem;padding:.3rem 0 .5rem}
.shop-categories .ticket{flex:none}
.shop-search{display:flex;flex-wrap:wrap;align-items:end;gap:1rem 1.75rem;margin-top:1.5rem}
.shop-search label{display:grid;gap:.2rem;min-width:0;font-family:var(--type);font-size:.95rem;color:var(--muted)}
.shop-search select{max-width:min(100%,16rem)}
.shop-search .shop-search-q{flex:1 1 260px}
.shop-search input{width:100%}
.shop-count{margin-top:2.25rem!important;padding-bottom:.6rem;border-bottom:1.5px dashed #d8cab1;font-family:var(--type);color:var(--muted)}
.shop-empty{margin-top:2rem!important;font-family:var(--type);font-size:1.3rem;color:var(--espresso)}
.shop-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:clamp(1.25rem,3vw,2rem);margin-top:1.75rem}
.shop-pagination{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:1rem 1.5rem;margin-top:3rem;font-family:var(--type);color:var(--espresso)}

/* Product card as a cream price tag with a punched hole. */
.tag{position:relative;display:flex;flex-direction:column;padding:1.9rem .75rem 1.3rem;border:0;border-radius:4px;background:#fbf7ee;box-shadow:0 1px 0 #e3d6c0,0 14px 24px -16px #3a24088c;overflow:visible}
.tag::before{content:"";position:absolute;top:.6rem;left:50%;width:12px;height:12px;translate:-50% 0;border-radius:50%;background:#fcfaf6;box-shadow:inset 0 1px 2px #3a240859}
.tag-photo{display:grid;place-items:center;aspect-ratio:4/3;overflow:hidden;border-radius:2px;background:#efe4cf}
.tag .tag-photo img{width:100%;height:100%;object-fit:cover}
.tag-drawing{width:44%;fill:none;stroke:var(--ink-color);stroke-width:3.2;stroke-linecap:round;stroke-linejoin:round;opacity:.75}
.tag-drawing .drawing-thick{stroke-width:8}
.tag-body{padding:.95rem .35rem 0}
.tag small{font-family:var(--type);font-size:.85rem;color:var(--ink-color)}
.tag h3{margin:.2rem 0 0;font-family:var(--type);font-weight:400;font-size:1.25rem;line-height:1.2;color:var(--espresso);overflow-wrap:anywhere}
.tag p{margin-top:.5rem;color:var(--muted);font-size:.97rem;line-height:1.5}

/* Contatti: direct contacts and map beside an order-slip form. */
.contact{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);grid-template-areas:"info form" "map form";gap:clamp(2rem,5vw,3rem) clamp(2rem,5vw,4.5rem);align-items:start}
.contact-info{grid-area:info}.contact-map{grid-area:map}.contact-slip{grid-area:form}
.contact-info address{font-style:normal;font-family:var(--type);font-size:1.25rem;color:var(--espresso)}
.contact-actions{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:1.5rem!important}
.contact-map-link{margin-top:1.1rem!important}
.contact-map-link a{color:var(--espresso);text-underline-offset:.25em;text-decoration-color:var(--mustard);text-decoration-thickness:2px}
.contact-slip{filter:drop-shadow(0 18px 20px #3a240838)}
.contact-form{position:relative;display:grid;gap:1.5rem;padding:2.5rem clamp(1.25rem,4vw,2.5rem) 2.25rem;background:#fbf7ee;-webkit-mask:radial-gradient(circle 5px at 50% 0,#0000 98%,#000) 0 0/16px 100% repeat-x;mask:radial-gradient(circle 5px at 50% 0,#0000 98%,#000) 0 0/16px 100% repeat-x}
.contact-form-head{display:flex;justify-content:space-between;align-items:baseline;flex-wrap:wrap;gap:.25rem 1rem;padding-bottom:.6rem;border-bottom:2px solid var(--espresso);font-family:var(--type);color:var(--muted)}
.shop .contact-form-head h2{margin:0;font-size:1.45rem}
.contact-form label{display:grid;gap:.25rem;font-family:var(--type);color:var(--espresso)}
.contact-form input{border-bottom-color:#b9a78c}
.shop .contact-form textarea{--line:1.9rem;min-height:calc(var(--line) * 6);line-height:var(--line);padding:0 .1rem;border-bottom-color:#b9a78c;background:repeating-linear-gradient(#0000 0 calc(var(--line) - 1px),#dccdb4 calc(var(--line) - 1px) var(--line)) local;resize:vertical}
/* Focused field: no box, the line darkens and thickens with a soft mustard highlight, like marking the line on the slip. */
.shop :is(input,select,textarea):focus-visible{outline:none;border-bottom-color:var(--espresso);box-shadow:0 1px 0 var(--espresso);background-color:#f3dc9a4d}
.contact-form .ticket{justify-self:start;margin-top:.25rem}
.contact-sent{position:relative;padding:.7rem 8.5rem .7rem .9rem;border:2px dashed var(--ink-color);font-family:var(--type);color:#6b4a08}
.contact-stamp{top:50%;right:.6rem;bottom:auto;margin-top:-1.2rem}
@media(max-width:900px){.contact{grid-template-columns:1fr;grid-template-areas:"info" "form" "map"}}
@media(max-width:600px){.shop-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem .8rem}.tag{padding:1.6rem .5rem 1rem}.tag h3{font-size:1.02rem}.tag p{font-size:.9rem}.tag-body{padding:.75rem .2rem 0}.contact-stamp{font-size:1.25rem}.page-awning{grid-template-columns:1fr;gap:1.25rem;padding-bottom:2.25rem}.page-awning-logo{justify-self:start}.page-awning-logo img{width:130px}.contact-actions .ticket{flex:1 1 auto;text-align:center}.shop-search .ticket{flex:1 1 auto;text-align:center}}

/* Paper sheet: perforated cream paper for login, admin forms, messages and error pages. */
.sheet-wrap{filter:drop-shadow(0 16px 18px #3a240833)}
.sheet{position:relative;padding:2.25rem clamp(1.25rem,4vw,2.25rem) 2rem;background:#fbf7ee;-webkit-mask:radial-gradient(circle 5px at 50% 0,#0000 98%,#000) 0 0/16px 100% repeat-x;mask:radial-gradient(circle 5px at 50% 0,#0000 98%,#000) 0 0/16px 100% repeat-x}
.sheet-head{display:flex;justify-content:space-between;align-items:baseline;flex-wrap:wrap;gap:.25rem 1rem;padding-bottom:.6rem;border-bottom:2px solid var(--espresso);font-family:var(--type);color:var(--muted)}
.shop .sheet-head h2{margin:0;font-size:1.45rem}
.login-sheet{max-width:30rem}
.admin-form{display:grid;gap:1.4rem}
.admin-form label,.admin-create label,.category-row label{display:grid;gap:.25rem;font-family:var(--type);color:var(--espresso)}
.admin-form .ticket{justify-self:start;margin-top:.25rem}
.admin-hint{font-family:var(--text);font-size:.9rem;color:var(--muted)}
.shop .check{display:flex!important;align-items:center;gap:.5rem;font-family:var(--type);color:var(--espresso)}
.shop input[type=checkbox]{width:1.1rem;height:1.1rem;margin:0;accent-color:var(--espresso)}
.shop input[type=file]{max-width:100%;padding:0;border:0;border-radius:0;background:none;font-family:var(--text);font-size:.95rem;color:var(--muted)}
.shop input[type=file]::file-selector-button{margin-right:.9rem;padding:.45rem .9rem;border:1.5px dashed var(--espresso);border-radius:0;background:#f3e6c8;font-family:var(--type);color:var(--espresso);cursor:pointer}
.error-page{padding-top:clamp(3rem,10vw,6rem)}
.error-page .sheet{max-width:34rem;display:grid;gap:1rem}
.error-page h1{margin:0;font-family:var(--type);font-weight:400;font-size:2rem;color:var(--espresso)}

/* Admin (back office): same materials, calmer layout built for repeated use. */
.admin-bar{position:relative;background:var(--espresso);color:var(--latte)}
.admin-bar::after{content:"";position:absolute;left:0;right:0;top:100%;height:10px;background:radial-gradient(circle 10px at 50% 0,var(--espresso) 96%,#0000) 0 0/20px 10px repeat-x}
.admin-bar-inner{display:flex;align-items:center;flex-wrap:wrap;gap:.75rem 1.25rem;padding:1rem 0}
.admin-bar-logo{display:block;border-radius:6px}
.admin-bar-logo img{display:block;width:92px;height:auto;rotate:-3deg}
.admin-bar-label{font-family:var(--type);color:#e8dccb}
.admin-bar-nav{margin-left:auto;gap:.7rem}
.admin-bar-nav form{display:flex}
.admin-bar .ticket::after{background:#0d0805}
.admin-bar :is(a,button):focus-visible{outline:3px solid var(--mustard);outline-offset:3px}
.admin-bar-logout,.admin-bar-logout:hover{padding:.35rem .4rem;background:none;border:0;font-family:var(--type);color:var(--latte);text-decoration:underline;text-decoration-color:var(--mustard);text-underline-offset:.25em;cursor:pointer}
.admin-head{display:flex;align-items:end;justify-content:space-between;flex-wrap:wrap;gap:1rem 2rem;margin:.5rem 0 2rem}
.admin h1{margin:0;font-family:var(--type);font-weight:400;font-size:clamp(2rem,4vw,2.8rem);line-height:1.1;color:var(--espresso)}
.admin-head p{margin-top:.35rem!important;font-family:var(--type);color:var(--muted)}
.admin-sheet{max-width:44rem;margin-bottom:2.5rem}
.ledger-link{color:var(--espresso);text-underline-offset:.25em;text-decoration-color:var(--mustard);text-decoration-thickness:2px}
.ticket-danger{--face:#f6e3d9;--face-hover:#f1d2c3;color:#8f2a17}
.ticket-danger:hover{color:#8f2a17}

.ledger-wrap{overflow-x:auto;padding:.25rem 1rem 1rem;background:#fbf7ee;box-shadow:0 14px 24px -18px #3a24088c}
.ledger{width:100%;border-collapse:collapse}
.ledger th{padding:.9rem .75rem .6rem;border-bottom:2px solid var(--espresso);font-family:var(--type);font-weight:400;font-size:.95rem;color:var(--muted);text-align:left}
.ledger td{padding:.7rem .75rem;border-bottom:1.5px dashed #d8cab1;vertical-align:middle;color:var(--espresso)}
.ledger td:nth-child(2){font-family:var(--type);font-size:1.05rem}
.ledger tbody tr:hover{background:#f6ecd8}
.ledger-thumb{display:block;width:64px;height:48px;object-fit:cover;border-radius:2px;background:#efe4cf}
.ledger-actions{display:flex;align-items:center;justify-content:flex-end;gap:1rem}
.ledger-actions form{display:flex}

.admin-create{display:flex;flex-wrap:wrap;align-items:end;gap:1rem 1.5rem}
.admin-create label{flex:1 1 240px}
.admin-categories{list-style:none;margin:0;padding:0;display:grid;gap:1rem}
.category-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:1rem 2rem;padding:1.25rem 1.4rem;background:#fbf7ee;box-shadow:0 12px 20px -16px #3a24088c}
.category-save,.category-delete{display:flex;flex-wrap:wrap;align-items:end;gap:.9rem 1.25rem}
.category-save{grid-column:1/-1}
.category-name{flex:1 1 220px}
.category-order input{width:5.5rem}
.category-count{font-family:var(--type);color:var(--muted);align-self:center}
.category-delete select{max-width:15rem;font-size:.95rem}

.admin-messages{display:grid;gap:1.75rem;max-width:48rem}
.admin-message{display:grid;gap:.75rem}
.admin-message time{font-size:.9rem}
.admin-current-image{display:flex;flex-wrap:wrap;align-items:end;gap:1rem 1.5rem}
.admin-current-image img{display:block;width:220px;max-width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:2px}
@media(max-width:700px){.admin-bar-nav{margin-left:0;width:100%}.category-row{grid-template-columns:1fr}.ledger-wrap{padding:.25rem .75rem}.ledger thead{display:none}.ledger tr{display:grid;grid-template-columns:64px minmax(0,1fr);gap:.2rem .9rem;padding:.9rem 0;border-bottom:1.5px dashed #d8cab1}.ledger td{padding:0;border:0}.ledger td:first-child{grid-row:span 3}.ledger td:nth-child(3){font-size:.92rem;color:var(--muted)}.ledger-actions{justify-content:flex-start;margin-top:.4rem}}

