*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:#242c3e;font-family:"Microsoft YaHei","PingFang SC",Arial,sans-serif;color:#fff}#stage{width:1920px;height:1080px;position:absolute;left:0;top:0;transform-origin:0 0;background:#3d4763;padding:48px;display:grid;grid-template-rows:104px 1fr 76px;gap:24px}header{border-bottom:1px solid #8c94a6;display:flex;justify-content:space-between;align-items:flex-start;padding-bottom:18px}header strong{font-size:52px;font-weight:500;letter-spacing:1px}header #branch{font-size:30px;margin-left:16px}header small{display:block;font-size:18px;letter-spacing:4px;margin-top:8px;color:#e1e5ee}.title{text-align:right;font-size:38px;padding-top:4px}.title small{font-size:18px;letter-spacing:3px}main{min-height:0;display:grid;grid-template-columns:43.4% 1fr;gap:30px}.photo{position:relative;overflow:hidden;border:1px solid #bdc3ce;min-height:0}.photo img{width:100%;height:100%;object-fit:cover;display:block}.photo-shade{position:absolute;inset:0;background:linear-gradient(transparent 50%,#162033c9 100%)}.caption{position:absolute;left:36px;bottom:38px}.caption small{font-size:20px;letter-spacing:2px}.caption strong{display:block;font-size:46px;font-weight:500;margin:14px 0 20px}.caption #photo-indicator{font-size:17px;letter-spacing:4px;color:#e1e6ef}#prices{border:1px solid #aab2c4;border-radius:11px;padding:14px 22px 12px;display:grid;grid-template-rows:54px 1fr;min-height:0}.price-head,.price-row{display:grid;grid-template-columns:36% repeat(4,16%);align-items:center}.price-head{font-size:27px;border-bottom:1px solid #bac1cf}.price-head span:not(:first-child),.price-row span:not(:first-child){text-align:center}.price-head span:first-child,.price-row span:first-child{padding-left:8px}#price-rows{display:grid;min-height:0}.group-heading{font-size:19px;background:#303a5280;display:flex;align-items:center;justify-content:space-between;padding:0 8px}.group-heading.noac{border-top:1px solid #aeb8ca;background:#53617b}.group-heading small{font-size:16px;color:#e6e9ef}.price-row{font-size:31px;border-bottom:1px solid #ffffff12;font-variant-numeric:tabular-nums;min-height:0}.price-row span:first-child{font-size:30px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.price-row.current{background:#ffffff16}.price-row:last-child{border:0}footer{display:flex;align-items:center;justify-content:space-between;font-size:20px;gap:25px}footer strong{font-size:44px;font-weight:400;margin-left:10px;letter-spacing:2px}.footer-right{text-align:right;font-size:23px}.footer-right small{display:block;font-size:18px;color:#e1e6ef;margin-top:10px}#screen-status{position:absolute;right:48px;bottom:17px;font-size:14px;color:#e2e6ef}#waiting{position:absolute;inset:152px 48px 124px;display:grid;place-items:center;background:#3d4763;font-size:32px;text-align:center;padding:80px}#waiting[hidden],#screen-status[hidden]{display:none}.no-rooms{font-size:28px;display:grid;place-items:center;grid-column:1/-1;color:#d8dfec}

.group-heading{gap:16px}.group-heading span,.group-heading small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.group-heading span{flex-shrink:0;max-width:50%}.group-heading small{margin-left:auto;text-align:right}

.caption{right:36px}#photo-tagline{display:block;overflow-wrap:anywhere;line-height:1.5}#photo-tagline[hidden]{display:none}

.price-row span:not(:first-child){min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:0 4px}

