/*
  Condensed & small navigation styling with light active state.  
  This version further reduces font size, compresses the letters horizontally,
  decreases the gap between words to roughly a fifth of previous values,
  and changes the colour to a lighter pink on hover/active without losing brightness.  
*/

:root {
  --teal: #016a60;
  /* Base barbie pink colour */
  --pink: #ff2aa7;
  /* Active state: a brighter, more saturated barbie pink for pressed tabs.  */
  --pink-active: #ff54c0;
  --dandy-btn-yellow: #f2bd62;
  --dandy-btn-yellow-hover: #e4b257;
  --dandy-btn-yellow-shadow: #b98532;
  --dandy-btn-yellow-shadow-hover: #a9792e;
}

body {
  margin: 0;
  background-color: var(--teal);
  overflow-x: hidden;
}

html {
  background-color: #08615b;
}

.tabs-wrap {
  position: sticky;
  top: 0;
  width: 100%;
  overflow-x: auto;
  white-space: nowrap;
  padding: 0.30rem 1.20rem 0.05rem;
  background: rgba(8, 97, 91, 0.96);
  border-bottom: 1px solid rgba(255, 255, 255, 0.16);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  scrollbar-width: none;
  /* Улучшенная прокрутка для мобильных устройств */
  -webkit-overflow-scrolling: touch;
  /* Плавная прокрутка */
  scroll-behavior: smooth;
  /* Обеспечиваем правильное позиционирование слайдера */
  z-index: 10000 !important;
  /* Улучшенная прокрутка */
  scroll-snap-type: x mandatory;
  scroll-padding: 0 1rem;
}


.tabs-wrap::-webkit-scrollbar {
  display: none;
}

.tabs {
  display: flex;
  flex-wrap: nowrap;
  /* Reduce the gap between items by roughly a fifth */
  /* Make the spacing between words even tighter – roughly five times smaller than the original */
  /* Set spacing between words similar to the provided sketch: larger than our ultra‑tight version but still compact */
  gap: clamp(0.05rem, 0.3vw, 0.15rem);
  padding: 0;
  margin: 0;
  list-style: none;
  /* Улучшенная адаптивность */
  min-width: max-content;
  align-items: center;
}

.tabs .tab {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-family: 'Russo One', Arial, sans-serif !important;
  /* Reduce the height of the text */
  /* Make the letters modest in height to improve legibility */
  font-size: 1rem !important;
  /* Increase weight to make glyphs stand out without an outline */
  font-weight: 900;
  line-height: 1 !important;
  /* Bring letters a bit closer together */
  letter-spacing: 0;
  color: var(--pink);
  text-decoration: none;
  text-transform: uppercase !important;
  /* Horizontal compression factor: keep letters slightly narrower */
  --scale-x: 0.87;
  transform-origin: left bottom;
  transform: scaleX(var(--scale-x));
  /* Remove heavy outline for crisp letter rendering */
  -webkit-text-stroke: 0;
  /* Improve glyph sharpness */
  -webkit-font-smoothing: antialiased;
  text-rendering: geometricPrecision;
  transition: transform 0.2s ease, color 0.2s ease;
  user-select: none;
  /* Улучшенная адаптивность */
  white-space: nowrap;
  flex-shrink: 0;
  padding: 0.5rem 0.4rem;
  min-height: 44px;
  min-width: 44px;
  box-sizing: border-box;
  /* Улучшенная кликабельность */
  cursor: pointer;
  border-radius: 0.3rem;
  /* Snap-точки для прокрутки */
  scroll-snap-align: start;
}

#siteHeader {
  z-index: 20 !important;
  transform: none !important;
  padding: 0 !important;
}

.header-hidden #siteHeader,
#siteHeader.header--hidden {
  transform: none !important;
}

/* Top page navigation uses the same approved display style as category tabs, but white. */
.topnav {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) auto !important;
  flex-wrap: nowrap !important;
  overflow: hidden !important;
  white-space: nowrap !important;
  gap: clamp(0.75rem, 1.6vw, 1.75rem) !important;
  align-items: center !important;
  justify-content: stretch !important;
  padding: 0.45rem 1.2rem 0.35rem !important;
  min-height: 3.25rem !important;
  scrollbar-width: none !important;
}

