/* =========================================================
   ROSITA V78 — FULL SITE RESPONSIVE / ORDER READY
   Final cascade layer for desktop, tablet, iPad and phone.
   ========================================================= */
:root{
  --v78-gutter:clamp(14px,3vw,30px);
  --v78-touch:48px;
  --v78-bottom-bar:74px;
}
html{box-sizing:border-box;-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-padding-top:118px}
*,*::before,*::after{box-sizing:inherit}
html,body{max-width:100%;overflow-x:hidden}
body{min-width:0}
img,video,canvas,iframe{max-width:100%;height:auto}
button,a,input,textarea,select{min-width:0}
a,button{touch-action:manipulation}
.shell{width:min(1180px,calc(100% - (var(--v78-gutter) * 2)))!important;max-width:1180px!important}

/* Prevent long labels and fixed cards from forcing horizontal scroll. */
.rv34-shell,.promo-marquee-shell,.hero-content,.menu-hero-copy,
.taqueria-hero,.tor-hero,.car-hero,.pan-hero,.gro-hero,.ct-hero{max-width:100%!important}

/* Touch-safe order controls */
.order-button,.promo-fixed-cta,.menu-primary-btn,.menu-ghost-btn,.menu-order-button,
.tq-btn,.tor-btn,.car-btn,.pan-btn,.gro-btn,.loc-directions-btn,.ct-submit,.ct-v77-dock-btn{
  min-height:var(--v78-touch)!important;
}

/* Mobile order dock, injected by V78 JS */
.v78-mobile-orderbar{display:none}

/* ---------------- TABLET / IPAD LANDSCAPE ---------------- */
@media(max-width:1024px){
  :root{--v78-gutter:clamp(16px,3.3vw,26px)}
  .shell{width:calc(100% - (var(--v78-gutter) * 2))!important}

  /* Header: compact desktop mode at 881-1024 */
  .rv34-shell{width:min(100%,980px)!important;padding-inline:8px!important}
  .rv34-brand{left:8px!important;width:142px!important}
  .rv34-brand img{width:122px!important}
  .rv34-ribbon{left:106px!important}
  .rv34-nav{left:146px!important;right:205px!important}
  .rv34-link,.rv34-menu-trigger{min-width:72px!important;padding-inline:8px!important;font-size:9.5px!important}
  .rv34-commerce{right:8px!important}
  .rv34-order{width:142px!important}
  .rv34-order-main{font-size:10.2px!important}
  .rv34-order-sub{font-size:5px!important}

  /* Home */
  body[data-v78-page="index"] .hero{min-height:520px!important}
  body[data-v78-page="index"] .hero-content{width:calc(100% - (var(--v78-gutter) * 2))!important;padding:105px 0 54px!important}
  body[data-v78-page="index"] .department-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  body[data-v78-page="index"] .story{grid-template-columns:1fr!important;gap:28px!important}
  body[data-v78-page="index"] .visit{grid-template-columns:1fr 1fr!important;gap:20px!important}
  body[data-v78-page="index"] .map-card{grid-column:1/-1!important}

  /* Menu */
  .menu-hero{min-height:520px!important}
  .menu-hero-copy{min-height:520px!important;padding:64px var(--v78-gutter) 92px!important}
  .menu-hero-collage{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .menu-deck{grid-template-columns:1fr!important}
  .menu-order-cta{grid-template-columns:1fr!important;gap:24px!important}

  /* Product common */
  .product-v64-signals{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:12px!important}
  .v74-spotlight-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}

  /* Taqueria */
  .taqueria-hero{width:calc(100% - (var(--v78-gutter) * 2))!important;min-height:auto!important}
  .taqueria-feature-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .taqueria-catalog-layout{grid-template-columns:1fr!important}
  .tq-photo-cinema{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .taqueria-order{grid-template-columns:1fr!important}

  /* Tortilleria */
  .tor-hero{width:calc(100% - (var(--v78-gutter) * 2))!important;min-height:550px!important}
  .tor-hero-copy{min-height:550px!important;padding:64px 42px!important}
  .tor-story{grid-template-columns:1fr!important;gap:24px!important}
  .tor-flow{grid-template-columns:repeat(3,minmax(0,1fr))!important}
  .tor-catalog-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}

  /* Carniceria */
  .car-hero{width:calc(100% - (var(--v78-gutter) * 2))!important;grid-template-columns:1fr 1fr!important}
  .car-copy{padding:48px 34px!important}
  .car-editorial-grid{grid-template-columns:1fr 1fr!important;grid-template-rows:auto!important}
  .car-large{grid-row:auto!important;grid-column:1/-1!important;min-height:360px!important}
  .car-product-stage{grid-template-columns:1fr!important}
  .car-stage-copy{position:relative!important;top:auto!important}

  /* Panaderia */
  .pan-hero{width:calc(100% - (var(--v78-gutter) * 2))!important;padding:36px!important;min-height:auto!important}
  .pan-row,.pan-row.reverse{grid-template-columns:1fr!important;gap:26px!important}
  .pan-row.reverse .pan-row-media{order:0!important}
  .pan-catalog-shell{grid-template-columns:1fr!important}

  /* Groceries */
  .gro-hero{width:calc(100% - (var(--v78-gutter) * 2))!important}
  .gro-market-layout{grid-template-columns:1fr!important}
  .gro-accordion{position:relative!important;top:auto!important}
  .gro-category-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;grid-template-rows:auto!important}
  .gro-category-card.big{grid-row:auto!important;grid-column:1/-1!important;min-height:360px!important}
  .gro-product-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}

  /* About / location / contact */
  .ct-hero{width:calc(100% - (var(--v78-gutter) * 2))!important}
  .about-intro,.about-wide,.loc-layout,.ct-layout{grid-template-columns:1fr!important}
  .about-box-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}
  .loc-step-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}
  .ct-why-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}

