/* Search page: consolidated original cascade. Do not append overrides in PHP. */
:root{--mist-green:#163f2a;--mist-green-2:#1f6b52;--sage:#eef4ed;--cream:#fbfaf5;--line:#dfe7dd;--gold:#b8924a;--ink:#22332b;--muted:#6f7d73;--danger:#9d2b2b}
body{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans TC",Arial,sans-serif;background:#f6f7f2;margin:0;color:var(--ink);line-height:1.55}.psb-wrap{max-width:1180px;margin:0 auto;padding:18px}.psb-inner-hero{position:relative;overflow:hidden;border-radius:24px;background:linear-gradient(135deg,rgba(239,245,238,.96),rgba(250,250,245,.95)),radial-gradient(circle at 86% 15%,rgba(31,107,82,.22),transparent 34%),linear-gradient(120deg,#dce7df,#f9f8f1);border:1px solid var(--line);padding:28px 30px 96px;box-shadow:0 16px 45px rgba(28,62,45,.08)}.psb-inner-hero:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(255,255,255,.62),rgba(255,255,255,.12)),radial-gradient(circle at 80% 70%,rgba(22,63,42,.18),transparent 34%);opacity:.9}.psb-inner-hero>*{position:relative}.psb-kicker{letter-spacing:.16em;color:var(--gold);font-weight:800}.psb-inner-hero h1{margin:4px 0 8px;font-size:clamp(26px,4vw,44px);letter-spacing:.08em;color:var(--mist-green);font-family:"Noto Serif TC","Songti TC",serif}.psb-inner-hero p{margin:0;color:#405148;font-weight:700}.psb-search{position:relative;margin:-72px auto 24px;background:#fff;border:1px solid var(--line);border-radius:22px;padding:18px;box-shadow:0 14px 38px rgba(38,73,52,.14);max-width:1080px}.psb-search form{display:grid;grid-template-columns:repeat(5,minmax(120px,1fr)) 150px;gap:12px;align-items:end}.psb-field{display:flex;flex-direction:column;gap:5px;font-weight:900;color:#405148}.psb-field input,.psb-field select{border:1px solid #cad8cd;border-radius:13px;padding:11px 12px;font-size:16px;background:#fff;color:var(--ink)}.psb-btn{border:1px solid transparent;border-radius:999px;padding:10px 14px;font-weight:950;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:6px;white-space:nowrap}.psb-btn.main{background:var(--mist-green);color:#fff}.psb-btn.ghost{background:#fff;color:var(--mist-green);border-color:#b9cdbf}.psb-btn.tw{background:#fff6df;color:#725200;border-color:#dfc783}.psb-btn.gold{background:var(--gold);color:#fff}.psb-toolbar{display:flex;gap:9px;flex-wrap:wrap;margin-top:12px}.psb-notice{border-radius:16px;padding:12px 14px;margin:14px 0;font-weight:850;border:1px solid}.psb-notice.ok{background:#eaf8ef;color:#145f35;border-color:#c8e8d0}.psb-notice.warn{background:#fff8df;color:#735000;border-color:#ecd58a}.psb-notice.bad{background:#ffecec;color:#8a1717;border-color:#ffc9c9}.psb-section-head{display:flex;align-items:end;justify-content:space-between;gap:16px;margin:22px 0 12px}.psb-section-head h2{margin:0;font-size:25px;color:var(--mist-green);letter-spacing:.08em}.psb-tabs{display:flex;gap:8px;flex-wrap:wrap}.psb-tab{border:1px solid #cfdccf;border-radius:999px;padding:8px 13px;background:#fff;color:#405148;font-weight:850;text-decoration:none;display:inline-flex;align-items:center;justify-content:center}.psb-tab:hover{border-color:#9fb8a6;color:var(--mist-green)}#psb-search-result-status,#psb-recommended-rooms,#psb-multi-group-panel,#psb-villa-panel{scroll-margin-top:92px}.psb-tab.active{background:var(--mist-green);color:#fff}.psb-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.psb-room-card{background:#fff;border:1px solid var(--line);border-radius:22px;overflow:hidden;box-shadow:0 12px 30px rgba(29,60,42,.08);display:flex;flex-direction:column}.psb-room-card.is-villa{border-color:#c6a65e;box-shadow:0 16px 38px rgba(92,70,26,.18)}.psb-room-photo{height:170px;position:relative;background:#dbe7dc;overflow:hidden}.psb-room-photo:before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,rgba(30,50,34,.1),rgba(0,0,0,.22)),linear-gradient(135deg,#d9c4a4,#5f7c5e)}.psb-room-photo:after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 20% 80%,rgba(255,255,255,.35),transparent 16%),linear-gradient(90deg,transparent 0 36%,rgba(255,255,255,.22) 36% 38%,transparent 38% 58%,rgba(255,255,255,.2) 58% 60%,transparent 60%),linear-gradient(0deg,rgba(0,0,0,.16),transparent 45%);mix-blend-mode:soft-light}.room-201:before{background:linear-gradient(135deg,rgba(60,42,25,.2),rgba(0,0,0,.16)),linear-gradient(135deg,#d8bd8f,#6f8a62)}.room-202:before{background:linear-gradient(135deg,rgba(70,62,42,.2),rgba(0,0,0,.2)),linear-gradient(135deg,#e0d0b1,#79906d)}.room-203:before{background:linear-gradient(135deg,rgba(48,32,20,.18),rgba(0,0,0,.18)),linear-gradient(135deg,#bf8f55,#607e65)}.room-301:before{background:linear-gradient(135deg,rgba(70,72,72,.22),rgba(0,0,0,.16)),linear-gradient(135deg,#c8c3b8,#72806e)}.room-302:before{background:linear-gradient(135deg,rgba(43,70,40,.18),rgba(0,0,0,.16)),linear-gradient(135deg,#c6d2b0,#6b926d)}.room-303:before{background:linear-gradient(135deg,rgba(36,52,76,.2),rgba(0,0,0,.18)),linear-gradient(135deg,#a8c0c8,#667e91)}.villa:before{background:linear-gradient(135deg,rgba(20,40,24,.12),rgba(0,0,0,.36)),linear-gradient(135deg,#25452e,#987948)}.psb-photo-label,.psb-status-badge{position:absolute;z-index:2;border-radius:999px;padding:6px 10px;font-size:12px;font-weight:950}.psb-photo-label{left:12px;top:12px;background:rgba(255,255,255,.9);color:var(--mist-green)}.psb-status-badge{right:12px;top:12px}.psb-status-badge.ok{background:#17492f;color:#fff}.psb-status-badge.wait{background:rgba(184,146,74,.92);color:#fff}.psb-status-badge.lock{background:rgba(90,90,90,.72);color:#fff}.psb-card-body{padding:15px;display:flex;flex-direction:column;gap:8px;flex:1}.psb-card-title{display:flex;align-items:start;justify-content:space-between;gap:10px}.psb-card-title h3{margin:0;font-size:19px;color:#1c3026}.psb-card-title span{font-size:12px;border:1px solid #ccd9cd;border-radius:999px;padding:3px 8px;color:#52635a}.psb-subtitle,.psb-fit,.psb-card-note,.psb-sync-note,.psb-nightly-note{margin:0;color:var(--muted);font-size:14px}.psb-nightly-note{font-size:12px;color:#7b6a3d;background:#fff8df;border:1px solid #ead89d;border-radius:10px;padding:6px 8px}.psb-declared-price{font-size:14px;color:#87704a;text-decoration:line-through;font-weight:850;margin-top:2px}.psb-price{font-size:25px;font-weight:1000;color:var(--mist-green);margin:3px 0}.psb-price small{font-size:12px;color:#79877f;font-weight:800}.psb-state{font-weight:1000;font-size:18px}.psb-state.lock{color:var(--danger)}.psb-state.pending{color:#856000}.psb-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:auto}.psb-sync-note{font-size:12px;border-top:1px solid #edf1ed;padding-top:8px}.psb-panel-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:18px}.psb-panel{background:#fff;border:1px solid var(--line);border-radius:22px;padding:18px;box-shadow:0 10px 26px rgba(30,60,45,.06)}.psb-panel h2{margin:0 0 12px;color:var(--mist-green);font-size:22px}.combo-row{display:grid;grid-template-columns:120px minmax(0,1fr) auto;gap:12px;align-items:center;border:1px solid #e4ebe4;border-radius:16px;padding:10px;margin:10px 0;background:#fbfdf9}.combo-thumb{display:flex}.combo-thumb span{width:46px;height:46px;border-radius:10px;background:#bac7b5;border:2px solid #fff;margin-left:-10px;box-shadow:0 2px 8px rgba(0,0,0,.12)}.combo-thumb span:first-child{margin-left:0}.combo-row b{color:#21352a}.combo-price{font-weight:1000;color:var(--mist-green)}.b1-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:14px}.b1-card{border:1px solid #e4ebe4;border-radius:16px;padding:13px;background:#fbfdf9}.b1-card h3{margin:0 0 8px}.b1-img{height:110px;border-radius:12px;background:linear-gradient(135deg,#7c664d,#d1bd9c);margin:8px 0}.b1-card:nth-child(2) .b1-img{background:linear-gradient(135deg,#425c46,#c5b180)}.psb-bottom-note{margin:18px 0;background:#fff;border:1px solid var(--line);border-radius:18px;padding:14px;display:flex;justify-content:space-between;gap:12px;align-items:center}.modal{position:fixed;inset:0;background:rgba(0,0,0,.45);display:none;align-items:center;justify-content:center;padding:18px;z-index:99}.modal.show{display:flex}.modal-card{background:#fff;border-radius:18px;max-width:540px;padding:20px;box-shadow:0 20px 60px rgba(0,0,0,.25)}.modal-card h2{margin-top:0}.other-list{background:#f7fbf8;border:1px solid #dce9df;border-radius:12px;padding:10px;margin-top:8px}.other-row{display:flex;justify-content:space-between;gap:10px;padding:9px 0;border-bottom:1px solid #e4eee7}.other-row:last-child{border-bottom:0}.psb-contact-help{margin-top:12px;padding:10px 12px;border-radius:14px;background:#fff8df;border:1px solid #e7ca73;color:#6a4d00;font-weight:850}.psb-contact-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin-top:14px}.psb-contact-chip{display:flex;align-items:center;gap:12px;padding:13px 14px;border-radius:16px;border:1px solid #d8e7de;background:#fbfdfb;text-decoration:none;color:#22312b;box-shadow:0 10px 22px rgba(27,68,53,.06);transition:.18s ease}.psb-contact-chip:hover{transform:translateY(-1px);box-shadow:0 14px 28px rgba(27,68,53,.1)}.psb-contact-chip.line{background:linear-gradient(135deg,#f5fff8,#effbf3)}.psb-contact-chip.phone{background:linear-gradient(135deg,#fffaf2,#fff6e7)}.psb-chip-icon{width:42px;height:42px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex:0 0 42px}.psb-contact-chip.line .psb-chip-icon{background:#1f7a69;color:#fff}.psb-contact-chip.phone .psb-chip-icon{background:#b9852b;color:#fff}.psb-chip-title{font-size:15px;font-weight:950;display:block;line-height:1.15}.psb-chip-sub{display:block;font-size:13px;color:#5b6a63;margin-top:2px}.psb-btn.with-icon{display:inline-flex;align-items:center;gap:8px}.psb-btn.with-icon svg,.psb-chip-icon svg{width:18px;height:18px;display:block}.psb-actions-stack{display:flex;flex-wrap:wrap;gap:10px;margin-top:10px}@media(max-width:980px){.psb-search form{grid-template-columns:1fr 1fr}.psb-grid,.psb-panel-grid{grid-template-columns:1fr}.combo-row{grid-template-columns:1fr}.psb-inner-hero{padding-bottom:88px}.psb-section-head{align-items:start;flex-direction:column}}@media(max-width:560px){.psb-wrap{padding:12px}.psb-inner-hero{border-radius:18px;padding:22px 18px 80px}.psb-search{margin-top:-64px}.psb-search form{grid-template-columns:1fr}.b1-cols{grid-template-columns:1fr}.psb-bottom-note{flex-direction:column;align-items:flex-start}}

/* G2b2-F3-FrontImage-3：最小圖片顯示，不改前台顯示管理 */
.psb-room-photo.has-img{
  background-size:cover!important;
  background-position:center center!important;
  background-repeat:no-repeat!important;
}
.psb-room-photo.has-img:before{
  display:none!important;
}
.combo-thumb span{
  background-size:cover!important;
  background-position:center center!important;
  background-repeat:no-repeat!important;
}
.b1-img.has-img{
  background-size:cover!important;
  background-position:center center!important;
  background-repeat:no-repeat!important;
}


/* G2b2-F3-FrontImage-4：1F 第四張盤器具卡，保留 2 欄卡片布局 */
.b1-cols{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:16px;
}
@media(max-width:640px){
  .b1-cols{grid-template-columns:1fr}
}


/* G2b2-F3-FrontImage-5：1F 大廳寬版展示圖 */
.psb-1f-showcase{
  width:100%;
  min-height:260px;
  margin:18px 0 4px;
  border-radius:18px;
  border:1px solid rgba(31,79,50,.14);
  background:linear-gradient(135deg,rgba(48,89,56,.18),rgba(178,135,77,.22));
  background-size:cover!important;
  background-position:center center!important;
  background-repeat:no-repeat!important;
  box-shadow:0 12px 26px rgba(28,64,42,.08);
}
.psb-1f-showcase.has-img{
  min-height:320px;
}
@media(max-width:760px){
  .psb-1f-showcase{min-height:190px;border-radius:15px}
  .psb-1f-showcase.has-img{min-height:210px}
}



/* G2b2-F3-MultiSelect-1：同日期多房暫選 */
.psb-selected-panel{background:#fff;border:1px solid var(--line);border-radius:22px;padding:16px 18px;margin:16px 0 18px;box-shadow:0 12px 28px rgba(30,60,45,.08)}
.psb-selected-head{display:flex;justify-content:space-between;gap:14px;align-items:flex-start;margin-bottom:12px}.psb-selected-head h2{margin:4px 0 4px;color:var(--mist-green)}
.psb-mini-badge{display:inline-flex;align-items:center;border-radius:999px;background:#eaf5ed;color:var(--mist-green);padding:4px 9px;font-size:12px;font-weight:950}
.psb-selected-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:10px;margin:10px 0}
.psb-selected-item{display:flex;justify-content:space-between;gap:10px;align-items:center;border:1px solid #e2ece2;background:#fbfdf9;border-radius:14px;padding:10px 12px}.psb-selected-item-main{min-width:0;flex:1}.psb-selected-item b{color:#21372a}.psb-selected-item small{display:block;color:var(--muted);font-weight:700;margin-top:2px}.psb-remove-room{border:0;background:#fff;color:#9d2b2b;border:1px solid #f0caca;border-radius:999px;width:28px;height:28px;font-weight:1000;cursor:pointer}
.psb-selected-summary{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;border-top:1px solid #edf2ed;padding-top:12px}.psb-selected-total{font-weight:1000;color:var(--mist-green);text-align:right}.psb-selected-total small{display:block;color:var(--muted);font-size:12px}.psb-selected-total span{font-size:24px}.psb-add-room.is-added{background:#eaf5ed!important;color:var(--mist-green)!important;border-color:#a9c9b2!important}
@media(max-width:640px){.psb-selected-summary{align-items:flex-start;flex-direction:column}.psb-selected-total{text-align:left}.psb-selected-head{flex-direction:column}}


/* G2b2-F3-Loading-1B：前台查詢讀取提示視覺優化 */
.psb-loading-overlay{
  position:fixed; inset:0; z-index:99999; display:none; align-items:center; justify-content:center;
  background:radial-gradient(circle at 20% 18%,rgba(199,229,213,.62),transparent 30%),
             radial-gradient(circle at 84% 76%,rgba(240,218,175,.55),transparent 34%),
             rgba(246,248,247,.9);
  backdrop-filter:blur(4px); padding:22px;
}
.psb-loading-overlay.is-active{display:flex}
.psb-loading-box{
  width:min(560px,92vw); background:#fff; border:1px solid rgba(31,122,105,.20); border-radius:24px;
  box-shadow:0 24px 62px rgba(24,58,45,.20); padding:22px; text-align:left;
}
.psb-loading-brand{
  display:inline-flex; align-items:center; gap:8px; border-radius:999px; background:#f0f8f4; color:#176354;
  border:1px solid #d7eadf; padding:6px 11px; font-weight:950; font-size:13px; margin-bottom:14px;
}
.psb-loading-head{display:flex; gap:14px; align-items:center; margin-bottom:13px}
.psb-loading-spinner{
  width:46px; height:46px; border-radius:50%; border:4px solid #d9eee8; border-top-color:#1f7a69;
  border-right-color:#6baa58; animation:psbSpin .82s linear infinite; flex:0 0 auto;
  box-shadow:0 0 0 7px rgba(31,122,105,.07);
}
.psb-loading-title{font-weight:1000; color:#145f35; font-size:21px; letter-spacing:.02em}
.psb-loading-sub{color:#5c7066; font-weight:800; margin-top:3px}
.psb-loading-bar{
  height:14px; background:#e7f2ed; border-radius:999px; overflow:hidden; margin-top:15px;
  border:1px solid #d3e9df; position:relative;
}
.psb-loading-fill{
  height:100%; width:8%; background:linear-gradient(90deg,#1f7a69,#78a947); border-radius:999px;
  transition:width .32s ease; position:relative;
}
.psb-loading-fill:after{
  content:""; position:absolute; inset:0; background:linear-gradient(90deg,transparent,rgba(255,255,255,.42),transparent);
  animation:psbLoadingSheen 1.15s ease-in-out infinite;
}
.psb-loading-meter{margin-top:9px; display:flex; justify-content:space-between; gap:10px; align-items:center; color:#1f5d45; font-weight:1000}
.psb-loading-percent{font-size:18px}
.psb-loading-state{color:#61736a; font-size:13px; font-weight:850}
.psb-loading-note{
  margin-top:13px; background:#fffaf0; border:1px solid #ecd89a; border-radius:14px;
  padding:10px 12px; color:#6b5108; font-weight:900;
}
.psb-loading-steps{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:9px; margin-top:13px}
.psb-loading-step{
  border-radius:14px; background:#f2f6f4; color:#718178; padding:9px 9px; font-size:12px;
  font-weight:950; text-align:center; border:1px solid #e1ebe4;
}
.psb-loading-step.is-now{background:#e7f7ee; color:#176354; border-color:#bfe3ca; box-shadow:0 6px 14px rgba(31,122,105,.08)}
.psb-loading-small{margin-top:10px; color:#718178; font-weight:800; font-size:13px; line-height:1.55}
@keyframes psbSpin{to{transform:rotate(360deg)}}
@keyframes psbLoadingSheen{from{transform:translateX(-100%)}to{transform:translateX(100%)}}
@media(max-width:720px){
  .psb-loading-box{padding:18px;border-radius:20px}
  .psb-loading-steps{grid-template-columns:1fr}
  .psb-loading-title{font-size:18px}
  .psb-loading-head{align-items:flex-start}
}
/* TRAVELER-CONTROL: dates at the server window edge cannot be shifted out of range. */
.psb-toolbar [aria-disabled="true"]{opacity:.5;cursor:not-allowed}
/* PSB v3：日期欄位對齊修正 */
.psb-search,
.psb-form,
form.psb-search,
form.psb-form {
  align-items: end;
}
.psb-field {
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  gap: 6px;
  min-width: 170px;
}
.psb-field input[type="date"],
.psb-field select,
.psb-field input[type="number"],
.psb-field input[type="text"] {
  width: 100%;
  box-sizing: border-box;
  min-height: 44px;
}
.psb-front-note {
  display: block;
  width: 100%;
  color: #6f7d73;
  font-size: 13px;
  font-weight: 700;
  margin-top: 6px;
}
/* PSB front display blocks v1 */
.psb-fd-blocks{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px;margin:16px 0}
.psb-fd-card{background:#fff;border:1px solid #e0e9df;border-radius:18px;overflow:hidden;box-shadow:0 8px 24px rgba(25,65,35,.06);position:relative}
.psb-fd-img{height:130px;background-size:cover;background-position:center;background-color:#d9e7d8}
.psb-fd-body{padding:14px}.psb-fd-body h3{margin:0 0 6px;color:#16472d;font-size:19px}.psb-fd-subtitle{font-weight:800;color:#6b7a6b}
.psb-fd-badge{position:absolute;top:10px;left:10px;background:#145533;color:#fff;border-radius:999px;padding:4px 9px;font-size:12px;font-weight:900}
.psb-fd-btn{display:inline-block;background:#145533;color:#fff;border-radius:9px;padding:8px 11px;text-decoration:none;font-weight:900;margin-top:8px}.psb-fd-btn-muted{background:#f1f6ef;color:#145533;border:1px solid #cfe0cc}
.psb-fd-policy{margin-top:10px;background:#f8fbf6;border:1px solid #dfe9dc;border-radius:10px;padding:8px}
/* PSB front traveler UI optimize v2 */
.psb-wrap{max-width:1220px}
.psb-inner-hero{padding-top:34px;padding-bottom:106px}
.psb-search{max-width:1120px}
.psb-search form{grid-template-columns:repeat(3,minmax(170px,1fr)) 150px;gap:14px}
.psb-search form.psb-has-child{grid-template-columns:repeat(4,minmax(150px,1fr)) 150px}
.psb-field{min-width:0}
.psb-field input,.psb-field select{transition:.18s ease;border-color:#c5d5c9}
.psb-field input:focus,.psb-field select:focus{outline:0;border-color:#1f6b52;box-shadow:0 0 0 3px rgba(31,107,82,.12)}
.psb-search-anchor{display:inline-flex;align-items:center;gap:6px;align-self:flex-start;min-height:44px;max-width:100%;text-decoration:underline;text-underline-offset:4px;cursor:pointer}
.psb-search-anchor:focus-visible{outline:2px solid #24745b;outline-offset:3px;border-radius:4px}
.psb-btn{transition:.18s ease}
.psb-btn:hover{transform:translateY(-1px);box-shadow:0 8px 18px rgba(22,63,42,.12)}
.psb-room-card{transition:.18s ease}
.psb-room-card:hover{transform:translateY(-2px);box-shadow:0 16px 38px rgba(29,60,42,.12)}
.psb-card-body{min-height:245px}
.psb-grid{align-items:stretch}
.psb-room-card .psb-actions{padding-top:6px}
.psb-notice{box-shadow:0 8px 20px rgba(22,63,42,.05)}
.psb-panel{min-height:220px}
.psb-panel .psb-fd-blocks{margin:10px 0 0;grid-template-columns:1fr}
.psb-fd-blocks.psb-fd-band{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));margin:18px 0}
.psb-fd-card{transition:.18s ease}
.psb-fd-card:hover{transform:translateY(-1px);box-shadow:0 14px 30px rgba(25,65,35,.1)}
.psb-fd-pos-promotion_area .psb-fd-card{border-color:#e8d49c;background:linear-gradient(135deg,#fffdf5,#fffaf0)}
.psb-fd-pos-villa_area .psb-fd-card{border-color:#d5bd7b;background:linear-gradient(135deg,#fffdf6,#f8fbf4)}
.psb-fd-pos-b1_area .psb-fd-card{background:linear-gradient(135deg,#fbfdfb,#f5faf4)}
.psb-bottom-note{background:linear-gradient(135deg,#fff,#f8fbf6)}
@media(max-width:980px){
  .psb-search form,.psb-search form.psb-has-child{grid-template-columns:1fr 1fr}
}
@media(max-width:560px){
  .psb-search form,.psb-search form.psb-has-child{grid-template-columns:1fr}
  .psb-inner-hero{padding-bottom:90px}
  .psb-card-body{min-height:auto}
}
/* PSB front traveler UI overlap fix v3 */
.psb-fd-card{overflow:visible}
.psb-fd-card .psb-fd-badge{
  position:static;
  display:inline-flex;
  align-items:center;
  width:max-content;
  max-width:100%;
  margin:0 0 8px 0;
  padding:4px 9px;
  line-height:1.2;
  border-radius:999px;
  background:#145533;
  color:#fff;
  font-size:12px;
  font-weight:900;
}
.psb-fd-body{padding:16px}
.psb-fd-body h3{
  clear:both;
  line-height:1.35;
  margin:0 0 7px;
}
.psb-fd-policy{overflow:hidden}
.psb-panel .psb-fd-blocks{
  display:block;
  margin:14px 0 0;
}
.psb-panel .psb-fd-card{
  margin-top:12px;
  box-shadow:none;
}
.psb-panel .psb-fd-card:first-child{margin-top:0}
.psb-fd-pos-promotion_area .psb-fd-body,
.psb-fd-pos-villa_area .psb-fd-body{padding:18px}
.psb-room-card .psb-photo-label,
.psb-room-card .psb-status-badge{line-height:1.15}
.psb-section-head{align-items:center}
.psb-tabs{flex-shrink:0}
.psb-btn:hover{transform:none}
.psb-room-card:hover,
.psb-fd-card:hover{transform:none}
@media(max-width:980px){
  .psb-section-head{align-items:flex-start}
  .psb-tabs{width:100%}
}
@media(max-width:560px){
  .psb-fd-body{padding:14px}
  .psb-fd-card .psb-fd-badge{font-size:11px}
}
/* 0701-G2b1l：官方直訂安心提醒卡，美化房型區空白位置 */
/* 0701-G2b1m：新增 B1 多功能空間加購提醒卡，作為單房 / 非包棟旅客的租借說明。 */
/* 0822：官方直訂 / 付費早餐 / B1 改為同一資訊區域的一列三格；僅調整旅客端排版與文案。 */
.psb-info-triple-zone{
  grid-column:1 / -1;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  overflow:hidden;
  border:1px solid #d9e7d8;
  border-radius:22px;
  background:#fffdf8;
  box-shadow:0 12px 30px rgba(29,60,42,.08);
}
.psb-info-triple-zone .psb-direct-note-card{
  border:0;
  border-radius:0;
  box-shadow:none;
  min-height:100%;
}
.psb-info-triple-zone .psb-direct-note-card + .psb-direct-note-card{
  border-left:1px solid #dfe7df;
}
.psb-breakfast-note-card{
  background:linear-gradient(180deg,#fffaf0,#fffdf8);
}
.psb-breakfast-note-card .psb-direct-note-kicker{background:#806328}
.psb-breakfast-methods{display:grid;grid-template-columns:1fr;gap:8px}
.psb-breakfast-method{border:1px solid #e1dcc8;border-radius:12px;padding:10px 11px;background:rgba(255,255,255,.68)}
.psb-breakfast-method b{display:block;color:#164b38;margin-bottom:4px}
.psb-breakfast-price{font-weight:950;color:#8a6117;margin:2px 0 5px}
.psb-breakfast-method ul{margin:5px 0 0;padding-left:18px;color:#52685f;font-size:13.5px}
.psb-breakfast-method li{margin:4px 0}
@media(max-width:980px){
  .psb-info-triple-zone{grid-template-columns:1fr}
  .psb-info-triple-zone .psb-direct-note-card + .psb-direct-note-card{border-left:0;border-top:1px solid #dfe7df}
}
.psb-direct-note-card{
  position:relative;
  overflow:hidden;
  border:1px solid #d9e7d8;
  border-radius:22px;
  background:
    radial-gradient(circle at 88% 10%,rgba(184,146,74,.18),transparent 30%),
    linear-gradient(135deg,#ffffff,#f8fbf6 58%,#fffaf0);
  box-shadow:0 12px 30px rgba(29,60,42,.08);
  padding:20px;
  display:flex;
  flex-direction:column;
  gap:11px;
  min-height:346px;
}
.psb-direct-note-card:before{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(120deg,rgba(255,255,255,.72),rgba(255,255,255,0));
  pointer-events:none;
}
.psb-direct-note-card>*{position:relative}.psb-direct-note-kicker{display:inline-flex;align-items:center;width:max-content;border-radius:999px;background:#17492f;color:#fff;padding:5px 10px;font-size:12px;font-weight:950;letter-spacing:.06em}.psb-direct-note-card h3{margin:0;color:#163f2a;font-size:22px;letter-spacing:.04em}.psb-direct-note-card p{margin:0;color:#4b5d53;font-weight:750}.psb-direct-note-highlight{border:1px solid #e4d3a3;background:#fff8df;color:#5f4710;border-radius:15px;padding:11px 12px;font-weight:900;line-height:1.5}.psb-direct-note-list{margin:0;padding:0;list-style:none;display:grid;gap:8px}.psb-direct-note-list li{display:flex;gap:8px;color:#56665e;font-size:14px}.psb-direct-note-list li:before{content:"✓";flex:0 0 18px;width:18px;height:18px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:#eaf5ec;color:#17492f;font-weight:1000;font-size:12px;margin-top:1px}.psb-direct-note-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:auto;padding-top:4px}.psb-direct-note-small{font-size:12px;color:#77867d;border-top:1px solid #edf1ed;padding-top:10px;margin-top:2px}
.psb-b1-rental-note-card{border-color:#cfdccf;background:radial-gradient(circle at 84% 12%,rgba(31,107,82,.15),transparent 30%),linear-gradient(135deg,#ffffff,#f7fbf6 55%,#f8f4e9)}
.psb-b1-rental-note-card .psb-direct-note-kicker{background:#6f5a2f;color:#fff}.psb-b1-rental-note-card .psb-direct-note-highlight{background:#f7fbf6;border-color:#cfe0d2;color:#17492f}.psb-b1-rental-note-card .psb-direct-note-list li:before{content:"•";background:#fff8df;color:#7b5b12;font-size:18px;line-height:1}
@media(max-width:980px){.psb-direct-note-card{min-height:auto}}
/* G2b2-F3-MultiSelectUI-1：多房暫選與直接預訂視覺差異化 */
.psb-btn.psb-book-direct{
  background:#123f2b;
  color:#fff;
  border-color:#123f2b;
  box-shadow:0 7px 16px rgba(18,63,43,.16);
}
.psb-btn.psb-add-multi{
  background:#f7fcf8;
  color:#176354;
  border:2px solid #87c89b;
  box-shadow:none;
  font-weight:1000;
}
.psb-btn.psb-add-multi:hover{
  background:#ebf8ee;
  box-shadow:0 8px 18px rgba(44,118,76,.12);
}
.psb-btn.psb-add-multi.is-combo{
  background:#fffaf0;
  color:#7a5400;
  border-color:#e1c06c;
}
.psb-btn.psb-add-multi.is-added{
  background:#e7f7ee!important;
  color:#176354!important;
  border-color:#79b98c!important;
  cursor:default;
  opacity:1;
}
.psb-btn.psb-add-multi.is-added:hover{
  transform:none;
  box-shadow:none;
}
.psb-selected-panel{
  background:linear-gradient(135deg,#f3fbf5 0%,#ffffff 58%,#fffaf1 100%)!important;
  border:2px solid rgba(31,122,105,.22)!important;
  border-left:7px solid #1f7a69!important;
  border-radius:24px!important;
  box-shadow:0 18px 42px rgba(28,64,42,.13)!important;
  padding:18px 20px!important;
}
.psb-selected-head h2{
  font-size:26px;
  letter-spacing:.03em;
}
.psb-selected-mode{
  background:#145f35!important;
  color:#fff!important;
  border:1px solid #145f35;
}
.psb-selected-intro strong{
  color:#145f35;
}
.psb-clear-selection{
  background:#fff!important;
  color:#7a2828!important;
  border-color:#e7b9b9!important;
}
.psb-selected-list{
  grid-template-columns:repeat(auto-fit,minmax(270px,1fr))!important;
  gap:12px!important;
}
.psb-selected-item{
  background:#fff!important;
  border:1px solid #cfe4d5!important;
  border-radius:16px!important;
  padding:12px 13px!important;
  box-shadow:0 8px 18px rgba(31,86,51,.06);
}
.psb-selected-item b{
  display:block;
  margin-top:3px;
  color:#163f2a!important;
}
.psb-selected-status{
  display:inline-flex;
  align-items:center;
  border-radius:999px;
  padding:3px 8px;
  background:#eef8f1;
  color:#176354;
  border:1px solid #c9e7d1;
  font-size:11px;
  font-weight:1000;
}
.psb-remove-room{
  width:32px!important;
  height:32px!important;
  font-size:18px;
}
.psb-selected-summary{
  background:rgba(255,255,255,.72);
  border-top:1px solid #cfe4d5!important;
  margin-top:6px;
  padding-top:14px!important;
}
.psb-selected-total span{
  font-size:28px!important;
  color:#123f2b!important;
}
.psb-next-multibook{
  min-height:48px;
  padding-left:20px!important;
  padding-right:20px!important;
  font-size:16px;
}
.psb-selected-safe-note{
  margin-top:12px;
  background:#fff8df;
  border:1px solid #e9d38b;
  color:#6d5100;
  border-radius:14px;
  padding:10px 12px;
  font-weight:900;
}
@media(max-width:640px){
  .psb-selected-panel{padding:16px!important}
  .psb-selected-head h2{font-size:22px}
  .psb-selected-list{grid-template-columns:1fr!important}
  .psb-next-multibook{width:100%}
  .psb-clear-selection{width:100%}
}
/* G2b2-F3-VillaFlex-1B：彈性包棟區塊卡片化收斂 */
.villa-flex-compact-panel{padding:18px!important;overflow:hidden}
.villa-flex-compact-head{display:grid;grid-template-columns:minmax(0,1fr) 230px;gap:14px;align-items:start;margin-bottom:12px}
.villa-flex-compact-head h2{margin:6px 0 6px}
.villa-flex-compact-base{background:#fff;border:1px solid #e6d39b;border-radius:16px;padding:12px 14px;box-shadow:0 8px 18px rgba(77,65,20,.06)}
.villa-flex-compact-base small{display:block;color:#78633b;font-weight:1000;font-size:12px}
.villa-flex-compact-base b{display:block;color:#123f2b;font-size:23px;font-weight:1000;margin-top:3px}
.villa-flex-compact-base span{display:block;color:#6f7d73;font-weight:850;font-size:12px;margin-top:2px}
.villa-flex-compact-notes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:12px 0 14px}
.villa-flex-compact-notes div{background:#fff;border:1px solid #e2ebe3;border-radius:14px;padding:10px 12px;min-height:74px}
.villa-flex-compact-notes b{display:block;color:#145f35;font-weight:1000;margin-bottom:3px}
.villa-flex-compact-notes span{display:block;color:#62736a;font-size:13px;font-weight:800;line-height:1.45}
.villa-flex-compact-special{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;background:#fff7df;border:1px solid #e2c573;border-radius:16px;padding:12px 14px;margin-bottom:14px}
.villa-flex-compact-special b{display:block;color:#745200;font-weight:1000}
.villa-flex-compact-special span{display:block;color:#705a19;font-weight:850;font-size:13px;margin-top:2px}
.villa-flex-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;align-items:stretch}
.villa-flex-choice-card{background:#fff;border:1px solid #dceadf;border-radius:18px;padding:13px;box-shadow:0 10px 22px rgba(28,64,42,.07);display:flex;flex-direction:column;min-height:286px}
.villa-flex-choice-card.is-primary{border:2px solid #d0b465;background:linear-gradient(135deg,#fff,#fffaf0)}
.villa-flex-choice-card.is-special{background:#fffdf7;border-color:#e5d197}
.villa-flex-choice-top{display:flex;justify-content:space-between;gap:8px;align-items:center;margin-bottom:8px}
.villa-flex-choice-card h3{margin:0 0 8px;color:#123f2b;font-size:18px;line-height:1.25}
.villa-flex-choice-card p{margin:7px 0 8px;color:#5d7066;font-weight:800;font-size:13px;line-height:1.45}
.villa-flex-choice-card .villa-flex-chips{gap:5px;margin:7px 0}
.villa-flex-choice-card .villa-flex-chips span{padding:4px 8px;font-size:12px}
.villa-flex-choice-card .villa-flex-badge.soft{display:inline-flex;width:max-content;max-width:100%;margin:0 0 6px;font-size:12px}
.villa-flex-mini-formula{margin-top:auto;background:#f7fbf8;border:1px solid #dceadf;color:#53675d;border-radius:12px;padding:7px 9px;font-size:12px;font-weight:900}
.villa-flex-mini-formula.is-warn{background:#fff7df;border-color:#e5d197;color:#735000}
.villa-flex-choice-card .villa-flex-price{margin:8px 0 10px;padding:9px 10px;border-radius:13px}
.villa-flex-choice-card .villa-flex-price b{font-size:21px}
.villa-flex-card-actions{display:flex;flex-wrap:wrap;gap:7px}
.villa-flex-card-actions .psb-btn,.villa-flex-card-actions .villa-flex-line{flex:1 1 auto;min-height:39px;text-align:center}
.villa-flex-compact-rules{margin-top:14px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;background:#f7fbf8;border:1px solid #dceadf;border-radius:16px;padding:12px}
.villa-flex-compact-rules div{background:#fff;border:1px solid #e3ece4;border-radius:13px;padding:10px 11px}
.villa-flex-compact-rules b{display:block;color:#145f35;font-weight:1000;margin-bottom:3px}
.villa-flex-compact-rules span{color:#5f7168;font-size:13px;font-weight:850;line-height:1.45}
@media(max-width:1080px){.villa-flex-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:820px){.villa-flex-compact-head,.villa-flex-compact-notes,.villa-flex-compact-rules{grid-template-columns:1fr}}
@media(max-width:640px){.villa-flex-card-grid{grid-template-columns:1fr}.villa-flex-compact-special{grid-template-columns:1fr}.villa-flex-choice-card{min-height:auto}}
/* G2b2-F3-VillaFlex-1D：包棟專屬感文案微調 */
.villa-flex-kicker{letter-spacing:.08em}
.villa-flex-compact-notes b{letter-spacing:.03em}
/* G2b2-F3-VillaFlex-1E：單房 / B1 租借 / 包棟差異說明卡 */
.villa-use-compare{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:12px 0 14px}
.villa-use-card{background:#fff;border:1px solid #dceadf;border-radius:17px;padding:13px 14px;box-shadow:0 8px 18px rgba(28,64,42,.055);display:flex;flex-direction:column;min-height:192px}
.villa-use-card.is-rental{border-color:#e2cf92;background:linear-gradient(135deg,#fff,#fffaf0)}
.villa-use-card.is-villa{border-color:#b9d7c1;background:linear-gradient(135deg,#f8fdf9,#fff);box-shadow:0 10px 22px rgba(31,92,54,.08)}
.villa-use-badge{display:inline-flex;width:max-content;max-width:100%;border-radius:999px;padding:4px 9px;background:#eaf5ed;color:#145f35;border:1px solid #cfe6d5;font-size:12px;font-weight:1000;margin-bottom:8px}
.villa-use-card.is-rental .villa-use-badge{background:#fff4d4;color:#725200;border-color:#e2c573}
.villa-use-card.is-villa .villa-use-badge{background:#145f35;color:#fff;border-color:#145f35}
.villa-use-card h3{margin:0 0 6px;color:#123f2b;font-size:17px;line-height:1.3}
.villa-use-card p{margin:0 0 9px;color:#5d7066;font-size:13px;font-weight:800;line-height:1.48}
.villa-use-card ul{margin:auto 0 0;padding:0;list-style:none;display:grid;gap:5px}
.villa-use-card li{color:#53675d;font-size:12.5px;font-weight:850;line-height:1.38;padding-left:18px;position:relative}
.villa-use-card li:before{content:"";position:absolute;left:0;top:.55em;width:7px;height:7px;border-radius:50%;background:#87c89b}
.villa-use-card.is-rental li:before{background:#d3ad52}
.villa-use-card.is-villa li:before{background:#145f35}
@media(max-width:900px){.villa-use-compare{grid-template-columns:1fr}.villa-use-card{min-height:auto}}
/* G2b2-F3-VillaFlex-1F：B1 設備與押金文案補充 */
.villa-use-card li{
  font-size:12px;
}
.villa-use-card.is-rental,
.villa-use-card.is-villa{
  min-height:214px;
}
@media(max-width:900px){
  .villa-use-card.is-rental,
  .villa-use-card.is-villa{min-height:auto}
}
