/*
Theme Name: Gato Rei Sanctuary — Root Square Cat Academy V1604 (WPVibe Draft)
Theme URI: https://www.gatoreisanctuary.org/
Author: Gato Rei Sanctuary
Description: Custom WordPress theme for the Gato Rei Sanctuary redesigned homepage. Includes a clean header, Latest News bar, navigation, and Version 2 homepage design.
Version: 1.5.95.11
Requires at least: 6.0
Tested up to: 7.0
Requires PHP: 7.4
License: GPLv2 or later
Text Domain: grs-redesign-theme
*/

html, body {
  margin: 0;
  padding: 0;
  width: 100%;
  min-height: 100%;
  background: #ffffff;
  color: #080808;
  font-family: Arial, Helvetica, sans-serif;
  overflow-x: hidden;
}

/* GRS 1.5.60: on phones the blue list itself is the only menu scroller.
   The arrow can therefore always move through the hidden choices. Desktop
   navigation remains unchanged. */
@media (max-width:700px){
  #grs-home-left-menu .grs-relocated-home-menu,
  .grs-template-left-frame .grs-exact-original-menu{
    max-height:315px!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    padding:10px 18px 18px!important;
    scroll-behavior:smooth!important;
    scrollbar-width:auto!important;
  }
  #grs-home-left-menu .grs-relocated-home-menu > *,
  .grs-template-left-frame .grs-exact-original-menu > *{
    width:100%!important;
    max-width:100%!important;
    box-sizing:border-box!important;
  }
  #grs-home-left-menu .grs-relocated-home-menu a,
  #grs-home-left-menu .grs-relocated-home-menu button,
  .grs-template-left-frame .grs-exact-original-menu a,
  .grs-template-left-frame .grs-exact-original-menu button{
    font-size:18px!important;
    line-height:1.15!important;
    min-height:56px!important;
    padding:17px 14px!important;
  }
  .grs-menu-down-arrow{
    position:fixed!important;
    z-index:100001!important;
    left:50%!important;
    /* Keep the arrow in the open space beneath the menu, not over the
       first heading on linked pages. */
    bottom:92px!important;
    transform:translateX(-50%)!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    width:58px!important;
    height:58px!important;
    padding:0!important;
    border:3px solid #ffffff!important;
    border-radius:50%!important;
    background:#f6c94c!important;
    color:#073575!important;
    box-shadow:0 4px 15px rgba(0,0,0,.35)!important;
    font-size:37px!important;
    font-weight:900!important;
    line-height:1!important;
    cursor:pointer!important;
    -webkit-tap-highlight-color:transparent;
  }
  .grs-menu-down-arrow:focus-visible{outline:4px solid #fff!important;outline-offset:3px!important;}
}

/* This is deliberately loaded after the homepage's inline layout rules.
   The outer area stays in the page flow; only the actual list scrolls. */
@media (max-width:700px){
  #grs-home-left-menu{
    height:auto!important;
    max-height:none!important;
    overflow:visible!important;
  }
  #grs-home-left-menu .grs-relocated-home-menu{
    display:block!important;
    max-height:315px!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    scroll-behavior:smooth!important;
    -webkit-overflow-scrolling:touch!important;
    overscroll-behavior:contain!important;
    touch-action:pan-y!important;
  }
}

/* GRS 1.5.58 — linked pages use the same phone menu container as Home.
   This deliberately replaces the old internal-page-only frame.  Desktop
   rules are not affected. */
@media (max-width:700px){
  body:not(.home) #primary.grs-mobile-home-shell,
  body:not(.home) #primary.grs-mobile-home-shell .grs-page-inner,
  body:not(.home) #primary.grs-mobile-home-shell .grs-mobile-home-layout{
    display:block!important;
    width:100%!important;
    max-width:none!important;
    margin:0!important;
    padding:0!important;
    transform:none!important;
    box-sizing:border-box!important;
  }
  body:not(.home) #primary.grs-mobile-home-shell .grs-mobile-home-layout{
    padding:10px!important;
  }
  body:not(.home) #grs-home-left-menu.grs-linked-page-home-menu{
    display:block!important;
    position:relative!important;
    top:auto!important;
    width:100%!important;
    min-width:0!important;
    max-width:none!important;
    height:auto!important;
    max-height:none!important;
    margin:0 0 12px!important;
    padding:0!important;
    overflow:visible!important;
    background:transparent!important;
    border:0!important;
    border-radius:0!important;
    box-sizing:border-box!important;
  }
  body:not(.home) #grs-home-left-menu.grs-linked-page-home-menu > .grs-template-left-frame-inner{
    display:block!important;
    width:100%!important;
    height:auto!important;
    max-height:none!important;
    margin:0!important;
    padding:0!important;
    overflow:visible!important;
  }
  body:not(.home) #grs-home-left-menu.grs-linked-page-home-menu .grs-original-menu-host,
  body:not(.home) #grs-home-left-menu.grs-linked-page-home-menu .grs-exact-original-menu{
    display:block!important;
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    margin:0!important;
    box-sizing:border-box!important;
  }
  body:not(.home) #grs-home-left-menu.grs-linked-page-home-menu .grs-exact-original-menu{
    max-height:315px!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    padding:10px 18px 18px!important;
    scroll-behavior:smooth!important;
    -webkit-overflow-scrolling:touch!important;
    overscroll-behavior:contain!important;
  }
  body:not(.home) #grs-home-left-menu.grs-linked-page-home-menu .grs-exact-original-menu > *{
    width:100%!important;
    max-width:100%!important;
    box-sizing:border-box!important;
  }
  body:not(.home) #grs-home-left-menu.grs-linked-page-home-menu .grs-exact-original-menu a,
  body:not(.home) #grs-home-left-menu.grs-linked-page-home-menu .grs-exact-original-menu button{
    font-size:18px!important;
    line-height:1.15!important;
    min-height:56px!important;
    padding:17px 14px!important;
  }
  body:not(.home) #primary.grs-mobile-home-shell .grs-template-main-content{
    display:block!important;
    width:100%!important;
    min-width:0!important;
    max-width:none!important;
    margin:0!important;
    padding:0!important;
    overflow:visible!important;
    box-sizing:border-box!important;
  }
}

/* Current Gato Rei Sanctuary header.  Scoped so the rest of this theme is unchanged. */
#grs-current-header {
  position: sticky;
  top: 0;
  z-index: 100000;
}
#grs-current-header .top {
  background: #103c6a;
  color: #fff;
  padding: 9px 0;
  text-align: center;
  font-size: .94rem;
  letter-spacing: .02em;
}
#grs-current-header .grs-current-header-bar {
  background: #fff;
  border-bottom: 1px solid #dce7ed;
  box-shadow: 0 4px 18px rgba(16,60,106,.09);
}
#grs-current-header .wrap {
  width: min(1120px, calc(100% - 40px));
  margin: auto;
}
#grs-current-header .nav {
  min-height: 92px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
}
#grs-current-header .brand {
  display: flex;
  align-items: center;
  gap: 14px;
  text-decoration: none;
}
#grs-current-header .brand img {
  display: block;
  width: 218px;
  max-width: 100%;
  height: auto;
}
#grs-current-header .brand::after {
  border-left: 2px solid #f6c94c;
  color: #103c6a;
  content: 'A NON-PROFIT\A ORGANIZATION';
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .12em;
  line-height: 1.25;
  padding-left: 14px;
  text-transform: uppercase;
  white-space: pre;
}
#grs-current-header .socials {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
#grs-current-header .socials a {
  background: #fff;
  border: 1px solid #c7dce9;
  border-radius: 99px;
  color: inherit;
  font-size: .82rem;
  font-weight: 700;
  padding: 7px 10px;
  text-decoration: none;
  transition: .2s ease;
}
#grs-current-header .socials a:hover {
  background: #103c6a;
  border-color: #103c6a;
  color: #fff;
}
/* The original fixed header required this offset; the current header stays in normal flow. */
body .grs-page-shell { padding-top: 0 !important; }

/* GRS 1.5.47: internal pages must open flush below the current header on a
   phone.  Earlier fixed-header rules remain in the stylesheet for desktop,
   but must never reserve a large empty band after a menu link is opened. */
@media (max-width: 900px) {
  html,
  body {
    scroll-padding-top: 0 !important;
  }
  body:not(.home) .grs-page-shell,
  body:not(.home) .grs-page-shell-with-left-frame,
  body:not(.home) .grs-page-shell-with-left-frame .grs-page-inner,
  body:not(.home) .grs-template-body-frame,
  body:not(.home) .grs-universal-left-layout {
    margin-top: 0 !important;
    padding-top: 0 !important;
  }
  body:not(.home) .grs-template-main-content {
    margin-top: 0 !important;
  }
}

/* GRS 1.5.52 — mobile menu must always open in its original first position.
   Limit the visible menu to roughly four full-size buttons and make this inner
   panel the only scrollable layer on phones. */
@media (max-width: 900px) {
  body:not(.home) .grs-universal-left-layout > .grs-template-left-frame,
  body:not(.home) .grs-universal-left-layout > .grs-template-left-frame-inner,
  body:not(.home) .grs-original-menu-host,
  body:not(.home) .grs-exact-original-menu {
    scroll-behavior: auto !important;
  }
  body:not(.home) .grs-universal-left-layout > .grs-template-left-frame > .grs-template-left-frame-inner {
    height: min(52vh, 360px) !important;
    max-height: min(52vh, 360px) !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    overscroll-behavior: contain !important;
    -webkit-overflow-scrolling: touch !important;
  }
  body:not(.home) .grs-exact-original-menu {
    margin-top: 0 !important;
    transform: none !important;
  }
}
@media (max-width: 800px) {
  #grs-current-header .nav { padding: 13px 0; align-items: flex-start; flex-direction: column; }
  #grs-current-header .brand img { width: 190px; }
  #grs-current-header .brand::after { font-size: .62rem; letter-spacing: .08em; }
}

/* Keep legacy fixed-header spacing from creating a blank band below the current header. */
body .grs-page-shell { padding-top: 0 !important; }

body.admin-bar .grs-site-header {
  top: 32px;
}
body.admin-bar .grs-page-shell {
  padding-top: 166px;
}

/* Fixed top shell: logo + one Latest News bar + menu stay locked in place */
.grs-site-header {
  width: 100%;
  background: #ffffff;
  border-bottom: 1px solid #d8d8d8;
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 99999;
  box-shadow: none;
}

.grs-logo-row {
  height: 54px;
  min-height: 54px;
  max-height: 54px;
  display: flex;
  align-items: center;
  padding: 4px 28px;
  background: #ffffff;
  overflow: hidden;
}

.grs-logo-link,
.custom-logo-link {
  display: inline-flex;
  align-items: center;
  text-decoration: none;
  max-height: 46px;
}

.grs-logo-img,
.custom-logo {
  width: auto !important;
  height: 44px !important;
  max-height: 44px !important;
  max-width: 165px !important;
  object-fit: contain;
  display: block;
}

.grs-logo-text {
  color: #061a3d;
  font-weight: 900;
  font-size: 22px;
  line-height: 1;
}

.grs-news-bar {
  background: #000000;
  color: #ffe84a;
  height: 33px;
  min-height: 33px;
  max-height: 33px;
  font-size: 21px;
  line-height: 33px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .02em;
  padding: 0;
  white-space: nowrap;
  overflow: hidden;
}

.grs-news-track {
  display: inline-block;
  padding-left: 2vw;
}

.grs-main-nav-wrap {
  background: #ffffff;
  min-height: 47px;
  padding: 7px 9px;
  border-bottom: 1px solid #d7d7d7;
  overflow: visible;
}

.grs-main-nav,
.grs-main-nav ul {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
  list-style: none;
  margin: 0;
  padding: 0;
}

.grs-main-nav a,
.grs-main-nav .menu-item a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 32px;
  padding: 7px 12px;
  background: #ffffff;
  color: #003b88;
  border: 1px solid #d8d8d8;
  border-radius: 10px;
  box-shadow: 0 1px 4px rgba(0,0,0,.22);
  text-decoration: none;
  font-weight: 900;
  font-size: 14px;
}

.grs-main-nav a:hover {
  color: #ffffff;
  background: #064fbd;
  border-color: #064fbd;
}

/* Hide duplicate Latest News plugin/reel if it loads on top of this theme. */
body .grs-reel,
body .ff-reel,
body .latest-news-bar:not(.grs-news-bar) {
  display: none !important;
}


/* Centered four-gallery shortcode directly below the fixed menu bar */
.grs-four-gallery-home {
  width: 100%;
  text-align: center;
  background: #ffffff;
  padding: 14px 0 18px 0;
  margin: 0;
  border-bottom: 1px solid #cfe0ff;
}

.grs-four-gallery-container {
  width: 100%;
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 14px;
  box-sizing: border-box;
}

.grs-four-gallery-container > * {
  margin-left: auto !important;
  margin-right: auto !important;
}

.grs-page-shell {
  width: 100%;
  min-height: 70vh;
  background: #ffffff;
  padding-top: 134px;
}

.grs-page-inner {
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0;
}

.grs-site-footer {
  display: none;
}

/* Theme safety: never show WordPress demo title/menu labels from block themes. */
.wp-block-site-title,
.wp-block-navigation,
.wp-block-post-title,
.entry-title,
.page-title {
  display: none !important;
}

@media (max-width: 782px) {
  body.admin-bar .grs-site-header { top: 46px; }
  body.admin-bar .grs-page-shell { padding-top: 169px; }
  .grs-logo-row { padding: 4px 14px; height: 48px; min-height: 48px; max-height: 48px; }
  .grs-logo-img, .custom-logo { height: 39px !important; max-height: 39px !important; max-width: 145px !important; }
  .grs-news-bar { font-size: 18px; height: 30px; min-height: 30px; max-height: 30px; line-height: 30px; padding: 0; }
  .grs-main-nav-wrap { min-height: 45px; padding: 7px 8px; }
  .grs-main-nav a, .grs-main-nav .menu-item a { font-size: 13px; min-height: 31px; padding: 6px 10px; }
  
/* Centered four-gallery shortcode directly below the fixed menu bar */
.grs-four-gallery-home {
  width: 100%;
  text-align: center;
  background: #ffffff;
  padding: 14px 0 18px 0;
  margin: 0;
  border-bottom: 1px solid #cfe0ff;
}

.grs-four-gallery-container {
  width: 100%;
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 14px;
  box-sizing: border-box;
}

.grs-four-gallery-container > * {
  margin-left: auto !important;
  margin-right: auto !important;
}

.grs-page-shell { padding-top: 123px; }
}


/* Requested update: property section is now first immediately below fixed menu. */
.grs-redesign-v2 { margin-top: 0 !important; }
.grs-top-property-section { padding-top: 24px !important; }
.grs-top-property-section > .has-large-font-size:first-child { margin-top: 0 !important; }


