/* Shared hotel-price typography. Amount strings and commercial labels stay untouched. */
:root{--price-size:32px;--price-leading:1.2;--price-gap:4px}
:is(.price,.hd-price){min-width:0;max-width:100%;text-align:start;color:var(--navy)}
:is(.price,.hd-price)>:is(small,strong,span){display:block;margin:0}
:is(.price,.hd-price)>strong{
 font-family:var(--serif);font-size:var(--price-size);font-weight:400;
 line-height:var(--price-leading);font-variant-numeric:lining-nums tabular-nums;
 letter-spacing:0;white-space:nowrap;margin-block:var(--price-gap);color:var(--navy);
}
:is(.price,.hd-price)>small{font-size:10px;line-height:1.65;color:var(--muted)}
.price>small:first-child{letter-spacing:.06em;text-transform:uppercase}
:is(.price,.hd-price)>span{font-size:11px;line-height:1.65;color:var(--muted)}
.price>small:not(:first-child){letter-spacing:0;text-transform:none;overflow-wrap:anywhere}
.hd-price{--price-size:44px}
.hd-price>span{font-size:12px}
.booking-card .price{--price-size:40px}
.price--compact{--price-size:26px}
.price--compact>small:first-child{letter-spacing:0;text-transform:none}

/* Shared rows align card footers without truncating names or reserving empty copy. */
.hotel-card-body{display:grid;grid-template-rows:1fr auto;min-width:0}
.hotel-card-copy{min-width:0}
.hotel-card-copy>.match-badge{width:fit-content}
.hotel-card-copy>p:empty,.hotel-card-copy>.tag-row:empty{display:none}
.hotel-card-bottom{align-items:start;min-width:0}
.hotel-card-bottom>.price{flex:1 1 150px}
.hotel-card-bottom>.button{flex-shrink:0}
@supports(grid-template-rows:subgrid){
 :is(.hotel-grid,.hd-related-grid)>.hotel-card{display:grid;grid-row:span 3;grid-template-rows:subgrid;row-gap:0}
 :is(.hotel-grid,.hd-related-grid)>.hotel-card>.hotel-card-body{grid-row:span 2;grid-template-rows:subgrid;row-gap:0}
 :is(.hotel-grid,.hd-related-grid) .hotel-card-bottom{margin-top:0;display:grid;grid-template-rows:1fr auto;align-content:stretch}
 :is(.hotel-grid,.hd-related-grid) .hotel-card-bottom>.button{width:100%}
}
.hd-offer>.price,.offer-card>.price{min-width:8.5ch}
.hotel-detail-page .hd-offers>.hd-offer{grid-template-columns:minmax(0,1fr) 210px 240px}
.hotel-detail-page .hd-offer>small{grid-column:1/-1}
@media(max-width:1000px){
 .hotel-detail-page .hd-offers>.hd-offer{grid-template-columns:minmax(0,1fr) 210px}
}
@media(max-width:640px){
 .hotel-detail-page .hd-offers>.hd-offer{grid-template-columns:minmax(0,1fr)}
 .hotel-detail-page .hd-mobile-cta>.price{flex:0 0 auto}
 .hotel-detail-page .hd-mobile-cta>.button{min-width:0;flex:1 1 auto;overflow-wrap:anywhere}
}
