:root{--ivory:#F7F4ED;--paper:#FFFEFB;--ink:#202522;--muted:#6D716D;--line:#DDD9D0;--pine:#315A4C;--pine2:#203E35;--pine-soft:#E8EFEA;--clay:#C87555;--danger:#A84444;--display:"Bodoni 72","Didot","Baskerville","Times New Roman",serif;--sans:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans Thai","Noto Sans SC",sans-serif;--ease:cubic-bezier(.22,1,.36,1);--shadow:0 18px 50px rgba(32,37,34,.08)}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--ivory);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit;color:inherit}button,a{touch-action:manipulation}svg{fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.booking-header{height:72px;position:sticky;top:0;z-index:30;background:rgba(247,244,237,.94);display:flex;align-items:center;justify-content:space-between;padding:0 clamp(16px,3vw,44px);border-bottom:1px solid rgba(32,37,34,.08);backdrop-filter:blur(20px)}.brand{display:grid;gap:2px;color:inherit;text-decoration:none}.brand-word{font-family:var(--display);font-size:18px;letter-spacing:.16em}.brand-sub{font-size:8px;letter-spacing:.13em;color:var(--muted)}.header-tools{display:flex;align-items:center;gap:8px}.lang-select{height:38px;display:flex;align-items:center;gap:8px;padding:0 10px;border:1px solid var(--line);border-radius:12px;background:rgba(255,255,255,.72)}.lang-select svg{width:16px}.lang-select select{border:0;background:transparent;outline:none;font-size:11px;min-width:68px}.icon-btn{width:38px;height:38px;border:0;background:transparent;border-radius:12px;display:grid;place-items:center;cursor:pointer}.icon-btn:hover{background:rgba(49,90,76,.07)}.icon-btn svg{width:18px}.booking-progress{position:sticky;top:72px;z-index:25;background:rgba(247,244,237,.94);border-bottom:1px solid rgba(32,37,34,.07);backdrop-filter:blur(18px)}.stepper{height:70px;max-width:980px;margin:0 auto;padding:0 24px;list-style:none;display:grid;grid-template-columns:repeat(4,1fr);position:relative;align-items:center}.stepper:before{content:"";position:absolute;left:calc(12.5% + 17px);right:calc(12.5% + 17px);top:27px;height:1px;background:var(--line)}.stepper li{position:relative;z-index:1;display:grid;justify-items:center;gap:5px;font-size:10px;color:#92958F}.stepper li span{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;border:1px solid #D2D3CE;background:var(--ivory);font-size:9px}.stepper li b{font-weight:650}.stepper li.active{color:var(--ink)}.stepper li.active span{background:var(--pine);border-color:var(--pine);color:#fff}.stepper li.done{color:var(--pine)}.stepper li.done span{background:#DBE8E1;border-color:#DBE8E1;color:var(--pine2)}.booking-main{min-height:calc(100vh - 196px);padding:48px 20px 82px}.booking-layout{width:min(100%,1120px);margin:auto;display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:22px;align-items:start}.booking-panel{min-width:0;background:var(--paper);border:1px solid var(--line);border-radius:28px;box-shadow:var(--shadow);overflow:hidden}.step-view{display:none;padding:clamp(24px,4vw,44px)}.step-view.active{display:block;animation:enter .42s var(--ease)}@keyframes enter{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.section-heading{margin-bottom:26px}.eyebrow{font-size:9px;letter-spacing:.18em;color:var(--pine);font-weight:800;text-transform:uppercase;margin-bottom:8px}.step-view h1{font-family:var(--display);font-size:clamp(34px,4vw,48px);font-weight:400;line-height:1.04;margin:0 0 10px;letter-spacing:-.018em}.lede{max-width:600px;color:var(--muted);font-size:13px;line-height:1.65;margin:0}.search-card{border:1px solid var(--line);border-radius:20px;background:#fff;padding:18px}.date-grid,.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.date-control{display:grid;gap:7px}.date-control>span,.control>span{font-size:11px;font-weight:700}.date-input{height:52px;border:1px solid #D4D3CD;border-radius:14px;display:flex;align-items:center;gap:9px;padding:0 13px;background:#fff}.date-input svg{width:17px;color:var(--pine)}.date-input input{border:0;outline:none;background:transparent;width:100%;font-size:13px}.party-card{margin-top:16px;border-top:1px solid var(--line)}.party-row{min-height:68px;display:flex;align-items:center;justify-content:space-between;gap:18px;border-bottom:1px solid var(--line)}.party-row>div:first-child{display:grid;gap:3px}.party-row strong{font-size:12px}.party-row span{font-size:10px;color:var(--muted)}.counter{display:grid;grid-template-columns:36px 40px 36px;align-items:center;border:1px solid #D3D4CF;border-radius:999px;background:#fff}.counter button{width:36px;height:36px;border:0;background:transparent;font-size:18px;cursor:pointer;border-radius:50%}.counter button:hover{background:var(--pine-soft)}.counter strong{text-align:center;font-size:12px}.promo{font-size:11px;margin-top:12px}.promo summary{display:flex;align-items:center;gap:7px;cursor:pointer;padding:8px 0;color:var(--pine2)}.promo summary svg{width:15px}.promo .control{margin-top:8px}.control{display:grid;gap:7px;margin-bottom:14px}.control small{font-size:10px;color:var(--muted)}.control input,.control textarea{width:100%;border:1px solid #D4D3CD;background:#fff;border-radius:14px;padding:13px 14px;outline:none;transition:border .2s,box-shadow .2s}.control input:focus,.control textarea:focus{border-color:#789486;box-shadow:0 0 0 3px rgba(49,90,76,.09)}.trust-row{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:16px 0}.trust-row span{display:flex;align-items:center;gap:7px;min-height:42px;padding:9px 10px;border-radius:12px;background:#EFF3F0;color:var(--pine2)}.trust-row svg{width:15px;flex:none}.trust-row b{font-size:9px;line-height:1.35}.primary-action{width:100%;min-height:50px;border:0;border-radius:14px;background:var(--pine);color:#fff;display:flex;align-items:center;justify-content:center;gap:8px;font-weight:750;font-size:12px;cursor:pointer;transition:transform .25s var(--ease),background .25s}.primary-action:hover{background:var(--pine2);transform:translateY(-1px)}.primary-action:disabled{opacity:.48;cursor:not-allowed;transform:none}.primary-action svg{width:15px}.form-error{min-height:18px;color:var(--danger);font-size:11px;margin-top:8px}.section-top{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.text-action{border:0;border-bottom:1px solid currentColor;background:transparent;padding:3px 0;font-size:10px;cursor:pointer;color:var(--muted)}.stay-summary{padding:12px 14px;border-radius:13px;background:#EDF1EE;color:var(--pine2);font-size:11px;margin:10px 0 18px}.room-list{display:grid;gap:12px}.room-card{display:grid;grid-template-columns:180px minmax(0,1fr) 130px;gap:16px;align-items:stretch;border:1px solid var(--line);border-radius:18px;padding:10px;background:#fff;transition:border .2s,transform .25s var(--ease),box-shadow .25s}.room-card:hover{border-color:#A8B8AF;transform:translateY(-1px);box-shadow:0 9px 25px rgba(32,37,34,.06)}.room-thumb{aspect-ratio:4/3;background:#B9C7C0;border-radius:13px;display:flex;align-items:flex-end;padding:9px;color:#fff;font-size:7px;letter-spacing:.09em;line-height:1.35}.room-info{padding:7px 0}.room-info h2{font-family:var(--display);font-size:23px;font-weight:400;margin:0 0 4px}.room-info p{font-size:10px;color:var(--muted);margin:0 0 9px;line-height:1.5}.room-chips{display:flex;flex-wrap:wrap;gap:5px}.room-chips span{font-size:8px;padding:5px 7px;border-radius:999px;background:#F0F2EE;color:var(--pine2)}.room-price{display:flex;flex-direction:column;justify-content:space-between;text-align:right;padding:7px 2px}.room-price strong{display:block;font-size:15px}.room-price small{display:block;font-size:9px;color:var(--muted);margin-top:3px}.room-price button{border:1px solid var(--pine);background:#fff;color:var(--pine);border-radius:11px;padding:9px 11px;font-size:10px;font-weight:750;cursor:pointer}.room-price button:hover{background:var(--pine);color:#fff}.room-card.unavailable{opacity:.5}.skeleton{height:142px;border-radius:18px;background:linear-gradient(90deg,#EEECE5,#F8F6F0,#EEECE5);background-size:200% 100%;animation:sk 1.2s linear infinite}@keyframes sk{to{background-position:-200% 0}}.hold-banner{display:flex;justify-content:space-between;align-items:center;gap:12px;background:#FFF4E7;border:1px solid #F1D8B6;border-radius:13px;padding:11px 13px;font-size:10px;margin-bottom:12px}.selected-summary{border:1px solid var(--line);background:#fff;border-radius:16px;padding:15px;margin:0 0 18px;font-size:11px}.selected-summary strong{font-family:var(--display);font-size:21px;font-weight:400;display:block;margin-bottom:4px}.selected-summary .summary-line{display:flex;justify-content:space-between;gap:12px;padding-top:7px;color:var(--muted)}.contact-note{font-size:10px;color:var(--muted);margin:-3px 0 14px}.payment-box{display:grid;gap:15px}.payment-head{display:flex;justify-content:space-between;align-items:flex-start;background:#EEF2EF;border-radius:15px;padding:15px}.payment-head span{display:block;font-size:10px;color:var(--muted)}.payment-head strong{font-size:24px;font-weight:650}.secure-chip{display:flex!important;align-items:center;gap:5px!important;color:var(--pine)!important}.secure-chip svg{width:15px}.qr-placeholder{aspect-ratio:2.4/1;min-height:140px;border:1px dashed #BFC6C1;border-radius:18px;background:#F3F5F1;display:grid;place-content:center;text-align:center;color:var(--pine);font-weight:750;letter-spacing:.08em;font-size:11px}.qr-placeholder small{font-weight:400;color:var(--muted);font-size:9px;margin-top:4px}.payment-meta{font-size:11px;color:var(--muted);text-align:center}.file-drop{border:1px dashed #ABB7AF;border-radius:15px;padding:19px;display:grid;justify-items:center;text-align:center;cursor:pointer;background:#fff}.file-drop:hover{background:#F4F6F3;border-color:var(--pine)}.file-drop svg{width:22px;margin-bottom:8px}.file-drop span{font-size:11px;font-weight:700}.file-drop small{font-size:9px;color:var(--muted);margin-top:3px}.file-name{font-size:10px;color:var(--pine);min-height:14px}.success-view{text-align:center;padding-block:60px}.success-icon{width:56px;height:56px;border-radius:50%;background:#E5EFE9;color:var(--pine);display:grid;place-items:center;margin:0 auto 16px}.success-icon svg{width:25px}.booking-ref{display:inline-block;padding:11px 15px;border:1px solid var(--line);border-radius:12px;background:#fff;font-size:12px;font-weight:750;margin:0 auto 18px}.link-action{text-decoration:none}.booking-aside{position:sticky;top:164px}.summary-card{background:var(--paper);border:1px solid var(--line);border-radius:22px;box-shadow:0 14px 38px rgba(32,37,34,.06);padding:19px}.summary-brand{font-family:var(--display);letter-spacing:.12em;font-size:15px;display:flex;align-items:center;justify-content:space-between}.summary-brand span{font-family:var(--sans);font-size:7px;letter-spacing:.15em;color:var(--muted)}.trip-summary{display:grid;gap:12px;margin-top:20px}.summary-empty{display:grid;gap:6px;padding:18px 0}.summary-empty strong{font-family:var(--display);font-size:21px;font-weight:400}.summary-empty span{font-size:10px;color:var(--muted);line-height:1.5}.trip-row{display:flex;justify-content:space-between;gap:12px;font-size:10px}.trip-row span{color:var(--muted)}.trip-room{display:grid;gap:3px}.trip-room strong{font-family:var(--display);font-size:19px;font-weight:400}.trip-room span{font-size:10px;color:var(--muted)}.summary-divider{height:1px;background:var(--line);margin:18px 0}.summary-benefits{display:grid;gap:12px}.summary-benefits div{display:grid;grid-template-columns:18px 1fr;gap:8px;align-items:start}.summary-benefits svg{width:16px;color:var(--pine)}.summary-benefits span{font-size:9px;line-height:1.5;color:var(--muted)}.booking-footer{height:54px;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 clamp(16px,3vw,44px);font-size:9px;color:var(--muted);letter-spacing:.06em}.offline{position:fixed;z-index:100;top:154px;left:50%;transform:translateX(-50%);background:#252B27;color:#fff;border-radius:999px;padding:8px 12px;font-size:10px;box-shadow:0 8px 30px rgba(0,0,0,.14)}.empty-state{padding:30px 18px;border:1px dashed #C8CCC8;border-radius:16px;text-align:center;display:grid;gap:5px}.empty-state strong{font-family:var(--display);font-size:21px;font-weight:400}.empty-state span{font-size:10px;color:var(--muted)}.nearby-dates{display:flex;justify-content:center;gap:7px;flex-wrap:wrap;margin-top:12px}.nearby-dates button{border:1px solid #B7C3BC;background:#fff;color:var(--pine);border-radius:999px;padding:8px 11px;font-size:9px;cursor:pointer}
@media(max-width:900px){.booking-header{height:62px;padding:0 14px}.brand-sub{display:none}.booking-progress{top:62px}.stepper{height:58px;padding:0 12px}.stepper:before{top:22px}.stepper li span{width:20px;height:20px}.stepper li b{display:none}.booking-main{padding:22px 11px 58px}.booking-layout{display:block}.booking-aside{display:none}.booking-panel{border-radius:20px}.step-view{padding:23px 17px}.date-grid,.contact-grid{grid-template-columns:1fr}.trust-row{grid-template-columns:1fr}.trust-row span{min-height:38px}.room-card{grid-template-columns:98px minmax(0,1fr);gap:11px}.room-price{grid-column:2;display:flex;flex-direction:row;align-items:end;text-align:left;gap:10px}.room-price button{margin-left:auto}.room-info h2{font-size:20px}.booking-footer{padding:0 14px}.offline{top:128px;max-width:calc(100% - 20px);text-align:center}.section-top{align-items:center}}
@media(max-width:430px){.brand-word{font-size:16px}.lang-select{padding:0 7px}.lang-select svg{display:none}.step-view h1{font-size:32px}.room-card{grid-template-columns:82px 1fr;padding:8px}.room-info p{margin-bottom:6px}.room-chips span:nth-child(n+3){display:none}.booking-footer span:last-child{display:none}.party-row{min-height:64px}}
.preferred-room{border-color:#789486;box-shadow:0 10px 28px rgba(49,90,76,.08)}.preferred-chip{width:max-content;margin-bottom:6px;padding:4px 7px;border-radius:999px;background:var(--pine-soft);color:var(--pine2);font-size:7px;font-weight:800;letter-spacing:.1em}.room-thumb{background:linear-gradient(145deg,#CAD5CE,#A8BBB0)}
@media(max-width:900px){.stepper{height:58px;padding:0 8px;align-items:start}.stepper:before{display:none}.stepper li{padding-top:12px;gap:0;align-self:start}.stepper li:not(:last-child):after{content:"";position:absolute;z-index:-1;top:22px;left:calc(50% + 10px);width:calc(100% - 20px);height:1px;background:var(--line)}.stepper li.done:not(:last-child):after{background:var(--pine)}.stepper li span{width:20px;height:20px;background:var(--ivory)}.stepper li b{display:none}.room-thumb{aspect-ratio:4/5;min-height:118px}.room-card{align-items:start}}