.topnav:not([data-kpi-mounted="1"]) {
  display: flex !important;
  flex-wrap: nowrap !important;
  overflow-x: auto !important;
  justify-content: flex-start !important;
}

.topnav:not([data-kpi-mounted="1"]) > a {
  flex: 0 0 auto !important;
}

.topnav::-webkit-scrollbar,
.topnav-links::-webkit-scrollbar {
  display: none !important;
}

.topnav-links {
  display: flex !important;
  align-items: center !important;
  justify-content: flex-start !important;
  gap: clamp(0.35rem, 0.8vw, 0.75rem) !important;
  min-width: 0 !important;
  overflow-x: auto !important;
  scrollbar-width: none !important;
  -webkit-overflow-scrolling: touch !important;
}

.topnav-meta {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
  gap: 0.45rem !important;
  margin-left: auto !important;
  min-width: max-content !important;
  color: #fff !important;
  font-family: 'Lora', Georgia, 'Times New Roman', serif !important;
  font-size: 0.875rem !important;
  font-weight: 700 !important;
  line-height: 1 !important;
}

.topnav-meta .time,
.topnav-meta .rate,
.topnav-meta .maps {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 44px !important;
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
  white-space: nowrap !important;
}

.topnav-meta .maps {
  font-family: 'Lora', Georgia, 'Times New Roman', serif !important;
  font-size: 0.875rem !important;
  font-weight: 700 !important;
  text-transform: none !important;
  transform: none !important;
  padding: 0 !important;
  text-decoration: none !important;
  border-bottom: 1px dashed rgba(255, 255, 255, 0.75) !important;
}

.topnav a {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  font-family: 'Russo One', Arial, sans-serif !important;
  font-size: 1rem !important;
  font-weight: 900 !important;
  line-height: 1 !important;
  letter-spacing: 0 !important;
  color: #fff !important;
  text-decoration: none !important;
  text-transform: uppercase !important;
  --scale-x: 0.87;
  transform-origin: left bottom !important;
  transform: scaleX(var(--scale-x)) !important;
  -webkit-text-stroke: 0 !important;
  -webkit-font-smoothing: antialiased !important;
  text-rendering: geometricPrecision !important;
  white-space: nowrap !important;
  flex-shrink: 0 !important;
  padding: 0.5rem 0.25rem !important;
  min-height: 44px !important;
  box-sizing: border-box !important;
  transition: transform 0.2s ease, color 0.2s ease !important;
}

@media (min-width: 761px) {
  .topnav-links > a:nth-child(1) { flex-basis: 9.75rem !important; width: 9.75rem !important; }
  .topnav-links > a:nth-child(2) { flex-basis: 4.75rem !important; width: 4.75rem !important; }
  .topnav-links > a:nth-child(3) { flex-basis: 6.75rem !important; width: 6.75rem !important; }
  .topnav-links > a:nth-child(4) { flex-basis: 9.75rem !important; width: 9.75rem !important; }
  .topnav-links > a:nth-child(5) { flex-basis: 14.25rem !important; width: 14.25rem !important; }
  .topnav-links > a:nth-child(6) { flex-basis: 8.25rem !important; width: 8.25rem !important; }
  .topnav-links > a:nth-child(7) { flex-basis: 7.25rem !important; width: 7.25rem !important; }

  .topnav-meta {
    flex-basis: 13.75rem !important;
    width: 13.75rem !important;
    min-width: 13.75rem !important;
  }
}

.topnav a:hover,
.topnav a:focus,
.topnav a.is-active {
  color: #fff !important;
  text-decoration: none !important;
  text-transform: uppercase !important;
  transform: scaleX(var(--scale-x)) scale(1.05) translateY(-2px) !important;
  outline: none !important;
}

.topnav-meta .maps,
.topnav-meta .maps:hover,
.topnav-meta .maps:focus {
  font-family: 'Lora', Georgia, 'Times New Roman', serif !important;
  font-size: 0.875rem !important;
  font-weight: 700 !important;
  text-transform: none !important;
  transform: none !important;
  padding: 0 !important;
  text-decoration: none !important;
  border-bottom: 1px dashed rgba(255, 255, 255, 0.75) !important;
}

