@layer theme{:root,:host{--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.fixed{position:fixed}.grid{display:grid}.hidden{display:none}.table{display:table}}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--ink:#392a22;--paper:#f6f1ea;--surface:#fffefa;--accent:#795234;--muted:#6c5b4d;--line:#dacdbc;--soft:#efe4d6;--focus:#8a4e1e}*{box-sizing:border-box}body{background:var(--paper);color:var(--ink);margin:0;font-family:Arial,Noto Sans Thai,sans-serif;font-size:16px;line-height:1.65}a{color:inherit;text-underline-offset:.18em}a:hover{color:var(--accent)}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}:focus-visible{outline:3px solid var(--focus);outline-offset:3px}.nightly-rate-breakdown{min-width:0;margin-block:12px;font-size:16px}.nightly-rate-breakdown>p{margin:0 0 8px}.nightly-rate-breakdown summary{cursor:pointer;border:1px solid var(--accent);background:var(--soft);min-height:48px;color:var(--ink);border-radius:8px;padding:10px 12px;font-weight:700}.nightly-rate-breakdown summary:hover{background:var(--line)}.nightly-rate-breakdown ul{margin:0;padding:8px 0;list-style:none}.nightly-rate-breakdown li{border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;gap:8px 16px;padding:8px 0;display:flex}.nightly-rate-breakdown strong{white-space:nowrap}.rate-priority-list{padding-inline-start:28px}.rate-priority-list li{margin-block:10px;font-weight:700}@media print{.nightly-rate-breakdown details>ul{display:block!important}}.skip{z-index:10;background:var(--surface);color:var(--ink);padding:10px 14px;position:absolute;top:8px;left:8px;transform:translateY(-160%)}.skip:focus{transform:translateY(0)}.site-header{background:var(--surface);border-bottom:2px solid #bda68e;justify-content:space-between;align-items:center;gap:24px;padding:20px max(24px,50vw - 620px);display:flex}nav{flex-wrap:wrap;align-items:center;gap:8px;display:flex}nav a,.site-footer a{border-radius:6px;align-items:center;min-height:44px;padding:8px 12px;font-size:16px;text-decoration:none;display:inline-flex}nav a:hover,nav a:focus-visible{background:var(--soft)}.admin-nav{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-block:24px;display:grid}.admin-nav a{border:1px solid var(--line);background:var(--surface);text-align:center;justify-content:center}.admin-nav a:hover{border-color:var(--ink)}.brand{letter-spacing:.12em;flex:none;font-family:Georgia,Times New Roman,serif;font-size:26px;line-height:1.15;text-decoration:none}.brand span{letter-spacing:.16em;margin-top:4px;font-family:Arial,Noto Sans Thai,sans-serif;font-size:14px;font-weight:600;display:block}.nav-button{min-height:44px;color:var(--ink);background:0 0;border:0;padding:8px 12px}.language{flex:none;gap:4px;display:flex}.language button{background:var(--surface);min-width:44px;min-height:44px;color:var(--ink);border:1px solid var(--line);border-radius:5px;padding:8px;font-size:15px;font-weight:700}.language button[aria-pressed=true]{background:var(--ink);color:#fff}.site-header nav a,.site-header .nav-button,.site-header .language button{min-height:54px;padding:12px;font-size:18px}.site-header .language button{border-color:#92704c;min-width:54px}.site-header nav a{font-weight:700}.site-header nav a[aria-current=page]{background:var(--ink);color:#fff}.site-header .nav-button{border:1px solid #92704c}main{min-height:70vh}.site-footer{border-top:1px solid var(--line);background:var(--surface);justify-content:space-between;align-items:center;gap:24px;margin-top:72px;padding:32px max(24px,50vw - 620px);display:flex}.site-footer p{color:#5c4b3e;margin:0;font-size:16px}.customer-main:not(:has(.admin-shell)){--line:#bda68e;--muted:#5c4b3e;font-size:18px}.customer-main:not(:has(.admin-shell)) :is(h2,h3){font-family:inherit;font-weight:700;line-height:1.4}.customer-main:not(:has(.admin-shell)) small{font-size:16px}.customer-main:not(:has(.admin-shell)) .amenities li{font-size:16px}.customer-main:not(:has(.admin-shell)) .eyebrow{letter-spacing:.07em;font-size:16px}.customer-main:not(:has(.admin-shell)) label{font-size:18px}.customer-main:not(:has(.admin-shell)) :is(button,.button,select,textarea,input:not([type=checkbox]):not([type=radio])){border-width:2px;min-height:54px;font-size:18px}.customer-main:not(:has(.admin-shell)) :is(input,select,textarea){border-color:#92704c}.customer-main:not(:has(.admin-shell)) :is(input,select,textarea):user-invalid{border-color:#a43b2b}.customer-main:not(:has(.admin-shell)) :is(input[type=checkbox],input[type=radio]){flex:0 0 24px;width:24px;height:24px;min-height:24px}.customer-main:not(:has(.admin-shell)) .date-input-value{font-size:18px}.customer-main:not(:has(.admin-shell)) :is(.card,.search){border-radius:10px}.customer-main:not(:has(.admin-shell)) .notice{border-left-width:5px;padding:18px 20px}.customer-main:not(:has(.admin-shell)) .notice.error{color:#7a251b;background:#fff0eb;border-color:#a43b2b}.customer-main:not(:has(.admin-shell)) button:disabled{color:#5c4b3e;cursor:not-allowed;background:#e4dace;border-color:#a99580}.customer-main:not(:has(.admin-shell)) .pill{border-color:#bda68e;padding:7px 12px;font-size:16px}.customer-main:not(:has(.admin-shell)) .pill[data-status=PENDING]{color:#573714;background:#f6e6c8;border-color:#92704c}:is(.customer-main:not(:has(.admin-shell)) .pill[data-status=CANCELLED],.customer-main:not(:has(.admin-shell)) .pill[data-status=EXPIRED]){color:#4f4137;background:#eee8e1;border-color:#a99580}.customer-main:not(:has(.admin-shell)) .pill[data-status=COMPLETED]{color:#183b24;background:#dceee0;border-color:#39734d}.customer-page-heading{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:18px 28px;margin-bottom:30px;display:flex}.customer-page-heading>:is(h1,.eyebrow){flex-basis:100%;margin-block:0}.customer-page-heading h1{overflow-wrap:anywhere}.customer-page-heading p{margin-block:8px 0}.customer-page-heading .customer-back-link{margin-bottom:2px}.customer-section{border:1px solid var(--line);background:var(--surface);border-radius:10px;padding:28px}.customer-section-heading{margin-bottom:20px}.customer-section-heading h2{margin-top:0}.customer-section-heading p{color:var(--muted);margin-bottom:0}.customer-help{border:1px solid var(--line);border-left:5px solid var(--accent);background:#fff6e8;border-radius:6px;padding:18px 20px}.customer-booking-list{gap:24px;display:grid}.customer-booking-card{border-top:5px solid var(--accent);grid-template-columns:minmax(0,1fr) minmax(220px,.35fr);gap:32px;display:grid}.customer-booking-card h2{margin-block:8px 18px}.customer-booking-card,.booking-receipt{overflow-wrap:anywhere}.customer-booking-card .stay-dates{max-width:650px}.customer-booking-action{border-left:1px solid var(--line);flex-direction:column;justify-content:center;align-self:stretch;gap:20px;padding-left:28px;display:flex}.customer-booking-action p{margin:0}.customer-booking-action .price{margin-top:6px;display:block}.customer-booking-action .button{width:100%}.customer-status-panel{background:#fff5e5;border:2px solid #795234}.customer-payment-steps{margin-block:24px;padding-left:28px}.customer-payment-steps li{margin-block:12px;padding-left:8px}.customer-payment-steps li::marker{color:var(--accent);font-weight:800}.customer-payment-details{border:2px solid var(--line);background:#f6eddf;border-radius:8px;margin-block:24px;padding:20px}.customer-payment-details>div{border-bottom:1px solid var(--line);grid-template-columns:minmax(110px,.65fr) minmax(0,1fr);gap:8px 20px;padding-block:10px;display:grid}.customer-payment-details>div:last-child{border-bottom:0}.customer-payment-details dt{font-weight:700}.customer-payment-details dd{overflow-wrap:anywhere;margin:0}.customer-danger-panel{background:#fff4ef;border:2px solid #aa543b;border-radius:8px;margin-top:28px;padding:24px}.customer-danger-panel h2{color:#7a251b}.customer-danger-panel button{background:#7a251b;border-color:#7a251b}.customer-danger-panel button:hover:not(:disabled){background:#571a12}.booking-summary-total{background:#f0e0ca;border:1px solid #92704c;border-radius:8px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:20px;font-size:22px;display:flex}.customer-login-page .auth-form{border-top:5px solid var(--accent);padding:32px}.customer-login-page .line-login-button{width:100%;min-height:60px;margin-top:8px}.wrap{width:min(100% - 48px,1200px);margin-inline:auto;padding-block:48px}.narrow{max-width:600px}.page-intro{margin-bottom:28px}.eyebrow{color:var(--accent);letter-spacing:.12em;font-size:14px;font-weight:700}h1,h2,h3{font-family:Georgia,Times New Roman,Noto Serif Thai,serif;font-weight:500;line-height:1.22}h1{margin:16px 0;font-size:clamp(34px,4.5vw,56px)}h2{margin:14px 0;font-size:clamp(27px,3vw,36px)}h3{margin:12px 0;font-size:24px}p{max-width:68ch}.muted,small{color:var(--muted)}small{font-size:14px}.button,button{border:1px solid var(--ink);background:var(--ink);color:#fff;text-align:center;cursor:pointer;border-radius:6px;justify-content:center;align-items:center;gap:8px;min-height:48px;padding:10px 20px;font-size:16px;font-weight:700;line-height:1.35;text-decoration:none;display:inline-flex}.button:hover,button:hover:not(:disabled){color:#fff;background:#614029}.date-input{min-width:0;display:grid}.date-input input{color:#0000;grid-area:1/1;min-width:0}.date-input input::-webkit-datetime-edit{opacity:0}.date-input input::-webkit-calendar-picker-indicator{cursor:pointer}.date-input-value{z-index:1;min-width:0;color:var(--ink);pointer-events:none;grid-area:1/1;align-items:center;padding:10px 40px 10px 12px;font-size:16px;line-height:1.35;display:flex}.secondary{color:var(--ink);background:0 0}.secondary:hover,button.secondary:hover:not(:disabled){background:var(--soft);color:var(--ink)}button:disabled{cursor:wait;background:#75685b;border-color:#75685b}input,select,textarea{background:var(--surface);width:100%;min-height:48px;color:var(--ink);border:1px solid #bda78f;border-radius:5px;padding:10px 12px}textarea{resize:vertical;min-height:112px}input:read-only,textarea:read-only{color:#554538;background:#f1ece5}:is(input:user-invalid,select:user-invalid,textarea:user-invalid){border-color:#9c3029}label{margin-bottom:16px;font-size:16px;font-weight:700;display:block}label input,label select,label textarea{margin-top:6px;display:block}input[type=checkbox]{vertical-align:middle;width:22px;height:22px;min-height:22px;accent-color:var(--ink);margin:0 8px 0 0}label:has(input[type=checkbox]){align-items:flex-start;gap:2px;display:flex}fieldset{border:1px solid var(--line);border-radius:6px;margin:20px 0;padding:18px}legend{padding-inline:8px;font-weight:700}.grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,290px),1fr));gap:24px;display:grid}.split{grid-template-columns:minmax(0,1.2fr) minmax(300px,.8fr);align-items:start;gap:40px;display:grid}.card{border:1px solid var(--line);background:var(--surface);border-radius:12px;overflow:hidden}.pad{padding:24px}.card img{object-fit:cover;background:var(--soft);width:100%;height:230px;display:block}.card img.payment-qr{aspect-ratio:auto;object-fit:contain;border:1px solid var(--line);width:min(100%,320px);height:auto;margin-inline:auto;display:block}.card img.slip-image{object-fit:contain;border:1px solid var(--line);width:min(100%,420px);height:auto;max-height:560px;margin-block:16px}.qr-edit summary{border:1px solid var(--ink);cursor:pointer;border-radius:6px;align-items:center;min-height:48px;padding:10px 20px;font-weight:700;display:flex}.qr-edit summary:hover{background:var(--soft)}.qr-delete button{color:#8b3026;background:0 0;border-color:#a75b52}.qr-delete button:hover:not(:disabled){color:#78231b;background:#f8ece8}.slip-thumb{object-fit:contain;border:1px solid var(--line);background:var(--soft);width:96px;height:96px;display:block}.room-card{flex-direction:column;display:flex}.room-card-body{flex-direction:column;flex:1;display:flex}.room-card h3{margin:0}.room-card .room-facts{margin-bottom:0}.room-card .room-availability{color:#204528;background:#e7f0e2;border:1px solid #39734d;border-radius:5px;align-self:flex-start;margin:12px 0 16px;padding:6px 10px;font-weight:700}.room-card .room-facts{color:var(--muted)}.room-card-heading{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px;display:flex}.room-card-capacity{border:1px solid var(--line);background:var(--soft);border-radius:5px;flex-wrap:wrap;gap:5px;margin:0;padding:5px 10px;font-size:16px;font-weight:700;display:inline-flex}.room-card .amenities{margin-top:10px}.room-card-footer{border-top:1px solid var(--line);margin-top:auto;padding-top:16px}.room-card-footer p{margin:0 0 14px}.room-card-footer .button{width:100%}.rooms-page>.grid{grid-template-columns:minmax(0,1fr);gap:18px}.rooms-page .room-card{grid-template-columns:minmax(220px,36%) minmax(0,1fr);display:grid}.rooms-page .room-card>img{height:100%;min-height:280px}.rooms-page .room-card-footer{justify-content:space-between;align-items:center;gap:20px;display:flex}.rooms-page .room-card-footer p{margin:0}.rooms-page .room-card-footer .button{width:auto;min-width:170px}.row{flex-wrap:wrap;align-items:center;gap:14px;display:flex}.between{justify-content:space-between}.search{border:1px solid var(--line);background:var(--surface);border-radius:12px;grid-template-columns:minmax(150px,1fr) minmax(150px,1fr) auto;align-items:end;gap:16px;padding:24px;display:grid}.search label{margin:0}.search .button,.search button{min-height:50px}.stay-search{border-top:4px solid var(--accent);gap:20px}.stay-search-label{align-items:center;gap:10px;margin-bottom:8px;display:flex}.field-step{background:var(--ink);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:28px;height:28px;font-size:16px;line-height:1;display:inline-flex}.stay-search-heading{margin-bottom:18px}.stay-search-heading h2{margin-block:0 6px}.admin-date-search{grid-template-columns:minmax(180px,260px) auto auto;justify-content:start}.qr-report-search{grid-template-columns:repeat(3,minmax(160px,1fr)) auto}.admin-date-search .button{align-self:end}.notice{border:1px solid #bd926e;border-left:4px solid var(--accent);background:#fff3e6;border-radius:5px;margin-block:20px;padding:16px 18px}.error{color:#8b2d23}.pill{background:#f0f3ef;border:1px solid #dfe4de;border-radius:999px;margin:4px 6px 4px 0;padding:5px 11px;font-size:14px;font-weight:600;display:inline-block}.status-confirmed{color:#183b24;background:#dceee0;border-color:#39734d}.status-incomplete{color:#662b1a;background:#f9e3db;border-color:#aa543b}.review-form{min-width:240px}.review-form label{margin-bottom:12px}.review-form button{width:100%}.room-side-badge{border-width:2px;padding:7px 14px;font-size:16px;font-weight:700;line-height:1.5}.side-river{color:#fff;background:#533620;border-color:#533620}.side-garden{color:#fff;background:#274831;border-color:#274831}.stack>*+*{margin-top:20px}.hero{color:#fff;background:#60422f;align-items:center;min-height:470px;display:flex;position:relative;overflow:hidden}.hero img{object-fit:cover;position:absolute;width:54%!important;height:100%!important;inset:0 0 0 auto!important}.hero:after{content:"";pointer-events:none;background:linear-gradient(90deg,#60422f 26% 44%,#0000 74%);position:absolute;inset:0}.hero .wrap{z-index:1;width:min(100% - 48px,1200px);position:relative}.hero h1{max-width:640px;font-size:clamp(44px,6vw,72px)}.hero .eyebrow{color:#f4dfbd}.hero p{max-width:48ch}.home-content{padding-top:0}.hero-search{z-index:1;border:1px solid var(--line);background:var(--surface);border-radius:14px;margin-top:-54px;position:relative}.search-intro{padding:22px 24px 0}.search-intro .eyebrow{margin:0}.search-intro h2{margin:4px 0 0;font-size:28px}.hero-search .search{border:0}.section-head{margin-top:56px}.section-head.row{margin-bottom:24px}.section-head.row>.muted{max-width:42ch}.home-story{border:1px solid var(--line);background:var(--soft);border-radius:12px;padding:32px}.home-story h2{margin-bottom:0}.price{font-family:Georgia,Times New Roman,serif;font-size:28px;font-weight:600}.stats{grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:16px;display:grid}.stats strong{font-size:30px;display:block}.stats .card{border-top:4px solid var(--accent)}.amenities{flex-wrap:wrap;gap:8px;margin:14px 0;padding:0;list-style:none;display:flex}.amenities li{background:var(--soft);border-radius:5px;padding:5px 10px;font-size:15px}.booking-steps{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:0 0 30px;padding:0;list-style:none;display:grid}.booking-steps li{border:1px solid var(--line);min-width:0;color:var(--muted);background:#f4eee6;border-radius:6px;align-items:flex-start;gap:10px;padding:14px 10px;font-size:16px;font-weight:700;line-height:1.4;display:flex}.booking-steps li[aria-current=step]{border-color:var(--ink);background:var(--ink);color:#fff}.booking-steps li.complete{color:#204528;background:#e7f0e2;border-color:#39734d}.booking-steps small{color:inherit;margin-top:4px;font-weight:400;display:block}.step-number{border:1px solid;border-radius:50%;flex:0 0 28px;justify-content:center;align-items:center;height:28px;font-size:16px;display:inline-flex}.actions{margin-block:24px}hr{border:0;border-top:1px solid var(--line);margin-block:20px}.detail-image{aspect-ratio:4/3;object-fit:cover;border-radius:8px;width:100%}.room-detail-grid{grid-template-columns:minmax(0,1.2fr) minmax(320px,.8fr);grid-template-areas:"image booking""description booking";align-items:start;gap:24px 32px;display:grid}.room-detail-grid>.detail-image{grid-area:image;height:auto}.room-detail-grid>.room-media{grid-area:image}.room-detail-grid>.room-tour{grid-area:image;min-width:0}.room-tour{border:1px solid var(--line);background:var(--surface);border-radius:10px;padding:24px}.room-tour h2,.room-tour>p{margin-top:0}.room-media{min-width:0}.room-media-tabs{flex-wrap:wrap;gap:10px;margin-bottom:12px;display:flex}.room-media-tabs button{flex:1}.room-viewer-panel{background:var(--soft);border:1px solid #ad9277;border-radius:8px;min-height:240px;position:relative;overflow:hidden}.room-media .detail-image{aspect-ratio:4/3;object-fit:cover;border-radius:0;width:100%;height:auto;display:block}.room-media model-viewer{aspect-ratio:4/3;--poster-color:#f2e9de;background:#f2e9de;width:100%;height:auto;display:block}.viewer-loading{text-align:center;background:#fffefaeb;flex-direction:column;justify-content:center;align-items:center;gap:16px;padding:24px;display:flex;position:absolute;inset:0}.viewer-loading progress{width:min(100%,260px);accent-color:var(--accent)}.viewer-controls{background:var(--surface);border-top:1px solid #ad9277;flex-wrap:wrap;justify-content:center;gap:10px;padding:12px;display:flex}.viewer-help{margin:12px 0 6px;font-size:16px}.viewer-note{margin:0;font-size:16px}.room-viewer-panel:fullscreen{background:var(--paper);border:0;border-radius:0;flex-direction:column;display:flex}.room-viewer-panel:fullscreen model-viewer{aspect-ratio:auto;flex:1;height:100%;min-height:0}.viewer-close{position:absolute;top:16px;right:16px}.booking-room-preview{border-top:1px solid var(--line);margin-top:20px;padding-top:16px}.booking-room-preview>summary{cursor:pointer;min-height:48px;padding:10px 0;font-weight:700}.booking-room-preview .room-media{margin-top:12px}.room-booking-panel{border-top:4px solid var(--accent);grid-area:booking;position:sticky;top:24px}.room-booking-panel>p:first-child{margin-top:0}.room-booking-panel h2{margin-top:20px}.room-booking-panel .search{border:0;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:0}.room-booking-panel .search button{width:100%}.room-booking-result{border-top:1px solid var(--line);margin-top:20px;padding-top:18px}.room-booking-result strong{font-size:22px;display:block}.room-booking-result .button{width:100%}.room-description{grid-area:description;padding:8px 0 16px}.room-description h2{margin-top:0}.room-facts{margin-block:12px}.room-facts p{margin-block:8px}.plan-side{margin-block:32px}.floor-plan{table-layout:fixed;min-width:850px}.floor-plan th:first-child{width:56px}.floor-plan th,.floor-plan td{vertical-align:top;padding:12px 10px}.floor-plan td{border:1px solid var(--line)}.floor-plan small{margin-top:7px;font-size:15px;display:block}.floor-plan th:first-child{z-index:1;background:var(--soft);position:sticky;left:0}.plan-room{background:#e2efdf}.plan-room:hover{background:#d3e4ce}.booking-room-line{border-bottom:1px solid var(--line);padding:18px 0}.booking-room-line h3{margin:0 0 8px}.booking-room-line p{margin-block:5px}.booking-room-heading{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px 16px;display:flex}.booking-room-heading strong{font-size:20px}.booking-room-line .extra-bed-summary{background:#f6e6c8;border:1px solid #92704c;border-radius:5px;margin-top:8px;padding:5px 10px;font-weight:700;display:inline-block}.booking-room-line:last-of-type{border-bottom:0}.plan-unavailable{color:#46534c;background:#e0e2df}#choose-type{scroll-margin-top:24px}.room-type-selection{border-top:5px solid var(--accent);padding:28px}.room-type-selection .stay-dates{max-width:660px}.room-type-selection .room-type-options{gap:18px}.room-type-option{border:2px solid var(--line)}.room-type-option h3{margin-top:0}.room-type-option[data-selected=true]{border-color:var(--ink);box-shadow:inset 0 4px var(--ink);background:#f6ead8}.room-type-option:focus-within{outline:3px solid var(--focus);outline-offset:3px}.room-type-option label{margin-bottom:0}.room-type-availability{color:#204528;background:#e7f0e2;border:1px solid #39734d;border-radius:6px;padding:10px 12px;font-size:16px}.room-type-availability[data-available="0"]{color:#4f4137;background:#eee8e1;border-color:#a99580}.room-type-availability strong{font-size:22px}.room-type-rate strong{font-size:23px}.room-type-continue{border:1px solid var(--line);background:var(--soft);border-radius:8px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:20px;padding:20px;display:flex}.room-type-continue p{margin:0}.room-type-continue p>:is(strong,span){display:block}.plan-empty{background:repeating-linear-gradient(135deg,#f1efe9,#f1efe9 5px,#c9cec5 5px 6px)}table{border-collapse:collapse;width:100%;min-width:720px;font-size:15px}th,td{border-bottom:1px solid var(--line);text-align:left;vertical-align:top;padding:14px}th{background:#f0e6d9;font-weight:700}tbody tr:nth-child(2n){background:#fcf9f4}.table-scroll{border:1px solid var(--line);background:var(--surface);border-radius:6px;overflow-x:auto}.auth-form{border:1px solid var(--line);background:var(--surface);border-radius:8px;padding:32px}.booking-page .split>form{border:1px solid var(--line);background:var(--surface);border-radius:10px;padding:28px}.booking-page .split aside{border-top:5px solid var(--accent);position:sticky;top:24px}.booking-page .split aside h3{margin-bottom:0}.booking-availability{margin-bottom:30px}.checkout-fields,.checkout-extras{border-color:var(--line);background:#faf5ed;min-width:0;margin-block:28px;padding:22px}.checkout-fields label:last-child{margin-bottom:0}.checkout-fields legend,.checkout-extras legend{font-size:20px}.checkout-extras{background:var(--surface)}.extra-bed-option{border:2px solid var(--line);cursor:pointer;background:#faf5ed;border-radius:6px;padding:16px}.extra-bed-option:last-child{margin-bottom:0}.extra-bed-option[data-selected=true]{border-color:var(--ink);background:#f6ead8}.extra-bed-option input{margin:2px 10px 0 0}.extra-bed-option small{margin-top:4px;font-weight:400;display:block}.booking-review{border:2px solid var(--accent);background:#fff5e5}.review-total{border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding-bottom:16px;display:flex}.review-total strong{font-size:28px}.policy-acceptance{background:var(--surface);border:1px solid #92704c;border-radius:6px;padding:16px}.policy-acceptance input{margin-top:4px}.checkout-actions{border-top:1px solid var(--line);gap:16px;padding-top:24px}.checkout-actions>button:first-child{flex:1}.booking-summary>.eyebrow{margin-top:0}.booking-summary>.button{width:100%;display:flex}.booking-summary .notice{font-size:16px}.booking-receipt,.payment-panel{border-top:4px solid var(--accent)}.booking-receipt>h3{font-size:32px}.payment-panel>p>strong:first-child{font-size:24px}.refund-alert{color:#54170f;overflow-wrap:anywhere;background:#fff0e6;border:3px solid #8a241b;border-left-width:8px;border-radius:8px;margin-block:24px;padding:24px}.refund-alert p{margin:12px 0 0}.refund-alert .refund-alert-status,.refund-alert-status{color:#fff;background:#8a241b;border-radius:5px;margin:0;padding:8px 14px;font-size:18px;font-weight:800;line-height:1.5;display:inline-block}.refund-alert .refund-alert-label{font-size:18px;font-weight:700}.refund-alert-amount{font-variant-numeric:tabular-nums;margin-top:8px;font-size:clamp(32px,5vw,44px);font-weight:800;line-height:1.3;display:block}.payment-status-panel{color:#392a22;background:#fff1d9;border:2px solid #795234;border-radius:8px;margin-block:24px;padding:20px}.payment-status-list{gap:16px;margin:0;display:grid}.payment-status-list>div{background:#fffefa;border:1px solid #a17750;border-radius:6px;padding:16px}.payment-status-list dt{margin-bottom:8px;font-size:18px;font-weight:700}.payment-status-list dd{flex-wrap:wrap;align-items:center;gap:12px;margin:0;display:flex}.payment-state{color:#fff;background:#674022;border-radius:5px;padding:8px 16px;font-size:20px;line-height:1.5;display:inline-block}.payment-state[data-status=PAID],.payment-state[data-status=VERIFIED]{background:#17452d}.payment-state[data-status=FAILED],.payment-state[data-status=REJECTED]{background:#812b24}.payment-method{font-size:16px;font-weight:600}.payment-slip-button{color:#fff;text-align:center;background:#392a22;border:2px solid #392a22;justify-content:center;gap:12px;width:100%;min-height:56px;margin-top:20px;padding:14px 18px;font-size:18px;font-weight:700;display:flex}.payment-slip-button:hover{color:#fff;background:#5b3b27;border-color:#5b3b27}.payment-slip-button:focus-visible{outline-offset:4px;outline:3px solid #392a22}.stay-dates{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:18px;display:grid}.stay-dates>div{border:1px solid var(--line);background:#f6eddf;border-radius:6px;padding:14px}.stay-dates small,.stay-dates strong{display:block}.stay-dates small{margin-bottom:6px;font-weight:700}.stay-dates strong{overflow-wrap:anywhere}.summary-total{background:#f0e0ca;border:2px solid #795234;border-radius:6px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:18px;display:flex}.summary-total span{font-size:18px}.summary-total strong{font-size:30px}.auth-form h1{margin-top:0}.narrow>details{margin-top:20px}.narrow>details>summary{cursor:pointer;min-height:48px;padding:12px 0;font-size:1rem;font-weight:700}.auth-form>.muted:first-of-type{margin-bottom:28px}.table-scroll:focus-visible{outline-offset:2px}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}@media (max-width:900px){.site-header{flex-wrap:wrap;gap:14px 20px;padding:18px 24px}.site-header nav{border-top:1px solid var(--line);order:3;justify-content:flex-start;width:100%;padding-top:12px}.site-header>.brand{margin-right:auto}.search{grid-template-columns:repeat(2,minmax(0,1fr))}.search button{width:100%}.split{grid-template-columns:minmax(0,1fr) minmax(260px,.9fr);gap:24px}.room-detail-grid{grid-template-columns:minmax(0,1fr);grid-template-areas:"image""booking""description"}.room-booking-panel,.booking-page .split aside{position:static}.booking-page .split{grid-template-columns:minmax(0,1fr)}.booking-page .split aside{order:-1}.customer-booking-card{grid-template-columns:minmax(0,1fr);gap:20px}.customer-booking-action{border-left:0;border-top:1px solid var(--line);padding:20px 0 0}.admin-nav{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:640px){.site-header{padding:16px}.site-header nav{grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;gap:8px;display:grid}.site-header nav a,.site-header nav button{text-align:center;border:1px solid #bda68e;border-radius:6px;justify-content:center;width:100%;padding-inline:10px}nav a,.site-footer a{padding-inline:9px}.brand{font-size:22px}.brand span{letter-spacing:.12em;font-size:13px}.wrap,.hero .wrap{width:min(100% - 32px,1200px);padding-block:32px}.hero{min-height:390px}.hero img{opacity:.34;width:100%!important}.hero:after{background:#60422f88}.hero h1{font-size:clamp(42px,12vw,56px)}.hero-search{margin-top:-20px}.search-intro{padding:18px 18px 0}.search{grid-template-columns:minmax(0,1fr);gap:14px;padding:18px}.qr-report-search{grid-template-columns:minmax(0,1fr)}.grid,.split{grid-template-columns:minmax(0,1fr);gap:18px}.rooms-page .room-card{display:flex}.rooms-page .room-card>img{height:auto;min-height:0}.rooms-page .room-card-footer{flex-direction:column;align-items:stretch;gap:12px}.rooms-page .room-card-footer .button{width:100%}.booking-page .split aside{order:-1}.booking-page .split>form{padding:20px}.booking-steps{gap:8px}.booking-steps li{flex-direction:column;gap:8px;padding:12px 8px}.booking-steps small{margin-top:2px}.checkout-fields,.checkout-extras{margin-block:24px;padding:16px}.checkout-actions>button{width:100%}.stay-dates{grid-template-columns:minmax(0,1fr)}.room-type-selection{padding:20px}.room-type-continue{padding:18px}.room-type-continue>button{width:100%}.customer-section,.room-tour{padding:20px}.customer-page-heading{gap:16px}.customer-page-heading>.button{width:100%}.customer-payment-details{padding:16px}.customer-payment-details>div{grid-template-columns:minmax(0,1fr);gap:4px}.customer-login-page .auth-form{padding:24px 20px}.customer-login-page .actions>.button{width:100%}.room-booking-panel .search{grid-template-columns:minmax(0,1fr)}.room-detail-grid>.detail-image{aspect-ratio:3/2}.card img{aspect-ratio:4/3;height:auto}.pad,.auth-form{padding:20px}.section-head{margin-top:40px}.home-story{padding:22px}.stats{grid-template-columns:repeat(2,minmax(0,1fr))}.stats .card{padding:16px}.site-footer{flex-direction:column;align-items:flex-start;gap:12px;margin-top:48px;padding:24px 16px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
