/* Production feedback follows the original restrained studio palette. */
.genar-loading{min-height:80vh;display:flex;flex-direction:column;gap:28px;align-items:center;justify-content:center;background:#f4f1e9;color:#26241e}.genar-loading svg{width:160px}.genar-loading p{font-size:13px;letter-spacing:.06em}.genar-connection{position:relative;z-index:120;display:flex;align-items:center;justify-content:center;gap:20px;flex-wrap:wrap;padding:16px 24px;background:#e6d8c2;color:#342b20;font-size:13px}.genar-connection button{text-decoration:underline;text-underline-offset:4px}.genar-reference{overflow-wrap:anywhere;word-break:break-word}.genar-payment-receipt{max-width:580px;margin:auto}.genar-payment-receipt .row{gap:20px;align-items:flex-start}.genar-payment-receipt .row strong{text-align:right;overflow-wrap:anywhere}.genar-payment-row{width:100%;text-align:left;gap:16px}.genar-payment-row>span:first-child{flex:1;min-width:0}.genar-payment-row>span:nth-child(2){text-align:right;flex-shrink:0}.genar-payment-row small{display:block;margin-top:6px;opacity:.65}.genar-working{cursor:progress}.genar-working .web-action button,.genar-working .native-action button{pointer-events:none;opacity:.65}.genar-upload input[type=file]{font-size:12px;padding:14px;border:1px solid var(--line,#d5d0c5);width:100%;max-width:100%}.genar-upload small,.checkbox-row small{display:block;margin-top:6px;color:var(--muted,#716d63);font-size:12px}.genar-availability{margin-bottom:14px}.auth-form .form-error:empty{display:none}.auth-form .field input{min-height:48px}.device-context-nav a,.experience-switch>a{display:flex;align-items:center;justify-content:space-between;padding:17px 0;border-bottom:1px solid var(--line,#d5d0c5);font-size:14px}.device-screen>.app-fixed-header{top:0}.phone-auth-body{padding-top:40px}.form-error{white-space:normal;overflow-wrap:anywhere}.genar-payment-receipt .btn{white-space:normal}.web-action button:disabled,.native-action button:disabled{opacity:.5;cursor:not-allowed}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid #877153;outline-offset:4px}
.genar-vietqr{display:grid;grid-template-columns:minmax(160px,210px) 1fr;gap:24px;align-items:center;margin-top:24px;padding:22px;border:1px solid var(--line,#d5d0c5);background:#fff}.genar-vietqr-image{display:block;width:100%;aspect-ratio:1;background:#fff}.genar-vietqr-copy{display:grid;gap:10px}.genar-vietqr-copy strong{font-size:15px}.genar-payment-countdown{font-variant-numeric:tabular-nums}.genar-payment-countdown.is-expired{color:#9b4b32}
.auth-methods{display:grid;gap:9px;margin:0 0 20px}.auth-method{width:100%;min-height:50px;border:1px solid var(--line,#d5d0c5);background:transparent;color:inherit;padding:12px 15px;display:flex;align-items:center;justify-content:space-between;gap:20px;text-decoration:none;text-align:left;font:inherit}.auth-method span{font-weight:600}.auth-method small{font:10px/1.2 Consolas,monospace;letter-spacing:.08em;text-transform:uppercase;color:var(--muted,#716d63)}.auth-method:not(:disabled):hover{background:var(--theme-soft,#eee9df);border-color:#8b7658}.auth-method:disabled{cursor:not-allowed;opacity:.55}.auth-divider{display:flex;align-items:center;gap:12px;color:var(--muted,#716d63);font-size:10px;letter-spacing:.08em;text-transform:uppercase;margin:18px 0}.auth-divider::before,.auth-divider::after{content:'';height:1px;background:var(--line,#d5d0c5);flex:1}.auth-email{margin-top:0}.auth-form select{width:100%;min-height:48px;border:1px solid var(--line,#d5d0c5);background:var(--theme-surface,#fff);color:inherit;padding:0 12px}.web-auth .auth-phone-primary{border-color:var(--theme-accent,#877153);background:var(--theme-accent-soft,#eee9df)}.web-auth .web-auth-methods{margin-bottom:16px}.web-booking-auth{display:grid;gap:12px;margin:18px 0;padding:20px;border:1px solid var(--line,#d5d0c5);background:var(--theme-soft,#eee9df)}.web-booking-auth p{margin:0;color:var(--muted,#716d63);font-size:13px;line-height:1.6}
.visit-tracker{max-width:720px;margin-inline:auto}.visit-tracker ol{list-style:none;margin:28px 0;padding:0;display:grid;gap:0}.visit-tracker li{display:grid;grid-template-columns:34px 1fr;gap:12px;min-height:62px;position:relative;color:var(--muted,#716d63)}.visit-tracker li:not(:last-child)::after{content:"";position:absolute;left:11px;top:27px;bottom:0;width:1px;background:currentColor;opacity:.25}.visit-tracker li>span{font-size:18px;line-height:24px}.visit-tracker li div{display:flex;justify-content:space-between;gap:16px;padding-bottom:20px}.visit-tracker li strong{font-weight:600}.visit-tracker li small{white-space:nowrap}.visit-tracker li.complete{color:var(--ink,#26241e)}.visit-tracker li.current{color:var(--bronze,#877153)}.visit-tracker li.current strong{font-size:1.08rem}
@media(max-width:700px){.genar-connection{padding:12px 18px;gap:10px}.genar-payment-receipt .price.big{font-size:34px}.genar-payment-row{font-size:12px}.genar-payment-row small{font-size:10px}.genar-payment-receipt .row{font-size:12px}.genar-vietqr{grid-template-columns:1fr;padding:18px}.genar-vietqr-image{max-width:210px;margin:auto}.genar-vietqr-copy{text-align:center}.phone-auth-body .auth-form{padding:24px 18px}.mode-app .device-screen{padding-top:0}.phone-scroll{overscroll-behavior-y:contain}.genar-upload input[type=file]{font-size:11px}.form-error{font-size:12px}.visit-tracker li div{display:block}.visit-tracker li small{display:block;margin-top:4px}}@media(max-width:768px){.web-auth .auth-form{max-width:560px;padding:48px 28px 72px}.web-auth .auth-method{min-height:52px}.web-booking-auth{padding:18px}}@media(max-width:420px){.web-auth .auth-form{padding:32px 18px 56px}.web-auth .auth-method{padding:12px;gap:12px}.web-booking-auth{margin:14px 0;padding:16px}.web-booking-auth .btn{min-height:52px}.visit-tracker{margin-inline:-4px}}
@media(prefers-reduced-motion:reduce){.genar-loading *{animation:none!important}}
.genar-shop-card { display: flex; flex-direction: column; text-align: left; min-width: 0; }
.genar-shop-card a { color: inherit; text-decoration: none; }
.genar-shop-card .genar-product-image-link { display: block; overflow: hidden; }
.genar-shop-card .product-art { aspect-ratio: 4/3; height: auto; min-height: 0; }
.product-art:has(.genar-product-photo)::before, .product-art:has(.genar-product-photo)::after { display: none; }
.product-art .genar-product-photo { display: block; width: 100%; height: 100%; object-fit: contain; }
.genar-product-additional { display: grid; gap: 20px; margin-top: 20px; }
.genar-product-additional img { display: block; width: 100%; max-width: 506px; height: auto; margin-inline: auto; object-fit: contain; }
.product-art:has(.genar-product-photo) { background: #e8e3dc; overflow: hidden; }
.genar-shop-card .product-label { display: flex; flex-wrap: wrap; gap: 10px 20px; align-items: baseline; margin-top: 16px; }
.genar-shop-card .product-label h3 { font-size: clamp(26px,2.7vw,40px); }
.genar-product-description { margin: 12px 0 20px; font: 14px/1.65 var(--genar-sans,Arial); opacity: .8; }
.genar-product-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 14px 24px; margin-top: auto; }
.genar-product-actions .btn { width: auto; flex: 1; min-height: 48px; }
.genar-product-details { display: inline-flex; align-items: center; min-height: 44px; border-bottom: 1px solid currentColor; font-size: 13px; }
.genar-product-detail .product-art { aspect-ratio: 1; height: auto; }
.genar-shop-card :is(a,button):focus-visible { outline: 2px solid currentColor; outline-offset: 4px; }
.genar-product-actions .btn:disabled { opacity: .55; cursor: not-allowed; }
.cart-item .product-art .genar-product-photo { object-fit: contain; }
.web-page .page-head > .back { display: inline-flex; align-items: center; min-height: 44px; }
.web-page .two-col > .sticky > .btn:not(.outline) { display: inline-flex; }
.cart-item .remove, .phone-page .cart-item .remove { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; flex: none; }
.cart-item .qty { height: 44px; }
.cart-item .qty button, .phone-page .cart-item .qty button { width: 44px; height: 42px; }
@media(max-width:700px) {
  .web-page .cart-item { display: grid; grid-template-columns: 64px minmax(0,1fr) 44px; gap: 12px; }
  .web-page .cart-item .product-art { width: 64px; height: 84px; }
  .web-page .cart-item .product-art .pill { display: none; }
  .web-page .cart-item .price { grid-column: 2; }
  .web-page .cart-item .remove { grid-column: 3; grid-row: 1; }
  .genar-product-actions { gap: 10px; }
  .genar-product-actions .btn { flex-basis: 100%; }
  .genar-product-detail .product-art { max-height: 420px; }
}

/* Product galleries are shared by the public site and customer app. */
.genar-product-gallery { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); grid-template-rows: auto auto; gap: 0; width: 100%; background: #e8e3dc; }
.genar-product-gallery > .product-art { aspect-ratio: 506/270 !important; height: auto !important; min-height: 0; }
.genar-product-gallery > .product-art > .pill { display: none; }
.genar-product-gallery-photo { margin: 0; min-width: 0; min-height: 0; overflow: hidden; }
.genar-product-gallery-photo:not(.genar-product-logo) { aspect-ratio: 506/270; }
.genar-product-gallery .genar-product-photo { width: 100%; height: 100%; object-fit: contain; transform: none; }
.genar-product-gallery > .genar-product-logo { grid-column: 1 / -1; height: clamp(120px,12vw,160px); background: #151515; }
.genar-product-gallery:has(> .product-art + .genar-product-logo) > .product-art { grid-column: 1 / -1; aspect-ratio: 4/3 !important; }
@media(max-width:700px) {
  .genar-product-gallery { aspect-ratio: auto; grid-template-columns: 1fr; grid-template-rows: none; }
  .genar-product-gallery > .product-art, .genar-product-gallery-photo:not(.genar-product-logo) { aspect-ratio: 506/270 !important; height: auto; }
  .genar-product-gallery > .genar-product-logo { height: 160px; }
  .genar-product-gallery:has(> .product-art + .genar-product-logo) > .product-art { aspect-ratio: 4/3 !important; }
}
