.booking { max-width: 42rem; margin-inline: auto; overflow-wrap: anywhere; } .booking h1 { max-width: none; } .booking__package, .booking__result { padding: 1.25rem; border: 1px solid currentColor; border-radius: 0.5rem; margin-block: 1.5rem; } .booking__package h2 { margin-top: 0; } .booking__payment { margin-block: 1.5rem; padding-left: 1rem; border-left: 3px solid currentColor; } .booking__payment h2 { font-size: 1.1rem; } .booking__field { margin-block: 1.5rem; } .booking label { display: block; font-weight: 600; margin-bottom: 0.35rem; } .booking input, .booking__button { font: inherit; border: 1px solid currentColor; border-radius: 0.25rem; min-height: 2.75rem; padding: 0.65rem 0.8rem; } .booking input { width: 100%; color: inherit; background: transparent; } .booking input[readonly] { border-style: dashed; } .booking__button { color: #f7faf7; background: #176448; cursor: pointer; max-width: 100%; } .booking__button:disabled { opacity: 0.7; cursor: default; } .booking :focus-visible, .booking__errors:focus, .booking__result:focus { outline: 3px solid currentColor; outline-offset: 4px; } .booking__button:focus-visible { outline-color: #18352b; } .booking__errors, .booking__field-error { color: #8b1e1e; } .booking__errors { padding: 0.8rem; border: 2px solid currentColor; margin-block: 1rem; } .booking__field p { margin-block: 0.35rem; } .booking__field-error:empty { display: none; } .booking [aria-invalid="true"] { border: 2px solid #8b1e1e; } @media (max-width: 30rem) { .booking__button { width: 100%; } } .booking__totals { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 0.75rem 1rem; padding-block: 1rem; border-block: 1px solid #d4ddd7; } .booking__totals dd { margin: 0; text-align: right; } .booking__totals dt:last-of-type, .booking__totals dd:last-of-type { font-weight: 700; font-size: 1.15rem; } .booking__features { padding-left: 1.25rem; } .booking__features li { margin-block: 0.5rem; } /* Sämtliche Dialogregeln bleiben innerhalb der Booking-Section. */ .booking .booking__dialog { box-sizing: border-box; width: min(32rem, calc(100vw - 2rem)); max-height: calc(100dvh - 2rem); margin: auto; padding: 1.75rem; overflow-y: auto; color: #edf5f5; background: #071316; border: 1px solid #324449; border-radius: 1.25rem; box-shadow: 0 1.5rem 4rem #0006; color-scheme: dark; } .booking .booking__dialog::backdrop { background: rgb(0 0 0 / 65%); } .booking__dialog h2 { margin: 0 2rem 0.75rem 0; font-size: 1.35rem; } .booking .booking__close { position: absolute; top: 0.5rem; right: 0.5rem; width: 2.75rem; height: 2.75rem; border: 0; background: transparent; color: inherit; font: inherit; font-size: 1.75rem; cursor: pointer; } .booking__dialog input { box-sizing: border-box; background: #101e22; border-color: #61777d; border-radius: 0.75rem; } .booking__dialog .booking__button { background: #00b6c7; border-color: #00b6c7; color: #061619; border-radius: 0.75rem; } .booking__dialog .booking__cancel { background: transparent; border-color: #61777d; color: inherit; } .booking__actions { display: flex; flex-wrap: wrap; gap: 0.75rem; } .booking__actions > button { flex: 1 1 auto; } .booking__dialog .booking__errors, .booking__dialog .booking__field-error { color: #ffb5b5; } .booking__dialog [aria-invalid="true"] { border-color: #ffb5b5; } .booking__dialog :focus-visible, .booking__dialog .booking__errors:focus, .booking__dialog .booking__result:focus { outline-color: #00d6e8; }