/* GENERATED by port_hotel.py from the static hotel export (/opt/mybridgeerp-hotel/hotel/pricing, 11-10-2026).
   Brand: the orange accent is now var(--hp-accent) (BridgeERP navy; brand dark tint in dark mode). */
:root { --hp-accent: #114966; }
[data-theme="dark"] { --hp-accent: #8fbed6; }
.hotel-port { --sx-accent: var(--hp-accent); }
/* the app hero (www-home.css .sx-apphero--v85) paints a white wash with !important and has no dark rule:
   on a dark page that left light text on white */
[data-theme="dark"] .hotel-port .sx-apphero--v85 {
  background:
    radial-gradient(860px 440px at 16% -12%, color-mix(in srgb, var(--sx-accent) 10%, var(--be-bg)), transparent 62%),
    linear-gradient(180deg, color-mix(in srgb, var(--sx-accent) 5%, var(--be-bg)), var(--be-bg) 68%) !important;
}
/* Applies before the stylesheet loads, so there is no flash of unstyled
   markup and no half-built picker: the whole thing is revealed once the
   catalog has rendered. The animation is a failsafe - if the script never
   runs, the page reveals itself after 3s rather than staying blank. */
.be-scope{opacity:0;animation:be-failsafe 0s linear 3s forwards}
@keyframes be-failsafe{to{opacity:1}}
.be-scope[data-be-ready]{opacity:1;animation:none;transition:opacity .28s ease}
.hx-int{border:1px solid var(--be-border,#e2e8f0);border-radius:14px;padding:1rem 1.1rem;
        background:var(--be-surface,#fff);margin-top:1.25rem}
.hx-int__head{display:flex;gap:.75rem;align-items:flex-start}
.hx-int__ico{font-size:20px;line-height:1;opacity:.8;margin-top:.15rem}
.hx-int__t{font-weight:650;margin:0 0 .15rem}
.hx-int__d{margin:0;font-size:.9rem;opacity:.75}
.hx-picked{margin:.6rem 0 0;padding:0;list-style:none}
.hx-picked li{display:flex;justify-content:space-between;gap:1rem;font-size:.88rem;
              padding:.4rem 0;border-top:1px dashed var(--be-border,#e2e8f0)}
.hx-picked li span:first-child{opacity:.8}
.hx-fams{display:grid;gap:.7rem;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));margin:.9rem 0}
.hx-fam{border:1px solid var(--be-border,#e2e8f0);border-radius:12px;padding:.85rem .9rem;
        background:var(--be-surface,#fff);cursor:pointer;text-align:left;width:100%;
        display:flex;gap:.7rem;align-items:flex-start}
.hx-fam.is-on{border-color:var(--sx-accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--sx-accent) 22%,transparent)}
.hx-fam__ico{font-size:19px;opacity:.75;margin-top:.15rem;flex:none}
.hx-fam__n{font-weight:650;display:block}
.hx-fam__tag{display:block;font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;
             opacity:.55;margin:.1rem 0 .3rem}
.hx-fam__d{display:block;font-size:.82rem;opacity:.72}
.hx-fam__p{display:block;font-size:.84rem;font-weight:600;color:var(--sx-accent);margin-top:.4rem}
.hx-vendors{display:grid;gap:.55rem;grid-template-columns:repeat(auto-fit,minmax(158px,1fr));margin:.7rem 0}
.hx-vendor{border:1px solid var(--be-border,#e2e8f0);border-radius:11px;padding:.6rem .7rem;
           background:var(--be-surface,#fff);cursor:pointer;text-align:left;display:block;width:100%}
.hx-vendor__n{font-size:.9rem;line-height:1.3}
.hx-vendor.is-on{border-color:var(--sx-accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--sx-accent) 22%,transparent)}
.hx-vendor__n{font-weight:650;display:block}
.hx-vendor__b{display:block;font-size:.75rem;opacity:.65;margin:.1rem 0 0}
.hx-vendor__p{display:block;font-size:.78rem;font-weight:600;color:var(--sx-accent);margin-top:.25rem}
.hx-vdetail{margin:.15rem 0 .2rem;padding:.75rem .85rem;border-radius:11px;
  background:color-mix(in srgb,var(--be-border,#e2e8f0) 30%,transparent);font-size:.86rem;
  line-height:1.6}
.hx-vdetail p{margin:0}
.hx-vdetail__g{margin-top:.4rem;opacity:.75;font-size:.82rem}
.hx-vdetail__m{background:none;border:0;padding:0;margin-top:.4rem;font:inherit;font-size:.8rem;
  font-weight:600;color:var(--sx-accent,var(--hp-accent));cursor:pointer;text-decoration:underline}
.hx-sec{margin:1.05rem 0 .1rem;padding-top:.75rem;border-top:2px solid var(--be-border,#e2e8f0)}
.hx-sec__n{font-weight:700;font-size:.82rem;margin:0;text-transform:uppercase;letter-spacing:.05em;
  opacity:.6}
.hx-vendor{padding:.7rem .8rem}
.hx-vendor__b{margin:.08rem 0 .28rem}
/* ONE scroll region, with the action and the running total pinned below it.
   Nested scroll boxes (options here, items there) meant a mobile card was
   clipped mid-height and looked broken, and on both sizes the modal simply ran
   off the bottom of the screen with no visible way to accept it. */
.be-implmodal__card{display:flex;flex-direction:column;max-height:88vh}
.hx-scroll{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;
  padding-right:.45rem;margin-right:-.45rem}
.hx-scroll::-webkit-scrollbar{width:8px}
.hx-scroll::-webkit-scrollbar-thumb{background:var(--be-border,#cbd5e1);border-radius:4px}
.hx-foot{flex:none;display:flex;align-items:center;justify-content:space-between;gap:.9rem;
  flex-wrap:wrap;border-top:2px solid var(--be-border,#e2e8f0);padding-top:.85rem;margin-top:.7rem}
.hx-foot__t{font-weight:700;font-size:1.02rem;white-space:nowrap}
.hx-foot__s{display:block;font-size:.76rem;font-weight:400;opacity:.65}
.hx-foot__b{display:flex;gap:.5rem;flex-wrap:wrap;margin-left:auto}
@media (max-width:640px){
  .be-implmodal__card{max-height:92vh}
  .hx-foot{flex-direction:column;align-items:stretch}
  .hx-foot__b{margin-left:0}
  .hx-foot__b button{flex:1 1 auto}
}

/* GRID, not flex. With flex the label cell grew to its natural text width, so
   a long note wrapped and dragged the checkbox and the price onto the end of
   the last line - "Quoted after the survey.[x] on confirmation". A 1fr/auto
   grid gives the control its own column that cannot be swallowed, whatever the
   label does. min-width:0 lets the label actually wrap instead of overflowing. */
.hx-row{display:grid;grid-template-columns:1fr auto;align-items:center;gap:.4rem 1rem;
        padding:.5rem 0;border-top:1px dashed var(--be-border,#e2e8f0)}
.hx-row__l{min-width:0}
.hx-row__t{font-weight:550;display:inline}
/* the site's own button rules flatten a bare .hx-row__i into a square, so the
   selector is scoped to the modal to out-specify them */
.be-implmodal .hx-row__i{border:1px solid var(--be-border,#cbd5e1);background:none;color:inherit;
  width:1.2rem;height:1.2rem;min-width:1.2rem;border-radius:999px;font-size:.68rem;line-height:1;
  cursor:pointer;opacity:.5;margin-left:.4rem;padding:0;vertical-align:1px;
  display:inline-flex;align-items:center;justify-content:center;flex:none}
.be-implmodal .hx-row__i:hover{opacity:1;border-color:var(--sx-accent);color:var(--sx-accent)}
.hx-row__n{grid-column:1/-1;margin:.15rem 0 .2rem;font-size:.82rem;opacity:.72;line-height:1.6;
  max-width:44rem}
.hx-row__n[hidden]{display:none}
.hx-row__r{display:flex;align-items:center;gap:.7rem;justify-self:end}
.hx-row__v{font-size:.88rem;font-weight:600;white-space:nowrap}
.hx-row__v--ind{font-weight:500;font-style:italic;opacity:.7;font-size:.82rem}
/* a real switch, not a raw checkbox floating in a paragraph */
.hx-sw{position:relative;display:inline-block;width:2.4rem;height:1.35rem;flex:none}
.hx-sw input{opacity:0;width:0;height:0;position:absolute}
.hx-sw span{position:absolute;inset:0;border-radius:999px;cursor:pointer;
  background:var(--be-border,#cbd5e1);transition:background .15s}
.hx-sw span::before{content:"";position:absolute;width:1.05rem;height:1.05rem;left:.15rem;
  top:.15rem;border-radius:50%;background:#fff;transition:transform .15s;
  box-shadow:0 1px 3px rgba(0,0,0,.25)}
.hx-sw input:checked + span{background:var(--sx-accent)}
.hx-sw input:checked + span::before{transform:translateX(1.05rem)}
.hx-sw input:focus-visible + span{outline:2px solid var(--sx-accent);outline-offset:2px}
.hx-row--tot{border-top:2px solid var(--be-border,#e2e8f0);font-weight:700}
.hx-row--ind .hx-row__r{opacity:.8}
.hx-qty{display:flex;align-items:center;gap:.5rem;flex:none}
.hx-qty input{width:6.5rem;text-align:center;padding:.45rem;border:1px solid var(--be-border,#e2e8f0);
              border-radius:9px;font:inherit;background:var(--be-surface,#fff);color:inherit}
.hx-qty input:focus{outline:2px solid var(--sx-accent);outline-offset:1px}
.hx-note{font-size:.82rem;opacity:.7;margin:.35rem 0 0}
.hx-warn{font-size:.82rem;margin:.3rem 0 0;color:var(--sx-accent);font-weight:600}
.hx-free{margin:.9rem 0 0;padding:.7rem .85rem;border-radius:11px;
         background:color-mix(in srgb,var(--sx-accent) 8%,transparent);
         border:1px solid color-mix(in srgb,var(--sx-accent) 25%,transparent);font-size:.86rem}
.hx-free strong{color:var(--sx-accent)}
.hx-direct{margin:.9rem 0 0;padding:.75rem .85rem;border-radius:11px;
           border:1px dashed var(--be-border,#cbd5e1);font-size:.85rem}
.hx-direct__h{font-weight:650;margin:0 0 .3rem}
.hx-direct ul{margin:.2rem 0 0;padding-left:1.1rem}
.hx-direct li{margin:.25rem 0}
.hx-deliv{display:grid;gap:.6rem;margin:.6rem 0}
.hx-dopt{border:1px solid var(--be-border,#e2e8f0);border-radius:11px;padding:.7rem .85rem;
         cursor:pointer;text-align:left;width:100%;background:var(--be-surface,#fff);
         display:flex;justify-content:space-between;gap:1rem;align-items:center}
.hx-dopt.is-on{border-color:var(--sx-accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--sx-accent) 22%,transparent)}
.hx-dopt__n{font-weight:600;display:block}
.hx-dopt__e{display:block;font-size:.8rem;opacity:.7}
.hx-stack{z-index:1200}
.hx-stack2{z-index:1300}
@media (max-width:640px){.hx-vendors,.hx-fams{grid-template-columns:1fr}}
.hb-inc{padding:3rem 0 1rem;text-align:center}
.hb-inc__lead{font-size:1.05rem;line-height:1.7;margin:0 auto;max-width:46rem}
.hb-inc__lead strong{font-weight:700}
.hb-inc__notes{margin:1.4rem auto 0;max-width:46rem;font-size:.88rem;opacity:.7;line-height:1.7}
.hb-inc__notes sup{font-weight:700}
.hb-adv{position:relative;display:inline-block;margin-top:2rem}
.hb-adv__btn{background:var(--be-surface,#fff);border:1px solid var(--be-border,#e2e8f0);
  border-radius:10px;padding:1rem 1.6rem;font:inherit;font-weight:700;font-size:1.05rem;
  color:var(--sx-accent,var(--hp-accent));cursor:pointer;display:inline-flex;align-items:center;gap:.6rem}
.hb-adv__btn:hover{border-color:var(--sx-accent,var(--hp-accent))}
.hb-adv__btn[aria-expanded="true"]{border-color:var(--sx-accent,var(--hp-accent))}
.hb-adv__menu{position:absolute;top:calc(100% + .4rem);left:50%;transform:translateX(-50%);
  background:var(--be-surface,#fff);border:1px solid var(--be-border,#e2e8f0);
  border-radius:10px;box-shadow:0 12px 34px rgba(15,23,42,.14);min-width:19rem;
  padding:.4rem;z-index:60;text-align:left}
.hb-adv__menu[hidden]{display:none}
.hb-adv__menu a{display:block;padding:.75rem .9rem;border-radius:7px;text-decoration:none;
  color:inherit;font-size:.95rem}
.hb-adv__menu a:hover,.hb-adv__menu a:focus{background:color-mix(in srgb,var(--sx-accent,var(--hp-accent)) 10%,transparent)}
.hb-cut{padding:3.5rem 0}
.hb-cut__grid{display:grid;gap:1.6rem;grid-template-columns:1.5fr .9fr;align-items:start}
.hb-cut__panel{background:color-mix(in srgb,var(--be-border,#e2e8f0) 22%,transparent);
  border-radius:16px;padding:1.5rem}
.hb-tiles{display:grid;gap:.65rem;grid-template-columns:repeat(4,1fr)}
.hb-tile{position:relative;border:1px solid var(--be-border,#e2e8f0);border-radius:13px;
  background:var(--be-surface,#fff);min-height:7.4rem;display:flex}
.hb-tile__hit{flex:1;border:0;background:none;font:inherit;color:inherit;cursor:pointer;
  padding:.95rem .5rem .8rem;text-align:center;display:flex;flex-direction:column;gap:.5rem;
  align-items:center;justify-content:flex-start;border-radius:13px}
.hb-tile img{width:46px;height:46px;object-fit:contain;display:block}
.hb-tile__chip{width:46px;height:46px;display:flex;align-items:center;justify-content:center;
  border-radius:9px;background:color-mix(in srgb,var(--be-border,#e2e8f0) 55%,transparent);
  font-weight:800;font-size:1rem;letter-spacing:-.02em;opacity:.8}
.hb-tile i{font-size:22px;opacity:.75}
.hb-catlab{grid-column:1/-1;font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;
  opacity:.5;font-weight:700;margin:.6rem 0 -.15rem}
.hb-catlab:first-child{margin-top:0}
.hb-sum__cat{font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;opacity:.5;
  font-weight:700;margin:.7rem 0 .1rem}
.hb-int{padding:3.5rem 0 1rem}
.hb-int .hx-fams{margin-top:1.6rem}
.hb-faq{padding:3.5rem 0 4.5rem}
.hb-faq__g{margin-top:2rem}
.hb-faq__gn{font-size:.75rem;text-transform:uppercase;letter-spacing:.06em;opacity:.55;
  font-weight:700;margin:0 0 .6rem}
.hb-q{border-top:1px solid var(--be-border,#e2e8f0)}
.hb-q:last-child{border-bottom:1px solid var(--be-border,#e2e8f0)}
.hb-q__b{width:100%;text-align:left;background:none;border:0;font:inherit;color:inherit;
  padding:1.05rem 2.2rem 1.05rem 0;cursor:pointer;font-weight:600;position:relative;
  display:block;line-height:1.5}
.hb-q__b::after{content:"+";position:absolute;right:.35rem;top:50%;transform:translateY(-50%);
  font-size:1.25rem;font-weight:400;color:var(--sx-accent,var(--hp-accent))}
.hb-q.is-open .hb-q__b::after{content:"2"}
.hb-q__a{padding:0 2.2rem 1.15rem 0;margin:0;opacity:.8;line-height:1.75;max-width:52rem}
.hb-q__a[hidden]{display:none}
.hb-tile__n{font-size:.82rem;line-height:1.3;font-weight:600;overflow-wrap:break-word;
  hyphens:auto}
.hb-tile.is-on{border-color:var(--sx-accent,var(--hp-accent));box-shadow:0 0 0 2px color-mix(in srgb,var(--sx-accent,var(--hp-accent)) 22%,transparent)}
.hb-tile.is-on i{opacity:1;color:var(--sx-accent,var(--hp-accent))}
.hb-tile__tick{position:absolute;top:-.45rem;right:-.45rem;width:1.35rem;height:1.35rem;
  border-radius:50%;background:var(--sx-accent,var(--hp-accent));color:#fff;font-size:.72rem;
  display:none;align-items:center;justify-content:center}
.hb-tile.is-on .hb-tile__tick{display:flex}
.hb-tile__i{position:absolute;top:.3rem;right:.35rem;width:1.05rem;height:1.05rem;
  border:1px solid var(--be-border,#cbd5e1);border-radius:999px;font-size:.6rem;line-height:1;
  display:flex;align-items:center;justify-content:center;opacity:.45;background:none;color:inherit;
  padding:0;cursor:help}
.hb-tile__i:hover,.hb-tile__i:focus{opacity:1;border-color:var(--sx-accent,var(--hp-accent));
  color:var(--sx-accent,var(--hp-accent));outline:none}
.hb-tip{position:absolute;left:50%;bottom:calc(100% + .4rem);transform:translateX(-50%);
  width:16rem;max-width:70vw;background:#0f172a;color:#fff;border-radius:9px;padding:.6rem .7rem;
  font-size:.74rem;line-height:1.5;font-weight:400;text-align:left;opacity:0;visibility:hidden;
  transition:opacity .12s;z-index:40;pointer-events:none;box-shadow:0 8px 24px rgba(15,23,42,.28)}
.hb-tip::after{content:"";position:absolute;top:100%;left:50%;transform:translateX(-50%);
  border:5px solid transparent;border-top-color:#0f172a}
.hb-tile__i:hover + .hb-tip,.hb-tile__i:focus + .hb-tip{opacity:1;visibility:visible}
.hb-tile__q{display:block;font-size:.6rem;text-transform:uppercase;letter-spacing:.04em;
  opacity:.5;font-weight:700;margin-top:.1rem;order:3}
.hb-catlab{display:none}
.hb-sum__h{font-weight:700;margin:0 0 .2rem}
.hb-sum__s{font-size:.84rem;opacity:.7;margin:0 0 .8rem}
.hb-sum__row{display:flex;justify-content:space-between;gap:1rem;font-size:.88rem;
  padding:.42rem 0;border-bottom:1px dashed var(--be-border,#cbd5e1)}
.hb-sum__row span:first-child{opacity:.85}
.hb-sum__row--q span:last-child{opacity:.6;font-style:italic}
.hb-sum__tot{display:flex;justify-content:space-between;gap:1rem;font-weight:700;
  padding:.7rem 0 0;margin-top:.4rem;border-top:2px solid var(--be-border,#cbd5e1)}
.hb-save{margin-top:1.2rem;padding:1.1rem;border-radius:13px;text-align:center;
  background:color-mix(in srgb,var(--sx-accent,var(--hp-accent)) 12%,transparent)}
.hb-save__l{font-size:.85rem;opacity:.8;margin:0}
.hb-save__v{font-size:1.9rem;font-weight:800;color:var(--sx-accent,var(--hp-accent));margin:.1rem 0;line-height:1.1}
.hb-save__n{font-size:.8rem;opacity:.75;margin:0}
.hb-cut__fine{margin:1.4rem auto 0;font-size:.78rem;opacity:.62;line-height:1.65;max-width:62rem}
.hb-cut__fine a{color:inherit}
@media (max-width:900px){.hb-cut__grid{grid-template-columns:1fr}}
@media (max-width:1100px){.hb-tiles{grid-template-columns:repeat(3,1fr)}}
@media (max-width:560px){
  .hb-tiles{grid-template-columns:repeat(2,1fr);gap:.5rem}
  .hb-tile{min-height:6.6rem;padding:.8rem .4rem .7rem}
  .hb-tile img,.hb-tile__chip{width:38px;height:38px}
  .hb-tile__n{font-size:.76rem}
}
