:root{--ink:#393F4D;--accent:#956A90;--accent-hover:#805B7C;--accent-strong:#92678D;--white:#FFFFFF;--paper:#FFFFFF;--muted:#626775;--line:#DDDDE3;--rose:#E5CEE3;--soft:#F7F2F7;--red:#A63E35}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:24px}body{margin:0;background:var(--white);color:var(--ink);font-family:Arial,Helvetica,sans-serif;font-size:15px;line-height:1.65}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.5}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid var(--accent);outline-offset:4px}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:Georgia,'Times New Roman',serif;font-weight:400;line-height:1.17}h1{font-size:clamp(42px,4.8vw,69px);letter-spacing:-2px}h1 em{font-weight:400;color:var(--accent)}h2{font-size:44px;letter-spacing:-1px}h3{font-size:23px}header{max-width:1200px;margin:auto;display:flex;align-items:center;justify-content:space-between;padding:25px 44px;border-bottom:1px solid var(--line)}.brand{font-family:Georgia,serif;font-size:41px;line-height:.8;letter-spacing:-2px;display:inline-flex;align-items:flex-end;gap:10px}.brand span{font:10px Arial,sans-serif;letter-spacing:3px;line-height:1.3;margin-bottom:2px}nav{display:flex;gap:32px;align-items:center;font-size:13px}.nav-book{border:1px solid var(--accent);padding:10px 18px;border-radius:3px}.nav-book span{margin-left:14px}.hero{max-width:1200px;margin:auto;display:grid;grid-template-columns:1.2fr 1fr;gap:50px;padding:52px 44px 64px;align-items:center}.eyebrow{font-size:10px;letter-spacing:2px;font-weight:600}.hero .eyebrow{margin-bottom:20px}.little-star{font-size:25px;color:var(--accent);vertical-align:middle;margin-right:6px}.hero-lead{font-size:16px;max-width:425px;color:var(--muted);margin:24px 0}.event{display:flex;align-items:center;gap:15px;margin:26px 0}.date-tile{border:1px solid var(--rose);min-width:60px;text-align:center;padding:6px 13px;border-radius:3px}.date-tile span{display:block;font-size:9px;letter-spacing:2px}.date-tile strong{font:31px Georgia,serif}.event>div>strong{font-size:14px}.event p{font-size:12px;color:var(--muted)}.primary{background:var(--accent-strong);color:white;border:1px solid var(--accent-strong);border-radius:3px;display:inline-flex;gap:24px;align-items:center;justify-content:space-between;padding:15px 22px;font-size:13px;font-weight:500;transition:background .15s}.primary:hover{background:var(--accent-hover)}.hero-meta{display:flex;gap:18px;font-size:10px;color:var(--muted);margin-top:15px;flex-wrap:wrap}.hero-meta span+span:before{content:'·';margin-right:18px;color:var(--accent)}.location{font-size:11px;color:var(--muted);margin-top:12px;max-width:390px}.hero-visual{position:relative;max-width:400px;justify-self:end;transform:rotate(1deg)}.hero-visual img{display:block;width:100%;height:535px;object-fit:cover;border-radius:150px 150px 4px 4px;box-shadow:0 18px 45px #32382914;object-position:50% 45%}.photo-note{position:absolute;left:-23px;bottom:25px;background:var(--paper);padding:14px 24px;box-shadow:0 8px 30px #0000000e;font:italic 17px Georgia,serif;transform:rotate(-3deg)}.photo-note span{font-size:23px;color:var(--accent);margin-right:10px}.booking-section{background:var(--white);border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:55px max(44px,calc((100vw - 1112px)/2)) 65px}.section-heading{display:flex;justify-content:space-between;align-items:end;margin-bottom:30px;gap:20px}.section-heading .eyebrow{color:var(--muted);margin-bottom:9px}.section-heading>p{text-align:right;color:var(--muted);font-size:12px}.booking-layout{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(270px,1fr);gap:28px;align-items:start}.booking-panel{background:var(--paper);padding:30px;border:1px solid var(--line);border-radius:5px}.step-heading{display:flex;gap:12px;align-items:center}.step-heading>span{display:flex;align-items:center;justify-content:center;min-width:25px;height:25px;font-size:10px;color:var(--accent);border:1px solid var(--rose);border-radius:50%}.step-heading h3{font-size:22px}.muted{color:var(--muted)}.booking-panel>.muted{font-size:12px;margin:12px 0 24px}.slot-top{display:flex;justify-content:space-between;align-items:center;font-size:12px;margin-bottom:14px;gap:10px}.slot-top>span{font-size:10px;color:var(--accent)}.slot-fieldset{margin:0;padding:0;border:0}.slots{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;min-height:137px}.slot{display:flex;align-items:center;justify-content:center;flex-direction:column;border:1px solid var(--line);padding:11px 4px;min-height:63px;border-radius:3px;cursor:pointer;transition:border-color .15s;background:var(--paper)}.slot input{position:absolute;opacity:0;width:1px;height:1px}.slot:has(input:focus-visible){outline:3px solid var(--accent);outline-offset:3px}.slot:has(input:checked){background:var(--accent-strong);color:white;border-color:var(--accent-strong)}.slot:has(input:disabled){background:#F0F0F3;color:#6F7280;cursor:not-allowed;border-color:var(--line)}.slot strong{font-size:15px;line-height:1.2;font-weight:500}.slot small{font-size:9px;margin-top:4px;opacity:.85}.slot-legend{font-size:10px;color:var(--muted);display:flex;align-items:center;gap:18px;margin-top:14px;flex-wrap:wrap}.dot{width:6px;height:6px;background:var(--accent);border-radius:50%;display:inline-block;margin-right:4px}.dot.busy{background:#A5A7B0}.text-button{border:0;background:none;padding:5px 0;color:inherit;font-size:11px;text-decoration:underline;text-underline-offset:3px}.slot-legend .text-button{margin-left:auto}.details-heading{border-top:1px solid var(--line);padding-top:26px;margin-top:25px}.small{font-size:11px}.booking-panel form>.muted{margin:9px 0 20px}.fields{display:grid;grid-template-columns:1fr 1fr;gap:17px 16px}.fields label,form>label{display:block;font-size:11px;font-weight:500}.fields input,.fields select,.fields textarea,form>label input{display:block;width:100%;margin-top:6px;border:1px solid var(--line);background:var(--paper);border-radius:3px;color:var(--ink);padding:11px 12px;font-size:12px;min-height:44px}.fields textarea{resize:vertical}.full{grid-column:1/-1}.optional{font-size:10px;color:var(--muted);font-weight:400;margin-left:3px}.consents{margin:24px 0 15px}.check{display:flex;align-items:flex-start;gap:10px;font-size:11px;color:var(--muted);line-height:1.6;margin-bottom:13px;cursor:pointer}.check input{appearance:auto;margin:3px 0 0;min-width:16px;width:16px;height:16px;accent-color:var(--accent)}.inline-link{border:0;background:none;padding:0;font:inherit;color:var(--accent);text-decoration:underline}.selection-summary{font-size:11px;padding:11px 12px;background:var(--soft);border-radius:3px;margin-bottom:14px}.submit{width:100%;margin-bottom:10px}.after-button{line-height:1.55;margin-bottom:0!important}.summary-card{background:var(--soft);padding:30px;border:1px solid var(--line);border-radius:5px;position:sticky;top:24px}.summary-card>.little-star{font-size:38px;line-height:1;margin-bottom:14px;display:block}.summary-card>.eyebrow{margin-bottom:16px;font-size:9px}.summary-card h3{font-size:27px;line-height:1.25}.package-list{list-style:none;padding:0;margin:25px 0 20px;display:grid;gap:16px;font-size:12px}.package-list li{display:flex;gap:12px;align-items:start}.package-list li span{color:var(--accent)}.price-row{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--line);padding-top:18px;font-size:12px}.price-row strong{font:35px Georgia,serif}.total-price{font-size:11px;line-height:1.6;margin-top:14px}.reserved-note{display:flex;gap:12px;border-top:1px solid var(--line);margin-top:20px;padding-top:20px;font-size:11px}.reserved-note>span{font-size:26px;line-height:1}.reserved-note p{margin-top:5px;color:var(--muted);font-size:11px}.contact-link{display:flex;width:100%;justify-content:space-between;background:none;border:0;border-bottom:1px solid var(--line);padding:16px 0 8px;font-size:12px;color:var(--ink)}.signature{margin-top:20px}.signature em{font:italic 18px Georgia,serif;color:var(--accent)}.how-section{max-width:1200px;padding:60px 44px;margin:auto}.how-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:42px;margin:40px 0 38px}.how-number{font:italic 28px Georgia,serif;color:var(--accent)}.how-grid h3{font-size:21px;margin:13px 0}.how-grid p{color:var(--muted);font-size:12px}.faq{border-top:1px solid var(--line)}details{border-bottom:1px solid var(--line)}summary{cursor:pointer;padding:15px 3px;font-size:13px;list-style:none;display:flex;justify-content:space-between;gap:10px}summary:after{content:'+';font-size:19px;color:var(--accent)}details[open] summary:after{content:'−'}details p{font-size:12px;color:var(--muted);padding:0 3px 18px;max-width:790px}footer{max-width:1200px;margin:auto;padding:25px 44px 35px;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap}footer>.brand{font-size:32px}footer p{font-size:10px;color:var(--muted)}footer>div{display:flex;gap:18px}.private-label{font-size:9px;letter-spacing:.5px;color:var(--muted);border:1px solid var(--line);padding:3px 7px;border-radius:3px}dialog{border:1px solid var(--line);padding:30px;max-width:570px;width:calc(100% - 32px);max-height:88dvh;overflow:auto;color:var(--ink);background:var(--paper);border-radius:5px;box-shadow:0 16px 90px #0003}dialog::backdrop{background:#393F4DA6;backdrop-filter:blur(3px)}.dialog-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px}.close{border:0;background:none;font-size:27px;line-height:1;color:var(--muted);width:32px;height:32px}.dialog-top .eyebrow{font-size:9px}.dialog-top+h2{font-size:35px;margin-bottom:22px}dialog p{font-size:12px;line-height:1.8;margin-bottom:16px}.contact-option{display:flex;align-items:center;justify-content:space-between;padding:13px 15px;border:1px solid var(--line);border-radius:3px;margin-bottom:10px;font-size:13px}.contact-option strong{display:block;font-weight:500}.contact-option small{font-size:10px;color:var(--muted)}.confirmation{background:var(--paper);padding:36px;border:1px solid var(--line);border-radius:5px;text-align:center;max-width:750px;margin:auto}.confirmation h2{font-size:39px;margin:12px 0 18px}.confirmation .checkmark{display:inline-flex;background:var(--soft);width:48px;height:48px;align-items:center;justify-content:center;border-radius:50%;font-size:23px}.confirmation .res-detail{background:var(--soft);padding:20px;margin:24px auto;max-width:490px;border-radius:3px}.confirmation .res-detail strong{display:block;font-size:16px}.confirmation .res-detail p{font-size:12px;margin:6px 0}.confirmation>p{font-size:13px;color:var(--muted);max-width:520px;margin:auto}.confirmation .countdown{font-size:23px;font-family:Georgia,serif;margin-top:15px}.confirmation .controls{display:flex;justify-content:center;flex-wrap:wrap;gap:10px;margin:20px 0 15px}.secondary{display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--accent);color:var(--accent);background:transparent;padding:13px 20px;border-radius:3px;font-size:12px}.error{color:var(--red);font-size:12px;background:#fff3ef;padding:12px;border-radius:3px;margin:12px 0}.success-note{color:var(--accent);background:var(--soft);padding:12px;font-size:12px;border-radius:3px;margin:12px 0}#admin-login .primary{margin-top:16px}.admin-dialog{max-width:850px}.admin-toolbar{display:flex;align-items:center;gap:20px;flex-wrap:wrap;font-size:12px;margin-bottom:20px}.admin-toolbar strong{margin-right:auto}.booking-entry{border:1px solid var(--line);border-radius:3px;padding:16px;margin:12px 0}.booking-entry-head{display:flex;justify-content:space-between;align-items:start;gap:12px}.booking-entry strong{font-size:14px}.status-tag{font-size:9px;padding:3px 8px;background:var(--soft);white-space:nowrap;border-radius:3px}.status-tag.confirmed{background:var(--rose)}.status-tag.expired,.status-tag.cancelled{color:var(--muted);background:#F0F0F3}.booking-entry p{font-size:11px;white-space:pre-wrap;margin:8px 0;overflow-wrap:anywhere}.booking-entry .actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:12px}.booking-entry .primary,.booking-entry .secondary{font-size:10px;padding:9px 12px}.settings-detail{margin-top:20px}.settings-detail form{padding-bottom:20px}.settings-detail form>.primary{margin-top:16px}.action-buttons{display:flex;gap:12px;justify-content:end;margin-top:24px}.honeypot{position:absolute;left:-9999px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}[hidden]{display:none!important}.skip{position:fixed;top:-100px;left:10px;background:var(--accent);color:white;z-index:100;padding:8px 14px}.skip:focus{top:10px}@media(min-width:1350px){.hero-visual{max-width:410px}.hero-visual img{height:560px}}@media(max-width:900px){header{padding:22px 28px}.hero{padding:42px 28px 50px;gap:30px}h1{font-size:47px}.hero-visual img{height:500px}.hero-lead{font-size:14px}.hero-meta{gap:10px}.hero-meta span+span:before{margin-right:10px}.booking-section{padding:44px 28px}.booking-layout{gap:18px;grid-template-columns:minmax(0,1.5fr) minmax(240px,1fr)}.booking-panel,.summary-card{padding:23px}.slots{grid-template-columns:repeat(2,1fr)}.fields{grid-template-columns:1fr}.fields .full{grid-column:auto}.how-section{padding:45px 28px}.how-grid{gap:25px}footer{padding:22px 28px}.summary-card h3{font-size:25px}}@media(max-width:650px){header{padding:20px}.brand{font-size:36px}.brand span{font-size:8px;letter-spacing:2px}nav{gap:0}nav>a:first-child{display:none}.nav-book{padding:8px 12px;font-size:11px}.hero{display:flex;flex-direction:column;padding:33px 22px 38px;gap:28px;align-items:stretch}.hero .eyebrow{font-size:8px;letter-spacing:1.5px;margin-bottom:15px}h1{font-size:clamp(29px,9.6vw,43px);letter-spacing:-1.4px}.hero-lead{max-width:330px;margin:19px 0;font-size:14px}.event{margin:22px 0}.event>div>strong{font-size:13px}.hero .primary{width:100%}.hero-meta{justify-content:center;font-size:9px;gap:13px}.hero-meta span+span:before{margin-right:13px}.location{text-align:center;max-width:none}.hero-visual{width:100%;max-width:100%;height:245px;transform:none;justify-self:auto}.hero-visual img{width:100%;height:245px;border-radius:100px 100px 4px 4px;object-position:50% 77%;object-fit:cover}.photo-note{bottom:18px;left:12px;font-size:15px;padding:10px 16px}.booking-section{padding:36px 18px 40px}.section-heading{align-items:start;margin-bottom:24px;gap:12px}.section-heading>p{font-size:10px;max-width:130px;line-height:1.7}.section-heading .eyebrow{font-size:8px;letter-spacing:1.4px}h2{font-size:35px}.booking-layout{display:flex;flex-direction:column;gap:22px}.booking-panel{width:100%;padding:22px 18px}.slots{grid-template-columns:repeat(4,1fr);gap:7px}.slot{min-height:60px}.slot strong{font-size:14px}.slot small{font-size:8px}.slot-top{font-size:11px}.slot-top>span{font-size:9px}.step-heading h3{font-size:21px}.fields{grid-template-columns:1fr 1fr;gap:15px 12px}.fields label{font-size:10px}.fields input,.fields select,.fields textarea{font-size:16px;padding:10px;min-width:0}.fields label:nth-child(1),.fields label:nth-child(2),.fields label:nth-child(3),.fields label:nth-child(4),.fields label.full{grid-column:1/-1}.check{font-size:11px}.summary-card{position:static;width:100%;padding:25px}.summary-card>.little-star{float:right}.summary-card h3{font-size:27px}.package-list{gap:11px}.reserved-note{padding-top:16px;margin-top:16px}.how-section{padding:38px 22px}.how-grid{grid-template-columns:1fr;gap:25px;margin:25px 0 30px}.how-grid article{display:grid;grid-template-columns:32px 1fr;gap:0 15px}.how-number{grid-row:1/3;font-size:24px;padding-top:6px}.how-grid h3{margin:6px 0 9px}.how-grid p{grid-column:2}.how-section .section-heading>p{display:none}footer{padding:25px 22px;gap:20px}footer p{display:none}footer>div{gap:14px}footer>.brand{font-size:30px}footer .private-label{margin-left:auto}dialog{padding:23px}.dialog-top+h2{font-size:31px}dialog input{font-size:16px!important}.confirmation{padding:25px 18px}.confirmation h2{font-size:33px}.confirmation .res-detail{padding:16px}.confirmation .controls>.primary,.confirmation .controls>.secondary{width:100%;justify-content:center}.booking-entry-head{flex-wrap:wrap}.admin-toolbar{gap:10px}.settings-detail .fields{grid-template-columns:1fr}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

/* Visto palette: white space, charcoal structure, mauve accents and rose details. */
header { max-width: none; padding-inline: max(44px, calc((100vw - 1112px) / 2)); background: var(--ink); color: var(--white); border-bottom-color: transparent; }
nav .nav-book { background: var(--accent-strong); color: var(--white); border-color: var(--accent-strong); }
nav .nav-book:hover { background: var(--accent-hover); }
h1, h2, h3 { color: var(--ink); }
.eyebrow { color: var(--accent-strong); }
.date-tile { background: var(--rose); color: var(--ink); }
.date-tile span { font-weight: 600; }
.photo-note { border-left: 3px solid var(--rose); }
.slot-top > span { color: var(--ink); }
.slot:has(input:checked) { background: var(--accent-strong); border-color: var(--accent-strong); }
.slot:not(:has(input:disabled)):hover { border-color: var(--accent); }
.primary { font-weight: 600; }
.inline-link, .text-button { color: var(--accent-strong); }
.inline-link { text-underline-offset: 3px; }
.secondary { border-color: var(--accent); color: var(--accent-strong); }
.secondary:hover, .contact-option:hover { background: var(--soft); }
.selection-summary { background: var(--rose); color: var(--ink); }
.summary-card { background: var(--ink); color: var(--white); border-color: var(--ink); }
.summary-card h3, .summary-card .muted { color: var(--white); }
.summary-card > .little-star, .summary-card > .eyebrow, .summary-card .package-list li span { color: var(--rose); }
.summary-card .price-row { border-color: #FFFFFF40; }
.reserved-note { background: var(--rose); color: var(--ink); padding: 16px; border: 0; border-radius: 5px; }
.reserved-note p { color: var(--ink); }
.contact-link { background: var(--accent-strong); color: var(--white); border: 1px solid var(--accent); border-radius: 3px; padding: 13px 16px; margin-top: 20px; min-height: 48px; font-weight: 600; }
.contact-link:hover { background: var(--accent-hover); }
.signature em { color: var(--rose); }
footer { max-width: none; padding-inline: max(44px, calc((100vw - 1112px) / 2)); background: var(--ink); color: var(--white); border-top: 0; }
footer p, footer .text-button { color: var(--white); }
footer .private-label { color: var(--rose); border-color: #E5CEE380; }
header :focus-visible, footer :focus-visible, .summary-card :focus-visible { outline-color: var(--rose); }
.contact-option { color: var(--ink); border-color: var(--rose); }
.contact-option > span:last-child { color: var(--accent); }
.confirmation .checkmark { background: var(--rose); color: var(--ink); }
.confirmation .res-detail, .success-note { background: var(--soft); color: var(--ink); }
.status-tag.confirmed { color: var(--ink); }

/* Self-managed logo, with a readable background and a stable mobile width. */
.brand.has-logo { display: inline-flex; padding: 0; }
.brand.has-logo img { display: block; width: 162px; height: 64px; padding: 8px; object-fit: contain; background: var(--white); border-radius: 5px; }
.brand.has-logo[data-surface="dark"] img { background: var(--ink); }
footer .brand.has-logo img { width: 130px; height: 52px; }
.logo-settings form > label { margin-block: 18px 8px; font-size: 14px; }
.logo-settings input[type="file"], .logo-settings select { display: block; width: 100%; min-width: 0; min-height: 48px; margin-top: 8px; padding: 10px; font-size: 16px; border: 1px solid var(--line); border-radius: 5px; color: var(--ink); background: var(--white); }
.logo-settings input[type="file"]::file-selector-button { border: 1px solid var(--line); border-radius: 3px; padding: 8px 10px; margin-right: 10px; background: var(--soft); color: var(--ink); font: inherit; cursor: pointer; }
.logo-preview { display: flex; align-items: center; justify-content: center; min-height: 130px; margin: 18px 0; border: 1px solid var(--line); border-radius: 6px; background: var(--white); color: var(--muted); padding: 18px; text-align: center; }
.logo-preview[data-surface="dark"] { background: var(--ink); color: var(--white); }
.logo-preview img { display: block; max-width: 100%; max-height: 130px; object-fit: contain; }
.logo-actions { display: flex; flex-wrap: wrap; gap: 12px; margin: 18px 0; }
@media(max-width: 900px) { .brand.has-logo img { width: 128px; height: 52px; } .logo-actions button { width: 100%; justify-content: center; } }
@media(max-width: 360px) { .brand.has-logo img { width: 106px; height: 48px; } }
