/*
 * New Style CSS for Website Redesign
 * Add your custom styles here for header, footer, and overall layout.
 */
@font-face {
    font-family: 'Avenir LT Std';
    src: url('./fonts/AvenirLTStd-Light.eot');
    src: url('./fonts/AvenirLTStd-Light.eot?#iefix') format('embedded-opentype'),
        url('./fonts/AvenirLTStd-Light.woff2') format('woff2'),
        url('./fonts/AvenirLTStd-Light.woff') format('woff'),
        url('./fonts/AvenirLTStd-Light.ttf') format('truetype');
    font-weight: 300;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Avenir LT Std';
    src: url('./fonts/AvenirLTStd-Book.eot');
    src: url('./fonts/AvenirLTStd-Book.eot?#iefix') format('embedded-opentype'),
        url('./fonts/AvenirLTStd-Book.woff2') format('woff2'),
        url('./fonts/AvenirLTStd-Book.woff') format('woff'),
        url('./fonts/AvenirLTStd-Book.ttf') format('truetype');
    font-weight: normal;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Avenir LT Std';
    src: url('./fonts/AvenirLTStd-BookOblique.eot');
    src: url('./fonts/AvenirLTStd-BookOblique.eot?#iefix') format('embedded-opentype'),
        url('./fonts/AvenirLTStd-BookOblique.woff2') format('woff2'),
        url('./fonts/AvenirLTStd-BookOblique.woff') format('woff'),
        url('./fonts/AvenirLTStd-BookOblique.ttf') format('truetype');
    font-weight: normal;
    font-style: italic;
    font-display: swap;
}

@font-face {
    font-family: 'Avenir LT Std';
    src: url('./fonts/AvenirLTStd-Oblique.eot');
    src: url('./fonts/AvenirLTStd-Oblique.eot?#iefix') format('embedded-opentype'),
        url('./fonts/AvenirLTStd-Oblique.woff2') format('woff2'),
        url('./fonts/AvenirLTStd-Oblique.woff') format('woff'),
        url('./fonts/AvenirLTStd-Oblique.ttf') format('truetype');
    font-weight: normal;
    font-style: italic;
    font-display: swap;
}

@font-face {
    font-family: 'Avenir LT Std';
    src: url('./fonts/AvenirLTStd-Roman.eot');
    src: url('./fonts/AvenirLTStd-Roman.eot?#iefix') format('embedded-opentype'),
        url('./fonts/AvenirLTStd-Roman.woff2') format('woff2'),
        url('./fonts/AvenirLTStd-Roman.woff') format('woff'),
        url('./fonts/AvenirLTStd-Roman.ttf') format('truetype');
    font-weight: normal;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Avenir LT Std';
    src: url('./fonts/AvenirLTStd-Medium.eot');
    src: url('./fonts/AvenirLTStd-Medium.eot?#iefix') format('embedded-opentype'),
        url('./fonts/AvenirLTStd-Medium.woff2') format('woff2'),
        url('./fonts/AvenirLTStd-Medium.woff') format('woff'),
        url('./fonts/AvenirLTStd-Medium.ttf') format('truetype');
    font-weight: 500;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Avenir LT Std';
    src: url('./fonts/AvenirLTStd-MediumOblique.eot');
    src: url('./fonts/AvenirLTStd-MediumOblique.eot?#iefix') format('embedded-opentype'),
        url('./fonts/AvenirLTStd-MediumOblique.woff2') format('woff2'),
        url('./fonts/AvenirLTStd-MediumOblique.woff') format('woff'),
        url('./fonts/AvenirLTStd-MediumOblique.ttf') format('truetype');
    font-weight: 500;
    font-style: italic;
    font-display: swap;
}

@font-face {
    font-family: 'Avenir LT Std';
    src: url('./fonts/AvenirLTStd-Heavy.eot');
    src: url('./fonts/AvenirLTStd-Heavy.eot?#iefix') format('embedded-opentype'),
        url('./fonts/AvenirLTStd-Heavy.woff2') format('woff2'),
        url('./fonts/AvenirLTStd-Heavy.woff') format('woff'),
        url('./fonts/AvenirLTStd-Heavy.ttf') format('truetype');
    font-weight: 700;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Avenir LT Std';
    src: url('./fonts/AvenirLTStd-HeavyOblique.eot');
    src: url('./fonts/AvenirLTStd-HeavyOblique.eot?#iefix') format('embedded-opentype'),
        url('./fonts/AvenirLTStd-HeavyOblique.woff2') format('woff2'),
        url('./fonts/AvenirLTStd-HeavyOblique.woff') format('woff'),
        url('./fonts/AvenirLTStd-HeavyOblique.ttf') format('truetype');
    font-weight: 900;
    font-style: italic;
    font-display: swap;
}

@font-face {
    font-family: 'Avenir LT Std';
    src: url('./fonts/AvenirLTStd-Black.eot');
    src: url('./fonts/AvenirLTStd-Black.eot?#iefix') format('embedded-opentype'),
        url('./fonts/AvenirLTStd-Black.woff2') format('woff2'),
        url('./fonts/AvenirLTStd-Black.woff') format('woff'),
        url('./fonts/AvenirLTStd-Black.ttf') format('truetype');
    font-weight: 900;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Avenir LT Std';
    src: url('./fonts/AvenirLTStd-BlackOblique.eot');
    src: url('./fonts/AvenirLTStd-BlackOblique.eot?#iefix') format('embedded-opentype'),
        url('./fonts/AvenirLTStd-BlackOblique.woff2') format('woff2'),
        url('./fonts/AvenirLTStd-BlackOblique.woff') format('woff'),
        url('./fonts/AvenirLTStd-BlackOblique.ttf') format('truetype');
    font-weight: 900;
    font-style: italic;
    font-display: swap;
}


/* Common Css Start*/

body { font-family: "Avenir LT Std", sans-serif !important;  }
h1, h2, h3, h4, h5, h6 { font-family:'Lobster', 'cursive' !important; }
:focus { outline: none !important; }
/* Common Css End*/