/* Keep room photos close to their original 3:2 framing, with captions below the image. */
main{grid-template-columns:52% minmax(0,1fr)}
.photo{display:grid;grid-template-rows:minmax(0,1fr) 112px;background:#303b53;border-color:#abb6c8;border-radius:4px}
.photo-window{position:relative;min-height:0;overflow:hidden;background:#303b53}
.photo-window img{position:absolute;left:0;top:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity 650ms ease-in-out}
.photo-window img.is-visible{opacity:1}
.caption{position:static;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:18px 28px;border-top:1px solid #ffffff24;background:#35415b}
.caption-copy{min-width:0}
.caption strong{font-size:36px;line-height:1.2;letter-spacing:1px;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.caption #photo-tagline{font-size:18px;line-height:1.4;letter-spacing:1px;color:#dee5f0;margin-top:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.caption #photo-indicator{flex-shrink:0;align-self:center;font-size:17px;line-height:1.5;letter-spacing:2px;font-variant-numeric:tabular-nums;color:#d5deed}
.snapshot-mode .photo-window img,.photo-window img.without-transition{transition:none}
@media(prefers-reduced-motion:reduce){.photo-window img{transition:none}}

/* Readable rate columns at the fixed 1080P height, including the full 12 + 4 layout. */
#prices{padding:12px 16px 10px;grid-template-rows:60px minmax(0,1fr);background:#34405a;border:1px solid #a6b3c9;border-radius:8px;overflow:hidden}
.price-head,.price-row{position:relative;grid-template-columns:31% repeat(4,minmax(0,1fr))}
.price-head{font-size:28px;line-height:1.2;font-weight:600;color:#f4f7fc;border-bottom:2px solid #b3c0d5;white-space:nowrap}
.price-head span:first-child,.price-row span:first-child{padding-left:12px;padding-right:12px}
.price-head::after,.price-row::after{content:"";position:absolute;top:0;bottom:0;left:31%;width:1px;background:#ffffff24;pointer-events:none}
.price-head::after{background:#ffffff42}
.price-row{font-size:31px;line-height:1.1;font-weight:400;color:#fff;border-bottom:1px solid #ffffff1c}
.price-row span:first-child{font-size:30px;font-weight:400;line-height:1.1;min-width:0}
.price-row .price-number{font-family:inherit;letter-spacing:0;font-variant-numeric:tabular-nums lining-nums}
.price-row .price-text{font-size:inherit;letter-spacing:0}
.price-row .price-empty{font-size:inherit;font-weight:400;color:#cad4e5}
.price-row.alternate{background:#ffffff05}
.price-row.current{background:#52627f;box-shadow:inset 3px 0 #dbe5f5}
.group-heading.noac{padding:0 12px;background:#566784;border-top:1px solid #b0bfd5;border-bottom:1px solid #ffffff2b;font-size:21px;font-weight:600;line-height:1.2;color:#fff}
.group-heading small{font-size:18px;font-weight:400;color:#f0f4fa}

/* Logo, official-account QR and contact details share the footer without resizing the photo. */
footer{--footer-shadow:drop-shadow(0 8px 7px rgba(8,15,31,.65)) drop-shadow(0 2px 2px rgba(8,15,31,.55))}
.footer-left,.footer-branding{display:flex;align-items:center}
.footer-left{--contact-height:84px;flex:1;gap:28px;min-width:0}
.footer-branding{gap:20px;flex-shrink:0}
.brand-slot{position:relative;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.logo-slot{width:176px;height:var(--contact-height)}
.qr-slot{width:var(--contact-height);height:var(--contact-height);padding:0}
.qr-slot.has-image{background:transparent}
.brand-slot img{display:block;width:100%;height:100%;object-fit:contain}
.brand-slot img[hidden]{display:none}
.logo-slot img{filter:brightness(0) invert(1) var(--footer-shadow)}
.qr-slot img{image-rendering:pixelated;filter:var(--footer-shadow)}
.brand-placeholder{display:none;align-items:center;justify-content:center;flex-direction:column;gap:6px;text-align:center;font-size:15px;line-height:1.5;color:#d8e2f0}
.brand-placeholder small{font-size:12px;color:#b6c4db}
.preview-mode .brand-slot:not(.has-image){border:1px dashed #91a1bb;background:#35415b}
.preview-mode .brand-slot:not(.has-image) .brand-placeholder{display:flex}
.footer-contact{flex:1;min-width:0;height:var(--contact-height)}
.phone-line,.address-line{display:flex;align-items:baseline;gap:12px;min-width:0}
.phone-line>span,.address-line>span:first-child{font-size:18px;flex-shrink:0;white-space:nowrap}
.phone-line{height:48px}
.phone-line strong{font-size:44px;line-height:48px;margin-left:0;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.address-line{margin-top:10px;color:#e1e6ef;font-size:20px;line-height:26px}
#address{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.footer-right{max-width:430px;flex:0 1 auto;line-height:1.5}
.phone-line,.address-line,.footer-right{filter:var(--footer-shadow)}

/* Stronger panel edges with restrained depth against the blue-grey background. */
.photo,#prices{border:3px solid #b3bed1;box-shadow:0 16px 26px -12px rgba(8,15,31,.58),0 5px 10px -3px rgba(8,15,31,.30),0 1px 0 rgba(255,255,255,.08)}
#prices{position:relative}
.photo::after,#prices::after{content:"";position:absolute;inset:0;border-radius:inherit;box-shadow:inset 1px 1px 0 rgba(255,255,255,.12),inset -1px -1px 0 rgba(10,18,34,.20);pointer-events:none;z-index:3}
