.gpk-mobile-reservation{width:100%;min-height:52px;padding:0 16px;border:0;border-radius:14px;background:#ffd600;color:#171717;font:800 16px Golos,Arial,sans-serif;text-align:left;cursor:pointer}
.gpk-reservations-disabled .gpk-reservation-button,.gpk-reservations-disabled .gpk-reservation-mobile-fab,.gpk-reservations-disabled .gpk-mobile-reservation,.gpk-reservations-disabled .gpk-reservation-modal{display:none!important}

/* Restaurant header: logo left, contacts centred, actions right. */
.site-header .gpk-navbar{grid-template-columns:minmax(170px,230px) minmax(0,1fr) auto!important;gap:24px!important}
.site-header .gpk-brand-wrap{grid-column:1!important;justify-self:start!important;justify-content:flex-start!important}
.site-header .gpk-brand-wrap .custom-logo-link{justify-content:flex-start!important}
.site-header .gpk-brand-wrap .custom-logo{max-width:210px!important;max-height:88px!important}
.site-header .gpk-header-info{grid-column:2!important;justify-self:center!important}
.site-header .gpk-header-actions{grid-column:3!important;justify-self:end!important}
@media(min-width:901px) and (max-width:1100px){.gpk-reservation-button{display:inline-flex!important;min-height:46px;align-items:center;padding-inline:13px;font-size:12px}.site-header .gpk-navbar{grid-template-columns:170px minmax(0,1fr) auto!important;gap:12px!important}.site-header .gpk-brand-wrap .custom-logo{max-width:165px!important;max-height:76px!important}.site-header .gpk-header-info-item:first-child{display:none}}
@media(max-width:900px){
.site-header .gpk-navbar{grid-template-columns:minmax(0,1fr) auto!important;gap:10px!important}
.site-header .gpk-brand-wrap{grid-column:1!important;justify-self:start!important}
.site-header .gpk-brand-wrap .custom-logo-link{height:58px!important;justify-content:flex-start!important}
.site-header .gpk-brand-wrap .custom-logo{max-width:145px!important;max-height:56px!important}
.site-header .gpk-header-actions{grid-column:2!important}
.gpk-reservation-button{position:fixed!important;right:100px!important;bottom:max(16px,env(safe-area-inset-bottom))!important;z-index:85!important;display:flex!important;width:68px!important;height:76px!important;min-height:76px!important;padding:7px 4px!important;align-items:center!important;justify-content:center!important;flex-direction:column!important;gap:3px!important;border:1px solid rgba(0,0,0,.06)!important;border-radius:22px!important;background:#fff4b8!important;color:#171717!important;box-shadow:0 12px 30px rgba(87,66,0,.18)!important;font-size:0!important;line-height:1!important}.gpk-reservation-button:before{content:'▦';font-size:27px;font-weight:500;line-height:1}.gpk-reservation-button:after{content:'Стол';font-size:11px;font-weight:800;line-height:1}
.gpk-mobile-reservation{display:none!important}
}
@media(max-width:420px){.gpk-reservation-button{right:96px!important;bottom:max(14px,env(safe-area-inset-bottom))!important;width:62px!important;height:76px!important;min-height:76px!important}.site-header .gpk-brand-wrap .custom-logo{max-width:128px!important;max-height:52px!important}}

/* Mobile reservation action sits beside the cart, outside the header. */
.gpk-reservation-mobile-fab{display:none}
@media(max-width:900px){
.site-header .gpk-reservation-button{display:none!important}
.gpk-reservation-mobile-fab{position:fixed;right:100px;bottom:max(24px,calc(env(safe-area-inset-bottom) + 8px));z-index:84;display:grid;width:166px;height:60px;padding:0 14px;grid-template-columns:28px minmax(0,1fr);align-items:center;gap:9px;border:1px solid rgba(122,97,0,.12);border-radius:18px;background:#fff4b8;color:#171717;box-shadow:0 9px 24px rgba(87,66,0,.15);cursor:pointer;text-align:left}
.gpk-reservation-mobile-fab svg{display:block;width:25px;height:25px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.gpk-reservation-mobile-fab span{font:500 12px/1.18 Golos,Arial,sans-serif}
.gpk-reservation-mobile-fab:active{background:#ffe875;transform:scale(.97)}
}
@media(max-width:420px){.gpk-reservation-mobile-fab{right:96px;bottom:max(22px,calc(env(safe-area-inset-bottom) + 8px));width:150px;height:58px;padding:0 12px;grid-template-columns:25px minmax(0,1fr);gap:7px}.gpk-reservation-mobile-fab svg{width:23px;height:23px}.gpk-reservation-mobile-fab span{font-size:11px}}

/* Reservation confirmation. */
.gpk-reservation-modal output.is-success{margin-top:16px;color:inherit}
.gpk-reservation-success-card{display:grid;padding:18px;grid-template-columns:54px minmax(0,1fr) auto;align-items:center;gap:15px;border:1px solid #b8e2c0;border-radius:18px;background:linear-gradient(135deg,#f2fff4,#e7f9eb);box-shadow:0 12px 28px rgba(37,128,59,.11);text-align:left}
.gpk-reservation-success-icon{display:grid;width:54px;height:54px;place-items:center;border-radius:50%;background:#2da34a;color:#fff;box-shadow:0 7px 16px rgba(45,163,74,.24)}
.gpk-reservation-success-icon svg{width:30px;height:30px;fill:none;stroke:currentColor;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}
.gpk-reservation-success-card small{color:#237a38;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.08em}
.gpk-reservation-success-card h3{margin:3px 0 5px;color:#163d20;font-size:18px;line-height:1.2}
.gpk-reservation-success-card p{margin:0;color:#4c6652;font-size:13px;line-height:1.4}
.gpk-reservation-success-card button{min-height:44px;padding:0 16px;border:0;border-radius:12px;background:#1d2920;color:#fff;font-weight:800;cursor:pointer}
.gpk-reservation-success-card button:hover{background:#2c3b30}
@media(max-width:600px){.gpk-reservation-success-card{grid-template-columns:48px minmax(0,1fr);padding:15px;gap:12px}.gpk-reservation-success-icon{width:48px;height:48px}.gpk-reservation-success-card button{grid-column:1/-1;width:100%}}

/* Comfortable reservation form */
.gpk-reservation-modal form{width:min(680px,100%);padding:34px;border:1px solid rgba(35,32,27,.07);border-radius:28px}
.gpk-reservation-modal form>span{font-size:11px;letter-spacing:.14em}
.gpk-reservation-modal h2{margin:10px 52px 10px 0;font-size:38px;line-height:1.08;letter-spacing:-.035em}
.gpk-reservation-modal form>p{margin:0;color:#777772;font-size:15px;line-height:1.45}
.gpk-reservation-close{top:20px;right:20px;width:48px;height:48px;font-size:30px}
.gpk-reservation-modal form>div{margin:26px 0 22px;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:16px;row-gap:18px}
.gpk-reservation-modal label{gap:8px;color:#4f504c;font-size:14px;font-weight:650}
.gpk-reservation-modal input,.gpk-reservation-modal textarea{min-height:56px;padding:14px 16px;border:1px solid #d9dad8;border-radius:15px;background:#fff;color:#191918;font-size:16px;line-height:1.3;outline:none;transition:border-color .18s ease,box-shadow .18s ease,background .18s ease}
.gpk-reservation-modal textarea{min-height:132px;resize:vertical}
.gpk-reservation-modal input::placeholder,.gpk-reservation-modal textarea::placeholder{color:#999a96}
.gpk-reservation-modal input:focus,.gpk-reservation-modal textarea:focus{border-color:#d4b000;box-shadow:0 0 0 4px rgba(252,224,0,.18)}
.gpk-reservation-modal form>button[type=submit]{min-height:60px;border-radius:16px;font-size:16px;font-weight:750;transition:background .18s ease,transform .18s ease}
.gpk-reservation-modal form>button[type=submit]:hover{background:#f1ce00;transform:translateY(-1px)}
html[data-theme="dark"] .gpk-reservation-modal form{border-color:#383936;background:#242522;color:#f4f4f1}
html[data-theme="dark"] .gpk-reservation-modal form>p{color:#b2b3ad}
html[data-theme="dark"] .gpk-reservation-modal label{color:#d2d3cd}
html[data-theme="dark"] .gpk-reservation-modal input,html[data-theme="dark"] .gpk-reservation-modal textarea{border-color:#484945;background:#30312e;color:#fff}
html[data-theme="dark"] .gpk-reservation-close{background:#343532;color:#fff}

@media(max-width:600px){
  .gpk-reservation-modal form{padding:28px 20px 22px;border-radius:22px}
  .gpk-reservation-modal h2{margin-top:8px;font-size:30px}
  .gpk-reservation-modal form>p{font-size:14px}
  .gpk-reservation-close{top:14px;right:14px;width:44px;height:44px}
  .gpk-reservation-modal form>div{margin:22px 0 18px;grid-template-columns:1fr;gap:15px}
  .gpk-reservation-modal input,.gpk-reservation-modal textarea{min-height:54px;padding:13px 15px;font-size:16px}
  .gpk-reservation-modal textarea{min-height:112px}
  .gpk-reservation-modal form>button[type=submit]{min-height:56px}
}

/* Keep the public header compact when reservation styles are loaded last. */
@media(min-width:901px){
  .site-header.gpk-header{padding:8px 0!important}
  .site-header .gpk-navbar{width:min(1180px,calc(100% - 32px))!important;min-height:76px!important;padding:5px 12px!important;grid-template-columns:160px minmax(360px,1fr) auto!important;gap:12px!important;border-radius:21px!important}
  .site-header .gpk-brand-wrap{padding:0 8px!important}
  .site-header .gpk-brand-wrap .custom-logo-link{width:152px!important;height:64px!important}
  .site-header .gpk-brand-wrap .custom-logo{max-width:142px!important;max-height:64px!important}
  html[data-theme="dark"] .site-header .gpk-brand-wrap .custom-logo-link{padding:6px 10px!important;overflow:hidden;box-sizing:border-box;justify-content:center!important;border-radius:16px;background:#fff!important}
  html[data-theme="dark"] .site-header .gpk-brand-wrap .custom-logo{max-width:136px!important;max-height:56px!important}
}
@media(min-width:901px) and (max-width:1100px){.site-header .gpk-navbar{grid-template-columns:140px minmax(180px,1fr) auto!important;gap:8px!important}.site-header .gpk-brand-wrap{padding-inline:4px!important}.site-header .gpk-brand-wrap .custom-logo-link{width:132px!important}.site-header .gpk-brand-wrap .custom-logo{max-width:120px!important}}

/* Reservation form opens as a bottom sheet, like a product card. */
.gpk-reservation-modal{padding:20px 20px 0;place-items:end center}
.gpk-reservation-modal form{width:min(680px,100%);max-height:calc(100dvh - 28px);margin:0;border-bottom:0;border-radius:28px 28px 0 0;animation:gpk-reservation-sheet-in .34s cubic-bezier(.22,.8,.3,1) both;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
.gpk-reservation-backdrop{animation:gpk-reservation-backdrop-in .25s ease both}
@keyframes gpk-reservation-sheet-in{from{opacity:.7;transform:translate3d(0,100%,0)}to{opacity:1;transform:translate3d(0,0,0)}}
@keyframes gpk-reservation-backdrop-in{from{opacity:0}to{opacity:1}}
@media(max-width:600px){
  .gpk-reservation-modal{padding:0;place-items:end center}
  .gpk-reservation-modal form{width:100%;max-width:none;max-height:92dvh;border-radius:24px 24px 0 0}
}
@media(prefers-reduced-motion:reduce){.gpk-reservation-modal form,.gpk-reservation-backdrop{animation:none}}
