/*
 * Munshi's Hotel & Restaurant — design system (v2.0)
 * Scope: site pages only. Every selector is either a WordPress core block
 * selector inside .wp-site-blocks or an "mh-" class added in the editor.
 * Nothing here targets RevCatalyst (.rev-*, .flatpickr-*, #revcatalyst*, booking pages).
 */

/* ---------- Fonts (self-hosted, already in theme) ---------- */
@font-face{font-family:"Vollkorn";src:url("../fonts/vollkorn/Vollkorn-VariableFont_wght.woff2") format("woff2");font-weight:400 900;font-style:normal;font-display:swap}
@font-face{font-family:"Manrope";src:url("../fonts/manrope/Manrope-VariableFont_wght.woff2") format("woff2");font-weight:200 800;font-style:normal;font-display:swap}

/* ---------- Tokens ---------- */
:root{
  --mh-ivory:#faf7f0;
  --mh-sand:#f1eadc;
  --mh-pine:#1d3b2a;
  --mh-pine-dark:#14291d;
  --mh-brass:#b7831c;
  --mh-brass-text:#8a6214;   /* brass dark enough for text on ivory (AA) */
  --mh-ink:#24221f;
  --mh-muted:#5b574f;
  --mh-line:#e3dccd;
  --mh-serif:"Vollkorn",Georgia,"Times New Roman",serif;
  --mh-sans:"Manrope",system-ui,-apple-system,"Segoe UI",sans-serif;
  --mh-radius:6px;
  --mh-section:clamp(56px,8vw,112px);
  --mh-gap:clamp(20px,3vw,36px);
  --mh-container:1180px;
  --mh-measure:68ch;
}

/* Map legacy font classes used in existing blocks onto the real fonts */
.has-gilda-display-font-family,.has-lora-font-family{font-family:var(--mh-serif)!important}
.has-inter-font-family,.has-barlow-font-family,.has-roboto-font-family{font-family:var(--mh-sans)!important}

/* ---------- Base typography ---------- */
body{font-family:var(--mh-sans);font-weight:400;font-size:17px;line-height:1.65;color:var(--mh-ink);letter-spacing:0}
.wp-site-blocks h1,.wp-site-blocks h2,.wp-site-blocks h3,.wp-site-blocks h4{font-family:var(--mh-serif);font-weight:500;letter-spacing:-.01em;line-height:1.15;color:inherit}
.wp-site-blocks h1{font-size:clamp(2.4rem,5.2vw,4.25rem)}
.wp-site-blocks h2{font-size:clamp(1.9rem,3.4vw,2.75rem)}
.wp-site-blocks h3{font-size:clamp(1.3rem,2vw,1.6rem)}
.wp-site-blocks h4{font-size:1.15rem}
.wp-site-blocks p{max-width:var(--mh-measure)}
.wp-site-blocks .has-text-align-center{margin-left:auto;margin-right:auto}

/* Accessible focus (the global stylesheet removes outlines; restore for keyboards) */
.wp-site-blocks a:focus-visible,.wp-site-blocks button:focus-visible,.wp-site-blocks .wp-element-button:focus-visible{outline:2px solid var(--mh-brass)!important;outline-offset:3px}

