@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:ital,wght@0,500;0,600;0,700;1,500;1,600&display=swap');
:root{--paper:#f2ecdf;--paper2:#e8dfce;--ink:#171512;--muted:#746d61;--line:rgba(23,21,18,.22);--accent:#8d3f2e;--white:#fffaf0;--green:#2e7d4f;--serif:"Playfair Display",Georgia,serif;--sans:"DM Sans",Arial,sans-serif;--radius:6px;--ok:#2e7d4f;--warn:#b7791f;--bad:#b3261e}
*{box-sizing:border-box}html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}img{max-width:100%;display:block}
.container{width:min(1240px,calc(100% - 32px));margin:auto}
.kicker{font-size:11px;letter-spacing:.18em;text-transform:uppercase;font-weight:700;color:var(--accent)}
.muted{color:var(--muted)}
/* header */
.topline{display:flex;justify-content:space-between;gap:10px;font-size:11px;letter-spacing:.08em;text-transform:uppercase;padding:10px 0;border-bottom:1px solid var(--ink);flex-wrap:wrap}
.masthead{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:18px 0;border-bottom:3px double var(--ink)}
.masthead h1{font:700 clamp(30px,5vw,52px)/0.95 var(--serif);margin:0;text-align:center;letter-spacing:.02em}
.mast-meta{font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:var(--muted)}
.nav{display:flex;gap:4px;align-items:center;border-bottom:1px solid var(--ink);padding:8px 0;position:sticky;top:0;background:var(--paper);z-index:50;overflow-x:auto}
.nav a{padding:8px 12px;font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;white-space:nowrap;border-radius:20px}
.nav a.active,.nav a:hover{background:var(--ink);color:var(--paper)}
.burger{display:none;margin-left:auto;border:1px solid var(--ink);background:none;border-radius:8px;padding:8px 12px;font-weight:700}
/* hero */
.hero-grid{display:grid;grid-template-columns:1.6fr 1fr;gap:16px;margin:18px 0}
.hero-main{min-height:420px;border:1px solid var(--ink);border-radius:var(--radius);background-size:cover;background-position:center;display:flex;align-items:flex-end;color:#fff;overflow:hidden}
.hero-copy{background:linear-gradient(180deg,transparent,rgba(0,0,0,.75));padding:28px;width:100%}
.hero-copy h2{font:600 clamp(28px,4vw,52px)/1.05 var(--serif);margin:8px 0}
.hero-side{border:1px solid var(--ink);border-radius:var(--radius);background:var(--white);padding:16px}
.side-img{height:220px;background-size:cover;background-position:center;border-radius:4px}
/* buttons/forms */
.btn{display:inline-block;border:1.5px solid var(--ink);padding:10px 18px;border-radius:30px;font-weight:700;font-size:13px;text-transform:uppercase;letter-spacing:.06em;background:transparent;cursor:pointer;text-align:center}
.btn.solid{background:var(--ink);color:var(--paper)}.btn.accent{background:var(--accent);border-color:var(--accent);color:#fff}.btn.ghost{border-color:var(--line)}.btn.small{padding:7px 12px;font-size:11px}.btn.block{display:block;width:100%}
input,select,textarea{border:1.5px solid var(--ink);background:var(--white);border-radius:8px;padding:11px 12px;font:inherit;width:100%}
label{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.06em}
.card{background:var(--white);border:1px solid var(--ink);border-radius:var(--radius);padding:16px}
.rule-title{display:flex;align-items:center;gap:14px;margin:34px 0 18px}
.rule-title:before,.rule-title:after{content:"";height:1px;background:var(--ink);flex:1}
.rule-title h2{font:600 26px var(--serif);margin:0;white-space:nowrap}
/* grids */
.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.product{border:1px solid var(--ink);background:var(--white);border-radius:var(--radius);overflow:hidden;display:flex;flex-direction:column}
.product-img{position:relative;aspect-ratio:1/1.05;overflow:hidden;background:var(--paper2)}
.product-img img{width:100%;height:100%;object-fit:cover}
.tag{position:absolute;top:10px;left:10px;background:var(--accent);color:#fff;font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;padding:5px 10px;border-radius:20px}
.product-info{display:flex;justify-content:space-between;gap:10px;padding:12px}
.product-info h3{font:600 17px var(--serif);margin:0}
.product-info p{margin:4px 0;font-size:12px;color:var(--muted)}
.price{font-weight:700;white-space:nowrap}.price s{color:var(--muted);font-weight:400;font-size:12px;display:block}
.add{border:0;background:none;font-weight:700;text-decoration:underline;cursor:pointer;padding:0;font-size:13px}
/* flipbook */
.book-stage{perspective:1600px;display:flex;justify-content:center;padding:10px}
.book{position:relative;width:min(920px,100%);height:420px;transform-style:preserve-3d}
.page{position:absolute;inset:0;transform-origin:left center;transition:transform .8s cubic-bezier(.2,.7,.2,1);transform-style:preserve-3d;cursor:pointer}
.page-face{position:absolute;inset:0;backface-visibility:hidden;background:var(--white);border:1px solid var(--ink);border-radius:6px;overflow:hidden}
.page-face.back{transform:rotateY(180deg)}
.page.flipped{transform:rotateY(-180deg)}
.cat-grid{display:grid;grid-template-columns:1fr 1fr;height:100%}
.cat-image{background-size:cover;background-position:center;min-height:200px}
.cat-copy{padding:26px;display:flex;flex-direction:column;justify-content:center;gap:10px}
.cat-copy .number{font:700 13px var(--sans);color:var(--accent)}
.cat-copy h3{font:600 30px/1.1 var(--serif);margin:0}
.book-controls{display:flex;justify-content:center;align-items:center;gap:14px;margin:12px}
.book-btn{width:44px;height:44px;border-radius:50%;border:1.5px solid var(--ink);background:var(--white);cursor:pointer;font-size:18px}
/* cart/table */
.table{width:100%;border-collapse:collapse;font-size:14px}.table th,.table td{border-bottom:1px solid var(--line);padding:10px 8px;text-align:left;vertical-align:middle}.table th{font-size:11px;text-transform:uppercase;letter-spacing:.08em}
.calc-row{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px dashed var(--line);font-size:14px}
.month-pills{display:flex;gap:8px;flex-wrap:wrap}.month-pills button{border:1.5px solid var(--ink);background:var(--white);border-radius:20px;padding:8px 14px;font-weight:700;cursor:pointer}.month-pills button.on{background:var(--ink);color:var(--paper)}
.alert{background:#fff4d6;border:1px solid #c9a227;border-radius:8px;padding:12px 14px;font-size:13px;margin:12px 0}
.ok{background:#e3f3e9;border:1px solid var(--ok);border-radius:8px;padding:12px 14px;font-size:13px;margin:12px 0}
.toolbar{display:flex;gap:10px;flex-wrap:wrap;margin:14px 0}.toolbar input,.toolbar select{width:auto;flex:1;min-width:160px}
.chips{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0}.chips button{border:1.5px solid var(--ink);border-radius:20px;padding:7px 14px;background:var(--white);cursor:pointer;font-size:12px;font-weight:700}.chips button.on{background:var(--ink);color:var(--paper)}
footer.site{border-top:3px double var(--ink);margin-top:40px;padding:24px 0}
.foot-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:18px}
.foot-grid h4{margin:0 0 8px;font-size:12px;text-transform:uppercase;letter-spacing:.1em}.foot-grid a{display:block;font-size:13px;padding:3px 0;color:var(--muted)}
.foot-bottom{display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px;border-top:1px solid var(--ink);margin-top:16px;padding-top:12px;font-size:11px;text-transform:uppercase;letter-spacing:.08em}
/* drawer + chat */
.drawer{position:fixed;top:0;right:-420px;width:min(400px,92vw);height:100%;background:var(--white);border-left:1px solid var(--ink);z-index:200;transition:right .3s;display:flex;flex-direction:column}
.drawer.open{right:0}.drawer-ov{position:fixed;inset:0;background:rgba(0,0,0,.4);display:none;z-index:190}.drawer-ov.open{display:block}
.chat-fab{position:fixed;bottom:18px;right:18px;width:56px;height:56px;border-radius:50%;background:var(--accent);color:#fff;border:0;font-size:24px;cursor:pointer;z-index:150;box-shadow:0 6px 20px rgba(0,0,0,.25)}
.chat-box{position:fixed;bottom:84px;right:18px;width:min(360px,92vw);height:440px;background:var(--white);border:1px solid var(--ink);border-radius:12px;z-index:160;display:none;flex-direction:column;overflow:hidden}
.chat-box.open{display:flex}.chat-log{flex:1;overflow:auto;padding:12px;display:flex;flex-direction:column;gap:8px}
.bubble{max-width:80%;padding:9px 12px;border-radius:14px;font-size:13px}.bubble.me{background:var(--ink);color:#fff;align-self:flex-end}.bubble.them{background:var(--paper2);align-self:flex-start}
/* admin */
.admin-wrap{display:grid;grid-template-columns:230px 1fr;min-height:100vh}
.sidebar{background:#171512;color:#f2ecdf;padding:18px;position:sticky;top:0;height:100vh;overflow:auto}
.sidebar a{display:block;padding:10px 12px;border-radius:8px;font-size:13px;font-weight:600;color:#e8dfce}
.sidebar a.active,.sidebar a:hover{background:#8d3f2e;color:#fff}
.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:16px 0}
.stat{background:var(--white);border:1px solid var(--ink);border-radius:10px;padding:14px}.stat b{font:700 26px var(--serif);display:block}
.badge{display:inline-block;padding:3px 10px;border-radius:20px;font-size:11px;font-weight:700;text-transform:uppercase}.b-green{background:#e3f3e9;color:#1c5c38}.b-amber{background:#fff0c9;color:#7a5410}.b-red{background:#fbe3e1;color:#8f1d17}.b-grey{background:#eee;color:#444}
.topbar{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:18px 0;flex-wrap:wrap}
/* responsive */
.video-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.video-card{border:1px solid var(--ink);border-radius:8px;overflow:hidden;background:var(--white);cursor:pointer}.video-card img{height:150px;width:100%;object-fit:cover}
.marquee{overflow:hidden;white-space:nowrap;border-top:1px solid var(--ink);border-bottom:1px solid var(--ink);padding:10px 0;font-size:12px;text-transform:uppercase;letter-spacing:.15em;margin:10px 0}
.two{display:grid;grid-template-columns:1fr 380px;gap:18px;align-items:start}
@media(max-width:960px){.hero-grid,.two,.foot-grid{grid-template-columns:1fr}.grid{grid-template-columns:repeat(2,1fr)}.stat-grid{grid-template-columns:repeat(2,1fr)}.video-strip{grid-template-columns:repeat(2,1fr)}.admin-wrap{grid-template-columns:1fr}.sidebar{height:auto;position:static}.cat-grid{grid-template-columns:1fr}.cat-image{min-height:180px}.book{height:640px}.mast-meta{display:none}}
@media(max-width:560px){.grid{grid-template-columns:1fr}.video-strip{grid-template-columns:1fr}.nav a{font-size:12px;padding:8px}.burger{display:block}}
#toast{position:fixed;bottom:20px;left:50%;transform:translateX(-50%) translateY(80px);background:var(--ink);color:var(--paper);padding:12px 20px;border-radius:30px;font-size:13px;font-weight:600;opacity:0;transition:.3s;z-index:300}#toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
.newsletter{text-align:center;border-top:1px solid var(--ink);border-bottom:1px solid var(--ink);padding:30px 16px;margin:26px 0}
.newsletter form{display:flex;gap:8px;max-width:440px;margin:14px auto}.print-sheet{background:#fff;border:1px solid var(--ink);padding:22px;border-radius:8px}
@media print{.nav,.chat-fab,.chat-box,.no-print,footer.site{display:none!important}body{background:#fff}}
