.reservation-page{--reservation-cream:#faf2ed;--reservation-muted:#cebfc0;--reservation-rose:#963451;min-height:100svh;color:var(--reservation-cream);background:linear-gradient(#6b565e 0%,#443039 35%,#21171b 100%);padding:20px 18px 0}.reservation-page .reservation-shell{width:100%;max-width:600px;margin:0 auto}.reservation-page .reservation-header{text-align:center;padding:0 4px 30px}.reservation-page .reservation-logo{object-fit:contain;filter:brightness(0)invert()sepia(.12);width:256px;max-width:100%;height:auto;margin:0 auto 4px;display:block}.reservation-page h1{letter-spacing:-.035em;margin:0 0 16px;font-size:clamp(34px,8.5vw,46px);line-height:1.25}.reservation-page .reservation-description{max-width:380px;color:var(--reservation-cream);margin:0 auto;font-size:15px;line-height:1.7}.reservation-page .boutique-info{color:var(--reservation-muted);max-width:365px;margin:20px auto 0;font-size:13px;line-height:1.65}.reservation-page .boutique-info p{justify-content:center;align-items:flex-start;gap:8px;margin:0;display:flex}.reservation-page .boutique-info svg{flex:0 0 17px;width:17px;height:20px}.reservation-page .boutique-info a{text-underline-offset:4px;justify-content:center;align-items:center;gap:8px;min-height:44px;padding:8px;display:inline-flex}.reservation-page .boutique-info a:hover{color:var(--reservation-cream);text-decoration:underline}.reservation-page .booking-layout{max-width:none;margin:0;display:block}.reservation-page .card{background:#302226;border:1px solid #664750;border-radius:32px;min-width:0;padding:28px 22px}.reservation-page .steps{border:0;align-items:flex-start;gap:0;margin:0 0 34px;padding:0;display:flex}.reservation-page .step{color:var(--reservation-muted);text-align:center;flex-direction:column;flex:1;gap:9px;font-size:12px;line-height:1.3;display:flex;position:relative}.reservation-page .step:not(:last-child):after{content:"";background:#8a6e77;width:calc(100% - 62px);height:1px;position:absolute;top:22px;left:calc(50% + 31px)}.reservation-page .step b{width:44px;height:44px;color:var(--reservation-muted);background:0 0;border:1px solid #a58b94;font-size:16px;font-weight:500}.reservation-page .step.active{color:var(--reservation-cream)}.reservation-page .step.active b{color:var(--reservation-cream);background:var(--reservation-rose);border-color:var(--reservation-rose)}.reservation-page .step.complete b{color:var(--reservation-cream);border-color:#c58a9c}.reservation-page .section-title{letter-spacing:-.025em;margin:0 0 10px;font-size:clamp(25px,6.8vw,30px);line-height:1.3}.reservation-page .section-title:focus{outline:none}.reservation-page .muted,.reservation-page .eyebrow{color:var(--reservation-muted)}.reservation-page .small{font-size:13px;line-height:1.7}.reservation-page .date-strip-heading{justify-content:space-between;align-items:center;gap:8px;margin:26px 0 12px;font-size:13px;display:flex}.reservation-page #date-hint{font-size:11px}.reservation-page .date-strip{overscroll-behavior-x:contain;scroll-snap-type:x proximity;scrollbar-width:thin;scrollbar-color:#80606b transparent;gap:10px;margin:-4px -3px 0;padding:4px 3px 13px;display:flex;overflow-x:auto}.reservation-page .date-card{min-width:68px;min-height:98px;color:var(--reservation-muted);scroll-snap-align:start;background:#38272e;border:1px solid #765661;border-radius:16px;flex-direction:column;flex:0 0 68px;justify-content:center;align-items:center;gap:3px;font-size:12px;display:flex}.reservation-page .date-card strong{color:var(--reservation-cream);font-size:26px;font-weight:500;line-height:1.2}.reservation-page .date-card.selected{background:var(--reservation-rose);color:var(--reservation-cream);border-color:#c47a91}.reservation-page .date-card:hover:not(.selected){background:#49333d;border-color:#b1929b}.reservation-page .field-title{font-family:var(--font-body), sans-serif;margin:25px 0 13px;font-size:14px;font-weight:500}.reservation-page .slots{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:14px}.reservation-page .slot{min-height:48px;color:var(--reservation-cream);background:#38272e;border:1px solid #886470;border-radius:12px;padding:10px 5px;font-size:15px}.reservation-page .slot.selected{background:var(--reservation-rose);border-color:#c47a91}.reservation-page .slot:hover:not(:disabled):not(.selected){background:#49333d}.reservation-page .slot:disabled{opacity:1;color:#9e8b91;background:#302226;border:1px dashed #624b54;text-decoration:line-through;text-decoration-thickness:1px}.reservation-page .slots[aria-busy=true] .slot{text-decoration:none}.reservation-page .primary{background:var(--reservation-rose);min-height:52px;color:var(--reservation-cream);border:1px solid #b75b77;border-radius:14px;margin-top:26px;font-size:15px;font-weight:600}.reservation-page .primary:hover:not(:disabled){background:#a43e5d}.reservation-page .primary:disabled{opacity:1;color:#baa3ab;background:#55343e;border-color:#684651}.reservation-page .secondary{min-height:48px;color:var(--reservation-cream);border:1px solid #94727d;border-radius:12px}.reservation-page .back{min-height:44px;color:var(--reservation-muted);text-underline-offset:4px;margin:8px auto 0;padding:10px 4px;font-size:13px;display:block}.reservation-page .back:hover{text-decoration:underline}.reservation-page .field{margin:24px 0;font-size:14px;line-height:1.5}.reservation-page .field input{min-height:52px;color:var(--reservation-cream);background:#261b20;border:1px solid #886470;border-radius:12px;margin-top:9px;padding:13px 15px;font-size:16px}.reservation-page .field input::placeholder{color:#ad979f;opacity:1}.reservation-page .field small{color:var(--reservation-muted);margin-top:8px;font-size:12px}:is(.reservation-page .field input[aria-invalid=true],.reservation-page .field input:user-invalid){border-color:#e39aac}.reservation-page .field-error{color:#ffd0dc;margin-top:8px;font-size:13px;display:block}.reservation-page .consent{min-height:44px;color:var(--reservation-muted);cursor:pointer;align-items:flex-start;gap:8px;margin:12px -10px;padding-right:10px;font-size:13px;line-height:1.75;display:flex;position:relative}.reservation-page .consent input{appearance:none;cursor:pointer;flex:0 0 44px;width:44px;height:44px;margin:0;position:relative}.reservation-page .consent input:before{content:"";background:#261b20;border:1px solid #ac8b96;border-radius:5px;position:absolute;inset:11px}.reservation-page .consent input:checked:before{background:var(--reservation-rose);border-color:#d28ba1}.reservation-page .consent input:checked:after{content:"✓";color:var(--reservation-cream);text-align:center;font-size:15px;line-height:22px;position:absolute;inset:11px}.reservation-page .consent>span{padding-top:9px}.reservation-page .consent a{text-underline-offset:4px;min-height:44px;margin:-10px 0;padding:10px 0;text-decoration:underline;display:inline-block}.reservation-page .error{color:#ffd0dc;overflow-wrap:anywhere;background:#462a34;border:1px solid #a5697d;border-radius:12px;padding:14px;line-height:1.65}.reservation-page .summary-row{border-bottom:1px solid #664750;grid-template-columns:85px minmax(0,1fr);align-items:baseline;gap:14px;margin:0;padding:16px 0;display:grid}.reservation-page .summary-row span{color:var(--reservation-muted);letter-spacing:0;text-transform:none;font-size:12px}.reservation-page .summary-row p{overflow-wrap:anywhere;margin:0;font-size:15px}.reservation-page .summary-row+.small{margin-top:22px}.reservation-page .receipt{overflow-wrap:anywhere;padding:0}.reservation-page .receipt>.secondary{width:100%}.reservation-page .receipt-whatsapp{color:#faf2ed;text-align:center;background:#254d3b;border:1px solid #719c87;border-radius:12px;justify-content:center;align-items:center;width:100%;min-height:48px;margin-top:12px;padding:12px 16px;font-size:15px;font-weight:600;line-height:1.5;text-decoration:none;display:flex}.reservation-page .receipt-whatsapp:hover{background:#2e5b47}.reservation-page .receipt .check{width:64px;height:64px;color:var(--reservation-cream);background:#55303e;border:1px solid #ac7184}.reservation-page .receipt>p{margin:18px 0;line-height:1.7}.reservation-page .reference{letter-spacing:.045em;background:#38272e;border:1px dashed #b78797;border-radius:16px;margin:26px 0 22px;padding:20px 12px;font-size:17px;line-height:1.9}.reservation-page .reference .eyebrow{letter-spacing:.15em;font-size:10px}.reservation-page .note{margin:28px 0 32px;padding:0 16px}.reservation-page .note h3{color:var(--reservation-cream);margin-bottom:10px;font-size:14px}.reservation-page .note p{color:var(--reservation-muted);margin:9px 0;font-size:12px;line-height:1.85}.reservation-page footer{color:var(--reservation-muted);letter-spacing:.06em;border-color:#785761;padding:22px 12px;font-size:10px;line-height:1.8}.reservation-page :is(button,a,input):focus-visible{outline:2px solid var(--reservation-cream);outline-offset:3px}.reservation-page .date-card:focus-visible{outline-offset:1px}@media (min-width:600px){.reservation-page{padding-top:30px}.reservation-page .reservation-header{padding-bottom:36px}.reservation-page .card{padding:36px 38px}.reservation-page .date-card{flex-basis:76px;min-height:106px}.reservation-page .date-strip{gap:12px}.reservation-page .steps{max-width:380px;margin-left:auto;margin-right:auto}.reservation-page .note{padding:0 24px}}@media (prefers-reduced-motion:reduce){.reservation-page *{scroll-behavior:auto;transition:none}}.reservation-page .visit-info{color:var(--reservation-muted);background:#36272d;border:1px solid #664750;border-radius:16px;margin:22px 0;padding:18px;font-size:14px;line-height:1.75}.reservation-page .visit-info p{margin:0}.reservation-page .terms-notice{color:#3e3015;background:#f4e5b5;border:1px solid #d4ae51;border-left-width:4px;border-radius:14px;margin:24px 0;padding:18px;font-size:14px;line-height:1.8}.reservation-page .terms-notice p{text-align:justify;text-align-last:start;margin:0}.reservation-page .visit-terms{text-align:justify;text-align-last:start;overflow-wrap:break-word;padding-left:24px;font-size:15px;line-height:1.85;list-style:decimal}.reservation-page .visit-terms li{margin:18px 0;padding-left:5px}.reservation-page .terms-copy{line-height:1.85}.reservation-page .field textarea{width:100%;min-height:100px;color:var(--reservation-cream);font:inherit;resize:vertical;background:#261b20;border:1px solid #886470;border-radius:12px;margin-top:9px;padding:13px 15px;font-size:16px}.reservation-page .field input[type=date]{width:100%;min-width:0}.reservation-page .field input:disabled{opacity:.55}.visit-details dt{margin-top:12px;font-weight:600}.visit-details dd{overflow-wrap:anywhere;margin:4px 0}