/* ---------- Section system ---------- */
.mh-section{padding-top:var(--mh-section)!important;padding-bottom:var(--mh-section)!important;padding-left:20px!important;padding-right:20px!important}
.mh-section--ivory{background:var(--mh-ivory)}
.mh-section--sand{background:var(--mh-sand)}
.mh-section--pine{background:var(--mh-pine);color:#f4efe4}
.mh-section--pine .mh-eyebrow{color:#e2c07f}
.mh-section--pine p{color:#e6e0d3}
.mh-eyebrow{font-family:var(--mh-sans)!important;font-size:.78rem!important;font-weight:700!important;letter-spacing:.18em!important;text-transform:uppercase;color:var(--mh-brass-text);margin-bottom:.6rem!important}
.mh-lead{font-size:clamp(1.05rem,1.4vw,1.2rem)!important;color:var(--mh-muted)}
.mh-section-head{margin-bottom:clamp(28px,4vw,48px)!important}
.mh-rule{width:56px;height:2px;background:var(--mh-brass);border:0;margin:18px 0 0!important}
.has-text-align-center + .mh-rule,.mh-section-head.has-text-align-center .mh-rule{margin-left:auto!important;margin-right:auto!important}

/* ---------- Hero ---------- */
.mh-hero{min-height:clamp(460px,78vh,760px)!important}
.mh-hero--page{min-height:clamp(300px,46vh,440px)!important}
.mh-hero .wp-block-cover__inner-container{max-width:var(--mh-container)!important;padding:0 20px}
.mh-hero h1{color:#fff;margin:0 auto .4em;text-wrap:balance}
.mh-hero p{color:#f2ede3;margin-left:auto;margin-right:auto}
.mh-hero .mh-eyebrow{color:#ecd3a1}

/* Booking widget area — layout spacing only, its internals are untouched */
.mh-booking-bar{position:relative;z-index:5;margin-top:-44px!important;padding:0 16px}

/* ---------- Buttons ---------- */
.wp-site-blocks .wp-block-button .wp-block-button__link{border-radius:var(--mh-radius);font-family:var(--mh-sans);font-weight:600;font-size:.95rem;letter-spacing:.02em;padding:.85em 1.7em;min-height:44px}
.mh-btn-primary .wp-block-button__link{background:var(--mh-pine)!important;color:#fff!important;border:1px solid var(--mh-pine)}
.mh-btn-primary .wp-block-button__link:hover{background:var(--mh-pine-dark)!important}
.mh-btn-outline .wp-block-button__link{background:transparent!important;color:var(--mh-pine)!important;border:1px solid var(--mh-pine)!important}
.mh-btn-outline .wp-block-button__link:hover{background:var(--mh-pine)!important;color:#fff!important}
.mh-btn-light .wp-block-button__link{background:transparent!important;color:#fff!important;border:1px solid rgba(255,255,255,.85)!important}
.mh-btn-light .wp-block-button__link:hover{background:#fff!important;color:var(--mh-pine)!important}

/* ---------- Media ---------- */
.mh-img img,.mh-card img{border-radius:var(--mh-radius);display:block;width:100%}
.mh-ratio-4x5 img{aspect-ratio:4/5;object-fit:cover;height:auto!important}
.mh-ratio-4x3 img{aspect-ratio:4/3;object-fit:cover;height:auto!important}
.mh-ratio-3x2 img{aspect-ratio:3/2;object-fit:cover;height:auto!important}

/* ---------- Cards (rooms) ---------- */
.mh-cards{gap:var(--mh-gap)!important}
.mh-card{background:#fff;border:1px solid var(--mh-line);border-radius:var(--mh-radius);padding:0!important;overflow:hidden;display:flex;flex-direction:column}
.mh-card > .wp-block-image{margin:0!important}
.mh-card img{border-radius:0;aspect-ratio:4/3;object-fit:cover;height:auto!important}
.mh-card .mh-card-body{padding:22px 24px 26px!important;display:flex;flex-direction:column;flex:1;gap:.6rem}
.mh-card h3{margin:0!important}
.mh-card h3 a{text-decoration:none;color:var(--mh-ink)}
.mh-card h3 a:hover{color:var(--mh-brass-text)}
.mh-card p{color:var(--mh-muted);font-size:.98rem;margin:0}
.mh-card .wp-block-buttons{margin-top:auto!important;padding-top:10px}

/* ---------- Facilities ---------- */
.mh-facilities{display:grid!important;grid-template-columns:repeat(6,minmax(0,1fr));gap:16px!important}
.mh-facility{background:#fff;border:1px solid var(--mh-line);border-radius:var(--mh-radius);padding:22px 12px!important;text-align:center;margin:0!important}
.mh-facility img{width:40px!important;height:40px!important;margin:0 auto 10px;display:block}
.mh-facility p{font-size:.92rem;font-weight:600;color:var(--mh-ink);margin:0 auto}
.mh-section--pine .mh-facility{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.18)}
.mh-section--pine .mh-facility p{color:#f4efe4}
.mh-section--pine .mh-facility img{filter:brightness(0) invert(1);opacity:.9}
@media (max-width:1024px){.mh-facilities{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:480px){.mh-facilities{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* ---------- Testimonials (existing shortcode, presentation only) ---------- */
.mh-testimonials .testimonial-card{border-radius:var(--mh-radius)!important;border:1px solid var(--mh-line);padding:32px 26px!important;min-height:0!important;height:100%}
.mh-testimonials .quote-icon{width:34px!important;margin:0 auto 18px!important;opacity:.7}
.mh-testimonials .testimonial-desc{font-family:var(--mh-serif)!important;font-size:1.08rem!important;line-height:1.6!important;color:var(--mh-ink)!important;font-style:italic}
.mh-testimonials .testimonial_heading{font-family:var(--mh-sans)!important;font-size:.9rem!important;font-weight:700!important;letter-spacing:.08em;text-transform:uppercase;color:var(--mh-brass-text)!important;margin-top:16px!important}
.mh-testimonials .slick-track{display:flex}
.mh-testimonials .slick-slide{height:auto}
.mh-testimonials .slick-slide > div{height:100%}
.mh-testimonials .slick-prev:before,.mh-testimonials .slick-next:before{color:var(--mh-pine)}

/* ---------- Galleries ---------- */
.mh-gallery.wp-block-gallery{gap:12px!important}
.mh-gallery.wp-block-gallery .wp-block-image img{aspect-ratio:4/3;object-fit:cover;height:100%!important;border-radius:4px}
.mh-gallery.wp-block-gallery .wp-block-image{transition:opacity .2s ease}
.mh-gallery.wp-block-gallery .wp-block-image:hover{opacity:.92}
@media (max-width:600px){.mh-gallery.wp-block-gallery.columns-3 .wp-block-image{width:calc(50% - 6px)!important}}
.mh-load-more{display:flex;justify-content:center;margin-top:28px}
.mh-load-more button{font:600 .95rem var(--mh-sans);background:var(--mh-pine);color:#fff;border:0;border-radius:var(--mh-radius);padding:.85em 2em;min-height:44px;cursor:pointer}
.mh-load-more button:hover{background:var(--mh-pine-dark)}

/* ---------- Contact ---------- */
.mh-contact-card{background:#fff;border:1px solid var(--mh-line);border-radius:var(--mh-radius);padding:28px!important}
.mh-contact-card p{margin:0 0 .35rem}
.mh-contact-card a{color:var(--mh-pine);font-weight:600;text-decoration:underline;text-underline-offset:3px;word-break:break-word}
.mh-map iframe{display:block;width:100%;height:clamp(320px,45vw,460px);border:0;border-radius:var(--mh-radius)}

/* ---------- Legal pages ---------- */
.mh-legal{max-width:780px;margin-left:auto!important;margin-right:auto!important}
.mh-legal h2{font-size:clamp(1.35rem,2.2vw,1.65rem)!important;margin-top:2.4rem!important;padding-top:1.2rem;border-top:1px solid var(--mh-line)}
.mh-legal h3{font-size:1.1rem!important;margin-top:1.4rem!important}
.mh-legal p,.mh-legal li{color:#3a3732}
.mh-legal ul{padding-left:1.2em}
.mh-legal li{margin-bottom:.35rem}
.mh-legal .mh-note{background:var(--mh-sand);border-left:3px solid var(--mh-brass);padding:14px 18px!important;border-radius:0 var(--mh-radius) var(--mh-radius) 0;font-size:.95rem}
.mh-legal a{color:var(--mh-pine);font-weight:600}

/* ---------- Header ---------- */
.mh-header{background:#fff;border-bottom:1px solid var(--mh-line)}
.mh-header .wp-block-site-logo img{width:64px!important;height:auto}
.mh-header .wp-block-navigation{font-family:var(--mh-sans);font-size:.95rem;font-weight:600;letter-spacing:.02em}
.mh-header .wp-block-navigation-item__content{padding:10px 2px;color:var(--mh-ink)}
.mh-header .current-menu-item > .wp-block-navigation-item__content,.mh-header .wp-block-navigation-item__content[aria-current="page"]{color:var(--mh-brass-text);box-shadow:inset 0 -2px 0 var(--mh-brass)}
.mh-header .wp-block-navigation__responsive-container-open{width:44px;height:44px;justify-content:center}
.mh-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content{font-size:1.35rem;padding:12px 0;font-family:var(--mh-serif)}

/* ---------- Footer ---------- */
.mh-footer{background:var(--mh-pine-dark)!important;color:#e6e0d3}
.mh-footer h2,.mh-footer .mh-footer-title{font-family:var(--mh-sans)!important;font-size:.8rem!important;font-weight:700!important;letter-spacing:.16em!important;text-transform:uppercase;color:#e2c07f!important;margin:0 0 14px!important}
.mh-footer p,.mh-footer a,.mh-footer .wp-block-navigation-item__content{color:#e6e0d3!important;font-size:.95rem!important;line-height:1.7}
.mh-footer a:hover{color:#fff!important}
.mh-footer .wp-block-navigation{gap:6px!important}
.mh-footer-bottom{background:#0f2016!important;color:#c9c2b3;font-size:.85rem}
.mh-footer-bottom p,.mh-footer-bottom a{color:#c9c2b3!important;font-size:.85rem!important;margin:0}
.mh-footer-bottom .powered_logo{justify-content:flex-end}
@media (max-width:781px){.mh-footer-bottom .powered_logo{justify-content:flex-start}}

/* ---------- QA fixes (browser test 30 Oct 2026) ---------- */
/* Global stylesheet sets p{font-family:Inter} but Inter is never loaded -> Times fallback.
   Scoped to core block classes only, so RevCatalyst markup is not affected. */
.wp-site-blocks .wp-block-paragraph,.wp-site-blocks .wp-block-list,.wp-site-blocks .wp-block-list li{font-family:var(--mh-sans)}
.wp-site-blocks .mh-eyebrow{font-family:var(--mh-sans)!important}
/* Global mobile rule hides every <br>; restore inside core paragraphs (addresses, legal contact blocks). */
.wp-site-blocks .wp-block-paragraph br{display:inline!important}
/* Testimonial slider arrows: global rules push them off-screen; keep them inside the section. */
.mh-testimonials .custom-room-slider{position:relative;padding:0 44px}
.mh-testimonials .slick-prev,.mh-testimonials .slick-next{width:40px;height:40px;z-index:3;top:50%;transform:translateY(-50%)}
.mh-testimonials .slick-prev{left:0!important}
.mh-testimonials .slick-next{right:0!important}
.mh-testimonials .slick-prev:before,.mh-testimonials .slick-next:before{position:static!important;left:auto!important;right:auto!important;font-size:28px;opacity:.8}
@media (max-width:480px){.mh-testimonials .custom-room-slider{padding:0 36px}}
/* Phones/tablets show one review at a time: size each card to its own text, not the longest review. */
@media (max-width:1024px){
  .mh-testimonials .slick-track{align-items:flex-start}
  .mh-testimonials .slick-slide,.mh-testimonials .slick-slide > div,.mh-testimonials .testimonial-card{height:auto!important}
}
/* Footer menu: remove inconsistent item padding so links align on one left edge. */
.mh-footer .wp-block-navigation .wp-block-navigation__container{gap:6px!important;align-items:flex-start!important}
.mh-footer .wp-block-navigation-item,.mh-footer .wp-block-navigation-item__content{margin:0!important;padding:0!important;text-align:left}

/* ---------- Spacing system enforcement (QA round 2) ----------
   The global stylesheet contains
   .wp-block-group.alignfull.has-global-padding.is-layout-constrained.wp-block-group-is-layout-constrained{padding-top:0!important;padding-bottom:0!important}
   which zeroed every full-width section. These selectors are deliberately more specific. */
body .wp-block-group.alignfull.mh-section.has-global-padding.is-layout-constrained{padding-top:var(--mh-section)!important;padding-bottom:var(--mh-section)!important;padding-left:20px!important;padding-right:20px!important}
body .wp-block-group.alignfull.mh-section.has-global-padding.is-layout-constrained[style*="padding-top:0"]{padding-top:0!important}
body .wp-block-group.alignfull.mh-section.mh-section--ivory.has-global-padding.is-layout-constrained:first-child{padding-bottom:clamp(36px,5vw,56px)!important}

/* No stray gaps between stacked full-width bands */
body .wp-block-post-content > .alignfull,
body .wp-block-post-content > .mh-booking-bar,
body .wp-site-blocks > footer,
body .wp-site-blocks > .wp-block-template-part,
body main.wp-block-group{margin-block-start:0!important}
body .wp-block-post-content > .mh-booking-bar{margin-top:-44px!important}
body .wp-block-post-content > .mh-booking-bar + .alignfull{margin-top:0!important}

/* Cover bands (hero + CTA) */
body .wp-block-cover.mh-cta{padding:clamp(56px,8vw,104px) 20px!important}
body .mh-cta .mh-eyebrow{color:#ecd3a1!important}
body .mh-cta h2{margin:.25em auto .4em!important}
body .mh-cta p{margin:0 auto 1.4em!important}
body .mh-hero .wp-block-cover__inner-container > * + *{margin-top:.9rem}
body .mh-hero .mh-lead{color:#f2ede3!important}

/* Section heads: consistent rhythm eyebrow -> heading -> lead */
body .mh-section-head{margin-bottom:clamp(32px,4.5vw,56px)!important}
body .mh-section-head > *{margin-top:0!important;margin-bottom:0!important}
body .mh-section-head > * + *{margin-top:.75rem!important}
body .mh-section .wp-block-column > .mh-eyebrow + h2{margin-top:.5rem!important}
body .mh-section .wp-block-column > h2 + p{margin-top:1.1rem!important}
body .mh-section .wp-block-column > p + .wp-block-buttons{margin-top:1.75rem!important}

/* Footer bands (inline paddings were also zeroed by the global rule) */
body footer.wp-block-group.alignfull.mh-footer.has-global-padding.is-layout-constrained.wp-block-group-is-layout-constrained{padding:clamp(56px,7vw,88px) 20px clamp(40px,5vw,64px)!important;margin:0!important}
body .wp-block-group.alignfull.mh-footer-bottom.has-global-padding.is-layout-constrained.wp-block-group-is-layout-constrained{padding:18px 20px!important;margin:0!important}
body .mh-footer .wp-block-columns{margin-bottom:0}
body .mh-footer .wp-block-image{margin:0 0 18px}
body .mh-footer p{margin:0 0 .9rem}
body .wp-block-group.mh-footer-bottom{padding:18px 20px!important;margin:0!important;border-top:1px solid rgba(255,255,255,.08)}
body .mh-footer-bottom .wp-block-columns{margin:0 auto!important;max-width:var(--mh-container)}
body .mh-footer > .wp-block-columns{max-width:var(--mh-container);margin-left:auto!important;margin-right:auto!important}

/* Testimonials: every card sized to its own text at all widths */
body .mh-testimonials .slick-track{align-items:flex-start!important}
body .mh-testimonials .slick-slide,body .mh-testimonials .slick-slide > div,body .mh-testimonials .testimonial-card{height:auto!important}
body .mh-testimonials .testimonial-card{min-height:0!important}

/* Keep the date-search bar in place under the hero on site pages.
   RevCatalyst adds .fixToTop on scroll; this only cancels the positioning inside
   our .mh-booking-bar wrapper. Booking pages (Find Hotel / Checkout) are unaffected. */
body .mh-booking-bar .fixToTop,body .mh-booking-bar.fixToTop{position:relative!important;top:auto!important;left:auto!important;width:auto!important;z-index:5!important;box-shadow:none}

/* ---------- Responsive safety ---------- */
html,body{overflow-x:clip}
.wp-site-blocks img{max-width:100%}
@media (max-width:781px){
  .mh-split{gap:28px!important}
  .mh-split--reverse-mobile{flex-direction:column-reverse}
  .mh-booking-bar{margin-top:-28px!important}
}
@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
