/* A short first-visit brand greeting; never a blocking loading screen. */
#brandWelcome{display:none;pointer-events:none;position:fixed;inset:0;z-index:11000;background:#f6f1e8;place-items:center}
.brand-welcome #brandWelcome{display:grid;animation:brand-welcome-exit .95s ease forwards}
#brandWelcome img{width:min(210px,55vw);height:auto;animation:brand-welcome-logo .8s cubic-bezier(.2,.65,.3,1) both}
#brandWelcome .brand-welcome-line{height:1px;width:72px;margin:20px auto 0;background:#5f6b55;transform-origin:center;animation:brand-welcome-line .7s ease both}
@keyframes brand-welcome-logo{from{opacity:0;transform:translateY(8px) scale(.97)}35%,100%{opacity:1;transform:translateY(0) scale(1)}}
@keyframes brand-welcome-line{from{opacity:0;transform:scaleX(.2)}to{opacity:.6;transform:scaleX(1)}}
@keyframes brand-welcome-exit{0%,55%{opacity:1}100%{opacity:0;visibility:hidden}}
/* Only forward actions move. The full button stays still and easy to tap. */
.journey-next-arrow,.btn:not(:disabled) .journey-next-arrow{animation:journey-forward 2.8s ease-in-out infinite!important;will-change:transform}
@keyframes journey-forward{0%,60%,100%{transform:translateX(0)}76%{transform:translateX(4px)}88%{transform:translateX(1px)}}
#modal .btn:hover,#customerAccount .btn:hover{transform:none}
.btn:disabled .journey-next-arrow,[aria-busy=true] .journey-next-arrow{animation:none!important;will-change:auto}
html.ambient-user-paused .journey-next-arrow,html.ambient-user-paused .btn:not(:disabled) .journey-next-arrow,html.page-motion-paused .journey-next-arrow,html.page-motion-paused .btn:not(:disabled) .journey-next-arrow{animation-play-state:paused!important}
/* Keep helper text readable even in inherited compact components. */
#modal .summarybox{font:16px/1.6 var(--font-body)!important;overflow-wrap:anywhere}
#modal .summary-included,#modal .summary-duration,#bookingDock .dock-summary,.step-caption,.step-caption strong,.inclusion-caption p,.inclusion-caption p.inclusion-extra,.journey-grid p,.inclusion-preview-note,.payment-choice small{font:14px/1.6 var(--font-body)!important;color:var(--text-secondary)}
#modal .summarybox>span[style]{float:none!important;display:block;font-weight:500;color:var(--text-primary)}
#customerAccount .account-booking details p{padding-top:0;margin:12px 0}
#customerAccount .account-booking details p:empty{display:none}
.inclusion-caption h4,.journey-grid h4{font:400 20px/1.3 var(--font-heading)}
.card-top{font-size:12px!important}.details-error,.error{overflow-wrap:anywhere}
.error{color:var(--text-error);border-left-color:var(--text-error)}
.details-steps button:disabled{background:transparent!important;color:var(--text-secondary)!important;opacity:.65!important;cursor:default}
/* Reserve enough room for long headings and compact-phone action labels. */
#bookingDock .dialog-actions>.btn{gap:10px;min-width:0;white-space:normal;text-align:center}
#bookingDock .dock-status{min-width:0;flex:0 1 40%}#bookingDock .dock-status p{font:14px/1.5 var(--font-body);margin:4px 0 0}
@media(max-width:380px){#bookingDock .dialog-actions:has(.dock-status){flex-wrap:wrap}#bookingDock .dock-status{flex:1 0 100%}#bookingDock .dialog-actions>.btn{padding:12px}.customer-nav-controls>.btn{gap:7px}.inclusion-gallery{gap:22px 12px}}
@media(max-width:600px){.mobilebar{gap:10px;padding-left:16px;padding-right:16px}.mobilebar>div{font:14px/1.4 var(--font-body);min-width:0}.mobilebar small{font:12px/1.5 var(--font-body)}.mobilebar .btn{font:14px/1.4 var(--font-body);white-space:nowrap;padding:12px 14px;gap:10px;min-height:44px;flex-shrink:0}.mobilebar .btn svg{width:18px;height:18px}}
@media(prefers-reduced-motion:reduce){.brand-welcome #brandWelcome{display:none!important}.journey-next-arrow,.btn:not(:disabled) .journey-next-arrow{animation:none!important;will-change:auto}}
