/* Keep native details semantics and keyboard controls; only their height is animated. */
.accordion-body{display:flow-root;min-width:0}
details[data-accordion-state=opening],details[data-accordion-state=closing]{overflow:hidden;will-change:height;overflow-anchor:none}
.hospitality-accordion details[data-accordion-expanded=true] summary i{transform:rotate(45deg)}
.hospitality-accordion details[data-accordion-expanded=false] summary i{transform:rotate(0deg)}
.hospitality-accordion summary i{transition:transform 300ms cubic-bezier(.22,1,.36,1)}
.faq details>summary>span,.price-comparison>summary>span{transition:transform 300ms cubic-bezier(.22,1,.36,1)}
.faq details[data-accordion-expanded=true]>summary>span,.price-comparison[data-accordion-expanded=true]>summary>span{transform:rotate(45deg)}
.faq details[data-accordion-expanded=false]>summary>span,.price-comparison[data-accordion-expanded=false]>summary>span{transform:rotate(0deg)}
details summary:focus-visible{outline:2px solid var(--accent);outline-offset:5px;border-radius:3px}
body.quiet-mode .hospitality-accordion summary i,body.quiet-mode .faq summary>span,body.quiet-mode .price-comparison>summary>span{transition:none}
@media(prefers-reduced-motion:reduce){.hospitality-accordion summary i,.faq summary>span,.price-comparison>summary>span{transition:none}}
/* Keep the table tent inside the crop on all screen sizes. */
.hospitality-photo{height:auto!important;aspect-ratio:4/3;min-height:0}
.hospitality-photo>img{width:100%;height:100%;aspect-ratio:auto;object-fit:cover;object-position:50% 50%}
@media(max-width:600px){
 .hospitality-photo .restaurant-label{left:12px;bottom:12px;max-width:60%;padding:12px}
 .hospitality-photo .restaurant-label>span{font-size:24px;line-height:1.1}
 .hospitality-photo .restaurant-label small{font-size:11px;line-height:1.4;margin-top:6px}
 .hospitality-photo .photo-caption{top:8px;right:8px;left:auto;max-width:158px;font-size:12px;line-height:1.35;padding:6px 8px;letter-spacing:0}
}
