/* Limites horizontais únicos para Windows, Android e iOS. */
:root{
  --rhavi-content-max:1380px;
  --rhavi-page-gutter:clamp(14px,5vw,48px);
}

html,body{
  width:100%;
  max-width:100%;
  overflow-x:clip;
}

main.page-main{
  width:100%;
  max-width:100%;
  min-width:0;
  overflow-x:clip;
}

main.page-main>section{
  box-sizing:border-box;
  max-width:100%;
  min-width:0;
}

/* As seções inferiores ocupam a mesma largura externa do banner principal. */
.future-category-shell,
.future-products,
.future-combos,
.future-builder,
.future-trust{
  width:100%!important;
  max-width:100%!important;
  margin-right:0!important;
  margin-left:0!important;
  padding-right:max(var(--rhavi-page-gutter),calc((100% - var(--rhavi-content-max))/2))!important;
  padding-left:max(var(--rhavi-page-gutter),calc((100% - var(--rhavi-content-max))/2))!important;
  border-right-width:0!important;
  border-left-width:0!important;
  border-radius:0!important;
  overflow-x:hidden;
}

/* Nas páginas internas, conteúdo e grids usam os mesmos eixos horizontais. */
.page-content,
.offers-content,
.contact-content,
.commercial-section,
.portal-shell{
  box-sizing:border-box;
  width:100%;
  max-width:100%;
  padding-right:max(var(--rhavi-page-gutter),calc((100% - var(--rhavi-content-max))/2))!important;
  padding-left:max(var(--rhavi-page-gutter),calc((100% - var(--rhavi-content-max))/2))!important;
  overflow-x:hidden;
}

:is(.future-categories,.future-product-grid,.future-combo-grid,.catalog-grid,.offers-grid,.service-grid,.occasion-grid,.contact-grid,.contact-channel-grid,.flavor-list,.commercial-grid){
  max-width:100%;
  min-width:0;
}

:is(.future-category,.future-product-card,.future-combo-card,.catalog-card,.offer-card,.service-card,.occasion-card,.contact-card,.contact-info-row,.flavor-card,.commercial-card){
  box-sizing:border-box;
  max-width:100%;
  min-width:0;
}

/* Remove o vazio acumulado acima dos textos em todas as seções públicas. */
:is(
  .future-category-shell,
  .future-products,
  .future-combos,
  .future-builder,
  .future-trust,
  .page-hero,
  .page-content,
  .offers-hero,
  .offers-content,
  .contact-hero,
  .contact-content,
  .portal-shell
){
  padding-top:14px!important;
}

.future-combo-intro{
  padding-top:0!important;
}

.future-section-heading,
.future-section-heading.compact{
  padding-top:0!important;
}

.future-weekly-offer-badge{
  top:8px!important;
}

main.page-main img,
main.page-main video,
main.page-main svg,
main.page-main canvas{
  max-width:100%;
}

@media(max-width:900px){
  :root{--rhavi-page-gutter:14px}

  .future-category-shell,.future-products,.future-combos,.future-builder,.future-trust{
    width:100%!important;
    max-width:100%!important;
    padding-top:14px!important;
    padding-right:14px!important;
    padding-left:14px!important;
  }

  /* O carrossel rola dentro da caixa; nunca desloca a página inteira. */
  :is(.future-categories,.future-product-grid,.future-combo-grid,.catalog-grid,.offers-grid,.service-grid,.occasion-grid,.contact-grid,.contact-channel-grid,.flavor-list,.commercial-grid){
    overflow-x:auto!important;
    overscroll-behavior-x:contain;
  }
}

/* Carrinho: composição final para desktop e dispositivos móveis. */
.cart-page{width:min(100%,1480px)!important;max-width:1480px!important;margin-inline:auto!important;padding-top:clamp(34px,3.5vw,54px)!important;padding-bottom:64px!important;overflow:visible!important}
.cart-page .portal-heading{margin-bottom:22px}
.cart-page .checkout-layout{grid-template-columns:minmax(0,1.45fr) minmax(380px,.9fr)!important;gap:clamp(20px,2vw,30px)!important;align-items:start}
.cart-page .checkout-items,.cart-page .checkout-form{box-sizing:border-box;min-width:0;padding:24px!important}
.cart-page .checkout-form{top:102px;gap:12px}
.cart-page .checkout-form h2{margin-bottom:8px}
.cart-page .checkout-form label{min-width:0}
.cart-page .checkout-form :is(input,select){min-height:46px}
.cart-page .checkout-form textarea{min-height:76px}
.cart-page .checkout-field-pair{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px}
.cart-page .commerce-cart-row{grid-template-columns:minmax(180px,1fr) auto minmax(125px,auto)!important;gap:14px!important}
.cart-page .commerce-cart-row>span{grid-column:auto!important;white-space:nowrap;text-align:right!important}
.cart-page .commerce-quantity{flex-shrink:0}
.cart-page .commerce-quantity button{width:34px;height:34px}

