/* One action-button shape across Vuzario. Keep image cards, date cells and tabs as controls. */
:root{--vuzario-action-radius:999px;--vuzario-selection-radius:12px;--vuzario-icon-radius:50%}
:is(.btn,.button,.pill,.primary,.secondary,.review-button,.menu,.share-button,.tool,button[type="submit"],input[type="submit"],input[type="button"]),
:is(.controls,.map-actions,.video-sharing,.filters,.filterbar,.tip-choices,.fp-actions,.slideshow-dialog-header) button,
:is(#menu-toggle,#tip-open,#tip-pay,#tip-cancel,#show-more,#show-all,#all-photos,#staging-previous,#staging-next),
.google-review-invitation>a,
.vuzario-utility-page button:not(:where(.link,.text-button,.password-eye,nav button)),
.additional-photos-page :is(#buy,#edit-selection,#viewer-add){border-radius:var(--vuzario-action-radius)!important}
/* Payment choices and multi-step tabs remain clearly distinguishable from actions. */
:is(.payment-buttons,.book-progress,.tabs,.preview-options) button,.admin-workflow-tabs>button{border-radius:var(--vuzario-selection-radius)!important}
:is(.icon-button,.viewer-arrow,.carousel-prev,.carousel-next),.viewer-top button,.viewer-stage button{border-radius:var(--vuzario-icon-radius)!important}

/* Icon-only viewer controls: fixed square hit areas prevent Safari's font metrics,
   padding and flex shrinking from turning circles into ovals. */
:is(.icon-button,.viewer-arrow,.carousel-prev,.carousel-next),
.viewer-top button,.viewer-stage button,
.tour > .arrow,.tour > header .icon-button,
.additional-photos-page .dialog-controls :is(#prev,#next,#close){
 box-sizing:border-box!important;
 appearance:none;-webkit-appearance:none;
 width:44px!important;height:44px!important;
 min-width:44px!important;min-height:44px!important;
 max-width:44px!important;max-height:44px!important;
 flex:0 0 44px!important;aspect-ratio:1;
 padding:0!important;line-height:1!important;
 display:inline-grid!important;place-items:center;
 border-radius:50%!important;
 text-align:center;letter-spacing:0;white-space:nowrap;
 touch-action:manipulation;
}
:is(.icon-button,.viewer-arrow),.viewer-top button,.viewer-stage button,.tour > .arrow{
 font-size:24px!important;
}
:is(.icon-button,.viewer-arrow),.viewer-top button,.viewer-stage button{
 outline-offset:2px;
}
:is(.icon-button,.viewer-arrow) svg,.viewer-top button svg,.viewer-stage button svg{
 width:22px!important;height:22px!important;display:block;flex:none;
}

/* Download icons and decorative circular badges share equal dimensions. */
.file-icon{
 box-sizing:border-box!important;width:36px!important;height:36px!important;
 min-width:36px!important;min-height:36px!important;flex:0 0 36px!important;
 border-radius:50%!important;display:grid;place-items:center;padding:0!important;
}
:is(.play-bubble,.panorama-art,.play-button,.slideshow-play,.video-play-overlay,
.wallet-icon,.return-icon,.step-number,.travel-check,.photo-tile span){
 box-sizing:border-box;aspect-ratio:1;flex-shrink:0;border-radius:50%;
}
.slideshow-play{padding:0;line-height:1}
/* Full actions share the main site's size; supporting filters and map tools are compact. */
body :is(.hero-bottom,.slideshow-actions,.gallery-footer) .pill,
body .button:not(:where(.download-row .button)){
 box-sizing:border-box;min-height:var(--vz-action-height,52px)!important;padding:14px 22px!important;
 font-size:var(--vz-action-font-size,14px)!important;font-weight:600;line-height:1.5!important;
}
body :is(.filters,.map-actions) button{
 box-sizing:border-box;min-height:var(--vz-compact-height,44px);padding:10px 14px;
 font-size:12px;line-height:1.5;
}
body .video-sharing button{
 box-sizing:border-box;min-height:var(--vz-compact-height,44px);padding:10px 16px;
 font-size:var(--vz-action-font-size,14px);line-height:1.5;
}
/* Long addresses may wrap without pushing the mobile menu beyond the screen. */
.site-header .wordmark{min-width:0;flex-shrink:1}
.site-header .wordmark>span:last-child{min-width:0;overflow-wrap:anywhere}
.site-header .wordmark .mark{flex-shrink:0}
body :is(#tip-open,#tip-pay,#tip-cancel){min-height:var(--vz-action-height,52px);font-size:var(--vz-action-font-size,14px)}
/* Labeled download circles remain identical to their file badges on every screen. */
.download-row{grid-template-columns:44px minmax(0,1fr) 64px;gap:14px;padding-top:24px;padding-bottom:24px}
.download-row .file-icon{
 width:44px!important;height:44px!important;min-width:44px!important;min-height:44px!important;flex-basis:44px!important;
}
.download-row .file-icon svg,.download-row a[aria-label^="Download "] svg{
 width:20px!important;height:20px!important;display:block;flex:none;
}
.download-row a[aria-label^="Download "]{
 position:relative;justify-self:center;box-sizing:border-box!important;
 /* Reserve the label height in layout so the whole group is centered. */
 margin-top:19.3px!important;
 appearance:none;-webkit-appearance:none;
 width:44px!important;height:44px!important;min-width:44px!important;min-height:44px!important;
 max-width:44px!important;max-height:44px!important;flex:0 0 44px!important;
 padding:0!important;border-radius:50%!important;aspect-ratio:1;line-height:1!important;
 display:inline-grid!important;place-items:center;gap:0!important;
}
.download-row a[aria-label^="Download "]>span:first-child{
 display:block!important;position:absolute;bottom:calc(100% + 5px);left:50%;transform:translateX(-50%);
 font-size:11px;line-height:1.3;font-weight:600;white-space:nowrap;color:var(--ink,#172e3b);
}
@media(max-width:600px){
 .download-row{grid-template-columns:44px minmax(0,1fr) 64px;gap:10px;padding:24px 13px}
}