/* Approved storefront text font. This keeps page structure intact and only changes typography. */
main,
main h1,
main h2,
main h3,
main h4,
main p,
main li,
main span,
main a,
main button,
main label,
main input,
main textarea,
main select,
body > section,
body > section h1,
body > section h2,
body > section h3,
body > section h4,
body > section p,
body > section li,
body > section span,
body > section a,
body > section button,
body > section label,
body > section input,
body > section textarea,
body > section select,
footer,
footer * {
  font-family: 'Lora', Georgia, 'Times New Roman', serif !important;
}

footer.footer-animated {
  opacity: 1 !important;
  transform: none !important;
  animation: none !important;
  transition: none !important;
  width: 100% !important;
  box-sizing: border-box !important;
}

footer.footer-animated > div {
  max-width: none !important;
  width: 100% !important;
  box-sizing: border-box !important;
}

footer.footer-animated > div:first-child {
  display: grid !important;
  grid-template-columns: minmax(220px, 1fr) minmax(260px, auto) minmax(220px, 1fr) !important;
  align-items: flex-start !important;
  justify-content: space-between !important;
  gap: clamp(1.25rem, 4vw, 4rem) !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

footer.footer-animated > div:first-child > div:first-child {
  justify-self: start !important;
  text-align: left !important;
}

footer.footer-animated > div:first-child > div:nth-child(2) {
  justify-self: center !important;
  text-align: center !important;
}

footer.footer-animated > div:first-child > div:last-child {
  justify-self: end !important;
  align-items: flex-end !important;
  text-align: right !important;
}

footer.footer-animated > div:first-child > div:last-child > div {
  text-align: right !important;
}

footer.footer-animated > div:last-child {
  max-width: none !important;
  width: 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  justify-content: space-between !important;
}

footer a,
footer button,
footer .privacy-link,
footer .branches-link,
footer .social-links a,
footer [class*="social"] a {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-width: 44px !important;
  min-height: 44px !important;
  box-sizing: border-box !important;
}

footer.footer-animated,
#productsGrid .card,
#menuSection .card,
.gift-card,
.job-card,
.contact-card,
.franchise-scenario,
.franchise-card,
.map-wrapper {
  contain: layout paint;
}

/* Shared storefront header guardrails: compact tools, no overflow, no overlap. */
#siteHeader .brandline {
  display: flex !important;
  align-items: flex-start !important;
  justify-content: space-between !important;
  gap: 1rem !important;
  width: 100% !important;
  min-height: 102px !important;
}

#siteHeader .brand-left {
  width: auto !important;
  display: flex !important;
  align-items: center !important;
  justify-content: flex-start !important;
  flex: 0 1 auto !important;
  min-width: 0 !important;
}

#siteHeader .brand-block {
  display: flex !important;
  align-items: center !important;
  justify-content: flex-start !important;
  gap: 14px !important;
  width: 269px !important;
  flex: 0 0 269px !important;
  max-width: 100% !important;
  min-height: 98px !important;
}

#siteHeader .brand-block:has(.brand-new-logo) > img.brand-logo:not(.brand-new-logo) {
  display: none !important;
}

#siteHeader .brand-block > a:has(.brand-new-logo) {
  display: inline-flex !important;
  align-items: center !important;
  flex: 0 0 auto !important;
}

#siteHeader .brand-right {
  margin-left: auto !important;
  display: grid !important;
  grid-template-columns: auto minmax(13rem, 21rem) auto !important;
  grid-template-areas: "phone search profile" !important;
  align-items: center !important;
  justify-content: flex-end !important;
  justify-items: end !important;
  column-gap: 0.75rem !important;
  row-gap: 0 !important;
  min-width: 0 !important;
  width: min(100%, 42rem) !important;
  max-width: min(100%, 42rem) !important;
  flex: 0 1 auto !important;
  flex-wrap: nowrap !important;
  overflow: visible !important;
}

#siteHeader .kpi-search {
  display: contents !important;
  min-width: 0 !important;
  max-width: 100% !important;
}

#siteHeader .kpi {
  display: contents !important;
  font-size: 0.875rem !important;
  line-height: 1.15 !important;
}

