/*
 * 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 25px; 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;}
/* Responsive visibility helpers */
.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:85px 15px 0; }
/* 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; }
.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; border:0; 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 { background-color: transparent !important; text-decoration: underline !important; color: #fff !important;}
.navbar-andiccio .navbar-nav > li.cta-button 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 { color: #fff; text-decoration: none !important;  }
.navbar-andiccio .navbar-nav > li.cta-button a:hover img { filter: brightness(100); }
.nav-icon                                   { width:18px; height:18px; margin-right:8px; vertical-align:-2px; display:inline-block; }
/* 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: 110px; height: 110px; 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; }
.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; }
.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: linear-gradient(179deg, #681A29 3.93%, #BA3645 71.29%); padding: 20px 0; border: 0;  }
.footer-andiccio p                          { color: #ffffff; font-size: 14px; line-height: 20px; 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; 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: 28px; }
.auth-form                                  { height: 100%;  }
.auth-form .centered-form-content           { width: 100%; margin-inline: auto;  text-align:left; }
.centered-form-content                      { padding: 77px 20px 45px; min-height: calc(100vh - 145px); width: 100%; margin-inline: auto;  text-align:left; }
/* Form fields */
 .form-group                                { margin-bottom: 14px; }
 .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: 4px; margin:5px 0; background-color: white !important; text-align: left !important;   }
/* 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: -1px; }
.centered-card .btn.btn-primary             { display: inline-flex; background: #ffffff; color: #CF152B; border: 1px solid #fff; transition: all .3s ease; }
.centered-card .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; }
.centered-card .btn.btn-primary:hover img,
.centered-card .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-inline                                 { margin-inline: 0 !important; display: inline-flex !important; }
.larger-btns                                { gap: 20px; }
.larger-btns .btn                          { padding:21px 113px; 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:-1px; }

.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; border-radius: 8px; justify-content: flex-start; padding: 14px 24px; letter-spacing: -0.5px; }
/* 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 */
.centered-card .bottom-footer-part            { margin-top: 40px; 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; }
/* 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;  }

/* 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; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.address-card-text                           { font-size: 14px; line-height: 20px; color: #681A29; opacity: .9; white-space: nowrap; 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: inline-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 { font-weight: 400; font-family: 'lobster', cursive; letter-spacing: -1px; font-size: 20px; line-height: 24px; color: #ffffff; white-space: nowrap; 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: -1px; 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: -1px; 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: -1px; 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; }
/* 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: -1px; 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;  }
.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); }
/* 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; }
.customer-address-form #gmaps-canvas        { width: 100%; height: 420px; border-radius: 12px; overflow: hidden; background: #F2F4F7; }
.customer-address-form .form-group.text-center { margin-top: 16px; }
.footer-action                                { text-align: right; }
/* 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 { width: 100% !important; }
 .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-container--default .select2-selection--single .select2-selection__rendered { line-height: 48px; padding: 0 56px 0 16px; font-weight: 700; color: #B71428; text-align: center; }
 .select2-container--default .select2-selection--single .select2-selection__placeholder { color: #B71428; opacity: 1; }
.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-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-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; }
/* 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 0 !important; max-height: none !important; overflow-y: visible !important; }
 .select2-results__option { color: #ffffff !important; text-align: center !important; padding: 14px 20px !important; margin: 0 !important; position: relative; font-weight: 700; }
 .select2-results__option::after { content: ""; display: block; position: absolute; left: 24px; right: 24px; bottom: 0; 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 */
 .select2-container--default .select2-results__option--highlighted[aria-selected] { background: rgba(255,255,255,0.10) !important; color: #ffffff !important; }
 .select2-container--default .select2-results__option[aria-selected=true] { background: rgba(255,255,255,0.08) !important; color: #ffffff !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 form Select2 (mirror address styles) */
/* .contact-form-section .select2-container { width: 100% !important; } */
 .select2-container--default #select2-contactform-store-results.select2-results__options , .select2-container--default .select2-results__options {max-height: 220px !important; overflow-y: auto !important; }


.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 140px; 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; }
.address-choice-grid .address-option:hover   { background: rgba(255,255,255,0.12); }
.address-choice-grid .address-option.active  { background: #ffffff; color: #7f2431; 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-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: 220px; }

.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: 25px; }
.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; }
.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); }
.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 .minimum_order_value_error { display: none !important; }
/* 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; }
.bottom-footer-part .minimum_order_value_error { display: none !important; }

/* 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: 30px 5px 30px 5px; }
.address-select-landing .address-pill-left { border-radius: 30px 5px 30px 5px; }
.address-select-landing .address-pill-right { border-radius: 30px 5px 30px 5px; }
.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; }
.order-welcome-cta                          { background: #CF152B; display: inline-block; border-color: #CF152B; border-radius: 20px; padding: 12.5px 16px; max-width: none; text-align: center; width: auto; font-size: 14px; line-height: 20px; border-radius: 50px; letter-spacing: 0; }
.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 - 60px); 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: -1px; }
.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: 146px; height: 146px; flex: 0 0 146px; }
.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:-1px; left: 50%; transform: translateX(-50%); width: calc(100% + 26%); 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; position: relative; justify-content: space-between; padding: 24px 0; }
.menu-footer-action .total-display           { color: #ffffff; font-size: 18px; display: flex; align-items: center; 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; margin-left: 4px; }
.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; }

/* Category options page (intermediate page before menu) */
.category-options-page .category-options-title { font-family: 'Lobster', cursive; }
.category-buttons-row { display: flex; gap: 16px; justify-content: center; flex-wrap: wrap; }
.category-buttons-row .address-option { flex: 0 0 auto; min-width: 200px; max-width: 280px; border: 2px solid #ffffff; background: transparent; color: #ffffff; font-weight: 700; padding: 14px 28px; border-radius: 30px; }
.category-buttons-row .category-pill-left { border-radius: 30px 4px 30px 4px; }
.category-buttons-row .category-pill-right { border-radius: 4px 30px 4px 30px; }
.category-buttons-row .address-option:hover { background: rgba(255,255,255,0.1); text-decoration: none; }

/* 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: 14px 12px !important; gap: 16px !important; box-shadow: 0 2px 4px rgba(0,0,0,0.1) !important; cursor: pointer !important; transition: all 0.3s ease !important; border: 2px solid transparent !important; position: relative; /* allow absolute-positioned badge */ }

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

