/* Pricing page — rules every template shares (layout, filters, cards, advance-offer popup)
   Loaded only when this template is the active one (see template_css() in app/helpers.php). */
        .rate-page { background: radial-gradient(circle at 92% 11%, rgba(85,165,213,.16), transparent 23%), linear-gradient(180deg, #f7fbfd 0%, #edf6fb 48%, #fff 100%); color: #101820; font-family: Manrope, ui-sans-serif, sans-serif; }

        .rate-hero { background-color: #101820; background-image: linear-gradient(rgba(255,255,255,.045) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.045) 1px, transparent 1px), radial-gradient(circle at 88% 5%, rgba(85,165,213,.45), transparent 27%), linear-gradient(118deg, #101820 0%, #153b59 58%, #2d6795 100%); background-size: 38px 38px, 38px 38px, auto, auto; box-shadow: 0 18px 0 #d8ebf8, 0 42px 80px rgba(7,35,60,.2); }

        .rate-filter-shell { position: relative; perspective: 1400px; isolation: isolate; }

        .rate-filter-shell::before, .rate-filter-shell::after { content: ''; position: absolute; border-radius: 28px; pointer-events: none; }

        .rate-filter-shell::before { inset: 13px -10px -13px 10px; z-index: -2; background: linear-gradient(145deg, #bfd9ea, #d8ebf8); box-shadow: 0 22px 42px rgba(31,87,130,.18); }

        .rate-filter-shell::after { inset: 25px -18px -25px 20px; z-index: -3; border: 1px solid rgba(45,103,149,.2); }

        .rate-filter-panel { position: relative; z-index: 1; overflow: visible; background: linear-gradient(145deg, #fff, #edf7fd); border: 1px solid #fff; box-shadow: 0 4px 0 rgba(31,87,130,.03), 0 12px 24px rgba(31,87,130,.03), inset 2px 2px 0 #fff; transform: rotateY(2.2deg) rotateX(.7deg); transform-origin: left center; transform-style: preserve-3d; transition: transform .3s ease, box-shadow .3s ease; }

        .rate-filter-panel:hover, .rate-filter-panel:focus-within { transform: rotateY(.5deg) rotateX(0) translateY(-3px); box-shadow: 0 6px 0 rgba(31,87,130,.04), 0 16px 32px rgba(31,87,130,.05), inset 2px 2px 0 #fff; }

        .rate-filter-panel::before { content: 'STAY PASSPORT'; position: absolute; right: 21px; top: -14px; padding: 6px 11px; border-radius: 999px; background: linear-gradient(145deg, #397eae, #24547b); color: #fff; box-shadow: 0 6px 0 #17466a, 0 12px 22px rgba(31,87,130,.24); font-size: 8px; font-weight: 800; letter-spacing: .16em; }

        .rate-filter-field { position: relative; z-index: 1; padding: 12px; margin-inline: -6px; border: 1px solid #d8e8f2; transform: translateZ(13px); }

        .rate-filter-title { display: flex !important; align-items: center; justify-content: space-between; color: #24547b; opacity: 1 !important; }

        .rate-filter-title::after { display: none; }

        .rate-filter-field:nth-child(1) { border-left: 4px solid #2d6795; border-radius: 7px 18px 18px 7px; background: #fff; box-shadow: 5px 6px 0 #d8ebf8; }

        .rate-filter-field:nth-child(2) { border-top: 3px solid #55a5d5; border-radius: 20px 7px 20px 7px; background: #f3faff; box-shadow: 5px 6px 0 #c8deeb; }

        .rate-filter-field:nth-child(3) { border-radius: 14px; background: linear-gradient(90deg, #edf7fd, #d8ebf8); box-shadow: 0 7px 0 #bfd9ea; }

        .rate-filter-field:nth-child(4) { border: 2px dashed #a9cde2; border-radius: 9px 22px 9px 22px; background: #fff; box-shadow: inset 5px 0 0 #55a5d5, 5px 6px 0 #d8ebf8; }

        .rate-filter-field:nth-child(5) { border-color: #153b59; border-radius: 16px 16px 6px 6px; background: linear-gradient(145deg, #153b59, #24547b); box-shadow: 0 8px 0 #101820, 0 14px 24px rgba(7,35,60,.18); }

        .rate-filter-field:nth-child(5) .rate-filter-title { color: #fff; }

        .rate-filter-field:nth-child(5) .rate-filter-title::after { background: #55a5d5; color: #fff; box-shadow: 0 3px 0 #0b2e48; }

        .rate-choice-input { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }

        .rate-choice { cursor: pointer; user-select: none; transition: transform .2s ease, box-shadow .2s ease, color .2s ease, background .2s ease, border-color .2s ease; }

        .rate-choice:hover { transform: translateY(-2px); }

        .rate-choice-input:focus-visible + .rate-choice { outline: 3px solid rgba(45,103,149,.25); outline-offset: 2px; }

        .rate-room-stamps { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 7px; }

        .rate-room-stamp { display: grid; min-height: 42px; place-items: center; border: 1px solid color-mix(in srgb, var(--color-primary, #2d6795) 35%, transparent); border-radius: 16px 5px 16px 5px; background: var(--color-primary-tint, #f8fcff); color: var(--color-primary, #48677e); font-size: 9px; font-weight: 800; line-height: 1.1; text-align: center; box-shadow: none; }

        .rate-choice-input:checked + .rate-room-stamp { border-color: var(--color-primary, #2d6795); background: var(--color-primary, #2d6795); color: #fff; box-shadow: none; transform: translate(-1px,-2px); }

        .rate-bed-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 8px; }

        .rate-bed-choice { display: flex; min-height: 44px; align-items: center; gap: 7px; border: 1px solid color-mix(in srgb, var(--color-primary, #2d6795) 40%, transparent); border-radius: 16px 5px 16px 5px; background: var(--color-primary-tint, #f8fcff); padding: 8px 9px; color: var(--color-primary, #48677e); font-size: 9px; font-weight: 800; box-shadow: none; }

        .rate-bed-choice svg { width: 15px; height: 15px; color: var(--color-primary, #2d6795); }

        .rate-choice-input:checked + .rate-bed-choice { border-color: var(--color-primary, #2d6795); background: var(--color-primary, #2d6795); color: #fff; box-shadow: none; transform: translate(-1px,-2px); }

        .rate-choice-input:checked + .rate-bed-choice svg { color: #fff; }

        .rate-guest-rail { display: flex; align-items: center; justify-content: space-between; gap: 5px; }

        .rate-guest-choice { display: grid; width: 34px; height: 34px; place-items: center; border: 1px solid #a9cde2; border-radius: 999px; background: #fff; color: #2d6795; font-size: 10px; font-weight: 900; box-shadow: none; }

        .rate-choice-input:checked + .rate-guest-choice { background: #153b59; border-color: #153b59; color: #fff; box-shadow: none; transform: translateY(-2px); }

        .rate-offer-ticket { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 10px; border: 1px solid #c8deeb; border-radius: 7px 17px 7px 17px; background: #f8fcff; padding: 11px 12px 11px 15px; color: #24547b; box-shadow: 0 5px 0 #d8ebf8; }

        .rate-offer-ticket strong { display: block; font-size: 10px; }

        .rate-offer-ticket small { display: block; margin-top: 2px; font-size: 8px; opacity: .7; }

        .rate-ticket-switch { position: relative; width: 38px; height: 22px; border-radius: 999px; background: #c8deeb; box-shadow: inset 0 2px 4px rgba(21,59,89,.18); }

        .rate-ticket-switch::after { content: ''; position: absolute; left: 3px; top: 3px; width: 16px; height: 16px; border-radius: 50%; background: #fff; box-shadow: 0 2px 5px rgba(7,35,60,.25); transition: transform .2s ease; }

        .rate-choice-input:checked + .rate-offer-ticket { border-color: #2d6795; background: #d8ebf8; box-shadow: 0 6px 0 #a9cde2; }

        .rate-choice-input:checked + .rate-offer-ticket .rate-ticket-switch { background: #2d6795; }

        .rate-discount-grid { display: grid; gap: 8px; }

        .rate-discount-choice { display: flex; align-items: center; gap: 11px; padding: 9px 12px; border: 1px solid #c8deeb; border-radius: 12px; background: #f8fcff; transition: border-color .2s ease, background .2s ease, box-shadow .2s ease, transform .2s ease; }

        .rate-discount-meter { position: relative; flex: 0 0 30px; width: 30px; height: 30px; border-radius: 9px; background: #eef4ff; overflow: hidden; box-shadow: inset 0 0 0 1px rgba(45,103,149,.12); }

        .rate-discount-meter-fill { position: absolute; inset: auto 0 0 0; background: var(--color-primary, #2d6795); border-radius: 0 0 8px 8px; transition: height .25s ease; }

        .rate-discount-choice strong { display: block; color: #153b59; font-size: 12px; font-weight: 900; }

        .rate-discount-choice small { display: block; margin-top: 1px; color: #24547b; font-size: 8px; font-weight: 700; opacity: .75; }

        .rate-choice-input:checked + .rate-discount-choice { border-color: var(--color-primary, #2d6795); background: #eef4ff; box-shadow: none; transform: translateY(-1px); }

        .rate-choice-input:checked + .rate-discount-choice .rate-discount-meter-fill { background: var(--color-accent, #153b59); }

        .rate-choice-input:checked + .rate-offer-ticket .rate-ticket-switch::after { transform: translateX(16px); }

        .rate-facility-search { width: 100%; border: 1px solid rgba(255,255,255,.2); border-radius: 10px; background: rgba(255,255,255,.1); padding: 9px 11px; color: #fff; font-size: 10px; outline: none; }

        .rate-facility-search::placeholder { color: rgba(255,255,255,.48); }

        .rate-facility-search:focus { border-color: #55a5d5; box-shadow: 0 0 0 3px rgba(85,165,213,.16); }

        .rate-facility-list { display: grid; max-height: 142px; gap: 7px; margin-top: 10px; padding: 0 4px 4px 0; overflow-y: auto; scroll-padding-block: 4px; scrollbar-width: thin; scrollbar-color: #55a5d5 transparent; }

        .rate-facility-choice { display: flex; align-items: center; gap: 8px; border: 1px solid rgba(255,255,255,.14); border-radius: 9px; background: rgba(255,255,255,.07); padding: 8px 9px; color: #d8ebf8; font-size: 9px; font-weight: 800; }

        .rate-facility-choice::before { content: ''; width: 14px; height: 14px; flex: 0 0 14px; border: 1px solid #55a5d5; border-radius: 4px; background: transparent; }

        .rate-choice-input:checked + .rate-facility-choice { border-color: #55a5d5; background: #fff; color: #153b59; transform: translateX(3px); }

        .rate-choice-input:checked + .rate-facility-choice::before { border-color: #2d6795; background: #2d6795; box-shadow: inset 0 0 0 3px #fff; }

        .rate-room-card { background: #fff; border: 1px solid rgba(45,103,149,.14); box-shadow: 0 4px 0 rgba(31,87,130,.04), 0 12px 24px rgba(31,87,130,.05), inset 1px 1px 0 #fff; transform-style: preserve-3d; transition: border-color .25s ease, box-shadow .25s ease, transform .25s ease; }

        .rate-room-card:hover { transform: perspective(1400px) rotateX(.5deg) rotateY(-.7deg) translateY(-6px); border-color: rgba(45,103,149,.38); box-shadow: 0 2px 0 rgba(31,87,130,.02), 0 8px 16px rgba(7,48,79,.03), inset 1px 1px 0 #fff; }

        .rate-room-image {
            width: 100%;
            max-width: 100%;
            min-width: 0;
            height: 240px;
            align-self: center;
            isolation: isolate;
            overflow: hidden !important;
            border-radius: 27px 27px 0 0;
            background: #e8f1f7;
            background-clip: padding-box;
            contain: paint;
        }

        .rate-room-image > * { max-width: 100%; }

        .rate-room-quantity-alert {
            position: absolute;
            z-index: 20;
            top: 14px;
            right: 14px;
            display: inline-flex;
            min-height: 32px;
            align-items: center;
            gap: 7px;
            padding: 7px 11px;
            border: 2px solid rgba(255,255,255,.92);
            border-radius: 999px;
            background: rgba(180,83,9,.94);
            color: #fff;
            box-shadow: 0 7px 18px color-mix(in srgb,var(--color-primary-hover,#031F46) 24%,transparent);
            font-size: 9px;
            font-weight: 900;
            letter-spacing: .045em;
            line-height: 1;
            text-transform: uppercase;
            backdrop-filter: blur(8px);
        }

        .rate-room-quantity-alert::before {
            content: '';
            width: 7px;
            height: 7px;
            flex: 0 0 7px;
            border-radius: 50%;
            background: #fde68a;
            box-shadow: 0 0 0 4px rgba(253,230,138,.2);
        }

        .rate-room-quantity-alert.is-low { background: rgba(190,24,24,.95); }

        .rate-room-quantity-alert.is-low::before { background: #fff; box-shadow: 0 0 0 4px rgba(255,255,255,.2); }

        .rate-save-my-stay { position: absolute; z-index: 30 !important; left: 14px; top: 14px; }

        .rate-save-my-stay button, a.rate-save-my-stay { border: 1px solid rgba(255,255,255,.9); background: rgba(255,253,247,.94); color: var(--color-primary, #2d6795); box-shadow: 0 6px 16px color-mix(in srgb,var(--color-primary-hover,#031F46) 20%,transparent); backdrop-filter: blur(8px); }

        .rate-save-my-stay button span, a.rate-save-my-stay span { font-size: 8px; font-weight: 900; letter-spacing: .035em; white-space: nowrap; }

        .rate-save-my-stay button svg, a.rate-save-my-stay svg { color: var(--color-primary, #2d6795); }

        .rate-save-my-stay.is-saved button { border-color: var(--color-accent, #f5ac22); }

        .rate-save-my-stay.is-saved button svg { color: var(--color-accent, #f5ac22); }

        .rate-save-my-stay.is-loading { pointer-events: none; opacity: .7; }

        .rate-save-my-stay .stay-bell { display: block; width: 20px; height: 20px; flex: none; stroke-width: 1.9; transform-box: fill-box; transform-origin: 50% 8%; }

        .rate-save-my-stay .stay-bell.ringing { animation: rate-bell-ring .72s ease-in-out !important; }

        .rate-wishlist-feedback { position: fixed; z-index: 900; left: 0; top: 0; display: inline-flex; min-height: 31px; align-items: center; padding: 7px 12px; border: 1px solid var(--color-accent,#E4A81C); border-radius: 13px 13px 5px 13px; background: linear-gradient(145deg,var(--color-primary,#06386D),var(--color-primary-hover,#031F46)); color: #fff; box-shadow: 0 10px 25px color-mix(in srgb,var(--color-primary,#06386D) 36%,transparent),inset 0 -3px 0 var(--color-accent,#E4A81C); font-size: 9px; font-weight: 900; letter-spacing: .025em; line-height: 1; opacity: 0; visibility: hidden; white-space: nowrap; transform: translate(-50%,-100%) translateY(2px) scale(.94); transform-origin: center bottom; transition: opacity .18s ease,transform .18s ease,visibility .18s ease; pointer-events: none; backdrop-filter: blur(10px); }

        .rate-wishlist-feedback::after { content: ''; position: absolute; left: 50%; bottom: -5px; width: 9px; height: 9px; border-right: 1px solid var(--color-accent,#E4A81C); border-bottom: 1px solid var(--color-accent,#E4A81C); background: var(--color-primary-hover,#031F46); transform: translateX(-50%) rotate(45deg); }

        .rate-wishlist-feedback.is-visible { opacity: 1; visibility: visible; transform: translate(-50%,-100%) translateY(-7px) scale(1); }

        .rate-wishlist-feedback.is-saved { background: linear-gradient(145deg,var(--color-primary,#06386D),var(--color-primary-hover,#031F46)); }

        .rate-wishlist-feedback.is-removed { border-color: color-mix(in srgb,var(--color-primary,#06386D) 35%,transparent); background: var(--color-primary-tint,#EEF5FB); color: var(--color-primary,#06386D); box-shadow: 0 10px 25px color-mix(in srgb,var(--color-primary,#06386D) 20%,transparent),inset 0 -3px 0 var(--color-accent,#E4A81C); }

        .rate-wishlist-feedback.is-removed::after { border-color: color-mix(in srgb,var(--color-primary,#06386D) 35%,transparent); background: var(--color-primary-tint,#EEF5FB); }

        .rate-wishlist-feedback.is-error { background: rgba(185,28,28,.98); }

        .rate-wishlist-feedback.is-error::after { background: rgb(185,28,28); }

        @keyframes rate-bell-ring { 0% { transform: rotate(0) translateY(0); } 12% { transform: rotate(24deg) translateY(-1px); } 25% { transform: rotate(-22deg) translateY(0); } 40% { transform: rotate(17deg) translateY(-1px); } 55% { transform: rotate(-13deg) translateY(0); } 70% { transform: rotate(8deg); } 84% { transform: rotate(-4deg); } 100% { transform: rotate(0) translateY(0); } }

        .rate-room-title-saving { display: inline-flex; width: max-content; max-width: 100%; flex: none; align-items: center; gap: 5px; border-radius: 5px 11px 5px 11px; background: var(--color-primary,#06386D); padding: 5px 8px; color: #fff; box-shadow: 0 2px 0 var(--color-accent,#E4A81C); line-height: 1; }

        .rate-room-title-saving small { color: color-mix(in srgb,var(--color-accent,#E4A81C) 62%,#fff); font-size: 7px; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }

        .rate-room-title-saving b { font-size: 9px; font-weight: 900; }

        @media (min-width: 768px) { .rate-room-image { height: 300px; border-radius: 27px 18px 18px 27px; } }

        @media (min-width: 1280px) { .rate-room-image { height: 320px; } }

        .rate-price-rail { background: linear-gradient(150deg, #edf7fd 0%, #dcecf7 100%); }

        .rate-accent-button { background: linear-gradient(145deg, #397eae, #24547b); color: #fff; box-shadow: 0 4px 0 #17466a, 0 8px 14px rgba(31,87,130,.12); }

        .rate-accent-button:hover { transform: translateY(-3px); box-shadow: 0 6px 0 #17466a, 0 12px 18px rgba(31,87,130,.16); }

        .rate-accent-button:active { transform: translateY(4px); box-shadow: 0 3px 0 #17466a, 0 8px 14px rgba(31,87,130,.18); }

        .rate-soft-pill { background: #d8ebf8; color: #24547b; box-shadow: inset 0 1px 0 #fff; }

        .rate-policy-pill { display:inline-flex; min-height:28px; align-items:center; gap:6px; padding:5px 10px; border:1px solid transparent; border-radius:999px; font-size:9px; font-weight:900; line-height:1; white-space:nowrap; box-shadow:inset 0 1px 0 rgba(255,255,255,.8); }

        .rate-policy-pill svg { width:14px; height:14px; flex:0 0 14px; }

        .rate-policy-pill.is-smoking { border-color:#fed7aa; background:#fff7ed; color:#9a3412; }

        .rate-policy-pill.is-couple,
        .rate-policy-pill.is-pure-veg,
        .rate-policy-pill.is-non-veg { position:relative; min-height:0; padding:2px 8px 3px 0; border:0; border-radius:0; background:transparent; color:var(--color-primary,#06386D); box-shadow:none; }

        .rate-policy-pill.is-couple::after,
        .rate-policy-pill.is-pure-veg::after,
        .rate-policy-pill.is-non-veg::after { content:''; position:absolute; right:8px; bottom:0; left:20px; height:1px; background:var(--color-accent,#E4A81C); opacity:.55; }

        .rate-policy-layout { display:grid; max-width:100%; grid-template-columns:repeat(2,max-content); align-items:start; gap:6px 14px; }

        .rate-policy-primary-stack { display:grid; align-content:start; justify-items:start; gap:6px; }

        .rate-food-confirm-stack { display:flex; align-items:start; gap:14px; white-space:nowrap; }

        .rate-veg-mark,.rate-non-veg-mark { display:grid; width:14px; height:14px; flex:0 0 14px; place-items:center; border:1.5px solid currentColor; border-radius:2px; }

        .rate-veg-mark { color:#21804A; }

        .rate-non-veg-mark { color:#B33A3A; }

        .rate-veg-mark::after { content:''; width:6px; height:6px; border-radius:50%; background:currentColor; }

        .rate-non-veg-mark::after { content:''; width:0; height:0; border-right:4px solid transparent; border-bottom:7px solid currentColor; border-left:4px solid transparent; }

        .rate-discount-side { display: flex; width: fit-content; min-height: 34px; align-items: center; margin: 0 0 15px auto; padding: 7px 12px; border: 2px solid #fff; border-radius: 999px; background: #dc2626; color: #fff; box-shadow: 0 6px 0 #991b1b, 0 12px 22px rgba(220,38,38,.28); font-size: 10px; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }

        .rate-fees-included { margin-top: 8px; color: var(--color-primary); font-size: 8px; font-weight: 900; letter-spacing: .035em; }

        .rate-auto-confirm { position:relative; display:inline-flex; min-height:0; align-items:center; gap:5px; padding:2px 0 3px; border:0; border-radius:0; background:transparent; color:var(--color-primary,#06386D); box-shadow:none; font-size:9px; font-weight:900; letter-spacing:.025em; }

        .rate-auto-confirm::after { content:''; position:absolute; right:0; bottom:0; left:19px; height:1px; background:var(--color-accent,#E4A81C); opacity:.55; }

        .rate-auto-confirm > span:first-child { display:grid; width:14px; height:14px; flex:0 0 14px; place-items:center; border:0; border-radius:0; background:transparent; color:#21804A; }

        .rate-auto-confirm svg { width:14px; height:14px; }

        .rate-confirmation-row { display:flex; flex-wrap:wrap; align-items:center; gap:6px 14px; }

        .rate-pay-at-stay { position:relative; display:inline-flex; min-height:0; align-items:center; gap:5px; padding:2px 0 3px; color:var(--color-primary,#06386D); font-size:9px; font-weight:900; letter-spacing:.025em; white-space:nowrap; }

        .rate-pay-at-stay::after { content:''; position:absolute; right:0; bottom:0; left:19px; height:1px; background:var(--color-accent,#E4A81C); opacity:.55; }

        .rate-pay-at-stay svg { width:14px; height:14px; flex:0 0 14px; color:#21804A; }

        .rate-pay-at-stay-note { position:absolute; z-index:50; right:0; bottom:calc(100% + 9px); width:220px; visibility:hidden; border:1px solid color-mix(in srgb,var(--color-accent,#E4A81C) 55%,transparent); border-radius:10px 4px 10px 4px; background:var(--color-primary-hover,#031F46); padding:9px 10px; color:#fff; box-shadow:0 12px 28px color-mix(in srgb,var(--color-primary-hover,#031F46) 20%,transparent); font-size:8px; font-weight:700; line-height:1.5; white-space:normal; opacity:0; pointer-events:none; transform:translateY(4px); transition:opacity .16s ease,transform .16s ease,visibility .16s ease; }

        .rate-pay-at-stay-note::after { content:''; position:absolute; right:18px; bottom:-5px; width:9px; height:9px; border-right:1px solid color-mix(in srgb,var(--color-accent,#E4A81C) 55%,transparent); border-bottom:1px solid color-mix(in srgb,var(--color-accent,#E4A81C) 55%,transparent); background:var(--color-primary-hover,#031F46); transform:rotate(45deg); }

        .rate-pay-at-stay-note b { display:block; margin-bottom:2px; color:color-mix(in srgb,var(--color-accent,#E4A81C) 62%,#fff); font-size:8px; font-weight:900; letter-spacing:.04em; }

        .rate-pay-at-stay:hover .rate-pay-at-stay-note,
        .rate-pay-at-stay:focus .rate-pay-at-stay-note,
        .rate-pay-at-stay:focus-within .rate-pay-at-stay-note { visibility:visible; opacity:1; transform:none; }

        .rate-discount-flag { display: inline-flex; align-items: center; gap: 5px; margin-bottom: 9px; padding: 6px 13px; border-radius: 999px; background: #e0192f; color: #fff; font-size: 11px; font-weight: 900; letter-spacing: .04em; text-transform: uppercase; box-shadow: 0 4px 14px rgba(224,25,47,.45); animation: rate-discount-pulse 2.2s ease-in-out infinite; }

        .rate-discount-flag svg { width: 12px; height: 12px; }

        .rate-advance-offers { display: grid; justify-items: start; gap: 8px; margin-top: 9px; }

        .rate-advance-offer { position: relative; z-index: 12; max-width: 100%; }

        .rate-advance-trigger { position: relative; display: inline-flex; max-width: 100%; align-items: center; justify-content: center; gap: 5px; border: 2px solid #E0AD20; border-radius: 999px; background: linear-gradient(110deg, #FFF1B8, #FFFDF4 55%, #FFE4E4); padding: 6px 10px; color: #0B1F3A; font-size: 7px; font-weight: 900; letter-spacing: .035em; text-align: center; text-transform: uppercase; box-shadow: 0 3px 0 color-mix(in srgb,var(--color-accent,#E4A81C) 80%,#000), 0 8px 18px rgba(220,38,38,.18); cursor: help; animation: rate-advance-highlight 2.1s ease-in-out infinite; }

        .rate-advance-trigger::after { content: ''; position: absolute; right: 3px; top: 3px; width: 5px; height: 5px; border-radius: 50%; background: #DC2626; box-shadow: 0 0 0 3px rgba(220,38,38,.12); }

        .rate-advance-trigger:hover { background: linear-gradient(110deg, #FFE790, #FFF8DE 55%, #FFD1D1); transform: translateY(-2px); }

        .rate-advance-trigger svg { width: 12px; height: 12px; flex: 0 0 12px; color: #C9A227; }

        .rate-advance-trigger b { flex: 0 0 auto; color: #DC2626; font-size: 9px; }

        .rate-advance-tooltip { position: absolute; right: 0; top: calc(100% + 12px); z-index: 50; width: min(390px, calc(100vw - 48px)); max-height: min(430px, calc(100vh - 48px)); overflow-x: hidden; overflow-y: auto; padding: 13px; border: 1px solid color-mix(in srgb,var(--color-accent,#E4A81C) 55%,transparent); border-radius: 20px 8px 20px 8px; background: var(--color-primary-hover,#031F46); color: #fff; box-shadow: 0 12px 28px color-mix(in srgb,var(--color-primary-hover,#031F46) 20%,transparent); opacity: 0; visibility: hidden; transform: translateY(-6px); transition: opacity .18s ease, transform .18s ease, visibility .18s ease; pointer-events: none; scrollbar-width: thin; scrollbar-color: color-mix(in srgb,var(--color-accent,#E4A81C) 62%,#fff) rgba(255,255,255,.08); }

        .rate-advance-tooltip::-webkit-scrollbar { width: 5px; }

        .rate-advance-tooltip::-webkit-scrollbar-track { background: rgba(255,255,255,.08); }

        .rate-advance-tooltip::-webkit-scrollbar-thumb { border-radius: 999px; background: color-mix(in srgb,var(--color-accent,#E4A81C) 62%,#fff); }

        .rate-advance-tooltip::before { content: ''; position: absolute; right: 22px; top: -7px; width: 12px; height: 12px; border-left: 1px solid color-mix(in srgb,var(--color-accent,#E4A81C) 55%,transparent); border-top: 1px solid color-mix(in srgb,var(--color-accent,#E4A81C) 55%,transparent); background: var(--color-primary-hover,#031F46); transform: rotate(45deg); }

        .rate-advance-offer[open] .rate-advance-tooltip { opacity: 1; visibility: visible; transform: translateY(0); pointer-events: auto; }

        @media (hover: hover) and (pointer: fine) {
            .rate-advance-offer::after { content: ''; position: absolute; left: 0; top: 100%; width: min(310px, calc(100vw - 48px)); height: 14px; }
            .rate-advance-offer:hover .rate-advance-tooltip,
            .rate-advance-offer:focus-within .rate-advance-tooltip { opacity: 1; visibility: visible; transform: translateY(0); pointer-events: auto; }
        }

        .rate-advance-trigger { list-style: none; }

        .rate-advance-trigger::-webkit-details-marker { display: none; }

        .rate-advance-tooltip strong { display: block; color: color-mix(in srgb,var(--color-accent,#E4A81C) 62%,#fff); font-size: 12px; }

        .rate-advance-tooltip p { margin-top: 5px; color: rgba(255,255,255,.7); font-size: 9px; line-height: 1.55; }

        .rate-advance-eligible-date { position: relative; margin-bottom: 9px; overflow: hidden; border: 1px solid rgba(240,198,91,.38); border-radius: 6px 14px 6px 14px; background: linear-gradient(110deg, rgba(240,198,91,.16), rgba(240,198,91,.05)); padding: 8px 10px 8px 14px; }

        .rate-advance-eligible-date::before { content: ''; position: absolute; inset: 0 auto 0 0; width: 4px; background: color-mix(in srgb,var(--color-accent,#E4A81C) 62%,#fff); }

        .rate-advance-eligible-date small { display: block; color: rgba(255,255,255,.65); font-size: 7px; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; }

        .rate-advance-eligible-date b { display: block; margin-top: 4px; color: color-mix(in srgb,var(--color-accent,#E4A81C) 62%,#fff); font-size: 13px; line-height: 1.3; }

        .rate-advance-eligible-date span { display: block; margin-top: 3px; color: rgba(255,255,255,.72); font-size: 8px; }

        .rate-advance-status { display:inline-flex !important; width:max-content; align-items:center; gap:5px; margin-top:7px !important; padding:4px 7px; border:1px solid rgba(255,255,255,.22); border-radius:999px; background:rgba(255,255,255,.08); color:#fff !important; font-size:7px !important; font-weight:900; letter-spacing:.08em; text-transform:uppercase; }

        .rate-advance-status::before { content:''; width:6px; height:6px; border-radius:50%; background:color-mix(in srgb,var(--color-accent,#E4A81C) 62%,#fff); }

        .rate-advance-status.is-eligible::before { background:#4ADE80; }

        .rate-advance-status.is-ineligible::before { background:#FB923C; }

        .rate-advance-notification-discount { display:none !important; }

        .rate-advance-db-offer { border-left: 3px solid color-mix(in srgb,var(--color-accent,#E4A81C) 62%,#fff); padding: 2px 0 2px 10px; }

        .rate-advance-db-offer small { display: block; margin-bottom: 3px; color: rgba(255,255,255,.55); font-size: 7px; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; }

        .rate-advance-db-offer strong { display:inline-flex; border:1px solid rgba(248,113,113,.55); border-radius:999px; background:rgba(220,38,38,.16); padding:4px 8px; color:#FCA5A5; }

        .rate-advance-db-offer p { margin-top: 4px; }

        .rate-advance-services { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; margin-top: 9px; }

        .rate-advance-services > small { grid-column: 1 / -1; color: rgba(255,255,255,.55); font-size: 7px; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; }

        .rate-advance-service { border: 1px solid rgba(255,255,255,.14); border-radius: 5px 12px 5px 12px; background: rgba(255,255,255,.06); padding: 7px 8px; }

        .rate-advance-service-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 8px; }

        .rate-advance-service-head b { color: #fff; font-size: 9px; }

        .rate-advance-service-head span { flex: 0 0 auto; color: color-mix(in srgb,var(--color-accent,#E4A81C) 62%,#fff); font-size: 8px; font-weight: 900; }

        .rate-advance-service p { margin-top: 3px; color: rgba(255,255,255,.65); font-size: 8px; line-height: 1.4; }

        .rate-cancellation-notice { grid-column: 1 / -1; position: relative; margin-top: 9px; overflow: hidden; border: 1px solid rgba(74,222,128,.38); border-radius: 6px 14px 6px 14px; background: linear-gradient(110deg, rgba(22,101,52,.34), rgba(34,197,94,.08)); padding: 9px 10px 9px 14px; }

        .rate-cancellation-notice::before { content: ''; position: absolute; inset: 0 auto 0 0; width: 4px; background: #4ADE80; }

        .rate-cancellation-notice small { display: block; color: #86EFAC; font-size: 7px; font-weight: 900; letter-spacing: .11em; text-transform: uppercase; }

        .rate-cancellation-notice b { display: block; margin-top: 3px; color: #fff; font-size: 11px; }

        .rate-cancellation-notice p { margin-top: 4px; color: rgba(255,255,255,.72); font-size: 8px; line-height: 1.45; }

        .rate-cancellation-notice.is-preview { border-color:rgba(240,198,91,.55); background:linear-gradient(110deg,rgba(138,104,17,.35),rgba(240,198,91,.08)); }

        .rate-cancellation-notice.is-preview::before { background:color-mix(in srgb,var(--color-accent,#E4A81C) 62%,#fff); }

        .rate-cancellation-notice.is-preview small { color:#FDE68A; }

        .rate-cancellation-notice.is-ineligible { border-color:rgba(251,146,60,.62); background:linear-gradient(110deg,rgba(154,52,18,.42),rgba(251,146,60,.09)); }

        .rate-cancellation-notice.is-ineligible::before { background:#FB923C; }

        .rate-cancellation-notice.is-ineligible small { color:#FDBA74; }

        .rate-cancellation-fee-text { display:block; margin-top:4px; color:#FCA5A5; font-weight:400; }

        .rate-payment-reminder { position: relative; margin-top: 9px; padding: 9px 0 0 25px; border-top: 1px dashed rgba(134,239,172,.28); }

        .rate-payment-reminder::before { content: '\1F514'; position: absolute; left: 0; top: 9px; display: grid; width: 18px; height: 18px; place-items: center; border-radius: 50%; background: rgba(240,198,91,.16); font-size: 9px; }

        .rate-payment-reminder small { color: color-mix(in srgb,var(--color-accent,#E4A81C) 62%,#fff); }

        .rate-payment-reminder b { display:inline-flex; width:max-content; max-width:100%; align-items:center; margin-top:5px; padding:5px 8px; border:1px solid rgba(240,198,91,.42); border-radius:7px; background:rgba(240,198,91,.16); color:#FDE68A; font-size:11px; line-height:1.2; }

        .rate-payment-checkin { display:block; margin-top:5px; color:rgba(255,255,255,.58); font-size:7px; font-weight:700; letter-spacing:.04em; }

        .rate-payment-reminder.is-ineligible { border-top-color:rgba(251,146,60,.55); }

        .rate-payment-reminder.is-ineligible::before { background:rgba(251,146,60,.2); }

        .rate-advance-modal { width: min(680px, calc(100vw - 32px)); max-width: none; max-height: min(86vh, 760px); overflow: hidden; border: 1px solid #D9B84A; border-radius: 14px 32px 14px 32px; background: #F6F8FC; padding: 0; color: #0B1F3A; box-shadow: 0 35px 100px rgba(3,15,32,.55); }

        .rate-advance-modal::backdrop { background: rgba(3,15,32,.72); backdrop-filter: blur(5px); }

        .rate-advance-modal-head { display: flex; align-items: center; justify-content: space-between; gap: 16px; border-bottom: 4px solid #D9B84A; padding: 17px 20px; background: linear-gradient(120deg, #0B1F3A, #17456F); }

        .rate-advance-modal-title { display: flex; align-items: center; gap: 11px; }

        .rate-advance-modal-head svg { width: 22px; height: 22px; color: color-mix(in srgb,var(--color-accent,#E4A81C) 62%,#fff); }

        .rate-advance-modal-head strong { display: block; color: #fff; font-size: 14px; letter-spacing: .04em; }

        .rate-advance-modal-head small { display: block; margin-top: 3px; color: rgba(255,255,255,.62); font-size: 8px; letter-spacing: .08em; text-transform: uppercase; }

        .rate-advance-modal-close { display: grid; width: 32px; height: 32px; place-items: center; border: 1px solid rgba(255,255,255,.2); border-radius: 50%; background: rgba(255,255,255,.08); color: #fff; font-size: 18px; line-height: 1; cursor: pointer; }

        .rate-advance-modal-close:hover { border-color: color-mix(in srgb,var(--color-accent,#E4A81C) 62%,#fff); background: color-mix(in srgb,var(--color-accent,#E4A81C) 62%,#fff); color: #0B1F3A; }

        .rate-advance-modal-body { max-height: calc(min(86vh, 760px) - 76px); overflow-y: auto; padding: 18px; scrollbar-width: thin; scrollbar-color: #D9B84A #E5EAF1; }

        .rate-modal-intro { margin-bottom: 13px; padding: 0 2px; }

        .rate-modal-intro strong { display: block; color: #0B1F3A; font-size: 16px; }

        .rate-modal-intro p { margin-top: 4px; color: #64748B; font-size: 10px; line-height: 1.5; }

        .rate-advance-modal-body .rate-advance-eligible-date { border-color: #E3C766; background: linear-gradient(110deg, #FFF5C7, #FFFDF4); }

        .rate-advance-modal-body .rate-advance-eligible-date small { color: #85630D; }

        .rate-advance-modal-body .rate-advance-eligible-date b { color: #0B1F3A; font-size: 16px; }

        .rate-advance-modal-body .rate-advance-eligible-date span { color: #516174; font-size: 10px; }

        .rate-advance-modal-body .rate-advance-status { border-color:#D6DFEC; background:var(--color-primary-tint,#F2F6FA); color:#0B1F3A !important; }

        .rate-advance-modal-body .rate-cancellation-notice { border-color: #A7E3BC; background: linear-gradient(110deg, #EAFBF0, #F8FFFA); }

        .rate-advance-modal-body .rate-cancellation-notice small { color: #18713B; }

        .rate-advance-modal-body .rate-cancellation-notice b { color: #123D28; font-size: 13px; }

        .rate-advance-modal-body .rate-cancellation-notice p { color: #4C6658; font-size: 9px; }

        .rate-advance-modal-body .rate-cancellation-notice.is-preview { border-color:#E8CD74; background:linear-gradient(110deg,#FFF8D9,#FFFDF4); }

        .rate-advance-modal-body .rate-cancellation-notice.is-preview small { color:#85630D; }

        .rate-advance-modal-body .rate-cancellation-notice.is-ineligible { border-color:#FDBA74; background:linear-gradient(110deg,#FFF1E8,#FFFBF7); }

        .rate-advance-modal-body .rate-cancellation-notice.is-ineligible small { color:#9A3412; }

        .rate-advance-modal-body .rate-cancellation-notice.is-ineligible b { color:#7C2D12; }

        .rate-advance-modal-body .rate-cancellation-notice.is-ineligible p { color:#7C4A36; }

        .rate-advance-modal-body .rate-cancellation-fee-text { color:#DC2626; }

        .rate-advance-modal-body .rate-payment-reminder { border-top-color: #BFE5CC; }

        .rate-advance-modal-body .rate-payment-reminder small { color: #8A6811; }

        .rate-advance-modal-body .rate-payment-reminder b { border-color:#E4C45E; background:#FFF4C7; color:#0B1F3A; }

        .rate-advance-modal-body .rate-payment-checkin { color:#64748B; }

        .rate-advance-modal-body .rate-advance-db-offer { margin-top: 12px; border: 1px solid #DCE4EE; border-left: 4px solid #2D6795; border-radius: 8px 16px 8px 16px; background: #fff; padding: 11px 12px; }

        .rate-advance-modal-body .rate-advance-db-offer small { color: #6B7A8E; }

        .rate-advance-modal-body .rate-advance-db-offer strong { display:inline-flex; align-items:center; border:0; border-radius:999px; background:#e0192f; padding:6px 13px; color:#fff; box-shadow:0 4px 14px rgba(224,25,47,.45); font-size:11px; font-weight:900; letter-spacing:.04em; line-height:1; text-transform:uppercase; }

        .rate-advance-modal-body .rate-advance-db-offer p { color: #66768A; font-size: 9px; }

        .rate-advance-modal-body .rate-advance-services { grid-template-columns: repeat(2, minmax(0,1fr)); }

        .rate-advance-modal-body .rate-advance-services > small { color: #52647A; font-size: 8px; }

        .rate-advance-modal-body .rate-advance-service { border-color: #DCE4EE; background: #fff; box-shadow: 0 5px 14px rgba(11,31,58,.05); }

        .rate-advance-modal-body .rate-advance-service-head b { color: #0B1F3A; font-size: 10px; }

        .rate-advance-modal-body .rate-advance-service-head span { color: #946F0E; }

        .rate-advance-modal-body .rate-advance-service p { color: #69788A; }

        .rate-advance-modal-body .rate-advance-conditions { border-top-color: #DCE4EE; }

        .rate-advance-modal-body .rate-advance-conditions li { border: 1px solid #E2E8F0; border-radius: 8px; background: #fff; padding: 8px; color: #405268; }

        .rate-advance-modal-body .rate-advance-conditions li::before { color: #21804A; }

        .rate-advance-hover-popover { position: fixed; z-index: 9999; width: min(390px, calc(100vw - 24px)); max-height: min(430px, calc(100vh - 24px)); overflow-x: hidden; overflow-y: auto; border: 1px solid color-mix(in srgb,var(--color-accent,#E4A81C) 55%,transparent); border-radius: 20px 8px 20px 8px; background: var(--color-primary-hover,#031F46); padding: 13px; color: #fff; box-shadow: 0 12px 28px color-mix(in srgb,var(--color-primary-hover,#031F46) 20%,transparent); pointer-events: auto; scrollbar-width: thin; scrollbar-color: color-mix(in srgb,var(--color-accent,#E4A81C) 62%,#fff) rgba(255,255,255,.08); }

        .rate-advance-hover-popover[hidden] { display: none; }

        .rate-advance-hover-popover .rate-advance-eligible-date { padding-right:96px; }

        .rate-advance-hover-popover .rate-advance-notification-discount { position:absolute; right:10px; bottom:9px; display:inline-flex !important; align-items:center; margin:0; padding:6px 13px; border:0; border-radius:999px; background:#e0192f; color:#fff !important; box-shadow:0 4px 14px rgba(224,25,47,.45); font-size:11px !important; font-weight:900; letter-spacing:.04em; line-height:1; text-transform:uppercase; }

        .rate-advance-hover-popover .rate-advance-db-offer { display:none; }

        @media (min-width: 641px) { .rate-page.rate-floating-offers-enabled .rate-advance-offer > .rate-advance-tooltip { display: none; } }

        @media (max-width: 640px) { .rate-advance-modal { border-radius: 10px 22px 10px 22px; } .rate-advance-modal-body .rate-advance-services, .rate-advance-modal-body .rate-advance-conditions { grid-template-columns: 1fr; } }

        .rate-advance-conditions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; margin-top: 9px; padding-top: 9px; border-top: 1px solid rgba(255,255,255,.14); }

        .rate-advance-conditions li { display: flex; align-items: flex-start; gap: 7px; font-size: 9px; line-height: 1.45; }

        .rate-advance-conditions li::before { content: '\2713'; color: color-mix(in srgb,var(--color-accent,#E4A81C) 62%,#fff); font-weight: 900; }

        .rate-room-facilities { max-height:none; overflow:visible; }

        .rate-facility-key { position: relative; display: inline-flex; min-height: 25px; align-items: center; gap: 5px; border: 1px solid color-mix(in srgb,var(--color-primary,#06386D) 16%,transparent); border-radius: 9px 2px 9px 2px; background: linear-gradient(145deg, #FFFFFF, #F3F7FA); padding: 3px 7px 3px 3px; color: var(--color-primary,#06386D); box-shadow: 2px 2px 0 color-mix(in srgb,var(--color-accent,#E4A81C) 18%,transparent); opacity: 1 !important; }

        .rate-facility-key i { display: grid; width: 18px; height: 18px; flex: none; place-items: center; border-radius: 6px 2px 6px 2px; background: var(--color-primary,#06386D); color: color-mix(in srgb,var(--color-accent,#E4A81C) 62%,#fff); font-size: 6px; font-style: normal; font-weight: 900; letter-spacing: -.02em; }

        .rate-facility-key:hover { border-color: var(--color-accent,#E4A81C); background: color-mix(in srgb,var(--color-accent,#E4A81C) 9%,#fff); box-shadow: 3px 3px 0 color-mix(in srgb,var(--color-accent,#E4A81C) 30%,transparent); }

        .rate-room-menu-services { margin-top:8px; border:0; padding:0; }

        .rate-room-menu-services > div { display:flex; flex-wrap:wrap; gap:7px 12px; }

        .rate-room-menu-service { position:relative; display:inline-flex; min-height:0; max-width:100%; flex-wrap:wrap; align-items:center; gap:6px; border:0; border-radius:0; background:transparent; padding:2px 8px 3px 0; color:var(--color-primary,#06386D); box-shadow:none; font-size:9px; font-weight:900; line-height:1; }

        .rate-room-menu-service[hidden], .rate-room-extra-service[hidden] { display:none; }

        .rate-menu-more { display:inline-flex; align-items:center; gap:5px; border:1px solid color-mix(in srgb,var(--color-accent,#E4A81C) 70%,transparent); border-radius:999px; background:#FFF8E5; padding:3px 9px; color:var(--color-primary,#06386D); font-size:9px; font-weight:900; line-height:1; cursor:pointer; transition:background .16s ease; }

        .rate-menu-more:hover, .rate-menu-more:focus-visible { background:#FBE9B7; outline:none; }

        .rate-menu-more b { display:grid; min-width:16px; height:16px; place-items:center; border-radius:999px; background:var(--color-primary,#06386D); padding:0 4px; color:#fff; font-size:8px; }

        .rate-menu-more[aria-expanded="true"] b { display:none; }

        .rate-room-menu-service::before { content:'\2713'; display:grid; width:14px; height:14px; flex:0 0 14px; place-items:center; color:#21804A; font-size:12px; font-weight:900; }

        .rate-room-menu-service::after { content:''; position:absolute; right:8px; bottom:0; left:20px; height:1px; background:var(--color-accent,#E4A81C); opacity:.55; }

        .rate-room-menu-service b { font-size:9px; font-weight:900; line-height:1; }

        .rate-room-menu-service small { color:inherit; font-size:9px; font-weight:900; line-height:1; }

        .rate-room-menu-service .rate-menu-service-amount { position:static; display:inline-flex; min-height:0; align-items:center; margin-left:0; padding:0; border:0; border-radius:0; background:transparent; color:var(--color-primary,#06386D); font-size:9px; font-weight:900; letter-spacing:0; clip-path:none; filter:none; }

        .rate-room-menu-service .rate-menu-service-amount::before { display:none; }

        /* Shared service-chip CSS is intentionally boxed on other pages.
           Pricing cards use the same borderless language as Pure Veg. */
        .rate-page .hotel-extra-service-chip,
        .rate-page .hotel-extra-service-chip:hover,
        .rate-page .hotel-extra-service-chip:focus-within { border:0 !important; border-radius:0 !important; background:transparent !important; padding:2px 8px 3px 0 !important; box-shadow:none !important; }

        .rate-page .hotel-extra-service-amount { min-height:0; margin-left:0; border:0 !important; border-radius:0 !important; background:transparent !important; padding:0 !important; color:var(--color-primary,#06386D) !important; box-shadow:none !important; }

        .rate-room-main { display: flex; min-height: 100%; flex-direction: column; }

        .rate-room-cancellation-anchor { position:relative; z-index:8; display:flex; flex-wrap:wrap; align-items:flex-end; justify-content:space-between; gap:8px 12px; margin-top:auto; padding-top:8px; }

        .rate-room-cancellation-policy { position:relative; display:inline-flex; max-width:100%; align-items:center; gap:6px; border:1px solid #fecaca; border-left:3px solid #dc2626; border-radius:5px 10px 10px 5px; background:#fff1f2; padding:6px 9px; color:#b91c1c; font-size:8px; line-height:1.3; cursor:help; outline:none; }

        .rate-room-cancellation-policy svg { width: 13px; height: 13px; flex: none; }

        .rate-room-cancellation-policy b { font-weight: 900; }

        .rate-room-cancellation-policy.is-free { border-color:#bbf7d0; border-left-color:#16a34a; background:#f0fdf4; color:#166534; }

        .rate-room-cancellation-policy.is-fee { border-color:#fed7aa; border-left-color:#ea580c; background:#fff7ed; color:#9a3412; }

        .rate-facilities-toggle { display:inline-flex; min-height:29px; align-items:center; justify-content:center; gap:5px; margin-left:auto; border:1px solid color-mix(in srgb,var(--color-primary,#06386D) 18%,transparent); border-bottom:2px solid var(--color-accent,#E4A81C); border-radius:8px 3px 8px 3px; background:#fff; padding:5px 8px; color:var(--color-primary,#06386D); font-size:8px; font-weight:900; line-height:1; white-space:nowrap; transition:border-color .18s ease,background .18s ease; }

        .rate-facilities-toggle:hover,.rate-facilities-toggle:focus-visible { border-color:var(--color-accent,#E4A81C); background:color-mix(in srgb,var(--color-accent,#E4A81C) 9%,#fff); outline:none; }

        .rate-facilities-toggle[hidden],.rate-facility-key[hidden] { display:none !important; }

        /* Compact hero: heading, intro and search sit close together so the rooms start higher up the page. */
        html body .rate-page .rate-hero { min-height: 0 !important; }

        html body .rate-page .rate-hero-inner { padding-top: 22px !important; padding-bottom: 86px !important; }

        /* The sidebar started 96px low because it was position:relative with a sticky offset. */
        html body .rate-page .rate-filter-shell { top: 0 !important; }

        html body .rate-page .rate-hero-inner > .grid { gap: 14px !important; }

        html body .rate-page .rate-hero-inner .mb-5 { margin-bottom: 8px !important; }

        html body .rate-page .rate-hero h1 { max-width: none; font-size: clamp(24px, 2.8vw, 34px) !important; line-height: 1.08 !important; }

        html body .rate-page .rate-hero h1 + p { max-width: 760px; margin-top: 6px !important; font-size: 12.5px !important; line-height: 1.5 !important; }

        html body .rate-page .rate-hero-stats { width: 300px !important; }

        html body .rate-page .rate-hero-stats > div { padding: 8px 10px !important; }

        html body .rate-page .rate-hero-stats strong { font-size: 16px !important; }

        /* Decorative hero rings must never create a sideways scrollbar (clip, not hidden, so pop-ups still escape). */
        html body .rate-page, html body .rate-hero { overflow-x: clip; }

        /* Keep the photo pinned to the top of the card so it doesn't float in the
           middle (with blank space above) once the card grows after View more. */
        @media (min-width: 768px) { html body .rate-page .rate-room-card .rate-room-image { align-self:start; margin-top:24px; } }

        /* View more: a clean pill with a stack-of-cards icon that fans open on hover,
           a gold underline that sweeps in, and hidden items that glide in one by one. */
        .rate-facilities-toggle { position:relative; gap:8px; min-height:32px; padding:6px 13px 6px 10px; border:1px solid color-mix(in srgb,var(--color-primary,#06386D) 22%,transparent); border-radius:999px; background:linear-gradient(90deg,#FFE9A8,#FFE9A8) no-repeat left bottom/0 100% #fff; color:var(--color-primary,#06386D); font-size:9px; box-shadow:0 2px 6px color-mix(in srgb,var(--color-primary,#06386D) 10%,transparent); transition:background-size .35s ease,border-color .2s ease,box-shadow .2s ease,color .2s ease; overflow:hidden; }

        .rate-facilities-toggle:hover,.rate-facilities-toggle:focus-visible { border-color:#D99A0B; background-size:100% 100%; box-shadow:0 4px 12px color-mix(in srgb,var(--color-accent,#E4A81C) 30%,transparent); }

        .rate-facilities-toggle > * { position:relative; }

        .rate-facilities-toggle .rate-more-icon { width:18px; height:18px; flex:0 0 18px; color:var(--color-primary,#06386D); overflow:visible; transform:none; }

        .rate-more-card { fill:#FFF3CF; transform-box:fill-box; transform-origin:center; transition:transform .35s cubic-bezier(.3,1.3,.5,1),fill .2s ease; }

        .rate-more-card.is-front { fill:var(--color-accent,#E4A81C); }

        .rate-facilities-toggle:hover .rate-more-card.is-back,.rate-facilities-toggle:focus-visible .rate-more-card.is-back { transform:translateY(-3px) scale(.92); }

        .rate-facilities-toggle:hover .rate-more-card.is-mid,.rate-facilities-toggle:focus-visible .rate-more-card.is-mid { transform:translateY(-1px) scale(.96); }

        .rate-facilities-toggle[aria-expanded='true'] .rate-more-card.is-back { transform:translateY(5px) scale(.92); }

        .rate-facilities-toggle[aria-expanded='true'] .rate-more-card.is-mid { transform:translateY(3px) scale(.96); }

        .rate-facilities-toggle[aria-expanded='true'] { background-color:#fff; border-color:color-mix(in srgb,var(--color-primary,#06386D) 25%,transparent); }

        @keyframes rate-reveal { from { opacity:0; transform:translateY(-10px); } to { opacity:1; transform:none; } }

        .rate-reveal { animation:rate-reveal .55s ease both; }

        @media (prefers-reduced-motion: reduce) { .rate-facilities-toggle,.rate-more-card { transition:none; } .rate-reveal { animation:none; } }

        .rate-room-cancellation-info { display:grid; width:15px; height:15px; flex:0 0 15px; place-items:center; margin-left:2px; border:1px solid currentColor; border-radius:50%; font-size:8px; font-style:normal; font-weight:900; opacity:.72; }

        .rate-room-cancellation-tooltip { position:absolute; z-index:40; left:0; bottom:calc(100% + 9px); width:min(330px,calc(100vw - 54px)); visibility:hidden; border:1px solid color-mix(in srgb,var(--color-accent,#E4A81C) 55%,transparent); border-radius:10px 4px 10px 4px; background:var(--color-primary-hover,#031F46); padding:9px 10px; color:#fff; box-shadow:0 12px 28px color-mix(in srgb,var(--color-primary-hover,#031F46) 20%,transparent); opacity:0; pointer-events:none; transform:translateY(5px); transition:opacity .16s ease,transform .16s ease,visibility .16s ease; }

        .rate-room-cancellation-tooltip::after { content:''; position:absolute; left:22px; bottom:-5px; width:9px; height:9px; border-right:1px solid color-mix(in srgb,var(--color-accent,#E4A81C) 55%,transparent); border-bottom:1px solid color-mix(in srgb,var(--color-accent,#E4A81C) 55%,transparent); background:var(--color-primary-hover,#031F46); transform:rotate(45deg); }

        .rate-room-cancellation-tooltip small { display:block; color:color-mix(in srgb,var(--color-accent,#E4A81C) 62%,#fff); font-size:7px; font-weight:900; letter-spacing:.13em; text-transform:uppercase; }

        .rate-room-cancellation-tooltip strong { display:block; margin-top:4px; color:#fff; font-size:11px; line-height:1.35; }

        .rate-room-cancellation-tooltip p { margin-top:5px; color:rgba(255,255,255,.72); font-size:9px; line-height:1.5; }

        .rate-room-cancellation-policy:hover .rate-room-cancellation-tooltip,.rate-room-cancellation-policy:focus .rate-room-cancellation-tooltip,.rate-room-cancellation-policy:focus-within .rate-room-cancellation-tooltip { visibility:visible; opacity:1; transform:none; }

        @media(max-width:640px){.rate-room-cancellation-tooltip{position:fixed;right:18px;bottom:18px;left:18px;width:auto}.rate-room-cancellation-tooltip::after{display:none}}

        .rate-room-extra-services { min-width:0; margin-top:8px; overflow:visible; border:0; padding:0; }

        .rate-room-extra-service-list { display:flex; min-width:0; flex-wrap:wrap; gap:7px 12px; overflow:visible; padding:0; }

        .rate-room-extra-service { position:relative; display:inline-flex; min-height:0; max-width:100%; flex:none; flex-wrap:wrap; align-items:center; gap:6px; border:0; border-radius:0; background:transparent; padding:2px 8px 3px 0; color:var(--color-primary,#06386D); box-shadow:none; font-size:9px; font-weight:900; line-height:1; }

        .rate-room-extra-service::after { content:''; position:absolute; right:8px; bottom:0; left:20px; height:1px; background:var(--color-accent,#E4A81C); opacity:.55; }

        .rate-room-extra-service > img { height: 13px; width: 13px; flex: none; }

        .rate-room-extra-service span { color:inherit; font-size:inherit; }

        .rate-db-extra-service { min-width:0; gap:5px; overflow:visible; }

        .rate-db-extra-service::before { display:none; }

        .rate-extra-service-icon { display:grid; width:14px; height:14px; flex:none; place-items:center; border:0; border-radius:0; background:transparent; color:var(--color-primary,#06386D) !important; }

        .rate-extra-service-icon img, .rate-extra-service-icon svg { width:12px; height:12px; object-fit:contain; }

        .rate-extra-service-content { display:flex; min-width:0; flex-wrap:wrap; align-items:center; gap:3px 5px; color:inherit !important; font-size:9px; font-weight:900; line-height:1; }

        .rate-extra-service-name { overflow-wrap:anywhere; color:var(--color-primary,#06386D); font-size:9px; font-weight:900; line-height:1; }

        .rate-extra-service-pricing { display:inline-flex; min-width:0; flex-wrap:wrap; align-items:center; gap:4px; color:inherit !important; font-size:9px; font-weight:900; line-height:1; }

        .rate-db-extra-service .rate-service-original { color:#74858a; font-size:9px; font-weight:800; text-decoration:line-through; }

        .rate-db-extra-service .rate-service-saving { border:0; border-radius:0; background:transparent; padding:0; color:#21804A; font-size:9px; font-weight:900; }

        .rate-room-extra-service .rate-service-saving { color: #21804A; }

        .rate-room-extra-service .rate-service-pay { color: #0B1F3A; font-weight: 900; }

        .rate-db-extra-service .rate-service-pay { border:0; border-radius:0; background:transparent; padding:0; color:var(--color-primary,#06386D); font-size:9px; font-weight:900; }

        .rate-service-with-note { position: relative; cursor: help; outline: none; }

        .rate-service-with-note:hover, .rate-service-with-note:focus, .rate-service-with-note:focus-within { z-index: 160; }

        .rate-service-notification { position:absolute; left:0; top:calc(100% + 9px); z-index:170; width:max-content; max-width:min(240px,72vw); padding:9px 10px; border:1px solid color-mix(in srgb,var(--color-accent,#E4A81C) 55%,transparent); border-radius:10px 4px 10px 4px; background:var(--color-primary-hover,#031F46); color:#fff !important; box-shadow:0 12px 28px color-mix(in srgb,var(--color-primary-hover,#031F46) 20%,transparent); font-size:8px !important; font-weight:700; line-height:1.5; opacity:0; visibility:hidden; transform:translateY(-4px); transition:opacity .16s ease,transform .16s ease,visibility .16s ease; pointer-events:none; }

        .rate-service-notification::after { content:''; position:absolute; left:16px; top:-5px; width:9px; height:9px; border-left:1px solid color-mix(in srgb,var(--color-accent,#E4A81C) 55%,transparent); border-top:1px solid color-mix(in srgb,var(--color-accent,#E4A81C) 55%,transparent); background:var(--color-primary-hover,#031F46); transform:rotate(45deg); }

        .rate-service-notification b { display:block; margin-bottom:2px; color:color-mix(in srgb,var(--color-accent,#E4A81C) 62%,#fff); font-size:8px; font-weight:900; letter-spacing:.04em; text-transform:none; }

        .rate-service-with-note:hover .rate-service-notification,
        .rate-service-with-note:focus .rate-service-notification,
        .rate-service-with-note:focus-within .rate-service-notification { opacity: 1; visibility: visible; transform: none; }

        .rate-paid-facility { border: 1px solid rgba(201,162,39,.45); border-radius: 999px; padding: 4px 8px; background: #FFF8DE; color: #0B1F3A; }

        .rate-paid-facility::after { content: 'Paid'; margin-left: 5px; color: #9A7412; font-size: 7px; font-weight: 900; text-transform: uppercase; }

        .rate-facility-key.rate-paid-facility { border-radius: 9px 2px 9px 2px; padding: 3px 7px 3px 3px; }

        @media (max-width: 640px) { .rate-advance-tooltip { position: fixed; left: 18px; right: 18px; top: 50%; bottom: auto; width: auto; max-height: 72vh; transform: translateY(-46%); } .rate-advance-offer[open] .rate-advance-tooltip { transform: translateY(-50%); } .rate-advance-tooltip::before { display: none; } .rate-advance-services, .rate-advance-conditions { grid-template-columns: 1fr; } }

        .rate-single-property .rate-hotel-badge { display: none; }

        .rate-search-wrap { position: relative; z-index: 6; margin-top: -60px; margin-bottom: 40px; }

        .rate-hero-stats, .rate-hero-stats > div { box-shadow: none !important; }

        @media (max-width: 640px) { .rate-search-wrap { margin-top: -40px; } }

        @keyframes rate-discount-pulse { 0%, 100% { box-shadow: 0 4px 14px rgba(224,25,47,.45); } 50% { box-shadow: 0 4px 20px rgba(224,25,47,.75); } }

        @keyframes rate-advance-highlight { 0%, 100% { box-shadow: 0 3px 0 color-mix(in srgb,var(--color-accent,#E4A81C) 80%,#000), 0 8px 18px rgba(220,38,38,.14); } 50% { box-shadow: 0 3px 0 color-mix(in srgb,var(--color-accent,#E4A81C) 80%,#000), 0 9px 24px rgba(220,38,38,.34), 0 0 0 4px rgba(224,173,32,.11); } }

        .rate-page .rate-discount-side, .rate-page .rate-discount-flag, .rate-page .rate-advance-trigger { animation: none; }

        .rate-page .rate-advance-trigger { border: 0; background: #e0192f; padding: 6px 12px; color: #fff; box-shadow: 0 4px 14px rgba(224,25,47,.32); }

        .rate-page .rate-advance-trigger:hover { background: #c9152a; color: #fff; transform: none; }

        .rate-page .rate-advance-trigger::after { display: none; }

        .rate-page .rate-advance-trigger b { color: #fff; font-size: 11px; }

        .rate-page .rate-advance-trigger span { color: #fff; font-size: 7px; }

        @media (prefers-reduced-motion: reduce) { .rate-advance-trigger { animation: none; } }

        @media (prefers-reduced-motion: reduce) { .rate-discount-flag { animation: none; } }

        @media (max-width: 1023px) { .rate-room-card:hover { transform: none; } .rate-filter-shell::before { inset: 10px -5px -10px 5px; } .rate-filter-shell::after { display: none; } .rate-filter-panel, .rate-filter-panel:hover, .rate-filter-panel:focus-within { transform: none; } }

        @media (prefers-reduced-motion: reduce) { .rate-filter-panel, .rate-choice, .rate-room-card, .rate-accent-button { transition: none !important; transform: none !important; } }