#siteHeader .brand-right .kpi .time,
#siteHeader .brand-right .kpi .rate,
#siteHeader .brand-right .kpi .maps {
  display: none !important;
}

#siteHeader .kpi .time {
  grid-area: time !important;
  white-space: nowrap !important;
  justify-self: end !important;
}

#siteHeader .kpi .rate {
  grid-area: rate !important;
  white-space: nowrap !important;
  justify-self: end !important;
}

#siteHeader .kpi .maps {
  grid-area: maps !important;
  white-space: nowrap !important;
  justify-self: end !important;
  display: inline-flex !important;
  align-items: center !important;
  min-height: 44px !important;
  box-sizing: border-box !important;
}

#siteHeader .kpi .phone-link {
  grid-area: phone !important;
  white-space: nowrap !important;
  font-size: 0.875rem !important;
  line-height: 1.15 !important;
  font-weight: 500 !important;
  padding: 0 !important;
  text-decoration: none !important;
  justify-self: end !important;
  display: inline-flex !important;
  align-items: center !important;
  min-height: 44px !important;
  box-sizing: border-box !important;
}

#siteHeader #searchBox {
  grid-area: search !important;
  display: block !important;
  width: 100% !important;
  min-width: 13rem !important;
  max-width: 100% !important;
  height: 2.75rem !important;
  box-sizing: border-box !important;
  padding: 0.45rem 0.95rem !important;
  border: 1px solid #d6d6d6 !important;
  border-radius: 0.75rem !important;
  background: #ffffff !important;
  color: #15201f !important;
  -webkit-text-fill-color: #15201f !important;
  caret-color: #15201f !important;
  font-family: 'Lora', Georgia, 'Times New Roman', serif !important;
  font-size: 1rem !important;
  flex: 0 1 21rem !important;
  justify-self: stretch !important;
}

#siteHeader #searchBox::placeholder {
  color: #747474 !important;
  -webkit-text-fill-color: #747474 !important;
}

#siteHeader .profile {
  grid-area: profile !important;
  align-self: center !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 2.75rem !important;
  height: 2.75rem !important;
  min-width: 2.75rem !important;
  padding: 0 !important;
  border: 1px solid rgba(243, 234, 219, 0.35) !important;
  border-radius: 0.75rem !important;
  background: rgba(255, 255, 255, 0.04) !important;
  color: #fff !important;
}

#siteHeader .brand-video {
  height: 98px !important;
  width: 56px !important;
  object-fit: contain !important;
  display: block !important;
  flex: 0 0 56px !important;
}

#siteHeader .brand-block .brand-logo {
  height: 70px !important;
  width: auto !important;
  object-fit: contain !important;
  display: block !important;
  flex: 0 0 auto !important;
}

#siteHeader .brand-block .brand-new-logo {
  height: 76px !important;
  width: 199px !important;
  object-fit: contain !important;
  display: block !important;
  flex: 0 0 199px !important;
}

#menu.section,
#menuSection {
  min-height: max(30rem, calc(100vh - 13.5rem)) !important;
}

/* Canon storefront product controls: pink prices and yellow cart buttons. */
#productsGrid .card .price,
#menuSection .card .price,
.card-mini .price,
.row2-card .row2-price,
.dandy-modal .modal-price,
.extra-price {
  color: #ff2aa7 !important;
  background: none !important;
  -webkit-background-clip: initial !important;
  background-clip: initial !important;
  -webkit-text-fill-color: #ff2aa7 !important;
}

#productsGrid .card .btn-cart,
#menuSection .card .btn-cart,
.card-mini .btn,
.row2-card .row2-btn,
.gift-card button,
.hero .cta-form button,
.app-form button,
.job-card .apply-btn,
.dashboard-scenarios button.active,
.order-btn {
  background: var(--dandy-btn-yellow) !important;
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
  border: 0 !important;
  border-radius: 14px !important;
  box-shadow: 0 5px 0 var(--dandy-btn-yellow-shadow), 0 10px 18px rgba(0, 0, 0, .24) !important;
  text-shadow: 0 1px 1px rgba(0, 0, 0, .22) !important;
  font-family: 'Lora', Georgia, 'Times New Roman', serif !important;
  font-weight: 700 !important;
  letter-spacing: 0 !important;
}