/* Single class for static promo badge */
.promo-badge { position: absolute !important; top: 14px !important; right: 12px !important; 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; 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: 80px !important; height: 80px !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: 8px !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: 1.3 !important; }

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

.prebuilt-items-grid .prebuilt-item-card .prebuilt-item-description { font-size: 14px !important; 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; align-self: flex-end !important; position: relative !important; display: flex !important; align-items: center !important; justify-content: center !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; }
/* 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: italic; }
.create-title .uppercase                                        { font-weight: 500; font-style: normal; }
.step-label                                                     { font-size: 14px; font-weight: 700; color: #ffffff; letter-spacing: -1px; margin-bottom: 8px; opacity: 0.9; }

/* 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; 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; font-style: italic; }
.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: 24px !important; height: 24px !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: 24px !important; height: 24px !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: 24px; height: 24px; 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 0 4px; }
.prebuilt-item-card .prebuilt-item-price                           { font-size: 12px; color: #111; opacity: 0.9; }

.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: 16px; height: 16px; display: block; }
.prebuilt-item-card .quantity-actions .extraCartQuantity           { min-width: 16px; text-align: center; font-weight: 700; color: #B71428; font-size: 12px; }

/* 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: -1px; 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                                                              { 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 .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 - 60px); 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: 12px 32px; border-radius: 50px; font-weight: 700; font-size: 18px; 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 */
.bottom-footer-part.bg-visible                { padding-top: 24px; }
.footer-action.menu-footer-action .btn-footer.disabled,
.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: 12px; color: #ffffff; font-size: 18px; font-weight: 400; font-family: 'Lobster', cursive; 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                      { margin: 20px 0 16px; }
.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: 110px; height: 110px; 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: -1px;  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; }
.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; white-space: nowrap; }
.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; margin-right: 10px; 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 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: 8px;
    min-width: 0;
}

.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;
    flex-direction: column;
    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                             { margin-top: 24px; }
.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; box-shadow: 0 2px 10px rgba(0,0,0,0.22); }
.checkout-promocode-row                          { display: flex; align-items: stretch; gap: 10px; padding: 8px 0 10px; }
.checkout-promocode-row + .checkout-promocode-row { border-top: 1px solid #E4E4E4; }
.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: 4px; }
.checkout-promocode-field .form-control          { background: transparent; border-radius: 0; padding-left: 0; padding-right: 0; box-shadow: none !important; border: 0; border-bottom: 2px solid #E4E4E4; 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; }

@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;  }
}
@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 { padding: 7px 16px; }

  /* select2 */
  .customer-address-form .select2-container--default .select2-selection--single .select2-selection__arrow { right: 10px; }
    /* Loyalty (A24 dough) page */