/* Topic directory added for requested individual topic pages */
.grs-topic-directory {
  max-width: 1280px;
  margin: 34px auto;
  padding: 34px 24px 42px;
  background: #f6fbff;
  border: 2px solid #cfe0ff;
  border-radius: 26px;
}
.grs-topic-directory-head { text-align: center; max-width: 900px; margin: 0 auto 26px; }
.grs-topic-directory-head h2 { margin: 0 0 10px; color: #061a3d; font-size: clamp(30px, 4vw, 52px); text-transform: uppercase; font-weight: 900; }
.grs-topic-directory-head p { margin: 0; font-size: 20px; line-height: 1.5; color: #080808; }
.grs-topic-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.grs-topic-card { display: block; overflow: hidden; background: #fff; border: 2px solid #cfe0ff; border-radius: 18px; text-decoration: none !important; color: #061a3d !important; }
.grs-topic-card img { width: 100%; height: 180px; object-fit: cover; display: block; }
.grs-topic-card span { display: block; padding: 14px; font-size: 18px; line-height: 1.15; font-weight: 900; text-transform: uppercase; }
.grs-topic-card:hover { border-color: #064fbd; transform: translateY(-2px); }

.grs-topic-page { max-width: 1240px; margin: 0 auto 44px; background: #fff; color: #080808; font-family: Arial, Helvetica, sans-serif; }
.grs-topic-hero { display: grid; grid-template-columns: 1fr 1fr; gap: 0; background: linear-gradient(110deg,#061a3d,#064fbd); color: #fff; border-radius: 0 0 26px 26px; overflow: hidden; }
.grs-topic-hero-text { padding: 54px 40px; display: flex; flex-direction: column; justify-content: center; }
.grs-topic-kicker { display: inline-block; width: max-content; max-width: 100%; background: #f4c542; color: #061a3d !important; font-weight: 900; text-transform: uppercase; padding: 9px 14px; border-radius: 999px; margin: 0 0 16px; }
.grs-topic-hero h1 { margin: 0 0 18px; color: #fff; font-size: clamp(34px, 5vw, 64px); line-height: .98; font-weight: 900; text-transform: uppercase; }
.grs-topic-hero p { font-size: 21px; line-height: 1.5; margin: 0 0 20px; color: #fff; }
.grs-topic-hero-image { margin: 0; min-height: 420px; }
.grs-topic-hero-image img { width: 100%; height: 100%; object-fit: cover; display: block; }
.grs-topic-button { display: inline-flex; width: max-content; align-items: center; justify-content: center; padding: 13px 20px; border-radius: 999px; background: #d71920; color: #fff !important; text-decoration: none !important; font-weight: 900; text-transform: uppercase; }
.grs-topic-body { padding: 42px 26px 54px; max-width: 1000px; margin: 0 auto; }
.grs-topic-body h2 { color: #061a3d; font-size: clamp(28px, 3vw, 42px); text-transform: uppercase; margin: 28px 0 16px; font-weight: 900; }
.grs-topic-body p { font-size: 21px; line-height: 1.65; margin: 0 0 18px; }
.grs-topic-body ul { list-style: none; margin: 10px 0 30px; padding: 0; }
.grs-topic-body li { position: relative; background: #f6fbff; border: 2px solid #cfe0ff; border-left: 8px solid #ff6a00; border-radius: 14px; padding: 15px 16px 15px 48px; margin: 12px 0; font-size: 20px; line-height: 1.45; }
.grs-topic-body li:before { content: "🐾"; position: absolute; left: 13px; top: 14px; }
.grs-topic-cta { margin-top: 38px; padding: 34px 24px; border-radius: 24px; background: linear-gradient(120deg,#d71920,#ff6a00); color: #fff; text-align: center; }
.grs-topic-cta h2 { color: #fff; margin-top: 0; }
.grs-topic-cta p { color: #fff; max-width: 800px; margin-left: auto; margin-right: auto; }

@media (max-width: 900px) {
  .grs-topic-grid { grid-template-columns: 1fr 1fr; }
  .grs-topic-hero { grid-template-columns: 1fr; }
  .grs-topic-hero-image { min-height: 300px; }
}
@media (max-width: 620px) {
  .grs-topic-grid { grid-template-columns: 1fr; }
  .grs-topic-directory { border-radius: 0; border-left: 0; border-right: 0; padding-left: 12px; padding-right: 12px; }
  .grs-topic-hero-text { padding: 34px 18px; }
  .grs-topic-body { padding: 30px 16px 44px; }
}


/* Brand-new moving cat photo gallery directly below the fixed menu */
.grs-moving-gallery-home {
  width: 100%;
  text-align: center;
  background: #ffffff;
  padding: 0 !important;
  margin: 0 !important;
  border-bottom: 2px solid #cfe0ff;
  overflow-x: hidden;
  overflow-y: visible;
  position: relative;
  z-index: 1000000;
}

.grs-moving-gallery-container {
  width: 100%;
  max-width: 100%;
  margin: 0 auto !important;
  padding: 0 !important;
  box-sizing: border-box;
  overflow-x: hidden;
  overflow-y: visible;
  position: relative;
  z-index: 1000000;
}

.grs-moving-cat-gallery {
  width: 100%;
  overflow: visible;
  position: relative;
  padding: 0 !important;
  margin: 0 !important;
  background: #ffffff;
  z-index: 1000000;
}

.grs-moving-cat-gallery:before,
.grs-moving-cat-gallery:after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  width: 120px;
  z-index: 3;
  pointer-events: none;
}

.grs-moving-cat-gallery:before { left: 0; background: linear-gradient(90deg,#fff,rgba(255,255,255,0)); }
.grs-moving-cat-gallery:after { right: 0; background: linear-gradient(270deg,#fff,rgba(255,255,255,0)); }

.grs-moving-cat-track {
  display: flex;
  align-items: center;
  gap: 24px;
  width: max-content;
  animation: grs-cat-gallery-scroll 110s linear infinite;
  will-change: transform;
}

.grs-moving-cat-gallery:hover .grs-moving-cat-track {
  animation-play-state: paused;
}

@keyframes grs-cat-gallery-scroll {
  0% { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}

.grs-moving-cat-item {
  width: 200px;
  height: 200px;
  min-width: 200px;
  position: relative;
  display: block;
  border-radius: 22px;
  overflow: hidden;
  text-decoration: none !important;
  background: #061a3d;
  border: 3px solid #ffffff;
  box-shadow: 0 4px 18px rgba(0,0,0,.18);
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
  transform-origin: center center;
  z-index: 10;
}

.grs-moving-cat-item:hover,
.grs-moving-cat-item:focus {
  transform: scale(1.75);
  box-shadow: 0 0 0 5px rgba(0,105,255,.42), 0 0 36px 17px rgba(0,105,255,.95), 0 20px 46px rgba(0,0,0,.35);
  border-color: #00a2ff;
  z-index: 1000002;
  outline: none;
}

.grs-moving-cat-item img {
  width: 200px;
  height: 200px;
  object-fit: cover;
  display: block;
  transition: filter .25s ease;
}

.grs-moving-cat-item:hover img,
.grs-moving-cat-item:focus img {
  filter: saturate(1.12) contrast(1.08);
}

.grs-moving-cat-name {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  padding: 36px 10px 12px;
  color: #ffffff;
  font-size: 20px;
  line-height: 1.05;
  font-weight: 900;
  text-align: center;
  text-transform: uppercase;
  letter-spacing: .03em;
  background: linear-gradient(180deg,rgba(0,0,0,0),rgba(0,0,0,.82));
  text-shadow: 0 2px 8px rgba(0,0,0,.75);
}

.grs-moving-cat-empty {
  max-width: 980px;
  margin: 0 auto;
  padding: 22px;
  border: 2px dashed #064fbd;
  border-radius: 18px;
  color: #061a3d;
  font-weight: 900;
  background: #f6fbff;
}

@media(max-width: 850px) {
  .grs-moving-cat-gallery { padding: 0 !important; }
  .grs-moving-cat-track { gap: 14px; animation-duration: 90s; }
  .grs-moving-cat-item,
  .grs-moving-cat-item img { width: 200px; height: 200px; min-width: 200px; }
  .grs-moving-cat-item:hover,
  .grs-moving-cat-item:focus { transform: scale(1.75); }
  .grs-moving-cat-name { font-size: 18px; padding-bottom: 10px; }
}

/* Admin page for moving gallery */
.grs-gallery-admin-wrap { max-width: 1200px; }
.grs-gallery-admin-help { background:#fff; border-left:5px solid #064fbd; padding:14px 18px; margin:18px 0; font-size:15px; }
.grs-gallery-admin-actions { display:flex; gap:10px; flex-wrap:wrap; margin:18px 0; }
.grs-gallery-admin-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(230px,1fr)); gap:16px; margin-top:18px; }
.grs-gallery-admin-card { background:#fff; border:1px solid #ccd0d4; border-radius:10px; padding:12px; position:relative; }
.grs-gallery-admin-card img { width:100%; height:170px; object-fit:cover; border-radius:8px; background:#f0f0f1; }
.grs-gallery-admin-card label { display:block; font-weight:700; margin:10px 0 5px; }
.grs-gallery-admin-card input[type="text"] { width:100%; }
.grs-gallery-admin-remove { margin-top:10px !important; color:#b32d2e !important; }

.grs-header-promo{display:flex;align-items:stretch;gap:20px;padding:8px 15px;background:#fff}
.grs-logo-link-home{flex:0 0 400px;display:flex;align-items:center;justify-content:center}
.grs-logo-link-home img,.grs-logo-link-home .custom-logo{width:100%!important;height:auto!important;max-width:400px!important;max-height:none!important}
.grs-banner-link-home{flex:1;display:block}
.grs-banner-link-home img{width:100%;display:block;border-radius:6px}
@media(max-width:768px){.grs-header-promo{flex-direction:column}.grs-logo-link-home{flex:unset;max-width:400px;margin:auto}}

/* GRS corrected separated logo + virtual cards banner header */
body .grs-site-header{
  position:fixed!important;
  top:0!important;
  left:0!important;
  right:0!important;
  width:100%!important;
  background:#fff!important;
  z-index:99999!important;
}
body.admin-bar .grs-site-header{top:32px!important;}
body .grs-header-promo{
  height:146px!important;
  min-height:146px!important;
  max-height:146px!important;
  display:flex!important;
  align-items:center!important;
  gap:26px!important;
  padding:0 24px!important;
  box-sizing:border-box!important;
  overflow:hidden!important;
  background:#fff!important;
}
body .grs-logo-link-home{
  flex:0 0 360px!important;
  height:146px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  overflow:hidden!important;
  text-decoration:none!important;
}
body .grs-logo-link-home img.grs-header-logo-img{
  width:100%!important;
  height:146px!important;
  max-width:none!important;
  max-height:146px!important;
  object-fit:contain!important;
  display:block!important;
}
body .grs-banner-link-home{
  flex:1 1 auto!important;
  height:146px!important;
  display:flex!important;
  align-items:center!important;
  overflow:hidden!important;
  text-decoration:none!important;
}
body .grs-banner-link-home img.grs-header-banner-img{
  width:100%!important;
  height:146px!important;
  max-width:none!important;
  max-height:146px!important;
  object-fit:fill!important;
  border-radius:6px!important;
  display:block!important;
}
body .grs-page-shell{padding-top:226px!important;}
body.admin-bar .grs-page-shell{padding-top:226px!important;}
@media(max-width:782px){
  body.admin-bar .grs-site-header{top:46px!important;}
  body .grs-header-promo{height:auto!important;max-height:none!important;flex-direction:column!important;gap:8px!important;padding:8px 10px!important;}
  body .grs-logo-link-home{height:92px!important;flex:0 0 auto!important;width:100%!important;max-width:320px!important;}
  body .grs-logo-link-home img.grs-header-logo-img{height:92px!important;max-height:92px!important;}
  body .grs-banner-link-home{height:auto!important;width:100%!important;}
  body .grs-banner-link-home img.grs-header-banner-img{height:auto!important;}
  body .grs-page-shell, body.admin-bar .grs-page-shell{padding-top:245px!important;}
}

/* GRS final professional header proportions: do not stretch banner */
body .grs-header-promo{
  height:146px!important;
  min-height:146px!important;
  max-height:146px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:flex-start!important;
  gap:28px!important;
  padding:0 56px!important;
  overflow:hidden!important;
  box-sizing:border-box!important;
}
body .grs-logo-link-home{
  flex:0 0 280px!important;
  width:280px!important;
  height:146px!important;
}
body .grs-logo-link-home img.grs-header-logo-img{
  width:280px!important;
  height:146px!important;
  object-fit:contain!important;
}
body .grs-banner-link-home{
  flex:0 0 850px!important;
  width:850px!important;
  max-width:calc(100vw - 420px)!important;
  height:146px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:flex-start!important;
}
body .grs-banner-link-home img.grs-header-banner-img{
  width:850px!important;
  max-width:100%!important;
  height:146px!important;
  object-fit:contain!important;
  object-position:left center!important;
  border-radius:6px!important;
}
@media(max-width:1200px){
  body .grs-header-promo{padding:0 18px!important;gap:18px!important;}
  body .grs-logo-link-home{flex-basis:240px!important;width:240px!important;}
  body .grs-logo-link-home img.grs-header-logo-img{width:240px!important;}
  body .grs-banner-link-home{max-width:calc(100vw - 300px)!important;}
}
@media(max-width:782px){
  body .grs-header-promo{height:auto!important;max-height:none!important;flex-direction:column!important;align-items:center!important;padding:8px 10px!important;gap:8px!important;}
  body .grs-logo-link-home{width:280px!important;max-width:95vw!important;height:92px!important;}
  body .grs-logo-link-home img.grs-header-logo-img{width:280px!important;max-width:95vw!important;height:92px!important;object-fit:contain!important;}
  body .grs-banner-link-home{width:850px!important;max-width:95vw!important;height:auto!important;}
  body .grs-banner-link-home img.grs-header-banner-img{width:850px!important;max-width:95vw!important;height:auto!important;object-fit:contain!important;}
}

/* GRS far-right banner layout: logo left, banner right, no stretching */
body .grs-header-promo{
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:40px!important;
  padding:0 34px!important;
  height:146px!important;
  min-height:146px!important;
  max-height:146px!important;
  box-sizing:border-box!important;
  overflow:hidden!important;
}
body .grs-logo-link-home{
  flex:0 0 280px!important;
  width:280px!important;
  height:146px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:flex-start!important;
}
body .grs-logo-link-home img.grs-header-logo-img{
  width:280px!important;
  height:146px!important;
  object-fit:contain!important;
  object-position:left center!important;
}
body .grs-banner-link-home{
  flex:0 1 850px!important;
  width:850px!important;
  max-width:calc(100vw - 390px)!important;
  margin-left:auto!important;
  height:146px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:flex-end!important;
}
body .grs-banner-link-home img.grs-header-banner-img{
  width:850px!important;
  max-width:100%!important;
  height:146px!important;
  object-fit:contain!important;
  object-position:right center!important;
  border-radius:6px!important;
  display:block!important;
}
@media(max-width:1200px){
  body .grs-header-promo{padding:0 18px!important;gap:24px!important;}
  body .grs-logo-link-home{flex-basis:240px!important;width:240px!important;}
  body .grs-logo-link-home img.grs-header-logo-img{width:240px!important;}
  body .grs-banner-link-home{max-width:calc(100vw - 285px)!important;}
}
@media(max-width:782px){
  body .grs-header-promo{height:auto!important;min-height:0!important;max-height:none!important;flex-direction:column!important;align-items:center!important;padding:8px 10px!important;gap:8px!important;}
  body .grs-logo-link-home{width:280px!important;max-width:95vw!important;height:92px!important;justify-content:center!important;}
  body .grs-logo-link-home img.grs-header-logo-img{width:280px!important;max-width:95vw!important;height:92px!important;object-fit:contain!important;object-position:center center!important;}
  body .grs-banner-link-home{width:850px!important;max-width:95vw!important;height:auto!important;margin-left:0!important;justify-content:center!important;}
  body .grs-banner-link-home img.grs-header-banner-img{width:850px!important;max-width:95vw!important;height:auto!important;object-fit:contain!important;object-position:center center!important;}
}

/* GRS submenu visibility fix: dropdowns must open in front of the cat gallery */
body .grs-site-header,
body .grs-main-nav-wrap,
body .grs-main-nav,
body .grs-main-nav-list {
  overflow: visible !important;
}

body .grs-site-header {
  z-index: 2147483000 !important;
}

body .grs-main-nav-wrap {
  position: relative !important;
  z-index: 2147483100 !important;
}

body .grs-main-nav,
body .grs-main-nav-list {
  position: relative !important;
  z-index: 2147483200 !important;
}

body .grs-main-nav-list > li,
body .grs-main-nav li.menu-item-has-children {
  position: relative !important;
}

body .grs-main-nav-list li .sub-menu,
body .grs-main-nav li .sub-menu,
body .grs-main-nav-list li ul.children,
body .grs-main-nav li ul.children {
  display: none !important;
  position: absolute !important;
  top: calc(100% + 6px) !important;
  left: 0 !important;
  min-width: 210px !important;
  width: max-content !important;
  max-width: 320px !important;
  flex-direction: column !important;
  align-items: stretch !important;
  gap: 6px !important;
  padding: 8px !important;
  margin: 0 !important;
  list-style: none !important;
  background: #ffffff !important;
  border: 1px solid #d8d8d8 !important;
  border-radius: 12px !important;
  box-shadow: 0 12px 30px rgba(0,0,0,.28) !important;
  z-index: 2147483647 !important;
}

body .grs-main-nav-list li:hover > .sub-menu,
body .grs-main-nav li:hover > .sub-menu,
body .grs-main-nav-list li:focus-within > .sub-menu,
body .grs-main-nav li:focus-within > .sub-menu,
body .grs-main-nav-list li:hover > ul.children,
body .grs-main-nav li:hover > ul.children,
body .grs-main-nav-list li:focus-within > ul.children,
body .grs-main-nav li:focus-within > ul.children {
  display: flex !important;
}

body .grs-main-nav-list li .sub-menu li,
body .grs-main-nav li .sub-menu li,
body .grs-main-nav-list li ul.children li,
body .grs-main-nav li ul.children li {
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
}

body .grs-main-nav-list li .sub-menu a,
body .grs-main-nav li .sub-menu a,
body .grs-main-nav-list li ul.children a,
body .grs-main-nav li ul.children a {
  width: 100% !important;
  min-height: 34px !important;
  justify-content: flex-start !important;
  white-space: nowrap !important;
  box-sizing: border-box !important;
}

body .grs-moving-gallery-home,
body .grs-moving-gallery-container,
body .grs-moving-cat-gallery,
body .grs-moving-cat-item:hover,
body .grs-moving-cat-item:focus {
  z-index: 10 !important;
}


/* GRS HARD FIX 2026-06-24: submenu must overlay the moving cat gallery */
html body .grs-site-header{
  position:fixed!important;
  overflow:visible!important;
  z-index:2147483640!important;
  isolation:isolate!important;
}
html body .grs-news-bar,
html body .grs-main-nav-wrap,
html body .grs-main-nav,
html body .grs-main-nav-list{
  overflow:visible!important;
  position:relative!important;
  z-index:2147483641!important;
  isolation:isolate!important;
}
html body .grs-main-nav-list > li,
html body .grs-main-nav li{
  position:relative!important;
  overflow:visible!important;
  z-index:2147483642!important;
}
html body .grs-main-nav-list > li:hover,
html body .grs-main-nav li:hover,
html body .grs-main-nav-list > li:focus-within,
html body .grs-main-nav li:focus-within{
  z-index:2147483643!important;
}
html body .grs-main-nav-list li > ul.sub-menu,
html body .grs-main-nav-list li > ul.children,
html body .grs-main-nav li > ul.sub-menu,
html body .grs-main-nav li > ul.children{
  display:none!important;
  position:absolute!important;
  top:100%!important;
  left:0!important;
  min-width:220px!important;
  width:max-content!important;
  max-width:340px!important;
  margin:6px 0 0 0!important;
  padding:8px!important;
  background:#ffffff!important;
  border:2px solid #003b88!important;
  border-radius:12px!important;
  box-shadow:0 18px 44px rgba(0,0,0,.35)!important;
  list-style:none!important;
  flex-direction:column!important;
  flex-wrap:nowrap!important;
  gap:6px!important;
  overflow:visible!important;
  z-index:2147483647!important;
  opacity:1!important;
  visibility:visible!important;
  pointer-events:auto!important;
}
html body .grs-main-nav-list li:hover > ul.sub-menu,
html body .grs-main-nav-list li:hover > ul.children,
html body .grs-main-nav-list li:focus-within > ul.sub-menu,
html body .grs-main-nav-list li:focus-within > ul.children,
html body .grs-main-nav li:hover > ul.sub-menu,
html body .grs-main-nav li:hover > ul.children,
html body .grs-main-nav li:focus-within > ul.sub-menu,
html body .grs-main-nav li:focus-within > ul.children{
  display:flex!important;
}
html body .grs-main-nav-list li > ul.sub-menu li,
html body .grs-main-nav-list li > ul.children li{
  display:block!important;
  width:100%!important;
  min-width:100%!important;
  margin:0!important;
}
html body .grs-main-nav-list li > ul.sub-menu a,
html body .grs-main-nav-list li > ul.children a{
  display:flex!important;
  width:100%!important;
  box-sizing:border-box!important;
  justify-content:flex-start!important;
  white-space:nowrap!important;
  background:#fff!important;
}
html body .grs-page-shell,
html body .grs-page-inner,
html body .grs-moving-gallery-home,
html body .grs-moving-gallery-container,
html body .grs-moving-cat-gallery,
html body .grs-moving-cat-track,
html body .grs-moving-cat-item,
html body .grs-moving-cat-item:hover,
html body .grs-moving-cat-item:focus{
  z-index:1!important;
}

/* WooCommerce shop product cards - corrected product-page links */
.grs-woocommerce-shell ul.products,
.woocommerce ul.products {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
  gap: 34px;
  align-items: stretch;
}

.grs-woocommerce-shell ul.products li.product,
.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product,
li.product.grs-shop-product-card {
  width: auto !important;
  float: none !important;
  margin: 0 !important;
  text-align: center;
  padding: 18px;
  border-radius: 22px;
  background: rgba(255,255,255,0.94);
  box-shadow: 0 10px 28px rgba(0,0,0,0.12);
  transition: transform .25s ease, box-shadow .25s ease;
}

.grs-woocommerce-shell ul.products li.product:hover,
.woocommerce ul.products li.product:hover,
.woocommerce-page ul.products li.product:hover,
li.product.grs-shop-product-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 0 22px rgba(43,149,255,0.55), 0 16px 34px rgba(0,0,0,0.18);
}

.grs-shop-product-image-wrap,
.woocommerce ul.products li.product a img {
  width: 250px !important;
  height: 250px !important;
  max-width: 100% !important;
  object-fit: cover;
  margin: 0 auto 18px !important;
  border-radius: 18px;
  display: block;
}

.grs-shop-product-title,
.woocommerce ul.products li.product .woocommerce-loop-product__title {
  font-size: 1.12rem !important;
  font-weight: 800;
  line-height: 1.25;
  margin: 12px 0 8px;
}

.grs-shop-product-title a,
.woocommerce ul.products li.product .woocommerce-loop-product__title a {
  color: inherit;
  text-decoration: none;
}

.grs-shop-product-price,
.woocommerce ul.products li.product .price {
  display: block;
  font-weight: 800;
  margin: 8px 0 16px;
}

.grs-shop-view-more,
.woocommerce ul.products li.product .button {
  display: inline-block !important;
  padding: 12px 24px !important;
  border-radius: 999px !important;
  color: #fff !important;
  background: linear-gradient(135deg, #1479ff, #05d5ff) !important;
  text-decoration: none !important;
  font-weight: 800 !important;
  box-shadow: 0 0 16px rgba(20,121,255,0.55);
  transition: transform .2s ease, box-shadow .2s ease;
}

.grs-shop-view-more:hover,
.woocommerce ul.products li.product .button:hover {
  transform: translateY(-2px);
  box-shadow: 0 0 24px rgba(20,121,255,0.85), 0 0 42px rgba(5,213,255,0.35);
}


/* WooCommerce requested image sizing and product-page image effects */
.woocommerce ul.products li.product .grs-shop-product-image-wrap,
.woocommerce-page ul.products li.product .grs-shop-product-image-wrap {
  width: 250px !important;
  height: 250px !important;
  max-width: 100% !important;
  overflow: hidden;
  margin: 0 auto 18px !important;
  border-radius: 18px;
  box-shadow: 0 8px 22px rgba(0,0,0,0.16);
}

.woocommerce ul.products li.product .grs-shop-product-image-wrap img,
.woocommerce-page ul.products li.product .grs-shop-product-image-wrap img {
  width: 250px !important;
  height: 250px !important;
  max-width: 100% !important;
  object-fit: cover !important;
  margin: 0 !important;
  transition: transform .25s ease, filter .25s ease;
}

.woocommerce ul.products li.product:hover .grs-shop-product-image-wrap img,
.woocommerce-page ul.products li.product:hover .grs-shop-product-image-wrap img {
  transform: scale(1.045);
  filter: brightness(1.04) contrast(1.04);
}

.single-product div.product div.images,
.woocommerce div.product div.images,
.woocommerce-page div.product div.images {
  overflow: visible !important;
}

.single-product div.product div.images .woocommerce-product-gallery__wrapper,
.woocommerce div.product div.images .woocommerce-product-gallery__wrapper {
  border-radius: 24px;
}

.single-product div.product div.images img,
.woocommerce div.product div.images img,
.woocommerce-page div.product div.images img {
  border-radius: 22px !important;
  box-shadow: 0 12px 30px rgba(0,0,0,0.16), 0 0 18px rgba(20,121,255,0.24) !important;
  transition: transform .25s ease, box-shadow .25s ease, filter .25s ease !important;
}

.single-product div.product div.images a:hover img,
.woocommerce div.product div.images a:hover img,
.woocommerce-page div.product div.images a:hover img {
  transform: translateY(-3px) scale(1.015);
  box-shadow: 0 0 24px rgba(43,149,255,0.55), 0 16px 34px rgba(0,0,0,0.20) !important;
  filter: brightness(1.04) contrast(1.04);
}

.single-product div.product div.images .flex-control-thumbs li img,
.woocommerce div.product div.images .flex-control-thumbs li img,
.woocommerce-page div.product div.images .flex-control-thumbs li img {
  border-radius: 14px !important;
  box-shadow: 0 5px 14px rgba(0,0,0,0.14) !important;
  opacity: .82;
}

.single-product div.product div.images .flex-control-thumbs li img:hover,
.single-product div.product div.images .flex-control-thumbs li img.flex-active,
.woocommerce div.product div.images .flex-control-thumbs li img:hover,
.woocommerce div.product div.images .flex-control-thumbs li img.flex-active {
  opacity: 1;
  box-shadow: 0 0 16px rgba(43,149,255,0.55), 0 6px 16px rgba(0,0,0,0.18) !important;
}

/* Single product page: make the main product photo match the 250x250 shop image size while keeping WooCommerce zoom/lightbox */
.single-product .grs-woocommerce-inner div.product,
.woocommerce.single-product .grs-woocommerce-inner div.product,
.woocommerce-page.single-product .grs-woocommerce-inner div.product {
  display: flex;
  flex-wrap: wrap;
  gap: 34px;
  align-items: flex-start;
}

.single-product div.product div.images,
.woocommerce div.product div.images,
.woocommerce-page div.product div.images {
  width: 250px !important;
  max-width: 250px !important;
  float: none !important;
  flex: 0 0 250px !important;
  margin-right: 0 !important;
}

.single-product div.product div.images .woocommerce-product-gallery__wrapper,
.woocommerce div.product div.images .woocommerce-product-gallery__wrapper,
.woocommerce-page div.product div.images .woocommerce-product-gallery__wrapper,
.single-product div.product div.images .woocommerce-product-gallery__image,
.woocommerce div.product div.images .woocommerce-product-gallery__image,
.woocommerce-page div.product div.images .woocommerce-product-gallery__image {
  width: 250px !important;
  max-width: 250px !important;
}

.single-product div.product div.images .woocommerce-product-gallery__image > a,
.woocommerce div.product div.images .woocommerce-product-gallery__image > a,
.woocommerce-page div.product div.images .woocommerce-product-gallery__image > a {
  display: block !important;
  width: 250px !important;
  height: 250px !important;
}

.single-product div.product div.images .woocommerce-product-gallery__image img,
.woocommerce div.product div.images .woocommerce-product-gallery__image img,
.woocommerce-page div.product div.images .woocommerce-product-gallery__image img {
  width: 250px !important;
  height: 250px !important;
  max-width: 250px !important;
  object-fit: cover !important;
  display: block !important;
}

.single-product div.product div.images .woocommerce-product-gallery__trigger,
.woocommerce div.product div.images .woocommerce-product-gallery__trigger,
.woocommerce-page div.product div.images .woocommerce-product-gallery__trigger {
  z-index: 20 !important;
}

.single-product div.product div.summary,
.woocommerce div.product div.summary,
.woocommerce-page div.product div.summary {
  float: none !important;
  flex: 1 1 360px !important;
  width: auto !important;
  min-width: 280px;
}

@media (max-width: 700px) {
  .single-product .grs-woocommerce-inner div.product,
  .woocommerce.single-product .grs-woocommerce-inner div.product,
  .woocommerce-page.single-product .grs-woocommerce-inner div.product {
    display: block;
  }
  .single-product div.product div.images,
  .woocommerce div.product div.images,
  .woocommerce-page div.product div.images {
    margin-left: auto !important;
    margin-right: auto !important;
  }
}

/* Gato Rei collectible mug description layout */
.woocommerce div.product .woocommerce-tabs,
.woocommerce-page div.product .woocommerce-tabs {
  clear: both !important;
  width: 100% !important;
}

.woocommerce div.product .woocommerce-tabs ul.tabs,
.woocommerce-page div.product .woocommerce-tabs ul.tabs {
  margin-bottom: 0 !important;
}

.woocommerce div.product .woocommerce-Tabs-panel--description,
.woocommerce-page div.product .woocommerce-Tabs-panel--description {
  padding-top: 12px !important;
}

.woocommerce div.product .woocommerce-Tabs-panel--description > h2:first-child,
.woocommerce-page div.product .woocommerce-Tabs-panel--description > h2:first-child {
  display: none !important;
}

.grs-mug-description-card {
  position: relative;
  max-width: 1180px;
  margin: 0 auto 28px;
  padding: 26px 32px;
  background: linear-gradient(135deg, #fffdf7 0%, #fff8e9 52%, #ffffff 100%);
  border: 1px solid #d9b765;
  border-radius: 18px;
  box-shadow: 0 12px 34px rgba(0,0,0,0.08);
  color: #072f1c;
  line-height: 1.55;
  overflow: hidden;
}

.grs-mug-description-card:after {
  content: '🐾';
  position: absolute;
  right: 38px;
  bottom: 22px;
  font-size: 42px;
  opacity: .12;
  transform: rotate(-12deg);
}

.grs-mug-description-header {
  display: flex;
  gap: 16px;
  align-items: center;
  margin-bottom: 18px;
  padding-bottom: 14px;
  border-bottom: 1px solid rgba(0,76,42,.18);
}

.grs-mug-paw {
  width: 52px;
  height: 52px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: #f3dfaa;
  color: #064d2f;
  font-size: 28px;
  box-shadow: 0 5px 16px rgba(0,0,0,.08);
}

.grs-mug-kicker {
  margin: 0 0 4px !important;
  color: #b48728;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
  font-size: 13px;
}

.grs-mug-description-card h2 {
  margin: 0 !important;
  color: #064d2f;
  font-size: clamp(24px, 3vw, 34px);
  line-height: 1.15;
  font-weight: 900;
}

.grs-mug-desc-row {
  display: flex;
  gap: 16px;
  align-items: flex-start;
  margin: 18px 0;
  font-size: 18px;
}

.grs-mug-desc-row p,
.grs-mug-limited-band p,
.grs-mug-final-note p {
  margin: 0 !important;
}

.grs-mug-icon {
  flex: 0 0 42px;
  width: 42px;
  height: 42px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: #edf4df;
  font-size: 24px;
}

.grs-mug-limited-band {
  position: relative;
  display: flex;
  gap: 16px;
  align-items: center;
  margin: 22px 0;
  padding: 18px 132px 18px 18px;
  background: linear-gradient(90deg, #003d21 0%, #006235 100%);
  color: #fff;
  border-radius: 12px;
  box-shadow: 0 10px 26px rgba(0,67,37,.22);
  font-size: 18px;
}

.grs-mug-medal {
  flex: 0 0 44px;
  width: 44px;
  height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: rgba(255,255,255,.14);
  font-size: 27px;
}

.grs-mug-seal {
  position: absolute;
  right: 18px;
  top: 50%;
  transform: translateY(-50%);
  width: 92px;
  height: 92px;
  border-radius: 50%;
  background: radial-gradient(circle, #fff4be 0%, #e3b64f 100%);
  color: #07351f;
  border: 3px solid #f7dea0;
  box-shadow: 0 6px 18px rgba(0,0,0,.2);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  line-height: 1;
}

.grs-mug-seal span {
  font-size: 11px;
  font-weight: 900;
}

.grs-mug-seal strong {
  font-size: 25px;
  font-weight: 900;
  margin: 4px 0;
}

.grs-mug-final-note {
  display: flex;
  gap: 16px;
  align-items: center;
  margin-top: 22px;
  padding-top: 18px;
  border-top: 1px dashed #d7ae4b;
  font-size: 18px;
}

.grs-mug-final-note span {
  font-size: 32px;
  color: #c79b2f;
}

.grs-mug-final-note strong {
  color: #064d2f;
}

@media (max-width: 700px) {
  .grs-mug-description-card {
    padding: 20px 16px;
  }
  .grs-mug-description-header,
  .grs-mug-desc-row,
  .grs-mug-final-note,
  .grs-mug-limited-band {
    align-items: flex-start;
  }
  .grs-mug-limited-band {
    display: block;
    padding: 18px;
  }
  .grs-mug-medal {
    margin-bottom: 10px;
  }
  .grs-mug-seal {
    position: static;
    transform: none;
    margin: 14px auto 0;
  }
}

/* Gato Rei collectible mug quick summary at top of product page */
.grs-product-quick-summary {
  max-width: 760px;
  margin: 18px 0 22px;
  padding: 22px 24px;
  background: linear-gradient(135deg, #fffdf7 0%, #fff7e4 58%, #ffffff 100%);
  border: 1px solid #d8b660;
  border-radius: 18px;
  box-shadow: 0 10px 28px rgba(0,0,0,.08);
  color: #07351f;
  line-height: 1.48;
  position: relative;
  overflow: hidden;
}

.grs-product-quick-summary:after {
  content: '🐾';
  position: absolute;
  right: 20px;
  bottom: 14px;
  font-size: 36px;
  opacity: .12;
  transform: rotate(-16deg);
}

.grs-quick-badge {
  display: inline-block;
  padding: 7px 13px;
  margin-bottom: 10px;
  background: #064d2f;
  color: #fff;
  border-radius: 999px;
  font-size: 13px;
  font-weight: 900;
  letter-spacing: .06em;
  text-transform: uppercase;
  box-shadow: 0 6px 16px rgba(0,76,42,.18);
}

.grs-product-quick-summary h3 {
  margin: 0 0 8px !important;
  color: #064d2f;
  font-size: clamp(22px, 2.4vw, 32px);
  line-height: 1.15;
  font-weight: 900;
}

.grs-quick-lead {
  margin: 0 0 14px !important;
  font-size: 18px;
  color: #122a1f;
}

.grs-quick-features {
  list-style: none !important;
  margin: 0 0 16px !important;
  padding: 0 !important;
  display: grid;
  gap: 8px;
}

.grs-quick-features li {
  margin: 0 !important;
  padding: 9px 12px !important;
  background: rgba(255,255,255,.72);
  border: 1px solid rgba(6,77,47,.12);
  border-radius: 10px;
  font-size: 16px;
  font-weight: 700;
}

.grs-quick-features li span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 22px;
  margin-right: 8px;
  border-radius: 50%;
  background: #064d2f;
  color: #fff;
  font-size: 14px;
  font-weight: 900;
}

.grs-care-strip {
  display: flex;
  flex-wrap: wrap;
  gap: 9px;
  align-items: center;
  margin: 16px 0;
  padding: 14px 16px;
  background: linear-gradient(90deg, #003d21 0%, #006235 100%);
  color: #fff;
  border-radius: 12px;
  box-shadow: 0 8px 22px rgba(0,67,37,.18);
}

.grs-care-strip strong {
  width: 100%;
  font-size: 16px;
}

.grs-care-strip span {
  display: inline-block;
  padding: 6px 10px;
  background: rgba(255,255,255,.12);
  border-radius: 999px;
  font-weight: 800;
  font-size: 14px;
}

.grs-retired-note {
  margin: 14px 0 0 !important;
  padding-top: 14px;
  border-top: 1px dashed #caa24a;
  color: #064d2f;
  font-size: 17px;
  font-weight: 900;
}

@media (max-width: 700px) {
  .grs-product-quick-summary {
    padding: 18px 15px;
  }
  .grs-quick-lead,
  .grs-retired-note {
    font-size: 16px;
  }
}

/* GRS modern product image lightbox - clean centered window */
.grs-product-lightbox {
  position: fixed !important;
  top: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
  left: 0 !important;
  width: 100vw !important;
  height: 100vh !important;
  height: 100dvh !important;
  z-index: 2147483647 !important;
  display: none !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 140px 24px 34px !important;
  box-sizing: border-box !important;
  background: rgba(0,0,0,.74) !important;
  backdrop-filter: blur(3px);
}
.grs-product-lightbox.grs-is-open { display: flex !important; }
.grs-product-lightbox__dialog {
  position: relative !important;
  width: min(850px, 78vw) !important;
  max-width: 850px !important;
  max-height: calc(100vh - 180px) !important;
  max-height: calc(100dvh - 180px) !important;
  background: #fff !important;
  border: 5px solid #fff !important;
  border-radius: 18px !important;
  box-shadow: 0 26px 80px rgba(0,0,0,.50) !important;
  overflow: visible !important;
  animation: grsLightboxIn .18s ease-out;
}
@keyframes grsLightboxIn {
  from { opacity: .4; transform: scale(.96); }
  to { opacity: 1; transform: scale(1); }
}
.grs-product-lightbox__image {
  display: block !important;
  width: 100% !important;
  max-height: calc(100vh - 190px) !important;
  max-height: calc(100dvh - 190px) !important;
  object-fit: contain !important;
  background: #111 !important;
  border-radius: 13px !important;
}
.grs-product-lightbox__close,
.grs-product-lightbox__prev,
.grs-product-lightbox__next {
  position: absolute !important;
  border: 0 !important;
  cursor: pointer !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  border-radius: 999px !important;
  background: rgba(255,255,255,.96) !important;
  color: #111 !important;
  font-weight: 900 !important;
  box-shadow: 0 6px 20px rgba(0,0,0,.32) !important;
  transition: transform .18s ease, background .18s ease !important;
}
.grs-product-lightbox__close:hover,
.grs-product-lightbox__prev:hover,
.grs-product-lightbox__next:hover { transform: scale(1.06); background: #fff !important; }
.grs-product-lightbox__close {
  top: -25px !important;
  right: -25px !important;
  width: 50px !important;
  height: 50px !important;
  font-size: 30px !important;
  border: 4px solid #fff !important;
  background: #1b1b1b !important;
  color: #fff !important;
  z-index: 3 !important;
}
.grs-product-lightbox__prev,
.grs-product-lightbox__next {
  top: 50% !important;
  transform: translateY(-50%) !important;
  width: 50px !important;
  height: 50px !important;
  font-size: 36px !important;
  line-height: 1 !important;
  z-index: 2 !important;
}
.grs-product-lightbox__prev:hover,
.grs-product-lightbox__next:hover { transform: translateY(-50%) scale(1.06) !important; }
.grs-product-lightbox__prev { left: 18px !important; }
.grs-product-lightbox__next { right: 18px !important; }
.grs-product-lightbox__counter {
  position: absolute !important;
  left: 16px !important;
  bottom: 14px !important;
  padding: 6px 12px !important;
  border-radius: 999px !important;
  background: rgba(0,0,0,.62) !important;
  color: #fff !important;
  font-size: 13px !important;
  font-weight: 700 !important;
}
html.grs-lightbox-open,
body.grs-lightbox-open { overflow: hidden !important; }
body.grs-lightbox-open .pswp,
body.grs-lightbox-open .photoswipe,
body.grs-lightbox-open .woocommerce-product-gallery__trigger + .pswp { display: none !important; }
@media (max-width: 900px) {
  .grs-product-lightbox { padding: 95px 14px 24px !important; }
  .grs-product-lightbox__dialog { width: 92vw !important; max-height: calc(100vh - 125px) !important; max-height: calc(100dvh - 125px) !important; border-width: 4px !important; }
  .grs-product-lightbox__image { max-height: calc(100vh - 135px) !important; max-height: calc(100dvh - 135px) !important; }
}
@media (max-width: 600px) {
  .grs-product-lightbox { padding: 82px 10px 18px !important; }
  .grs-product-lightbox__dialog { width: 96vw !important; border-width: 3px !important; border-radius: 14px !important; }
  .grs-product-lightbox__close { top: -17px !important; right: -10px !important; width: 40px !important; height: 40px !important; font-size: 24px !important; }
  .grs-product-lightbox__prev, .grs-product-lightbox__next { width: 40px !important; height: 40px !important; font-size: 28px !important; }
  .grs-product-lightbox__prev { left: 8px !important; }
  .grs-product-lightbox__next { right: 8px !important; }
}


/* Fix resident/gallery image crop */
.grs-hover-gallery img,
.grs-gallery img,
.grs-resident-card img,
.grs-slider img{
    object-fit: cover;
    object-position: center top !important;
}

/* GRS FIX 2026-06-26: reduce empty space between moving resident pictures and the homepage/banner section */
html body .grs-moving-gallery-home,
html body .grs-moving-gallery-container,
html body .grs-moving-cat-gallery {
  margin-bottom: 0 !important;
  padding-bottom: 0 !important;
}

html body .grs-moving-gallery-home {
  border-bottom: 0 !important;
}

html body .grs-moving-gallery-home + *,
html body .grs-moving-gallery-container + *,
html body .grs-moving-cat-gallery + *,
html body .grs-moving-gallery-home ~ .wp-block-group:first-of-type,
html body .grs-moving-gallery-home ~ .wp-block-columns:first-of-type,
html body .grs-moving-gallery-home ~ .grs-redesign-v2:first-of-type {
  margin-top: 10px !important;
  padding-top: 0 !important;
}

html body .grs-moving-gallery-home + .wp-block-spacer,
html body .grs-moving-gallery-home ~ .wp-block-spacer:first-of-type {
  height: 10px !important;
  min-height: 10px !important;
  max-height: 10px !important;
  margin: 0 !important;
  padding: 0 !important;
}

html body .grs-page-shell .grs-page-inner > .wp-block-group:first-child,
html body .grs-page-shell .grs-page-inner > .wp-block-columns:first-child,
html body .grs-page-shell .grs-page-inner > .alignwide:first-child,
html body .grs-page-shell .grs-page-inner > .alignfull:first-child {
  margin-top: 10px !important;
}

/* If the home banner/menu row is generated by a plugin or shortcode, force its first visible block upward. */
html body .grs-page-shell .grs-page-inner > *:first-child:not(.grs-moving-gallery-home),
html body .grs-page-shell .entry-content > *:first-child:not(.grs-moving-gallery-home),
html body main .entry-content > *:first-child:not(.grs-moving-gallery-home) {
  margin-top: 10px !important;
}


/* ChatGPT spacing tweak */
.grs-resident-gallery,.grs-hover-gallery,.grs-photo-gallery,.resident-gallery,.hover-gallery{margin-top:12px!important;margin-bottom:8px!important;}


/* GRS FIX 2026-06-26: resident card hover must appear ABOVE the home banner/buttons, not behind them */
html body .grs-moving-gallery-home,
html body .grs-moving-gallery-container,
html body .grs-moving-cat-gallery {
  overflow: visible !important;
  position: relative !important;
  z-index: 2147482000 !important;
}

html body .grs-moving-cat-track {
  overflow: visible !important;
  position: relative !important;
  z-index: 2147482001 !important;
}

html body .grs-moving-cat-item {
  position: relative !important;
  z-index: 2147482002 !important;
  transform-origin: center top !important;
}

html body .grs-moving-cat-item:hover,
html body .grs-moving-cat-item:focus {
  z-index: 2147483000 !important;
}


/* GRS UPDATE 2026-06-26: customer-service cat between logo and top banner */
body .grs-header-promo{
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:18px!important;
  padding:0 22px!important;
  height:146px!important;
  min-height:146px!important;
  max-height:146px!important;
  overflow:hidden!important;
  background:#fff!important;
}
body .grs-logo-link-home{
  flex:0 0 250px!important;
  width:250px!important;
  height:146px!important;
  justify-content:flex-start!important;
}
body .grs-logo-link-home img.grs-header-logo-img{
  width:250px!important;
  max-width:250px!important;
  height:146px!important;
  object-fit:contain!important;
  object-position:left center!important;
}
body .grs-header-cat-service{
  flex:0 0 170px!important;
  width:170px!important;
  height:136px!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:center!important;
  gap:4px!important;
  overflow:hidden!important;
  box-sizing:border-box!important;
  text-align:center!important;
}
body .grs-header-cat-service-img{
  display:block!important;
  width:154px!important;
  max-width:154px!important;
  height:98px!important;
  object-fit:cover!important;
  object-position:center center!important;
  border-radius:14px!important;
  box-shadow:0 4px 12px rgba(0,0,0,.22)!important;
  border:2px solid #ffffff!important;
}
body .grs-header-cat-click{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  min-height:28px!important;
  padding:4px 16px!important;
  border-radius:999px!important;
  background:#e60023!important;
  color:#ffffff!important;
  font-family:Arial,Helvetica,sans-serif!important;
  font-size:14px!important;
  font-weight:900!important;
  line-height:1!important;
  letter-spacing:.4px!important;
  text-decoration:none!important;
  box-shadow:0 3px 0 #8a0015,0 5px 12px rgba(0,0,0,.24)!important;
  white-space:nowrap!important;
}
body .grs-header-cat-click:hover,
body .grs-header-cat-click:focus{
  background:#ff1744!important;
  color:#fff!important;
  transform:translateY(-1px)!important;
}
body .grs-banner-link-home{
  flex:1 1 auto!important;
  width:auto!important;
  max-width:calc(100vw - 500px)!important;
  margin-left:0!important;
  height:146px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:flex-end!important;
}
body .grs-banner-link-home img.grs-header-banner-img{
  width:850px!important;
  max-width:100%!important;
  height:146px!important;
  object-fit:contain!important;
  object-position:right center!important;
  border-radius:6px!important;
}
@media(max-width:1200px){
  body .grs-header-promo{gap:12px!important;padding:0 12px!important;}
  body .grs-logo-link-home{flex-basis:205px!important;width:205px!important;}
  body .grs-logo-link-home img.grs-header-logo-img{width:205px!important;max-width:205px!important;}
  body .grs-header-cat-service{flex-basis:142px!important;width:142px!important;}
  body .grs-header-cat-service-img{width:130px!important;max-width:130px!important;height:88px!important;}
  body .grs-header-cat-click{font-size:12px!important;padding:4px 12px!important;min-height:25px!important;}
  body .grs-banner-link-home{max-width:calc(100vw - 382px)!important;}
}
@media(max-width:782px){
  body .grs-header-promo{
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
    flex-direction:column!important;
    align-items:center!important;
    justify-content:center!important;
    gap:8px!important;
    padding:8px 10px!important;
    overflow:visible!important;
  }
  body .grs-logo-link-home{width:280px!important;max-width:95vw!important;height:92px!important;flex:0 0 auto!important;justify-content:center!important;}
  body .grs-logo-link-home img.grs-header-logo-img{width:280px!important;max-width:95vw!important;height:92px!important;object-position:center center!important;}
  body .grs-header-cat-service{width:220px!important;height:auto!important;flex:0 0 auto!important;overflow:visible!important;}
  body .grs-header-cat-service-img{width:200px!important;max-width:90vw!important;height:112px!important;}
  body .grs-header-cat-click{font-size:15px!important;min-height:32px!important;padding:6px 20px!important;}
  body .grs-banner-link-home{width:850px!important;max-width:95vw!important;height:auto!important;margin-left:0!important;justify-content:center!important;}
  body .grs-banner-link-home img.grs-header-banner-img{width:850px!important;max-width:95vw!important;height:auto!important;object-fit:contain!important;object-position:center center!important;}
  body .grs-page-shell, body.admin-bar .grs-page-shell{padding-top:390px!important;}
}

/* GRS FIX 2026-06-26: mobile header must stay in one single frame */
body .grs-header-promo{
  display:flex!important;
  flex-direction:row!important;
  flex-wrap:nowrap!important;
  align-items:center!important;
  justify-content:space-between!important;
  height:146px!important;
  min-height:146px!important;
  max-height:146px!important;
  gap:14px!important;
  padding:0 18px!important;
  overflow:hidden!important;
}

body .grs-logo-link-home,
body .grs-header-cat-service,
body .grs-banner-link-home{
  min-width:0!important;
  margin:0!important;
}

body .grs-logo-link-home{flex:0 0 24%!important;width:24%!important;height:146px!important;}
body .grs-header-cat-service{flex:0 0 22%!important;width:22%!important;height:136px!important;}
body .grs-banner-link-home{flex:1 1 54%!important;width:auto!important;max-width:none!important;height:146px!important;}

body .grs-logo-link-home img.grs-header-logo-img,
body .grs-banner-link-home img.grs-header-banner-img{
  width:100%!important;
  max-width:100%!important;
  height:146px!important;
  object-fit:contain!important;
}

body .grs-header-cat-service-img{
  width:100%!important;
  max-width:180px!important;
  height:94px!important;
  object-fit:cover!important;
}

@media(max-width:782px){
  body .grs-header-promo{
    flex-direction:row!important;
    flex-wrap:nowrap!important;
    align-items:center!important;
    justify-content:space-between!important;
    height:106px!important;
    min-height:106px!important;
    max-height:106px!important;
    gap:5px!important;
    padding:4px 6px!important;
    overflow:hidden!important;
  }
  body .grs-logo-link-home{
    flex:0 0 28%!important;
    width:28%!important;
    max-width:none!important;
    height:98px!important;
    justify-content:center!important;
  }
  body .grs-logo-link-home img.grs-header-logo-img{
    width:100%!important;
    max-width:100%!important;
    height:98px!important;
    object-fit:contain!important;
    object-position:center center!important;
  }
  body .grs-header-cat-service{
    flex:0 0 26%!important;
    width:26%!important;
    max-width:none!important;
    height:98px!important;
    gap:2px!important;
    overflow:hidden!important;
  }
  body .grs-header-cat-service-img{
    width:100%!important;
    max-width:100%!important;
    height:66px!important;
    object-fit:cover!important;
    object-position:center center!important;
    border-radius:10px!important;
    box-shadow:0 2px 8px rgba(0,0,0,.20)!important;
  }
  body .grs-header-cat-click{
    min-height:22px!important;
    padding:3px 8px!important;
    font-size:10px!important;
    line-height:1!important;
    letter-spacing:.2px!important;
    box-shadow:0 2px 0 #8a0015,0 3px 8px rgba(0,0,0,.18)!important;
    max-width:100%!important;
  }
  body .grs-banner-link-home{
    flex:1 1 46%!important;
    width:auto!important;
    max-width:none!important;
    height:98px!important;
    justify-content:center!important;
  }
  body .grs-banner-link-home img.grs-header-banner-img{
    width:100%!important;
    max-width:100%!important;
    height:98px!important;
    object-fit:contain!important;
    object-position:center center!important;
  }
  body .grs-page-shell,
  body.admin-bar .grs-page-shell{
    padding-top:312px!important;
  }
}

@media(max-width:420px){
  body .grs-header-promo{height:92px!important;min-height:92px!important;max-height:92px!important;gap:4px!important;padding:3px 5px!important;}
  body .grs-logo-link-home{flex-basis:28%!important;width:28%!important;height:86px!important;}
  body .grs-logo-link-home img.grs-header-logo-img{height:86px!important;}
  body .grs-header-cat-service{flex-basis:27%!important;width:27%!important;height:86px!important;}
  body .grs-header-cat-service-img{height:58px!important;border-radius:8px!important;}
  body .grs-header-cat-click{font-size:9px!important;min-height:20px!important;padding:3px 6px!important;}
  body .grs-banner-link-home{height:86px!important;}
  body .grs-banner-link-home img.grs-header-banner-img{height:86px!important;}
  body .grs-page-shell, body.admin-bar .grs-page-shell{padding-top:298px!important;}
}

/* -------------------------------------------------------------------------
   GRS Contact Page - clean soft color scheme
------------------------------------------------------------------------- */
.grs-contact-page {
  max-width: 1180px;
  margin: 0 auto 48px;
  padding: 22px 14px 44px;
  font-family: inherit;
  color: #172033;
}
.grs-contact-hero {
  text-align: center;
  background: linear-gradient(135deg, #ffffff, #f6fbff 62%, #eef7f2);
  border: 1px solid rgba(12, 55, 92, .12);
  border-radius: 24px;
  box-shadow: 0 12px 30px rgba(16, 48, 82, .10);
  padding: 34px 20px;
  margin-bottom: 24px;
}
.grs-contact-kicker {
  display: inline-block;
  margin: 0 0 8px;
  padding: 7px 14px;
  border-radius: 999px;
  background: #edf6ff;
  color: #0b4778;
  border: 1px solid rgba(11, 71, 120, .14);
  font-weight: 900;
  letter-spacing: .05em;
  text-transform: uppercase;
  font-size: 13px;
}
.grs-contact-hero h1 {
  margin: 6px 0 10px;
  color: #0b4778;
  font-size: clamp(32px, 5.4vw, 56px);
  line-height: 1;
  font-weight: 1000;
  text-shadow: none;
}
.grs-contact-hero p {
  max-width: 760px;
  margin: 0 auto 14px;
  color: #334155;
  font-size: clamp(16px, 2.1vw, 20px);
  line-height: 1.45;
  font-weight: 650;
}
.grs-contact-email {
  display: inline-block;
  color: #ffffff;
  background: #0b4778;
  border-radius: 999px;
  padding: 12px 22px;
  font-weight: 900;
  text-decoration: none;
  box-shadow: 0 8px 20px rgba(11, 71, 120, .22);
}
.grs-contact-email:hover { background: #08375e; }
.grs-contact-grid {
  display: grid;
  grid-template-columns: minmax(260px, .86fr) minmax(300px, 1.14fr);
  gap: 22px;
  align-items: start;
}
.grs-contact-card {
  background: #ffffff;
  border-radius: 22px;
  border: 1px solid rgba(15, 77, 129, .12);
  box-shadow: 0 12px 28px rgba(16, 48, 82, .09);
  padding: 24px;
}
.grs-contact-card h2 {
  margin: 0 0 12px;
  color: #0b4778;
  font-size: clamp(23px, 3.6vw, 32px);
  font-weight: 1000;
}
.grs-contact-muted {
  color: #475569;
  font-size: 16px;
  line-height: 1.45;
  margin: 0 0 16px;
}
.grs-social-contact-list {
  display: grid;
  gap: 10px;
}
.grs-social-contact-link {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: center;
  padding: 13px 15px;
  border-radius: 16px;
  text-decoration: none;
  background: #f8fbfd;
  color: #0b4778;
  border: 1px solid rgba(15, 77, 129, .14);
  font-weight: 900;
  transition: transform .18s ease, box-shadow .18s ease, background .18s ease, border-color .18s ease;
}
.grs-social-contact-link:hover {
  transform: translateY(-2px);
  background: #ffffff;
  border-color: rgba(15, 77, 129, .28);
  box-shadow: 0 8px 18px rgba(16, 48, 82, .12);
}
.grs-social-contact-link em {
  font-style: normal;
  color: #6b7280;
  font-size: 13px;
  white-space: nowrap;
}
.grs-social-disabled {
  opacity: .62;
  cursor: default;
}
.grs-social-disabled:hover {
  transform: none;
  box-shadow: none;
}
.grs-contact-form {
  display: grid;
  gap: 14px;
}
.grs-contact-form label {
  color: #0b4778;
  font-weight: 900;
  font-size: 16px;
}
.grs-contact-form label span {
  color: #2f855a;
}
.grs-contact-form input,
.grs-contact-form textarea {
  width: 100%;
  display: block;
  margin-top: 7px;
  border: 1px solid rgba(15, 77, 129, .22);
  border-radius: 14px;
  padding: 14px 15px;
  font-size: 17px;
  background: #fbfdff;
  outline: none;
  color: #172033;
}
.grs-contact-form input:focus,
.grs-contact-form textarea:focus {
  border-color: #2f855a;
  box-shadow: 0 0 0 4px rgba(47, 133, 90, .12);
  background: #ffffff;
}
.grs-contact-form button {
  border: 0;
  border-radius: 999px;
  background: #2f855a;
  color: #ffffff;
  font-size: 18px;
  font-weight: 1000;
  padding: 15px 22px;
  cursor: pointer;
  box-shadow: 0 8px 20px rgba(47, 133, 90, .24);
}
.grs-contact-form button:hover {
  transform: translateY(-1px);
  background: #276f4b;
}
.grs-contact-notice {
  margin: 0 auto 22px;
  max-width: 860px;
  text-align: center;
  border-radius: 16px;
  padding: 14px 18px;
  font-weight: 900;
  box-shadow: 0 8px 20px rgba(16, 48, 82, .08);
}
.grs-contact-sent { background: #edf9f1; color: #14532d; border: 1px solid rgba(20,83,45,.14); }
.grs-contact-missing, .grs-contact-error { background: #fff7ed; color: #9a3412; border: 1px solid rgba(154,52,18,.14); }
@media (max-width: 780px) {
  .grs-contact-page { padding-left: 10px; padding-right: 10px; }
  .grs-contact-grid { grid-template-columns: 1fr; gap: 16px; }
  .grs-contact-card { padding: 18px; border-radius: 20px; }
  .grs-contact-email { font-size: 14px; padding: 12px 16px; }
}



/* GRS FIX 2026-06-27: show the new MEOW header artwork without cropping */
body .grs-header-cat-service-img{
  object-fit:contain!important;
  object-position:center center!important;
  background:#fff!important;
}


/* GRS FIX 2026-06-27 v1.5.12: EXPAND CENTER MEOW HEADER BANNER - FINAL OVERRIDE */
html body .grs-site-header .grs-header-promo{
  display:flex!important;
  flex-direction:row!important;
  flex-wrap:nowrap!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:14px!important;
  padding:0 18px!important;
  height:146px!important;
  min-height:146px!important;
  max-height:146px!important;
  overflow:hidden!important;
}
html body .grs-site-header .grs-logo-link-home{
  flex:0 0 20%!important;
  width:20%!important;
  max-width:20%!important;
  height:146px!important;
  min-width:0!important;
}
html body .grs-site-header .grs-header-cat-service{
  flex:0 0 33%!important;
  width:33%!important;
  max-width:33%!important;
  height:136px!important;
  min-width:0!important;
  display:flex!important;
  flex-direction:column!important;
  justify-content:center!important;
  align-items:center!important;
  gap:5px!important;
  overflow:visible!important;
}
html body .grs-site-header .grs-banner-link-home{
  flex:0 0 47%!important;
  width:47%!important;
  max-width:47%!important;
  height:146px!important;
  min-width:0!important;
}
html body .grs-site-header img.grs-header-logo-img{
  width:100%!important;
  max-width:100%!important;
  height:146px!important;
  object-fit:contain!important;
}
html body .grs-site-header img.grs-header-cat-service-img{
  width:100%!important;
  max-width:100%!important;
  height:102px!important;
  max-height:102px!important;
  object-fit:contain!important;
  object-position:center center!important;
  background:#fff!important;
  border-radius:10px!important;
}
html body .grs-site-header .grs-header-cat-click{
  width:auto!important;
  max-width:100%!important;
  min-height:28px!important;
  padding:5px 24px!important;
  font-size:15px!important;
  line-height:1!important;
  white-space:nowrap!important;
}
html body .grs-site-header img.grs-header-banner-img{
  width:100%!important;
  max-width:100%!important;
  height:146px!important;
  object-fit:contain!important;
}
@media(max-width:782px){
  html body .grs-site-header .grs-header-promo{height:106px!important;min-height:106px!important;max-height:106px!important;gap:5px!important;padding:4px 6px!important;}
  html body .grs-site-header .grs-logo-link-home{flex:0 0 24%!important;width:24%!important;max-width:24%!important;height:98px!important;}
  html body .grs-site-header .grs-header-cat-service{flex:0 0 34%!important;width:34%!important;max-width:34%!important;height:98px!important;gap:2px!important;}
  html body .grs-site-header .grs-banner-link-home{flex:0 0 42%!important;width:42%!important;max-width:42%!important;height:98px!important;}
  html body .grs-site-header img.grs-header-logo-img{height:98px!important;}
  html body .grs-site-header img.grs-header-cat-service-img{height:70px!important;max-height:70px!important;}
  html body .grs-site-header .grs-header-cat-click{font-size:10px!important;min-height:22px!important;padding:3px 8px!important;}
  html body .grs-site-header img.grs-header-banner-img{height:98px!important;}
}
@media(max-width:420px){
  html body .grs-site-header .grs-logo-link-home{flex-basis:24%!important;width:24%!important;max-width:24%!important;}
  html body .grs-site-header .grs-header-cat-service{flex-basis:36%!important;width:36%!important;max-width:36%!important;}
  html body .grs-site-header .grs-banner-link-home{flex-basis:40%!important;width:40%!important;max-width:40%!important;}
}


/* GRS FINAL 1.5.13: force center MEOW banner wider, keep all header items on one row */
html body .grs-site-header .grs-header-promo{
  display:grid!important;
  grid-template-columns:260px 430px minmax(520px, 1fr)!important;
  align-items:center!important;
  justify-content:center!important;
  column-gap:28px!important;
  height:132px!important;
  min-height:132px!important;
  max-height:132px!important;
  padding:6px 28px!important;
  box-sizing:border-box!important;
  overflow:hidden!important;
}
html body .grs-site-header .grs-logo-link-home{
  width:260px!important;
  max-width:260px!important;
  flex:none!important;
  display:flex!important;
  justify-content:center!important;
  align-items:center!important;
}
html body .grs-site-header .grs-logo-link-home img.grs-header-logo-img{
  width:250px!important;
  max-width:250px!important;
  height:116px!important;
  object-fit:contain!important;
}
html body .grs-site-header .grs-header-cat-service{
  width:430px!important;
  max-width:430px!important;
  min-width:430px!important;
  flex:none!important;
  height:124px!important;
  display:flex!important;
  flex-direction:column!important;
  justify-content:center!important;
  align-items:center!important;
  overflow:visible!important;
}
html body .grs-site-header .grs-header-cat-service-img{
  width:430px!important;
  max-width:430px!important;
  height:96px!important;
  object-fit:contain!important;
  object-position:center center!important;
  display:block!important;
}
html body .grs-site-header .grs-header-cat-click{
  margin-top:2px!important;
  height:28px!important;
  min-height:28px!important;
  line-height:28px!important;
  padding:0 24px!important;
  font-size:15px!important;
  white-space:nowrap!important;
}
html body .grs-site-header .grs-banner-link-home{
  width:100%!important;
  max-width:none!important;
  min-width:0!important;
  flex:none!important;
  height:116px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  overflow:hidden!important;
}
html body .grs-site-header .grs-banner-link-home img.grs-header-banner-img{
  width:100%!important;
  max-width:100%!important;
  height:116px!important;
  object-fit:contain!important;
  object-position:center center!important;
}
@media (max-width: 900px){
  html body .grs-site-header .grs-header-promo{
    display:flex!important;
    flex-direction:column!important;
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
    padding:8px 10px!important;
    gap:8px!important;
    overflow:visible!important;
  }
  html body .grs-site-header .grs-logo-link-home,
  html body .grs-site-header .grs-header-cat-service,
  html body .grs-site-header .grs-banner-link-home{
    width:95vw!important;
    max-width:95vw!important;
    min-width:0!important;
    height:auto!important;
  }
  html body .grs-site-header .grs-header-cat-service-img{
    width:95vw!important;
    max-width:430px!important;
    height:auto!important;
  }
}


/* GRS FINAL 1.5.14: make MEOW banner itself the contact link and remove duplicate red button */
html body .grs-site-header .grs-header-cat-service{
  height:124px!important;
  justify-content:center!important;
  align-items:center!important;
  gap:0!important;
}
html body .grs-site-header .grs-header-cat-service-link{
  display:block!important;
  width:430px!important;
  max-width:100%!important;
  height:116px!important;
  text-decoration:none!important;
  line-height:0!important;
}
html body .grs-site-header .grs-header-cat-service-link img.grs-header-cat-service-img{
  display:block!important;
  width:100%!important;
  max-width:100%!important;
  height:116px!important;
  object-fit:contain!important;
  object-position:center center!important;
}
html body .grs-site-header .grs-header-cat-click{
  display:none!important;
}
@media (max-width:900px){
  html body .grs-site-header .grs-header-cat-service-link{
    width:95vw!important;
    max-width:430px!important;
    height:auto!important;
  }
  html body .grs-site-header .grs-header-cat-service-link img.grs-header-cat-service-img{
    height:auto!important;
  }
}


/* GRS FINAL 1.5.16: MEOW banner natural fit, contact link, duplicate button removed */
html body .grs-site-header .grs-header-promo{
  display:grid!important;
  grid-template-columns:320px minmax(620px, 700px) minmax(430px, 1fr)!important;
  align-items:center!important;
  justify-content:center!important;
  column-gap:28px!important;
  height:190px!important;
  min-height:190px!important;
  max-height:none!important;
  padding:8px 28px!important;
  background:#fff!important;
  box-sizing:border-box!important;
  overflow:visible!important;
}
html body .grs-site-header .grs-logo-link-home{
  width:320px!important;max-width:320px!important;height:174px!important;display:flex!important;align-items:center!important;justify-content:flex-start!important;overflow:visible!important;
}
html body .grs-site-header .grs-logo-link-home img.grs-header-logo-img{
  width:300px!important;max-width:300px!important;height:170px!important;object-fit:contain!important;object-position:left center!important;display:block!important;
}
html body .grs-site-header .grs-header-cat-service{
  width:100%!important;max-width:700px!important;min-width:620px!important;height:auto!important;min-height:0!important;display:flex!important;align-items:center!important;justify-content:center!important;overflow:visible!important;background:transparent!important;border:0!important;box-shadow:none!important;padding:0!important;margin:0!important;border-radius:0!important;
}
html body .grs-site-header .grs-header-cat-service-link{
  display:block!important;width:100%!important;max-width:700px!important;height:auto!important;line-height:0!important;text-decoration:none!important;background:transparent!important;border:0!important;box-shadow:none!important;padding:0!important;margin:0!important;border-radius:0!important;overflow:visible!important;
}
html body .grs-site-header .grs-header-cat-service-link img.grs-header-cat-service-img{
  display:block!important;width:100%!important;max-width:700px!important;height:auto!important;max-height:none!important;object-fit:contain!important;object-position:center center!important;border:0!important;border-radius:10px!important;box-shadow:none!important;background:transparent!important;padding:0!important;margin:0 auto!important;opacity:1!important;visibility:visible!important;
}
html body .grs-site-header .grs-header-cat-click{display:none!important;width:0!important;height:0!important;overflow:hidden!important;}
html body .grs-site-header .grs-banner-link-home{
  width:100%!important;max-width:none!important;height:174px!important;display:flex!important;align-items:center!important;justify-content:center!important;overflow:hidden!important;
}
html body .grs-site-header .grs-banner-link-home img.grs-header-banner-img{
  width:100%!important;max-width:100%!important;height:170px!important;object-fit:contain!important;object-position:center center!important;display:block!important;
}
body.admin-bar .grs-page-shell{padding-top:222px!important;}
body .grs-page-shell{padding-top:190px!important;}
@media(max-width:1300px){
  html body .grs-site-header .grs-header-promo{grid-template-columns:280px minmax(540px, 620px) minmax(360px, 1fr)!important;column-gap:16px!important;padding-left:16px!important;padding-right:16px!important;}
  html body .grs-site-header .grs-logo-link-home{width:280px!important;max-width:280px!important;}
  html body .grs-site-header .grs-logo-link-home img.grs-header-logo-img{width:265px!important;max-width:265px!important;}
  html body .grs-site-header .grs-header-cat-service{min-width:540px!important;max-width:620px!important;}
  html body .grs-site-header .grs-header-cat-service-link,
  html body .grs-site-header .grs-header-cat-service-link img.grs-header-cat-service-img{max-width:620px!important;}
}
@media(max-width:900px){
  html body .grs-site-header .grs-header-promo{display:flex!important;flex-direction:column!important;height:auto!important;min-height:0!important;max-height:none!important;padding:8px 10px!important;gap:8px!important;overflow:visible!important;}
  html body .grs-site-header .grs-logo-link-home,
  html body .grs-site-header .grs-header-cat-service,
  html body .grs-site-header .grs-banner-link-home{width:95vw!important;max-width:95vw!important;min-width:0!important;height:auto!important;}
  html body .grs-site-header .grs-header-cat-service-link,
  html body .grs-site-header .grs-header-cat-service-link img.grs-header-cat-service-img{width:95vw!important;max-width:700px!important;height:auto!important;object-fit:contain!important;}
  body.admin-bar .grs-page-shell, body .grs-page-shell{padding-top:420px!important;}
}

/* GRS 1.5.57 — on phones, every linked page uses the exact same outer frame
   as the homepage.  The desktop internal-page panel layout is deliberately
   untouched above. */
@media (max-width:700px) {
  body:not(.home) #primary.grs-mobile-home-shell {
    display:block!important;
    width:100%!important;
    max-width:none!important;
    margin:0!important;
    padding:0!important;
  }
  body:not(.home) .grs-mobile-home-layout {
    display:block!important;
    width:100%!important;
    max-width:none!important;
    margin:0!important;
    padding:10px!important;
    background:#fff!important;
    box-sizing:border-box!important;
  }
  body:not(.home) .grs-mobile-home-layout > .grs-template-left-frame {
    display:block!important;
    position:relative!important;
    top:auto!important;
    width:100%!important;
    min-width:0!important;
    max-width:none!important;
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
    margin:0 0 14px!important;
    padding:0!important;
    overflow:visible!important;
    background:transparent!important;
    border:0!important;
    border-radius:0!important;
    box-sizing:border-box!important;
  }
  body:not(.home) .grs-mobile-home-layout > .grs-template-left-frame > .grs-template-left-frame-inner {
    display:block!important;
    width:100%!important;
    min-height:0!important;
    height:auto!important;
    max-height:none!important;
    margin:0!important;
    padding:0!important;
    overflow:visible!important;
    background:transparent!important;
    box-sizing:border-box!important;
  }
  body:not(.home) .grs-mobile-home-layout .grs-original-menu-host,
  body:not(.home) .grs-mobile-home-layout .grs-exact-original-menu {
    display:block!important;
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    margin:0!important;
    box-sizing:border-box!important;
  }
  body:not(.home) .grs-mobile-home-layout .grs-exact-original-menu {
    max-height:315px!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    padding:10px 18px 18px!important;
    scroll-behavior:smooth!important;
    scrollbar-width:auto!important;
    -webkit-overflow-scrolling:touch!important;
    overscroll-behavior:contain!important;
  }
  body:not(.home) .grs-mobile-home-layout .grs-exact-original-menu > * {
    width:100%!important;
    max-width:100%!important;
    box-sizing:border-box!important;
  }
  body:not(.home) .grs-mobile-home-layout .grs-exact-original-menu a,
  body:not(.home) .grs-mobile-home-layout .grs-exact-original-menu button {
    font-size:18px!important;
    line-height:1.15!important;
    min-height:56px!important;
    padding:17px 14px!important;
  }
  body:not(.home) .grs-mobile-home-layout > .grs-template-main-content {
    display:block!important;
    width:100%!important;
    min-width:0!important;
    max-width:none!important;
    margin:0!important;
    padding:0!important;
    overflow:visible!important;
    box-sizing:border-box!important;
  }
}


/* GRS 1.5.19 final shorter no-box meow banner */
html body .grs-site-header .grs-header-cat-click{display:none!important;}
html body .grs-site-header .grs-header-cat-service,html body .grs-site-header .grs-header-cat-service-link{background:transparent!important;border:0!important;box-shadow:none!important;border-radius:0!important;}


/* GRS 1.5.21 clean balanced banners: see header.php inline override */


/* GRS FINAL 1.5.24: link/base cleanup and resident row spacing fix */
html body .grs-moving-gallery-home,
html body .grs-moving-gallery-container,
html body .grs-moving-cat-gallery{
  margin-top:12px!important;
  padding-top:0!important;
  overflow:visible!important;
  z-index:1!important;
}
html body .grs-moving-cat-track,
html body .grs-moving-cat-item{
  z-index:2!important;
}
html body .grs-main-nav-wrap,
html body .grs-main-nav{
  position:relative!important;
  z-index:50!important;
}
html body .grs-moving-cat-item img{
  object-fit:cover!important;
  object-position:center center!important;
}
/* keep the fixed header from covering the resident pictures */
body.admin-bar .grs-page-shell{padding-top:245px!important;}
body:not(.admin-bar) .grs-page-shell{padding-top:213px!important;}
@media(max-width:900px){
  body.admin-bar .grs-page-shell, body:not(.admin-bar) .grs-page-shell{padding-top:420px!important;}
}


/* GRS FINAL FIX 1.5.25: keep content fully below fixed header and keep moving cat gallery visible */
html body .grs-page-shell{position:relative!important;z-index:1!important;overflow:visible!important;}
html body .grs-moving-gallery-home{position:relative!important;z-index:1!important;overflow:visible!important;margin-top:0!important;padding-top:14px!important;}
html body .grs-moving-gallery-container,html body .grs-moving-cat-gallery{overflow:visible!important;}
html body .grs-moving-cat-track{padding-top:0!important;}
html body .grs-moving-cat-item,html body .grs-moving-cat-item img{overflow:hidden!important;}


/* GRS 1.5.26 final gallery spacing: close to menu, no overlap */
html body .grs-moving-gallery-home{margin-top:6px!important;padding-top:0!important;overflow:hidden!important;z-index:2!important;}
html body .grs-moving-gallery-container,html body .grs-moving-cat-gallery{margin-top:0!important;padding-top:0!important;overflow:hidden!important;z-index:2!important;}
html body .grs-moving-cat-track{padding-left:18px!important;padding-right:18px!important;}


/* GRS 1.5.28: tight gallery spacing and contained hover */
html body .grs-moving-gallery-home{margin-top:8px!important;padding-top:0!important;overflow:hidden!important;}
html body .grs-moving-gallery-container,html body .grs-moving-cat-gallery{margin-top:0!important;padding-top:0!important;overflow:hidden!important;}
html body .grs-moving-cat-item:hover,html body .grs-moving-cat-item:focus{transform:scale(1.08)!important;box-shadow:0 0 0 4px rgba(0,105,255,.35),0 8px 24px rgba(0,0,0,.28)!important;z-index:20!important;}

/* GRS 1.5.29: permanent left page frame below the navigation */
.grs-page-shell-with-left-frame .grs-page-inner {
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0;
}

.grs-template-body-frame {
  display: grid;
  grid-template-columns: 140px minmax(0, 1fr);
  align-items: stretch;
  width: 100%;
  min-height: calc(100vh - 245px);
  margin: 0;
  padding: 0;
  box-sizing: border-box;
  background: #ffffff;
}

.grs-template-left-frame {
  display: block;
  align-self: stretch;
  width: 140px;
  min-width: 140px;
  min-height: 610px;
  margin: 0;
  padding: 0;
  border: 4px solid #080808;
  border-top-width: 4px;
  box-sizing: border-box;
  background: #ffffff;
}

.grs-template-left-frame-inner {
  display: flex;
  align-items: flex-start;
  justify-content: center;
  width: 100%;
  min-height: 100%;
  padding: 86px 12px 40px;
  box-sizing: border-box;
  text-align: center;
}

.grs-template-left-frame-inner span {
  color: #111111;
  font-family: Arial, Helvetica, sans-serif;
  font-size: 25px;
  font-weight: 400;
  line-height: 1.48;
  letter-spacing: .01em;
}

.grs-template-main-content {
  min-width: 0;
  width: 100%;
  margin: 0;
  padding: 0;
  box-sizing: border-box;
  background: #ffffff;
}

@media (max-width: 900px) {
  .grs-template-body-frame {
    display: block;
    min-height: 0;
  }

  .grs-template-left-frame {
    width: calc(100% - 24px);
    min-width: 0;
    min-height: 150px;
    margin: 12px;
  }

  .grs-template-left-frame-inner {
    min-height: 142px;
    padding: 25px 12px;
    align-items: center;
  }

  .grs-template-left-frame-inner span {
    font-size: 21px;
    line-height: 1.25;
  }
}


/* GRS 1.5.30: move homepage blue section menu into the permanent left column */
.grs-home-shell-with-left-menu .grs-home-layout-v1530{
  display:grid!important;
  grid-template-columns:330px minmax(0,1fr)!important;
  align-items:start!important;
  gap:18px!important;
  width:100%!important;
  max-width:none!important;
  margin:0!important;
  padding:12px 16px 28px!important;
  box-sizing:border-box!important;
  background:#fff!important;
}
.grs-home-left-menu{
  width:100%!important;
  min-width:0!important;
  align-self:start!important;
  box-sizing:border-box!important;
}
.grs-home-left-menu-placeholder{display:none!important;}
.grs-home-left-menu .grs-relocated-home-menu{
  width:100%!important;
  max-width:none!important;
  min-width:0!important;
  margin:0!important;
  position:relative!important;
  top:auto!important;
  right:auto!important;
  bottom:auto!important;
  left:auto!important;
  transform:none!important;
  float:none!important;
  box-sizing:border-box!important;
}
.grs-home-left-menu .grs-relocated-home-menu a,
.grs-home-left-menu .grs-relocated-home-menu button{
  max-width:100%!important;
  box-sizing:border-box!important;
  font-size:15px!important;
  line-height:1.15!important;
}
.grs-home-expanded-content{
  min-width:0!important;
  width:100%!important;
  max-width:none!important;
  overflow:visible!important;
}
.grs-home-expanded-content > *{max-width:none!important;}
.grs-home-expanded-content .grs-home-old-menu-wrapper{
  display:block!important;
  grid-template-columns:1fr!important;
  width:100%!important;
  max-width:none!important;
  min-width:0!important;
  margin-left:0!important;
  margin-right:0!important;
}
.grs-home-expanded-content .grs-home-old-menu-wrapper:empty{display:none!important;}
.grs-home-expanded-content .grs-home-wide-media{
  width:100%!important;
  max-width:none!important;
  min-width:0!important;
  margin-left:0!important;
  margin-right:0!important;
  grid-column:1/-1!important;
}
.grs-home-expanded-content .grs-home-wide-media img{
  max-width:100%!important;
}
body.grs-home-menu-relocated .grs-home-expanded-content [style*="grid-template-columns"]{
  grid-template-columns:1fr!important;
}
body.grs-home-menu-relocated .grs-home-expanded-content [style*="width"]{
  max-width:100%!important;
}
@media(max-width:1050px){
  .grs-home-shell-with-left-menu .grs-home-layout-v1530{
    grid-template-columns:270px minmax(0,1fr)!important;
    gap:12px!important;
    padding-left:10px!important;
    padding-right:10px!important;
  }
  .grs-home-left-menu .grs-relocated-home-menu a,
  .grs-home-left-menu .grs-relocated-home-menu button{font-size:13px!important;}
}
@media(max-width:760px){
  .grs-home-shell-with-left-menu .grs-home-layout-v1530{
    display:block!important;
    padding:10px!important;
  }
  .grs-home-left-menu{margin-bottom:14px!important;}
}

/* GRS 1.5.31: correct homepage relocation — only the blue menu moves left */
.grs-home-left-menu > .grs-relocated-home-menu{
  display:block!important;
  width:100%!important;
  max-width:100%!important;
  height:auto!important;
  min-height:0!important;
  overflow:visible!important;
}
.grs-home-left-menu .grs-relocated-home-menu > *{
  max-width:100%!important;
  box-sizing:border-box!important;
}
.grs-home-expanded-content .grs-menu-vacated:empty{display:none!important;}
.grs-home-expanded-content .grs-home-slider-full-row{
  display:block!important;
  width:100%!important;
  max-width:none!important;
  grid-template-columns:minmax(0,1fr)!important;
}
.grs-home-expanded-content .grs-home-slider-full-row > *:not(.grs-menu-vacated){
  width:100%!important;
  max-width:none!important;
  min-width:0!important;
}
/* Undo the over-broad 1.5.30 rule that collapsed every inline grid on the homepage. */
body.grs-home-menu-relocated .grs-home-expanded-content [style*="grid-template-columns"]:not(.grs-home-slider-full-row){
  grid-template-columns:revert!important;
}


/* GRS 1.5.33: independent, internally scrolling homepage menu */
@media (min-width:701px){
  #grs-home-left-menu{
    position:sticky!important;
    top:12px!important;
    max-height:calc(100vh - 24px)!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    overscroll-behavior:contain!important;
    scrollbar-width:thin;
    align-self:start!important;
  }
  #grs-home-expanded-content{
    align-self:start!important;
    margin-top:0!important;
    padding-top:0!important;
  }
}
#grs-home-expanded-content .grs-empty-after-menu-move{display:none!important;}

/* GRS 1.5.35: permanent navigation remains visible on every internal page. */
@media (min-width:901px){
  .grs-template-body-frame{
    grid-template-columns:320px minmax(0,1fr)!important;
    align-items:start!important;
  }
  .grs-template-left-frame{
    width:320px!important;
    min-width:320px!important;
    min-height:0!important;
    height:var(--grs-persistent-menu-height,calc(100vh - 410px))!important;
    max-height:var(--grs-persistent-menu-height,calc(100vh - 410px))!important;
    position:sticky!important;
    top:var(--grs-persistent-menu-top,390px)!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    overscroll-behavior:contain!important;
    scrollbar-width:thin;
    border:0!important;
    background:#082f70!important;
    border-radius:0 18px 18px 0!important;
    z-index:20!important;
  }
  .grs-template-left-frame-inner{
    display:block!important;
    min-height:0!important;
    height:auto!important;
    padding:18px 16px!important;
  }
  .grs-template-main-content{
    min-width:0!important;
    padding:0 18px 30px!important;
  }
}
.grs-persistent-left-menu{display:flex;flex-direction:column;gap:14px;width:100%;}
.grs-persistent-left-menu-link{
  display:grid!important;
  grid-template-columns:38px minmax(0,1fr)!important;
  align-items:center!important;
  min-height:62px!important;
  width:100%!important;
  padding:10px 14px!important;
  border-radius:18px!important;
  background:#fff!important;
  color:#061a3d!important;
  text-decoration:none!important;
  font-family:Arial,Helvetica,sans-serif!important;
  font-size:15px!important;
  font-weight:900!important;
  line-height:1.15!important;
  box-sizing:border-box!important;
  box-shadow:0 2px 7px rgba(0,0,0,.10)!important;
}
.grs-persistent-left-menu-link:hover,.grs-persistent-left-menu-link:focus{transform:translateY(-1px);box-shadow:0 5px 13px rgba(0,0,0,.18)!important;}
.grs-persistent-left-menu-link.is-highlighted{background:#ff6a00!important;color:#fff!important;}
.grs-persistent-left-menu-icon{font-size:22px;text-align:center;line-height:1;}
.grs-persistent-left-menu-label{text-align:center;padding-right:28px;}
@media(max-width:900px){
  .grs-template-left-frame-inner{padding:12px!important;}
  .grs-persistent-left-menu{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;}
  .grs-persistent-left-menu-link{min-height:52px!important;font-size:12px!important;padding:8px!important;grid-template-columns:28px minmax(0,1fr)!important;}
  .grs-persistent-left-menu-label{padding-right:20px;}
}
@media(max-width:520px){.grs-persistent-left-menu{grid-template-columns:1fr;}}


/* GRS 1.5.36: hard-enforced persistent two-pane layout on all internal pages. */
@media (min-width:901px){
  html,body{height:100%!important;}
  body:not(.home) .grs-page-shell-with-left-frame{
    padding-bottom:0!important;
  }
  body:not(.home) .grs-page-shell-with-left-frame .grs-page-inner{
    width:100%!important;max-width:none!important;margin:0!important;padding:0!important;
  }
  body:not(.home) .grs-template-body-frame{
    display:grid!important;
    grid-template-columns:300px minmax(0,1fr)!important;
    gap:0!important;
    align-items:stretch!important;
    width:100%!important;
    min-height:calc(100vh - var(--grs-internal-top,390px))!important;
    margin:0!important;padding:0!important;
  }
  body:not(.home) .grs-template-left-frame{
    display:block!important;
    width:300px!important;min-width:300px!important;
    height:calc(100vh - var(--grs-internal-top,390px) - 8px)!important;
    max-height:calc(100vh - var(--grs-internal-top,390px) - 8px)!important;
    min-height:260px!important;
    position:sticky!important;
    top:var(--grs-internal-top,390px)!important;
    align-self:start!important;
    overflow-y:auto!important;overflow-x:hidden!important;
    overscroll-behavior:contain!important;
    scrollbar-width:thin!important;
    border:0!important;border-radius:0 18px 18px 0!important;
    background:#082f70!important;
    box-sizing:border-box!important;
    z-index:50!important;
  }
  body:not(.home) .grs-template-left-frame-inner{
    display:block!important;width:100%!important;min-height:0!important;height:auto!important;
    padding:16px!important;box-sizing:border-box!important;
  }
  body:not(.home) .grs-template-main-content{
    width:100%!important;min-width:0!important;margin:0!important;padding:0 18px 40px!important;
    box-sizing:border-box!important;overflow:visible!important;
  }
}

/* GRS 1.5.37: use the exact original homepage menu on every internal page. */
@media (min-width:901px){
  body:not(.home) .grs-exact-menu-layout{
    display:grid!important;
    grid-template-columns:300px minmax(0,1fr)!important;
    gap:18px!important;
    align-items:start!important;
    width:100%!important;
    padding:12px 16px 28px!important;
    box-sizing:border-box!important;
  }
  body:not(.home) .grs-exact-menu-layout .grs-template-left-frame{
    width:300px!important;
    min-width:300px!important;
    height:calc(100vh - 405px)!important;
    max-height:calc(100vh - 405px)!important;
    min-height:260px!important;
    position:sticky!important;
    top:12px!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    overscroll-behavior:contain!important;
    border:0!important;
    border-radius:0!important;
    background:transparent!important;
    padding:0!important;
  }
  body:not(.home) .grs-exact-menu-layout .grs-template-left-frame-inner{
    display:block!important;
    width:100%!important;
    min-height:0!important;
    padding:0!important;
    text-align:initial!important;
  }
  body:not(.home) .grs-exact-menu-layout .grs-template-main-content{
    min-width:0!important;
    width:100%!important;
    padding:0!important;
  }
}
.grs-original-menu-source{
  position:fixed!important;
  left:-100000px!important;
  top:0!important;
  width:1200px!important;
  height:1px!important;
  overflow:hidden!important;
  visibility:hidden!important;
  pointer-events:none!important;
}
.grs-original-menu-host{width:100%!important;}
.grs-original-menu-loading{padding:20px;text-align:center;font:700 13px Arial,sans-serif;color:#173b72;}
.grs-original-menu-host .grs-exact-original-menu{
  display:block!important;
  position:relative!important;
  inset:auto!important;
  transform:none!important;
  float:none!important;
  width:100%!important;
  min-width:0!important;
  max-width:100%!important;
  height:auto!important;
  max-height:none!important;
  margin:0!important;
  box-sizing:border-box!important;
}
.grs-original-menu-host .grs-exact-original-menu a,
.grs-original-menu-host .grs-exact-original-menu button{
  max-width:100%!important;
  box-sizing:border-box!important;
}
@media(max-width:900px){
  body:not(.home) .grs-exact-menu-layout{display:block!important;padding:10px!important;}
  body:not(.home) .grs-exact-menu-layout .grs-template-left-frame{
    width:100%!important;min-width:0!important;height:auto!important;max-height:none!important;
    position:relative!important;top:auto!important;overflow:visible!important;margin:0 0 12px!important;border:0!important;
  }
  body:not(.home) .grs-exact-menu-layout .grs-template-left-frame-inner{padding:0!important;}
}


/* GRS 1.5.39 — one permanent original left menu on every internal route.
   The outer blue rail always stretches to the full height of the viewed page.
   The actual menu is sticky and has its own independent scrollbar. */
@media (min-width: 901px) {
  body:not(.home) .grs-page-shell-with-left-frame .grs-page-inner,
  body:not(.home) .grs-woocommerce-inner {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  body:not(.home) .grs-universal-left-layout {
    display: grid !important;
    grid-template-columns: 300px minmax(0, 1fr) !important;
    align-items: stretch !important;
    gap: 18px !important;
    width: 100% !important;
    max-width: none !important;
    min-height: calc(100vh - 390px) !important;
    margin: 0 !important;
    padding: 0 16px 40px 0 !important;
    box-sizing: border-box !important;
  }

  body:not(.home) .grs-universal-left-layout > .grs-template-left-frame {
    display: block !important;
    position: relative !important;
    top: auto !important;
    align-self: stretch !important;
    width: 300px !important;
    min-width: 300px !important;
    max-width: 300px !important;
    height: auto !important;
    min-height: 100% !important;
    max-height: none !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: visible !important;
    border: 0 !important;
    border-radius: 0 18px 18px 0 !important;
    background: #082f70 !important;
    box-sizing: border-box !important;
    z-index: 40 !important;
  }

  body:not(.home) .grs-universal-left-layout > .grs-template-left-frame > .grs-template-left-frame-inner {
    position: sticky !important;
    top: 8px !important;
    display: block !important;
    width: 100% !important;
    height: calc(100vh - 16px) !important;
    max-height: calc(100vh - 16px) !important;
    min-height: 260px !important;
    margin: 0 !important;
    padding: 14px !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    overscroll-behavior: contain !important;
    scrollbar-width: thin !important;
    box-sizing: border-box !important;
    text-align: initial !important;
  }

  body.admin-bar:not(.home) .grs-universal-left-layout > .grs-template-left-frame > .grs-template-left-frame-inner {
    height: calc(100vh - 48px) !important;
    max-height: calc(100vh - 48px) !important;
  }

  body:not(.home) .grs-universal-left-layout > .grs-template-main-content {
    display: block !important;
    min-width: 0 !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: visible !important;
    box-sizing: border-box !important;
  }

  body:not(.home) .grs-original-menu-host,
  body:not(.home) .grs-original-menu-host .grs-exact-original-menu {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
  }
}

@media (max-width: 900px) {
  body:not(.home) .grs-universal-left-layout {
    display: block !important;
    width: 100% !important;
    padding: 10px !important;
  }
  body:not(.home) .grs-universal-left-layout > .grs-template-left-frame {
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    min-height: 0 !important;
    background: #082f70 !important;
    border-radius: 16px !important;
    margin: 0 0 12px !important;
  }
  body:not(.home) .grs-universal-left-layout > .grs-template-left-frame > .grs-template-left-frame-inner {
    position: relative !important;
    top: auto !important;
    width: 100% !important;
    height: auto !important;
    max-height: 52vh !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    overscroll-behavior: contain !important;
    padding: 12px !important;
  }
}


/* GRS 1.5.40 — true independent scrolling on every internal desktop page.
   The whole split layout is pinned below the fixed site navigation. The blue
   menu and the page content each receive their own scroll container. */
@media (min-width: 901px) {
  html.grs-independent-panels,
  html.grs-independent-panels body {
    height: 100% !important;
    overflow: hidden !important;
  }

  body:not(.home) .grs-universal-left-layout.grs-independent-layout-ready {
    position: fixed !important;
    top: var(--grs-independent-top, 390px) !important;
    right: 0 !important;
    bottom: 0 !important;
    left: 0 !important;
    width: 100vw !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    display: grid !important;
    grid-template-columns: 300px minmax(0, 1fr) !important;
    align-items: stretch !important;
    gap: 18px !important;
    margin: 0 !important;
    padding: 0 16px 0 0 !important;
    overflow: hidden !important;
    box-sizing: border-box !important;
    z-index: 20 !important;
  }

  body:not(.home) .grs-universal-left-layout.grs-independent-layout-ready > .grs-template-left-frame {
    position: relative !important;
    inset: auto !important;
    align-self: stretch !important;
    width: 300px !important;
    min-width: 300px !important;
    max-width: 300px !important;
    height: 100% !important;
    min-height: 100% !important;
    max-height: 100% !important;
    overflow: hidden !important;
    margin: 0 !important;
    padding: 0 !important;
    border-radius: 0 18px 0 0 !important;
    background: #082f70 !important;
  }

  body:not(.home) .grs-universal-left-layout.grs-independent-layout-ready > .grs-template-left-frame > .grs-template-left-frame-inner {
    position: relative !important;
    top: auto !important;
    width: 100% !important;
    height: 100% !important;
    min-height: 0 !important;
    max-height: 100% !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    overscroll-behavior: contain !important;
    -webkit-overflow-scrolling: touch !important;
    scrollbar-gutter: stable !important;
    padding: 14px !important;
    box-sizing: border-box !important;
  }

  body:not(.home) .grs-universal-left-layout.grs-independent-layout-ready > .grs-template-main-content {
    position: relative !important;
    width: 100% !important;
    min-width: 0 !important;
    height: 100% !important;
    min-height: 0 !important;
    max-height: 100% !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    overscroll-behavior: contain !important;
    -webkit-overflow-scrolling: touch !important;
    scrollbar-gutter: stable !important;
    margin: 0 !important;
    padding: 0 0 40px !important;
    box-sizing: border-box !important;
  }
}


/* GRS 1.5.42 — GoFundMe campaigns listing */
.grs-gfm-page{max-width:1180px;margin:0 auto;padding:28px 22px 60px;font-family:Arial,Helvetica,sans-serif;box-sizing:border-box}
.grs-gfm-hero{text-align:center;border:1px solid #d8e5ef;border-radius:24px;padding:30px 20px;margin-bottom:24px;background:linear-gradient(135deg,#f8fcff,#eef8f3);box-shadow:0 10px 28px rgba(5,55,105,.08)}
.grs-gfm-hero h1{margin:0 0 10px;color:#084e82;font-size:clamp(32px,5vw,54px);line-height:1.05}.grs-gfm-hero p{margin:0 auto;max-width:760px;font-size:18px;line-height:1.55;color:#24384a}
.grs-gfm-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.grs-gfm-card{display:flex;flex-direction:column;background:#fff;border:1px solid #dce7ef;border-radius:22px;overflow:hidden;box-shadow:0 8px 25px rgba(6,56,104,.11)}
.grs-gfm-card-media{aspect-ratio:16/10;background:#edf4f8;overflow:hidden}.grs-gfm-card-media img{width:100%;height:100%;object-fit:cover;display:block}.grs-gfm-card-body{display:flex;flex-direction:column;flex:1;padding:20px}.grs-gfm-card h2{font-size:23px;line-height:1.2;margin:0 0 10px;color:#062f67}.grs-gfm-card p{font-size:16px;line-height:1.5;margin:0 0 18px;color:#35495b}.grs-gfm-button{display:inline-flex;justify-content:center;align-items:center;margin-top:auto;padding:14px 18px;border-radius:999px;background:#02a95c;color:#fff!important;text-decoration:none!important;font-weight:800;text-transform:uppercase;letter-spacing:.3px;box-shadow:0 7px 16px rgba(2,169,92,.25)}.grs-gfm-empty{padding:40px;text-align:center;background:#fff;border:1px dashed #a8bfd0;border-radius:18px;font-size:18px}
@media(max-width:1000px){.grs-gfm-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:650px){.grs-gfm-grid{grid-template-columns:1fr}.grs-gfm-page{padding:18px 12px 40px}}

/* Current header is in normal document flow; neutralize legacy fixed-header offset. */
body .grs-page-shell { padding-top: 0 !important; }

/* GRS 1.5.47 final mobile navigation reset — intentionally last so it wins
   over legacy fixed-header offsets preserved above for desktop styling. */
@media (max-width: 900px) {
  body:not(.home) .grs-page-shell,
  body:not(.home) .grs-page-shell-with-left-frame,
  body:not(.home) .grs-page-shell-with-left-frame .grs-page-inner,
  body:not(.home) .grs-template-body-frame,
  body:not(.home) .grs-universal-left-layout {
    margin-top: 0 !important;
    padding-top: 0 !important;
  }
  body:not(.home) .grs-template-main-content {
    margin-top: 0 !important;
  }
}

/* GRS 1.5.50 — every linked page begins directly below the header.
   This overrides legacy page spacing without changing homepage styling. */
@media (min-width:901px){
  body:not(.home) .grs-universal-left-layout.grs-independent-layout-ready{
    top:var(--grs-independent-top, 0px)!important;
  }
}
@media (max-width:900px){
  html,body{scroll-padding-top:0!important;}
  body:not(.home) #primary,
  body:not(.home) .grs-page-shell,
  body:not(.home) .grs-page-shell-with-left-frame,
  body:not(.home) .grs-template-body-frame,
  body:not(.home) .grs-universal-left-layout{
    transform:none!important;
    top:auto!important;
    margin-top:0!important;
    padding-top:0!important;
  }
}

/* GRS 1.5.52 final override — keep this last so older mobile rules cannot
   reintroduce a tall menu or a nonzero starting position. */
@media (max-width:900px){
  body:not(.home) .grs-universal-left-layout > .grs-template-left-frame > .grs-template-left-frame-inner{
    height:min(52vh,360px)!important;
    max-height:min(52vh,360px)!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    scroll-behavior:auto!important;
  }
  body:not(.home) .grs-exact-original-menu{
    margin-top:0!important;
    transform:none!important;
  }
}

/* GRS 1.5.53 — linked pages use the exact same single, 4-button mobile menu
   panel as the homepage.  The frame itself never scrolls; only the blue menu
   list does.  This leaves desktop rules untouched. */
@media (max-width:900px){
  body:not(.home) .grs-universal-left-layout,
  body:not(.home) .grs-exact-menu-layout{
    display:block!important;
    width:100%!important;
    margin:0!important;
    padding:10px!important;
    transform:none!important;
    top:auto!important;
  }
  body:not(.home) .grs-universal-left-layout > .grs-template-left-frame,
  body:not(.home) .grs-exact-menu-layout > .grs-template-left-frame{
    width:100%!important;
    min-width:0!important;
    max-width:none!important;
    height:auto!important;
    max-height:none!important;
    margin:0 0 12px!important;
    padding:0!important;
    overflow:visible!important;
    background:transparent!important;
    border:0!important;
    border-radius:0!important;
  }
  body:not(.home) .grs-universal-left-layout > .grs-template-left-frame > .grs-template-left-frame-inner,
  body:not(.home) .grs-exact-menu-layout > .grs-template-left-frame > .grs-template-left-frame-inner{
    height:auto!important;
    max-height:none!important;
    margin:0!important;
    padding:0!important;
    overflow:visible!important;
  }
  body:not(.home) .grs-original-menu-host,
  body:not(.home) .grs-original-menu-host .grs-exact-original-menu{
    width:100%!important;
    margin:0!important;
  }
  body:not(.home) .grs-exact-original-menu{
    display:block!important;
    max-height:315px!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    padding:10px 18px 18px!important;
    scroll-behavior:smooth!important;
    -webkit-overflow-scrolling:touch!important;
    overscroll-behavior:contain!important;
  }
  body:not(.home) .grs-exact-original-menu > *{width:100%!important;max-width:100%!important;box-sizing:border-box!important;}
  body:not(.home) .grs-exact-original-menu a,
  body:not(.home) .grs-exact-original-menu button{
    font-size:18px!important;
    line-height:1.15!important;
    min-height:56px!important;
    padding:17px 14px!important;
  }
}

/* GRS 1.5.57 final mobile cascade: preserve the homepage frame on every
   linked page after all legacy internal-page rules have loaded. */
@media (max-width:700px){
  body:not(.home) #primary.grs-mobile-home-shell,
  body:not(.home) #primary.grs-mobile-home-shell .grs-page-inner,
  body:not(.home) #primary.grs-mobile-home-shell .grs-mobile-home-layout{
    display:block!important;width:100%!important;max-width:none!important;
    margin:0!important;padding:10px!important;box-sizing:border-box!important;
    transform:none!important;top:auto!important;
  }
  body:not(.home) #primary.grs-mobile-home-shell{padding:0!important;}
  body:not(.home) #primary.grs-mobile-home-shell .grs-template-left-frame,
  body:not(.home) #primary.grs-mobile-home-shell .grs-template-left-frame-inner{
    display:block!important;position:relative!important;top:auto!important;
    width:100%!important;min-width:0!important;max-width:none!important;
    height:auto!important;min-height:0!important;max-height:none!important;
    margin:0!important;padding:0!important;overflow:visible!important;
    background:transparent!important;border:0!important;border-radius:0!important;
  }
  body:not(.home) #primary.grs-mobile-home-shell .grs-template-left-frame{margin-bottom:14px!important;}
  body:not(.home) #primary.grs-mobile-home-shell .grs-exact-original-menu{
    display:block!important;width:100%!important;max-width:100%!important;
    max-height:315px!important;margin:0!important;padding:10px 18px 18px!important;
    overflow-y:auto!important;overflow-x:hidden!important;scroll-behavior:smooth!important;
    -webkit-overflow-scrolling:touch!important;overscroll-behavior:contain!important;
    box-sizing:border-box!important;
  }
  body:not(.home) #primary.grs-mobile-home-shell .grs-exact-original-menu > *{width:100%!important;max-width:100%!important;box-sizing:border-box!important;}
  body:not(.home) #primary.grs-mobile-home-shell .grs-exact-original-menu a,
  body:not(.home) #primary.grs-mobile-home-shell .grs-exact-original-menu button{font-size:18px!important;line-height:1.15!important;min-height:56px!important;padding:17px 14px!important;}
  body:not(.home) #primary.grs-mobile-home-shell .grs-template-main-content{display:block!important;width:100%!important;min-width:0!important;max-width:none!important;margin:0!important;padding:0!important;overflow:visible!important;box-sizing:border-box!important;}
}
/* GRS 1.5.63 — Donation cards: mobile-only single-row card layout. */
@media (max-width: 700px) {
  #grs-donation-box {
    padding: 16px !important;
    box-sizing: border-box !important;
    overflow: hidden !important;
  }

  #grs-donation-box > div[style*="display: grid"] {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 18px !important;
    width: 100% !important;
    max-width: 100% !important;
  }

  #grs-donation-box > div[style*="display: grid"] > article {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    min-height: 0 !important;
    grid-template-columns: minmax(0, 1fr) 88px !important;
    grid-template-rows: auto 1fr auto !important;
    column-gap: 12px !important;
    padding: 16px !important;
    box-sizing: border-box !important;
    overflow: hidden !important;
  }

  #grs-donation-box > div[style*="display: grid"] > article > h3 {
    grid-column: 1 !important;
    font-size: 20px !important;
    line-height: 1.12 !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
  }

  #grs-donation-box > div[style*="display: grid"] > article > p {
    grid-column: 1 !important;
    min-width: 0 !important;
    font-size: 15px !important;
    line-height: 1.42 !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
  }

  #grs-donation-box > div[style*="display: grid"] > article > p a {
    max-width: 100% !important;
    padding: 10px 14px !important;
    box-sizing: border-box !important;
    text-align: center !important;
    white-space: normal !important;
  }

  #grs-donation-box > div[style*="display: grid"] > article > div {
    grid-column: 2 !important;
    grid-row: 1 / span 3 !important;
    min-width: 0 !important;
    max-width: 88px !important;
    font-size: 12px !important;
    line-height: 1.2 !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
  }

  #grs-donation-box > div[style*="display: grid"] > article > div img {
    width: 82px !important;
    max-width: 82px !important;
    height: auto !important;
  }
}


/* GRS 1.6.05 — Align the original desktop side menu with the logo row on every page. */
@media (min-width: 1500px) {
  #primary { z-index: auto !important; }
  body.home #grs-home-left-menu {
    transform: translate(-18px, -130px) !important;
    z-index: 100001 !important;
  }
  body:not(.home) #grs-home-left-menu {
    transform: translateY(-140px) !important;
    z-index: 100001 !important;
  }
}


/* GRS 1.6.08 — Restored Cat Academy design (fallback for blocked academy asset). */
.grs-academy{--academy-navy:#06265b;--academy-blue:#0c4daf;--academy-orange:#ff6700;--academy-ink:#0b1f43;--academy-soft:#f2f6fc;width:100%;max-width:100%;overflow:hidden;border-radius:24px;background:var(--academy-soft);color:var(--academy-ink);font-family:Arial,Helvetica,sans-serif;box-shadow:0 12px 36px rgba(6,38,91,.12)}
.grs-academy *{box-sizing:border-box}
.grs-academy-hero{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(260px,.65fr);gap:38px;align-items:center;padding:52px clamp(28px,5vw,70px);color:#fff;background:linear-gradient(135deg,#031d48 0%,#0a3f91 68%,#1262c4 100%)}
.grs-academy-kicker{margin:0 0 12px;color:#ffb36f;font-size:14px;font-weight:900;letter-spacing:.14em;text-transform:uppercase}
.grs-academy-hero h1{margin:0 0 18px;color:#fff;font-size:clamp(38px,5vw,68px);line-height:.98;letter-spacing:-.04em}
.grs-academy-lead{max-width:780px;margin:0;color:#e9f1ff;font-size:19px;line-height:1.55}
.grs-academy-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:26px}
.grs-academy-actions a{display:inline-flex;align-items:center;justify-content:center;min-height:50px;padding:13px 22px;border:2px solid #fff;border-radius:999px;background:#fff;color:var(--academy-navy);font-weight:900;text-decoration:none;transition:.2s}
.grs-academy-actions a:hover{transform:translateY(-2px);box-shadow:0 10px 22px rgba(0,0,0,.2)}
.grs-academy-actions a.secondary{background:transparent;color:#fff}
.grs-academy-small{margin:18px 0 0;color:#d7e5ff;font-size:13px;line-height:1.5}
.grs-academy-crest{display:grid;place-items:center;align-content:center;justify-self:center;width:min(290px,100%);aspect-ratio:1;border:2px solid rgba(255,255,255,.48);border-radius:50%;background:rgba(255,255,255,.1);text-align:center;box-shadow:inset 0 0 0 12px rgba(255,255,255,.06)}
.grs-academy-crest span,.grs-academy-crest strong{display:block}.grs-academy-crest strong{font-size:30px;letter-spacing:.08em}.grs-academy-crest span:first-child{font-size:38px;font-weight:900}.grs-academy-crest span:last-child{max-width:180px;margin-top:8px;color:#dce9ff;font-size:13px}
.grs-academy-promise{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;padding:24px clamp(24px,4vw,54px);background:#fff}
.grs-academy-promise article{min-height:130px;padding:24px 20px;border:1px solid #dbe5f4;border-radius:18px;background:#f8fbff;text-align:center}
.grs-academy-promise strong{display:block;margin-bottom:7px;color:var(--academy-blue);font-size:34px;line-height:1}.grs-academy-promise article{font-size:14px;font-weight:700;line-height:1.35}
.grs-academy-how{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;padding:38px clamp(24px,4vw,54px);background:linear-gradient(180deg,#f5f8fd,#eaf1fb)}
.grs-academy-how article{position:relative;padding:28px;border-radius:20px;background:#fff;box-shadow:0 8px 24px rgba(15,53,105,.08)}
.grs-academy-how article>span,.grs-academy-how article>strong:first-child{display:inline-grid;place-items:center;width:44px;height:44px;margin-bottom:16px;border-radius:50%;background:var(--academy-orange);color:#fff;font-weight:900}
.grs-academy-how h2,.grs-academy-how h3{margin:0 0 9px;color:var(--academy-navy);font-size:22px}.grs-academy-how p{margin:0;color:#53627a;line-height:1.55}
.grs-academy-library{padding:46px clamp(24px,4vw,54px) 60px;background:#fff}
.grs-library-heading{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,440px);gap:28px;align-items:end;margin-bottom:22px}
.grs-library-heading h2{margin:0;color:var(--academy-navy);font-size:clamp(30px,4vw,48px);line-height:1.05}.grs-library-heading .grs-academy-kicker{color:var(--academy-orange)}
.grs-course-search{display:block;color:var(--academy-navy);font-size:13px;font-weight:900;text-transform:uppercase;letter-spacing:.08em}
.grs-course-search input{display:block;width:100%;height:52px;margin-top:8px;padding:0 17px;border:2px solid #ccd9eb;border-radius:12px;background:#fff;color:#152746;font:600 16px Arial,sans-serif;outline:none}.grs-course-search input:focus{border-color:var(--academy-blue);box-shadow:0 0 0 4px rgba(12,77,175,.12)}
.grs-category-tabs{display:flex;flex-wrap:wrap;gap:9px;margin:22px 0 12px}.grs-category-tabs button{padding:10px 14px;border:1px solid #cad7e8;border-radius:999px;background:#f3f7fc;color:#20395f;font-size:13px;font-weight:800;cursor:pointer}.grs-category-tabs button:hover,.grs-category-tabs button.active{border-color:var(--academy-blue);background:var(--academy-blue);color:#fff}
.grs-result-count{margin:16px 0 22px;color:#62718a;font-size:14px;font-weight:800}
.grs-course-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;align-items:stretch}
.grs-course-card{position:relative;display:flex;flex-direction:column;min-width:0;min-height:300px;padding:24px;border:1px solid #dce5f2;border-radius:20px;background:#fff;box-shadow:0 8px 24px rgba(12,51,104,.08);transition:transform .2s,box-shadow .2s,border-color .2s}.grs-course-card:hover{transform:translateY(-4px);border-color:#a9c6ee;box-shadow:0 16px 34px rgba(12,51,104,.14)}
.grs-course-card[hidden]{display:none!important}.grs-course-number{align-self:flex-start;padding:7px 10px;border-radius:8px;background:#e7effb;color:var(--academy-blue);font-size:13px;font-weight:900;letter-spacing:.1em}.grs-course-category{margin:18px 0 8px;color:var(--academy-orange);font-size:12px;font-weight:900;text-transform:uppercase;letter-spacing:.08em}.grs-course-card h3{margin:0 0 16px;color:var(--academy-navy);font-size:22px;line-height:1.2}
.grs-course-meta{display:flex;flex-wrap:wrap;gap:7px;margin:auto 0 18px}.grs-course-meta span{padding:6px 9px;border-radius:7px;background:#f0f4fa;color:#52647e;font-size:12px;font-weight:800}
.grs-download{display:flex;align-items:center;justify-content:center;min-height:46px;padding:11px 14px;border-radius:11px;background:var(--academy-orange);color:#fff!important;font-weight:900;text-decoration:none!important}.grs-download:hover{background:#e95700}
.grs-no-results{grid-column:1/-1;padding:34px;border:2px dashed #c5d3e5;border-radius:16px;text-align:center;color:#62718a}
@media(max-width:1100px){.grs-academy-hero{grid-template-columns:1fr}.grs-academy-crest{display:none}.grs-academy-promise{grid-template-columns:repeat(2,1fr)}.grs-course-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.grs-academy{border-radius:0}.grs-academy-hero{padding:34px 20px}.grs-academy-hero h1{font-size:40px}.grs-academy-lead{font-size:16px}.grs-academy-actions{display:grid}.grs-academy-actions a{width:100%}.grs-academy-promise,.grs-academy-how,.grs-library-heading,.grs-course-grid{grid-template-columns:1fr}.grs-academy-promise,.grs-academy-how{padding:24px 16px}.grs-academy-library{padding:34px 16px}.grs-course-card{min-height:0}}

/* GRS desktop frame restoration: full-width message strip, menu below it, logo and content to the right. */
@media (min-width:901px){
  body:not(.home) #grs-home-left-menu{
    transform:none!important;
  }
  body:not(.home) #grs-current-header{
    width:100%!important;
    margin-left:0!important;
  }
  body:not(.home) #grs-current-header .grs-current-header-bar{
    width:calc(100% - 300px)!important;
    margin-left:300px!important;
  }
  html.grs-independent-panels body:not(.home) .grs-universal-left-layout.grs-independent-layout-ready{
    top:var(--grs-menu-top,41px)!important;
    bottom:0!important;
    height:calc(100vh - var(--grs-menu-top,41px))!important;
    max-height:calc(100vh - var(--grs-menu-top,41px))!important;
    grid-template-columns:300px minmax(0,1fr)!important;
  }
  html.grs-independent-panels body:not(.home) .grs-universal-left-layout.grs-independent-layout-ready .grs-template-left-frame{
    position:relative!important;
    top:0!important;
    height:calc(100vh - var(--grs-independent-top,203px))!important;
    min-height:0!important;
    max-height:calc(100vh - var(--grs-independent-top,203px))!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    overscroll-behavior:contain!important;
    scrollbar-gutter:stable!important;
    scrollbar-width:auto!important;
    scrollbar-color:#9fb0c6 #0b3471!important;
    grid-column:1!important;
    grid-row:1!important;
    align-self:start!important;
  }
  html.grs-independent-panels body:not(.home) .grs-universal-left-layout.grs-independent-layout-ready .grs-template-left-frame-inner{
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
    overflow:visible!important;
  }
  body:not(.home) #grs-home-left-menu::-webkit-scrollbar{width:12px!important;}
  body:not(.home) #grs-home-left-menu::-webkit-scrollbar-track{background:#0b3471!important;}
  body:not(.home) #grs-home-left-menu::-webkit-scrollbar-thumb{background:#9fb0c6!important;border:3px solid #0b3471!important;border-radius:999px!important;}
  html.grs-independent-panels body:not(.home) .grs-universal-left-layout.grs-independent-layout-ready .grs-template-main-content{
    grid-column:2!important;
    grid-row:1!important;
    height:100%!important;
    max-height:100%!important;
    padding-top:var(--grs-main-offset,130px)!important;
    overflow:auto!important;
  }
}

/* Final shared desktop menu geometry: begin beside the logo on Home exactly
   as on linked pages, with one 16px button inset on every page. */
@media (min-width:901px){
  body.home #grs-home-left-menu{
    transform:translateY(-110px)!important;
    z-index:100001!important;
  }
  #grs-home-left-menu{
    background:#082f70!important;
    border-radius:0 18px 0 0!important;
    overflow:hidden!important;
  }
  #grs-home-left-menu .grs-relocated-home-menu,
  #grs-home-left-menu .grs-exact-original-menu{
    margin:0!important;
    padding:16px 0!important;
    background:transparent!important;
    border-radius:0!important;
    box-sizing:border-box!important;
  }
  #grs-home-left-menu .grs-relocated-home-menu a,
  #grs-home-left-menu .grs-relocated-home-menu button,
  #grs-home-left-menu .grs-exact-original-menu a,
  #grs-home-left-menu .grs-exact-original-menu button{
    width:calc(100% - 32px)!important;
    max-width:calc(100% - 32px)!important;
    margin:0 16px 12px!important;
    box-sizing:border-box!important;
  }
}

/* Keep every internal-page menu on the same rounded-top frame and fixed gap. */
@media (min-width:901px){
  body:not(.home) #grs-home-left-menu.grs-template-left-frame{
    border-radius:0 18px 0 0!important;
  }
  body:not(.home) .grs-universal-left-layout.grs-independent-layout-ready{
    gap:18px!important;
  }
}

/* Home and linked pages use the same desktop header, 300px menu column,
   18px gap, and top alignment.  Without this shared rule Home is rendered
   from a separate layout and visibly jumps after the first navigation. */
@media (min-width:901px){
  body.home #grs-current-header .grs-current-header-bar{
    width:calc(100% - 300px)!important;
    margin-left:300px!important;
  }
  body.home #primary.grs-home-shell-with-left-menu .grs-home-layout-v1530{
    grid-template-columns:300px minmax(0,1fr)!important;
    column-gap:18px!important;
    padding:0 16px 0 0!important;
  }
  body.home #grs-home-left-menu{
    width:300px!important;
    min-width:300px!important;
    max-width:300px!important;
    margin:0!important;
    transform:translateY(-110px)!important;
  }
  body.home #grs-home-left-menu .grs-relocated-home-menu{
    margin:0!important;
    padding:14px!important;
    border-radius:0 18px 0 0!important;
    background:#082f70!important;
    box-sizing:border-box!important;
  }
}

/* The linked-page menu has an extra scrolling wrapper. Give its controls the
   same visible width as the Home menu rather than allowing it to narrow them. */
@media (min-width:901px){
  #grs-home-left-menu .grs-exact-original-menu a,
  #grs-home-left-menu .grs-exact-original-menu button{
    width:262px!important;
    max-width:262px!important;
    margin:0 16px 12px!important;
    position:relative!important;
    left:-12px!important;
  }
}
