body.cb-preview { margin:0; background:#f6f3ec; }
.cardi-booking .cb-date-field { position:relative; }
.cardi-booking .cb-date-control { position:relative; }
.cardi-booking .cb-date-control input { padding-right:52px; }
.cardi-booking .cb-date-control input::placeholder { font-size:16px; }
.cardi-booking .cb-calendar-toggle { position:absolute; inset:2px 2px 2px auto; width:44px; min-height:44px; padding:10px; border:0; border-radius:2px; background:transparent; color:var(--cb-ink); cursor:pointer; }
.cardi-booking .cb-calendar-toggle svg { display:block; width:21px; height:21px; }
.cardi-booking .cb-calendar-toggle:hover:not(:disabled) { background:#edf0e8; }
.cardi-booking .cb-calendar { position:absolute; top:82px; left:0; z-index:10; width:min(320px,calc(100vw - 68px)); padding:8px; background:var(--cb-paper); border:1px solid #858e7c; border-radius:5px; box-shadow:0 10px 30px #243c3026; }
.cardi-booking .cb-calendar-nav { display:flex; align-items:center; justify-content:space-between; gap:6px; margin-bottom:5px; }
.cardi-booking .cb-calendar-nav strong { font-size:15px; }
.cardi-booking .cb-calendar-nav button { width:44px; height:44px; font-size:26px; }
.cardi-booking .cb-calendar button { padding:0; border:0; border-radius:3px; background:transparent; color:var(--cb-ink); cursor:pointer; }
.cardi-booking .cb-calendar button:disabled { color:#70766b; opacity:.55; cursor:default; }
.cardi-booking .cb-calendar table { width:100%; border-collapse:collapse; table-layout:fixed; }
.cardi-booking .cb-calendar th { padding:7px 0; font-size:12px; color:var(--cb-muted); text-align:center; }
.cardi-booking .cb-calendar td { padding:0; text-align:center; border:0; }
.cardi-booking .cb-calendar td button { display:block; width:100%; min-height:40px; font-size:14px; }
.cardi-booking .cb-calendar td button:hover:not(:disabled),.cardi-booking .cb-calendar button:focus-visible { background:#e8eddf; }
.cardi-booking .cb-calendar td .cb-day-selected { background:var(--cb-green); color:var(--cb-paper); }
.cardi-booking .cb-calendar td .cb-day-selected:hover:not(:disabled),.cardi-booking .cb-calendar td .cb-day-selected:focus-visible { background:#355140; color:var(--cb-paper); }
.cardi-booking .cb-calendar td .cb-day-outside:not(.cb-day-selected) { color:var(--cb-muted); }
.cardi-booking .cb-calendar .cb-calendar-close { display:block; width:100%; min-height:44px; font-size:13px; border-top:1px solid var(--cb-line); margin-top:8px; text-decoration:underline; }
.cardi-booking { --cb-green:#243c30; --cb-ink:#24392e; --cb-muted:#51594f; --cb-line:#d9ddd4; --cb-paper:#fffefa; --cb-error:#963a2b; color:var(--cb-ink); font:16px/1.55 Arial,Helvetica,sans-serif; max-width:1280px; margin:auto; padding:0 48px; }
.cardi-booking *, .cardi-booking *::before, .cardi-booking *::after { box-sizing:border-box; }
.cardi-booking [hidden] { display:none!important; }
.cardi-booking a { color:inherit; }
.cardi-booking button,.cardi-booking input,.cardi-booking select,.cardi-booking textarea { font:inherit; }
.cardi-booking button,.cardi-booking a,.cardi-booking input,.cardi-booking select,.cardi-booking textarea { -webkit-tap-highlight-color:transparent; }
.cardi-booking :focus-visible { outline:3px solid #95632a; outline-offset:4px; }
.cardi-booking .cb-header { display:flex; align-items:center; justify-content:space-between; min-height:110px; border-bottom:1px solid var(--cb-line); gap:20px; }
.cardi-booking .cb-brand { text-decoration:none; font:38px/1 Georgia,'Times New Roman',serif; letter-spacing:5px; }
.cardi-booking .cb-brand span { display:block; font:9px/2.7 Arial,sans-serif; letter-spacing:2px; }
.cardi-booking .cb-back { font-size:13px; text-decoration:none; padding:12px 0; }
.cardi-booking .cb-back span { margin-left:15px; font-size:20px; }
.cardi-booking .cb-layout { display:grid; grid-template-columns:minmax(0,.85fr) minmax(0,1.2fr); gap:70px; padding:58px 0 64px; align-items:start; }
.cardi-booking .cb-intro { padding-top:20px; }
.cardi-booking .cb-eyebrow { margin:0 0 17px; font-size:10px; font-weight:600; letter-spacing:2.1px; }
.cardi-booking .cb-intro .cb-eyebrow { display:flex; gap:12px; align-items:center; }
.cardi-booking .cb-eyebrow>span { display:inline-block; width:22px; height:1px; background:currentColor; }
.cardi-booking h1 { margin:0; font:normal clamp(42px,5.5vw,73px)/1.07 Georgia,'Times New Roman',serif; letter-spacing:-2px; }
.cardi-booking h1 em { font-weight:normal; color:#637752; }
.cardi-booking .cb-lead { margin:27px 0 34px; max-width:380px; color:var(--cb-muted); font-size:15px; line-height:1.85; }
.cardi-booking .cb-story { min-height:358px; padding:28px 32px; background:#263e32; color:#e7e4cb; position:relative; overflow:hidden; border-radius:2px 2px 90px 2px; }
.cardi-booking .cb-table-art { width:100%; height:190px; opacity:.75; }
/* Keep Vietnamese accented letters in one font instead of Georgia glyph fallback. */
.cardi-booking .cb-story p { margin:8px 0 22px; font:27px/1.35 'Times New Roman',serif; }
.cardi-booking .cb-story div>span { font-size:9px; letter-spacing:2px; }
.cardi-booking .cb-intro-note { color:var(--cb-muted); font-size:12px; margin-top:24px; }
.cardi-booking .cb-intro-note span { margin-right:10px; font-size:21px; vertical-align:middle; }
.cardi-booking .cb-card { min-width:0; background:var(--cb-paper); border:1px solid #e4e4d9; padding:34px 36px 28px; border-radius:5px; box-shadow:0 12px 40px #243c3005; }
.cardi-booking .cb-card-heading { display:flex; justify-content:space-between; align-items:center; gap:14px; }
.cardi-booking .cb-card-heading .cb-eyebrow { margin-bottom:8px; color:var(--cb-muted); font-size:9px; letter-spacing:1.8px; }
.cardi-booking h2 { font:normal 32px/1.3 Georgia,serif; margin:0; letter-spacing:-.5px; }
.cardi-booking .cb-mark { font:italic 34px Georgia,serif; color:#829178; border:1px solid #dfe3d6; border-radius:50%; width:50px; height:50px; display:grid; place-items:center; flex-shrink:0; }
.cardi-booking .cb-subtitle { font-size:13px; color:var(--cb-muted); margin:12px 0 29px; }
.cardi-booking .cb-section-title { display:flex; align-items:center; gap:10px; font-size:14px; font-weight:600; margin:0 0 19px; padding:0; }
.cardi-booking .cb-section-title span { font-size:10px; font-weight:400; border:1px solid #d9dfd0; color:#637752; padding:2px 6px; border-radius:3px; }
.cardi-booking fieldset { padding:0; margin:0; border:0; min-width:0; }
.cardi-booking .cb-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:17px 16px; }
.cardi-booking .cb-wide { grid-column:1/-1; }
.cardi-booking .cb-field { min-width:0; }
.cardi-booking label { display:block; font-size:14px; margin-bottom:7px; font-weight:600; }
.cardi-booking label>span:not(.cb-optional) { color:#7b5834; }
.cardi-booking .cb-optional { color:var(--cb-muted); font-size:12px; font-weight:400; }
.cardi-booking input,.cardi-booking select,.cardi-booking textarea { display:block; width:100%; max-width:100%; min-width:0; min-height:48px; border:1px solid #858e7c; border-radius:3px; background:#fffefa; color:var(--cb-ink); padding:11px 12px; font-size:16px; line-height:1.4; box-shadow:none; }
.cardi-booking select { padding-right:30px; }
.cardi-booking input::placeholder,.cardi-booking textarea::placeholder { color:#686e64; opacity:1; font-size:13px; }
.cardi-booking textarea { resize:vertical; min-height:88px; }
.cardi-booking input:focus,.cardi-booking select:focus,.cardi-booking textarea:focus { border-color:var(--cb-green); }
.cardi-booking [aria-invalid=true] { border-color:var(--cb-error); }
.cardi-booking .cb-hint { margin:6px 0 0; font-size:12px; line-height:1.6; color:var(--cb-muted); }
.cardi-booking .cb-hint:empty { display:none; }
.cardi-booking .cb-time-hint { margin-top:-10px; }
.cardi-booking .cb-contact-title { border-top:1px solid #e4e6dd; margin:25px 0 19px; padding-top:23px; }
.cardi-booking .cb-field-error { margin:6px 0 0; color:var(--cb-error); font-size:12px; }
.cardi-booking .cb-privacy { font-size:12px; line-height:1.7; color:var(--cb-muted); margin:20px 0 17px; }
.cardi-booking .cb-submit { display:flex; align-items:center; justify-content:space-between; gap:14px; width:100%; min-height:53px; border:1px solid var(--cb-green); border-radius:3px; background:var(--cb-green); color:#fffefa; padding:14px 20px; font-size:14px; letter-spacing:1.5px; cursor:pointer; transition:background .15s ease; }
.cardi-booking .cb-submit:hover:not(:disabled) { background:#355140; }
.cardi-booking .cb-submit-icon { flex-shrink:0; font-size:22px; line-height:1; }
.cardi-booking button:disabled { opacity:.6; cursor:wait; }
.cardi-booking fieldset:disabled { opacity:.7; }
.cardi-booking .cb-submit-hint { margin:10px 0 0; text-align:center; font-size:12px; color:var(--cb-muted); }
.cardi-booking .cb-alert { border:1px solid #d5b7a7; border-left:3px solid var(--cb-error); background:#fff4ed; color:#773628; padding:13px; margin:12px 0 20px; font-size:13px; }
.cardi-booking .cb-load { color:var(--cb-muted); font-size:13px; margin-bottom:16px; }
.cardi-booking .cb-text-button { background:transparent; border:0; color:var(--cb-ink); text-decoration:underline; padding:12px 4px; min-height:44px; cursor:pointer; font-size:13px; }
.cardi-booking .cb-discard { display:block; margin:12px auto 0; }
.cardi-booking .cb-success { padding:32px 0 16px; text-align:center; }
.cardi-booking .cb-success-icon { display:grid; place-items:center; width:65px; height:65px; margin:0 auto 30px; border:1px solid #a7b499; border-radius:50%; color:#4b6944; font-size:27px; }
.cardi-booking .cb-success h2 { font-size:38px; line-height:1.23; margin:0 0 20px; }
.cardi-booking .cb-success>p:not(.cb-eyebrow) { font-size:14px; color:var(--cb-muted); max-width:360px; margin:0 auto; }
.cardi-booking .cb-receipt { background:#f3f4eb; border-top:1px solid #d7ddcd; border-bottom:1px solid #d7ddcd; padding:24px 12px; margin:30px 0; }
.cardi-booking .cb-receipt>span { font-size:10px; letter-spacing:1.6px; }
.cardi-booking .cb-receipt strong { display:block; overflow-wrap:anywhere; font:600 17px/1.8 monospace; margin:8px 0; }
.cardi-booking .cb-receipt p { font-size:12px; margin:12px 0 0; color:#655126; }
.cardi-booking .cb-pending-dot { display:inline-block; width:6px; height:6px; border-radius:50%; background:#8a6b32; margin-right:7px; }
.cardi-booking .cb-return { display:inline-block; margin-top:17px; padding:12px; font-size:13px; }
.cardi-booking .cb-footer { display:flex; gap:20px; justify-content:space-between; padding:25px 0; border-top:1px solid var(--cb-line); color:var(--cb-muted); font-size:10px; letter-spacing:.8px; }
.cardi-booking .cb-sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
@media(max-width:1000px) { .cardi-booking { padding:0 28px; } .cardi-booking .cb-layout { gap:32px; grid-template-columns:minmax(0,.75fr) minmax(0,1.2fr); } .cardi-booking .cb-card { padding:28px 24px; } .cardi-booking .cb-contact { grid-column:1/-1; } .cardi-booking .cb-story { padding:22px; } }
@media(max-width:740px) { .cardi-booking { padding:0 20px; } .cardi-booking .cb-header { min-height:89px; } .cardi-booking .cb-brand { font-size:31px; } .cardi-booking .cb-back { font-size:11px; } .cardi-booking .cb-back span { margin-left:7px; } .cardi-booking .cb-layout { grid-template-columns:minmax(0,1fr); gap:29px; padding:30px 0 36px; } .cardi-booking .cb-intro { padding:0; } .cardi-booking h1 { font-size:49px; line-height:1.08; letter-spacing:-1.4px; } .cardi-booking .cb-intro .cb-eyebrow { font-size:9px; margin-bottom:17px; } .cardi-booking .cb-lead { font-size:14px; margin:20px 0 0; max-width:390px; } .cardi-booking .cb-story,.cardi-booking .cb-intro-note,.cardi-booking .cb-desktop-break { display:none; } .cardi-booking .cb-card { padding:26px 20px 24px; } .cardi-booking h2 { font-size:28px; } .cardi-booking .cb-mark { width:42px; height:42px; font-size:29px; } .cardi-booking .cb-subtitle { font-size:12px; margin-bottom:25px; } .cardi-booking .cb-footer { flex-wrap:wrap; justify-content:center; font-size:9px; gap:10px 25px; } .cardi-booking .cb-footer span:nth-child(2) { display:none; } .cardi-booking .cb-success h2 { font-size:33px; } }
@media(max-width:375px) { .cardi-booking { padding:0 14px; } .cardi-booking .cb-card { padding:24px 16px; } .cardi-booking .cb-grid { column-gap:12px; } .cardi-booking .cb-eyebrow { letter-spacing:1.3px; } }
@media(prefers-reduced-motion:reduce) { .cardi-booking * { transition:none!important; scroll-behavior:auto!important; } }
@media(max-width:740px) {
  .cardi-booking { padding:0 14px; }
  .cardi-booking .cb-header { min-height:80px; }
  .cardi-booking .cb-layout { padding-top:24px; gap:22px; }
  .cardi-booking h1 { font-size:38px; line-height:1.08; letter-spacing:-1px; }
  .cardi-booking .cb-intro .cb-eyebrow { margin-bottom:10px; }
  .cardi-booking .cb-lead { display:none; }
  .cardi-booking .cb-card { padding:24px 18px; }
  .cardi-booking .cb-date-field,.cardi-booking .cb-time-field,.cardi-booking .cb-guest-field { grid-column:1/-1; }
  .cardi-booking .cb-calendar { width:100%; }
  .cardi-booking .cb-submit { min-height:56px; padding:14px 16px; gap:12px; letter-spacing:.6px; }
}
