/* Consistent button geometry; natural card heights at narrow widths. */
#main[data-route="home"] .home-hotel-grid .venue-tile[data-venue-state="open"]{border-color:#b9dabb;box-shadow:0 5px 18px #27572c0b}
#main[data-route="home"] .home-hotel-grid .venue-tile[data-venue-state="closed"]{border-color:#f0cbb7;box-shadow:0 5px 18px #824c290b}
#main[data-route="home"] .home-hotel-grid .venue-tile[data-venue-state="open"] .venue-label{background:linear-gradient(135deg,#effae4,#def0df);color:#234b2d}
#main[data-route="home"] .home-hotel-grid .venue-tile[data-venue-state="closed"] .venue-label{background:linear-gradient(135deg,#fff3e5,#ffe3d4);color:#67422d}
#main[data-route="home"] .home-hotel-grid .venue-tile[data-venue-state="open"] .venue-art .badge{background:#f0ffeaf5!important;color:#28552e!important;border-color:#b9dabb}
#main[data-route="home"] .home-hotel-grid .venue-tile[data-venue-state="closed"] .venue-art .badge{background:#fff4eaf5!important;color:#7a462e!important;border-color:#e4b498}
#main[data-route="home"] .home-hotel-grid .venue-tile[data-venue-state="open"] .venue-location{color:#45654b}
#main[data-route="home"] .home-hotel-grid .venue-tile[data-venue-state="closed"] .venue-location{color:#775744}
.day-card-clickable{display:flex;flex-direction:column;padding:0;width:100%;min-width:0;color:var(--dark);font:inherit;text-align:left;cursor:pointer;appearance:none}
.day-card-clickable>.day-cover{display:block;width:100%;flex:none}.day-card-clickable>.day-card-copy{display:flex;flex:1;min-width:0}.day-card-title{display:block;font-size:1.05rem;font-weight:650;line-height:1.35;min-height:2.7em;color:var(--dark)}.day-card-clickable .day-card-meta,.day-card-clickable .day-route-summary{display:flex;align-items:center;gap:6px}.day-card-clickable .day-card-cta{width:100%;font-size:.8125rem;margin-top:auto}.day-card-clickable:focus-visible{outline:3px solid var(--season-accent);outline-offset:3px}
dialog:has(.day-programme-detail){overflow-x:hidden;overscroll-behavior-x:none}dialog:has(.day-programme-detail) .modalbody{overflow-x:hidden;touch-action:pan-y pinch-zoom;min-width:0;box-sizing:border-box}.day-programme-detail{width:100%;max-width:100%;min-width:0;overflow-x:hidden;touch-action:pan-y pinch-zoom}.day-programme-detail *{box-sizing:border-box}.day-programme-detail .day-field{min-width:0}.day-programme-detail input{width:100%;min-width:0;max-width:100%}.day-programme-detail .day-stop-actions .textlink{white-space:normal;max-width:100%;justify-content:center;text-align:center}.day-programme-detail .day-stop-heading>div{max-width:100%;min-width:0}.day-programme-detail .day-transfer{flex-wrap:wrap}.day-programme-detail img{max-width:100%}.day-programme-detail .day-event,.day-programme-detail .day-nearby-area{min-width:0;max-width:100%}
@media(max-width:760px){
 #main[data-route="home"] .welcome-row{display:flex;flex-direction:column;align-items:stretch;gap:12px;margin-bottom:22px}
 #main[data-route="home"] .home-hotel-brand{display:grid;grid-template-columns:58px minmax(0,1fr);align-items:center;gap:16px;width:100%}
 #main[data-route="home"] .home-hotel-brand .brand-logo{width:58px;height:64px}
 #main[data-route="home"] .home-hotel-brand>div:last-child{min-width:0}#main[data-route="home"] .home-hotel-brand .eyebrow{display:block;font-size:.68rem;line-height:1.5;margin-bottom:5px;letter-spacing:.04em;white-space:normal}
 #main[data-route="home"] .home-hotel-brand h1{font-size:1.15rem;line-height:1.35;margin:0;text-wrap:balance}
 #main[data-route="home"] .welcome-row>.btn{align-self:flex-end;min-height:40px;margin:0;padding:9px 13px}
 .compact-nav{display:grid;grid-template-columns:32px minmax(0,1fr) auto;column-gap:12px;row-gap:8px;padding:9px 14px}.compact-nav .compact-brand{grid-column:1;grid-row:1}.compact-nav .nav-language{grid-column:3;grid-row:1;border:0;padding:0}.compact-nav .appnav{grid-column:1/-1;grid-row:2;width:100%;padding:0;gap:6px}.compact-nav .appnav a{min-height:40px;padding:8px 12px}
 .weekly-programme .week-tabs,.event-periods{display:flex;flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden;max-width:100%;gap:6px;padding-bottom:5px;scrollbar-width:none;touch-action:pan-x pan-y}.weekly-programme .week-tabs::-webkit-scrollbar,.event-periods::-webkit-scrollbar{display:none}.weekly-programme .week-tabs>.chip,.event-periods>.chip{flex:0 0 auto;font-size:.75rem;min-height:38px;padding:8px 11px;white-space:nowrap}
 .day-programme-detail .day-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.day-programme-detail .day-controls>.day-length{grid-column:1/-1}.day-programme-detail .day-stop-heading>div{flex-basis:0;flex-grow:1}.day-programme-detail .day-stop-heading h3{font-size:.94rem;line-height:1.4}.day-programme-detail .day-stop-heading{flex-wrap:wrap}.day-programme-detail .day-stop-heading>div{flex-basis:100%}.day-programme-detail .day-stop-actions{gap:6px}.day-programme-detail .day-stop-actions .textlink{font-size:.75rem;padding:8px;min-height:40px}.day-programme-detail .day-return>div{min-width:0}.day-card-title{font-size:1rem}
}
.btn,.chip,.textlink{align-items:center;justify-content:center;text-align:center;line-height:1.35;box-sizing:border-box}
.home-section-title>.textlink{display:inline-flex;align-items:center;justify-content:center;text-align:center;max-width:none;min-height:42px;padding:9px 13px;margin:0;font-size:.78rem;line-height:1.3;white-space:normal;flex:0 0 auto}
.day-length{align-items:stretch}.day-length>.chip{display:flex;align-items:center;justify-content:center;text-align:center;flex:1 1 0;min-width:0;margin:0;min-height:42px;padding:9px 13px;font-size:.8125rem;line-height:1.3}
.dining-actions.card-actions{flex-wrap:wrap;align-items:center}.dining-actions.card-actions>.btn[data-action="local-booking"],.dining-actions.card-actions>.btn[data-action="hi5-booking"]{display:flex;align-items:center;justify-content:center;text-align:center;flex:1 1 100%;width:100%;min-width:0;min-height:40px;margin:0 0 2px;padding:9px 10px;font-size:.78rem;line-height:1.3;white-space:normal}.dining-actions.card-actions>.btn .icon{width:15px;height:15px;flex:none}
.local-moment-card .actions>.btn{display:inline-flex;align-items:center;justify-content:center;text-align:center;min-height:42px;margin:0;font-size:.78rem;line-height:1.35;white-space:normal;padding:9px 11px}
.menu-link-row>.btn{justify-content:center;text-align:center;margin:0;min-width:0;font-size:.8rem}
@media(max-width:760px){
 #main[data-route="home"] .home-hotel-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-flow:row;grid-auto-columns:auto;grid-template-rows:auto;gap:10px;overflow:visible;padding:0}
 #main[data-route="home"] .home-hotel-grid .venue-tile,#main[data-route="home"] .home-hotel-grid .venue-tile.spa,#main[data-route="home"] .home-hotel-grid .venue-tile.bar,#main[data-route="home"] .home-hotel-grid .venue-tile.gym{grid-column:auto;width:100%;min-width:0;min-height:0;height:auto;align-self:stretch;border-radius:16px}
 #main[data-route="home"] .home-hotel-grid .venue-art,#main[data-route="home"] .home-hotel-grid .spa .venue-art,#main[data-route="home"] .home-hotel-grid .bar .venue-art{height:82px}
 #main[data-route="home"] .home-hotel-grid .venue-label{padding:11px;gap:5px;justify-content:flex-start}
 #main[data-route="home"] .home-hotel-grid .venue-label h2,#main[data-route="home"] .home-hotel-grid .spa .venue-label h2,#main[data-route="home"] .home-hotel-grid .bar .venue-label h2{font-size:.95rem;line-height:1.3;text-align:left;text-wrap:balance;margin:0;min-height:2.6em}
 #main[data-route="home"] .home-hotel-grid .venue-location{font-size:.68rem;line-height:1.4;margin:0;align-items:flex-start}.home-hotel-grid .venue-location .icon{flex:none;width:12px;height:12px;margin-top:2px}
 #main[data-route="home"] .home-hotel-grid .next-opening{display:none}
 #main[data-route="home"] .home-hotel-grid .venue-explore{width:26px;height:26px;top:8px;right:8px;font-size:.9rem}
 #main[data-route="home"] .home-hotel-grid .venue-art .badge{top:8px;left:8px;font-size:.6rem;padding:4px 6px;line-height:1.3;max-width:calc(100% - 48px)}
 .home-section-title{flex-wrap:wrap;align-items:center;gap:10px}.home-section-title>div{flex:1 1 190px;min-width:0}.home-section-title>.textlink{max-width:100%;text-align:center;font-size:.76rem;min-height:42px;white-space:normal}
 .day-shelf-toolbar .day-length,.day-controls .day-length{width:100%;min-width:0;display:flex}.day-shelf-toolbar .day-length .chip,.day-controls .day-length .chip{justify-content:center;text-align:center;font-size:.8rem;min-height:42px;padding:9px 10px}
 .dining-actions.card-actions>.btn[data-action="local-booking"],.dining-actions.card-actions>.btn[data-action="hi5-booking"]{font-size:.75rem;min-height:40px}.dining-actions .card-icon{min-height:38px;width:38px;height:38px;flex-basis:38px}
 .local-moment-card .actions{display:flex;flex-direction:column;align-items:stretch;gap:8px}.local-moment-card .actions>.btn{width:100%;font-size:.75rem}
 .venue-actions>.btn,.modalbody .actions>.btn{justify-content:center;text-align:center;white-space:normal;line-height:1.35;min-width:0;min-height:44px}
 .welcome-row{align-items:center}.welcome-row h1{font-size:clamp(1.18rem,4.7vw,1.6rem);line-height:1.25}.home-hotel-brand{min-width:0}.welcome-row>.btn{flex:none;margin:0;min-height:40px;font-size:.72rem}
 .hotel-menu-copy h3,.local-moment-card h3{line-height:1.3}.menu-link-row>.btn{font-size:.76rem;text-align:center;justify-content:center}
}
@media(max-width:360px){#main[data-route="home"] .home-hotel-grid{gap:8px}#main[data-route="home"] .home-hotel-grid .venue-label{padding:9px}#main[data-route="home"] .home-hotel-grid .venue-label h2{font-size:.89rem}#main[data-route="home"] .home-hotel-grid .venue-art{height:74px}.welcome-row{flex-wrap:wrap}.welcome-row>.btn{margin-left:auto}.home-section-title>div{flex-basis:100%}}

/* Keep matching content on shared rows, even when translations wrap. */
.home-offer-tile:not(.home-offer-featured) .home-offer-price{margin-top:auto}
.home-offer-tile:not(.home-offer-featured) .home-offer-cta{margin-top:8px;min-height:36px;padding-top:0}
.home-offer-badge{align-items:center}
.home-offer-badge .icon{margin-top:0}
#main .dining-copy{grid-template-rows:minmax(2.6em,auto) auto auto;align-content:start;gap:6px}
#main .dining-copy h3{display:block;line-height:1.3;overflow:visible;-webkit-line-clamp:unset;white-space:normal}
#main .dining-kind,#main .dining-location{height:auto;overflow:visible;white-space:normal;line-height:1.4;text-overflow:clip}
#main .dining-location .icon{flex:none;margin-top:2px}
#main .dining-card-meta{margin-top:auto;flex-wrap:wrap;align-items:center;white-space:normal;row-gap:5px;padding-top:6px}
#main .dining-actions.card-actions{display:flex;flex-wrap:wrap;align-items:stretch;margin-top:0}
#main .dining-actions.card-actions>.card-icon{flex:0 0 36px;width:36px;height:36px;min-height:36px;max-width:36px;padding:0;border-radius:50%;display:flex;align-items:center;justify-content:center}
#main .dining-actions.card-actions>.btn{flex:1 1 100%;min-width:0;white-space:normal}
.promo-copy{display:flex;flex-direction:column;flex:1;min-width:0}
.promo-copy .promo-value{margin-top:auto;padding-top:8px}
.promo-bottom{align-items:stretch}
.promo-bottom>.btn{display:flex;align-items:center;justify-content:center;text-align:center}
.card-actions>.textlink{display:flex;align-items:center;justify-content:center;text-align:center;min-width:0}
@media(max-width:760px){
 .home-offer-tile:not(.home-offer-featured) .home-offer-copy>strong{min-height:2.7em}
 .home-offer-tile:not(.home-offer-featured) .home-offer-description{min-height:4.65em}
 .home-offer-tile:not(.home-offer-featured) .home-offer-price{min-height:2.8em}
 @supports(grid-template-rows:subgrid){
  .home-offer-mosaic{grid-template-rows:none;grid-auto-rows:auto;row-gap:8px;align-items:stretch}
  .home-offer-mosaic>.home-offer-featured{grid-row:span 1;margin-bottom:3px}
  .home-offer-mosaic>.home-offer-tile:not(.home-offer-featured){display:grid;grid-row:span 6;grid-template-rows:subgrid;row-gap:8px}
  .home-offer-mosaic>.home-offer-tile:not(.home-offer-featured)>img{width:100%;height:125px}
  .home-offer-tile:not(.home-offer-featured) .home-offer-copy{display:grid;grid-row:span 5;grid-template-rows:subgrid;row-gap:8px;align-items:start;justify-items:start;padding-top:4px}
  .home-offer-tile:not(.home-offer-featured) .home-offer-copy>strong,
  .home-offer-tile:not(.home-offer-featured) .home-offer-description,
  .home-offer-tile:not(.home-offer-featured) .home-offer-price{min-height:0;margin:0}
  .home-offer-tile:not(.home-offer-featured) .home-offer-cta{margin:0;align-self:end}
 }
}

/* One compact mobile navigation row; the hotel brand stays in the welcome. */
@media(max-width:760px){
 .compact-nav{display:grid;grid-template-columns:minmax(0,1fr) 44px;grid-template-rows:auto;align-items:center;gap:6px;min-height:54px;padding:5px 8px}
 .compact-nav .compact-brand{display:none}
 .compact-nav .appnav{grid-column:1;grid-row:1;width:100%;min-width:0;gap:2px;padding:0;align-items:center}
 .compact-nav .appnav a{display:flex;align-items:center;justify-content:center;min-height:44px;padding:8px;font-size:.78rem;line-height:1.25;gap:0}
 .compact-nav .appnav a>.icon{display:none}
 .compact-nav .nav-language{grid-column:2;grid-row:1;padding:0;border:0;min-width:0;align-self:center}
 .compact-nav .lang{width:44px;height:44px;min-height:44px;padding:5px 2px;font-size:.75rem;border-radius:9px;text-align:center}
}

/* Compact round save/map controls across all card shelves. */
#main .card-actions{display:flex;justify-content:flex-end;align-items:center;gap:7px}
#main .card-actions>.card-icon{flex:0 0 36px;width:36px;height:36px;min-height:36px;max-width:36px;padding:0;border-radius:50%;box-sizing:border-box}
#main .card-actions>.card-icon>.icon{width:16px;height:16px;flex:none}
.local-moment-card .card-actions{padding:12px 0 0;margin-top:0}
.local-moment-card .eyebrow{white-space:normal;line-height:1.5}

#main .card-actions>.card-icon{position:relative;inset:auto;flex-grow:0;flex-shrink:0;overflow:hidden}#main .card-actions>.card-icon::before,#main .card-actions>.card-icon::after{content:none}.place-rating,.dining-rating{cursor:default}.place-rating:hover strong,.dining-rating:hover strong{text-decoration:none}

/* Mobile action labels share one centre, including wrapped translations. */
@media(max-width:760px){
 #main .btn,#main .chip,#main .textlink,#modal .modalbody .btn,#modal .modalbody .chip,#modal .modalbody .textlink{display:inline-flex;align-items:center;justify-content:center;text-align:center;line-height:1.35;box-sizing:border-box;min-width:0}
 #main .btn>.icon,#main .chip>.icon,#main .textlink>.icon,#modal .modalbody .btn>.icon,#modal .modalbody .chip>.icon,#modal .modalbody .textlink>.icon{flex-shrink:0;vertical-align:middle}
 #main input[type="date"],#main input[type="time"],#modal .modalbody input[type="date"],#modal .modalbody input[type="time"]{text-align:center}
 #main input[type="date"]::-webkit-date-and-time-value,#main input[type="time"]::-webkit-date-and-time-value,#modal .modalbody input[type="date"]::-webkit-date-and-time-value,#modal .modalbody input[type="time"]::-webkit-date-and-time-value{text-align:center;margin:0}
 #main input[type="date"]::-webkit-datetime-edit,#main input[type="time"]::-webkit-datetime-edit,#modal .modalbody input[type="date"]::-webkit-datetime-edit,#modal .modalbody input[type="time"]::-webkit-datetime-edit{padding:0;text-align:center}
}
