.rental-booking { box-sizing:border-box; width:min(820px,calc(100vw - 32px)); max-height:calc(100dvh - 32px); margin:auto; padding:0; border:1px solid var(--appearance-line,#d9ddda); border-radius:16px; background:var(--appearance-panel,#fff); color:var(--appearance-ink,#171a1b); font:15px/1.5 Arial,Helvetica,sans-serif; overscroll-behavior:contain; }
.rental-booking:where(:not(.rental-booking-photo-dialog)) { width:min(1180px,calc(100vw - 32px)); }
.rental-booking::backdrop { background:#071318b8; backdrop-filter:blur(7px); }
.rental-booking * { box-sizing:border-box; }
.rental-booking [hidden] { display:none!important; }
.rental-booking-head { position:sticky; top:0; z-index:2; display:flex; align-items:center; justify-content:space-between; gap:20px; padding:24px 28px; background:var(--appearance-panel,#fff); border-bottom:1px solid var(--appearance-line,#d9ddda); }
.rental-booking h2 { margin:0; font:700 26px/1.2 Arial,Helvetica,sans-serif; letter-spacing:normal; }
.rental-booking h3 { margin:0 0 14px; font:700 17px/1.3 Arial,Helvetica,sans-serif; }
.rental-booking p { margin:0 0 12px; }
.rental-booking button.rental-booking-close { display:grid; place-items:center; flex:0 0 44px; width:44px; min-width:44px; height:44px; min-height:44px; padding:0; border:1px solid var(--appearance-line,#d9ddda); border-radius:50%; background:transparent; color:inherit; font:28px/1 Arial; cursor:pointer; }
.rental-booking form, .rental-booking-success { padding:24px 28px 28px; }
.rental-booking-fields { display:grid; gap:24px; min-width:0; margin:0; padding:0; border:0; }
.rental-booking-fields > section { min-width:0; padding-bottom:24px; border-bottom:1px solid var(--appearance-line,#d9ddda); }
.rental-booking label { display:grid; gap:7px; font-size:14px; font-weight:600; }
.rental-booking :is(select,input,textarea) { min-width:0; max-width:100%; width:100%; min-height:44px; padding:10px 12px; border:1px solid var(--appearance-line,#b9c2c6); border-radius:7px; background:var(--appearance-panel,#fff); color:inherit; font:inherit; }
.rental-booking input[type=checkbox] { width:20px; height:20px; min-height:20px; margin:0; accent-color:#d70012; }
.rental-booking-dates { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; margin:18px 0; }
.rental-booking-types { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:18px; }
.rental-booking-type { display:flex; align-items:center; gap:8px; padding:0 6px 0 14px; border-radius:7px; background:color-mix(in srgb,currentColor 7%,transparent); }
.rental-booking-type button { width:40px; min-height:44px; padding:0; background:transparent; border:0; color:inherit; font:24px/1 Arial; cursor:pointer; }
.rental-booking :is(.rental-booking-transport,.rental-booking-turns) { display:grid; gap:12px; margin:16px 0; }
.rental-booking :is(.rental-booking-transport,.rental-booking-turns) label { display:flex; align-items:center; gap:12px; }
.rental-booking .rental-booking-item-group { min-width:0; margin:0 0 18px; padding:0; border:0; }
.rental-booking-item:has(input:checked) { border-color:#d70012; background:color-mix(in srgb,#d70012 4%,transparent); }
.rental-booking-summary:not(:empty) { padding:20px; border-radius:8px; background:color-mix(in srgb,currentColor 6%,transparent); }
.rental-booking-summary > strong { display:block; font-size:20px; }
.rental-booking .rental-booking-primary, .rental-booking-detail-actions .rental-booking-primary { display:inline-flex; justify-content:center; align-items:center; min-height:46px; padding:12px 20px; border:0; border-radius:6px; background:#d70012; color:#fff; font:700 15px/1.4 Arial,Helvetica,sans-serif; text-decoration:none; cursor:pointer; }
.rental-booking .rental-booking-hint, .rental-booking-detail-actions .rental-booking-hint { margin:12px 0; color:inherit; opacity:.72; font:13px/1.5 Arial,Helvetica,sans-serif; }
.rental-booking-status { margin-top:16px!important; overflow-wrap:anywhere; }
.rental-booking-status:empty { display:none; }
.rental-booking-status.is-error { color:var(--appearance-error,#c21b2c); }
.rental-booking-account-link { display:inline-block; margin-top:14px; text-decoration:underline; text-underline-offset:3px; color:inherit; }
.rental-booking-detail-actions { margin:0 0 18px; }
.rental-booking-detail-actions .rental-booking-primary { color:#fff; }
.rental-booking-auth-actions { display:flex; align-items:center; flex-wrap:wrap; gap:16px; }
.rental-booking-auth-actions .rental-booking-register { color:inherit; text-decoration:underline; text-underline-offset:3px; }
.rental-booking-retry { display:block; margin:20px auto; padding:12px 18px; }
.rental-booking-success { display:grid; gap:18px; }
.rental-booking-success button { justify-self:start; padding:12px; background:transparent; border:0; color:inherit; text-decoration:underline; cursor:pointer; }
.rental-booking :is(button,input,select,textarea,a):focus-visible, .rental-booking-detail-actions button:focus-visible { outline:3px solid #d70012; outline-offset:3px; }
.rental-booking :disabled, .rental-booking-primary:disabled { cursor:wait; opacity:.55; }
@media(hover:hover) and (pointer:fine) { .rental-booking-primary:not(:disabled):hover { background:#b80010; } .rental-booking button.rental-booking-close:not(:disabled):hover,.rental-booking .rental-booking-type button:not(:disabled):hover { background:color-mix(in srgb,currentColor 8%,transparent); } }
@media(max-width:600px) { .rental-booking { width:calc(100vw - 16px); max-height:calc(100dvh - 16px); border-radius:12px; } .rental-booking-head { padding:16px; } .rental-booking h2 { font-size:23px; } .rental-booking form,.rental-booking-success { padding:18px 16px; } .rental-booking-dates { grid-template-columns:1fr; } .rental-booking :is(select,input,textarea) { font-size:16px; } }

.rental-booking-size-filter { max-width:260px; margin-bottom:12px; }

.rental-booking-date-field { display:grid; gap:7px; min-width:0; font-size:14px; font-weight:600; }
.rental-booking .rental-booking-date-field .modern-datetime-picker { grid-template-columns:minmax(0,1fr) 104px; }
@media(max-width:380px) { .rental-booking .rental-booking-date-field .modern-datetime-picker { grid-template-columns:minmax(0,1fr); } }

.rental-booking h4 { margin:0 0 10px; font-size:14px; }
.rental-booking-presets { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }
.rental-booking .rental-booking-preset { display:flex; flex-direction:column; gap:6px; min-width:0; padding:16px; text-align:left; border:1px solid var(--appearance-line,#d9ddda); border-radius:12px; background:color-mix(in srgb,currentColor 4%,transparent); color:inherit; font:inherit; cursor:pointer; }
.rental-booking-preset strong { font-size:15px; }
.rental-booking-preset span { font-size:12px; line-height:1.5; opacity:.75; }
.rental-booking-preset[aria-pressed=true] { border-color:#d70012; background:color-mix(in srgb,#d70012 9%,var(--appearance-panel,#fff)); }
.rental-booking-select-field { display:grid; gap:8px; min-width:0; font-size:14px; font-weight:600; }
.rental-booking .compact-filters-dropdown { position:relative; min-width:0; }
.rental-booking .compact-filters-dropdown-trigger { display:flex; align-items:center; justify-content:space-between; gap:12px; min-height:48px; padding:12px 14px; border:1px solid var(--appearance-line,#b9c2c6); border-radius:10px; background:color-mix(in srgb,currentColor 4%,var(--appearance-panel,#fff)); color:inherit; font:inherit; list-style:none; cursor:pointer; }
.rental-booking .compact-filters-dropdown-trigger span { min-width:0; overflow-wrap:anywhere; }
.rental-booking .compact-filters-dropdown-trigger::-webkit-details-marker { display:none; }
.rental-booking .compact-filters-dropdown-trigger::after { content:''; flex:none; width:8px; height:8px; border-right:2px solid currentColor; border-bottom:2px solid currentColor; transform:rotate(45deg); margin:0 3px 4px; }
.rental-booking .compact-filters-dropdown[open] { z-index:3; }
.rental-booking .compact-filters-dropdown[open] > summary { border-color:#d70012; }
.rental-booking .compact-filters-dropdown-panel { position:absolute; top:calc(100% + 6px); left:0; right:0; padding:6px; border:1px solid var(--appearance-line,#b9c2c6); border-radius:12px; background:var(--appearance-panel,#fff); box-shadow:0 12px 32px #0003; }
.rental-booking .compact-filters-dropdown--open-up .compact-filters-dropdown-panel { top:auto; bottom:calc(100% + 6px); }
.rental-booking .compact-filters-dropdown-options { max-height:var(--compact-filters-dropdown-options-max-height,250px); overflow:auto; overscroll-behavior:contain; }
.rental-booking .compact-filters-dropdown-option { display:flex; align-items:center; gap:10px; min-height:46px; padding:10px; border-radius:7px; cursor:pointer; }
.rental-booking .compact-filters-dropdown-option input[type=radio] { flex:none; width:18px; height:18px; min-height:18px; padding:0; margin:0; accent-color:#d70012; }
.rental-booking .compact-filters-dropdown-option-text { min-width:0; overflow-wrap:anywhere; }
.rental-booking .compact-filters-dropdown-option:has(input:checked) { background:color-mix(in srgb,currentColor 8%,transparent); }
.rental-booking summary:focus-visible { outline:3px solid #d70012; outline-offset:3px; }
.rental-booking-fields:disabled .compact-filters-dropdown { pointer-events:none; opacity:.55; }
@media(hover:hover) and (pointer:fine) {
  .rental-booking-preset:not(:disabled):hover,.rental-booking .compact-filters-dropdown-option:not(:has(input:disabled)):hover { background:color-mix(in srgb,currentColor 8%,var(--appearance-panel,#fff)); }
}
@media(max-width:600px) {
  .rental-booking-presets { grid-template-columns:1fr; gap:8px; }
  .rental-booking .rental-booking-preset { padding:12px 14px; gap:3px; }
  .rental-booking .compact-filters-dropdown-trigger,.rental-booking .compact-filters-dropdown-option { font-size:16px; }
  .rental-booking-size-filter { max-width:none; }
  .rental-booking .rental-booking-primary, .rental-booking-detail-actions .rental-booking-primary { width:100%; }
}
.rental-booking .compact-filters-dropdown-group-label { padding:14px 10px 6px; font-size:12px; font-weight:700; opacity:.65; }
.rental-booking .rental-booking-item-group { border:1px solid var(--appearance-line,#d9ddda); border-radius:12px; }
.rental-booking-type-group { position:relative; }
.rental-booking-group-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; min-height:68px; padding:12px 100px 12px 14px; cursor:pointer; list-style:none; }
.rental-booking .rental-booking-group-remove { position:absolute; top:12px; right:12px; min-height:44px; padding:6px 10px; border:1px solid var(--appearance-line,#d9ddda); border-radius:6px; background:transparent; color:inherit; font:400 12px/1.4 Arial,Helvetica,sans-serif; text-decoration:none; cursor:pointer; }
@media(hover:hover) and (pointer:fine) { .rental-booking .rental-booking-group-remove:not(:disabled):hover { background:color-mix(in srgb,#c21b2c 9%,transparent); color:var(--appearance-error,#c21b2c); } }
.rental-booking-group-heading::-webkit-details-marker { display:none; }
.rental-booking-group-heading > span:first-child { display:grid; gap:4px; min-width:0; overflow-wrap:anywhere; }
.rental-booking-group-heading small { font-size:12px; opacity:.7; }
.rental-booking-group-title { display:flex; align-items:baseline; flex-wrap:wrap; gap:4px 16px; }
.rental-booking-group-price { font:400 13px/1.5 Arial,Helvetica,sans-serif; }
.rental-booking-group-toggle { flex:none; font-size:12px; text-decoration:underline; text-underline-offset:3px; }
.rental-booking-item-group.has-selection { border-color:color-mix(in srgb,#d70012 55%,var(--appearance-line,#d9ddda)); }
.rental-booking-group-content { padding:0 12px 12px; }
.rental-booking-item-rows { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:6px; }
.rental-booking .rental-booking-item { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:8px; min-width:0; padding:6px 10px; border:1px solid var(--appearance-line,#d9ddda); border-radius:8px; }
.rental-booking .rental-booking-item-choice { display:flex; align-items:center; gap:10px; min-width:0; min-height:44px; cursor:pointer; }
.rental-booking-item-choice > span { display:block; min-width:0; overflow-wrap:anywhere; line-height:1.5; }
.rental-booking-item-choice strong { margin-right:.35em; }
.rental-booking-item-choice small { font-size:13px; font-weight:400; line-height:inherit; }
.rental-booking-item-price { display:inline-block; margin-left:.35em; font-size:12px; font-weight:600; white-space:nowrap; }
.rental-booking .rental-booking-item input[type=number] { flex:0 0 58px; width:58px; padding:6px; }
.rental-booking .rental-booking-item input[type=checkbox] { flex:none; }
.rental-booking .rental-booking-item-detail { min-height:44px; padding:6px 10px; border:1px solid var(--appearance-line,#d9ddda); border-radius:6px; background:transparent; color:inherit; font:600 12px/1.4 Arial,Helvetica,sans-serif; text-decoration:none; cursor:pointer; }
.rental-booking-photo-body { display:grid; gap:16px; padding:20px; }
.rental-booking-photo-body img { display:block; width:100%; max-height:60dvh; object-fit:contain; border-radius:10px; }
.rental-booking-photo-dialog h2 { font-size:20px; overflow-wrap:anywhere; }
.rental-booking-photo-dialog .rental-booking-head { align-items:flex-start; padding:18px 20px; }
.rental-booking-photo-dialog h2 { min-width:0; align-self:center; line-height:1.5; }
.rental-booking-photo-name { margin-left:.65em; font:400 16px/1.5 Arial,Helvetica,sans-serif; }
@media(max-width:700px) { .rental-booking-item-rows { grid-template-columns:1fr; } }
@media(hover:hover) and (pointer:fine) { .rental-booking .rental-booking-item-detail:not(:disabled):hover,.rental-booking-group-heading:hover { background:color-mix(in srgb,currentColor 5%,transparent); } }

.rental-booking .rental-booking-invoice { display:flex; align-items:center; gap:10px; }
.rental-booking-extras:empty { display:none; }
.customer-rental-shared-form { --appearance-panel:var(--panel,#fff); --appearance-ink:var(--ink,#171a1b); --appearance-line:var(--line,#d9ddda); }
.rental-booking.rental-booking-embedded { width:100%; max-height:none; margin:0; border:0; border-radius:0; overflow:visible; box-shadow:none; }
.rental-booking-embedded > form { padding:16px 0; }
.rental-booking-embedded > .rental-booking-head { display:none; }
.rental-booking-account-photo { --appearance-panel:var(--panel,#fff); --appearance-ink:var(--ink,#171a1b); --appearance-line:var(--line,#d9ddda); }
.rental-booking-history { display:grid; gap:16px; padding:24px 28px; }
.rental-booking-history-card { padding:16px; border:1px solid var(--appearance-line,#d9ddda); border-radius:12px; }
.rental-booking-history-actions { display:flex; align-items:center; gap:12px; flex-wrap:wrap; }
.rental-booking-history-link { min-height:32px; padding:2px 0; border:0; background:transparent; color:inherit; font:inherit; text-decoration:underline; text-underline-offset:3px; cursor:pointer; }
.rental-booking-history-link:focus-visible { outline:3px solid #d70012; outline-offset:3px; }
@media(max-width:600px) { .rental-booking-history { padding:18px 16px; } }

/* Public form actions keep their geometry inside the Shark application shell. */
.rental-booking button { width:auto; box-shadow:none; text-shadow:none; backdrop-filter:none; }
.rental-booking .rental-booking-type button { flex:none; width:36px; min-width:36px; height:36px; min-height:36px; padding:4px; background:transparent; color:inherit; border:0; }
.rental-booking .rental-booking-preset { align-items:flex-start; }

.rental-booking .rental-booking-item-group > summary::after { content:none; }

.rental-booking-repeat { margin:0 0 20px; }
.rental-booking-repeat-panel { display:grid; gap:8px; max-height:320px; overflow:auto; margin-top:12px; }
.rental-booking-repeat-row,.rental-booking-unavailable { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:12px; border:1px solid var(--appearance-line,#d9ddda); border-radius:8px; }
.rental-booking-repeat-row > span,.rental-booking-unavailable > div { min-width:0; overflow-wrap:anywhere; }
.rental-booking-repeat-row > button,.rental-booking-unavailable > button { flex:none; }
.rental-booking-unavailable { margin-bottom:12px; background:color-mix(in srgb,currentColor 4%,transparent); }
.rental-booking-unavailable s { opacity:.65; }
.rental-booking-unavailable p { margin:5px 0 0; font-size:13px; }
.rental-booking-group-heading .rental-booking-replacement-hint { opacity:1; font-weight:600; }
@media(max-width:450px) { .rental-booking-repeat-row,.rental-booking-unavailable { align-items:flex-start; flex-direction:column; } }

/* Category copy keeps its editorial formatting without repeating the modal title scale. */
.rental-content [data-rental-description-content] :is(h1,h2,h3,h4,h5,h6){font-family:inherit;font-size:1em;line-height:1.5;margin:1em 0 .5em}
