/* Bo sung cho layout goc: dat lich trong bang gia + hoa thuong hieu */
body.in-booking .floating{opacity:0;visibility:hidden;transition:opacity .2s,visibility .2s}
.steps{scroll-margin-top:100px}
.flower{position:absolute;pointer-events:none;user-select:none;object-fit:contain}
.flower-hero{z-index:3;top:62px;right:0;width:clamp(130px,17vw,250px);height:auto;transform:scaleX(-1)}
.hero-copy{z-index:2}

.booking{align-items:start}
.booking .price-heading .promise{margin-top:18px;padding:10px 14px;border:1px solid rgba(115,238,216,.35);border-radius:10px;color:var(--mint-bright);font-size:12px;font-weight:600}
.booking-flow{min-width:0}
.steps{display:flex;gap:6px;margin:0 0 26px;padding:0;list-style:none}
.steps li{display:flex;align-items:center;gap:8px;padding:7px 14px 7px 7px;border-radius:999px;background:rgba(255,255,255,.06);color:#a9cac4;font-size:12px;font-weight:600}
.steps li span{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:rgba(255,255,255,.1);font-size:11px}
.steps li.active{background:var(--mint);color:var(--deep)}
.steps li.active span{background:var(--deep);color:var(--mint-bright)}
.steps li.done{color:var(--mint-bright)}

.price-row.pick{position:relative;margin:2px -10px;padding:10px;border-radius:9px;cursor:pointer;transition:background .2s}
.price-row.pick:hover{background:rgba(255,255,255,.07)}
.price-row.pick input{position:absolute;opacity:0;width:0;height:0}
.price-row.pick span{position:relative;max-width:78%;padding-left:28px}
.price-row.pick span:before{content:"";position:absolute;left:0;top:.1em;width:17px;height:17px;border:1.5px solid rgba(255,255,255,.4);border-radius:5px}
.price-row.pick input:checked~span:before{border-color:var(--mint);background:var(--mint)}
.price-row.pick input:checked~span:after{content:"";position:absolute;left:6px;top:.26em;width:5px;height:9px;border:solid var(--deep);border-width:0 2px 2px 0;transform:rotate(42deg)}
.price-row.pick:has(input:checked){background:rgba(69,214,189,.13)}
.price-row.pick input:focus-visible~span:before{outline:2px solid var(--mint-bright);outline-offset:2px}

.step-nav{position:sticky;bottom:calc(10px + env(safe-area-inset-bottom));z-index:5;display:flex;justify-content:flex-end;align-items:center;gap:16px;margin-top:24px}
.step[data-step="2"] .step-nav,.step[data-step="3"] .step-nav{position:static}
.booking .button.light:disabled{opacity:.4;cursor:not-allowed;transform:none;box-shadow:none}
.booking .button{font-size:13px}
.back{border:0;background:none;color:#b8d4cf;font-size:13px;font-weight:600;cursor:pointer;text-decoration:underline}

.summary{margin-top:20px;padding:18px;border-radius:var(--radius);background:rgba(255,255,255,.07)}
.summary h3{margin:0 0 8px;color:var(--mint-bright);font-size:13px;font-weight:700}
.summary-items{margin:0;padding:0;list-style:none;font-size:13px}
.summary-items li{display:flex;justify-content:space-between;gap:12px;padding:3px 0}
.summary-when{margin:10px 0 0;color:var(--mint-bright);font-size:13px;font-weight:700}
.summary-total{margin:10px 0 0;padding-top:10px;border-top:1px solid rgba(255,255,255,.15);font-size:14px;font-weight:700}

.step[data-step="2"]:not([hidden]){display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:22px}
.step[data-step="2"] .step-nav{grid-column:1/-1}
.cal,.slots-box{padding:22px;border-radius:var(--radius);background:rgba(255,255,255,.055)}
.cal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
.cal-head b{font-size:15px;font-weight:700}
.cal-head button{width:40px;height:40px;border:0;border-radius:50%;background:rgba(255,255,255,.08);color:#fff;font-size:20px;cursor:pointer}
.cal-head button:disabled{opacity:.3;cursor:default}
.cal-week,.cal-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;text-align:center}
.cal-week{margin-bottom:6px;color:#a9cac4;font-size:11px;font-weight:700}
.cal-days button{aspect-ratio:1;min-height:38px;border:0;border-radius:9px;background:rgba(255,255,255,.07);color:#f2fbf9;font-size:13px;font-weight:600;cursor:pointer;transition:background .15s}
.cal-days button:hover:not(:disabled){background:rgba(69,214,189,.28)}
.cal-days button:disabled{background:none;color:rgba(255,255,255,.22);cursor:default}
.cal-days button.selected{background:var(--mint);color:var(--deep)}
.slots-title{margin:0 0 14px;color:var(--mint-bright);font-size:14px;font-weight:700}
.slots{display:grid;grid-template-columns:repeat(auto-fill,minmax(74px,1fr));gap:7px}
.slots button{min-height:44px;border:1px solid rgba(255,255,255,.2);border-radius:9px;background:none;color:#f2fbf9;font-size:13px;font-weight:600;cursor:pointer}
.slots button:hover{border-color:var(--mint)}
.slots button.selected{border-color:var(--mint);background:var(--mint);color:var(--deep)}
.slots p{grid-column:1/-1;margin:0;color:#b8d4cf;font-size:13px}

.fields{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.fields label{display:flex;flex-direction:column;gap:6px;color:#b8d4cf;font-size:12px;font-weight:600}
.fields .wide{grid-column:1/-1}
.fields input,.fields textarea{width:100%;min-height:48px;padding:12px 14px;border:1px solid rgba(255,255,255,.2);border-radius:10px;background:rgba(255,255,255,.06);color:#fff;font:16px/1.4 var(--sans)}
.fields input:focus,.fields textarea:focus{border-color:var(--mint);outline:none}
.fields input.invalid{border-color:#ffb4a2}
.hp{position:absolute!important;left:-9999px}
.privacy{margin:16px 0 0;color:#a9cac4;font-size:12px}
.privacy a{color:var(--mint-bright);text-decoration:underline}
.form-error{margin:14px 0 0;padding:11px 14px;border-radius:10px;background:rgba(255,180,162,.14);color:#ffd5ca;font-size:13px;font-weight:600}
.done{padding:40px 30px;border-radius:var(--radius);background:rgba(69,214,189,.12)}
.done h3{margin-bottom:12px;font:400 34px/1.2 var(--display);color:var(--mint-bright)}

.map-embed{position:relative;background:var(--mint-soft)}
.map-consent{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;height:100%;min-height:360px;padding:24px;text-align:center;color:var(--muted);font-size:14px}
.map-consent p{margin:0}
.footer-legal{display:inline-flex;gap:16px}
.footer-legal a{text-decoration:underline}

@media(max-width:760px){
  .step[data-step="2"]:not([hidden]){grid-template-columns:1fr}
  .fields{grid-template-columns:1fr}
  .steps li{padding-right:10px;font-size:11px}
  .flower-hero{width:96px;top:70px}
  .cal,.slots-box{padding:16px}
  .price-columns{grid-template-columns:1fr;gap:0}
  .price-row.pick span{max-width:70%}
}