/****font-face included*****/
/*Variables Included  */
/*typography Strat*/
h1 ,.h1                                         { margin:0 0 20px; font-size: 52px; line-height: 1; color: #fff; }
h2                                          { margin:0 0 25px; font-size: 35px; line-height: 1; color: #fff; }

/*typography End*/
/*****common section start****/
*                                           { margin: 0px; padding: 0px; box-sizing: border-box; }
body                                        { font-size:16px; line-height:24px; }
img                                         { border: 0px;}
ul,ol                                       { list-style: none;}
a:hover, a:active,a:focus                   { text-decoration: none; }
p:empty                                     { display:none !important; margin: 0 !important; }
button.navbar-toggler                       { outline:0;}
.wrap                                       { margin: 0 auto -40px; padding: 0 0 40px; }
/* Responsive visibility helpers */
.text-white                                 { color: #fff !important; }
.d-desktop                                  { display: block !important; }
.d-mobile                                   { display: none !important; }
.h-100                                     { height: 100% !important; }
input[type="date"].form-control, input[type="time"].form-control, input[type="datetime-local"].form-control, input[type="month"].form-control { line-height: 18px; }
/* Custom icon for native date input (WebKit/Blink) */
input[type="date"].form-control             {  position: relative; }
input[type="date"]::-webkit-inner-spin-button,
input[type="date"]::-webkit-clear-button    { display: none; }
input[type="date"]::-webkit-calendar-picker-indicator {  background: url('../images/down-ic.svg') no-repeat center center / 10px 10px; color: transparent; opacity: 1; cursor: pointer; }
/* Emulate placeholder for native date inputs when empty */
input[type="date"].form-control:required:invalid { color: transparent; }
input[type="date"].form-control:required:invalid::-webkit-datetime-edit { color: transparent; }
input[type="date"].form-control:required:invalid::before { content: attr(placeholder); color: rgba(255,255,255,0.8); line-height: 20px; font-weight: 300; position: absolute; left: 16px; top: 50%; transform: translateY(-50%); pointer-events: none; }
input[type="date"].form-control:focus::before,
input[type="date"].form-control:valid::before { content: ''; }
input[type="date"].form-control:focus::-webkit-datetime-edit,
input[type="date"].form-control:valid::-webkit-datetime-edit { color: inherit; }
/* Layout overrides: remove legacy panel look on auth layout */
.auth-layout.main-content                   { background: transparent; border: 0; box-shadow: none; padding-bottom: 0;  }
.wrap > .container-fluid                    { padding:84px 15px 0;  }
.fixed-bottom-menu-bar .wrap > .container-fluid { padding:0 !important; overflow-y: auto; overflow-x: hidden; max-height: calc(100vh - 84px);  }
/* Page background for auth (no image, gradient only) */
.body-background.background-auth-gradient   { background-image: linear-gradient(125.86deg, #681A29 3.93%, #BA3645 71.29%) !important; background-color: #681A29 !important; background-repeat: no-repeat !important; background-size: cover !important; }
.fontfamily-avenir                          { font-family: "Avenir LT Std", sans-serif !important; }
/*****common section End****/
/***Header-section Css Start****/
.navbar-andiccio                            { background: none; margin-bottom: 0; border: 0; }
.fixed-bottom-menu-bar .navbar-andiccio     { position: unset; }
.navbar-andiccio     .navbar > .container .navbar-brand, .navbar > .container-fluid .navbar-brand { padding:0; height:auto; margin-left: 0; }
.navbar-andiccio .navbar-brand img ,.navbar-andiccio.shrink .navbar-brand img         { height: 50px; }
.navbar-andiccio .header-content            { padding: 17px 50px; background: linear-gradient( 179deg, #681A29 3.93%, #BA3645 71.29%);box-shadow: 0px 10px 15px -3px #1018281A; }
.navbar-right                               { margin-right: 0; }
.navbar-andiccio .navbar-nav                { display: flex; align-items: center; }
.navbar-andiccio .navbar-nav > li           { float: none; }
.navbar-andiccio .navbar-nav > li > a       { font-size: 16px; line-height: 24px; padding: 10px 9.5px; font-weight: 500; color: #fff; font-family: "Avenir LT Std", sans-serif !important;  }
.navbar-andiccio .navbar-nav > li.active > a img { filter: brightness(100); }
.navbar-nav li > a:hover, .navbar-nav li.active > a, .dropdown-menu > .active > a, .navbar-nav li.open > a ,.navbar-andiccio .navbar-nav > li > a:focus { background-color: transparent !important; text-decoration: underline !important; color: #fff !important;}
.navbar-andiccio .navbar-nav > li.cta-button , .navbar-andiccio .navbar-nav > li.logout-pill { margin-left: 15px; }
.navbar-andiccio .navbar-nav > li.cta-button a ,.navbar-andiccio .navbar-nav > li.logout-pill > a { background: #ffffff; color: #7f2431;  border: 1px solid #fff; display: inline-block; border-radius: 25px 5px 25px 5px; padding: 10px 27px; transition: all 0.5s ease; }
.navbar-andiccio .navbar-nav > li.cta-button a:hover ,.navbar-andiccio .navbar-nav > li.logout-pill > a:hover{ color: #fff; text-decoration: none !important;  }
.navbar-andiccio .navbar-nav > li.cta-button a:hover img { filter: brightness(100); }
.navbar-andiccio .navbar-nav > li.logout-pill > a { border: 1px solid #ffffff; color: #fff; background: rgba(255,255,255,0.06); text-decoration: none !important; }
.navbar-andiccio .navbar-nav > li.logout-pill > a:hover { background: #ffffff !important; color: #7f2431 !important; text-decoration: none !important; }
.navbar-andiccio .navbar-nav > li.logout-pill > a img { filter: brightness(100); }
.navbar-andiccio .navbar-nav > li.logout-pill > a:hover img  {  filter: none; }
.nav-icon                                   { width:18px; height:18px; margin-right:8px; vertical-align:-2px; display:inline-block; }
.header-logo-none .navbar-header .navbar-brand { display: none; }

.centered-card .centered-logo-box { margin-top: 0; margin-bottom: 10px; }
/* Header Css End */
/* Order tabs: icon + label layout */
.order-tab-label                            { display: inline-flex; flex-direction: column; align-items: center; justify-content: center; gap: 10px; width: 90px; height: 90px; border-radius: 20px 4px 20px 4px; border: 2px solid #ffffff !important; padding: 12px; color: #ffffff; transition: all .2s ease; background: none; }
.order-tab-label .order-tab-text            { display: inline-block; font-family: 'Lobster', cursive; font-size: 18px; line-height: 24px; color: inherit; text-align: center; letter-spacing: -0.5px;}
.order-tab-icon                             {  display: inline-flex; align-items: center; justify-content: center;  filter: brightness(0) invert(1); opacity: 1; }
.nav-tabs > li > a                          { background: none !important; padding: 0 !important; margin: 0; border: 0 !important;  }
.nav-tabs > li                              { margin: 0 8px 12px; background: none !important; }
.tabs-above > .nav-tabs.nav-pills           { display: flex; overflow-x: auto; border: 0; scrollbar-width: thin; -ms-overflow-style: auto; }
/* Themed horizontal scrollbar for the menu tabs (WebKit browsers) */
.tabs-above > .nav-tabs.nav-pills::-webkit-scrollbar { height: 5px; border-radius: 4px; }
.tabs-above > .nav-tabs.nav-pills::-webkit-scrollbar-track { background: rgba(255, 255, 255, 0.10); border-radius: 4px; }
.tabs-above > .nav-tabs.nav-pills::-webkit-scrollbar-thumb { background: #ffffff; border-radius: 4px; }
.tabs-above > .nav-tabs.nav-pills::-webkit-scrollbar-thumb:hover { background: #FDD4DA; }
/* Firefox thumb + track colours to match theme */
.tabs-above > .nav-tabs.nav-pills { scrollbar-color: rgba(255, 255, 255, 0.5) rgba(255, 255, 255, 0.12); }
.tabs-above > .nav-tabs.nav-pills > li > a , .tabs-above > .nav-tabs.nav-pills > li > a:hover , .tabs-above > .nav-tabs.nav-pills > li.active > a      { border-color: transparent !important; }
.tabs-above > .nav-tabs.nav-pills > li:hover > a  ,.tabs-above > .nav-tabs.nav-pills > li.active > a, .tabs-above > .nav-tabs.nav-pills > li.active > a:hover, .tabs-above > .nav-tabs.nav-pills > li.active > a:focus                { background: none !important;  }
.nav-tabs > li.active > a .order-tab-label,
.nav-tabs > li > a:hover .order-tab-label   {  background: #ffffff !important; color: #A81628; }
.nav-tabs > li.active > a .order-tab-label .order-tab-icon ,
.nav-tabs > li > a:hover .order-tab-label .order-tab-icon  {  filter: none; opacity: 1; }
/* Footer Styles Start */
.footer p                                   { padding: 0 !important; }
.footer-andiccio                            { background: #681A29; padding: 11px 0; border: 0;  }
.footer-andiccio p                          { color: #ffffff; font-size: 12px; line-height: 18px; margin: 0; font-family: "Avenir LT Std", sans-serif; }
.footer-andiccio p a                        { text-decoration: underline; }
.footer-andiccio p a:hover                  { color: #fff !important; text-decoration: none; }
/* Footer none */
body.footer-none .footer-andiccio    { display: none; } 
.footer-none .wrap { margin-bottom: 0; padding-bottom: 0; overflow: hidden; }
.footer-none .centered-card .bottom-footer-part { margin: 0; }
.footer-none .centered-form-content { padding-bottom: 0 !important; min-height: calc(100vh - 84px); }
/* Footer Styles End */
.mobile-menu-close                          { display: none; }
/* Centered Pages (Login/Sign up/Auth pages) */
.centered-page                              { height:100%;   display: flex;  justify-content: center; align-items: center; }
.centered-card                              { width: 100%; height: 100%; text-align: center; }
.centered-card p                            { color: #fff; opacity: .9; margin: 0 0 24px; }
/* smaller gap directly under the heading, larger gap before the form */
.centered-card h1 + p                       { margin-top: 8px; margin-bottom: 20px; }
.auth-form                                  { height: 100%;  }
.auth-form .centered-form-content           { width: 100%; margin-inline: auto;  text-align:left; }
.centered-form-content                      { padding: 37px 20px 39px; min-height: calc(100vh - 124px); width: 100%; margin-inline: auto;  text-align:left; position: relative;}
.footer-mobile-visible .centered-form-content { min-height: calc(100vh - 114px); }
/* Form fields */
 .form-group                                { margin-bottom: 15px; }
 .control-label                             { color: #fff !important; font-size: 14px; line-height: 20px; font-weight: 500; margin-bottom: 6px; display: block; }
 .form-control                              {  color: #fff;   font-size: 14px; line-height: 20px; height: auto; border: 0; box-shadow: none !important;  background: #681A29;  border-radius: 12px; padding: 12px 16px; box-shadow: inset 0 0 0 1px rgba(255,255,255,0.08);  }
 .form-control::placeholder                 { color: rgba(255,255,255,0.8); font-weight: 300; }
 .help-block:empty                          { display: none; }
 .form-control[disabled], .form-control[readonly], fieldset[disabled] .form-control { background-color: #681A2940; }
 .edit-profile-page .form-control[readonly] , .dob-display.form-control[readonly] ,#form-signup .iti--separate-dial-code .iti__selected-flag{ background-color:#681A29  !important; }
 .profile-summary-view .iti input.form-control[readonly] { background-color: #681A2940 !important; }
 .profile-summary-view .iti--separate-dial-code .iti__selected-flag { background-color: #681A2940 !important; }
 .form-group .control-label                 { color: #fff;  margin-bottom: 8px; }
 /* Password rules list */
 .password-rules                            { list-style: none; margin: 10px 0 20px; padding: 0; }
 .password-rules li                         { display: flex; align-items: center; gap: 10px; margin: 8px 0; color: #fff; }
 .password-rules li .rule-ic                { width: 24px; height: 24px; display: inline-block; }
 .password-rules li.invalid                 { color: #ffb3b3; }
 /* Two-column form grid */
 .form-grid                                  { display: grid; grid-template-columns: 1fr 1fr; gap: 16px 24px; align-items: start; }
.form-grid .col-span-2                      { grid-column: span 2; }
/* DOB hint row */
.dob-hint                                    { display: flex; align-items: center; gap: 10px; margin-top: 10px; margin-bottom: 10px; color: rgba(255,255,255,0.9); font-size: 14px; line-height: 20px; }
.dob-hint-icon                               { width: 18px; height: 18px; display: inline-block; }
/* Add extra breathing room under the DOB form-group specifically */
.field-customer-date_of_birth                 { margin-bottom: 6px; }
.help-block                                 { padding: 0; margin:5px 0;  text-align: left !important;  color: #fff !important; font-size: 14px; line-height: 20px; }
/* Remember + forgot */
.auth-actions                               { display: flex; align-items: center; justify-content: space-between; margin: 6px 0 24px;  font-size: 14px; line-height: 20px; }
.auth-actions .checkbox label               { color: #fff; font-weight: 500; display: flex; align-items: center; gap: 10px; cursor: pointer; }
.auth-form .auth-actions .checkbox label, 
#form-signup .auth-actions .checkbox label { color: #ffffff !important; }
#form-signup .auth-actions .checkbox label a { color: #ffffff !important; text-decoration: underline; }
.auth-actions .checkbox input[type="checkbox"] { -webkit-appearance: none; appearance: none; width: 18px; height: 18px; border-radius: 4px; border: 2px solid rgba(255,255,255,0.85); background: transparent; position: relative; display: inline-block; }
.auth-actions .checkbox input[type="checkbox"]:hover { border-color: #ffffff; }
.auth-actions .checkbox input[type="checkbox"]:checked { background: #CF152B;; border-color: #CF152B;; }
.auth-actions .checkbox input[type="checkbox"]:checked::after { content: ""; position: absolute; left: 4px; top: 1px; width: 6px; height: 10px; border: 2px solid #fff; border-top: 0; border-left: 0; transform: rotate(45deg); }
.auth-actions .auth-link a                  { color: #fff; text-decoration: underline; }
.auth-actions .auth-link a:hover            { text-decoration: none; }
input[type="file"]:focus, input[type="radio"]:focus, input[type="checkbox"]:focus { outline: none !important; }
/* Submit button */
.btn                                        { font-size:16px; line-height: 24px; width: 100%; max-width: 380px;  border-radius: 25px; padding: 12px 28px; font-weight: 700; display: block; align-items: center; justify-content: center; gap: 8px; letter-spacing: -0.5px; white-space: normal; }
.btn.btn-primary                            { display: inline-flex; background: #ffffff; color: #CF152B; border: 1px solid #fff; transition: all .3s ease; }
.btn.btn-primary:hover                      { background: transparent; color: #fff; }
.centered-card .btn-block                   { display: block; width: 100%; max-width: 100%;}
.centered-card  p                           { margin-top: 18px; }
.centered-card  p a                         { color: #fff !important; text-decoration: underline; }
.centered-card  p a:hover                   { text-decoration: none; }
/* Icon color behavior on centered page buttons */
.centered-card .btn img                     { transition: filter .2s ease; }
.btn.btn-primary:hover img,
.btn.btn-primary:active img                 { filter: brightness(0) invert(1); }
/* Outlined light button (used for Cancel on auth pages) */
.btn.btn-outline-primary-light              { background: transparent; color: #fff; border: 1.5px solid #fff; border-radius: 25px; padding: 12px 28px;  font-size: 16px; line-height: 24px; width: 100%;  margin-inline: auto; justify-content: center; gap: 8px; }
.btn.btn-outline-primary-light:hover        { background: rgba(255,255,255,0.12); color: #fff; }
.btn.btn-outline-primary-light .btn-ic      { display: inline-flex; align-items: center; }
.btn.btn-outline-primary-light .btn-ic img  { width: 18px; height: 18px; display: block; }
.btn.outline-red                            { border-color:#B71428; color: #B71428;}
.btn.outline-red:hover                      { background: #B71428; color: #fff;}
.btn.btn-bg-red                             { background: #A81628 !important; color: #fff !important; border-color: #A81628 !important; }
.btn.btn-bg-red:hover                       { background: #fff !important; color: #A81628 !important; border-color: #A81628 !important;   }
.btn-inline                                 { margin-inline: 0 !important; display: inline-flex !important; }
.larger-btns                                { gap: 20px; }
.larger-btns .btn                          { padding:21px 80px; max-width: 280px !important; margin-inline: 0 !important; border-radius: 40px 10px 40px 10px; display: inline-flex; align-items: center; justify-content: center; font-size: 20px; line-height: 28px; }
.line-btn                                   { border-radius: 25px 5px 25px 5px; color: #CF152B; background: transparent; border: 0; text-decoration: underline; font-weight: 700; letter-spacing:-0.5px; }
.btn.btn-sm                                 { padding: 9px 14px; font-size: 14px; line-height: 20px; }

.instructions-note                         { display: inline-flex; align-items: center; gap: 8px; margin-top: 12px; color: rgba(255,255,255,0.9); font-weight: 600; }
.instructions-note-icon                    { width: 18px; height: 18px; display: inline-block; }

/* My Account page specific styles */
.account-buttons-group                      { display: flex; flex-direction: column; align-items: center; margin-bottom: 40px; }
.account-buttons-group .form-group          { margin-bottom: 12px; width: 100%; max-width: 480px; display: flex; justify-content: center; }
.logout-section                             { display: flex; justify-content: center; margin-top: auto; }

/* Account button styling - main action buttons */
.centered-card .btn.account-btn             { width: 100%; max-width: 480px; color: #A81628 !important; border-radius: 8px; justify-content: flex-start; padding: 14px 24px; letter-spacing: -0.5px; }
.centered-card .btn.account-btn:hover       {  color: #fff !important;     }
/* Logout button - smaller and more rounded */
.centered-card .btn.logout-btn              { width: 100%; max-width: 380px; border-radius: 25px; justify-content: center; padding: 12px 24px; }

/* My Account page layout container */
.bottom-footer-part                         { z-index: 20; }
.centered-card .bottom-footer-part            { margin-top: 20; display: flex; flex-direction: column;  }
.centered-card .bottom-footer-part .account-buttons-group { flex: 1; }
.centered-card .bottom-footer-part .logout-section { margin-top: auto; padding-top: 20px; }
.bottom-footer-part .form-group             { margin-bottom: 0; padding-bottom: 12px !important; }
 .bottom-footer-part .form-group.footer-btn-gap { gap:16px; }
/* Profile form spacing for Bootstrap grid */

.bottom-footer-part .row:last-of-type         { margin-bottom: 0; }
#customer-recaptcha-recaptcha-form-signup   { display: flex; justify-content: center;  }
/* reset password */

/* Cart promo slider dots */
.promo-banner-wrapper.promo-slider-active { position: relative; }
.promo-banner-wrapper .cart-promo-banner { width: 100%; }
.promo-banner-wrapper.promo-slider-active .cart-promo-banner { display: none !important; opacity: 0; transform: translateX(8px); transition: opacity 0.3s ease, transform 0.3s ease; }
.promo-banner-wrapper.promo-slider-active .cart-promo-banner.active { display: flex !important; opacity: 1; transform: translateX(0); }
.promo-banner-wrapper .promo-slider-dots { display: flex; justify-content: center; gap: 6px; margin-top: 8px; }
.promo-banner-wrapper .promo-slider-dot { width: 8px; height: 8px; border-radius: 50%; border: 0; padding: 0; background: rgba(255, 255, 255, 0.4); cursor: pointer; }
.promo-banner-wrapper .promo-slider-dot.active { background: #ffffff; }

/* Menu promo modal overlay */
.promo-modal { position: fixed; inset: 0; z-index: 9999; background: rgba(0, 0, 0, 0.4); display: none; align-items: center; justify-content: center; padding: 24px 12px; }

.promo-modal-visible { display: flex; }

.promo-modal-dialog { border-radius: 16px; max-width: 420px; width: 100%; max-height: 100%; position: relative; overflow: hidden; text-align: right; }
.promo-modal-body { padding: 32px 12px 16px; overflow-y: auto; max-height: calc(100vh - 80px); }
.promo-modal-close { width: 30px; height: 30px; border: none; border-radius: 50%; background-color: #A81628; display: flex; align-items: center; justify-content: center; }
.promo-modal-close img { width: 18px; height: 18px; }
.promo-modal-grid { display: flex; flex-direction: column; gap: 20px; }

.promo-modal-item img { width: 100%; height: auto; display: block; border-radius: 12px; }
.promo-modal-grid .select2-results__options::-webkit-scrollbar { width: 4px; }
.promo-modal-grid .select2-results__options::-webkit-scrollbar-track { background: transparent; }
.promo-modal-grid .select2-results__options::-webkit-scrollbar-thumb { background: #fff; border-radius: 4px; }
.promo-modal-grid .select2-results__options::-webkit-scrollbar-thumb:hover { background: #fff; }
@media (min-width: 768px) {
    .promo-modal { padding: 40px; }
    .promo-modal-dialog { max-width: calc(100% - 10%); }
    .promo-modal-body { padding: 32px 20px 20px; }
    .promo-modal-grid { gap: 16px; display: flex; flex-direction: row; overflow-x: auto; }
    .promo-modal-item { min-width: calc((100% / 3) - 16px); }
}
@media (min-width: 992px) {
    .header-none-desktop .navbar-andiccio { display: none !important; }
.header-none-desktop .wrap > .container-fluid { padding-top: 0px !important;}
.header-none-desktop .centered-form-content { min-height: calc(100vh - 40px); }
     .promo-modal-item { min-width: calc((100% / 4) - 16px); }
    .menu-floating-bar { position: fixed; width: 100%; left: 0; bottom: 0; background: #681A29; border-radius: 16px 16px 0 0; padding-top: 0; }
    .menu-floating-bar .menu-footer-action { padding-inline: 16px; }
    .view-cart-page .menu-floating-bar .menu-footer-action { padding-inline: 0; }
    .menu-floating-bar.bg-visible .footer-action::after { display: none; }

}
/* .menu-floating-bar.bottom-footer-part.bg-visible {
      padding-top: 0 !important;
      padding-inline: 16px;
    } */
/* Center single promo item in mobile (flex) layout as well */
.promo-modal-grid .promo-modal-item:only-child { align-self: center; }

/* Address list and cards */
.address-list                               { margin-top: 10px; }
.address-card                               { background: #ffffff; color: #7f2431; border-radius: 12px; padding: 14px 16px; position: relative; min-height: 85px; box-shadow: 0 1px 2px rgba(16,24,40,0.10); margin-bottom: 16px; }
.address-card-link                          { display: block; text-decoration: none; color: inherit; }
.address-card-actions                        { position: absolute; top: 50%; transform: translateY(-50%); right: 12px; display: flex; gap: 15px; }
/* ... */
.address-card-title                          { font-weight: 800; letter-spacing: 0; font-size: 12px; line-height: 20px; font-family: 'Outfit', sans-serif !important; text-transform: uppercase; margin: 0 0 6px; color: #7f2431; overflow: hidden; text-overflow: ellipsis; }
.address-card-text                           { font-size: 14px; line-height: 20px; color: #681A29; opacity: .9; overflow: hidden; text-overflow: ellipsis; }
.address-actions-row                          { margin-top: 30px; }
/* Address cards layout container */
.address-cards-list                           { display: flex; flex-wrap: wrap;  justify-content: center; gap: 16px;  margin: 8px auto 18px;  }
.address-cards-list .address-card             { margin-bottom: 0; width: calc((100% / 3) - 16px);  }
/* Step 3: Address type choice tiles (Home / Work / School / Other) */
#selected-address-radio .address-choice-grid  { display: flex; align-items: stretch; gap: 16px; flex-wrap: wrap; justify-content: flex-start; margin: 10px 0 6px; }
#selected-address-radio .address-option       { position: relative; display: flex; flex-direction: column; justify-content: center; align-items: center; width: 110px; height: 110px; padding: 16px 18px; border: 2px solid rgba(255,255,255,0.9); color: #ffffff; border-radius: 10px; background: transparent; cursor: pointer; box-shadow: 0px 2px 4px -2px #1018281A; box-shadow: 0px 4px 6px -1px #1018281A; transition: background .2s ease, color .2s ease, border-color .2s ease, box-shadow .2s ease; }
#selected-address-radio .address-option:hover { box-shadow: 0 3px 10px rgba(16,24,40,0.18); }
#selected-address-radio .address-option input { position: absolute; opacity: 0; pointer-events: none; }
#selected-address-radio .address-option .ic   {  top: 14px; left: 16px; width: 50px; height: 50px; display: inline-flex; align-items: center; justify-content: center; }
#selected-address-radio .address-option .ic img { width: 50px; height: 50px; display: block; filter: brightness(0) invert(1); opacity: .95; }
#selected-address-radio .address-option .label { padding: 0; font-weight: 400; font-family: 'lobster', cursive; letter-spacing: -0.5px; font-size: 20px; line-height: 20px; color: #ffffff; overflow: hidden; text-overflow: ellipsis; }
.step-section #selected-address-radio .address-option { border-radius: 44px 6px 44px 6px; }
/* Selected tile: filled white with maroon text, keep rounded corners */
#selected-address-radio .address-option.active { background: #ffffff; border-color: #ffffff; color: #A81628; }
#selected-address-radio .address-option.active .label { color: #A81628; }
#selected-address-radio .address-option.active .ic img { filter: none; opacity: 1; }
/* Constrain group width and center under Step 3 */
.customer-address-list.step-3 #selected-address-radio { max-width: 760px; margin: 0 auto; }
/* Order details */
.status-pill                                  { margin-left: 10px; display: inline-block; padding: 6px 10px; border-radius: 999px; font-weight: 700; font-size: 12px; line-height: 16px; }
.status-pill.default                          { background: #ffffff; color: #7f2431; }
.status-pill.cancelled                        { background: #FFE5E8; color: #7f2431; }
.section-label                                { margin-bottom: 10px; color: #fff; font-weight: 800; letter-spacing: -0.5px; font-size: 14px; line-height: 20px; text-transform: uppercase;  }
#contact-accordion .contact-branch-title , #contact-accordion .contact-branch-phone     { color: #000000;  }
#contact-accordion .contact-branch-card.expanded .contact-branch-toggle , #contact-accordion .contact-branch-card.expanded .contact-branch-toggle .contact-branch-title , #contact-accordion .contact-branch-card.expanded .contact-branch-toggle .contact-branch-phone{ color: #ffffff !important; }
.section-row                                  { margin-bottom: 15px; }
.order-address-card                           { max-width: 520px; }
.order-item-card                               { display: flex; align-items: flex-start; gap: 12px; }
.order-item-thumb                              { width: 64px; height: 64px; border-radius: 10px; overflow: hidden; background: #F2F4F7; flex-shrink: 0; }
.order-item-thumb img                          { width: 100%; height: 100%; object-fit: cover; display: block; }
.order-item-body                               { flex: 1; }
.order-item-title                              { font-weight: 800; color: #111; opacity: .95; }
.order-item-desc                               { color: #111; opacity: .85; font-size: 14px; line-height: 20px; }
.order-item-price                              { margin-top: 8px; font-weight: 700; color: #111; opacity: .9; }
/* My Orders tabs (Yii bootstrap Tabs) */
.orders-tabs.nav-tabs                          { border-bottom: 1px solid rgba(255,255,255,0.3); margin-bottom: 16px; display: flex; justify-content: space-between; }
.orders-tabs.nav-tabs > li                     { float: none; width: 33.3333%; text-align: center; }
.orders-tabs.nav-tabs > li > a                 { color: #fff; opacity: .9; font-weight: 700; letter-spacing: -0.5px; background: transparent; border: none; border-radius: 0; position: relative; }
.orders-tabs.nav-tabs > li > a:hover,
.orders-tabs.nav-tabs > li > a:focus           { background: transparent; border: none; }
.orders-tabs.nav-tabs > li.active > a,
.orders-tabs.nav-tabs > li.active > a:hover,
.orders-tabs.nav-tabs > li.active > a:focus    { color: #fff !important; border: none; background: transparent; }
.orders-tabs.nav-tabs > li.active > a::after   { content: ""; position: absolute; left: 0; right: 0; bottom: -14px; margin: 0 auto; width: 100%; height: 3px; background: #fff; border-radius: 3px; }
.orders-tab-pane                                { padding-top: 6px; }
/* Empty state for orders list */
.orders-empty                                   { text-align: center; color: #fff; padding: 48px 0 32px; }
/* Order tracking progress bar (Thank You / View Order) */
.progress-indicator                             { position: relative; margin: 24px auto 18px; max-width: 770px; display: flex; justify-content: space-between; color: #ffffff; font-size: 11px; letter-spacing: 0.8px; text-transform: uppercase; }
.progress-status                                { position: relative; flex: 1 1 0; text-align: center;}
.progress-status:before,.progress-status::after { content: ""; position: absolute; width: 50%; height: 2px; top: 18px; background-color: #E5E5E5; }
.progress-status .status-indicator              { position: relative; z-index: 5; width: 36px; height: 36px; border-radius: 999px; border: 2px solid #E5E5E5; background: transparent; display: flex; align-items: center; justify-content: center; box-shadow: 0 0 0 1px rgba(0,0,0,0.08); }
.progress-status span                           { display: inline-block; margin-top: 8px; font-size: 14px; line-height: 20px; color: #fff; text-transform: uppercase;  }
.progress-status .status-indicator::before      { content: ""; width: 12px; height: 12px; border-radius: 999px; background: transparent; }
.progress-status:before                         { left: 0; }
.progress-status::after                         { right: 0; }
/* Active / completed states */
.progress-status.accepted-status,
.progress-status.preparing-status,
.progress-status.ready-status                   { opacity: 1; font-weight: 700; }
.progress-status.accepted-status:before ,.progress-status.accepted-status:after ,.progress-status.preparing-status:before         { background-color: #FF4057; }
.progress-status.accepted-status .status-indicator { border-color: #FF4057; background: #FF4057;  }
/* Toppings loader spinner (Step 2) */
.toppings-loading { text-align: center; padding: 24px 0; color: #fff; font-size: 13px; }
.toppings-loading .spinner { width: 36px; height: 36px; border-radius: 50%; border: 3px solid rgba(255,255,255,0.3); border-top-color: #ffffff; margin: 0 auto 6px; animation: toppings-spin 0.8s linear infinite; }
.loading-mask { overflow: hidden; position: relative; pointer-events: none; opacity: 0.7; }
/* .loading-mask::before { content: ''; position: absolute; top: 50%; left: 50%; width: 20px; height: 20px; margin: -10px 0 0 -10px; border-radius: 50%; border: 2px solid rgba(255,255,255,0.3); border-top-color: #ffffff; animation: toppings-spin 0.8s linear infinite; z-index: 10; } */ /* .loading-mask { overflow: hidden; } */
/* Menu category loader overlay */
.menu-loader-overlay { position: relative; text-align: center; }
.menu-loader-overlay .spinner { width: 44px; height: 44px; border-radius: 50%; border: 3px solid rgba(255,255,255,0.3); border-top-color: #ffffff; animation: toppings-spin 0.8s linear infinite; }
/* Fullscreen loader overlay */
.fullscreen-loader { position: fixed; top: 0; left: 0; right: 0; bottom: 0; background: rgba(104, 26, 41, 0.9); display: flex; align-items: center; justify-content: center; z-index: 9999; }
.fullscreen-loader .spinner { width: 60px; height: 60px; border-radius: 50%; border: 4px solid rgba(255,255,255,0.3); border-top-color: #ffffff; animation: toppings-spin 0.8s linear infinite; }
@keyframes toppings-spin { to { transform: rotate(360deg); } }
.progress-status.accepted-status .status-indicator::before { width: 17px; height: 12px; background: url('../images/menu-icons/completed-right.svg') no-repeat center center; background-size: 14px 14px; box-shadow: none; border-radius: 999px; }
.progress-status.preparing-status .status-indicator::before,
.progress-status.ready-status .status-indicator::before { background: transparent;  border-radius: 999px; }
.progress-status.preparing-status .status-indicator              { background-color: #a12d3d; border-color: #FF4057; }
.progress-status.ready-status .status-indicator { background-color: #a12d3d; }
.progress-status.preparing-status .status-indicator::before { width: 12px; height: 12px; background-color: #FF4057; }
/* Order summary address + items (Thank You / View Order) */
.order-summary-address                           { margin: 56px auto 22px; max-width: 640px; text-align: center; }
.order-summary-address-title                     { font-weight: 800;   font-size: 14px; line-height: 20px; color: #fff; text-transform: uppercase; margin-bottom: 15px; }
.order-summary-address-text                      { font-size: 16px; line-height: 24px; color: #fff; opacity: .95; }
/* Accordions for individual order items */
.panel-group                                      { margin: 30px 0; }
.customer_order_detail_accordian                 { border-radius: 16px; overflow: hidden; border: 0; background: #fff; box-shadow: none; margin-bottom: 10px; border-radius: 10px; }
.customer_order_detail_accordian .panel          { border: 0; border-radius: 16px; background: transparent; box-shadow: none; margin-bottom: 0; }
.customer_order_detail_accordian .panel-heading  { padding: 0; border: 0; border-radius: 16px; background: transparent; }
.customer_order_detail_accordian .panel-title a  { padding: 13px; font-size: 16px; line-height: 24px; border-radius: 10px; color: #A81628; text-align: left; font-family: "Avenir LT Std", sans-serif !important;}
.customer_order_detail_accordian .panel-title a:hover,
.customer_order_detail_accordian .panel-title a:focus { text-decoration: none; background: #ffffff; }
.customer_order_detail_accordian .panel-body     { border: 0 !important; padding: 10px 0 4px; background: transparent; color: #000; }
.customer_order_detail_accordian .panel-body .customer-order-form { padding: 0 20px; }
.customer_order_detail_accordian .panel-body .customer-order-form p { color: #000; margin:10px 0;}
.customer_order_detail_accordian .cart-icon      { color: #7f2431; }
.panel-group .panel + .panel                    { margin-top: 7px; }
/* Items count and total row under accordions */
.specific-order .amount-qauntity-wrapper ,.specific-order .amount-qauntity-wrapper        { color: #ffffff; font-size: 18px; line-height: 28px; }
/* Signup stepper */
.centered-card .signup-steps                { max-width: 100%; margin: 0 auto 14px; text-align: left; }
.signup-steps                               { text-align: left; }
.signup-steps-header                        { display: flex; align-items: center; justify-content: flex-start; margin: 0 0 6px; }
.signup-step-label-top                      { color: #fff; font-weight: 800; letter-spacing: -0.5px; font-size: 14px; line-height: 20px; opacity: .9; text-transform: uppercase; }
.signup-step-label-bottom                   { color: #fff; font-weight: 800; letter-spacing: 0; font-size: 14px; line-height: 20px; opacity: .9; text-transform: uppercase; }
.progress-segments                          { width: 100%; display: grid; gap: 18px; margin: 2px 0 8px; grid-auto-flow: column; grid-auto-columns: 1fr; }
.progress-segments .segment                 { height: 6px; background: #681A29; border-radius: 6px; }
.progress-segments .segment.active          { background: #ffffff; }
.step-section                               { flex-direction: column; justify-content: space-between; gap: 10px; }
.step-section .signup-nav                   { display: flex; align-items: center; justify-content: center; gap: 12px; margin-top: 16px; }
.signup-page .address-card                  { padding:10px 15px 10px; min-height: auto; }
 .address-card-link                         { width: calc(100% - 65px); }
.signup-page  .step-section                 { min-height: calc(100vh - 447px);  }
.signup-page  #signup-step-2 .centered-form-content , .signup-page  #signup-step-3 .centered-form-content { padding-inline: 0 !important; }
/* Step 2: Address empty state */
.address-empty                              { padding: 24px 0 8px; text-align: center; }
.address-empty-title                        { color: #fff; font-weight: 800; margin: 10px 0 8px; }
.centered-card .address-empty-text          { color: rgba(255,255,255,0.85); margin: 16px auto 14px; max-width: 80%; }
.centered-card .address-empty-actions       { margin: 8px 0 6px; }

/* Address create screen */
.customer-address-create.auth-card          { background: transparent; border: 0 !important; box-shadow: none !important; padding: 0; }
.customer-address-create                    { border: 0 !important; box-shadow: none !important; }
.background-auth-gradient.auth-page         { padding-top: 90px; padding-bottom: 60px; }
.address-space-above                        { margin-top: 48px; }
.customer-address-form #gmaps-canvas        { width: 100%; height: 430px; border-radius: 12px; overflow: hidden; background: #F2F4F7; }
.customer-address-form .form-group.text-center { margin-top: 16px; }
.footer-action                                { text-align: right; }
#customer-new-address                       { color: #fff; margin-bottom: 5px; text-decoration: underline;}
/* White pill select for Address name */
.customer-address-form .field-customeraddress-address_name .form-control , .customer-order-form .field-customeraddress-address_name .form-control{ border-radius: 12px; background: #ffffff; color: #B71428;  padding: 12px 14px; border: 1px solid #fff; height: auto; }
.customer-address-form .field-customeraddress-address_name .control-label , .customer-order-form .field-customeraddress-address_name .control-label { color: #fff !important; }
/* Select2 styling to match pill select */
.customer-address-form .select2-container , .contact-form .select2-container , .customer-order-form .select2-container , .customer-schedule-order-form .select2-container { width: 100% !important; }
.select2.select2-container--default .select2-selection--single { background: #ffffff; color: #B71428; border: 1px solid #ffffff; border-radius: 12px; min-height: 48px; height: auto; box-shadow: 0 2px 6px rgba(16,24,40,0.12); }
.select2.select2-container--default .select2-selection--single .select2-selection__rendered { line-height: 48px; padding: 0 56px 0 16px; font-weight: 700; color: #B71428; text-align: center; letter-spacing: -0.3px; }
 .select2.select2-container--default .select2-selection--single .select2-selection__placeholder { color: #B71428; opacity: 1; }
.select2.select2-container--default .select2-selection--single .select2-selection__arrow { position: absolute; top: 50%; transform: translateY(-50%); height: 24px; width: 24px; display: flex; align-items: center; right: 66px; }
/* custom chevron */
.select2.select2-container--default .select2-selection--single .select2-selection__arrow b { position: unset; border: none; width: 20px; height: 20px; background-repeat: no-repeat; background-position: center; background-size: 20px 20px; display: block; margin: 0; transform: none; background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%23B71428' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>"); }
.select2.select2-container--open .select2-selection--single .select2-selection__arrow b { background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%237f2431' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 15 12 9 18 15'/></svg>"); }
.customer-order-form .select2-container--default .select2-selection--single .select2-selection__arrow { right: 37px; }
.customer-order-form .select2-container--default .select2-selection--single .select2-selection__rendered { line-height: 45px; }
.customer-schedule-order-form .select2-container--default .select2-selection--single .select2-selection__arrow { right: 37px; }
.customer-schedule-order-form .select2-container--default .select2-selection--single .select2-selection__rendered { line-height: 45px; }
/* Dropdown panel styling */
 .select2-dropdown { border: 0 !important; border-radius: 16px !important; padding: 10px 0 8px !important; background: linear-gradient(179deg, #681A29 3.93%, #BA3645 71.29%) !important; box-shadow: 0 12px 24px rgba(16,24,40,0.25) !important; overflow: hidden; }
 .select2-results__options { padding: 8px 30px !important; max-height: none !important; overflow-y: visible !important; }

/* Signup DOB dropdowns: constrain height and enable scrolling (desktop + mobile) */
.dob-select-row .select2-dropdown { overflow: visible !important; }
.dob-select-row .select2-results__options { max-height: 160px !important; /* show ~5–6 options as per design */ overflow-y: auto !important; padding-left: 16px !important; padding-right: 16px !important; }
.dob-select-row .select2-results__options::-webkit-scrollbar { width: 4px; }
.dob-select-row .select2-results__options::-webkit-scrollbar-track { background: transparent; }
.dob-select-row .select2-results__options::-webkit-scrollbar-thumb { background: #fff; border-radius: 4px; }
.dob-select-row .select2-results__options::-webkit-scrollbar-thumb:hover { background: #fff; }
 .select2-results__option { color: #ffffff !important; text-align: center !important; border-radius: 10px; padding: 3px 20px !important; margin:10px 0 !important; position: relative; font-weight: 700; }
 .select2-results__option::after { content: ""; display: block; position: absolute; left: 24px; right: 24px; bottom: -5px; height: 1px; background: rgba(255,255,255,0.1); }
 .select2-results__option:last-child::after { display: none; }
/* Remove default blue highlight and use subtle tint (global fallback) */
.select2.select2-container--default .select2-results__option.select2-results__option--selected ,.select2-container--default .select2-results__option--highlighted.select2-results__option--selectable{ background-color: #681A29 !important; color: #fff !important;}

.select2.select2-container--default .select2-results__option:hover { background: #fff !important; color: #A81628 !important; }
/* Centered pill select with custom red caret */
select.form-control                         { -webkit-appearance: none; /* Safari/Chrome */ -moz-appearance: none;    /* Firefox */ appearance: none; background-color: #fff; color: #7f2431; font-weight: 700; border: 1px solid #fff; border-radius: 51px 0 51px 0; padding: 12px 44px 12px 24px; /* right padding for caret */ text-align: center; text-align-last: center; /* Firefox */ background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%237f2431' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>"); background-repeat: no-repeat; background-position: right 133px center; background-size: 16px 16px; }
/* More specific: ensure Address Name select shows red chevron like mock */
.field-customeraddress-address_name select.form-control { /* single chevron at right, centered text */ padding: 12px 48px 12px 24px; /* extra right space for caret */ text-align: center; text-align-last: center; /* Firefox */ background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%23A81628' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>"); background-repeat: no-repeat; background-position: right 18px center; background-size: 18px 18px; }
select.form-control:focus                   { font-size: 14px !important; outline: none; box-shadow: 0 0 0 3px rgba(255,255,255,0.3); }
/* Contact / store Select2 (mirror address styles) */
/* .contact-form-section .select2-container { width: 100% !important; } */
/* Store selection dropdown: allow scrolling but show ~9 stores with a subtle scrollbar */
.contact-select2 .select2-results__options { max-height: 360px !important; /* approx 9 options with current padding/margins */ overflow-y: auto !important; scrollbar-width: thin;              /* Firefox */ scrollbar-color: #fff transparent; }
/* WebKit scrollbar styling (Chrome, Edge, Safari) */
.contact-select2 .select2-results__options::-webkit-scrollbar { width: 4px; }
.contact-select2 .select2-results__options::-webkit-scrollbar-track { background: transparent; }
.contact-select2 .select2-results__options::-webkit-scrollbar-thumb { background: #fff; border-radius: 4px; }
.contact-select2 .select2-results__options::-webkit-scrollbar-thumb:hover { background: #fff; }

.contact-form-section .select2-container--default .select2-selection--single , .customer-order-form .select2-container--default .select2-selection--single { background: #ffffff; color: #B71428; border: 1px solid #ffffff; border-radius: 6px 40px 6px 40px !important;  }
.contact-form-section .select2-container--default.select2-container--open.select2-container--below .select2-selection--single, .contact-form-section .select2-container--default.select2-container--open.select2-container--below .select2-selection--multiple , .customer-order-form .select2-container--default.select2-container--open.select2-container--below .select2-selection--single, .customer-order-form .select2-container--default.select2-container--open.select2-container--below .select2-selection--multiple { border-radius: 6px 40px 6px 40px; }
/* Signup Step 3: address choice and captcha */
/* Edit profile DOB display label */
.dob-select-wrapper .dob-display-label      { display: none; }
.dob-select-row .select2-selection__rendered{ padding: 0 16px; } 
.dob-select-row .select2-container--default .select2-selection--single .select2-selection__arrow { right: 16px; }
/* .customer-address-list.step-3                { text-align: center; } */
#selected-address-radio.address-choice-grid  { display: flex; align-items: stretch; justify-content: center; gap: 18px; margin: 10px 0 16px; }
.address-choice-grid .address-option        { flex: 0 0 110px; background: transparent; border: 2px solid rgba(255,255,255,0.9); color: #fff; border-radius: 14px; padding: 14px 12px; text-align: center; cursor: pointer; transition: all .2s ease; white-space: normal; }
.address-choice-grid .address-option:hover,
.address-choice-grid .address-option:focus,
.address-choice-grid .address-option:active  ,
.address-choice-grid .address-option.showactive { background: #fff; color: #A81628;}
.address-choice-grid .address-option.active ,
.address-choice-grid .address-option.showactive { background: #ffffff; color: #CF152B; border-color: #ffffff; }
.address-choice-grid .address-option .ic     { width: 36px; height: 36px; margin: 0 auto 6px; display: flex; align-items: center; justify-content: center; }
.address-choice-grid .address-option .ic img {  display: block; max-width: 100%; max-height: 100%; }
.address-choice-grid .address-option .label  { font-weight: 800; font-size: 16px; line-height: 22px; }
.address-select-landing .address-choice-grid { display: flex; justify-content: center; gap: 16px; margin-top: 20px; }
.address-choice-grid .address-option:hover .label,
.address-choice-grid .address-option:focus .label,
.address-choice-grid .address-option:active .label ,
.address-choice-grid .address-option.showactive .label { color: #A81628; }
.address-choice-grid .address-option:hover .ic img,
.address-choice-grid .address-option:focus .ic img,
.address-choice-grid .address-option:active .ic img ,
.address-choice-grid .address-option.showactive .ic img { filter: none; }
.address-title                                { margin-top: 20px; }
.address-select-landing .address-helper-text { margin-top: 35px; color: #fff; opacity: .9; }
.address-select-landing .address-option { border: 2px solid #fff; color: #fff; background: transparent; font-weight: 700; padding: 16px 28px; min-width: 316px; }

.collection-page .centered-card-wrapper .address-title { margin-top: 12px; }
/* Collection page map and controls */
.collection-page .gmaps-collection-canvas { width: 100%; height: 380px; border-radius: 14px; overflow: hidden; background: #ffffff; box-shadow: 0 8px 20px rgba(16,24,40,0.12); margin-top: 6px; }
/* Eat-in map should match collection styling */
.collection-page .gmaps-eatIn-canvas { width: 100%; height: 380px; border-radius: 14px; overflow: hidden; background: #ffffff; box-shadow: 0 8px 20px rgba(16,24,40,0.12); margin-top: 6px; }
/* Delivery map should match collection styling */
.collection-page .gmaps-delivery-canvas { width: 100%; height: 380px; border-radius: 14px; overflow: hidden; background: #ffffff; box-shadow: 0 8px 20px rgba(16,24,40,0.12); margin-top: 6px; }
.collection-page .collection-curbside-row { margin-top: 16px; align-items: flex-start; gap: 24px; }
.collection-page .curbside-hint { margin-left: 0; margin-top: 8px; color: #ffffff; opacity: .9; font-size: 14px; max-width: 520px; }
.collection-page .field-branch-id { margin-bottom: 20px; }
.collection-page .map-hint { color: #ffffff; opacity: .85; margin-top: 8px; }
.collection-page label.control-label { color: #ffffff; font-weight: 700; }
.collection-page .curbside-box { background: transparent; border: 0; border-radius: 0; padding: 0; color: #ffffff; }
.collection-page .curbside-box label { color: #ffffff; }
.collection-page .curbside-instructions-box .form-group > label { display: block; color: #ffffff; font-weight: 700; margin-bottom: 6px; }
.collection-page .field-branch-id .form-control { max-width: 480px; margin-inline: auto; background: #ffffff; color: #681A29; border: 0; border-radius: 30px 05px 30px 5px; padding: 12px 48px 12px 16px; box-shadow: 0 1px 2px rgba(16,24,40,0.05); -webkit-appearance: none; -moz-appearance: none; appearance: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20' fill='none'%3E%3Cpath d='M5 7.5L10 12.5L15 7.5' stroke='%23681A29' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 133px center; background-size: 20px 20px; }
.collection-page .delivery-address-field { max-width: 520px; margin: 10px auto 8px; }
.collection-page .delivery-address-field label.control-label { color: #ffffff; font-weight: 700; margin-top: 25px; text-align: left; }
.collection-page .delivery-address-field .form-control { background: #4E1621; color: #ffffff; border: 0; border-radius: 12px; padding: 12px 14px; box-shadow: inset 0 0 0 1px rgba(255,255,255,0.08); }
/* Delivery: saved addresses pills (HOME/WORK/SCHOOL) */
.collection-page .saved-addresses-pills { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; margin: 12px auto 6px; }
.collection-page .saved-addresses-pills .btn { display: inline-flex; align-items: center; justify-content: center; max-width: 100%; margin: 0 6px; width: calc(100%/5 - 12px); word-break: break-all; padding: 4px 19px; font-size: 12px; line-height: 20px; }
.collection-page .saved-addresses-pills .btn.active { background: #FF9DA8; color: #811E31; border-color: #FF9DA8; }
.collection-btns-box { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; margin: 16px auto 0; }
.collection-page .curbside-box .curbside-checkbox { vertical-align: middle; margin-right: 6px; accent-color: #ffffff; }
.collection-page .curbside-box .form-group { margin: 0; }
.collection-page .curbside-instructions-box .form-group { margin: 0; }

/* Collection page: center footer buttons with space between */
.collection-page > .form-group { display: flex; justify-content: space-between; align-items: center; gap: 24px; max-width: 560px; margin: 16px auto 0; }
.collection-page > .form-group .btn { min-width: 240px; }

/* Footer actions (outside the card) for Collection and Eat-in */
.bottom-footer-part .collection-btns-box { display: flex; align-items: center; justify-content: center; gap: 16px 24px; width: 100%; margin: 0 auto 20px; flex-wrap: wrap; }
.bottom-footer-part .collection-btns-box .btn { border-radius: 999px; padding: 12px 28px; font-weight: 700; min-width: 240px; flex: 1 1 240px; text-align: center; }
.bottom-footer-part .collection-btns-box .btn.btn-outline-primary-light { background: transparent; color: #ffffff; border: 2px solid #ffffff; }
.bottom-footer-part .collection-btns-box .btn.btn-primary { background: #ffffff; color: #A81628; border: 1px solid #ffffff; }

/* Collection page: reuse signup step-3 switch visuals */
.collection-page .switch-field { display: flex; gap: 12px;  }
.collection-page .switch-text { width: calc(100% - 44px); color: #fff; font-weight: 700; cursor: pointer; }
.collection-page .switch-input { position: absolute; opacity: 0; width: 1px; height: 1px; overflow: hidden; }
.collection-page .switch { position: relative; width: 44px; height: 24px; border-radius: 999px; display: inline-block; cursor: pointer; }
.collection-page .switch-track { position: absolute; inset: 0; background: #ffffff; opacity: 0.9; border-radius: 999px; box-shadow: inset 0 0 0 2px rgba(255,255,255,0.9); transition: background .2s ease, box-shadow .2s ease; }
.collection-page .switch-knob { position: absolute; top: 3px; left: 3px; width: 18px; height: 18px; background: #fff; border-radius: 50%; transition: left .2s ease, background .2s ease; box-shadow: 0 1px 2px rgba(0,0,0,0.15); }
.collection-page .switch-input:checked + .switch .switch-track { background: #BA3645; box-shadow: none; }
.collection-page .switch-input:checked + .switch .switch-knob { left: 23px; background: #fff; }
.collection-page .switch-input:focus + .switch .switch-track { outline: 2px solid rgba(255,255,255,0.4); outline-offset: 2px; }

/* Single scroll behavior: allow page scroll, prevent nested scrolls */
html, body { height: auto; overflow: auto; }
.account-view.auth-form,
.centered-content-container,
.centered-form-content { overflow: visible; }

/* Mobile tweaks: reduce map height to avoid excessive inner scrolling */

/* Reduce vertical chrome on small screens for less scrolling */
.address-select-landing .address-pill-top { border-radius: 40px 10px 40px 10px; }
.address-select-landing .address-pill-left { border-radius: 40px 10px 40px 10px; }
.address-select-landing .address-pill-right { border-radius: 40px 10px 40px 10px; }
.customer-address-list.step-3 .step-3-actions { display: flex; flex-direction: column; gap: 10px; align-items: self-start; margin: 8px 0 16px; }
.customer-address-list.step-3 .step-3-actions .checkbox label { color: #fff; font-weight: 700; }
.customer-address-list.step-3 .captcha-block { display: flex; align-items: center; justify-content: center; gap: 16px; margin: 10px 0 14px; }
.customer-address-list.step-3 .captcha-image img { border-radius: 8px; display: block; }
.customer-address-list.step-3 .captcha-input input { width: 260px; max-width: 100%; background: #681A29; color: #fff; border: 0; border-radius: 10px; padding: 12px; }
/* Step 3 switches (instead of checkboxes) */
.customer-address-list.step-3 .step-3-actions { gap: 16px; }
.customer-address-list.step-3 .switch-field { display: flex; align-items: center; gap: 12px; }
.customer-address-list.step-3 .switch-text { color: #fff; font-weight: 500; cursor: pointer; }
.customer-address-list.step-3 .switch-text a { color: #fff; }
.customer-address-list.step-3 .switch-input { position: absolute; opacity: 0; width: 1px; height: 1px; overflow: hidden; }
.customer-address-list.step-3 .switch { position: relative; width: 44px; height: 24px; border-radius: 999px; display: inline-block; cursor: pointer; }
.customer-address-list.step-3 .switch-track { position: absolute; inset: 0; background: #ffffff; opacity: 0.9; border-radius: 999px; box-shadow: inset 0 0 0 2px rgba(255,255,255,0.9); transition: background .2s ease, box-shadow .2s ease; }
.customer-address-list.step-3 .switch-knob { position: absolute; top: 3px; left: 3px; width: 18px; height: 18px; background: #fff; border-radius: 50%; transition: left .2s ease, background .2s ease; box-shadow: 0 1px 2px rgba(0,0,0,0.15); }
.customer-address-list.step-3 .switch-input:checked + .switch .switch-track { background: #BA3645; box-shadow: none; }
.customer-address-list.step-3 .switch-input:checked + .switch .switch-knob { left: 23px; background: #fff; }
.customer-address-list.step-3 .switch-input:focus + .switch .switch-track { outline: 2px solid rgba(255,255,255,0.4); outline-offset: 2px; }

/******** Welcome modal (design only) ********/
.modal-header { display: none; }
.modal-centered .modal-dialog               { position: fixed; top: 50%; left: 50%; transform: translate(-50%, -50%) !important; margin: 0; width: 520px; max-width: calc(100% - 32px); }
.modal.modal-centered .modal-dialog         { transform: translate(-50%, -50%) !important; }
.modal.fade.modal-centered .modal-dialog    { -webkit-transform: translate(-50%, -50%) !important; -ms-transform: translate(-50%, -50%) !important; transform: translate(-50%, -50%) !important; }
.modal-content                              { border-radius: 16px; border: 0; box-shadow: 0 10px 25px rgba(16,24,40,0.15); }
.modal-content .modal-body                  { padding: 20px 24px; }
.order-welcome-close                        { position: absolute; top: 12px; right: 12px; background: transparent; border: 0; padding: 0; line-height: 1; font-size: 22px; color: #475467; cursor: pointer; }
.order-welcome-icon                         { width: 48px; height: 48px; text-align: left;  margin: 6px 0 10px; font-size: 16px; }
.order-welcome-title                        { margin: 0 0 8px; font-size: 18px; line-height: 1.4; color: #111; font-weight: 700; font-family: "Avenir LT Std", sans-serif !important; }
/* Terms & Conditions modal */
#customer-terms-and-condition.modal         { padding: 16px; }
#customer-terms-and-condition .modal-dialog { width: 840px; max-width: calc(100% - 32px); margin: 0 auto; }
#customer-terms-and-condition .modal-content{ border-radius: 16px; border: 0; box-shadow: 0 10px 30px rgba(16,24,40,0.25); background: #ffffff; }
#customer-terms-and-condition .modal-header { border: 0; padding: 14px 18px 0; }
#customer-terms-and-condition .modal-title  { font-weight: 800; color: #111; }
#customer-terms-and-condition .close        { opacity: .6; font-size: 24px; outline: none; }
#customer-terms-and-condition .close:hover  { opacity: 1; }
#customer-terms-and-condition .modal-body   { padding: 16px 20px 22px; color: #344054; line-height: 1.6; max-height: 70vh; overflow: auto; }
#customer-terms-and-condition .modal-body h1,
#customer-terms-and-condition .modal-body h2,
#customer-terms-and-condition .modal-body h3 { color: #111; font-weight: 800; margin-top: 10px; }
#customer-terms-and-condition .modal-footer { border: 0; padding: 0 20px 18px; }

/* Make the modal safely scrollable within viewport */
.modal-open .modal                          { overflow-y: auto; }
#customer-terms-and-condition .modal-dialog { max-height: 90vh; display: flex; align-items: stretch; }
#customer-terms-and-condition .modal-content{ max-height: 90vh; display: flex; flex-direction: column; }
#customer-terms-and-condition .modal-body   { flex: 1 1 auto; overflow: auto; -webkit-overflow-scrolling: touch; }
#customer-terms-and-condition .modal-header,
#customer-terms-and-condition .modal-footer { flex: 0 0 auto; }
.btn.order-welcome-cta                          { background: #CF152B; color: #fff; display: inline-block; border-color: #CF152B; border-radius: 20px; padding: 9px 14px; max-width: none; text-align: center; width: auto; font-size: 14px; line-height: 20px; border-radius: 50px; letter-spacing: 0; }
.order-welcome-cancel                       { display: inline-block; margin-right: 16px; cursor: pointer; }
.btn.order-welcome-cta:hover                    { background: #b01022; border-color: #b01022; }
/* Vertically center the previous item confirmation modal */
#previous-item-modal .modal-dialog           { display: flex; align-items: center; min-height: calc(100vh - 40px); margin: 30px auto; }
/* softer backdrop like screenshot */
.modal-backdrop.in                          { opacity: .25; }
/* keep modal above fixed header on small screens */
.modal.modal-centered                        { z-index: 10; }
.modal-backdrop.in                           { z-index: 9; }
/* Address form modal: look like full page design */
#customer-address-form-modal                 { padding: 16px; }
#customer-address-form-modal .modal-dialog   { width: 1040px; max-width: calc(100% - 32px); margin: 0 auto; }
#customer-address-form-modal .modal-content  { background-image: linear-gradient(125.86deg, #681A29 3.93%, #BA3645 71.29%); background-color: #681A29; border: 0; border-radius: 20px; box-shadow: 0 10px 25px rgba(16,24,40,0.25); }
#customer-address-form-modal .modal-header,
#customer-address-form-modal .modal-footer   { display: none; }
#customer-address-form-modal .modal-body     { padding: 30px 24px 22px; }
/* inner spacing similar to page */
#customer-address-form-modal .customer-address-form #gmaps-canvas { height: 420px; }
/* center footer actions like screenshot */
#customer-address-form-modal .footer-action  { text-align: center; }
#customer-address-form-modal .btn.btn-primary{ background: #ffffff; color: #A81628; border: 1px solid #ffffff; border-radius: 25px; }
#customer-address-form-modal .btn.btn-primary:hover { background: transparent; color: #ffffff; }
/* Contact page redesign */
.contact-store-grid                         { margin-top: 14px; display: flex; flex-wrap: wrap;  }
.contact-store-grid-item                    { width: calc(100%/3); padding: 8px 16px; }
/* responsive rules for contact-store-grid moved to unified blocks below */
.contact-branch-card                        { background: #ffffff; border-radius: 12px; padding: 0; color: #7f2431; box-shadow: 0 1px 2px rgba(16,24,40,0.10);  overflow: hidden; border: 2px solid transparent; transition: border-color .2s ease, box-shadow .2s ease, background .2s ease; }
/* Expanded state matches design: maroon card, white border, white text */
.contact-branch-card.expanded               { background: transparent; border-color: #ffffff; box-shadow: 0 4px 14px rgba(16,24,40,0.15); }
.contact-branch-toggle                      { width: 100%; background: #fff; border: 0; text-align: left; padding: 14px 16px; position: relative; display: block; cursor: pointer; border-radius: 12px; }
.contact-branch-card.expanded .contact-branch-toggle { background: transparent; padding: 14px 16px 10px;  }
.contact-branch-title                       { font-weight: 800; letter-spacing: 0; font-size: 14px; line-height: 1.2; color: #7f2431; margin: 0 0 15px; }
.contact-branch-card.expanded .contact-branch-title { color: #ffffff; }
.contact-branch-phone                       { font-size: 14px; line-height: 20px; color: #681A29; opacity: .9; }
.contact-branch-card.expanded .contact-branch-phone { color: #ffffff; opacity: 1; }
/* Toggle icon: collapsed = solid red; expanded = outlined white at bottom-right */
.contact-branch-icon                        { position: absolute; right: 9px; top: 14px; width: 28px; height: 28px; border-radius: 8px; background: #BA3645; color: #fff; font-weight: 400; font-size: 22px; display: inline-flex; align-items: center; justify-content: center; align-self: flex-end;}
.contact-branch-card.expanded .contact-branch-icon { background: transparent; border: 2px solid #ffffff; color: #ffffff; }

/* Body area: white rounded map container over maroon */
.contact-branch-body                        { background: transparent;  border-top: 0; }
.contact-branch-card.expanded .contact-branch-body { padding: 4px 14px 16px; }
.contact-branch-body p                      { color: #ffffff; margin: 0 0 8px; text-align: left !important; text-transform: uppercase; font-weight: 800; letter-spacing: -0.5px; }
.contact-branch-card.expanded .contact-branch-body .branch-detail-class { padding: 0; }
.branch-address                             { width: 100%; height: 219px; border-radius: 12px; overflow: hidden; background: #ffffff; }
/* Normalize branchDetail partial structure inside card */
.branch-detail-class.form-group             { margin: 0; }
.branch-detail-class .col-sm-12             { float: none; width: 100%; padding: 0; }
.contact-form-section                       { margin-top: 28px; }
.contact-form-section h2                    { margin-top: 30px; margin-bottom: 8px; }
.contact-form-section p { color: rgba(255,255,255,0.9); }

/* Contact form fields (standardized) */
.contact-form .form-group { margin-bottom: 18px; }
.contact-form .control-label { color: #fff; font-weight: 700; margin-bottom: 8px; display: block; }
.contact-form .contact-phone-field          { display: flex; align-items: center; gap: 8px; }
.contact-form .contact-phone-code           { -webkit-appearance: none; -moz-appearance: none; appearance: none; background: #fff; color: #681A29; border: 0; border-radius: 12px; padding: 10px 14px; min-width: 82px; height: 44px; box-shadow: 0 1px 2px rgba(16,24,40,0.05); background-image: url("data:image/svg+xml,%3Csvg width='18' height='18' viewBox='0 0 20 20' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M5 7l5 5 5-5' stroke='%23681A29' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 10px center; background-size: 18px 18px; }
.contact-form #contact-phone-number         { height: 44px; }

/* Submit button area: keep existing theme but ensure spacing matches */
.contact-form .bottom-footer-part           { margin-top: 8px; }
.contact-form .footer-action .btn.btn-primary { border-radius: 24px; padding: 10px 28px; font-weight: 700; }


/* Intl Tel Input: separate dial code as white pill, input as dark field */
.iti__flag-container                        { position: unset; }
.iti                                        { width: 100%; display: flex; align-items: center; }
.iti--separate-dial-code .iti__selected-flag { background: #4E1621 !important; color: #ffffff; border-radius: 12px; padding: 10px 12px 10px 8px; box-shadow: none; margin-right: 8px; height: 44px; display: inline-flex; align-items: center; width: 96px; justify-content: center; }
.iti--separate-dial-code .iti__selected-dial-code { color: #ffffff; font-weight: 400; }
/* Replace default triangle with custom chevron icon */
.iti__arrow                                 { width: 14px; height: 14px; border: 0; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23FFFFFF' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: center; background-size: 14px 14px; }
/* Keep same look on hover/focus */
.iti__selected-flag:hover,
.iti__selected-flag:focus                   { background: #4E1621; box-shadow: none; }
.iti__country-list                          { background: #7f2431; color: #fff; border-radius: 12px; box-shadow: 0 8px 20px rgba(0,0,0,.25); border: 0; }
/* Remove hover highlight from dropdown items */
.iti__country:hover                         { background: transparent; }
.iti__country-name, 
.iti__dial-code                             { color: #fff; }
 input#contact-phone-number.form-control    { background: #4E1621; border-radius: 12px; padding-left: 12px !important; }
.iti__selected-flag .iti__flag              { margin-right: 6px; }
.iti--allow-dropdown input, .iti--allow-dropdown input[type=text], .iti--allow-dropdown input[type=tel], .iti--separate-dial-code input, .iti--separate-dial-code input[type=text], .iti--separate-dial-code input[type=tel] { padding-left:16px !important; }
/* Generic select on signup: white pill with chevron */
select.form-control                         { -webkit-appearance: none; -moz-appearance: none; appearance: none; background-color: #fff; color: #681A29; border: 0; border-radius: 51px 0 51px 0; padding: 12px 44px 12px 16px; box-shadow: 0 1px 2px rgba(16,24,40,0.05); background-image: url("data:image/svg+xml,%3Csvg width='20' height='20' viewBox='0 0 20 20' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M5 8l5 5 5-5' stroke='%23681A29' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 14px center; background-size: 20px 20px; }
select.form-control:focus                   { outline: none; box-shadow: 0 0 0 3px rgba(255,255,255,0.25); }

.contact-form-grid                          { display: flex; flex-wrap: wrap; gap: 16px 18px; }
.contact-form-grid .cf-item                 { min-width: 0; }
.contact-form-grid .cf-1-2                  { flex: 1 1 calc(50% - 9px); }
.contact-form-grid .cf-full                 { flex: 0 0 100%; }
/* Menu page footer (menu.php) */
.menu-page .menu-cat-strip                  { gap: 25px; max-width: 1100px; margin: 0 auto; justify-content: center; }
.menu-page .menu-cat-strip .address-option  { width: 148px; height: 148px; flex: 0 0 148px; }
.menu-page .menu-cat-strip .address-option .ic { width: 70px; height: 70px; }
.menu-page .menu-cat-strip .address-option .ic img{ width: 70px;  }
#cart-summary                               { display: none; }
.bg-visible .footer-action::after                        { content: ""; position: absolute; bottom:0px; left: 50%; transform: translateX(-50%); width: calc(100% + 27%); height: calc(100% + 14px); border-radius: 30px 30px 0px 0; background: #681A29; z-index: -1; box-shadow: 0px -7px 10px -2px #10182880; }
.menu-footer-action                          { display: flex; align-items: center; flex-wrap: wrap; position: relative; justify-content: space-between; padding: 24px 0; }
.menu-footer-action .total-display           { color: #ffffff; font-size: 18px; display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.menu-footer-action .total-label             { font-weight: 400; }
.menu-footer-action .total-amount            { font-weight: 400; font-size: 20px; color: #fff; display: block; }
.menu-footer-action .footer-buttons          { display: flex; justify-content: center; gap: 12px; }
.menu-footer-action .btn-footer              { padding: 7px 22px; min-width: 180px; border-radius: 25px; font-weight: 600; font-size: 14px; display: inline-flex; align-items: center; gap: 8px; position: relative; }
.menu-footer-action .btn-footer .btn-icon    { width: 20px; height: 20px; display: inline-block; }
.menu-footer-action .btn-footer .cart-count  { background: #ffffff; color: #A81628; border-radius: 50%; width: 24px; height: 24px; display: inline-flex; align-items: center; justify-content: center; font-size: 12px; font-weight: 700;  }
/* iOS Safari only - fixes vertical alignment of cart count number */
@supports (-webkit-touch-callout: none) {
  .menu-footer-action .btn-footer .cart-count span { padding-top: 2px; }
}
.menu-footer-action .btn-outline-light       { background: transparent; border: 2px solid #ffffff; color: #ffffff; }
.menu-footer-action .btn-outline-light:hover { background: rgba(255,255,255,0.1); color: #ffffff; text-decoration: none; }

/* Header nav cart count badge (View cart in top menu) */
.navbar-andiccio .navbar-nav > li > a .cart-count { border-radius: 50%; border: 1px solid #ffffff; width: 24px; height: 24px; padding: 4px; display: inline-flex; align-items: center; justify-content: center; font-size: 14px; line-height: 18px; font-weight: 700; margin-left: 4px; font-family: 'Outfit', sans-serif !important; }

/* Category options page (intermediate page before menu) */
.tab-content                                 { padding: 0; }
.template-category-title ,.template-category-subtitle   { margin-bottom: 30px !important; }
.category-options-page .category-options-title { font-family: 'Lobster', cursive; }
.category-buttons-row                        { display: flex; gap: 20px; justify-content: center; flex-wrap: wrap; max-width: 642px; margin: 0 auto; }
.category-buttons-row .address-option        { flex: 0 0 calc(50% - 10px); max-width: calc(50% - 10px); min-width: calc(50% - 10px); border: 2px solid #ffffff; background: transparent; color: #ffffff; font-weight: 700; padding: 19px 28px; border-radius: 30px; font-size: 20px; line-height: 28px; box-shadow: 0px 10px 15px -3px #1018281A;}
.category-buttons-row .category-pill-left    { border-radius: 40px 10px 40px 10px; }
.category-buttons-row .category-pill-right   { border-radius: 10px 40px 10px 40px; }
.category-buttons-row .address-option:hover  { background: #fff; text-decoration: none; color: #CF152B; }

/* Pre-built items card layout - High priority selectors */
.prebuilt-category-section                  { margin-bottom: 40px; }
.prebuilt-category-title                    { margin: 20px 0;  }
.prebuilt-items-grid                        { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }

/* Card container with high specificity */
.prebuilt-items-grid .prebuilt-item-card    { display: flex !important; align-items: center; background: #ffffff !important; border-radius: 8px !important; padding: 8.5px 15px !important; gap: 16px !important; box-shadow: 0 2px 4px rgba(0,0,0,0.1) !important; cursor: default !important; transition: all 0.3s ease !important; border: 2px solid transparent !important; position: relative; /* allow absolute-positioned badge */ }

/* Only show pointer when the card is actually editable (has an edit URL) */
.prebuilt-items-grid .prebuilt-item-card[data-edit-url] { cursor: pointer !important; }

.prebuilt-items-grid .prebuilt-item-card:hover { box-shadow: 0 4px 8px rgba(0,0,0,0.15) !important; transform: translateY(-2px) !important; cursor: pointer !important;}

/* Single class for static promo badge */
.promo-badge                                { height: 20px !important; padding: 0 12px !important; background: #16A34A !important; /* green */ color: #ffffff !important; border-radius: 999px !important; font-weight: 500 !important; font-size: 10px !important; line-height: 20px !important; text-transform: uppercase; z-index: 1 !important; font-family: 'Outfit', sans-serif !important; }

/* Image container */
.prebuilt-items-grid .prebuilt-item-card .prebuilt-card-image { flex-shrink: 0 !important; width: 85px !important; height: 85px !important; border-radius: 6px !important; overflow: hidden !important; background: #f5f5f5 !important; }
.prebuilt-items-grid .prebuilt-item-card .prebuilt-card-image .item-image { width: 100% !important; height: 100% !important; object-fit: cover !important; display: block !important; }
.prebuilt-items-grid .prebuilt-item-card .prebuilt-card-image img { width: 100% !important; height: 100% !important; object-fit: cover !important; display: block !important; }

/* Content container */
.prebuilt-items-grid .prebuilt-item-card .prebuilt-card-content { flex: 1 !important; min-width: 0 !important; }
.prebuilt-items-grid .prebuilt-item-card .prebuilt-item-header { margin-bottom: 5px !important; gap: 16px !important; }

.prebuilt-items-grid .prebuilt-item-card .prebuilt-item-name { font-size: 14px !important; font-weight: 700 !important; color: #000000 !important; line-height:20px !important; }

.prebuilt-items-grid .prebuilt-item-card .prebuilt-item-price { font-size: 14px !important; line-height: 20px; font-weight: 700 !important; color: #000000 !important; white-space: nowrap !important; }

.prebuilt-items-grid .prebuilt-item-card .prebuilt-item-description { margin-bottom: 10px; font-size: 12px !important; line-height: 18px; font-weight: 400 !important; color: #000000 !important; line-height: 1.4 !important; display: -webkit-box !important; -webkit-line-clamp: 2 !important; line-clamp: 2 !important; -webkit-box-orient: vertical !important; overflow: hidden !important; }

/* Action container */
.prebuilt-items-grid .prebuilt-item-card .prebuilt-card-action { flex-shrink: 0 !important; width: 100%; align-self: flex-end !important; position: relative !important; display: flex !important; align-items: center !important; justify-content: space-between !important; }
.prebuilt-items-grid .prebuilt-item-card.topping-item-card { position: relative; }
.prebuilt-items-grid .prebuilt-item-card.topping-item-card .prebuilt-card-action { position: unset !important; }
.prebuilt-items-grid .prebuilt-item-card .prebuilt-card-action.quantity-container-box { display: flex !important; align-self: center !important; width: auto; }
/* Add button for prebuilt items - Main button (initially visible)
   Do NOT force display here so JS can hide it (prevents duplicate '+'). */
.prebuilt-items-grid .prebuilt-item-card .prebuilt-card-action > .btn-add-prebuilt { width: 20px !important; height: 20px !important; border-radius: 6px !important; background: #B71428 !important; color: #ffffff !important; border: none !important; font-size:16px !important; font-weight: 700 !important; /* display intentionally not forced to allow JS to set display:none */ align-items: center !important; justify-content: center !important; cursor: pointer !important; transition: background 0.3s !important; line-height: 1 !important; padding: 0 !important; }

.prebuilt-items-grid .prebuilt-item-card .prebuilt-card-action > .btn-add-prebuilt:hover { background: #8a1220 !important; }

/* Quantity controls for prebuilt items (initially hidden) */
.prebuilt-items-grid .prebuilt-item-card .prebuilt-quantity-controls { display: none !important; /* Force hidden by default */ align-items: center !important; gap: 8px !important; }

/* When quantity controls are shown (via inline style or JS) */
.prebuilt-items-grid .prebuilt-item-card .prebuilt-quantity-controls[style*="display: flex"],
.prebuilt-items-grid .prebuilt-item-card .prebuilt-quantity-controls[style*="display:flex"] { display: flex !important; }

/* When quantity controls are visible, hide the main add button */
.prebuilt-items-grid .prebuilt-item-card .prebuilt-card-action .prebuilt-quantity-controls[style*="display: flex"] ~ .btn-add-prebuilt,
.prebuilt-items-grid .prebuilt-item-card .prebuilt-card-action .prebuilt-quantity-controls[style*="display:flex"] ~ .btn-add-prebuilt { display: none !important; }

.prebuilt-items-grid .prebuilt-item-card .quantity-circle { width: 20px !important; height: 20px !important; border-radius: 50% !important; border: 1px solid #B71428 !important; background: #ffffff !important; color: #B71428 !important; display: flex !important; align-items: center !important; justify-content: center !important; font-size: 12px !important; font-weight: 700 !important; }

/* Plus button inside quantity controls */
.prebuilt-items-grid .prebuilt-item-card .prebuilt-quantity-controls .btn-add-prebuilt { width: 20px !important; height: 20px !important; border-radius: 6px !important; background: #B71428 !important; color: #ffffff !important; border: none !important; font-size: 16px !important; font-weight: 700 !important; display: flex !important; align-items: center !important; justify-content: center !important; cursor: pointer !important; line-height: 1 !important; padding: 0 !important; }
/* Create your own pizza section styles */
.create-section-header                                          { margin-bottom: 10px; }
.create-title                                                   { font-size: 32px; font-weight: 400; color: #ffffff; margin: 30px 0 20px; font-style: normal; }

/* Schedule order page quantity layout */
.schedule-quantity-row                                          { display: flex; align-items: center; gap: 8px; }
.schedule-quantity-input                                        { flex: 1 1 auto; position: relative; }
/* Keep +/- on same line, tight to right of input */
.schedule-quantity-buttons                                      { display: inline-flex; align-items: center; gap: 0; margin-left: 12px; position: absolute; right: 20px; top:calc(50% + 5px); }
/* Visual-only +/- controls: no surrounding box, only a separator between them */
.schedule-qty-btn                                               { padding: 0; border: none; background: transparent; color: #ffffff;  box-shadow: none; }
.schedule-qty-btn-minus                                         {  width: 15px; height: 15px; background: transparent url('../images/menu-icons/decrese-ic.svg') no-repeat center center; background-size: contain; }
.schedule-qty-btn-plus                                          {  width: 15px; height: 15px; background: transparent url('../images/menu-icons/increase-ic.svg') no-repeat center center; background-size: contain; }
.schedule-qty-btn[disabled]                                     { opacity: 1; }
/* Vertical separator between - and + as its own element */
.schedule-qty-separator                                         { display: inline-block; width: 1px; height: 18px; background: rgba(255,255,255,0.8); margin: 0 10px; }
.customer-schedule-order .schedule-quantity-input .form-group   { margin-bottom: 0; }
.customer-schedule-order                                        { overflow-x: hidden; }
.create-title .uppercase                                        { font-weight: 500; font-style: normal; }
.step-label                                                     { font-size: 14px; font-weight: 700; color: #ffffff; letter-spacing: -0.5px; margin-bottom: 8px; opacity: 0.9; }
fieldset                                                        { border: none; padding: 0; }  

/* Schedule order date-time picker - match new gradient design */
.customer-schedule-order .bootstrap-datetimepicker-widget       {  background: #681A29; border-radius: 18px; border: 0; box-shadow: 0; color: #ffffff; padding:12px 24px; margin-top: 8px; width: auto !important; }
.customer-schedule-order .bootstrap-datetimepicker-widget table { background: transparent; color: #ffffff; border-collapse: separate; border-spacing: 11px 8px; }
.customer-schedule-order .bootstrap-datetimepicker-widget table thead tr:first-child th { margin-bottom:24px; border-bottom: none; }

/* Header: month + arrows */
.customer-schedule-order .bootstrap-datetimepicker-widget .picker-switch { font-size: 18px; line-height: 28px; font-weight: 600; color: #ffffff;  }
.customer-schedule-order .bootstrap-datetimepicker-widget .picker-switch:hover   { background-color: transparent; }
.customer-schedule-order .bootstrap-datetimepicker-widget th.prev,
.customer-schedule-order .bootstrap-datetimepicker-widget th.next { padding: 0; width: auto; height: auto;  /* keep existing background/color */ text-align: center; vertical-align: middle; }
.customer-schedule-order .bootstrap-datetimepicker-widget th.prev span,
.customer-schedule-order .bootstrap-datetimepicker-widget th.next span { display: inline-block; width: 36px; height: 36px; line-height: 36px; text-indent: -9999px; /* hide default chevron character */ background-repeat: no-repeat; background-position: center; background-size: 12px 12px; border-radius: 50%; background-color: #fff; }
.customer-schedule-order .bootstrap-datetimepicker-widget th.prev span { background-image: url('../images/menu-icons/left-arrow.svg'); }
.customer-schedule-order .bootstrap-datetimepicker-widget th.next span { background-image: url('../images/menu-icons/left-arrow.svg'); transform: rotate(180deg); }
/* Month/year header cell takes full width minus two 36px arrow cells */
.customer-schedule-order .bootstrap-datetimepicker-widget th.picker-switch { width: calc(100% - 72px); }
.customer-schedule-order .bootstrap-datetimepicker-widget th.prev:hover,
.customer-schedule-order .bootstrap-datetimepicker-widget th.next:hover { background: none; }

/* Day grid */
.customer-schedule-order .bootstrap-datetimepicker-widget td,
.customer-schedule-order .bootstrap-datetimepicker-widget th.dow { color: #ffffff; }
.customer-schedule-order .bootstrap-datetimepicker-widget td.day { border-radius: 999px; width: 36px; height: 36px; }
.customer-schedule-order .bootstrap-datetimepicker-widget td.day:hover { background: rgba(255,255,255,0.12); }
.customer-schedule-order .bootstrap-datetimepicker-widget td.active,
.customer-schedule-order .bootstrap-datetimepicker-widget td.active:hover { background: #B71428; color: #fff; }

/* Bottom actions (time / close icons) */
.customer-schedule-order .bootstrap-datetimepicker-widget .picker-switch a,
.customer-schedule-order .bootstrap-datetimepicker-widget .btn,
.customer-schedule-order .bootstrap-datetimepicker-widget .glyphicon { text-shadow: none; }
.customer-schedule-order .bootstrap-datetimepicker-widget .btn-default { padding: 0; background: transparent; border-color: rgba(255,255,255,0.3); color: #ffffff; border-radius: 999px; }
.customer-schedule-order .bootstrap-datetimepicker-widget .btn-default:hover { background: rgba(0,0,0,0.16); color: #ffffff; }

/* Ensure popup width feels like the design */
.customer-schedule-order .bootstrap-datetimepicker-widget.dropdown-menu { width: 320px; max-width: 100%; overflow-x: hidden; }

/* Progress bar for pizza steps */
#pizza-progress                                                  { width: 100%; display: grid; grid-template-columns: 1fr 1fr; gap: 18px; margin: 8px 0 6px; }
#pizza-progress .segment                                        { height: 6px; background: #681A29; border-radius: 6px; transition: background 0.3s; }
#pizza-progress .segment.active                                 { background: #ffffff; }
.step-section-title                                             { font-size: 16px; line-height: 20px; font-weight: 500; color: #ffffff; margin: 6px 0 20px 0; }
.base-category-title                                            { font-size: 32px; line-height: 1.3; font-weight: 400; color: #ffffff; margin: 20px 0; display: flex; align-items: center; justify-content: space-between; cursor: pointer;  }
.base-category-title .toggle-icon                               { transition: transform 0.3s; }
.base-category-title.active .toggle-icon                        { transform: rotate(180deg); }
.base-category-description                                      { color: #ffffff; opacity: 0.8; font-size: 14px; margin-bottom: 20px; }
/* Radio button for base selection */
.base-radio-button                                                { position: absolute; opacity: 0; width: 0; height: 0; }
/* Hide the form field wrapper and any extra elements */
.prebuilt-items-grid .prebuilt-item-card .prebuilt-card-action .field-base-name { margin: 0 !important; padding: 0 !important; display: flex !important; align-items: center !important; justify-content: center !important; }
.prebuilt-items-grid .prebuilt-item-card .prebuilt-card-action .field-base-name label { display: none !important; }
.prebuilt-items-grid .prebuilt-item-card .prebuilt-card-action .field-base-name .help-block { display: none !important; }
/* Ensure only one radio button shows */
.prebuilt-items-grid .prebuilt-item-card .prebuilt-card-action .field-base-name::before, .prebuilt-items-grid .prebuilt-item-card .prebuilt-card-action .field-base-name::after { display: none !important; }
.prebuilt-items-grid .prebuilt-item-card .prebuilt-card-action .radio-button-custom { width: 20px !important; height: 20px !important; border-radius: 6px !important;            /* rounded square */ border: none !important;                  /* no border in default state */ background: #B71428 !important;           /* red fill */ position: relative !important; transition: all 0.2s ease-in-out !important; display: block !important; }
.prebuilt-items-grid .prebuilt-item-card .prebuilt-card-action:has(.base-radio-button:checked) .radio-button-custom { background: transparent !important;       /* on maroon card */ border: 1px solid #ffffff !important;     /* white outline */ }
/* Plus for default state */
.prebuilt-items-grid .prebuilt-item-card .prebuilt-card-action .radio-button-custom::before { content: '+'; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); color: #ffffff; font-size: 18px; font-weight: 500; line-height: 1; }
/* Checkmark for selected state */
.prebuilt-items-grid .prebuilt-item-card .prebuilt-card-action .radio-button-custom::after { content: ''; position: absolute; width: 7px; height: 12px; border-right: 2px solid transparent; border-bottom: 2px solid transparent; top: 50%; left: 50%; transform: translate(-50%, -63%) rotate(45deg); display: none; }
.prebuilt-items-grid .prebuilt-item-card .prebuilt-card-action:has(.base-radio-button:checked) .radio-button-custom::after { border-right-color: #ffffff !important; border-bottom-color: #ffffff !important; display: block !important;                /* show check */ }
/* Hide plus when selected */
.prebuilt-items-grid .prebuilt-item-card .prebuilt-card-action:has(.base-radio-button:checked) .radio-button-custom::before { display: none !important; }
.prebuilt-items-grid .prebuilt-item-card:has(.base-radio-button:checked) { border: 2px solid #ffffff !important; background: #811E31 !important; /* maroon */ }
/* Invert text colors when selected */
.prebuilt-items-grid .prebuilt-item-card:has(.base-radio-button:checked) .prebuilt-item-name, .prebuilt-items-grid .prebuilt-item-card:has(.base-radio-button:checked) .prebuilt-item-price { color: #ffffff !important; }
.prebuilt-items-grid .prebuilt-item-card:has(.base-radio-button:checked) .prebuilt-item-description { color: rgba(255,255,255,0.85) !important; }
/* JS fallback: same visuals when card/action has .is-selected */
.prebuilt-items-grid .prebuilt-item-card.is-selected { border: 2px solid #ffffff !important; background: #811E31 !important; }
.prebuilt-items-grid .prebuilt-item-card.is-selected .prebuilt-item-name,
.prebuilt-items-grid .prebuilt-item-card.is-selected .prebuilt-item-price { color: #ffffff !important; }
.prebuilt-items-grid .prebuilt-item-card.is-selected .prebuilt-item-description { color: rgba(255,255,255,0.85) !important; }
.prebuilt-items-grid .prebuilt-card-action.is-selected .radio-button-custom { background: transparent !important; border: 2px solid #ffffff !important; }
.prebuilt-items-grid .prebuilt-card-action.is-selected .radio-button-custom::before { display: none !important; }
.prebuilt-items-grid .prebuilt-card-action.is-selected .radio-button-custom::after { border-right-color: #ffffff !important; border-bottom-color: #ffffff !important; display: block !important; }
/* Topping-specific grid layout (3 columns) */
.topping-items-grid                                         { grid-template-columns: repeat(3, 1fr); }
/* Checkbox for topping selection */
.topping-checkbox                                           { position: absolute; opacity: 0; width: 100%; height: 100%; left: 0; top: 0; z-index: 50; }

/* Hide generic Yii field wrappers for toppings inside action */
.prebuilt-items-grid .prebuilt-item-card .prebuilt-card-action [class^="field-"] { margin: 0 !important; padding: 0 !important; display: flex !important; align-items: center !important; justify-content: center !important; }
.prebuilt-items-grid .prebuilt-item-card .prebuilt-card-action [class^="field-"] label,
.prebuilt-items-grid .prebuilt-item-card .prebuilt-card-action [class^="field-"] .help-block { display: none !important; }

/* Checkbox control visuals for toppings (match Step 1 style) */
.prebuilt-items-grid .prebuilt-item-card .prebuilt-card-action .checkbox-custom { width: 20px !important; height: 20px !important; border-radius: 6px !important;           /* rounded square */ border: none !important;                 /* no border by default */ background: #B71428 !important;          /* red fill */ position: relative !important; transition: all 0.2s ease-in-out !important; display: block !important; }
.prebuilt-items-grid .prebuilt-item-card .prebuilt-card-action .checkbox-custom::before { content: '+'; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); color: #ffffff; font-size: 18px; font-weight: 500; line-height: 1; }
.prebuilt-items-grid .prebuilt-item-card .prebuilt-card-action .checkbox-custom::after { content: ''; position: absolute; width: 7px; height: 12px; border-right: 2px solid transparent; border-bottom: 2px solid transparent; top: 50%; left: 50%; transform: translate(-50%, -55%) rotate(45deg); display: none; }

/* Show selected state via :has() */
.prebuilt-items-grid .prebuilt-item-card .prebuilt-card-action:has(.topping-checkbox:checked) .checkbox-custom { background: transparent !important; border: 2px solid #ffffff !important; }
.prebuilt-items-grid .prebuilt-item-card .prebuilt-card-action:has(.topping-checkbox:checked) .checkbox-custom::before { display: none !important; } .prebuilt-items-grid .prebuilt-item-card .prebuilt-card-action:has(.topping-checkbox:checked) .checkbox-custom::after { border-right-color: #ffffff !important; border-bottom-color: #ffffff !important; display: block !important; }

/* JS fallback: when action has .is-selected */
.prebuilt-items-grid .prebuilt-card-action.is-selected .checkbox-custom { background: transparent !important; border: 2px solid #ffffff !important; }
.prebuilt-items-grid .prebuilt-card-action.is-selected .checkbox-custom::before { display: none !important; }
.prebuilt-items-grid .prebuilt-card-action.is-selected .checkbox-custom::after { border-right-color: #ffffff !important; border-bottom-color: #ffffff !important; display: block !important; }

/* Mirror Step 1: invert entire topping card when selected */
.prebuilt-items-grid .prebuilt-item-card:has(.topping-checkbox:checked) { border: 2px solid #ffffff !important; background: #811E31 !important; }
.prebuilt-items-grid .prebuilt-item-card:has(.topping-checkbox:checked) .prebuilt-item-name, .prebuilt-items-grid .prebuilt-item-card:has(.topping-checkbox:checked) .prebuilt-item-price { color: #ffffff !important; }
.prebuilt-items-grid .prebuilt-item-card:has(.topping-checkbox:checked) .prebuilt-item-description { color: rgba(255,255,255,0.85) !important; }
/* JS fallback */
.prebuilt-items-grid .prebuilt-item-card.is-selected .prebuilt-item-name,
.prebuilt-items-grid .prebuilt-item-card.is-selected .prebuilt-item-price { color: #ffffff !important; }
.prebuilt-items-grid .prebuilt-item-card.is-selected .prebuilt-item-description { color: rgba(255,255,255,0.85) !important; }

.checkbox-custom                                                    { width: 20px; height: 20px; border-radius: 50%; border: 2px solid #B71428; background: #ffffff; position: relative; transition: all 0.3s; }

/* ================= Soup / Extra Items Card ================= */
/* Grid for extra items to match pizza cards */
.menu-section .prebuilt-items-grid                                  { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; /* more breathing room like design */ }
/* Card layout tweaks for compact extra items */
.prebuilt-item-card                                                { display: grid; grid-template-columns: auto 1fr auto; /* image | content | actions */ align-items: center; column-gap: 12px; padding: 12px 14px; /* slightly larger padding */ background: #ffffff; border-radius: 12px; /* rounder corners */ min-height: 64px; /* unify row height */ box-shadow: 0 1px 0 rgba(16,24,40,0.06); /* subtle elevation */ }
.prebuilt-item-card .prebuilt-card-image                           { width: 40px; height: 40px; border-radius: 8px; overflow: hidden; background: #fff; box-shadow: 0 0 0 1px rgba(16,24,40,0.08) inset; }
.prebuilt-item-card .prebuilt-card-image .item-image,
.prebuilt-item-card .prebuilt-card-image .item-image-sm            { width: 100%; height: 100%; object-fit: cover; border-radius: 8px; display: block; }
.prebuilt-item-card .prebuilt-card-content                         { padding: 0; }
.prebuilt-item-card .prebuilt-item-name                            { font-size: 13px; font-weight: 800; color: #111; line-height: 1.1; margin: 0; }
.prebuilt-item-card .prebuilt-item-price                           { font-size: 12px; color: #111; opacity: 0.9; }
.prebuilt-item-card .prebuilt-item-price.strike-price               { text-decoration: line-through; }
.prebuilt-item-card .prebuilt-item-price.discount-price            { color: #15803D !important;  }
.prebuilt-item-card .prebuilt-card-action                          { display: flex; align-items: center; justify-content: flex-end; gap: 10px; }
.prebuilt-item-card .quantity-actions                              { display: inline-flex; align-items: center; gap: 10px; }
.prebuilt-item-card .quantity-actions .btn-icon                    { color: #B71428; display: inline-flex; align-items: center; justify-content: center; width: 26px; height: 26px; border-radius: 6px; background: transparent; transition: color .2s; }
.prebuilt-item-card .quantity-actions .btn-icon:hover              { background: transparent; }
.prebuilt-item-card .quantity-actions .icon-trash                  { width: 20px; height: 20px; display: block; }
.prebuilt-item-card .quantity-actions .extraCartQuantity           { min-width: 20px; text-align: center; font-weight: 700; color: #B71428; font-size: 12px; }
.prebuilt-item-card .quantity-actions .btn-icon.is-disabled        { opacity: 0.35; cursor: default; pointer-events: none; }
.prebuilt-item-card .quantity-actions .btn-minus                   { border: 1px solid #ffffff; color: #ffffff; font-weight: 700; }

/* Selected state parity (if needed when qty > 0, can be toggled via JS) */
.prebuilt-item-card.is-selected                                    { border: 2px solid #ffffff !important; background: #811E31 !important; }
.prebuilt-item-card.is-selected .prebuilt-item-name,
.prebuilt-item-card.is-selected .prebuilt-item-price               { color: #ffffff !important; }
.prebuilt-item-card.is-selected .quantity-actions .btn-icon        { background: transparent; color: #ffffff; border: 2px solid #ffffff; }
/*  */
/* .prebuilt-items-grid .prebuilt-item-card .topping-box-input         { position: absolute; left: 0; top: 0; height: 100%; opacity: 0; } */

.topping-checkbox:checked ~ .checkbox-custom ,.topping-box-input:checked ~ .checkbox-custom                      { background: #B71428; }
.topping-checkbox:checked ~ .checkbox-custom::after ,.topping-box-input:checked ~ .checkbox-custom::after                { content: '+'; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); color: #ffffff; font-size: 18px; font-weight: 700; line-height: 1; }
 
/* Drinks tabs (Cold / Hot) */
.drinks-tabs                                                        { display: flex; align-items: center; gap: 0; margin: 8px 0 14px; border-bottom: 1px solid rgba(255,255,255,0.35); }
.drinks-tabs .drinks-tab                                            { flex: 1; appearance: none; background: transparent; border: 0; color: #fff; opacity: .85; font-weight: 800; letter-spacing: -0.5px; text-transform: uppercase; font-size: 14px; line-height: 20px; padding:15px 10px; position: relative; cursor: pointer; text-align: center; }
.drinks-tabs .drinks-tab:hover                                      { opacity: 1; }
.drinks-tabs .drinks-tab.active                                     { color: #ffffff; opacity: 1; background-color: #681A29; }
.drinks-tabs .drinks-tab.active::after                              { content: ''; position: absolute; left: 0; right: 0; bottom: -1px; height: 4px; background: #ffffff; border-radius: 4px 4px 0 0; }
.drinks-tab-panel.hidden                                            { display: none; }

.prebuilt-items-grid .prebuilt-item-card:has(.topping-checkbox:checked) , .prebuilt-items-grid .prebuilt-item-card:has(.topping-box-input:checked) { border: 2px solid #fff !important; background: #811E31 !important; }
/* Pizza step footer navigation */
.pizza-step-footer                                                  { position: fixed; bottom: 0; left: 0; right: 0; background: #A81628; z-index: 999; padding: 0; }

.step-footer-action                                                { display: flex; align-items: center; justify-content: space-between; padding: 16px 24px; gap: 16px; max-width: 1200px; margin: 0 auto; }

.btn-footer-step                                                    { flex: 1; padding: 14px 24px; border-radius: 50px; font-weight: 700; font-size: 16px; transition: all 0.3s; border: 2px solid #ffffff; min-width: 140px; }

.btn-footer-step.btn-outline-light                                  { background: transparent; color: #ffffff; }

.btn-footer-step.btn-outline-light:hover                            { background: rgba(255,255,255,0.1); }

.btn-footer-step.btn-light                                          { background: #ffffff; color: #A81628; border-color: #ffffff; }

.btn-footer-step.btn-light:hover                                    { background: #f5f5f5; }

/* Step content containers */
#step-1-content, #step-2-content                                     { transition: opacity 0.3s ease-in-out; }

#step-1-content                                                      { display: block; }
#step-2-content                                                      { display: none; }
/* Menu item template cards styling */
.row.pro-row > [class*="col-"]                                       { margin-bottom: 16px; }
.row.pro-row > [class*="col-"] > .col-md-12                          { background: rgba(255,255,255,0.06); border: 1px solid rgba(255,255,255,0.15); border-radius: 12px; padding: 12px; }
.row.pro-row img.thumbnail                                            { border-radius: 10px; border: none; }
.text-danger.text-bold                                                { color: #ffccd0; }



/* Loyalty (A24 dough) page */
.loyalty-card-container                                               { margin-left: auto; margin-right: auto; }
.loyalty-card-block                                                   { background: #5F232F; border-radius: 12px; padding: 28px 24px; box-shadow: 0 2px 8px rgba(0,0,0,0.15); }
.loyalty-balance                                                      { font-size: 52px; line-height: 1; }
.loyalty-faq                                                          {  margin-left: auto; margin-right: auto; }
.loyalty-faq-title                                                    { text-align: left; font-weight: 600; }
.loyalty-faq-list                                                     { list-style: disc; padding-left: 22px; margin: 0; color: #fff; opacity: .95; text-align: left; }
.loyalty-faq-list li                                                  { margin-bottom: 6px; }
.a24-btn                                                              { max-width: 480px; border-radius: 25px 5px 25px 5px; color: #CF152B; letter-spacing: -0.5px; }

/* Balance card (points present) */
.loyalty-card-white                                                   { background: #ffffff; color: #7f2431; max-width: 580px; border-radius: 10px; padding: 12px; box-shadow: 0 2px 8px rgba(0,0,0,0.15); text-align: left; position: relative; }
.loyalty-card-ic                                                      { width: 40px; height: 40px; display: inline-block; }
.loyalty-card-subtitle                                                { margin: 10px 0 20px !important; color: #000000; opacity: .9; font-weight: 800; letter-spacing: .5px; font-size: 16px; line-height: 20px; text-transform: uppercase; }
.loyalty-card-expiry                                                  { margin-top: 32px !important; color: #000000; opacity: .9; font-weight: 800; letter-spacing: .5px; font-size: 14px; line-height: 20px; text-transform: uppercase; text-align: right; }
/* Color fixes inside white card to override global heading/paragraph colors */
.loyalty-card-white p, .loyalty-card-white h1, .loyalty-card-white h2, .loyalty-card-white h3 { color: #7f2431 !important; }
.loyalty-card-white .loyalty-card-subtitle                            { color: #000000 !important; }
.loyalty-card-white .loyalty-balance                                  { color: #A81628 !important; }
.loyalty-card-white .loyalty-card-expiry                               { color: #000000 !important; }
/* menu upsize  */
.special_instructions                                                  { background: #fff !important; color: #681A29 !important; border-radius: 14px !important; border: none !important; min-height: 120px; resize: none; font-size: 18px; line-height: 28px; font-weight: 600; box-shadow: none !important; }
.special_instructions::placeholder                                     { color: #A3A3A3; font-weight: 400; }

/* Upsize Portions modal (re-uses welcome modal look & feel) */
.customer-upsize-portion.order-welcome-modal                          { background: #ffffff; border-radius: 24px; padding: 0; max-width: 580px; margin: 0 auto; position: relative; }
.customer-upsize-portion .order-welcome-title                         { margin: 0 0 8px; font-size: 20px; line-height: 28px; font-weight: 800; color:#171717; }
.customer-upsize-portion .order-welcome-text                          { margin: 0 0 24px; font-size: 14px; line-height: 20px; color: #404040; }
.customer-upsize-portion .order-welcome-close                         { position: absolute; top: 16px; right: 20px; background: transparent; border: 0; font-size: 24px; line-height: 1; color: #7f2431; cursor: pointer; }
/* Rows of upsizeable toppings */
.customer-upsize-portion .portion-main                                 { display: flex; align-items: center; gap: 12px; padding: 10px 0; margin: 0; }
.customer-upsize-portion .topping-name-class                           { flex: 0 0 28%; max-width: 28%; font-weight: 800; letter-spacing: 0.5px; font-size: 14px; text-transform: uppercase; color: #7f2431; }
.customer-upsize-portion .portion-main > label                         { flex: 0 0 24%; max-width: 24%; display: flex; align-items: center; justify-content: flex-start; gap: 6px; font-size: 14px; line-height: 20px; color: #111111; margin: 0; }
.customer-upsize-portion .portion-main .thickness                      { font-weight: 600; text-transform: capitalize; }
.customer-upsize-portion .portion-main .topping-price-class            { margin-left: 2px; font-weight: 600; }
/* Custom radio styling for upsize options */
.customer-upsize-portion .upsize_portion_radio                          { -webkit-appearance: none; -moz-appearance: none; appearance: none; width: 18px; height: 18px; border-radius: 50%; border: 2px solid #B71428; background: #ffffff; display: inline-block; position: relative; cursor: pointer; flex-shrink: 0; }
.customer-upsize-portion .upsize_portion_radio:focus                    { outline: none; box-shadow: 0 0 0 2px rgba(183,20,40,0.25); }
.customer-upsize-portion .upsize_portion_radio:checked                   { background: #fff; border-color: #B71428; }
.customer-upsize-portion .upsize_portion_radio:checked::after            { content: ''; position: absolute; top: 50%; left: 50%; width: 9px; height: 9px; border-radius: 50%; background: #CF152B; transform: translate(-50%, -50%); }
.option-input:checked::before                                           { display: none; }
/* Footer buttons: centre on small screens, right on desktop (inherits welcome styles) */
.customer-upsize-portion .btn.order-welcome-cta { min-width: 100px; }
/* Vertically center the Upsize Portions modal */
#customer-upsize-portion-modal .modal-dialog { display: flex; align-items: center; min-height: calc(100vh - 40px); overflow-y: auto; }
#customer-upsize-portion-modal .modal-content { margin: 0 auto; }
/* Mobile layout for Upsize Portions card to match mock */
/* Order type display (order index page header) */
.menu-info-icon                              { width: 24px; height: 24px; margin-left: 8px; vertical-align: middle; opacity: 0.9; cursor: pointer; transition: opacity .2s ease; }
.menu-info-icon:hover                        { opacity: 1; }
.order-type-header                           { margin: 10px 0 24px; display: flex; align-items: center; justify-content: space-between; }
.order-type-display                          { display: flex; align-items: center; justify-content: flex-end; text-align: center;  margin: 0; }
.order-type-context-text                     { display: none; }
.order-type-change-text                      { display: none; }

/* Notifications page */
.notifications-grid                           { margin-top: 20px; }
.notifications-empty                          { margin-top: 20px; color: #fff; opacity: .9; }
.notification-card                            { border-radius: 12px; overflow: hidden; margin-bottom: 0 !important; height: 100%; }
.notification-card-body                       { background: #ffffff; }
.notification-text                            { width: 75%; }
.notification-title                           { font-weight: 800; text-transform: uppercase; font-size: 16px; line-height: 24px; color: #681A29; font-family: 'outfit', sans-serif; }
.notification-description                     { font-size: 16px; line-height:24px; font-weight: 600; margin-top: 6px; color: #171717; }
.notification-date                            { width: 25%; font-size: 11px; line-height: 16px; color: #999; }
.order-type-pill                              { display: inline-flex; align-items: center; gap: 8px; background: #ffffff; color: #A81628; padding: 5.5px 36px; border-radius: 50px; font-weight: 700; font-size: 16px; line-height: 24px; text-decoration: none; transition: all .2s ease; box-shadow: 0 2px 8px rgba(0,0,0,0.1); }

/* Notifications pagination */
.notifications-pagination                     { display: inline-flex; flex-wrap: wrap; align-items: center; justify-content: center; margin: 24px auto 0; padding-left: 0; gap: 6px; background: transparent; box-shadow: none; }
.notifications-pagination > li                { display: inline-flex; }
.notifications-pagination > li > a,
.notifications-pagination > li > span         { border: 1px solid rgba(255,255,255,0.45); border-radius: 6px; background: rgba(255,255,255,0.08); color: #ffffff; min-width: 38px; height: 38px; padding: 0 12px; display: inline-flex; align-items: center; justify-content: center; font-size: 14px; line-height: 1; font-weight: 700; }
.notifications-pagination > li.active > a,
.notifications-pagination > li.active > span  { background: #ffffff; color: #7f2431; border-color: #ffffff; }
.notifications-pagination > li.disabled > a,
.notifications-pagination > li.disabled > span { opacity: .5; cursor: default; }
.notifications-page-link                      { text-decoration: none !important; }

/* Disabled footer checkout button look */
#checkout-button.disabled                     { background-color:#EDEDED !important; border-color:#EDEDED !important; color: #A2A2A2 !important; opacity: 1; } 

#checkout-button.disabled img                 { filter: invert(82%) sepia(6%) saturate(10%) hue-rotate(314deg) brightness(79%) contrast(87%); }
/* .bottom-footer-part.bg-visible                { padding-top: 24px; }
 */
 .order-type-display                         { margin: 0; padding: 0; }
.order-type-pill:hover                       { background: #f8f8f8; color: #A81628; text-decoration: none; transform: translateY(-1px); box-shadow: 0 4px 12px rgba(0,0,0,0.15); }
.order-type-pill .order-type-icon            { display: flex; align-items: center; justify-content: center; width: 20px; height: 20px; }
.order-type-pill .order-type-icon svg        { display: block; }
.cart-order-type-pill .order-type-icon       { background: url('../images/collection-ic.svg') center/contain no-repeat; }
.cart-order-type-pill .order-type-icon svg   { display: none; }
.branch-name-display                         { margin-top: 10px; color: #ffffff; font-size: 16px; line-height: 24px; font-weight: 400; font-family: inherit; display: flex; align-items: center; justify-content: center; gap: 8px; }
.branch-name-display .branch-call-link       { color: #ffffff; margin-left: 8px; opacity: 0.9; transition: opacity .2s ease; }
.branch-name-display .branch-call-link:hover { opacity: 1; text-decoration: none; }
.last-order-link                             { text-align: center; margin: 12px 0 20px; }
.last-order-link .btn                        { font-size: 14px; padding: 8px 20px; border-radius: 20px; }

/* Menu category strip (order index page) */
.menu-cat-strip-wrapper                      { padding: 20px 0 16px; min-height: calc(100vh - 297px); display: flex; align-items: center; }
.menu-cat-strip                              { display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; }
.menu-cat-strip .address-option              { padding: 6px 6px; display: flex; align-items: center; flex-direction: column; justify-content: center; flex: 0 0 auto; width: 90px; height: 90px; border-radius: 20px 4px 20px 4px;}
.menu-section-block                          { margin-top: 18px; }
.address-choice-grid.menu-cat-strip .address-option .label { padding: 0; max-width: 100%; letter-spacing: -0.5px;  font-size: 18px; line-height: 24px; font-weight: 400; font-family: 'lobster', cursive; }
.address-choice-grid.menu-cat-strip .address-option img { filter: brightness(0) invert(1);  }
.address-choice-grid.menu-cat-strip .address-option.active img { filter: none; }
.accordion-content                           { display: none; }
.accordion-content.open                      { display: block; }
.address-choice-grid.menu-cat-strip .address-option.active .label { color: #A81628; }

/* Empty cart page */
.empty-cart-hero                              { text-align: center; color: #fff; margin: 20px 0 16px; }
.empty-cart-icon                              { margin: 10px 0 30px; }
.empty-cart-icon img                          { width: 80px; height: 80px; filter: brightness(0) invert(1); opacity: .95; }
.empty-cart-greeting                          { margin: 6px 0 4px !important; font-weight: 700; font-size: 18px; line-height: 28px; opacity: .95; }
.empty-cart-sub                               { margin: 0 0 30px !important; font-size: 18px; line-height: 28px; font-weight: 700; opacity: .9; }
.empty-cart-helper                            { text-align: center; color: rgba(255,255,255,0.9); margin: 14px 0 26px; }
.empty-cart-helper p                          { margin: 8px 0; }
.empty-cta                                    { border-radius: 40px 10px 40px 10px; letter-spacing: -0.5px; border: 0 !important; padding: 12px 28px; font-weight: 700; }
/* Cart page (view-cart with items) */
/* .cart-page .centered-card-wrapper             { padding-bottom: 10px; } */
.cart-page .cart-header h1                    { margin-bottom: 12px; }
.cart-items-grid                              { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; margin: 10px 0 32px; }
/* On the cart page we use Masonry for layout, so disable CSS Grid there */
.cart-page .cart-items-grid                   { display: block; position: relative; width: 100% !important; }
.cart-page .cart-items-grid .prebuilt-item-card { width: calc(100%/3 - 18px); margin-bottom: 18px; }
.cart-item-card                               { display: flex; background: #ffffff; border-radius: 16px; padding: 14px 16px; box-shadow: 0 2px 6px rgba(0,0,0,0.12); min-height: 160px; }
.cart-item-thumb                              { width: 90px; height: 90px; border-radius: 12px; background: #F2F4F7; margin-right: 14px; }
.cart-item-main                               { flex: 1; display: flex; flex-direction: column; justify-content: space-between; }
.cart-item-header                             { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 6px; }
.cart-item-title-block                        { max-width: 70%; }
.cart-item-title                              { font-weight: 800; font-size: 16px; color: #000000; text-transform: uppercase; letter-spacing: -0.5px; }
.cart-item-subtitle                           { font-size: 13px; color: #555; margin-top: 4px; }
.cart-item-price                              { font-weight: 800; font-size: 16px; color: #000000; }
.cart-item-body                               { font-size: 13px; color: #111; }
.cart-item-added-label                        { font-weight: 800; text-transform: uppercase; font-size: 11px; color: #B71428; margin-bottom: 2px; }
.cart-item-added-list                         { list-style: none; margin: 0; padding: 0; }
.cart-item-added-list li                      { display: flex; justify-content: space-between; }
.cart-item-added-list li .name                { font-size: 13px; }
.cart-item-footer                             { display: flex; justify-content: space-between; align-items: center; margin-top: 10px; }
.cart-item-actions a                          { color: #000;  font-size: 14px; }
.cart-item-actions a:last-child               { margin-right: 0; }
.cart-item-qty                                { display: inline-flex; align-items: center; gap: 10px; }
.cart-qty-btn                                 { width: 22px; height: 22px; border-radius: 50%; border: 1px solid #B71428; background: #ffffff; color: #B71428; display: inline-flex; align-items: center; justify-content: center; font-weight: 700; font-size: 14px; }
.cart-qty-btn:hover                           { text-decoration: none; background: #B71428; color: #ffffff; }
.qty-value                                    { min-width: 16px; text-align: center; font-weight: 700; }
.cart-secondary-row                           { display: flex; justify-content: space-between; align-items: center; gap: 20px; margin-top: 24px; margin-bottom: 36px; }
.cart-add-more-btn                            { max-width: 280px; border-radius: 999px; }
.cart-dough-box                               { flex: 0 0 380px; background: rgba(104, 26, 41, 1); border-radius: 10px; padding: 16px 22px 14px; color: #ffffff; text-align: left;  }
.cart-dough-title                             { font-weight: 800; text-transform: uppercase; font-size: 14px; margin-bottom: 6px; }
.cart-dough-text                              { font-size: 12px; color: #22C55E; font-weight: 700; text-transform: uppercase; margin-top: 6px; padding-top: 8px; border-top: 1px solid #EDEDED; }
/* ========================================
   CART ITEM HORIZONTAL LAYOUT
   ======================================== */

/* Cart promo banner (free item callout) */
.cart-banner-wrapper                          { display: flex; align-items: center; gap:10px; width: 25%; }
.checkout-bar-wrapper                         { gap:10px; }
.cart-banner-wrapper.checkout-wrapper-box     { width: auto; }
.checkout-bar-wrapper .payable-amount-wrapper { width: auto; }
/* .promo-bar-footer .footer-buttons             { width: 40%; } */
/* .promo-bar-footer.menu-footer-action          { padding-top: 0; } */
.cart-promo-banner                            { background: #ffffff; border-radius: 999px; padding: 10px 11px;  color: #A81628; gap: 10px; }
.cart-promo-pill                              { gap: 8px; }
.cart-promo-icon                              { width: 26px; height: 26px; border-radius: 999px; display: inline-flex; align-items: center; justify-content: center; }
.cart-promo-icon img                          { width: 100%; height: 100%; display: block; }
.cart-promo-text                              { font-weight: 600; font-size: 14px; line-height: 20px; letter-spacing: -0.5px; text-align: left; }
.cart-promo-cta                               { border-radius: 999px; width: auto; background: #A81628; color: #ffffff; font-weight: 700; padding: 6px 16px; border: none; font-size: 12px; line-height: 18px; }
.cart-promo-cta:hover, .cart-promo-cta:focus  { color: #ffffff; background: #8C1625; }
.promo-banner-wrapper                         { gap:12px; width: 25%; }
/* Cart item horizontal layout */
.cart-item-horizontal                         { display: flex; flex-direction: row; align-items: flex-start; gap: 16px; padding: 16px; }
/* Left: Image */
.cart-item-horizontal .cart-item-image        { flex-shrink: 0; width: 100px; height: 100px; }
.cart-item-horizontal .cart-item-image img    { width: 100%; height: 100%; object-fit: cover; border-radius: 8px; }
/* Middle: Content */
.cart-item-horizontal .cart-item-content      { flex: 1; display: flex; flex-direction: column; gap: 0; min-width: 0; }
/* When the image+content are wrapped in a link, keep the same horizontal layout */
.cart-item-horizontal .cart-item-edit-link    { display: flex; flex: 1; flex-direction: row; align-items: flex-start; gap: 16px; text-decoration: none; color: inherit; }
.cart-item-horizontal .prebuilt-item-name     { font-weight: 700; font-size: 14px; line-height: 1.3; margin-bottom: 4px; }
.cart-item-horizontal .prebuilt-item-description { font-size: 13px; line-height: 1.4; color: #666; margin-bottom: 8px; }
.cart-item-horizontal .cart-item-added-label  { font-size: 11px; font-weight: 700; color: #8B0000; text-transform: uppercase; margin-bottom: 4px; }
.cart-item-horizontal .cart-item-added-list   { list-style: none; padding: 0; margin: 0; font-size: 12px; }
.cart-item-horizontal .cart-item-added-list li { display: flex; justify-content: space-between; padding: 2px 0; }
.cart-item-horizontal .cart-item-added-list .name { color: #333; }
.cart-item-horizontal .cart-item-added-list .price { color: #666; font-weight: 500; }
/* Right: Price and Quantity */
.cart-item-horizontal .cart-item-actions        { flex-shrink: 0; display: flex;  align-items: flex-end; gap: 12px; min-width: 100px; }
.cart-item-horizontal .cart-card-price          { font-size: 16px; font-weight: 700; color: #000; }
.cart-item-horizontal .quantity-actions         { display: flex; align-items: center; gap: 8px; }
.cart-item-horizontal .btn-icon                 { width: 24px; height: 24px; display: flex; align-items: center; justify-content: center; cursor: pointer; border: none; background: transparent; padding: 0; }
.cart-item-horizontal .qty-value                { min-width: 20px; text-align: center; font-weight: 600; font-size: 14px; }
/* Checkout summary (items list at top of checkout page) */
.checkout-summary-card                          { background: transparent; padding: 0 0 25px; border: 0; border-bottom: 1px solid #E7E7E7; margin: 0 0 25px; }
.checkout-summary-header-row                    { display: flex; align-items: center; justify-content: space-between; margin-bottom: 25px; }
.checkout-summary-heading                        { font-weight: 600;  font-size: 16px; line-height: 20px; text-transform: uppercase; color: #ffffff; font-family: 'Outfit', sans-serif !important; }
.checkout-summary-item-row                       { margin-bottom: 10px; }
.checkout-summary-item-pill                      { width: 100%; border-radius: 6px; padding: 8px 18px; background: #681A29; display: flex; align-items: center; gap: 10px; box-shadow: none; border: 0; }
.checkout-summary-item-name                      { font-size: 14px; line-height: 20px; color: #ffffff; text-transform: uppercase; font-family: "Avenir LT Std", sans-serif !important; }
.checkout-summary-card .checkout-view-cart-btn   { margin-top: 24px;  }
.checkout-summary-card .checkout-view-cart-btn .btn-icon { margin-right: 8px; }
.checkout-summary-item-icon                      { display: inline-flex; align-items: center; justify-content: center; margin-right: 4px; }
.checkout-summary-icon-img                       { width: 27px; height: 27px; display: block;  filter: brightness(100);}
.total-checkout-item-main                       { border: 0; }
.checkout-dough-box                             { flex:none; max-width: 380px; }
/* Checkout: A24 dough, promo code and tips card */

.checkout-promocodes fieldset                    { border: 0; padding: 0; margin: 0; }
.checkout-promocodes legend                      { padding: 0; margin: 0 0 14px; font-size: 14px; line-height: 20px; font-weight: 800; letter-spacing: -0.5px; text-transform: uppercase; color: #ffffff; }
.checkout-promocodes-card                        { background: #ffffff; border-radius: 16px; padding: 16px 18px 10px;  }
.checkout-promocode-row                          { padding: 7px 12px; margin-bottom: 16px; display: flex; align-items: stretch; gap: 10px; border-radius: 6px; border-bottom: 1px solid #1E1E1E; }
.checkout-promocode-field                        { flex: 1; }
.checkout-promocode-field .form-group            { margin-bottom: 0; }
.checkout-promocode-field .control-label         { color: #B71428 !important; font-weight: 700; font-size: 14px; line-height: 20px; margin-bottom: 8px; }
.checkout-promocode-field .form-control          { background: transparent; border-radius: 0; padding:0; box-shadow: none !important;  color: #111; }
.checkout-promocode-field .form-control::placeholder { color: #A3A3A3; opacity: 1; }
.checkout-promocode-icon                         { width: 40px; display: flex; align-items: center; justify-content: center; }
.checkout-promocode-icon img                     { width: 24px; height: 24px; display: block; }
.checkout-promocode-field .help-block            { font-size: 12px; line-height: 20px; }
/* Checkout upsell (drink / dessert) */
.checkout-upsell-list                            { margin-top: 16px; background: #ffffff; border-radius: 10px; padding: 11px 18px; box-shadow: 0 2px 8px rgba(0,0,0,0.2); }
.checkout-upsell-item                            { margin-bottom: 10px; }
.checkout-upsell-item:last-child                 { margin-bottom: 0;}
.checkout-upsell-link                            { display: flex; align-items: center; text-decoration: underline !important; gap: 15px; font-size: 12px; line-height: 20px; font-weight: 700; text-transform: uppercase; color: #B71428; text-decoration: none; }
.checkout-upsell-link:hover                      {  color: #B71428; }
.checkout-upsell-icon                            { width: 26px; height: 26px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; }
.checkout-upsell-icon-img                        {  display: block; }
.checkout-upsell-text                            { flex: 1; }

/* Checkout instructions (right column) */
#order-promocode                                { text-transform: none; }
.checkout-instructions-card                      { margin-top: 18px; }
.checkout-instructions-inner .form-group         { margin-bottom: 10px; }
.checkout-instructions-inner .control-label      { color: #ffffff !important; font-weight: 800; font-size: 14px; line-height: 20px; text-transform: uppercase; }
.checkout-instructions-textarea                  { min-height: 170px; font-size: 16px; line-height: 24px; resize: vertical; background: #681A29; border-radius: 10px; box-shadow: none !important; border: 0; box-shadow: inset 0 0 0 1px rgba(255,255,255,0.14); }
.checkout-instructions-textarea::placeholder     { color: rgba(255,255,255,0.85); }
.checkout-instructions-support                   { margin-top: 10px; display: flex; align-items: flex-start; gap: 8px; color: #ffffff; font-size: 14px; line-height: 20px; }
.checkout-instructions-support-icon              { width: 18px; height: 18px; display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; }
.checkout-instructions-support-icon img          {  display: block; }
.checkout-instructions-support-text              { margin: 0; }
.checkout-amount-class                          { color: #fff; }
/* schedule order page */
.customer-schedule-order-form .section-label    { font-size: 16px; letter-spacing: 0; }
/* thankyou */
.specific-order                                 { max-width: 50%; margin-inline: auto; }
.thankyou-cta-section                           { margin: 32px auto 40px; text-align: center; max-width: 480px; }
.thankyou-cta-section .thankyou-promise-text                          { margin: 0 0 16px; font-size: 12px; line-height: 20px;  text-transform: uppercase; color: #ffffff; opacity: 1; }
.modal-buttons-actions > *                      { width: auto !important; display: inline-block !important; margin-inline: 0 !important;}
.modal-buttons-actions                          { gap:10px; }
.order-status-modal .order-welcome-text         { font-size: 14px; line-height: 20px; }

/* Checkout bottom buttons (Schedule / Add more) */
.checkout-secondary-actions                       { margin-top: 26px; margin-bottom: 18px; }
.checkout-secondary-buttons                       { display: flex; width: 100%; gap: 16px;  }
.checkout-secondary-buttons > *                   { max-width: none; }

/* Checkout notes */
.checkout-notes                                   { margin-bottom: 16px; color: #ffffff; font-size: 14px; line-height: 20px; }
.checkout-note-item                               { margin-bottom: 6px; }
.checkout-note-item:last-child                    { margin-bottom: 0; }
.checkout-note-label                              { font-weight: 700; text-transform: uppercase; margin-right: 4px; }
.checkout-note-text                               { opacity: 0.9; }

/* Checkout footer: A24 dough pill and total */
/* .bottom-footer-part.bg-visible                    { padding-top: 24px; } */
.menu-footer-action                               { align-items: center; }
.checkout-footer-dough                            { display: inline-flex; align-items: center; gap: 12px; background: #A81628; border-radius: 999px; padding: 8px 24px; color: #ffffff; font-size: 13px; line-height: 18px; }
.checkout-footer-dough-label                      { font-weight: 600; opacity: 0.95; }
.checkout-footer-dough-amount                     { font-weight: 700; }
.checkout-footer-use-dough                        { margin-left: 4px; width: auto; border-radius: 999px; padding: 5px 14px;   font-size: 14px; line-height: 20px; font-weight: 700; background: #FF4057; color: #ffffff; }
.checkout-footer-use-dough:hover                  { color: #ffffff; }
.checkout-footer-close                            { margin-left: 11px; width: 20px; height: 20px; background-color: transparent; border: 0; }

/* Footer state when dough has been applied */
.checkout-footer-dough-used                        { margin-top: 4px; font-size:16px; line-height: 24px; color: #22C55E; display: flex; align-items: center; justify-content: space-between; }
.checkout-footer-dough-used-label                  { display: block; font-weight: 600; }
.checkout-footer-dough-used-amount                 { display: block; font-weight: 700; }

/* Checkout secondary buttons: ensure Add more icon appears white */
.checkout-add-more-btn .btn-ic img                  { filter: brightness(100); }
/* Card */
.card-stacker-wrapper { width: 60%; text-align: left; }

@media (min-width: 992px) {
  /* Make promos + instructions align and share height on desktop */
  .checkout-main-grid                            { display: flex; align-items: stretch; }
  .checkout-left-column,
  .checkout-right-column                         { display: flex; flex-direction: column; }

  .checkout-promocodes                            { display: block; }

  .checkout-instructions-card                     { height: 100%; display: flex; flex-direction: column; }
  .checkout-instructions-inner                    { flex: 1 1 auto; display: flex; flex-direction: column; }
  .checkout-instructions-inner .form-group        { flex: 1 1 auto; display: flex; flex-direction: column; }
  .checkout-instructions-textarea                 { flex: 1 1 auto; height: 100%; min-height: 0; }
}
@media (max-height: 680px) {
  #customer-terms-and-condition .modal-dialog { max-height: 85vh; }
  #customer-terms-and-condition .modal-body   { max-height: none; }
  
}

@media (min-width:992px) {
  .profile-center { max-width: 100%;  }
  .select2-container--default .select2-selection--single .select2-selection__rendered { padding: 0 45px 0 16px; }
}
@media (min-width:1200px) {
  .profile-center { max-width: 90%;  }
}
@media (min-width:1250px) {
  .profile-center { max-width: 80%;  }
}
@media (min-width:1451px) {
  .profile-center { max-width: 75%;   }
}
@media (max-width:1199px) and (max-height: 600px) {
  .navbar-andiccio .navbar-nav > li.cta-button { position: unset !important; }
  .navbar-fixed-top .navbar-collapse, .navbar-fixed-bottom .navbar-collapse { max-height: 100vh !important; overflow-y: auto !important; }
}

@media (max-width:1599px) { /* for laptop */
  /* Login page spacing and type */
  .auth-page                                { padding: 110px 20px 70px; }
  h1 ,.h1                                       { font-size: 48px; line-height: 1.05; }
   /* select2 */
  .customer-address-form .select2-container--default .select2-selection--single .select2-selection__arrow { right: 14px; }
  .address-cards-list .address-card             { margin-bottom: 0; width: calc((100% / 2) - 16px);  }
  /* Loyalty (A24 dough) page */
.loyalty-card-block { padding: 24px 22px;}
.loyalty-balance { font-size: 45px;  }

/* Balance card (points present) */
.loyalty-card-white {max-width: 550px;  }
.loyalty-card-subtitle { margin: 10px 0 20px !important;  font-size: 16px; line-height: 20px; }
.loyalty-card-expiry { margin-top: 32px !important;  font-size: 14px; line-height: 20px;  }
.promo-banner-wrapper                         {  width: 30%; }
.bg-visible .footer-action::after { width: calc(100% + 28%); }
}
@media (max-width:1399px) { /* for laptop */
 .navbar-andiccio .navbar-nav > li          { padding: 0; }
 .navbar-andiccio .navbar-nav > li > a      { padding: 0 10px; }
 .navbar-andiccio .header-content           { padding: 17px 20px; }
.navbar-andiccio .navbar-nav > li.cta-button a ,.navbar-andiccio .navbar-nav > li.logout-pill > a{ padding: 7px 16px; }
.bg-visible .footer-action::after { width: calc(100% + 29%); }
  /* select2 */
  .customer-address-form .select2-container--default .select2-selection--single .select2-selection__arrow { right: 10px; }
    /* Loyalty (A24 dough) page */
    .menu-footer-action .btn-footer         { min-width: 166px; }
/* Balance card (points present) */
.loyalty-card-white {max-width: 500px;  }
.loyalty-card-expiry { margin-top: 30px !important;   }
 .promo-banner-wrapper                         {   width:30%; }
 .cart-banner-wrapper { width: 29%; }
 .cart-banner-wrapper.checkout-wrapper-box { width:35%; }
}
@media (min-width:1200px) and (max-width:1599px) { /* for laptop */
.order-tab-label                            { gap: 2px; width: 75px; height: 75px; }
.order-tab-label .order-tab-text            { font-size: 14px; line-height: 20px; }
.order-tab-icon                             { width: 35px; max-height: 31px; }
}
@media (max-width:1199px) { /* for laptop */
   .wrap                                    { min-height: auto; margin: 0; padding: 0 0 0px; }
   .wrap , .main-container                     { height: 100%; }
  .navbar-header                            { display: flex; align-items: center; flex-direction: row-reverse; margin: 0 !important; width: 100%;}
  .navbar-andiccio .header-content          { padding: 9px 20px; }
    .navbar-andiccio .navbar-brand          { width: calc(100% - 24px); text-align: center; }
  .navbar-andiccio .navbar-brand img        { height: 40px; display: inline-block; }
  footer                                    { display: none; }
  .footer-mobile-visible footer             { display: block !important; }
  .wrap > .container-fluid                  { padding:58px 15px 0; }
  .fixed-bottom-menu-bar .wrap > .container-fluid { max-height: calc(100vh - 58px);  }

  /* Contact store grid: 2 columns */
  .contact-store-grid-item                  { flex-basis: calc(50% - 9px); }
  /* Prevent body scroll when menu is open */
  body.menu-open                            { overflow: hidden !important; position: fixed; width: 100%; }
  /* step section */
  .step-section                             { height: 100%; }
  .signup-page  .step-section                 { min-height: calc(100vh - 387px); }
  /* Activate mobile menu layout from 1199px and below */

  .footer-none .centered-form-content { padding-bottom: 0 !important; min-height: calc(100vh - 58px); }
  .bg-visible .footer-action::after { width: calc(100% + 7%); }
  .navbar-right                             { float:none !important }
  .navbar-andiccio .navbar-toggle           { border: 0; background: transparent; padding: 0; margin: 0; float: none; display: block; }
  .navbar-andiccio .navbar-toggle .icon-bar { display: none; }
  .navbar-andiccio .navbar-toggle::before   { content: url('../images/menu-icons/hamburger-ic.svg'); width: 24px; height: 24px; display: block; }
  .navbar-andiccio .navbar-collapse         { background: linear-gradient(270.86deg, #681A29 3.93%, #BA3645 71.29%); position: fixed; top: 0; right: -100%; width: 280px; min-height: 100vh; max-height: 100vh; padding: 20px; padding-right: 0; transition: right 0.3s ease-in-out; z-index: 9999; box-shadow: -5px 0 15px rgba(0,0,0,0.2); overflow-y: auto; }
  .navbar-andiccio .navbar-collapse.in      { right: 0; margin: 0; box-shadow: 0px 2px 4px -2px #1018281A, 9px 4px 6px -1px #1018281A; border-radius: 30px 0 0 30px; }
  .navbar-andiccio .navbar-collapse.collapsing { right: -100%; }
  .navbar-fixed-top .navbar-collapse, .navbar-fixed-bottom .navbar-collapse { max-height: none; }
  body.menu-open                            { overflow: hidden !important; position: fixed; width: 100%; }
  .mobile-menu-close                        { display:block; position: absolute; top:8%; right: 20px; background: transparent; border: 0; padding: 0; cursor: pointer; z-index: 10000; }
  .navbar-andiccio .navbar-collapse::before { display: none; }
  .navbar-andiccio .navbar-nav              { display: block; margin-top: 45%; padding-left: 5px; margin-inline: 0; }
  .navbar-andiccio .navbar-nav > li         { display: block; margin-bottom: 15px; box-shadow: none; }
  .navbar-andiccio .navbar-nav > li > a     { display: block; padding: 12px 0; font-size: 16px; border-radius: 8px; }
  .navbar-andiccio .navbar-nav > li:not(.cta-button) > a::after { display: none; }
  .navbar-andiccio .navbar-nav > li > a:hover { background: rgba(255,255,255,0.1); }
  .navbar-andiccio .navbar-nav > li.cta-button { position: absolute; bottom: 30px; left: 20px; right: 20px; width: auto; }
.navbar-andiccio .navbar-nav > li.cta-button a ,.navbar-andiccio .navbar-nav > li.logout-pill > a { width: 100%; text-align: center; padding: 9px 20px; border-radius: 25px 5px 25px 5px; }
    .navbar-andiccio .navbar-nav > li.logout-pill {  margin-left:0 ;  }
     .navbar-andiccio .navbar-nav > li.logout-pill a { width: auto; border: 0; background-color: transparent; padding: 12px 0; color: #fff !important;}
     .navbar-andiccio .navbar-nav > li.logout-pill a:hover { text-decoration: underline !important; background-color: transparent !important;  }  
  /* modal responsive below 1199px */
  .modal-centered .modal-dialog             { width: 520px; max-width: calc(100% - 32px); }
  .modal-content .modal-body          { padding: 24px; text-align: center; }
  .order-welcome-title                      { font-size: 20px; }
  .order-welcome-text                       { color: #475467; }
  .btn.order-welcome-cta                        { display: block; width: 100%; padding: 12px 20px; border-radius: 28px; font-weight: 700; }
   .order-welcome-icon                             { margin-inline: auto; }
  #previous-item-modal .modal-dialog        { margin-inline: 15px; width: auto;  display: flex; justify-content: center; align-items: center; gap: 8px; }
#previous-item-modal .modal-content         { max-width: 600px; }
  .modal-buttons-actions > button           { width: calc(100%/2 - 8px) !important; }
  .centered-card h1                         { font-size: 44px; }
  .auth-form .centered-form-content         { width: 100%; }
  .centered-page                            {  min-height: auto; height: 100%; }
  .centered-form-content                    { padding: 10px 16px 30px; min-height: calc(100vh - 118px);}
  .footer-mobile-visible .centered-form-content { min-height: calc(100vh - 114px); }
  .centered-card                            { padding: 0; border-radius: 18px; }
  /* .btn.btn-primary           { margin-top: 16px; } */
    /* Loyalty (A24 dough) page */
/* Balance card (points present) */
.loyalty-card-white {max-width: 450px;  }
.loyalty-card-ic { width: 36px; height: 36px;  }
.loyalty-card-expiry { margin-top: 26px !important;  }
/* CART */
.cart-banner-wrapper { width: 25%; }
.promo-bar-footer .footer-buttons { width: 35%; }
 .cart-page .cart-items-grid .prebuilt-item-card { width: calc(100%/2 - 18px ); }
 .view-cart-page .menu-floating-bar .menu-footer-action {
        padding-inline: 16px;
    }
/* .promo-banner-wrapper { width: 55%; } */
 .menu-footer-action .total-display , .menu-footer-action .total-display span{ font-size: 16px;}
}
@media (max-width: 991px) {
    .d-desktop                                { display: none !important; }
  .d-mobile                                 { display: block !important; }
  /* Signup page container + headings */
  .centered-card h1                          { font-size: 28px; line-height: 1.2; }
  .centered-card h1 + p                      { margin-bottom: 20px; }
  .btn  ,.btn.btn-outline-primary-light                                     { padding: 7px 18px; font-size: 14px;}
  .bottom-footer-part .collection-btns-box .btn {     padding: 7px 14px; font-size: 14px; }
  /* Progress segments */
  .signup-steps .progress-segments           { gap: 10px; }
  .signup-steps .progress-segments .segment  { height: 6px; }
  .signup-steps .signup-step-label-top       { font-size: 12px; }
  .signup-steps .signup-step-label-bottom    { font-size: 12px; }
/*   .signup-page.footer-mobile-none .centered-form-content { min-height: auto !important; } */
  .signup-page.footer-mobile-none .centered-form-content .bottom-footer-part .footer-action::after { width: calc(100% + 70px); }
  .signup-page  .step-section { min-height: auto; }
  /* Step section spacing */
  .step-section                              { margin-top: 8px; }
  #form-signup .centered-card-wrapper        { height: calc(100vh - 269px); }
  .centered-form-content .centered-card-content     { overflow-y: auto; overflow-x: hidden; }
  /* Step 3 cards/captcha */
  .customer-address-list.step-3 .captcha-input input { width: 100%; }
  .address-space-above                        { margin-top: 25px; } 
  .customer-address-form .address-layout    {  grid-template-columns: 1fr; }
  
  .customer-address-create .centered-form-content { max-width: 620px; }
  .customer-address-form #gmaps-canvas      { height: 262px; }
  .wrap                                     { min-height: auto; margin: 0; padding: 0 0 0px; }
  .navbar-andiccio                          { position: unset; margin-bottom: 0; border: 0; }
  .navbar-andiccio .header-content          { padding: 17px 20px; background:transparent; box-shadow: none;}
/*   .navbar-andiccio .header-content.header-sticky { background-image: linear-gradient(125.86deg, #681A29 3.93%, #BA3645 71.29%) !important;
    background-color: #681A29 !important;
    background-repeat: no-repeat !important;
    background-size: cover !important; } */

    .navbar-andiccio .navbar-nav            { padding-left: 20px; }
  .navbar-andiccio .navbar-nav > li > a ,     .navbar-andiccio .navbar-nav > li.logout-pill a    {  padding: 10px 7px; }
    .footer-none .centered-form-content { padding-bottom: 0 !important; min-height: calc(100vh - 75px); }
    .centered-card p a { text-decoration: none !important; }
  /* Login form width and spacing */
  .centered-form-content                            { padding: 20px 21px 0px;  min-height: calc(100vh - 134px);}
    .footer-mobile-visible .centered-form-content { min-height: calc(100vh - 114px); }
  .centered-card h1                         { font-size: 38px; }
  .auth-form .centered-form-content         { width: 100%;  display: flex ; flex-direction: column; justify-content: space-between; }
  .auth-actions                             { gap: 12px; }
  .address-card-link                        { text-align: left; }
  /* modal width for tablets */
  .modal-centered .modal-dialog             { width: 480px; max-width: calc(100% - 32px); }
  /* mobile responsive */
  .wrap > .container-fluid                    { padding:74px 15px 0; }
  .fixed-bottom-menu-bar .wrap > .container-fluid { max-height: calc(100vh - 74px);  }
  .wrap > .container-fluid.main-container   { max-height: calc(100vh - 74px); overflow-y: auto; overflow-x: hidden; padding: 0;}
  .wrap ,.wrap > .container-fluid ,.wrap > .container-fluid > div , .centered-page , .centered-card , .auth-form , .auth-form > .row , .centered-content-container, .centered-form-content                { height: 100%;}
.bottom-footer-part                           { justify-content: flex-end; text-align: center;}
.centered-card .bottom-footer-part .logout-section { padding-top: 0; margin-top: 0; }
.centered-card .btn.logout-btn              { margin-top: 0; }
.footer-action                               { position: relative; text-align: center; }
.footer-action::after                        { display: none !important; content: ""; position: absolute; bottom:0px; left: 50%; transform: translateX(-50%); width: calc(100% + 70px); height: calc(100% + 30px); border-radius: 20px 20px 0px 0; background: #681A29; z-index: -1; }
 .bg-visible .footer-action::after          { width: calc(100% + 10.5%); }
 /* footer floating */ 
 .floating-btns                             { position: fixed; width: 100%; bottom: 0; left: 0; background: #681A29; padding: 15px; border-radius: 16px 16px 0 0; /* margin-top: 0 !important; */ overflow: hidden; }
.menu-floating-bar .menu-footer-action      { padding:0 !important; }
 #form-signup .centered-card-wrapper          {         overflow-y: auto; overflow-x: hidden;  }
.account-buttons-group                      { margin-bottom: 0; }
 /* centered pages responsive */
/* Contact page */
.contact-form .form-group                   { margin-bottom: 16px; }
.collection-btns-box                        { display: block; text-align: center; margin-bottom: 25px; }
.address-select-landing .address-choice-grid { margin-top: 0;  }
 .address-choice-grid > button              { margin: 16px 0 0;  }
 .address-select-landing .address-pill-left , .address-select-landing .address-pill-right , .address-select-landing .address-pill-top { border-radius: 30px 5px 30px 5px; }
 .address-select-landing .address-option    { padding:14px 20px; width: calc(100%/2 - 8px); min-width: auto; flex: none; }
 .collection-page .saved-addresses-pills .btn    {  font-size: 14px; line-height: 20px; margin: 0 6px 12px; padding: 5px 20px; }
 #gmaps-delivery-canvas, #gmaps-collection-canvas, #gmaps-eatIn-canvas, #gmaps-curbsideCollection-canvas       { height: 262px; }
/* Vertically center auth forms (Delivery / Collection / Eat-in) */
.background-auth-gradient.auth-page         { min-height: 100vh; display: flex; flex-direction: column; }
.auth-form                                  { flex: 1 0 auto; display: block; justify-content: center; }
.auth-form .centered-content-container      { display: flex; align-items: center; justify-content: center; width: 100%; }
.auth-form .centered-content-container > .row { width: 100%; }
.bottom-footer-part                         { margin-top: auto; }
.centered-card .bottom-footer-part  p         { margin: 0; padding-bottom: 0; }
.address-selection-page                     { margin-top:0px; }
.account-view.auth-form                     { display: block; }
.larger-btns .btn                           { padding: 20px 35px; max-width: 180px !important; margin-inline: 0 !important; border-radius: 30px 5px 30px 5px; display: inline-flex; align-items: center; justify-content: center; font-size: 18px; line-height: 28px; } 
.initial-page                               { padding-top: 0 !important; }
.prebuilt-items-grid { grid-template-columns: repeat(2, 1fr); }
.topping-items-grid { grid-template-columns: repeat(2, 1fr); }
/* menu page */
.menu-cat-strip-wrapper { margin: 16px 0; min-height: calc(100vh - 320px); }
.menu-page .menu-cat-strip { gap: 12px; }
.menu-page .menu-cat-strip .address-option { width: 110px !important; height: 110px !important; flex: 0 0 110px !important; padding: 10px 8px; }
.menu-page .menu-cat-strip .address-option .ic { width: 52px; height: 52px; }
.menu-page .menu-cat-strip .address-option .ic img { width: 52px; height: 52px; }
.menu-page .menu-cat-strip .address-option .label { font-size: 14px; line-height: 18px; }
.menu-section .prebuilt-items-grid { grid-template-columns: repeat(2, 1fr); }
     .footer-mobile-none     .centered-form-content      { min-height: calc(100vh - 75px);}

     /* Balance card (points present) */
.loyalty-card-white {max-width: 400px;  }
.loyalty-card-ic { width: 32px; height: 32px;  }
.loyalty-card-expiry { margin-top: 20px !important;   }
/*  */
.empty-cart-helper p{ margin:0 0 6px; }
    .empty-cart-icon { margin: 10px 0 10px;  }
     .customer-upsize-portion.order-welcome-modal { max-width: 100%; margin: 16px auto; border-radius: 18px; }
  .customer-upsize-portion .portion-main { flex-direction: row; flex-wrap: wrap; align-items: flex-start; justify-content: center; gap: 8px; padding: 10px 0; }
  .customer-upsize-portion .topping-name-class { flex: 0 0 100%; max-width: 100%; width: 100% !important; margin-bottom: 2px; justify-content: center !important; }
  .customer-upsize-portion .portion-main > label { flex: 0 0 auto; max-width: none; width: auto; }
  .customer-upsize-portion .portion-main .option-input { margin-right: 8px; }
  .customer-upsize-portion .portion-main .thickness, .customer-upsize-portion .portion-main .topping-price-class { font-size: 13px; }
  .customer-upsize-portion .upsize-porion-button { display: flex; flex-direction: row; justify-content: space-between; gap: 10px; }
  .customer-upsize-portion .upsize-porion-button .line-btn, .customer-upsize-portion .upsize-porion-button .btn.order-welcome-cta { width: 50%; max-width: none; }
  /* index page */
  .tabs-above > .nav-tabs.nav-pills {  margin-inline: -8px; }
  .order-tab-label { width: 90px; height: 90px; }
  /* cart */
  .cart-banner-wrapper                      { display: block; width: 100%; }
  .promo-bar-footer.menu-footer-action { gap: 16px; }
  .promo-bar-footer.menu-footer-action > *  { width: 100%; }
.menu-footer-action .btn-footer { min-width: calc(100% / 2 - 10px) !important; width: auto !important; }
/*   .promo-bar-footer.menu-footer-action .footer-buttons .btn      { min-width: 150px; } */

  .cart-banner-wrapper .total-display       {  justify-content: space-between; text-align: center;  }
  .footer-btns                              { gap: 20px; }
  /*  */
  /* .Schedule-order-page  */
.Schedule-order-page  .bottom-footer-part button { max-width: none; }
/* thankyou */
.specific-order                             { max-width: 100%; }
.modal-buttons-actions > *,.modal-buttons-actions > button                  { width: 100% !important; }
 .payable-amount-wrapper ,.promo-banner-wrapper                  { width: 100%;   }
 .cart-promo-banner { padding-bottom: 14px; margin-bottom: 14px; border-bottom: 1px solid #F2F3F4; }
 .payable-amount-wrapper { padding-top: 14px; margin-top: 14px; border-top: 1px solid #F2F3F4;  }

 /* thank you */
.thankyou-cta-section { margin-bottom: 0; }
 /* category page menu  */
  .template-category-title ,.template-category-subtitle   { margin-bottom: 15px !important; }
  .category-buttons-row                         { gap: 11px; }
.category-buttons-row .address-option        { flex: 0 0 calc(50% - 5.5px); max-width: calc(50% - 5.5px); min-width: calc(50% - 5.5px);  padding: 15px 13px;  font-size: 18px; line-height: 23px; }
  .category-buttons-row .category-pill-left    { border-radius: 30px 5px 30px 5px; }
.category-buttons-row .category-pill-right   { border-radius: 5px 30px 5px 30px; }
/* select2 */
.select2.select2-container--default .select2-selection--single { min-height: 38px; }
.select2.select2-container--default .select2-selection--single .select2-selection__rendered { line-height: 38px; }
.promo-modal                                { padding: 70px 12px; }
}
@media (max-width:767px) { /* for mobile */
  .wrap                                     { min-height: auto; margin: 0; padding: 0 0 0px; }
  .auth-form .centered-form-content         { width: 100%; }
  .form-grid                                { grid-template-columns: 1fr; gap: 14px; }
  .form-grid .col-span-2                    { grid-column: span 1; }
  /* select */
  /* navbar nav */
  .navbar-nav                               { margin: 7.5px 0; }
  /* Contact store grid: single column */
  .contact-store-grid                       { gap: 12px; }
  .contact-store-grid-item                  { flex-basis: 100%; min-width: 0; }
  /* button */
  .bottom-footer-part .collection-btns-box .btn { min-width: auto; width: calc(100%/2 - 8px); flex: none; font-size: 14px; }
  .bottom-footer-part .collection-btns-box  { gap:12px 8px; margin-bottom: 0; padding-bottom:0 !important ; }
  /* Mobile profile edit button */
  .category-buttons-row .address-option     { padding:15px 12px; }
  .centered-card .btn.profile-edit-btn      { max-width: 100%; width: 100%; margin: 0 auto; border-radius: 25px; }
  .form-group.text-right                    { text-align: center !important; }
   .footer-action::after                        { width: calc(100% + 41px);  }
     .bg-visible .footer-action::after      { width: calc(100% + 48px); }
     .menu-footer-action .total-display ,.menu-footer-action .footer-buttons    { width: 100%; }
  /* signup page */
   .signup-page.footer-mobile-none .centered-form-content .bottom-footer-part .footer-action::after { width: calc(100% + 41px); }
    #form-signup .centered-card-wrapper        { height: calc(100vh - 197px); }
  /* Mobile profile form spacing with Bootstrap columns */
  .bottom-footer-part .row                    { margin-bottom: 14px; }
  .bottom-footer-part .row:last-of-type       { margin-bottom: 0; }
 
  /* Mobile container adjustments for profile */
/*   .centered-content-container               { padding:30px 0 0px; } */
  .orders-tabs.nav-tabs > li.active > a::after   {  bottom: -19px; }
  /* Mobile profile page - full width container */
  .col-md-6.col-md-offset-3.centered-content-container { width: 100%; margin-left: 0; margin-right: 0; float: none; }
  
  /* Mobile menu toggle button */
  
  /* modal Css  */
  .modal-content .modal-body            { padding: 20px 16px; text-align: center; }
  .modal-centered .modal-dialog               { width: 360px; max-width: calc(100% - 24px); }
  .order-welcome-title                        { font-size: 18px; }
  .btn.order-welcome-cta                          { width: 100%; }
 
  /* #selected-address-radio.address-choice-grid { flex-direction: column; } */
  #selected-address-radio .address-choice-grid  { justify-content: center; margin-bottom: 0; gap:14px;  }
  #selected-address-radio .address-option .ic img ,#selected-address-radio .address-option .ic{ width: 35px; height: 35px;}
  #selected-address-radio .address-option .ic  { margin-bottom: 0px; }
  #selected-address-radio .address-option .label { font-size: 16px; line-height: 24px; }
  .step-section #selected-address-radio .address-option { border-radius: 20px 4px 20px 4px; }
  .iti-mobile .iti__country-list                { width: 60%; max-height: 200px !important;  }

  /* Modal css */
  /* select2 */
  /* Make each DOB select a bit tighter */
  .dob-select-row .select2.select2-container--default .select2-selection--single { min-height: 40px; box-shadow: none; }
  /* Reduce padding so text + chevron both fit */
  .dob-select-row .select2.select2-container--default .select2-selection--single .select2-selection__rendered { font-size: 13px; line-height: 40px; padding-left: 8px; padding-right: 30px;   /* space for arrow */ text-align: center; }
  /* Pull the arrow closer to the right edge */
  .dob-select-row .select2.select2-container--default .select2-selection--single .select2-selection__arrow { right: 8px; }
  /* Slightly reduce dropdown list left/right padding on small screens */
  .dob-select-row .select2-results__options   { padding-left: 10px !important; padding-right: 10px !important; }
  .dob-select-row                             { margin-left: -8px;   /* cancel our custom col padding so row edges align */ margin-right: -8px; margin-top: 4px; margin-bottom: 4px; }
  .dob-select-row [class^="col-"], .dob-select-row [class*=" col-"] { padding-left: 8px;   /* 10px total gap between columns */ padding-right: 8px; }
  .dob-select-row ul                          { text-align: left !important; }
  .dob-select-row .select2-results__option    { padding: 0 !important;  }
  /* menu page */
  .menu-cat-strip-wrapper { margin: 16px 0;  }
 /* Balance card (points present) */
.loyalty-card-white { width: 100%; max-width: none; }
.loyalty-card-ic { width: 30px; height: 30px;  }
.loyalty-card-subtitle { margin: 10px 0 15px !important;  font-size:14px; line-height: 20px; }
.loyalty-card-expiry { margin-top: 0px !important;  font-size: 12px; line-height: 20px;  }
  .menu-footer-action .btn-footer { min-width:calc(100%/2 - 10px) !important;  width: auto !important; }
  .notifications-grid                           { gap: 10px; }
  .notifications-grid .contact-store-grid-item { padding-block: 0; }
  .notification-title                           { font-size: 14px; line-height: 20px;  }
.notifications-pagination                   { margin-top: 18px; box-shadow: 0 4px 10px rgba(0,0,0,0.18); }
  .notifications-pagination > li > a,
  .notifications-pagination > li > span       { min-width: 32px; height: 32px; font-size: 13px; }
  /* CART */
  .promo-bar-footer.menu-footer-action > *  { width: 100%; }
  .promo-bar-footer.menu-footer-action { gap: 16px; }
 .promo-bar-footer.menu-footer-action .total-display { width: 100%; justify-content: space-between; font-size: 16px; }
    .cart-items-grid                            { grid-template-columns: 1fr; margin-bottom: 0; }
    .cart-page .cart-items-grid .prebuilt-item-card { width: 100%; }
  .cart-secondary-row                         { flex-direction: column-reverse; align-items: stretch; margin-top: 0; }
   .cart-secondary-row a               { max-width: none; }
  .cart-dough-box                             { width: 100%; flex: none; }
  /* checkout */
  .checkout-secondary-buttons                       {flex-wrap: wrap; } 
  .menu-footer-action                             { flex-direction: column; align-items: flex-start; gap: 12px; }
  .checkout-footer-dough                          { width: 100%; justify-content: space-between; } 
 #order-progress                            { width: 95%; max-width: 340px; margin-bottom: 6px; padding: 4px; }
  #order-progress .order-progress-icon      {width: 20px; }
  #order-progress .order-progress-status    { font-size: 14px; line-height: 20px; }
 /* branch change css */
 .branch-name-display                       { margin-top: 6px; font-size: 12px; line-height: 18px; }
.order-type-pill .order-type-icon           { width: 18px; height: 18px; }
.order-type-pill                            { font-size: 12px; line-height: 18px; }
.menu-section .prebuilt-items-grid          { gap: 10px; }
  #selected-address-radio .address-option  { width:82px; height: 85px; padding: 12px 13px; flex: 0 0 82px; }
}
@media (max-width: 575px) {
      select.form-control , .collection-page .field-branch-id .form-control                       { background-position: right 84px center; }

  .auth-form .form-control                  { padding: 11px 14px; }
  .iti--allow-dropdown input, .iti--allow-dropdown input[type=text], .iti--allow-dropdown input[type=tel], .iti--separate-dial-code input, .iti--separate-dial-code input[type=text], .iti--separate-dial-code input[type=tel] { padding-left:14px !important; }
  .footer-action::after                        { width: calc(100% + 41px);  }
  .centered-card                              { padding-block: 0; }
  /* .centered-content-container                   { padding: 0px 0 0px; } */
  .centered-card p                           { font-size: 14px; }
  .customer-address-list.step-3 .switch-text { font-size: 14px; }
  .customer-address-list.step-3 .switch      { width: 42px; height: 22px; }
  .customer-address-list.step-3 .switch-knob { width: 16px; height: 16px; top: 3px; left: 3px; }
  .customer-address-list.step-3 .switch-input:checked + .switch .switch-knob { left: 23px; }
  /* Modal width on small phones */
  #customer-terms-and-condition .modal-dialog { width: 100%; max-width: calc(100% - 20px); }
  /* Contact form */
  .contact-form .form-control.contact-textarea { min-height: 140px; }
  /* contact form grid */
  .contact-form-grid .cf-1-2                { flex-basis: 100%; }
  .customer-address-list.step-3 .captcha-block { flex-direction: column; }
  .centered-card h1                          { font-size: 32px; }
  .signup-steps .progress-segments           { gap: 8px; }
  .signup-steps .progress-segments .segment  { height: 5px; }
  .customer-address-list.step-3 .step-3-actions { align-items: stretch; }
  .customer-address-list.step-3 .switch-field { justify-content: flex-start; }
  .address-cards-list .address-card             { margin-bottom: 0; width: 100%;  }
 .collection-page .saved-addresses-pills .btn    { width: calc(100%/3 - 12px); font-size: 12px; line-height: 20px; margin: 0 6px 12px; padding: 5px 15px; }
.centered-form-content                            { padding: 15px 15.5px 0px;  min-height: calc(100vh - 154px);}
  .footer-mobile-visible .centered-form-content { min-height: calc(100vh - 132px); }
  .footer-mobile-none     .centered-form-content      { min-height: calc(100vh - 74px);}
.larger-btns .btn                             { padding: 16px 20px; }
    .menu-page .menu-cat-strip { gap: 12px; max-width: 100%; padding: 0; }
  .menu-page .menu-cat-strip .address-option { width: calc(33.333% - 8px); height: auto; aspect-ratio: 1; flex: 0 0 calc(33.333% - 8px); padding: 12px 8px; }

  .menu-page .menu-cat-strip .address-option .label { font-size: 16px; line-height: 20px; }
  
  .menu-footer-action                         { flex-direction: column; gap: 11.5px; padding: 0; }
  .menu-footer-action .total-display { width: 100%; justify-content: space-between; font-size: 16px; }
  .menu-footer-action .total-amount { font-size: 18px; }
  .menu-footer-action .footer-buttons { width: 100%;  gap: 10px; align-items: center;}
  .menu-footer-action .btn-footer { width: 100%; justify-content: center; min-width:calc(100%/2 - 10px) !important; padding: 8.5px 20px; }
  .bg-visible .footer-action::after { width: calc(100% + 48px); height: calc(100% + 20px); border-radius: 24px 24px 0 0; }
  .menu-cat-strip-wrapper { margin: 16px 0;  }
  .menu-page .menu-cat-strip .address-option { padding: 10px 6px;  }
  .menu-page .menu-cat-strip .address-option .label { font-size: 12px; line-height: 16px; }
  
  /* Pre-built cards responsive */
  .prebuilt-items-grid { grid-template-columns: 1fr; }
  .prebuilt-item-card { padding: 10px 12px; gap: 12px; }
  .prebuilt-card-image { width: 60px; height: 60px; }
  .prebuilt-item-name { font-size: 13px; }
  .prebuilt-item-price { font-size: 14px; }
  .prebuilt-item-description { font-size: 11px; }
  .btn-add-prebuilt { width: 18px; height: 18px; font-size: 14px; }
  
  /* Quantity controls responsive */
  .prebuilt-quantity-controls { gap: 6px; }
  .quantity-circle { width: 28px; height: 28px; font-size: 12px; }
  .btn-quantity-plus { width: 28px; height: 28px; font-size: 16px; }
  
  /* Create page responsive */
  .create-title span{ font-size: 24px; }
  .step-section-title { font-size: 12px; }
  /* .base-category-title { font-size: 18px; } */
  
  /* Topping items responsive */
  .topping-items-grid { grid-template-columns: 1fr; }
  
  /* Footer navigation responsive */
  .step-footer-action { padding: 12px 16px; gap: 12px; }
  .btn-footer-step { padding: 12px 20px; font-size: 14px; min-width: 100px; }
  /* #selected-address-radio .address-option       { width: 100%; } */
   .menu-section .prebuilt-items-grid { grid-template-columns: 1fr; }
   
   /* checkout */
   .checkout-footer-dough { gap: 5px; }
   .checkout-footer-close { margin-left: 0; }
   .checkout-footer-dough-label { white-space: normal; }
}
@media (max-width: 480px) {
    select.form-control , .collection-page .field-branch-id .form-control                       { background-position: right 30px center; }
}
@media (max-width: 401px) {
  .bottom-footer-part .collection-btns-box .btn { padding: 7px 10px; }
  .menu-page .menu-cat-strip .address-option { width: 90px !important; height: 90px !important;  flex: 0 0 90px !important;}
}