/* ---------------- IPAD PORTRAIT / SMALL TABLET ---------------- */
@media(max-width:880px){
  html{scroll-padding-top:106px}
  body{padding-bottom:calc(var(--v78-bottom-bar) + env(safe-area-inset-bottom,0px))}

  /* Header becomes true touch navigation earlier, including iPad portrait. */
  .rv34-header{height:96px!important}
  .rv34-shell{height:96px!important;width:100%!important;padding:0!important}
  .rv34-brand{left:8px!important;top:8px!important;width:112px!important;height:78px!important;clip-path:none!important;border-radius:14px!important}
  .rv34-brand img{width:102px!important;max-height:70px!important}
  .rv34-ribbon{display:none!important}
  .rv34-nav{position:absolute!important;z-index:900!important;left:10px!important;right:10px!important;top:88px!important;width:auto!important;height:auto!important;padding:10px!important;display:none!important;flex-direction:column!important;align-items:stretch!important;background:#fff8fb!important;border:1px solid #e2c9d2!important;border-top:4px solid #d94c78!important;border-radius:0 0 14px 14px!important;box-shadow:0 20px 34px rgba(75,42,52,.22)!important}
  .rv34-nav.open{display:flex!important}
  .rv34-link,.rv34-menu-group,.rv34-menu-trigger{width:100%!important;min-width:0!important;height:auto!important}
  .rv34-link,.rv34-menu-trigger{height:48px!important;justify-content:flex-start!important;padding:0 16px!important;color:#68414e!important;text-shadow:none!important;background:#fff!important;border:1px solid #f0dce3!important;border-radius:9px!important;font-size:12px!important}
  .rv34-link:after,.rv34-menu-trigger:after{display:none!important}
  .rv34-link.is-active,.rv34-menu-trigger.is-active{transform:none!important;background:#f6d9e3!important;color:#8d3352!important}
  .rv34-menu-group{display:block!important}
  .rv34-menu-panel{position:relative!important;left:auto!important;top:auto!important;width:100%!important;margin-top:5px!important;display:none!important;opacity:1!important;visibility:visible!important;pointer-events:auto!important;transform:none!important;box-shadow:none!important}
  .rv34-menu-group.open .rv34-menu-panel{display:block!important}
  .rv34-commerce{right:10px!important;top:17px!important;height:46px!important;gap:7px!important}
  .rv34-order{display:flex!important;width:132px!important;height:46px!important;padding:7px 34px 7px 11px!important;border-radius:13px!important}
  .rv34-order-main{font-size:9.8px!important;letter-spacing:.05em!important}
  .rv34-order-sub{display:none!important}
  .rv34-order-arrow{right:6px!important;top:8px!important;width:29px!important;height:29px!important;font-size:16px!important}
  .rv34-cart{width:44px!important;height:44px!important}
  .rv34-mobile{position:absolute!important;z-index:920!important;right:194px!important;top:19px!important;width:42px!important;height:42px!important;padding:10px!important;display:flex!important;flex-direction:column!important;justify-content:center!important;gap:4px!important;border:1px solid #d6c9bd!important;border-radius:10px!important;background:linear-gradient(#fff,#efe6dd)!important;box-shadow:0 5px 10px rgba(65,48,35,.12)!important}
  .rv34-mobile span{display:block!important;width:100%!important;height:2px!important;background:#5b4c42!important}

  /* Promo line remains useful, but no clipping. */
  .promo-marquee{min-height:46px!important}
  .promo-marquee-shell{min-height:46px!important;grid-template-columns:46px minmax(0,1fr) 104px!important}
  .promo-fixed-cta{min-width:94px!important;min-height:36px!important;padding:0 9px!important;font-size:8px!important}

  /* Persistent online-order actions on touch devices. */
  .v78-mobile-orderbar{position:fixed;z-index:1000;left:10px;right:10px;bottom:calc(8px + env(safe-area-inset-bottom,0px));height:58px;padding:6px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px;border:1px solid rgba(255,255,255,.82);border-radius:18px;background:rgba(255,250,239,.94);box-shadow:0 18px 42px rgba(49,25,12,.24);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
  .v78-mobile-orderbar a{min-height:46px;border-radius:13px;display:flex;align-items:center;justify-content:center;gap:9px;text-decoration:none;font-family:Arial,sans-serif;font-size:12px;font-weight:950;letter-spacing:.04em}
  .v78-mobile-orderbar svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
  .v78-order-primary{padding:0 17px;color:#fff;background:linear-gradient(135deg,#7c0f20,#ca253c 55%,#e24c57);box-shadow:0 9px 20px rgba(153,23,43,.23)}
  .v78-order-wa{width:54px;color:#fff;background:linear-gradient(145deg,#169347,#20bf62);box-shadow:0 9px 20px rgba(20,145,66,.19)}
  body.contact-page .ct-v77-contact-dock{bottom:82px!important}
  body.contact-page .ct-v77-chat{bottom:220px!important;max-height:min(70vh,520px)!important}

  /* Home */
  body[data-v78-page="index"] .hero{min-height:480px!important}
  body[data-v78-page="index"] .hero-content{padding:86px 0 46px!important}
  body[data-v78-page="index"] .story,body[data-v78-page="index"] .visit{grid-template-columns:1fr!important}
  body[data-v78-page="index"] .department-card{min-height:260px!important}
  body[data-v78-page="index"] .promo{grid-template-columns:1fr!important;padding:28px!important}

  /* Menu */
  .menu-hero{min-height:500px!important}
  .menu-hero-copy{min-height:500px!important;padding:58px var(--v78-gutter) 86px!important}
  .menu-petal-figure{min-height:auto!important;display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:14px!important;align-items:stretch!important;justify-items:stretch!important}
  .menu-petal-center{position:relative!important;left:auto!important;right:auto!important;top:auto!important;bottom:auto!important;transform:none!important;grid-column:1/-1!important;order:-1!important;justify-self:center!important;width:min(280px,100%)!important;height:280px!important;margin:0 auto 4px!important}
  .menu-petal{position:relative!important;left:auto!important;right:auto!important;top:auto!important;bottom:auto!important;transform:none!important;width:100%!important;min-height:205px!important;border-radius:28px!important}
  .five-strip-collage{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .menu-order-cta{padding:30px!important;margin-bottom:50px!important}

  /* Product common */
  .product-v64-signals,.v74-spotlight-grid{grid-template-columns:1fr!important}
  .product-v64-signal{min-height:104px!important}

  /* Taqueria */
  .taqueria-sidebar-tab,.taqueria-sidebar,.taqueria-sidebar-scrim{display:none!important}
  .taqueria-hero{grid-template-columns:1fr!important;margin-top:18px!important}
  .taqueria-hero-copy{padding:44px 34px 26px!important}
  .taqueria-hero-visual{min-height:380px!important}
  .taq-v72-simple-shell{grid-template-columns:1fr!important}
  .taqueria-feature-grid,.tq-photo-cinema{grid-template-columns:1fr!important}
  .tq-photo-frame{min-height:300px!important}
  .taqueria-catalog-layout,.taqueria-order{grid-template-columns:1fr!important}

  /* Tortilleria */
  .tor-hero{margin-top:18px!important;min-height:500px!important}
  .tor-hero-copy{min-height:500px!important;width:100%!important;padding:54px 34px!important}
  .tor-floating-seal{transform:scale(.82)!important;transform-origin:right bottom!important}
  .tor-flow{grid-template-columns:1fr!important}
  .tor-catalog-grid{grid-template-columns:1fr!important}
  .tor-story-media{min-height:330px!important}

  /* Carniceria */
  .car-hero{grid-template-columns:1fr!important;margin-top:18px!important;min-height:auto!important}
  .car-split{min-height:390px!important}
  .car-right{min-height:auto!important}
  .car-copy{padding:46px 32px!important}
  .car-center-seam{display:none!important}
  .car-v73-video-shell{grid-template-columns:1fr!important;min-height:auto!important}
  .car-v73-video-stage{min-height:360px!important}
  .car-editorial-grid{grid-template-columns:1fr!important}
  .car-large{grid-column:auto!important;min-height:330px!important}
  .car-stage-cards{grid-template-columns:1fr 1fr!important}

  /* Panaderia */
  .pan-hero{grid-template-columns:1fr!important;margin-top:18px!important;padding:30px!important}
  .pan-hero-copy{padding:14px 0!important}
  .pan-hero-stage{min-height:430px!important}
  .pan-main-photo{position:absolute!important;inset:12px!important;min-height:0!important}
  .pan-card-grid{grid-template-columns:1fr!important}
  .pan-row-media{min-height:330px!important}
  .pan-catalog-image{min-height:360px!important}

  /* Groceries */
  .gro-hero{grid-template-columns:1fr!important;margin-top:18px!important;min-height:auto!important}
  .gro-hero-media{min-height:390px!important}
  .gro-hero-copy{padding:42px 32px!important}
  .gro-category-grid{grid-template-columns:1fr 1fr!important}
  .gro-product-grid{grid-template-columns:1fr 1fr!important}

  /* Nosotros / location / contact */
  .ct-hero{margin-top:18px!important;min-height:440px!important}
  .ct-hero-copy{min-height:440px!important;width:100%!important;padding:54px 34px 100px!important}
  .ct-feature-strip{left:14px!important;right:14px!important;bottom:14px!important;width:auto!important}
  .about-box-grid,.loc-step-grid{grid-template-columns:1fr!important}
  .about-photo,.loc-map-stage{min-height:350px!important}
  .about-wide-copy{padding:34px!important}
  .ct-form{grid-template-columns:1fr!important}
  .ct-why-grid{grid-template-columns:1fr!important}

  /* Footer */
  .footer-inner{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:22px!important}
  .footer-actions{grid-template-columns:1fr!important}
}

/* ---------------- PHONE ---------------- */
@media(max-width:520px){
  :root{--v78-gutter:14px;--v78-bottom-bar:72px}
  html{scroll-padding-top:100px}

  /* Header phone: order lives in persistent bottom CTA; cart + menu remain visible. */
  .rv34-header{height:92px!important}
  .rv34-shell{height:92px!important}
  .rv34-brand{width:108px!important;height:76px!important}
  .rv34-brand img{width:98px!important}
  .rv34-order{display:none!important}
  .rv34-commerce{right:10px!important;top:18px!important}
  .rv34-mobile{right:62px!important;top:19px!important}
  .rv34-nav{top:84px!important}

  .promo-marquee-shell{grid-template-columns:minmax(0,1fr) 88px!important;padding-left:7px!important}
  .promo-fixed-star{display:none!important}
  .promo-fixed-cta{min-width:80px!important;padding:0 7px!important;font-size:7.5px!important}
  .promo-track{font-size:8px!important}

  /* Global typography/controls */
  h1{overflow-wrap:anywhere}
  input,textarea,select{font-size:16px!important} /* prevents iOS focus zoom */
  .rv34-link,.rv34-menu-trigger{font-size:12px!important}

  /* Home */
  body[data-v78-page="index"] .hero{min-height:450px!important}
  body[data-v78-page="index"] .hero-content{padding:70px 0 38px!important}
  body[data-v78-page="index"] .department-grid{grid-template-columns:1fr!important}
  body[data-v78-page="index"] .department-card{min-height:235px!important}
  body[data-v78-page="index"] .story-photo,body[data-v78-page="index"] .visit-photo{min-height:270px!important}
  body[data-v78-page="index"] .promo{padding:24px 18px!important}

  /* Menu */
  .menu-hero{min-height:460px!important}
  .menu-hero-copy{min-height:460px!important;padding:48px 16px 72px!important}
  .menu-hero-collage{grid-template-columns:1fr 1fr!important}
  .menu-petal-figure{grid-template-columns:1fr!important;gap:12px!important}
  .menu-petal-center{grid-column:1!important;width:min(240px,100%)!important;height:240px!important}
  .menu-petal{min-height:190px!important}
  .five-strip-collage{grid-template-columns:1fr!important}
  .five-department-deck .menu-dept-panel:nth-child(5){grid-column:auto!important;min-height:260px!important}
  .menu-order-cta{padding:24px 18px!important;border-radius:22px!important}
  .menu-primary-btn,.menu-ghost-btn,.menu-order-button{width:100%!important;justify-content:center!important}

  /* Taqueria */
  .taqueria-hero-copy{padding:34px 20px 22px!important}
  .taqueria-hero-visual{min-height:280px!important}
  .taq-v72-simple-video,.taq-v72-simple-shell{min-height:auto!important}
  .taq-v72-simple-video-stage{min-height:260px!important}
  .taqueria-hero-actions,.taqueria-order-actions{display:grid!important;grid-template-columns:1fr!important}
  .tq-btn{width:100%!important;justify-content:center!important}
  .tq-photo-frame{min-height:240px!important}

  /* Tortilleria */
  .tor-hero{min-height:460px!important}
  .tor-hero-copy{min-height:460px!important;padding:42px 22px!important}
  .tor-actions{display:grid!important;grid-template-columns:1fr!important}
  .tor-btn{width:100%!important;justify-content:center!important}
  .tor-floating-seal{display:none!important}
  .tor-story-media{min-height:280px!important}
  .tor-product-shell{min-height:240px!important}

  /* Carniceria */
  .car-split{min-height:300px!important}
  .car-copy{padding:38px 22px!important}
  .car-actions{display:grid!important;grid-template-columns:1fr!important}
  .car-btn{width:100%!important;justify-content:center!important}
  .car-v73-video-stage{min-height:280px!important}
  .car-stage-cards{grid-template-columns:1fr!important}
  .car-story-card{min-height:270px!important}

  /* Panaderia */
  .pan-hero{padding:22px!important}
  .pan-actions{display:grid!important;grid-template-columns:1fr!important}
  .pan-btn{width:100%!important;justify-content:center!important}
  .pan-hero-stage{display:block!important;min-height:auto!important}
  .pan-main-photo{position:relative!important;inset:auto!important;min-height:270px!important;margin:0!important;transform:none!important}
  .pan-v68-video-badge{position:relative!important;left:auto!important;right:auto!important;top:auto!important;bottom:auto!important;width:100%!important;max-width:none!important;margin-top:10px!important}
  .pan-row-media{min-height:270px!important}
  .pan-catalog-image{min-height:300px!important}

  /* Groceries */
  .gro-hero-media{min-height:300px!important}
  .gro-hero-copy{padding:34px 22px!important}
  .gro-actions{display:grid!important;grid-template-columns:1fr!important}
  .gro-btn{width:100%!important;justify-content:center!important}
  .gro-category-grid,.gro-product-grid{grid-template-columns:1fr!important}
  .gro-category-card.big{min-height:300px!important}
  .gro-product-shell{min-height:220px!important}

  /* Content pages */
  .ct-hero{min-height:390px!important;border-radius:22px!important}
  .ct-hero-copy{min-height:390px!important;padding:40px 22px 116px!important}
  .ct-feature-strip{grid-template-columns:1fr!important;max-height:116px!important;overflow:auto!important}
  .about-photo,.loc-map-stage{min-height:280px!important}
  .about-wide-media{min-height:260px!important}
  .about-wide-copy{padding:28px 22px!important}
  .loc-info-panel,.ct-info-panel,.ct-form-panel{padding:22px!important}

  /* Contact V77: never collide with the order dock */
  body.contact-page .ct-v77-contact-dock{left:10px!important;right:10px!important;bottom:80px!important;width:auto!important;grid-template-columns:1fr 1fr!important}
  body.contact-page .ct-v77-chat{left:10px!important;right:10px!important;bottom:205px!important;width:auto!important;max-height:62vh!important}

  /* Footer */
  .footer-inner{grid-template-columns:1fr!important}
  .footer-actions{padding-bottom:12px!important}
  .footer-socials,.socials{flex-wrap:wrap!important}
}

/* Small phone safeguard */
@media(max-width:360px){
  .rv34-brand{width:98px!important}.rv34-brand img{width:90px!important}
  .rv34-mobile{right:60px!important}
  .v78-mobile-orderbar{left:6px;right:6px}
  .v78-mobile-orderbar a{font-size:10.5px}
  .menu-hero-copy,.taqueria-hero-copy,.tor-hero-copy,.car-copy,.gro-hero-copy,.ct-hero-copy{padding-left:18px!important;padding-right:18px!important}
}

/* Touch devices should not depend on hover/parallax to remain readable. */
@media(pointer:coarse){
  .rv34-link:hover,.rv34-menu-trigger:hover,.tq-btn:hover,.tor-btn:hover,.car-btn:hover,.pan-btn:hover,.gro-btn:hover,
  .department-card:hover,.menu-dept-panel:hover,.menu-petal:hover,.pan-row-media:hover img,.car-story-card:hover img,
  .gro-category-card.big:hover img,.about-photo:hover img{transform:none!important}
}

@media(prefers-reduced-motion:reduce){
  .v78-mobile-orderbar,.v78-mobile-orderbar *{transition:none!important;animation:none!important}
}
