.checkout-page { min-height:100vh; background:#e8e3d9; color:#19211c; }
.checkout-header { min-height:84px; padding:16px clamp(20px,5vw,72px); display:flex; align-items:center; justify-content:space-between; gap:24px; border-bottom:1px solid #c9c3b8; background:rgba(241,238,230,.94); backdrop-filter:blur(16px); position:sticky; top:0; z-index:10; }
.checkout-header>a:last-child { color:#4f5851; font-size:12px; font-weight:700; }
.checkout-header .brand-copy small,.order-status-page .brand-copy small { color:#697069; }
.checkout-shell { width:min(1260px,calc(100% - 40px)); margin:0 auto; padding:clamp(52px,7vw,96px) 0; }
.checkout-intro { max-width:850px; margin-bottom:45px; }
.checkout-intro>p { margin:0 0 16px; color:#ef5c32; font:750 9px/1 var(--font-mono-ui); letter-spacing:.14em; }
.checkout-intro h1 { margin:0; font-size:clamp(42px,6vw,78px); line-height:.98; letter-spacing:-.06em; }
.checkout-intro>span { max-width:660px; margin-top:20px; display:block; color:#626b64; font-size:15px; line-height:1.7; }
.checkout-grid { display:grid; grid-template-columns:minmax(280px,.72fr) minmax(480px,1.28fr); align-items:start; gap:28px; }
.basket-checkout-grid { display:grid; grid-template-columns:minmax(380px,.92fr) minmax(500px,1.08fr); align-items:start; gap:28px; }
.basket-panel { padding:clamp(22px,3.2vw,38px); border:1px solid #c8c2b6; background:#f5f2eb; box-shadow:0 16px 42px rgba(55,49,40,.06); position:sticky; top:108px; }
.basket-panel-head { padding-bottom:22px; display:flex; align-items:flex-start; justify-content:space-between; gap:20px; border-bottom:1px solid #d3cdc1; }
.basket-panel-head>span { display:grid; gap:8px; }
.basket-panel-head small { color:#ef5c32; font:750 9px/1 var(--font-mono-ui); }
.basket-panel-head h2 { margin:0; font-size:clamp(27px,3vw,38px); letter-spacing:-.045em; }
.basket-panel-head>b { max-width:180px; padding:8px 10px; border:1px solid #c9c2b6; color:#6c746d; font:750 8px/1.35 var(--font-mono-ui); letter-spacing:.035em; text-align:right; }
.basket-lines { display:grid; }
.basket-line { padding:21px 0; display:grid; grid-template-columns:88px minmax(0,1fr) auto; gap:16px; align-items:start; border-bottom:1px solid #d3cdc1; }
.basket-line-image { width:88px; aspect-ratio:1; position:relative; display:grid; place-items:center; overflow:hidden; background:#dfd9ce; }
.basket-line-image img { width:100%; height:100%; object-fit:cover; }
.basket-line-image span { color:#ef5c32; font-size:30px; font-weight:900; }
.basket-line-copy>small { color:#ef5c32; font:750 8px/1 var(--font-mono-ui); letter-spacing:.06em; }
.basket-line-copy h3 { margin:8px 0 4px; font-size:16px; line-height:1.25; letter-spacing:-.025em; }
.basket-line-copy>p { margin:0; color:#737b73; font-size:10px; }
.basket-line>strong { padding-top:18px; font-size:15px; white-space:nowrap; }
.basket-line-controls { margin-top:14px; display:flex; align-items:end; gap:14px; }
.basket-line-controls label { display:grid; gap:5px; color:#697169; font:700 8px/1 var(--font-mono-ui); letter-spacing:.06em; text-transform:uppercase; }
.basket-line-controls select { min-width:65px; min-height:34px; padding:0 9px; border:1px solid #aaa499; border-radius:0; background:#fff; color:#19211c; }
.basket-line-controls button { min-height:34px; padding:0; border:0; border-bottom:1px solid #a9a299; background:transparent; color:#7a4d43; cursor:pointer; font-size:10px; font-weight:700; }
.basket-line-controls button:disabled,.basket-line-controls select:disabled { opacity:.5; cursor:wait; }
.basket-add-more { margin-top:20px; min-height:46px; padding:0 14px; display:flex; align-items:center; justify-content:center; border:1px solid #a9a399; color:#344039; font-size:11px; font-weight:750; }
.basket-add-more:hover { border-color:#ef5c32; color:#d94e29; }
.basket-total { margin-top:20px; padding:20px 0; display:flex; align-items:end; justify-content:space-between; gap:20px; border-top:1px solid #d3cdc1; border-bottom:1px solid #d3cdc1; }
.basket-total span { color:#70786f; font-size:10px; text-transform:uppercase; }
.basket-total strong { font-size:27px; letter-spacing:-.04em; }
.basket-customer-form { min-width:0; }
.order-summary,.customer-order-form,.pok-checkout,.payment-success,.checkout-message { border:1px solid #c8c2b6; background:#f5f2eb; box-shadow:0 16px 42px rgba(55,49,40,.06); }
.order-summary { padding:22px; position:sticky; top:108px; }
.order-photo { aspect-ratio:4/3; margin-bottom:22px; display:grid; place-items:center; overflow:hidden; background:#ded8cc; }
.order-photo img { width:100%; height:100%; object-fit:contain; }
.order-photo>span { color:#ef5c32; font-size:62px; font-weight:900; }
.order-summary>p { margin:0; color:#ef5c32; font:750 9px/1 var(--font-mono-ui); letter-spacing:.1em; }
.order-summary>h2 { margin:12px 0 8px; font-size:24px; letter-spacing:-.035em; }
.order-summary>small { color:#717970; font-size:11px; }
.order-summary>div:not(.order-photo) { margin-top:25px; padding:20px 0; display:flex; align-items:end; justify-content:space-between; gap:20px; border-top:1px solid #d3cdc1; border-bottom:1px solid #d3cdc1; }
.order-summary>div span { color:#70786f; font-size:10px; text-transform:uppercase; }
.order-summary>div strong { font-size:24px; letter-spacing:-.04em; }
.checkout-rate-note { margin-top:11px; display:block; color:#6f786f; font-size:8px; line-height:1.55; text-decoration:none; }
.checkout-rate-note:hover { color:#e85e37; }
.order-summary ul { margin:20px 0 0; padding:0; display:grid; gap:10px; list-style:none; color:#5d675f; font-size:10px; }
.customer-order-form { padding:clamp(28px,5vw,56px); }
.customer-order-form>div:first-child,.pok-checkout-head { margin-bottom:34px; }
.customer-order-form>div:first-child small,.pok-checkout-head>small { color:#ef5c32; font:750 9px/1 var(--font-mono-ui); }
.customer-order-form h2,.pok-checkout h2,.payment-success h2,.checkout-message h2 { margin:10px 0 0; font-size:clamp(28px,4vw,43px); letter-spacing:-.045em; }
.customer-order-form>label { margin-bottom:22px; display:grid; gap:9px; color:#667067; font:700 9px/1.4 var(--font-mono-ui); letter-spacing:.06em; text-transform:uppercase; }
.customer-order-form input:not([type="checkbox"]) { width:100%; padding:15px 0; border:0; border-bottom:1px solid #aaa499; outline:0; border-radius:0; background:transparent; color:#19211c; font-size:16px; }
.customer-order-form input:focus { border-color:#ef5c32; }
.checkout-honeypot { width:1px!important; height:1px!important; position:absolute!important; left:-10000px!important; overflow:hidden!important; opacity:0!important; pointer-events:none!important; }
.pickup-choice { margin:30px 0 22px; padding:18px; display:grid; grid-template-columns:28px 1fr; gap:13px; border:1px solid #b9b3a8; background:#ebe7de; }
.pickup-choice>b { width:24px; height:24px; display:grid; place-items:center; border-radius:50%; background:#2c6d46; color:white; font-size:11px; }
.pickup-choice>span { display:grid; gap:7px; }
.pickup-choice strong { font-size:13px; }
.pickup-choice small { color:#687169; font-size:10px; line-height:1.55; }
.checkout-consent { grid-template-columns:18px 1fr; align-items:start; text-transform:none!important; letter-spacing:0!important; line-height:1.55!important; }
.checkout-consent input { width:17px; height:17px; margin:1px 0 0; accent-color:#ef5c32; }
.checkout-consent a { color:#ef5c32; }
.customer-order-form>button { width:100%; min-height:60px; padding:0 20px; display:flex; justify-content:space-between; align-items:center; border:0; background:#ef5c32; color:white; cursor:pointer; font-weight:800; }
.customer-order-form>button:disabled { opacity:.58; cursor:wait; }
.pok-checkout { padding:clamp(24px,4vw,48px); }
.pok-checkout-head p { max-width:650px; margin:14px 0 0; color:#687169; font-size:11px; line-height:1.65; }
.pok-checkout-head>b { margin-top:15px; padding:9px 11px; display:inline-block; border:1px solid #bd8a23; color:#8e6410; font:800 8px/1 var(--font-mono-ui); letter-spacing:.08em; }
.reservation-control { margin:0 0 28px; padding:18px; display:grid; grid-template-columns:minmax(145px,.45fr) 1fr auto; align-items:center; gap:18px; border:1px solid #b9b3a8; background:#ebe7de; }
.reservation-control>div { display:grid; gap:7px; }
.reservation-control small { color:#697169; font:700 8px/1.3 var(--font-mono-ui); letter-spacing:.06em; text-transform:uppercase; }
.reservation-control strong { font-size:27px; letter-spacing:-.04em; font-variant-numeric:tabular-nums; }
.reservation-control p { margin:0; color:#5f685f; font-size:10px; line-height:1.55; }
.reservation-control>a { padding:12px 14px; background:#19211c; color:#fff; font-size:10px; font-weight:750; white-space:nowrap; }
#teko-pok-payment-form { padding-top:28px; border-top:1px solid #d1cbc0; }
#teko-pok-payment-form.is-hidden { display:none; }
#pok-payment-container { color:#19211c; font-family:var(--font-display),Arial,sans-serif; }
#pok-payment-container .pok-payment-form { max-width:none; }
#pok-payment-container .pok-payment-button { min-height:56px; border-radius:0; background:#ef5c32; font-weight:800; }
#pok-payment-container .pok-payment-input { border-radius:0; border-color:#aaa499; background:white; }
#pok-payment-container .pok-payment-input:focus { border-color:#ef5c32; }
#pok-payment-container .pok-payment-error-message { border-radius:0; }
.checkout-error { margin:0 0 24px; padding:14px 16px; border:1px solid #b76565; background:#f5dddd; color:#842f2f; font-size:11px; line-height:1.55; }
.payment-verifying,.checkout-loading { min-height:300px; display:grid; place-items:center; align-content:center; gap:14px; text-align:center; }
.payment-verifying i,.checkout-loading i { width:34px; height:34px; border:2px solid #b8b1a5; border-top-color:#ef5c32; border-radius:50%; animation:checkout-spin .8s linear infinite; }
.payment-verifying span { font-size:16px; font-weight:750; }
.payment-verifying small { color:#737b73; font:650 9px/1 var(--font-mono-ui); }
.payment-pending span { max-width:560px; color:#4f5851; font-size:14px; line-height:1.65; }
.payment-pending a { padding:13px 16px; background:#19211c; color:white; font-size:11px; font-weight:750; }
.reservation-exit { margin-top:26px; padding-top:20px; display:grid; gap:10px; border-top:1px solid #d1cbc0; }
.reservation-exit button { width:100%; min-height:48px; padding:0 16px; border:1px solid #938d83; background:transparent; color:#303832; cursor:pointer; font-size:11px; font-weight:750; }
.reservation-exit button:hover { border-color:#ef5c32; color:#d94e29; }
.reservation-exit button:disabled { opacity:.55; cursor:wait; }
.reservation-exit small { color:#757c75; font-size:9px; line-height:1.55; }
.reservation-expired { min-height:250px; padding:30px; display:grid; place-items:center; align-content:center; gap:20px; border-top:1px solid #d1cbc0; text-align:center; }
.reservation-expired p { max-width:520px; margin:0; color:#5f685f; font-size:14px; line-height:1.65; }
.reservation-expired a,.reservation-expired button { padding:14px 17px; border:0; background:#19211c; color:#fff; cursor:pointer; font-size:11px; font-weight:750; }
@keyframes checkout-spin { to { transform:rotate(360deg); } }
.payment-success { min-height:520px; padding:clamp(34px,6vw,76px); display:grid; place-items:start; align-content:center; }
.payment-success>span { width:58px; height:58px; display:grid; place-items:center; border-radius:50%; background:#2c6d46; color:white; font-size:24px; }
.payment-success>small { margin-top:24px; color:#687169; font:700 9px/1 var(--font-mono-ui); letter-spacing:.08em; }
.payment-success p { max-width:620px; color:#616a62; line-height:1.7; }
.payment-success a,.checkout-message a { margin-top:18px; padding:15px 18px; display:inline-flex; background:#19211c; color:white; font-size:12px; font-weight:750; }
.checkout-message { padding:clamp(36px,7vw,82px); }
.checkout-footer { min-height:90px; padding:20px clamp(20px,5vw,72px); display:flex; align-items:center; justify-content:space-between; gap:20px; border-top:1px solid #c9c3b8; color:#70776f; font-size:10px; }
.order-status-page { min-height:100vh; padding:clamp(24px,5vw,70px); display:grid; place-items:center; align-content:center; background:#e8e3d9; color:#19211c; }
.order-status-page>.brand { margin-bottom:36px; }
.order-status-page>section { width:min(720px,100%); padding:clamp(32px,7vw,78px); border:1px solid #c8c2b6; background:#f5f2eb; box-shadow:0 18px 50px rgba(55,49,40,.08); }
.order-status-page section>small { display:block; margin:24px 0 11px; color:#ef5c32; font:750 9px/1 var(--font-mono-ui); letter-spacing:.1em; }
.order-status-page h1 { margin:0; font-size:clamp(36px,6vw,62px); line-height:1; letter-spacing:-.055em; }
.order-status-page section>p { color:#687169; line-height:1.65; }
.order-status-page section>strong { display:block; margin:25px 0; font-size:28px; }
.order-status-page section>.order-item-list { margin:24px 0; padding:0; display:grid; grid-template-columns:1fr; gap:0; background:transparent; }
.order-item-list>span { padding:13px 0; display:grid; grid-template-columns:34px minmax(0,1fr) auto; gap:12px; align-items:center; border-bottom:1px solid #d3cdc1; }
.order-item-list>span>b { width:auto; height:auto; border-radius:0; background:transparent; color:#ef5c32; font-size:12px; }
.order-item-list em { display:grid; gap:4px; color:#303832; font-style:normal; font-size:12px; }
.order-item-list em small { color:#747c74; font:700 8px/1 var(--font-mono-ui); }
.order-item-list>span>strong { font-size:12px; white-space:nowrap; }
.order-status-page section>div { margin:24px 0; padding:18px; display:grid; grid-template-columns:30px 1fr; gap:12px; align-items:center; background:#e9e5dc; color:#5e675f; font-size:11px; }
.order-status-page section>div b { width:28px; height:28px; display:grid; place-items:center; border-radius:50%; background:#2c6d46; color:white; }
.order-status-page section>a { padding:15px 18px; display:inline-block; background:#19211c; color:white; font-size:12px; font-weight:750; }
.order-status-badge { width:max-content; margin-bottom:18px; padding:8px 10px; display:block; background:#d9d4ca; color:#646c65; font:800 8px/1 var(--font-mono-ui); text-transform:uppercase; }
.order-status-badge.paid,.order-status-badge.processing,.order-status-badge.ready,.order-status-badge.completed { background:#d6e8dc; color:#286340; }
.order-status-badge.cancel_requested,.order-status-badge.expired,.order-status-badge.cancelled { background:#eee0c6; color:#79591b; }
.order-status-page section>.order-resume-panel { grid-template-columns:100px 1fr; background:#e2eadf; }
.order-status-page section>.order-resume-panel b { width:auto; height:auto; border-radius:0; background:transparent; color:#2c6d46; font-size:24px; font-variant-numeric:tabular-nums; }
.order-status-page section>.order-status-actions { margin:28px 0 0; padding:0; display:flex; flex-wrap:wrap; grid-template-columns:none; gap:10px; background:transparent; }
.order-status-actions a,.order-status-actions button { min-height:46px; padding:0 16px; display:inline-flex; align-items:center; border:1px solid #19211c; background:#19211c; color:white; cursor:pointer; font-size:11px; font-weight:750; }
.order-status-actions button { background:transparent; color:#19211c; }
.order-status-actions button:disabled { opacity:.55; cursor:wait; }
@media (max-width:800px) {
  .checkout-header { position:static; }
  .checkout-header>a:last-child { font-size:0; }
  .checkout-header>a:last-child::after { content:"←"; font-size:22px; }
  .checkout-shell { width:min(100% - 24px,660px); padding:38px 0 58px; }
  .checkout-grid { grid-template-columns:1fr; }
  .basket-checkout-grid { grid-template-columns:1fr; }
  .basket-panel { position:static; }
  .order-summary { position:static; }
  .reservation-control { grid-template-columns:1fr; }
  .reservation-control>a { width:max-content; }
  .checkout-footer { align-items:flex-start; flex-direction:column; }
}
@media (max-width:520px) {
  .basket-panel { padding:20px 16px; }
  .basket-panel-head { align-items:flex-start; flex-direction:column; }
  .basket-panel-head>b { text-align:left; }
  .basket-line { grid-template-columns:72px minmax(0,1fr); }
  .basket-line-image { width:72px; }
  .basket-line>strong { grid-column:2; padding-top:0; }
  .basket-total strong { font-size:23px; }
}
