/* Arthur's Café – black & chocolate brown theme */
@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:wght@500;700&family=Lato:wght@400;700&display=swap');
:root{--black:#0e0b09;--black2:#171210;--card:#1f1814;--choc:#5a3420;--choc2:#7b4a2d;--gold:#c8935f;--text:#efe6dc;--muted:#a8998b;--line:#3a2a20}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:'Lato',sans-serif;background:var(--black);color:var(--text);line-height:1.6}
img{max-width:100%;display:block}
a{color:var(--gold);text-decoration:none}
h1,h2,h3{font-family:'Playfair Display',serif;line-height:1.2}
.container{width:min(1150px,92%);margin:auto}
section{padding:4.5rem 0}
.eyebrow{color:var(--gold);text-transform:uppercase;letter-spacing:.2em;font-size:.75rem;font-weight:700}
.section-title{font-size:clamp(1.7rem,4vw,2.6rem);margin:.4rem 0 1.6rem}
.btn{display:inline-block;background:var(--choc);color:var(--text);border:1px solid var(--choc2);padding:.75rem 1.6rem;border-radius:4px;cursor:pointer;font:inherit;font-weight:700;transition:.2s}
.btn:hover{background:var(--choc2)}
.btn.ghost{background:transparent;border-color:var(--gold);color:var(--gold)}
.btn.ghost:hover{background:var(--gold);color:var(--black)}
.btn.sm{padding:.4rem .9rem;font-size:.85rem}
.btn.danger{background:#6e2020;border-color:#8d2c2c}
/* navbar */
.navbar{position:sticky;top:0;z-index:50;display:flex;align-items:center;justify-content:space-between;padding:.8rem 4%;background:rgba(14,11,9,.95);border-bottom:1px solid var(--line);backdrop-filter:blur(6px)}
.brand{display:flex;align-items:center;gap:.6rem;color:var(--text);font-family:'Playfair Display',serif;font-size:1.3rem}
.brand img{width:42px;height:42px;border-radius:50%;object-fit:cover}
.brand em{color:var(--gold)}
.nav-links{display:flex;list-style:none;gap:1.4rem;align-items:center}
.nav-links a{color:var(--text);font-size:.95rem}
.nav-links a.active,.nav-links a:hover{color:var(--gold)}
.cart-btn{background:var(--choc);color:var(--text);border:0;padding:.45rem 1rem;border-radius:20px;cursor:pointer;font:inherit}
#cart-count{background:var(--gold);color:var(--black);border-radius:10px;padding:0 .45rem;font-size:.8rem;margin-left:.2rem}
.nav-toggle{display:none;background:none;border:0;color:var(--text);font-size:1.6rem;cursor:pointer}
/* hero */
.hero{min-height:88vh;display:flex;align-items:center;background:linear-gradient(90deg,rgba(14,11,9,.92) 30%,rgba(14,11,9,.4)),url(images/background.jpg) center/cover}
.hero h1{font-size:clamp(2.4rem,7vw,4.8rem);margin:1rem 0}
.hero p{max-width:520px;color:var(--muted);margin-bottom:2rem}
.page-hero{text-align:center;padding:5rem 1rem 4rem;background:linear-gradient(rgba(14,11,9,.8),rgba(14,11,9,.95)),url(images/background.jpg) center/cover}
.page-hero h1{font-size:clamp(2.2rem,6vw,3.6rem);margin-top:.5rem}
/* layout */
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1.5rem}
.split{display:grid;grid-template-columns:1fr 1fr;gap:3rem;align-items:center}
.card{background:var(--card);border:1px solid var(--line);border-radius:8px;overflow:hidden;transition:.25s}
.card:hover{border-color:var(--choc2)}
.card>img{width:100%;aspect-ratio:4/3;object-fit:cover}
.card .body{padding:1.2rem}
.row{display:flex;justify-content:space-between;align-items:center;gap:.6rem;flex-wrap:wrap}
.price{color:var(--gold);font-weight:700}
.size-select{margin-top:.6rem}
.size-tag{display:inline-block;margin-top:.4rem;color:var(--muted);border:1px solid var(--line);padding:0 .5rem;border-radius:10px}
.filters{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center;margin-bottom:2rem}
.filters button{background:transparent;border:1px solid var(--line);color:var(--text);padding:.45rem 1rem;border-radius:20px;cursor:pointer;font:inherit}
.filters button.active,.filters button:hover{background:var(--choc);border-color:var(--choc2)}
.map{width:100%;height:420px;border:0;border-radius:8px;filter:grayscale(.3)}
.gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1rem}
.gallery-grid img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:6px;cursor:zoom-in;transition:.3s}
.gallery-grid img:hover{opacity:.8}
/* forms */
label{display:block;font-size:.85rem;color:var(--muted);margin:.9rem 0 .3rem}
input,textarea,select{width:100%;background:var(--black2);border:1px solid var(--line);color:var(--text);padding:.65rem .8rem;border-radius:4px;font:inherit}
input:focus,textarea:focus,select:focus{outline:none;border-color:var(--gold)}
.choice{display:flex;gap:.5rem;flex-wrap:wrap}
.choice label{margin:0;flex:1;min-width:90px}
.choice input{display:none}
.choice span{display:block;text-align:center;padding:.6rem;border:1px solid var(--line);border-radius:4px;cursor:pointer;color:var(--text)}
.choice input:checked+span{background:var(--choc);border-color:var(--gold)}
.stars{color:var(--gold);letter-spacing:2px}
.star-input span{font-size:1.8rem;cursor:pointer;color:var(--line)}
.star-input span.on{color:var(--gold)}
/* modal / cart */
.modal{position:fixed;inset:0;background:rgba(0,0,0,.75);display:none;align-items:center;justify-content:center;z-index:100;padding:1rem}
.modal.open{display:flex}
.modal-box{position:relative;background:var(--black2);border:1px solid var(--line);border-radius:8px;padding:2rem;width:min(560px,100%);max-height:92vh;overflow-y:auto}
.close{position:absolute;top:.6rem;right:.9rem;background:none;border:0;color:var(--text);font-size:1.8rem;cursor:pointer}
.cart-item{display:grid;grid-template-columns:1fr auto auto;gap:1rem;align-items:center;padding:.7rem 0;border-bottom:1px solid var(--line)}
.qty button{background:var(--choc);color:var(--text);border:0;width:26px;height:26px;border-radius:50%;cursor:pointer}
.qr{margin:1rem auto;background:#fff;padding:8px;border-radius:6px}
.receipt{background:#f6efe6;color:#222;padding:1.4rem;border-radius:4px;font-family:'Courier New',monospace;font-size:.88rem}
.receipt h3{text-align:center;font-family:inherit}
.receipt hr{border:0;border-top:1px dashed #999;margin:.7rem 0}
.toast{position:fixed;bottom:1.5rem;left:50%;transform:translateX(-50%);background:var(--choc);color:var(--text);padding:.8rem 1.4rem;border-radius:30px;z-index:200;display:none}
/* footer */
footer{background:var(--black2);border-top:1px solid var(--line);padding:3.5rem 0 1.5rem;color:var(--muted)}
.foot-grid{display:grid;grid-template-columns:2fr 1fr 1.4fr 1fr;gap:2rem}
footer h3{color:var(--text)}
footer h4{color:var(--gold);letter-spacing:.15em;font-size:.8rem;margin-bottom:.6rem}
footer ul{list-style:none}
footer li{margin:.3rem 0}
footer a{color:var(--muted)}
footer a:hover{color:var(--gold)}
.foot-bottom{text-align:center;border-top:1px solid var(--line);margin-top:2.5rem;padding-top:1.2rem;font-size:.85rem}
/* dashboard */
.login-wrap{min-height:100vh;display:grid;place-items:center;padding:1rem;background:linear-gradient(rgba(14,11,9,.85),rgba(14,11,9,.95)),url(images/background.jpg) center/cover}
.login-box{background:var(--black2);border:1px solid var(--line);border-radius:8px;padding:2rem;width:min(400px,100%)}
.login-box img{width:90px;border-radius:50%;margin:0 auto 1rem}
.dash{display:grid;grid-template-columns:230px 1fr;min-height:100vh}
.sidebar{background:var(--black2);border-right:1px solid var(--line);padding:1.5rem 1rem;display:flex;flex-direction:column;gap:.3rem}
.sidebar button{background:none;border:0;color:var(--text);text-align:left;padding:.7rem 1rem;border-radius:4px;cursor:pointer;font:inherit}
.sidebar button.active,.sidebar button:hover{background:var(--choc)}
#logout{margin-top:auto;color:#e88}
.dash main{padding:2rem;overflow-x:hidden}
.panel{display:none}.panel.active{display:block}
.stats{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:1rem;margin:1.2rem 0}
.stat{background:var(--card);border:1px solid var(--line);border-radius:6px;padding:1rem;color:var(--muted);font-size:.85rem}
.stat b{display:block;color:var(--gold);font-size:1.5rem}
.table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:6px}
table{width:100%;border-collapse:collapse;font-size:.88rem;min-width:600px}
th,td{padding:.7rem;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
th{background:var(--card);color:var(--gold)}
td select{width:auto}
.bar{height:8px;background:linear-gradient(90deg,var(--choc),var(--gold));border-radius:4px}
/* responsive */
@media (max-width:900px){
  .foot-grid{grid-template-columns:1fr 1fr}
  .split{grid-template-columns:1fr;gap:2rem}
  .nav-toggle{display:block}
  .nav-links{position:absolute;top:100%;left:0;right:0;flex-direction:column;background:var(--black2);padding:1rem;gap:1rem;display:none;border-bottom:1px solid var(--line)}
  .nav-links.open{display:flex}
  .dash{grid-template-columns:1fr}
  .sidebar{flex-direction:row;flex-wrap:wrap;border-right:0;border-bottom:1px solid var(--line)}
  .side-brand{width:100%}
  #logout{margin-top:0}
}
@media (max-width:560px){
  section{padding:3rem 0}
  .foot-grid{grid-template-columns:1fr}
  .modal-box{padding:1.4rem 1rem}
  .dash main{padding:1.2rem}
  .map{height:300px}
}
/* drink customization */
.og{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:1rem 1.1rem .4rem;margin-bottom:1rem}
.og.error{outline:2px solid var(--gold)}
.og-head{display:flex;justify-content:space-between;align-items:center}
.og-head h3{font-size:1.1rem}
.og-badge{background:var(--choc2);color:var(--text);font-size:.7rem;font-weight:700;padding:.2rem .7rem;border-radius:999px}
.og-sub{font-size:.85rem;color:var(--muted);margin:.2rem 0 .4rem}
.og-opt{position:relative;display:flex;align-items:center;gap:.8rem;margin:0 -.6rem;padding:.8rem .6rem;border-radius:8px;cursor:pointer;font-size:.95rem;color:var(--text)}
.og-opt.popular{border:1px dashed var(--choc2);margin-top:.15rem;margin-bottom:.7rem}
.og-opt input{position:absolute;opacity:0}
.og-dot{width:20px;height:20px;border:2px solid var(--muted);border-radius:50%;flex:none;display:grid;place-items:center}
.og-opt input:checked+.og-dot{border-color:var(--gold)}
.og-opt input:checked+.og-dot::after{content:"";width:10px;height:10px;border-radius:50%;background:var(--gold)}
.og-opt input:focus-visible+.og-dot{box-shadow:0 0 0 3px var(--choc2)}
.og-price{margin-left:auto;color:var(--muted);font-size:.9rem}
.og-pop{position:absolute;left:.6rem;bottom:-.65rem;background:var(--card);padding:0 .4rem;font-size:.7rem;color:var(--muted)}
@media print{body *{visibility:hidden}#receipt,#receipt *{visibility:visible}#receipt{position:absolute;inset:0}}

/* image hover + click to enlarge (gallery & menu) */
.zoomable{position:relative;overflow:hidden;cursor:zoom-in}
.zoomable img{transition:transform .4s}
.zoomable::after{content:"\1F50D  View";position:absolute;inset:0;display:grid;place-items:center;background:rgba(14,11,9,.55);color:#fff;font-weight:700;letter-spacing:.08em;opacity:0;transition:opacity .25s;pointer-events:none}
.zoomable:hover img,.zoomable:focus-visible img{transform:scale(1.08)}
.zoomable:hover::after,.zoomable:focus-visible::after{opacity:1}
.zoomable:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
.card>.zoomable>img{width:100%;aspect-ratio:4/3;object-fit:cover}
.gallery-grid .zoomable{border-radius:6px}
.gallery-grid .zoomable img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:0;cursor:inherit}
.gallery-grid .zoomable img:hover{opacity:1}
.lb{margin:0;text-align:center}
.lb img{max-width:100%;max-height:82vh;margin:auto;border-radius:8px}
.lb figcaption{margin-top:.7rem;color:#fff;font-weight:700}
/* floating buttons: dark/light toggle + read aloud */
.fab-wrap{position:fixed;right:1rem;bottom:1rem;z-index:90;display:flex;flex-direction:column;align-items:flex-end;gap:.6rem}
.fab{width:46px;height:46px;border-radius:50%;border:1px solid var(--choc2);background:var(--choc);color:#fff;font:700 1.2rem/1 'Lato',sans-serif;cursor:pointer;display:grid;place-items:center;box-shadow:0 4px 14px rgba(0,0,0,.4);transition:.2s}
.fab:hover{background:var(--choc2)}
.fab.pill{width:auto;padding:0 1rem;border-radius:30px;font-size:.9rem}
.fab.speaking{background:var(--gold);border-color:var(--gold);color:#0e0b09;animation:fabpulse 1.4s infinite}
@keyframes fabpulse{50%{box-shadow:0 0 0 8px rgba(200,147,95,.25)}}
@media print{.fab-wrap{display:none}}
/* light mode (dark is the default) */
html[data-theme="light"]{color-scheme:light;--black:#faf6f1;--black2:#f1e8dd;--card:#ffffff;--choc:#7b4a2d;--choc2:#5a3420;--gold:#9a5a24;--text:#2a1d15;--muted:#6b5a4c;--line:#dccdbd}
html[data-theme="light"] .navbar{background:rgba(250,246,241,.95)}
html[data-theme="light"] .hero{background:linear-gradient(90deg,rgba(250,246,241,.94) 30%,rgba(250,246,241,.45)),url(images/background.jpg) center/cover}
html[data-theme="light"] .page-hero{background:linear-gradient(rgba(250,246,241,.85),rgba(250,246,241,.95)),url(images/background.jpg) center/cover}
html[data-theme="light"] .login-wrap{background:linear-gradient(rgba(250,246,241,.88),rgba(250,246,241,.96)),url(images/background.jpg) center/cover}
html[data-theme="light"] .btn:not(.ghost),html[data-theme="light"] .cart-btn,html[data-theme="light"] .filters button.active,html[data-theme="light"] .filters button:hover,html[data-theme="light"] .qty button,html[data-theme="light"] .toast,html[data-theme="light"] .og-badge,html[data-theme="light"] .choice input:checked+span,html[data-theme="light"] .sidebar button.active,html[data-theme="light"] .sidebar button:hover{color:#fff}
html[data-theme="light"] #logout{color:#b03a3a}
html[data-theme="light"] .contact-list a{color:var(--text)!important}
html[data-theme="light"] .contact-list a:hover{color:var(--gold)!important}
html[data-theme="light"] .modal{background:rgba(0,0,0,.6)}