#productsGrid .card .btn-cart:hover,
#menuSection .card .btn-cart:hover,
.card-mini .btn:hover,
.row2-card .row2-btn:hover,
.gift-card button:hover,
.hero .cta-form button:hover,
.app-form button:hover,
.job-card .apply-btn:hover,
.dashboard-scenarios button.active:hover,
.order-btn:hover {
  background: var(--dandy-btn-yellow-hover) !important;
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
  transform: translateY(-1px) !important;
  box-shadow: 0 6px 0 var(--dandy-btn-yellow-shadow-hover), 0 13px 20px rgba(0, 0, 0, .26) !important;
}

#productsGrid .card .btn-cart:active,
#menuSection .card .btn-cart:active,
.card-mini .btn:active,
.row2-card .row2-btn:active,
.gift-card button:active,
.hero .cta-form button:active,
.app-form button:active,
.job-card .apply-btn:active,
.dashboard-scenarios button.active:active,
.order-btn:active {
  transform: translateY(3px) !important;
  box-shadow: 0 2px 0 var(--dandy-btn-yellow-shadow-hover), 0 6px 12px rgba(0, 0, 0, .22) !important;
}

/* Light pink on hover and active */
.tabs .tab:hover,
.tabs .tab.active {
  /* When a tab is active (pressed), fill it with a brighter barbie pink and remove the outline for crisp edges */
  color: var(--pink-active);
  -webkit-text-stroke: 0;
  transform: scaleX(var(--scale-x)) scale(1.05) translateY(-2px);
}

/* On hover state, lighten slightly but remain close to the base pink */
.tabs .tab:hover {
  color: var(--pink-active);
  -webkit-text-stroke: 0;
  transform: scaleX(var(--scale-x)) scale(1.05) translateY(-2px);
}

.slider {
  position: absolute;
  bottom: 0;
  left: 0;
  height: 4px;
  width: 0;
  background-color: #ffffff;
  border-radius: 2px;
  transition: transform 0.3s ease, width 0.3s ease, opacity 0.3s ease;
  /* Улучшенная видимость */
  z-index: 2;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);
  /* Убираем начальную ширину */
  min-width: 0;
  /* Делаем слайдер видимым */
  opacity: 1;
  display: block;
  /* Добавляем градиент для лучшей видимости */
  background: linear-gradient(90deg, #ffffff 0%, #f0f0f0 100%);
}

/* Hide any existing chip-based category bars */
nav.category-bar,
nav.category-bar.menu-groups,
.category-bar.menu-groups {
  display: none !important;
}

/* Адаптивные стили для табов */

/* Мобильные устройства (до 768px) */
@media (max-width: 768px) {
  .tabs-wrap {
    padding: 0.4rem 1rem 0.1rem;
  }
  
  .tabs {
    gap: clamp(0.08rem, 0.5vw, 0.2rem);
  }
  
  .tabs .tab {
    font-size: 0.95rem !important;
    letter-spacing: 0;
    --scale-x: 0.85;
    padding: 0.5rem 0.4rem;
  }
  
  .tabs .tab:hover,
  .tabs .tab.active {
    transform: scaleX(var(--scale-x)) scale(1.05) translateY(-1.5px);
  }
  
  .slider {
    height: 4px;
  }
}

/* Планшеты (768px - 1024px) */
@media (min-width: 769px) and (max-width: 1024px) {
  .tabs-wrap {
    padding: 0.4rem 1.2rem 0.1rem;
  }
  
  .tabs {
    gap: clamp(0.1rem, 0.6vw, 0.25rem);
  }
  
  .tabs .tab {
    font-size: 1rem !important;
    letter-spacing: 0;
    --scale-x: 0.85;
    padding: 0.6rem 0.5rem;
  }
  
  .tabs .tab:hover,
  .tabs .tab.active {
    transform: scaleX(var(--scale-x)) scale(1.05) translateY(-2px);
  }
  
  .slider {
    height: 4.5px;
  }
}

