:root{--paper: #F3EAD8;--surface: #FBF6EA;--ink: #1D1915;--muted: #6F655C;--faint: #AEA092;--rust: #8A330F;--rust-hover: #6E280C;--border: #E4D9C6;--rule: var(--border);--card: var(--surface);--accent: var(--rust);--accent-deep: var(--rust-hover);--shadow: 0 1px 2px rgba(29, 25, 21, .06);--display: "Playfair Display", Georgia, serif;--serif: "Source Serif 4", Georgia, serif;--sans: "Source Sans 3", "Segoe UI", sans-serif}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--paper);color:var(--ink);font-family:var(--serif);font-size:17px;line-height:1.55;min-height:100vh}a{color:var(--ink)}code{font-family:var(--sans);font-size:.92em;background:var(--surface);padding:.05em .35em;border-radius:4px}button{font:inherit}.shell{min-height:100vh}.page{width:min(768px,calc(100% - 2.5rem));margin:0 auto;padding:2rem 0 4rem}.mast{position:sticky;top:0;z-index:40;height:4rem;display:flex;align-items:center;background:color-mix(in srgb,var(--paper) 90%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--border)}.mast-inner{width:100%;padding:0 1.5rem;display:flex;justify-content:space-between;align-items:center;gap:1rem}.lockup{display:flex;align-items:center;gap:.65rem;color:var(--ink);text-decoration:none}.lockup svg{display:block;flex:none}.wordmark{font-family:var(--display);font-weight:600;font-size:1.35rem;letter-spacing:-.02em;line-height:1}.langs{display:flex;align-items:center;gap:.15rem;font-family:var(--sans)}.langs button{color:var(--muted);background:transparent;border:0;border-radius:999px;padding:.28rem .62rem;font-weight:700;font-size:.72rem;letter-spacing:.06em;cursor:pointer}.langs button.is-on{background:var(--ink);color:var(--paper)}.hero h1,.campaign-head h1,.confirm h1,.links-banner h1{font-family:var(--display);font-weight:600;font-size:clamp(2.15rem,6vw,3.15rem);line-height:1.12;letter-spacing:-.03em;margin:0 0 1rem}.campaign-head h1,.confirm h1,.links-banner h1{font-size:clamp(1.8rem,4.5vw,2.45rem)}.hero p{font-size:1.05rem;color:var(--ink);margin:0;max-width:none}.lede{font-size:1.05rem;color:var(--muted)}.landing>p{color:var(--ink);margin:0 0 1.15rem}.steps{list-style:none;margin:1.5rem 0 1.35rem;padding:0;display:grid;grid-template-columns:1fr 1fr 1fr;background:var(--surface);border:1px solid var(--border);border-radius:1.15rem;overflow:hidden;font-family:var(--sans)}.step{padding:1.05rem 1.1rem 1.15rem;border-left:1px solid var(--border)}.step:first-child{border-left:0}.step-n{display:block;font-size:.8rem;color:var(--muted);margin-bottom:.35rem}.step strong{display:block;font-size:.95rem;font-weight:700;margin-bottom:.15rem}.step p{margin:0;font-size:.9rem;color:var(--muted);font-family:var(--serif)}.landing-cta{margin:0 0 1.75rem}.landing>.landing-cta:last-child{margin:1.35rem 0 0}.price-wrap{width:100%;overflow:hidden;margin:.15rem 0 .2rem;border:1px solid var(--border);border-radius:.75rem;background:var(--surface);box-shadow:var(--shadow)}.price-table{width:100%;border-collapse:collapse;font-family:var(--sans);font-size:.92rem;font-variant-numeric:tabular-nums}.price-table th,.price-table td{text-align:left;padding:.7rem .95rem;border-bottom:1px solid var(--border);vertical-align:top}.price-table th{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:700}.price-table tr:last-child td{border-bottom:0}.price-table td:first-child{font-weight:700;white-space:nowrap}.was-price{text-decoration:line-through;font-weight:400;color:var(--faint)}.now-free{margin-left:.45em}.price-admin input[type=number]{width:100%;max-width:8.5rem;margin-top:0}.kicker{font-family:var(--serif);font-style:italic;font-weight:400;font-size:1.05rem;color:var(--muted);margin:0 0 .85rem}.meta{display:flex;flex-wrap:wrap;gap:.4rem 1rem;padding:0;margin:1rem 0 0;list-style:none;color:var(--muted)}.meta li:before{content:"·";margin-right:.55rem;color:var(--accent)}.ledger,.booking-card,.panel,.links-banner,.confirm{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:.75rem}.ledger{padding:.4rem 1.4rem 1.4rem;margin-top:1.5rem}fieldset{border:0;border-top:1px solid var(--rule);margin:0;padding:1.1rem 0 .4rem}legend{font-family:var(--serif);font-size:1.35rem;padding-right:.6rem}label{display:block;font-family:var(--sans);font-weight:600;font-size:.92rem;margin:.85rem 0}.hint{font-weight:400;color:var(--muted)}input+.hint,select+.hint{display:block;margin-top:.35rem}input,select,textarea{display:block;width:100%;margin-top:.35rem;font-family:var(--sans);font-size:1rem;color:var(--ink);background:#fffdf7;border:1px solid var(--border);border-radius:6px;padding:.55rem .7rem}textarea{resize:vertical}.grid-2,.grid-3{display:grid;gap:0 1rem;align-items:start}.grid-2{grid-template-columns:1fr 1fr}.grid-3{grid-template-columns:1fr 1fr 1fr}.grid-2>label,.grid-3>label{min-width:0}.mode-switch{display:flex;flex-wrap:wrap;gap:.4rem;margin:0 0 .55rem}.mode-switch button{border:1px solid var(--border);background:#fffdf7;color:var(--ink);border-radius:999px;padding:.4rem .95rem;font-family:var(--sans);font-weight:700;cursor:pointer}.mode-switch button.is-on{background:var(--ink);color:var(--paper);border-color:var(--ink)}.mode-hint{color:var(--muted);font-weight:400;margin:0 0 .9rem;font-size:.95rem}.day-card{border:1px solid var(--rule);border-radius:10px;padding:.85rem .95rem .7rem;background:#fffdf7;margin:0 0 .75rem}.day-card-head{display:flex;justify-content:space-between;align-items:flex-end;gap:.75rem;margin-bottom:.55rem}.day-card-head label{flex:1}.period-row{display:grid;grid-template-columns:1fr 1fr auto;gap:.6rem;align-items:end;margin-bottom:.45rem}.period-row .btn.tiny,.day-card-head .btn.tiny{margin:0 0 .15rem}.btn.tiny{padding:.4rem .7rem;font-size:.85rem;font-weight:650}.btn.tiny.ghost{background:transparent;color:var(--ink)}.day-card-actions{margin:.2rem 0 .4rem}.when-tools{margin-top:.85rem}.schedule-list{margin:.35rem 0 0;padding:0;list-style:none;color:var(--muted)}.schedule-list li{margin:.35rem 0}.schedule-list strong{color:var(--ink);font-weight:650}.weekdays{display:flex;flex-wrap:wrap;gap:.45rem;margin:.6rem 0 .2rem}.chip{margin:0;cursor:pointer}.chip input{display:none}.chip span{display:inline-block;padding:.35rem .7rem;border:1px solid var(--border);border-radius:999px;background:#fffdf7;font-family:var(--sans);font-weight:600;font-size:.88rem}.chip input:checked+span{background:var(--ink);color:var(--paper);border-color:var(--ink)}.preview{background:#efe4cc;padding:.7rem .9rem;border-radius:6px;color:var(--ink)}.preview p{margin:0}.preview .price-quote{margin-top:.45rem;font-size:.95rem}.note,.fine{color:var(--muted);font-size:.95rem}.actions{margin-top:.6rem}.btn{display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--ink);background:var(--ink);color:var(--paper);font-family:var(--sans);font-weight:650;padding:.65rem 1.15rem;min-height:44px;border-radius:999px;text-decoration:none;cursor:pointer}.btn.primary{background:var(--rust);border-color:var(--rust);color:var(--paper)}.btn.primary:hover{background:var(--rust-hover);border-color:var(--rust-hover)}.btn.ghost{background:transparent;color:var(--ink);border-color:var(--border)}.btn.danger{background:transparent;color:var(--accent);border-color:var(--accent)}.btn+.btn{margin-left:.5rem}.btn:disabled,.slot:disabled{opacity:.55;cursor:wait}.flash{padding:.75rem 1rem;border-radius:6px;margin:0 0 1rem;border:1px solid var(--rule)}.flash.ok{background:#e7efd6;border-color:#c3d39a}.flash.err{background:#f3ddd3;border-color:#e0b39d}.book-layout{display:grid;grid-template-columns:1.4fr .9fr;gap:1.2rem;align-items:start}.day-block{margin:0 0 1.4rem}.day-block h2,.day-block h3{font-family:var(--serif);font-size:1.25rem;margin:0 0 .55rem}.slot-grid{display:flex;flex-wrap:wrap;gap:.4rem}.slot{display:inline-flex;flex-direction:column;min-width:4.6rem;text-align:center;padding:.45rem .5rem;border-radius:8px;border:1px solid var(--border);background:#fffdf7;text-decoration:none;color:var(--ink);font-family:var(--sans);font-weight:650;font-variant-numeric:tabular-nums;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none}.slot:hover,.slot.is-selected{background:var(--ink);color:var(--paper);border-color:var(--ink)}.slot.taken{background:#f7e6dc;border-color:#e8cfc0;color:#a56a54;min-width:7.2rem;text-align:left;cursor:default}.slot.taken em{font-style:normal;font-weight:500;font-size:.78rem;color:#b08978}.slot-grid.admin .slot.taken{cursor:pointer}.slot-grid.admin .slot.taken:hover{background:#efd5c8;color:#8c5340;border-color:#d9b5a4}.slot.past{opacity:.38;cursor:default}.slot.open{background:#e7efd6;border-color:#c3d39a;cursor:default}.slot-grid.admin .slot.open,.slot-grid.admin .slot.blocked{cursor:pointer}.slot.blocked{background:#c45c3e;border-color:#8c2f12;color:#fff8ef}.slot-grid.admin .slot.blocked:hover{background:#a33a22;color:#fff8ef;border-color:#6b220c}.slot-grid.admin .slot.open:hover{background:#d5e4b8;color:var(--ink);border-color:#a9c07a}.cal-hint{margin:.15rem 0 .85rem}.wait-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;display:flex;align-items:center;justify-content:center;padding:1.2rem;background:#281c0c80}.wait-card{background:var(--card);border:1px solid var(--rule);box-shadow:var(--shadow);border-radius:10px;padding:1.6rem 1.7rem 1.45rem;width:min(24rem,100%);text-align:center}.wait-card h2{font-family:var(--serif);font-size:1.35rem;margin:0 0 .55rem}.wait-card p{margin:0;color:var(--muted)}.wait-spinner{width:2.2rem;height:2.2rem;margin:0 auto 1rem;border:3px solid var(--rule);border-top-color:var(--accent);border-radius:50%;animation:wait-spin .75s linear infinite}@keyframes wait-spin{to{transform:rotate(360deg)}}.desk-modal{border:1px solid var(--rule);background:var(--card);color:var(--ink);box-shadow:var(--shadow);border-radius:10px;padding:1.25rem 1.4rem 1.2rem;width:min(28rem,calc(100vw - 2.4rem));max-height:calc(100vh - 2.4rem);overflow:auto;font:inherit}.desk-modal::backdrop{background:#281c0c80}.desk-modal h2{font-family:var(--serif);font-size:1.45rem;margin:0 0 .65rem}.desk-modal .lede{margin:0 0 .85rem}.desk-modal .check{display:flex;align-items:flex-start;gap:.55rem;margin:.9rem 0 1.1rem;font-weight:500;cursor:pointer}.desk-modal .check input[type=checkbox]{display:inline-block;width:1.15rem;height:1.15rem;margin:.2rem 0 0;flex:none;accent-color:var(--accent);cursor:pointer}.modal-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1rem}.modal-actions .btn+.btn{margin-left:0}.admin-login{margin-top:1rem;padding:.2rem 1.2rem 1.2rem}.check-inline{display:flex;align-items:flex-start;gap:.55rem;font-weight:600;margin:.85rem 0}.check-inline input[type=checkbox]{display:inline-block;width:1.15rem;height:1.15rem;margin:.2rem 0 0;flex:none;accent-color:var(--accent)}.check-inline .hint{display:block;font-weight:400;margin-top:.2rem}.time-24{display:flex;align-items:center;gap:.3rem;margin-top:.35rem;width:100%}.time-24 select{display:inline-block;width:auto;flex:1;min-width:4.2rem;margin-top:0;font-variant-numeric:tabular-nums}.time-24 .sep{font-weight:700;color:var(--muted)}.booking-card{padding:1.2rem 1.3rem;position:sticky;top:5rem}.when{font-family:var(--serif);font-size:1.35rem;line-height:1.25}.stat-row{display:grid;grid-template-columns:repeat(5,1fr);gap:.7rem;margin:1.2rem 0}.stat{background:var(--card);border:1px solid var(--rule);padding:.85rem .9rem}.stat strong{display:block;font-family:var(--serif);font-size:1.8rem;letter-spacing:-.03em}.stat span{color:var(--muted);font-size:.88rem}.desk-nav{display:flex;flex-wrap:wrap;gap:.7rem 1.1rem;margin:.4rem 0 1.2rem;font-family:var(--sans);font-weight:650}.panel{padding:1.1rem 1.2rem;margin-bottom:1.1rem}.panel-head{display:flex;justify-content:space-between;gap:1rem;align-items:center}.panel h2,.panel h3{font-family:var(--serif);margin:.2rem 0 .8rem}.panel-head h2{margin:0}.panel-head input{width:min(280px,100%);margin:0}.table-wrap{overflow-x:auto}.people{width:100%;border-collapse:collapse}.people th,.people td{text-align:left;padding:.55rem .4rem;border-bottom:1px solid var(--rule);vertical-align:top}.people{font-family:var(--sans);font-variant-numeric:tabular-nums}.people th{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.linkish{background:none;border:0;color:var(--ink);text-decoration:underline;cursor:pointer;padding:0;font-family:var(--sans)}.people .linkish+.linkish{margin-left:.7rem}.links-banner{padding:1.3rem 1.4rem;margin-bottom:1.2rem}.link-pair{display:grid;grid-template-columns:1fr 1fr;gap:.8rem}.link-pair.compact{margin-bottom:1.1rem}.link-pair input{cursor:pointer}.bars{list-style:none;padding:0;margin:0 0 1.4rem}.bars li{display:grid;grid-template-columns:7.5rem 1fr 3.4rem;gap:.6rem;align-items:center;margin:.28rem 0;font-variant-numeric:tabular-nums}.bar-label{color:var(--muted);font-size:.9rem}.bar-track{height:10px;background:#efe4cc;border-radius:99px;overflow:hidden}.bar-fill{display:block;height:100%;background:var(--ink);min-width:0}.bar-n{text-align:right;font-weight:650}.empty{color:var(--muted);font-size:1.05rem}.confirm{padding:1.4rem 1.5rem}.facts{display:grid;gap:.7rem}.facts div{border-top:1px solid var(--rule);padding-top:.55rem}.facts dt{color:var(--muted);font-size:.8rem;text-transform:uppercase;letter-spacing:.08em}.facts dd{margin:.1rem 0 0;font-size:1.1rem}.colophon{display:flex;justify-content:space-between;gap:1rem;margin-top:3rem;padding-top:.8rem;border-top:1px solid var(--border);color:var(--muted);font-size:.88rem}@media(max-width:860px){.steps{grid-template-columns:1fr}.step{border-left:0;border-top:1px solid var(--border)}.step:first-child{border-top:0}.price-wrap{width:100%}.price-table thead{display:none}.price-table tr{display:block;border-bottom:1px solid var(--rule);padding:.65rem .2rem}.price-table td{display:block;border:0;padding:.15rem .75rem}.price-table td:first-child{font-size:1.05rem;margin-bottom:.25rem}.price-table td:before{content:attr(data-label) " ";color:var(--muted);font-size:.75rem;text-transform:uppercase;letter-spacing:.06em;display:block;font-weight:400}.price-table td:first-child:before{display:none}.grid-2,.grid-3,.book-layout,.stat-row,.link-pair,.period-row,.day-card-head{grid-template-columns:1fr}.day-card-head{flex-direction:column;align-items:stretch}.colophon,.panel-head{flex-direction:column;align-items:flex-start}.booking-card{position:static}.bars li{grid-template-columns:4.6rem 1fr 2.6rem}.people thead{display:none}.people tr{display:block;border-bottom:1px solid var(--rule);padding:.6rem 0}.people td{display:block;border:0;padding:.15rem 0}.people td:before{content:attr(data-label) " ";color:var(--muted);font-size:.78rem;text-transform:uppercase;letter-spacing:.06em;display:block}}@media print{body{background:#fff}.mast,.colophon,.desk-nav,.no-print,.btn,.desk-modal,.wait-overlay{display:none!important}.page{width:auto}.panel,.links-banner,.confirm{box-shadow:none}}