/* Balance card (points present) */
.loyalty-card-white {max-width: 500px;  }
.loyalty-card-expiry { margin-top: 30px !important;   }
}
@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; }
  /* 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; min-height: calc(100vh - 58px); }
  .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 { width: 100%; text-align: center; padding: 15px 20px; border-radius: 25px 5px 25px 5px; }
  
  /* 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; }
  .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;}
  .centered-card                            { padding: 28px 0px 0; border-radius: 18px; }
  /* .centered-card .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-page .cart-items-grid .prebuilt-item-card { width: calc(100%/2 - 18px ); }

}
@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; }
  /* 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); }
  /* Step 3 cards/captcha */
  .customer-address-list.step-3 .captcha-input input { width: 100%; }
  .customer-address-form .address-layout    { grid-template-columns: 1fr; }
  .customer-address-create .centered-form-content { max-width: 620px; }
  .customer-address-form #gmaps-canvas      { height: 320px; }
  .wrap                                     { min-height: auto; margin: 0; padding: 0 0 0px; }
  .navbar-andiccio .header-content          { padding: 17px 20px; }
    .navbar-andiccio .navbar-nav            { padding-left: 20px; }
  .navbar-andiccio .navbar-nav > li > a     {  padding: 10px 7px; }
    .footer-none .centered-form-content { padding-bottom: 0; min-height: calc(100vh - 75px); }
  /* Login form width and spacing */
  .centered-form-content                            { padding: 20px 21px 0px;  min-height: calc(100vh - 100px);}
  .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; }
  .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                        { content: ""; position: absolute; bottom:-1px; left: 50%; transform: translateX(-50%); width: calc(100% + 70px); height: calc(100% + 30px); border-radius: 20px 20px 0px 0; background: #681A29; z-index: -1; }
/* 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; }

/* 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-bottom: 0; padding-bottom: 16px; }
.address-selection-page                     { margin-top:0px; }
.account-view.auth-form                     { display: block; }
.larger-btns .btn                           { padding: 20px 65px; 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 { gap: 12px; }
  .menu-page .menu-cat-strip .address-option { width: 90px !important; height: 90px !important; flex: 0 0 90px !important; padding: 10px 8px; }
  .menu-page .menu-cat-strip .address-option .ic { width: 42px; height: 42px; }
  .menu-page .menu-cat-strip .address-option .ic img { width: 42px; height: 42px; }
  .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;  }
    .menu-footer-action .btn-footer { min-width:calc(100%/2 - 10px) !important; }
     .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 .order-welcome-cta {
    width: 50%;
    max-width: none;
  }
}
@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;}
  /* Mobile profile edit button */
  .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);  }
  /* 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 - 263px); }
  /* 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: -6px; }
  /* 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; }
  .order-welcome-cta                          { width: 100%; }
 
  #selected-address-radio.address-choice-grid { flex-direction: column; }
  #selected-address-radio .address-choice-grid  { justify-content: center; }
  .iti-mobile .iti__country-list                { width: 60%; max-height: 200px !important;  }

  /* Modal css */
 /* 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: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 */
    .cart-items-grid                            { grid-template-columns: 1fr; }
    .cart-page .cart-items-grid .prebuilt-item-card { width: 100%; }
  .cart-secondary-row                         { flex-direction: column; align-items: stretch; }
  .cart-dough-box                             { width: 100%; flex: none; }
}
@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 20px; }
.centered-form-content                            { padding: 15px 21px 0px;  min-height: calc(100vh - 118px);}
  .footer-mobile-none     .centered-form-content      { min-height: calc(100vh - 75px);}
.larger-btns .btn { padding: 16px 46px; }
    .menu-page .menu-cat-strip { gap: 12px; max-width: 100%; padding: 0 12px; }
  .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: 16px; padding: 20px 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%; flex-direction: column; gap: 10px; }
  .menu-footer-action .btn-footer { width: 100%; justify-content: center; min-width:calc(100%/2 - 10px) !important; padding: 12px 20px; }
  .bg-visible .footer-action::after { width: calc(100% + 48px); height: calc(100% + 20px); border-radius: 24px 24px 0 0; }
  
  .order-type-display { margin-bottom: 20px; }
  .menu-cat-strip-wrapper { margin: 16px 0; }
  .menu-page .menu-cat-strip .address-option { padding: 10px 6px; }
  .menu-page .menu-cat-strip .address-option .ic { width: 40px; height: 40px; }
  .menu-page .menu-cat-strip .address-option .ic img { width: 40px; height: 40px; }
  .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 { font-size: 24px; }
  .step-section-title { font-size: 14px; }
  .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; }
   
}
@media (max-width: 480px) {
    select.form-control , .collection-page .field-branch-id .form-control                       { background-position: right 30px center; }
}