@media(min-width:901px) and (max-width:1180px){
  .cart-page .checkout-layout{grid-template-columns:minmax(0,1.15fr) minmax(350px,.85fr)!important}
  .cart-page .checkout-field-pair{grid-template-columns:1fr}
}

@media(max-width:900px){
  .cart-page{width:100%!important;padding:24px 14px 44px!important;overflow:hidden!important}
  .cart-page .portal-heading{margin-bottom:16px}
  .cart-page .portal-heading h1{font-size:clamp(27px,8vw,36px);line-height:1.08}
  .cart-page .checkout-layout{grid-template-columns:minmax(0,1fr)!important;gap:16px!important}
  .cart-page .checkout-items,.cart-page .checkout-form{width:100%;padding:17px!important;border-radius:12px}
  .cart-page .checkout-form{position:static!important}
  .cart-page .checkout-field-pair{grid-template-columns:minmax(0,1fr);gap:12px}
  .cart-page .commerce-cart-row{grid-template-columns:minmax(0,1fr) auto!important;grid-template-areas:"product quantity" "price price";gap:10px 12px!important;padding:16px 0}
  .cart-page .commerce-cart-row>div:first-child{grid-area:product;min-width:0}
  .cart-page .commerce-cart-row>.commerce-quantity{grid-area:quantity}
  .cart-page .commerce-cart-row>span{grid-area:price;justify-self:start;text-align:left!important;font-weight:600}
  .cart-page .commerce-quantity button{width:42px;height:42px}
  .cart-page .checkout-form :is(input,select){min-height:50px;font-size:16px}
  .cart-page .checkout-form textarea{min-height:92px;font-size:16px}
  .cart-page .checkout-total{gap:12px;font-size:16px}
  .cart-page .commerce-primary{width:100%;min-height:50px}
}

@media(max-width:380px){
  .cart-page{padding-inline:10px!important}
  .cart-page .checkout-items,.cart-page .checkout-form{padding:14px!important}
  .cart-page .commerce-cart-row{grid-template-areas:"product product" "quantity price"}
  .cart-page .commerce-cart-row>span{justify-self:end;align-self:center}
}

/* Menu Android: botões com fundo, ícones e estado ativo bem visível. */
.mobile-nav-icon{display:none}

@media(max-width:900px){
  html.mobile-device body .main-nav{
    gap:8px!important;
    padding:12px!important;
    background:#111513!important;
  }

  html.mobile-device body .main-nav>a,
  html.mobile-device body .main-nav>a.active{
    display:grid!important;
    grid-template-columns:38px minmax(0,1fr)!important;
    align-items:center!important;
    gap:11px!important;
    height:auto!important;
    min-height:50px!important;
    max-height:none!important;
    padding:6px 12px!important;
    border:1px solid rgba(255,255,255,.12)!important;
    border-radius:10px!important;
    background:#242a27!important;
    color:#f7f7f3!important;
    box-shadow:0 2px 8px rgba(0,0,0,.18)!important;
  }

  html.mobile-device body .main-nav>a:hover,
  html.mobile-device body .main-nav>a:focus-visible{
    border-color:var(--future-yellow)!important;
    background:#30372f!important;
  }

  html.mobile-device body .main-nav>a.active{
    border-color:var(--future-yellow)!important;
    background:var(--future-yellow)!important;
    color:#171911!important;
    box-shadow:0 5px 16px rgba(243,197,31,.24)!important;
  }

  html.mobile-device body .mobile-nav-icon{
    width:36px;
    height:36px;
    display:grid!important;
    place-items:center;
    border-radius:9px;
    background:rgba(255,255,255,.09);
    color:var(--future-yellow);
  }

  html.mobile-device body .main-nav>a.active .mobile-nav-icon{
    background:rgba(0,0,0,.12);
    color:#171911;
  }

  html.mobile-device body .mobile-nav-icon svg{
    width:20px;
    height:20px;
    fill:none;
    stroke:currentColor;
    stroke-width:1.8;
    stroke-linecap:round;
    stroke-linejoin:round;
  }

  html.mobile-device body .mobile-nav-label{
    min-width:0;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
  }
}

