@charset "UTF-8";
:root{--blue:#005c94;--navy:#12334d;--red:#b52436;--ink:#183345;--muted:#586c7b;--line:#dbe4eb;--pale:#eef5fa;--paper:#fff;--bg:#f7f9fb;--shadow:0 12px 40px #163a5210;color-scheme:light;font-family:Arial,Helvetica,sans-serif;color:var(--ink);background:var(--bg);font-size:16px;line-height:1.5}
*{box-sizing:border-box}body{margin:0}button,input,textarea,select{font:inherit}button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.48}a{color:var(--blue);text-underline-offset:3px}a:hover{text-decoration-thickness:2px}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid #ecad39;outline-offset:4px}[hidden]{display:none!important}.site-header,.site-footer{max-width:1200px;margin:auto;display:flex;justify-content:space-between;align-items:center;gap:24px}.site-header{padding:28px 40px;border-bottom:1px solid var(--line)}.brand{display:flex;gap:12px;align-items:center;color:var(--navy);font-weight:700;text-decoration:none;font-size:1.15rem}.brand-mark{height:42px;width:42px;display:grid;place-items:center;border-radius:50%;background:var(--blue);color:white;font-family:Georgia,serif;font-size:1.8rem}.brand small{display:block;font-size:.8rem;letter-spacing:.05em;font-weight:400;color:var(--muted)}.organizer{text-align:right;font-size:.875rem;line-height:1.45;color:var(--muted)}.organizer strong{color:var(--blue)}.booking-layout{max-width:1200px;margin:0 auto;padding:42px 40px 56px;display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:64px;align-items:start}.eyebrow{color:var(--red);font-weight:700;font-size:.875rem;letter-spacing:.1em;text-transform:uppercase;margin:0 0 12px}h1{font-family:Georgia,'Times New Roman',serif;font-size:clamp(2.5rem,4.8vw,3.65rem);font-weight:400;line-height:1.08;letter-spacing:-.025em;margin:0 0 16px;color:var(--navy)}.lead{font-size:1.05rem;color:var(--muted);margin:0 0 30px}h2{font-size:1.5rem;line-height:1.2;margin:0 0 16px}h3{font-size:1.05rem}.steps{padding:0 0 24px;margin:0 0 28px;display:flex;list-style:none;border-bottom:1px solid var(--line);gap:25px;font-size:.875rem;color:var(--muted)}.steps li{display:flex;align-items:center;gap:8px}.steps span{display:grid;place-items:center;width:25px;height:25px;border:1px solid var(--line);border-radius:50%;background:white;font-size:.8rem}.steps .active{color:var(--blue);font-weight:700}.steps .active span{background:var(--blue);color:white;border-color:var(--blue)}fieldset{border:0;padding:0;margin:0 0 26px;min-width:0}legend{font-weight:700;font-size:1rem;margin-bottom:12px;padding:0;float:none;max-width:100%}.required{font-weight:400;color:var(--muted);font-size:.8rem;margin-left:8px}.choice-grid,.date-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.choice-card,.date-card{background:white;display:flex;align-items:flex-start;gap:12px;border:1px solid #cbd9e4;border-radius:10px;padding:17px 15px;cursor:pointer;transition:border-color .15s,background .15s}.choice-card:hover,.date-card:hover{border-color:var(--blue)}.choice-card:has(input:checked),.date-card:has(input:checked){border-color:var(--blue);box-shadow:0 0 0 1px var(--blue);background:#edf6fc}.choice-card input,.date-card input{accent-color:var(--blue);width:18px;height:18px;margin:3px 0 0;flex-shrink:0}.choice-card strong,.date-card strong{display:block}.choice-card small{font-size:.875rem;line-height:1.4;color:var(--muted);display:block;margin-top:5px}.date-card{align-items:center;padding:12px 16px}.date-card input{margin-top:0}.date-card small{display:block;color:var(--muted);font-size:.875rem}.date-card strong{font-size:1.05rem}.field-hint{color:var(--muted);font-size:.875rem;margin:0 0 12px}.slot-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.slot{border:1px solid #cbd9e4;border-radius:7px;background:white;display:block;text-align:center;padding:10px 4px;cursor:pointer}.slot:has(input:checked){background:var(--blue);color:white;border-color:var(--blue)}.slot:has(input:disabled){background:#f0f3f5;color:#74838e;border-color:#e4e9ed;cursor:not-allowed}.slot input{position:absolute;opacity:0;width:1px;height:1px}.slot:has(input:focus-visible){outline:3px solid #ecad39;outline-offset:3px}.slot span{display:block;font-size:.75rem;margin-top:1px}.slot strong{font-size:1.05rem;font-weight:500}.form-bottom{border-top:1px solid var(--line);padding-top:22px;display:flex;align-items:center;justify-content:space-between;gap:16px}.form-bottom>span{color:var(--muted);font-size:.8rem}.button{display:inline-flex;justify-content:center;align-items:center;gap:16px;border-radius:7px;border:1px solid transparent;font-weight:700;padding:13px 20px;font-size:.95rem;text-decoration:none;min-height:48px}.primary{background:var(--blue);color:white}.primary:hover{background:#004875}.secondary{background:white;color:var(--blue);border-color:#bbcfdf}.danger{color:#9c2032;background:#fff5f5;border-color:#e4b7be}.full{width:100%}.button-row{display:flex;gap:12px;flex-wrap:wrap}.visit-card{background:white;border-radius:16px;border:1px solid var(--line);overflow:hidden;box-shadow:var(--shadow);margin-top:4px}.visit-card-top{padding:26px 25px 0}.small-label{text-transform:uppercase;letter-spacing:.09em;font-size:.75rem;color:var(--red);font-weight:700}.visit-card h2{font-family:Georgia,serif;color:var(--navy);font-weight:400;font-size:1.75rem;line-height:1.18;margin:10px 0 0}.art-window{height:242px;position:relative;overflow:hidden;margin:10px -15px 0}.art-window img{position:absolute;width:auto;height:205%;max-width:none;bottom:0;left:50%;transform:translateX(-50%);display:block}.visit-facts{background:var(--pale);padding:24px 25px;display:grid;gap:20px}.visit-facts>div{padding-left:15px;border-left:2px solid #b8d2e4}.visit-facts span{font-size:.8rem;color:var(--muted);display:block;margin-bottom:3px}.visit-facts strong{font-size:.95rem;font-weight:600}.visit-facts p{font-size:.875rem;color:var(--muted);line-height:1.4;margin:4px 0 0}.site-footer{font-size:.8rem;color:var(--muted);padding:24px 40px;border-top:1px solid var(--line)}.site-footer nav{display:flex;gap:20px;flex-wrap:wrap}.site-footer a{color:var(--muted)}.notice{border:1px solid #ccdce8;background:var(--pale);padding:15px 18px;border-radius:8px;font-size:.95rem;white-space:pre-line}.notice.error{color:#8b2031;border-color:#e3b6bd;background:#fff4f5}.demo-banner{text-align:center;background:#fff0c8;color:#634709;padding:9px 20px;font-size:.875rem;font-weight:600}.field{display:block;font-size:.95rem;font-weight:600;margin-bottom:18px}.field input,.field textarea,.field select{display:block;width:100%;padding:12px 13px;border:1px solid #becfdc;border-radius:6px;background:white;color:var(--ink);margin-top:7px;font-weight:400;min-height:48px}.field textarea{resize:vertical}.field input::placeholder,.field textarea::placeholder{color:#677986;opacity:1;font-size:.9rem}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.optional{font-weight:400;color:var(--muted);font-size:.85rem}.check-label{display:flex;gap:12px;align-items:flex-start;font-size:.875rem;line-height:1.55;margin:10px 0 18px}.check-label input{width:20px;height:20px;flex-shrink:0;accent-color:var(--blue);margin:2px 0 0}.selection-summary{display:flex;gap:16px;align-items:center;justify-content:space-between;background:var(--pale);border-radius:7px;padding:14px 16px;font-size:.9rem;margin-bottom:26px}.text-button{background:transparent;border:0;color:var(--blue);text-decoration:underline;font-size:.875rem;padding:8px}.trap{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}.confirmation{background:white;border:1px solid var(--line);border-radius:14px;padding:28px}.success-icon{display:grid;place-items:center;width:48px;height:48px;border-radius:50%;background:#e6f4ee;color:#146746;font-size:1.6rem;margin-bottom:20px}.confirmation dl{background:var(--pale);padding:18px;border-radius:8px}.confirmation dt{color:var(--muted);font-size:.8rem;margin-top:12px}.confirmation dt:first-child{margin-top:0}.confirmation dd{font-weight:700;margin:3px 0 0}.admin-main{max-width:1200px;margin:auto;padding:36px 40px}.admin-main h1{font-size:2.6rem}.admin-card{background:white;border:1px solid var(--line);border-radius:12px;padding:25px;margin-bottom:24px}.login-card{max-width:460px;margin:24px auto}.admin-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:24px}.admin-panels{display:grid;grid-template-columns:1fr 1fr;gap:24px}.table-wrap{overflow:auto}.admin-table{border-collapse:collapse;width:100%;font-size:.875rem;min-width:750px}.admin-table th{text-align:left;color:var(--muted);font-weight:600;background:var(--pale)}.admin-table th,.admin-table td{padding:12px;border-bottom:1px solid var(--line);vertical-align:top;white-space:pre-line;overflow-wrap:anywhere}.admin-table td small{display:block;color:var(--muted);margin-top:5px}.admin-table .button{font-size:.8rem;padding:6px 10px;min-height:36px}.badge{font-size:.8rem;border-radius:5px;background:var(--pale);padding:3px 6px;white-space:nowrap}.metrics{display:flex;gap:30px;margin:15px 0 25px;flex-wrap:wrap}.metrics strong{font-size:1.6rem;display:block}.metrics span{color:var(--muted);font-size:.875rem}.filter-row{display:flex;gap:12px;flex-wrap:wrap;align-items:end;margin:15px 0}.filter-row .field{margin:0;min-width:170px}.admin-actions{display:flex;gap:10px;flex-wrap:wrap}.admin-actions .button{font-size:.85rem;padding:9px 14px}.settings-note{font-size:.875rem;color:var(--muted)}
@media(min-width:1100px){.booking-main{max-width:640px}}@media(max-width:950px){.booking-layout{gap:30px;grid-template-columns:minmax(0,1fr) 285px;padding:32px 25px}.site-header,.site-footer{padding-left:25px;padding-right:25px}.steps{gap:14px}.steps li{font-size:.8rem}.form-bottom{align-items:stretch;flex-direction:column}.choice-grid{gap:9px}.choice-card{padding:13px 10px;gap:8px}.visit-card-top{padding-left:20px;padding-right:20px}.art-window{height:214px}.admin-panels{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr;gap:0}}
@media(max-width:730px){.site-header{padding:18px 20px}.organizer{font-size:.75rem}.brand{font-size:1rem;gap:9px}.brand-mark{width:35px;height:35px}.brand small{font-size:.75rem}.booking-layout{display:block;padding:28px 20px 36px}.booking-main{max-width:none}.visit-card{margin-top:32px;display:grid;grid-template-columns:1fr 1fr}.visit-card-top{padding:20px 16px 0}.visit-card h2{font-size:1.4rem}.small-label{font-size:.7rem}.art-window{height:165px;margin:12px -10px 0}.visit-facts{padding:20px 16px;gap:15px}.visit-facts>div{padding-left:10px}.visit-facts strong,.visit-facts p{font-size:.8rem}.site-footer{padding:22px 20px;display:block}.site-footer nav{margin-top:14px;gap:16px}.lead{font-size:1rem}.steps{gap:18px}.steps li{font-size:.8rem}.steps span{width:22px;height:22px}.choice-card small{font-size:.8rem}.form-bottom .button{width:100%}.admin-main{padding:25px 16px}.admin-heading{align-items:flex-start;flex-direction:column}.admin-card{padding:20px 16px}.admin-panels{gap:0}.form-grid{grid-template-columns:1fr}.selection-summary{align-items:flex-start}}
@media(max-width:390px){.steps{gap:10px}.steps li{gap:5px}.organizer{max-width:100px}.choice-grid{grid-template-columns:1fr}.visit-card{display:block}.visit-card-top{display:none}.slot-grid{gap:7px}.date-card{padding:10px}.required{display:block;margin:2px 0 0}.button{gap:8px;padding:13px}.brand-mark{display:none}}
@media print{body{background:white}.site-header,.site-footer,.visit-card,.steps,.booking-main>.eyebrow,.booking-main>h1,.lead,.demo-banner,#booking-form,.button,.text-button,.admin-panels,.filter-row,#login-section,#setup-section,.admin-heading,.metrics,#slots-panel,#admin-message{display:none!important}.booking-layout,.admin-main{display:block;padding:0;max-width:none}.confirmation{border:0;padding:0}.confirmation .field-hint{display:none}.admin-card{border:0;padding:0}.admin-table{font-size:10pt;min-width:0}.admin-table th:last-child,.admin-table td:last-child{display:none}.table-wrap{overflow:visible}.admin-table tr{break-inside:avoid}.admin-table thead{display:table-header-group}@page{size:landscape;margin:12mm}}
