{"id":779,"date":"2026-01-27T09:50:26","date_gmt":"2026-01-27T08:50:26","guid":{"rendered":"https:\/\/istirincha.stivopro.com\/hotelbocadeovejas\/?page_id=779"},"modified":"2026-04-21T20:28:13","modified_gmt":"2026-04-21T18:28:13","slug":"habitaciones","status":"publish","type":"page","link":"https:\/\/istirincha.com.mx\/hotelbocadeovejas\/habitaciones\/","title":{"rendered":"Habitaciones"},"content":{"rendered":"\n<section class=\"ov-rooms\">\n  <style>\n    .ov-rooms{max-width:1200px;margin:0 auto;padding:28px 18px;font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial}\n    .ov-rooms__head{display:flex;gap:14px;align-items:flex-end;justify-content:space-between;flex-wrap:wrap;margin-bottom:18px}\n    .ov-rooms__title{margin:0;font-size:28px;line-height:1.15}\n    .ov-rooms__subtitle{margin:6px 0 0;color:#667085}\n    .ov-rooms__meta{display:flex;gap:10px;align-items:center}\n    .ov-pill{border:1px solid rgba(0,0,0,.12);padding:8px 10px;border-radius:999px;font-size:13px;color:#111;background:#fff}\n    .ov-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:14px}\n    .ov-card{grid-column:span 12;border:1px solid rgba(0,0,0,.10);border-radius:16px;overflow:hidden;background:#fff;box-shadow:0 10px 30px rgba(0,0,0,.06)}\n    @media(min-width:740px){.ov-card{grid-column:span 6}}\n    @media(min-width:1040px){.ov-card{grid-column:span 4}}\n    .ov-card__media{position:relative;aspect-ratio:16\/10;background:#f2f4f7}\n    .ov-card__media img{width:100%;height:100%;object-fit:cover;display:block}\n    .ov-badge{position:absolute;top:12px;left:12px;background:rgba(17,17,17,.85);color:#fff;font-size:12px;padding:6px 10px;border-radius:999px}\n    .ov-card__body{padding:14px 14px 12px}\n    .ov-card__h{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}\n    .ov-card__title{margin:0;font-size:18px}\n    .ov-card__price{font-weight:700;white-space:nowrap}\n    .ov-card__desc{margin:8px 0 10px;color:#667085;font-size:14px}\n    .ov-ul{margin:0;padding-left:18px;color:#111}\n    .ov-ul li{margin:4px 0;font-size:13px;color:#344054}\n    .ov-card__actions{display:flex;gap:10px;align-items:center;padding:0 14px 14px}\n    .ov-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:12px;padding:10px 12px;font-weight:600;text-decoration:none;cursor:pointer}\n    .ov-btn--primary{background:#111;color:#fff;border:1px solid #111;flex:1}\n    .ov-btn--ghost{background:#fff;color:#111;border:1px solid rgba(0,0,0,.16)}\n  <\/style>\n\n  <header class=\"ov-rooms__head\">\n    <div>\n      <h2 class=\"ov-rooms__title\">Elige tu tipo de habitaci\u00f3n<\/h2>\n      <p class=\"ov-rooms__subtitle\">Selecciona una opci\u00f3n para ver disponibilidad y reservar.<\/p>\n    <\/div>\n    <div class=\"ov-rooms__meta\">\n      <span class=\"ov-pill\">Reserva directa<\/span>\n      <span class=\"ov-pill\">Pago seguro<\/span>\n    <\/div>\n  <\/header>\n\n  <div id=\"ovRoomGrid\" class=\"ov-grid\"><\/div>\n\n  <script>\n    const ROOM_TYPES = [\n      {\n        name:\"Est\u00e1ndar\",\n        priceBase:\"$1,215 MXN\",\n        priceHigh:\"$1,495 MXN\",\n        tag:\"M\u00e1s accesible\",\n        url:\"https:\/\/istirincha.com.mx\/hotelbocadeovejas\/estandar\/\",\n        img:\"https:\/\/istirincha.com.mx\/hotelbocadeovejas\/wp-content\/uploads\/sites\/4\/2026\/01\/Habitacion-Standar_2.jpeg\",\n        desc:\"Habitaci\u00f3n c\u00f3moda para una escapada pr\u00e1ctica.\",\n        bullets:[\"Wi-Fi\",\"Ba\u00f1o privado\",\"Ventilaci\u00f3n\/AC\"]\n      },\n      {\n        name:\"Mixta\",\n        priceBase:\"$1,380 MXN\",\n        priceHigh:\"$1,605 MXN\",\n        tag:\"Vers\u00e1til\",\n        url:\"https:\/\/istirincha.com.mx\/hotelbocadeovejas\/mixta\/\",\n        img:\"https:\/\/istirincha.com.mx\/hotelbocadeovejas\/wp-content\/uploads\/sites\/4\/2026\/01\/HABITACION-MIXTA_2.jpeg\",\n        desc:\"Distribuci\u00f3n flexible para distintos tipos de estancia.\",\n        bullets:[\"Wi-Fi\",\"Ba\u00f1o privado\",\"Espacio funcional\"]\n      },\n      {\n        name:\"Doble PA\",\n        priceBase:\"$1,640 MXN\",\n        priceHigh:\"$2,065 MXN\",\n        tag:\"Doble\",\n        url:\"https:\/\/istirincha.com.mx\/hotelbocadeovejas\/doble-pa\/\",\n        img:\"https:\/\/istirincha.com.mx\/hotelbocadeovejas\/wp-content\/uploads\/sites\/4\/2026\/01\/HABITACION-DOBLE_2.jpeg\",\n        desc:\"Ideal si viajas en pareja o con acompa\u00f1ante.\",\n        bullets:[\"2 camas \/ cama doble\",\"Wi-Fi\",\"Ba\u00f1o privado\"]\n      },\n      {\n        name:\"Doble PB\",\n        priceBase:\"$1,640 MXN\",\n        priceHigh:\"$2,065 MXN\",\n        tag:\"Doble\",\n        url:\"https:\/\/istirincha.com.mx\/hotelbocadeovejas\/doble-pb\/\",\n        img:\"https:\/\/istirincha.com.mx\/hotelbocadeovejas\/wp-content\/uploads\/sites\/4\/2026\/01\/HABITACION-DOBLE_2.jpeg\",\n        desc:\"Comodidad doble con ubicaci\u00f3n en planta baja.\",\n        bullets:[\"2 camas \/ cama doble\",\"Wi-Fi\",\"F\u00e1cil acceso\"]\n      },\n      {\n        name:\"King Size\",\n        priceBase:\"$1,435 MXN\",\n        priceHigh:\"$1,765 MXN\",\n        tag:\"Cama King\",\n        url:\"https:\/\/istirincha.com.mx\/hotelbocadeovejas\/king-size\/\",\n        img:\"https:\/\/istirincha.com.mx\/hotelbocadeovejas\/wp-content\/uploads\/sites\/4\/2026\/01\/Habitacion-king-size_7.jpeg\",\n        desc:\"M\u00e1s descanso y amplitud con cama King.\",\n        bullets:[\"Cama King\",\"Wi-Fi\",\"Ba\u00f1o privado\"]\n      },\n      {\n        name:\"Familiar\",\n        priceBase:\"$2,415 MXN\",\n        priceHigh:\"$3,010 MXN\",\n        tag:\"Familiar\",\n        url:\"https:\/\/istirincha.com.mx\/hotelbocadeovejas\/familiar\/\",\n        img:\"https:\/\/istirincha.com.mx\/hotelbocadeovejas\/wp-content\/uploads\/sites\/4\/2026\/03\/FAMILIAR-6-.jpeg\",\n        desc:\"Perfecta para grupos o familias que quieren m\u00e1s espacio.\",\n        bullets:[\"Mayor capacidad\",\"Wi-Fi\",\"Zona de descanso\"]\n      },\n      {\n        name:\"King Size Plus\",\n        priceBase:\"$1,550 MXN\",\n        priceHigh:\"$1,850 MXN\",\n        tag:\"Mejor experiencia\",\n        url:\"https:\/\/istirincha.com.mx\/hotelbocadeovejas\/king-size-plus\/\",\n        img:\"https:\/\/istirincha.com.mx\/hotelbocadeovejas\/wp-content\/uploads\/sites\/4\/2026\/01\/King-size-plus_2.jpeg\",\n        desc:\"Un upgrade de comodidad y detalles.\",\n        bullets:[\"Cama King\",\"Amenidades mejoradas\",\"Wi-Fi\"]\n      }\n    ];\n\n    const grid = document.getElementById(\"ovRoomGrid\");\n\n    function cardTemplate(room){\n      const li = (room.bullets || []).map(b => `<li>${b}<\/li>`).join(\"\");\n      return `\n        <article class=\"ov-card\">\n          <div class=\"ov-card__media\">\n            <img decoding=\"async\" src=\"${room.img}\" alt=\"${room.name}\">\n            <span class=\"ov-badge\">${room.tag || \"Habitaci\u00f3n\"}<\/span>\n          <\/div>\n          <div class=\"ov-card__body\">\n            <div class=\"ov-card__h\">\n              <h3 class=\"ov-card__title\">${room.name}<\/h3>\n              <div class=\"ov-card__price\"\n                data-price-base=\"${room.priceBase}\"\n                data-price-high=\"${room.priceHigh}\">\n                ${room.priceBase}\n              <\/div>\n            <\/div>\n            <p class=\"ov-card__desc\">${room.desc || \"\"}<\/p>\n            <ul class=\"ov-ul\">${li}<\/ul>\n          <\/div>\n          <div class=\"ov-card__actions\">\n            <a class=\"ov-btn ov-btn--primary ov-inherit-search\" data-base-url=\"${room.url}\" href=\"${room.url}\">Ver disponibilidad<\/a>\n            <a class=\"ov-btn ov-btn--ghost ov-inherit-search\" data-base-url=\"${room.url}#details\" href=\"${room.url}#details\">Detalles<\/a>\n          <\/div>\n        <\/article>\n      `;\n    }\n\n    grid.innerHTML = ROOM_TYPES.map(cardTemplate).join(\"\");\n\n    \/\/ ========= CALENDARIO TEMPORADA ALTA (pegar aqu\u00ed) =========\n    (function(){\n      const HIGH_SEASON = [\n        { start: \"12-01\", end: \"04-30\" }, \/\/ Invierno + Semana Santa\n        { start: \"06-01\", end: \"08-31\" }, \/\/ Verano\n      ];\n\n      const qs = new URLSearchParams(window.location.search);\n\n      function parseCheckIn(){\n        const v = qs.get(\"mphb_check_in_date\");\n        if(!v) return null;\n\n        if (\/^\\d{4}-\\d{2}-\\d{2}$\/.test(v)) return new Date(v + \"T12:00:00\");\n\n        const m = v.match(\/^(\\d{1,2})\\\/(\\d{1,2})\\\/(\\d{4})$\/);\n        if(m) return new Date(+m[3], +m[2]-1, +m[1], 12,0,0);\n\n        return null;\n      }\n\n      function mmdd(date){\n        const mm = String(date.getMonth()+1).padStart(2,\"0\");\n        const dd = String(date.getDate()).padStart(2,\"0\");\n        return `${mm}-${dd}`;\n      }\n\n      function inHighSeason(date){\n        const md = mmdd(date);\n        return HIGH_SEASON.some(r => {\n          if (r.start <= r.end) return md >= r.start && md <= r.end;\n          return (md >= r.start) || (md <= r.end);\n        });\n      }\n\n      function updateCardPrices(){\n        const checkIn = parseCheckIn() || new Date();\n        const useHigh = inHighSeason(checkIn);\n\n        document.querySelectorAll(\".ov-card__price\").forEach(el=>{\n          const base = el.getAttribute(\"data-price-base\");\n          const high = el.getAttribute(\"data-price-high\");\n          if(!base || !high) return;\n          el.textContent = useHigh ? high : base;\n        });\n      }\n\n      updateCardPrices();\n    })();\n\n    \/\/ Solo heredar par\u00e1metros \u00fatiles\n    (function(){\n      const src = new URL(window.location.href);\n      const allowed = [\"mphb_check_in_date\",\"mphb_check_out_date\",\"mphb_adults\",\"mphb_children\"];\n      const clean = new URLSearchParams();\n      allowed.forEach(k => { if (src.searchParams.has(k)) clean.set(k, src.searchParams.get(k)); });\n      const qs = clean.toString();\n      if (!qs) return;\n\n      document.querySelectorAll(\".ov-inherit-search\").forEach(a=>{\n        const base = a.getAttribute(\"data-base-url\") || a.getAttribute(\"href\") || \"\";\n        const u = new URL(base, window.location.origin);\n        u.search = qs;\n        a.setAttribute(\"href\", u.toString());\n      });\n    })();\n  <\/script>\n<\/section>\n","protected":false},"excerpt":{"rendered":"<p>Elige tu tipo de habitaci\u00f3n Selecciona una opci\u00f3n para ver disponibilidad y reservar. Reserva directa Pago seguro<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-779","page","type-page","status-publish","hentry"],"blocksy_meta":[],"_links":{"self":[{"href":"https:\/\/istirincha.com.mx\/hotelbocadeovejas\/wp-json\/wp\/v2\/pages\/779","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/istirincha.com.mx\/hotelbocadeovejas\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/istirincha.com.mx\/hotelbocadeovejas\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/istirincha.com.mx\/hotelbocadeovejas\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/istirincha.com.mx\/hotelbocadeovejas\/wp-json\/wp\/v2\/comments?post=779"}],"version-history":[{"count":7,"href":"https:\/\/istirincha.com.mx\/hotelbocadeovejas\/wp-json\/wp\/v2\/pages\/779\/revisions"}],"predecessor-version":[{"id":1093,"href":"https:\/\/istirincha.com.mx\/hotelbocadeovejas\/wp-json\/wp\/v2\/pages\/779\/revisions\/1093"}],"wp:attachment":[{"href":"https:\/\/istirincha.com.mx\/hotelbocadeovejas\/wp-json\/wp\/v2\/media?parent=779"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}