/* Pagamento: melhor aproveitamento no Windows e leitura segura no Android/iOS. */
.payment-page{width:min(100%,1480px)!important;max-width:1480px!important;margin-inline:auto!important;padding-top:clamp(34px,3.5vw,54px)!important;padding-bottom:64px!important;overflow:visible!important}
.payment-page .portal-heading{margin-bottom:22px}
.payment-page .payment-layout{grid-template-columns:minmax(0,1.2fr) minmax(420px,.8fr)!important;gap:clamp(20px,2vw,30px)!important;align-items:start}
.payment-page .payment-methods,.payment-page .payment-summary{box-sizing:border-box;min-width:0;padding:24px!important}
.payment-page .payment-methods{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px}
.payment-page .payment-methods label{min-width:0}
.payment-page .payment-methods label>span{height:100%;min-height:82px;padding:15px 16px}
.payment-page .payment-methods .commerce-primary{grid-column:1/-1;width:100%;min-height:48px;margin-top:2px}
.payment-page .payment-summary{top:102px}
.payment-page .payment-summary h2{margin-bottom:18px}
.payment-page .commerce-cart-row{grid-template-columns:minmax(150px,1fr) auto minmax(125px,auto)!important;gap:12px!important}
.payment-page .commerce-cart-row>span{grid-column:auto!important;white-space:nowrap;text-align:right!important}
.payment-page .commerce-quantity{flex-shrink:0}
.payment-page .commerce-quantity button{width:34px;height:34px}
.payment-page .payment-summary>p{gap:16px}
.payment-page .payment-summary>p strong{white-space:nowrap;text-align:right}

@media(min-width:901px) and (max-width:1180px){
  .payment-page .payment-layout{grid-template-columns:minmax(0,1fr) minmax(370px,.78fr)!important}
  .payment-page .payment-methods{grid-template-columns:1fr}
}

@media(max-width:900px){
  .payment-page{width:100%!important;padding:24px 14px 44px!important;overflow:hidden!important}
  .payment-page .portal-heading{margin-bottom:16px}
  .payment-page .portal-heading h1{font-size:clamp(27px,8vw,36px);line-height:1.08}
  .payment-page .portal-heading p{line-height:1.55}
  .payment-page .payment-layout{grid-template-columns:minmax(0,1fr)!important;gap:16px!important}
  .payment-page .payment-methods,.payment-page .payment-summary{width:100%;padding:17px!important;border-radius:12px}
  .payment-page .payment-methods{grid-template-columns:minmax(0,1fr);gap:10px}
  .payment-page .payment-methods label>span{min-height:72px;padding:13px 14px}
  .payment-page .payment-methods .commerce-primary{min-height:50px;margin-top:4px}
  .payment-page .payment-summary{position:static!important}
  .payment-page .commerce-cart-row{grid-template-columns:minmax(0,1fr) auto!important;grid-template-areas:"product quantity" "price price";gap:10px 12px!important;padding:16px 0}
  .payment-page .commerce-cart-row>div:first-child{grid-area:product;min-width:0}
  .payment-page .commerce-cart-row>.commerce-quantity{grid-area:quantity}
  .payment-page .commerce-cart-row>span{grid-area:price;justify-self:start;text-align:left!important;font-weight:600}
  .payment-page .commerce-quantity button{width:42px;height:42px}
  .payment-page .payment-summary>p{align-items:center;font-size:16px}
}

@media(max-width:380px){
  .payment-page{padding-inline:10px!important}
  .payment-page .payment-methods,.payment-page .payment-summary{padding:14px!important}
  .payment-page .commerce-cart-row{grid-template-areas:"product product" "quantity price"}
  .payment-page .commerce-cart-row>span{justify-self:end;align-self:center}
  .payment-page .payment-summary>p{align-items:flex-start;flex-direction:column}
  .payment-page .payment-summary>p strong{text-align:left}
}

/* Categorias no Android/iOS: primeiro e último cards sempre inteiros. */
@media(max-width:900px){
  html:is([data-platform="android"],[data-platform="ios"]) .future-category-shell{
    box-sizing:border-box!important;
    width:calc(100% - 28px)!important;
    max-width:calc(100% - 28px)!important;
    margin-right:14px!important;
    margin-left:14px!important;
    padding:16px!important;
    overflow:hidden!important;
  }

  html:is([data-platform="android"],[data-platform="ios"]) .future-category-shell .future-categories{
    box-sizing:border-box!important;
    width:100%!important;
    max-width:100%!important;
    margin-right:0!important;
    margin-left:0!important;
    padding:2px 0 10px!important;
    gap:10px!important;
    overflow-x:auto!important;
    overflow-y:hidden!important;
    scroll-padding-inline:0!important;
    scroll-snap-type:x mandatory!important;
  }

  html:is([data-platform="android"],[data-platform="ios"]) .future-category-shell .future-category{
    box-sizing:border-box!important;
    flex:0 0 100%!important;
    width:100%!important;
    min-width:100%!important;
    max-width:100%!important;
    margin:0!important;
    transform:none;
    scroll-snap-align:start!important;
    scroll-snap-stop:always;
  }
}