/* Десктопы (1024px+) */
@media (min-width: 1025px) {
  .tabs-wrap {
    padding: 0.5rem 1.5rem 0.15rem;
  }
  
  .tabs {
    gap: clamp(0.12rem, 0.8vw, 0.3rem);
  }
  
  .tabs .tab {
    font-size: 1.1rem !important;
    letter-spacing: 0;
    --scale-x: 0.87;
    padding: 0.7rem 0.6rem;
  }
  
  .tabs .tab:hover,
  .tabs .tab.active {
    transform: scaleX(var(--scale-x)) scale(1.06) translateY(-2.5px);
  }
  
  .slider {
    height: 5px;
  }
}

/* Очень маленькие экраны (до 480px) */
@media (max-width: 480px) {
  .tabs-wrap {
    padding: 0.3rem 0.8rem 0.1rem;
  }
  
  .tabs {
    gap: clamp(0.05rem, 0.4vw, 0.15rem);
  }
  
  .tabs .tab {
    font-size: 0.9rem !important;
    letter-spacing: 0;
    --scale-x: 0.85;
    padding: 0.4rem 0.3rem;
  }
  
  .tabs .tab:hover,
  .tabs .tab.active {
    transform: scaleX(var(--scale-x)) scale(1.05) translateY(-1px);
  }
  
  .slider {
    height: 3px;
  }
}

/* Большие экраны (1440px+) */
@media (min-width: 1440px) {
  .tabs-wrap {
    padding: 0.6rem 2rem 0.2rem;
  }
  
  .tabs {
    gap: clamp(0.15rem, 1vw, 0.35rem);
  }
  
  .tabs .tab {
    font-size: 1.2rem !important;
    letter-spacing: 0;
    --scale-x: 0.9;
    padding: 0.8rem 0.7rem;
  }
  
  .tabs .tab:hover,
  .tabs .tab.active {
    transform: scaleX(var(--scale-x)) scale(1.07) translateY(-3px);
  }
  
  .slider {
    height: 6px;
  }
}

/* Дополнительные стили для улучшения адаптивности */

/* Стили для улучшения прокрутки на мобильных устройствах */
@media (max-width: 768px) {
  .tabs-wrap {
    /* Улучшенная прокрутка для мобильных */
    -webkit-overflow-scrolling: touch;
    /* Плавная прокрутка */
    scroll-behavior: smooth;
    /* Убираем полосы прокрутки */
    scrollbar-width: none;
    -ms-overflow-style: none;
  }
  
  .tabs-wrap::-webkit-scrollbar {
    display: none;
  }
}

/* Стили для улучшения доступности */
@media (prefers-reduced-motion: reduce) {
  .tabs .tab {
    transition: none;
  }
  
  .slider {
    transition: none;
  }
}

/* Стили для улучшения контрастности */
@media (prefers-contrast: high) {
  .tabs .tab {
    color: #ffffff;
  }
  
  .tabs .tab:hover,
  .tabs .tab.active {
    color: #ff69b4;
  }
  
  .slider {
    background: #ffffff !important;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.4) !important;
  }
}

/* Дополнительные стили для слайдера */
.slider::before {
  content: '';
  position: absolute;
  top: -1px;
  left: 0;
  right: 0;
  height: 1px;
  background: rgba(255, 255, 255, 0.3);
  border-radius: 1px;
}

.slider::after {
  content: '';
  position: absolute;
  bottom: -1px;
  left: 0;
  right: 0;
  height: 1px;
  background: rgba(0, 0, 0, 0.1);
  border-radius: 1px;
}

@media (max-width: 980px) {
  #siteHeader .brandline {
    justify-content: center !important;
  }

  #siteHeader .brand-right {
    grid-template-columns: auto minmax(10rem, 18rem) auto !important;
    grid-template-areas: "phone search profile" !important;
    width: min(100%, 36rem) !important;
    max-width: min(100%, 36rem) !important;
    justify-content: flex-end !important;
  }

  #siteHeader #searchBox {
    min-width: 10rem !important;
  }
}

@media (max-width: 760px) {
  #siteHeader .brandline {
    flex-wrap: wrap !important;
    justify-content: center !important;
    gap: 0.5rem !important;
  }

  #siteHeader .brand-left {
    width: 100% !important;
    justify-content: center !important;
    flex-wrap: wrap !important;
  }

  #siteHeader .brand-block {
    justify-content: center !important;
    overflow: hidden !important;
    width: min(269px, 100%) !important;
    flex: 0 0 min(269px, 100%) !important;
  }

  #siteHeader .brand-block .brand-logo,
  #siteHeader .brand-block .brand-new-logo {
    max-width: calc(100vw - 7rem) !important;
  }

  #siteHeader .brand-right {
    display: grid !important;
    grid-template-columns: auto minmax(7.5rem, 1fr) auto !important;
    grid-template-areas: "phone search profile" !important;
    width: 100% !important;
    max-width: 100% !important;
    flex: 0 0 100% !important;
    margin-left: 0 !important;
    justify-content: center !important;
    align-items: center !important;
    justify-items: stretch !important;
    gap: 0.5rem !important;
  }

  #siteHeader .kpi {
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
  }

  #siteHeader .kpi-search {
    display: contents !important;
  }

  #siteHeader .kpi .phone-link {
    justify-self: end !important;
    font-size: 0.82rem !important;
  }

  #siteHeader #searchBox {
    width: 100% !important;
    min-width: 0 !important;
    height: 44px !important;
  }

  #siteHeader .profile {
    width: 44px !important;
    height: 44px !important;
    min-width: 44px !important;
  }

  footer.footer-animated > div:first-child {
    grid-template-columns: 1fr !important;
    justify-items: center !important;
    text-align: center !important;
  }

  footer.footer-animated > div:first-child > div,
  footer.footer-animated > div:first-child > div:first-child,
  footer.footer-animated > div:first-child > div:nth-child(2),
  footer.footer-animated > div:first-child > div:last-child {
    justify-self: center !important;
    align-items: center !important;
    text-align: center !important;
  }

  footer.footer-animated > div:first-child > div:last-child > div {
    text-align: center !important;
  }

  footer.footer-animated > div:last-child {
    flex-direction: column !important;
    justify-content: center !important;
    text-align: center !important;
  }
}

@media (max-width: 520px) {
  #siteHeader .brand-right {
    grid-template-columns: auto minmax(6.5rem, 1fr) auto !important;
    grid-template-areas: "phone search profile" !important;
  }

  #siteHeader .kpi .time,
  #siteHeader .kpi .rate,
  #siteHeader .kpi .maps {
    display: none !important;
  }
}

/* Final storefront canon overrides: category letters stay pink on every page. */
.tabs .tab,
#mainNav .tab,
.tabs .tab:hover,
.tabs .tab:focus,
.tabs .tab.active,
#mainNav .tab:hover,
#mainNav .tab:focus,
#mainNav .tab.active {
  color: #ff2aa7 !important;
  -webkit-text-fill-color: #ff2aa7 !important;
  text-transform: uppercase !important;
}

/* Touch target pass: keep approved visuals while making controls easier to tap. */
.tabs .tab,
#mainNav .tab {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-width: 52px !important;
  min-height: 44px !important;
  box-sizing: border-box !important;
}

#productsGrid .card .btn-cart,
#menuSection .card .btn-cart,
.card .btn-cart,
.card-mini .btn,
.row2-card .row2-btn,
.gift-card button,
.hero .cta-form button,
.app-form button,
.job-card .apply-btn,
.dashboard-scenarios button,
.franchise-form button,
.franchise-scenario,
.order-btn,
.cart-btn,
.cart-close-btn,
#maxDendyBtn {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-width: 44px !important;
  min-height: 44px !important;
  box-sizing: border-box !important;
}

main input:not([type="checkbox"]):not([type="radio"]),
main select,
main textarea,
body > section input:not([type="checkbox"]):not([type="radio"]),
body > section select,
body > section textarea {
  min-height: 44px !important;
  box-sizing: border-box !important;
}

a.branches-link,
.phone-number a,
.email-address a,
.privacy-link,
.consent a,
main a[href^="tel:"],
main a[href^="mailto:"] {
  display: inline-flex !important;
  align-items: center !important;
  min-height: 44px !important;
  box-sizing: border-box !important;
}

#dendySpend,
.franchise-form a {
  min-height: 44px !important;
  box-sizing: border-box !important;
}
