/* 
Theme Name: CermakTech Customized
Theme URI: https://cermak.tech/
Description: A theme customized for you by CermakTech.
Author: CermakTech
Author URI: https://cermak.tech/
Template: hello-elementor
Version: 1.0.1
Text Domain: cermaktech
License: GNU General Public License v3 or later.
License URI: https://www.gnu.org/licenses/gpl-3.0.html
Tags: flexible-header, custom-colors, custom-menu, custom-logo, editor-style, featured-images, rtl-language-support, threaded-comments, translation-ready
*/

/* === Migrated from Customizer Additional CSS (post 93) on 2026-05-26 === */

/* Hearthstone — Direction C "Sunday Linen" (warm/homey rework) */

/* Google Fonts: DM Serif Display (headings), Parisienne (script accent), Nunito (body) */
@import url('https://fonts.googleapis.com/css2?family=DM+Serif+Display:ital@0;1&family=Parisienne&family=Nunito:wght@400;500;600;700&display=swap');

:root {
  --hrh-slate:        #4A6B8A;
  --hrh-slate-deep:   #34516E;
  --hrh-slate-ink:    #14202F;   /* hero overlays */
  --hrh-blush:        #C46A6A;
  --hrh-blush-deep:   #A85050;
  --hrh-blush-darker: #8E4242;
  --hrh-honey:        #D4A65A;
  --hrh-honey-deep:   #B8893E;
  --hrh-linen:        #F5EFE6;
  --hrh-card:         #FFFFFF;
  --hrh-ink:          #2D2A26;
  --hrh-muted:        #6F6A60;
  --hrh-line:         #E2D7C5;

  /* Backwards-compatible aliases for any legacy selector that still references --hrh-navy/red.
     Newer rules below use the slate/blush names. */
  --hrh-navy:         var(--hrh-slate);
  --hrh-navy-deep:    var(--hrh-slate-deep);
  --hrh-red:          var(--hrh-blush-deep);
  --hrh-cream:        var(--hrh-linen);
}

/* ===== Document defaults ===== */
html { scroll-behavior: smooth; }
body {
  color: var(--hrh-ink);
  background: var(--hrh-linen);
  font-family: 'Nunito', system-ui, -apple-system, Segoe UI, Roboto, sans-serif;
}
img { max-width: 100%; }
::selection { background: var(--hrh-honey); color: var(--hrh-slate-ink); }

/* ===== Header ===== */
.site-header {
  background: #ffffff;
  border-bottom: 1px solid var(--hrh-line);
  box-shadow: 0 1px 4px rgba(45, 42, 38, 0.06);
}
.site-header .header-inner {
  display: flex;
  align-items: center;
  gap: 32px;
  max-width: 1280px;
  margin: 0 auto;
  padding: 14px 24px;
}
.site-header .site-branding { flex: 0 0 auto; }
.site-header .custom-logo,
.site-header .custom-logo-link img {
  max-height: 60px !important;
  width: auto !important;
  height: auto !important;
  display: block;
}
.site-navigation { flex: 1 1 auto; }
.site-navigation .menu {
  display: flex;
  flex-wrap: wrap;
  list-style: none;
  margin: 0;
  padding: 0;
  gap: 4px;
  justify-content: flex-end;
}
.site-navigation .menu-item a {
  display: inline-block;
  padding: 9px 16px;
  color: var(--hrh-slate);
  text-decoration: none;
  font-weight: 600;
  font-size: 0.9375rem;
  border-radius: 999px;
  border: 2px solid transparent;
  transition: background-color .15s, color .15s;
}
.site-navigation .menu-item a:hover,
.site-navigation .menu-item a:focus {
  background: var(--hrh-linen);
  color: var(--hrh-blush-deep);
}
.site-navigation .menu-item.current-menu-item a {
  color: var(--hrh-blush-deep);
}
.site-navigation .menu-item.current-menu-item a {
  background: rgba(168, 80, 80, 0.08);
}

.site-navigation-toggle-holder { display: none; }
@media (max-width: 820px) {
  .site-navigation { display: none; }
  .site-navigation-toggle-holder { display: block; }
  .site-navigation-toggle {
    background: transparent;
    border: 2px solid var(--hrh-slate);
    border-radius: 0.5rem;
    padding: 8px 12px;
    color: var(--hrh-slate);
    cursor: pointer;
  }
}

/* ===== Footer ===== */
.site-footer {
  background: var(--hrh-slate-deep);
  color: rgba(255,255,255,0.92);
  padding: 48px 24px 28px;
  margin-top: 0;
}
.site-footer * { color: rgba(255,255,255,0.92); }
.site-footer .footer-inner {
  max-width: 1280px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 18px;
  text-align: center;
}
.site-footer .custom-logo,
.site-footer .custom-logo-link img {
  max-height: 60px !important;
  width: auto !important;
  height: auto !important;
  filter: brightness(0) invert(1); /* white-out the logo on slate */
}
.site-footer .menu {
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  gap: 28px;
  padding: 0;
  margin: 0;
  justify-content: center;
}
.site-footer a {
  color: #ffffff !important;
  text-decoration: underline;
  text-underline-offset: 3px;
  text-decoration-color: rgba(212, 166, 90, 0.55);
}
.site-footer a:hover,
.site-footer a:focus { color: var(--hrh-honey) !important; text-decoration-color: var(--hrh-honey); }
.site-footer .menu a { font-size: 0.9375rem; font-weight: 600; text-decoration: none; }
.site-footer .menu a:hover { color: var(--hrh-honey) !important; }
.site-footer .copyright,
.site-footer .footer-inner .copyright {
  color: rgba(255,255,255,0.72) !important;
  font-size: 0.8125rem;
  margin-top: 12px;
  text-align: center !important;
  border-top: 1px solid rgba(255,255,255,0.18);
  padding-top: 16px;
  width: 100%;
  line-height: 1.7;
  display: block !important;
  justify-content: center !important;
}
.site-footer .copyright p { margin: 0; text-align: center; }
.site-footer .copyright a { color: #ffffff !important; }

/* Hide WP page title; we render custom heros */
.page-header,
.entry-header,
.entry-title { display: none !important; }

/* ===== HERO — Home (full-bleed photo + calibrated slate overlay) ===== */
.elementor-element-fd40c11 {
  background-image:
    linear-gradient(100deg,
      rgba(20, 32, 48, 0.85) 0%,
      rgba(20, 32, 48, 0.75) 32%,
      rgba(20, 32, 48, 0.55) 58%,
      rgba(20, 32, 48, 0.22) 82%,
      rgba(20, 32, 48, 0)    100%),
    linear-gradient(180deg,
      rgba(20, 32, 48, 0.18) 0%,
      rgba(20, 32, 48, 0.05) 60%,
      rgba(20, 32, 48, 0.28) 100%),
    url('/wp-content/uploads/2026/05/upload-hrh-outside.jpg') !important;
  background-size: cover !important;
  background-position: center 65% !important;
  background-repeat: no-repeat !important;
  min-height: 78vh !important;
  position: relative;
  align-items: center !important;
  justify-content: flex-start !important;
}
.elementor-element-fd40c11 > .e-con-inner,
.elementor-element-fd40c11 > .e-flexbox-inner {
  align-items: flex-start !important;
  text-align: left !important;
  max-width: 680px;
  margin-left: clamp(24px, 6vw, 96px) !important;
  margin-right: auto;
}
.elementor-element-fd40c11,
.elementor-element-fd40c11 * { color: #ffffff; }
.elementor-element-fd40c11 h1 {
  font-family: 'DM Serif Display', Georgia, serif;
  font-size: clamp(2.75rem, 5vw + 1rem, 4.5rem);
  text-shadow: 0 2px 18px rgba(0,0,0,0.55);
  max-width: 18ch;
  text-align: left;
  font-weight: 400;
  line-height: 1.05;
  margin: 0 0 1rem;
}
/* Script accent overlay on the Home hero — uses ::before via CSS */
.elementor-element-fd40c11 h1::before {
  content: 'Welcome to';
  display: block;
  font-family: 'Parisienne', cursive;
  font-weight: 400;
  font-size: 1.2em;
  color: var(--hrh-honey);
  line-height: 1;
  margin-bottom: 0.1em;
  text-shadow: 0 2px 24px rgba(0,0,0,0.6);
  letter-spacing: -0.005em;
}
/* Hide the original H1 first two words by adding visually a 'where' break — actually let CSS provide just the prefix */
.elementor-element-fd40c11 p {
  font-family: 'Nunito', system-ui, sans-serif;
  font-size: clamp(1.0625rem, 0.5vw + 1rem, 1.25rem);
  max-width: 56ch;
  text-align: left;
  color: #ffffff;
  font-weight: 400;
  line-height: 1.65;
  margin: 0 0 1.25rem;
  text-shadow: 0 1px 2px rgba(0,0,0,0.35);
}
#hero-cta { margin-top: 16px; justify-content: flex-start !important; }
#hero-cta a.e-button-base {
  display: inline-flex;
  align-items: center;
  gap: 10px;
}
#hero-cta a.e-button-base:nth-child(1)::before {
  content: '';
  width: 18px; height: 18px; flex: 0 0 18px;
  background-image: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='18' rx='2'/%3E%3Cline x1='16' y1='2' x2='16' y2='6'/%3E%3Cline x1='8' y1='2' x2='8' y2='6'/%3E%3Cline x1='3' y1='10' x2='21' y2='10'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-size: contain;
}
#hero-cta a.e-button-base:nth-child(2) {
  background-color: transparent !important;
  color: #ffffff !important;
  border-color: rgba(255,255,255,0.72) !important;
  box-shadow: none;
}
#hero-cta a.e-button-base:nth-child(2)::before {
  content: '';
  width: 18px; height: 18px; flex: 0 0 18px;
  background-image: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72c.13.96.37 1.9.7 2.81a2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45c.91.33 1.85.57 2.81.7A2 2 0 0 1 22 16.92z'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-size: contain;
}
#hero-cta a.e-button-base:nth-child(2):hover,
#hero-cta a.e-button-base:nth-child(2):focus {
  background-color: var(--hrh-honey) !important;
  border-color: var(--hrh-honey) !important;
  color: var(--hrh-slate-ink) !important;
}

/* ===== Per-page heros (#page-hero) ===== */
.elementor-element-783f6c3,
.elementor-element-783f6c3 *,
#page-hero,
#page-hero * { color: #ffffff; }
#page-hero {
  min-height: 440px !important;
  padding: 72px 32px !important;
  border-bottom: 4px solid var(--hrh-honey);
  background-color: var(--hrh-slate) !important;
  background-size: cover !important;
  background-position: center !important;
  background-repeat: no-repeat !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: center !important;
  align-items: center !important;
  gap: 6px !important;
  position: relative;
}
#page-hero h1 {
  font-family: 'DM Serif Display', Georgia, serif;
  font-size: clamp(2.25rem, 4.4vw + 1rem, 3.75rem);
  text-align: center;
  font-weight: 400;
  text-shadow: 0 2px 18px rgba(0,0,0,0.55), 0 1px 2px rgba(0,0,0,0.3);
  letter-spacing: -0.01em;
  margin: 0 !important;
  position: relative;
  padding-top: 0.65em;
}
/* Parisienne script accent base style — content is set per-page below */
#page-hero h1::before {
  display: block;
  font-family: 'Parisienne', cursive;
  font-size: 0.42em;
  color: var(--hrh-honey);
  line-height: 1;
  margin-bottom: 0.15em;
  font-weight: 400;
  text-shadow: 0 2px 12px rgba(0,0,0,0.55);
  letter-spacing: 0;
  white-space: normal;
}
#page-hero p {
  font-family: 'Nunito', system-ui, sans-serif;
  text-align: center;
  color: #ffffff;
  max-width: 56ch;
  margin: 16px auto 0;
  text-shadow: 0 1px 4px rgba(0,0,0,0.4);
  font-size: 1.0625rem;
  line-height: 1.6;
}
/* Per-page script accents — each inner hero gets a unique handwritten eyebrow.
   Selector combines hero ID + element class on same element for specificity. */
#page-hero.elementor-element-c77e9c7 h1::before { content: 'Our story'; }
#page-hero.elementor-element-eb14a16 h1::before { content: 'Everything you need'; }
#page-hero.elementor-element-c317972 h1::before { content: 'Right at home'; }
#page-hero.elementor-element-ad4e3af h1::before { content: 'Welcome home'; }
#page-hero.elementor-element-060e330 h1::before { content: 'Join our team'; }
#page-hero.elementor-element-71a8605 h1::before { content: 'Come visit'; }

/* Per-page hero photos — all use the same darker slate overlay */
.elementor-element-c77e9c7,
.elementor-element-eb14a16,
.elementor-element-c317972,
.elementor-element-ad4e3af,
.elementor-element-060e330,
.elementor-element-71a8605 {
  background-size: cover !important;
  background-position: center !important;
  background-repeat: no-repeat !important;
}
/* Vignette + soft center spotlight overlay: dark edges, vivid center photo,
   still WCAG AA for centered white text. Same recipe for every inner hero. */
.elementor-element-c77e9c7,  /* About */
.elementor-element-eb14a16,  /* Services & Amenities */
.elementor-element-c317972,  /* In-Home Care */
.elementor-element-ad4e3af,  /* Living Here */
.elementor-element-060e330,  /* Employment */
.elementor-element-71a8605 { /* Contact */
  background-blend-mode: normal !important;
}
.elementor-element-c77e9c7 {
  background-image:
    radial-gradient(ellipse 65% 80% at center, rgba(20,32,48,0.78) 0%, rgba(20,32,48,0.55) 65%, rgba(20,32,48,0.30) 100%),
    url('/wp-content/uploads/2026/05/upload-hrh-outside.jpg') !important;
  background-position: center 55% !important;
}
.elementor-element-eb14a16 {
  background-image:
    radial-gradient(ellipse 65% 80% at center, rgba(20,32,48,0.78) 0%, rgba(20,32,48,0.55) 65%, rgba(20,32,48,0.30) 100%),
    url('/wp-content/uploads/2026/05/upload-patio.jpg') !important;
}
.elementor-element-c317972 {
  background-image:
    radial-gradient(ellipse 65% 80% at center, rgba(20,32,48,0.78) 0%, rgba(20,32,48,0.55) 65%, rgba(20,32,48,0.30) 100%),
    url('/wp-content/uploads/2026/04/front-porch.png') !important;
}
.elementor-element-ad4e3af {
  background-image:
    radial-gradient(ellipse 65% 80% at center, rgba(20,32,48,0.78) 0%, rgba(20,32,48,0.55) 65%, rgba(20,32,48,0.30) 100%),
    url('/wp-content/uploads/2026/05/upload-patio-2.jpg') !important;
}
.elementor-element-060e330 {
  background-image:
    radial-gradient(ellipse 65% 80% at center, rgba(20,32,48,0.80) 0%, rgba(20,32,48,0.58) 65%, rgba(20,32,48,0.32) 100%),
    url('/wp-content/uploads/2026/05/upload-outside.jpg') !important;
}
.elementor-element-71a8605 {
  background-image:
    radial-gradient(ellipse 65% 80% at center, rgba(20,32,48,0.75) 0%, rgba(20,32,48,0.52) 65%, rgba(20,32,48,0.28) 100%),
    url('/wp-content/uploads/2026/04/hearthstone-sign-1024x714.jpg') !important;
  background-position: center 30% !important;
}
/* Privacy + Accessibility heros: subtle radial pattern on slate */
.elementor-element-962685a,
.elementor-element-85e8577 {
  background:
    radial-gradient(ellipse at 20% 30%, rgba(255,255,255,0.08), transparent 50%),
    radial-gradient(ellipse at 80% 70%, rgba(212,166,90,0.18), transparent 60%),
    var(--hrh-slate) !important;
}

/* Home contact band: radial pattern + slate */
.elementor-element-783f6c3 {
  background:
    radial-gradient(ellipse at center, rgba(212,166,90,0.16), transparent 65%),
    var(--hrh-slate) !important;
}

/* ===== STATS STRIP (#hrh-stats) ===== */
#hrh-stats {
  background: #ffffff;
  padding: 48px 24px !important;
  border-bottom: 1px solid var(--hrh-line);
  display: grid !important;
  grid-template-columns: repeat(4, 1fr) !important;
  gap: 24px !important;
  max-width: 1100px;
  margin: 0 auto !important;
  flex-direction: row !important;
  align-items: center !important;
}
#hrh-stats > * {
  transition: transform .15s ease;
  text-align: center;
  min-width: 0;
  padding: 6px 4px;
  border-right: 1px solid var(--hrh-line);
}
#hrh-stats > *:last-child { border-right: 0; }
#hrh-stats > *:hover { transform: translateY(-2px); }
#hrh-stats h2,
#hrh-stats h3 {
  font-family: 'DM Serif Display', Georgia, serif;
  font-size: clamp(2rem, 2.8vw + 0.5rem, 3rem);
  color: var(--hrh-blush-deep);
  margin: 0;
  text-align: center;
  line-height: 1;
  font-weight: 400;
}
#hrh-stats p {
  font-family: 'Nunito', system-ui, sans-serif;
  text-align: center;
  margin: 8px 0 0;
  font-size: 0.8125rem;
  color: var(--hrh-slate-deep);
  letter-spacing: 0.18em;
  text-transform: uppercase;
  font-weight: 700;
}
@media (max-width: 720px) {
  #hrh-stats {
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 32px 16px !important;
    padding: 32px 16px !important;
  }
  #hrh-stats > * { border-right: 0; }
  #hrh-stats > *:nth-child(odd) { border-right: 1px solid var(--hrh-line); }
}
@media (max-width: 380px) {
  #hrh-stats { grid-template-columns: 1fr !important; }
  #hrh-stats > * { border-right: 0 !important; }
}

/* ===== Welcome row ===== */
.elementor-element-7d672fa {
  max-width: 1200px;
  margin: 0 auto !important;
  align-items: center !important;
  padding: 32px 24px;
}
.elementor-element-7d672fa > img,
.elementor-element-7d672fa > .e-image-base {
  max-width: 540px !important;
  width: 100% !important;
  height: auto !important;
  border-radius: 0.75rem;
  box-shadow: 0 10px 32px rgba(45, 42, 38, 0.14);
  flex: 1 1 0 !important;
}
.elementor-element-cc80b26 { flex: 1 1 0 !important; max-width: 560px; }
.elementor-element-cc80b26 h2 {
  font-family: 'DM Serif Display', Georgia, serif;
  position: relative;
  padding-top: 18px;
  color: var(--hrh-slate-deep);
}
.elementor-element-cc80b26 h2::before {
  content: 'Welcome';
  display: block;
  font-family: 'Parisienne', cursive;
  font-size: 1.1em;
  color: var(--hrh-honey-deep);
  line-height: 0.85;
  margin-bottom: -0.05em;
  letter-spacing: -0.01em;
  position: static;
  width: auto;
  height: auto;
  background: none;
  border-radius: 0;
}

/* ===== Service cards (Home — "How We Care") ===== */
.elementor-element-45c0136,
.elementor-element-abfb1de,
.elementor-element-e017f19 {
  border: 1px solid var(--hrh-line);
  border-top: 4px solid var(--hrh-blush-deep);
  border-radius: 0.75rem;
  box-shadow: 0 2px 14px rgba(45, 42, 38, 0.06);
  overflow: hidden;
  padding: 0 !important;
  background: #ffffff;
  transition: transform .2s ease, box-shadow .2s ease;
}
.elementor-element-45c0136:hover,
.elementor-element-abfb1de:hover,
.elementor-element-e017f19:hover {
  transform: translateY(-4px);
  box-shadow: 0 14px 36px rgba(74, 107, 138, 0.18);
}
.elementor-element-45c0136 > .e-image-base,
.elementor-element-abfb1de > .e-image-base,
.elementor-element-e017f19 > .e-image-base,
.elementor-element-45c0136 > img,
.elementor-element-abfb1de > img,
.elementor-element-e017f19 > img {
  width: 100% !important;
  height: 210px !important;
  object-fit: cover !important;
  display: block !important;
  margin: 0 !important;
  border-radius: 0 !important;
}
.elementor-element-45c0136 > h3,
.elementor-element-abfb1de > h3,
.elementor-element-e017f19 > h3,
.elementor-element-45c0136 > p,
.elementor-element-abfb1de > p,
.elementor-element-e017f19 > p,
.elementor-element-45c0136 > a,
.elementor-element-abfb1de > a,
.elementor-element-e017f19 > a {
  margin-left: 32px !important;
  margin-right: 32px !important;
}
.elementor-element-45c0136 > h3,
.elementor-element-abfb1de > h3,
.elementor-element-e017f19 > h3 {
  margin-top: 26px;
  margin-bottom: 8px;
  font-family: 'DM Serif Display', Georgia, serif;
  color: var(--hrh-slate-deep);
}
.elementor-element-45c0136 > p,
.elementor-element-abfb1de > p,
.elementor-element-e017f19 > p { margin-bottom: 18px; max-width: none; }
.elementor-element-45c0136 > a:last-child,
.elementor-element-abfb1de > a:last-child,
.elementor-element-e017f19 > a:last-child { margin-bottom: 32px; }

/* ===== "Inside Hearthstone" gallery (#hrh-gallery) ===== */
#hrh-gallery {
  background: var(--hrh-linen);
  padding: 80px 24px !important;
}
#hrh-gallery > h2 {
  font-family: 'DM Serif Display', Georgia, serif;
  text-align: center;
  color: var(--hrh-slate-deep);
  margin-bottom: 12px;
  position: relative;
}
#hrh-gallery > h2::before {
  content: 'Step inside';
  display: block;
  font-family: 'Parisienne', cursive;
  font-size: 0.55em;
  color: var(--hrh-honey-deep);
  line-height: 1;
  margin-bottom: 0.1em;
}
#hrh-gallery > p {
  text-align: center;
  margin: 0 auto 36px;
  color: var(--hrh-ink);
  max-width: 60ch;
}
#hrh-gallery-grid {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 18px !important;
  max-width: 1100px !important;
  margin: 0 auto !important;
  flex-direction: row !important;
  flex-wrap: wrap !important;
}
#hrh-gallery-grid img {
  width: 100% !important;
  height: 240px !important;
  object-fit: cover !important;
  border-radius: 0.5rem !important;
  box-shadow: 0 4px 14px rgba(45, 42, 38, 0.10);
  margin: 0 !important;
  transition: transform .25s ease, box-shadow .25s ease;
}
#hrh-gallery-grid img:hover {
  transform: scale(1.02);
  box-shadow: 0 10px 28px rgba(45, 42, 38, 0.18);
}
@media (max-width: 820px) {
  #hrh-gallery-grid { grid-template-columns: repeat(2, 1fr) !important; }
}
@media (max-width: 480px) {
  #hrh-gallery-grid { grid-template-columns: 1fr !important; }
  #hrh-gallery-grid img { height: 200px !important; }
}

/* ===== Inner-page content card grid =====
   Softer "homey" treatment: no hard borders, no left blush rule,
   no square honey icon badge. Circular badge, large radius,
   warm linen wash for hover, generous padding. */
[id^="hrh-content-grid-"] {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 28px !important;
  flex-direction: row !important;
  flex-wrap: wrap !important;
  width: 100%;
}
[id^="hrh-content-grid-"] > * {
  background: #ffffff !important;
  border: 0 !important;
  border-radius: 1.25rem !important;
  padding: 28px 28px 28px 92px !important;
  box-shadow: 0 2px 14px rgba(45, 42, 38, 0.06), 0 1px 3px rgba(45, 42, 38, 0.04);
  transition: transform .2s ease, box-shadow .2s ease, background-color .2s ease;
  position: relative;
  min-width: 0;
}
[id^="hrh-content-grid-"] > *::before {
  content: '';
  position: absolute;
  top: 26px;
  left: 24px;
  width: 52px;
  height: 52px;
  border-radius: 50%;
  background-color: rgba(212, 166, 90, 0.22);
  background-repeat: no-repeat;
  background-position: center;
  background-size: 52% 52%;
  pointer-events: none;
  box-shadow: inset 0 0 0 1px rgba(212, 166, 90, 0.35);
}

/* === Per-card icons (stroke = slate-deep #34516E url-encoded = %2334516E) === */

/* About (post 31): each year-card gets a calendar icon */
#hrh-content-grid-31 > *::before {
  background-image: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2334516E' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='18' rx='2'/%3E%3Cline x1='16' y1='2' x2='16' y2='6'/%3E%3Cline x1='8' y1='2' x2='8' y2='6'/%3E%3Cline x1='3' y1='10' x2='21' y2='10'/%3E%3C/svg%3E");
  background-position: center;
  background-size: 60% 60%, auto;
  background-repeat: no-repeat;
}

/* Services & Amenities (post 33) */
#hrh-content-grid-33 > *:nth-child(1)::before { background-image: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2334516E' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 4v16'/%3E%3Cpath d='M2 8h18a2 2 0 0 1 2 2v10'/%3E%3Cline x1='2' y1='17' x2='22' y2='17'/%3E%3Cpath d='M6 8v9'/%3E%3Cpath d='M6 13h6a2 2 0 0 1 2 2'/%3E%3C/svg%3E"); }
#hrh-content-grid-33 > *:nth-child(2)::before { background-image: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2334516E' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z'/%3E%3Cpolyline points='9 12 11 14 15 10'/%3E%3C/svg%3E"); }
#hrh-content-grid-33 > *:nth-child(3)::before { background-image: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2334516E' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 2v7c0 1.1.9 2 2 2h4a2 2 0 0 0 2-2V2'/%3E%3Cline x1='7' y1='2' x2='7' y2='22'/%3E%3Cpath d='M21 15V2a5 5 0 0 0-5 5v6c0 1.1.9 2 2 2h3z'/%3E%3Cline x1='17' y1='15' x2='17' y2='22'/%3E%3C/svg%3E"); }
#hrh-content-grid-33 > *:nth-child(4)::before { background-image: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2334516E' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m2 22 4-4'/%3E%3Cpath d='m13 21 2-2 5-5 1-3-3 1-5 5-2 2-3-1z'/%3E%3Cpath d='m13.5 13.5 6.5-6.5'/%3E%3C/svg%3E"); }
#hrh-content-grid-33 > *:nth-child(5)::before { background-image: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2334516E' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2'/%3E%3Ccircle cx='9' cy='7' r='4'/%3E%3Cpath d='M22 21v-2a4 4 0 0 0-3-3.87'/%3E%3Cpath d='M16 3.13a4 4 0 0 1 0 7.75'/%3E%3C/svg%3E"); }
#hrh-content-grid-33 > *:nth-child(6)::before { background-image: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2334516E' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 16H9m10 0h3v-3.15a1 1 0 0 0-.84-.99L16 11l-2.7-3.6a1 1 0 0 0-.8-.4H5.24a2 2 0 0 0-1.8 1.1l-.8 1.63A6 6 0 0 0 2 12.42V16h2'/%3E%3Ccircle cx='6.5' cy='16.5' r='2.5'/%3E%3Ccircle cx='16.5' cy='16.5' r='2.5'/%3E%3C/svg%3E"); }
#hrh-content-grid-33 > *:nth-child(7)::before { background-image: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2334516E' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M11 2v2'/%3E%3Cpath d='M5 2v2'/%3E%3Cpath d='M5 3H4a2 2 0 0 0-2 2v4a6 6 0 0 0 12 0V5a2 2 0 0 0-2-2h-1'/%3E%3Cpath d='M8 15a6 6 0 0 0 12 0v-3'/%3E%3Ccircle cx='20' cy='10' r='2'/%3E%3C/svg%3E"); }
#hrh-content-grid-33 > *:nth-child(8)::before { background-image: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2334516E' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M19 14c1.49-1.46 3-3.21 3-5.5A5.5 5.5 0 0 0 16.5 3c-1.76 0-3 .5-4.5 2-1.5-1.5-2.74-2-4.5-2A5.5 5.5 0 0 0 2 8.5c0 2.29 1.51 4.04 3 5.5l7 7Z'/%3E%3C/svg%3E"); }

/* In-Home Care (post 35) */
#hrh-content-grid-35 > *:nth-child(1)::before { background-image: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2334516E' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2'/%3E%3Ccircle cx='9' cy='7' r='4'/%3E%3Cpolyline points='16 11 18 13 22 9'/%3E%3C/svg%3E"); }
#hrh-content-grid-35 > *:nth-child(2)::before { background-image: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2334516E' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M19 14c1.49-1.46 3-3.21 3-5.5A5.5 5.5 0 0 0 16.5 3c-1.76 0-3 .5-4.5 2-1.5-1.5-2.74-2-4.5-2A5.5 5.5 0 0 0 2 8.5c0 2.29 1.51 4.04 3 5.5l7 7Z'/%3E%3C/svg%3E"); }
#hrh-content-grid-35 > *:nth-child(3)::before { background-image: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2334516E' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 2v7c0 1.1.9 2 2 2h4a2 2 0 0 0 2-2V2'/%3E%3Cline x1='7' y1='2' x2='7' y2='22'/%3E%3Cpath d='M21 15V2a5 5 0 0 0-5 5v6c0 1.1.9 2 2 2h3z'/%3E%3Cline x1='17' y1='15' x2='17' y2='22'/%3E%3C/svg%3E"); }
#hrh-content-grid-35 > *:nth-child(4)::before { background-image: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2334516E' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M8 14s1.5 2 4 2 4-2 4-2'/%3E%3Cline x1='9' y1='9' x2='9.01' y2='9'/%3E%3Cline x1='15' y1='9' x2='15.01' y2='9'/%3E%3C/svg%3E"); }
#hrh-content-grid-35 > *:nth-child(5)::before { background-image: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2334516E' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m3 9 9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z'/%3E%3Cpolyline points='9 22 9 12 15 12 15 22'/%3E%3C/svg%3E"); }
#hrh-content-grid-35 > *:nth-child(6)::before { background-image: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2334516E' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M11 2v2'/%3E%3Cpath d='M5 2v2'/%3E%3Cpath d='M5 3H4a2 2 0 0 0-2 2v4a6 6 0 0 0 12 0V5a2 2 0 0 0-2-2h-1'/%3E%3Cpath d='M8 15a6 6 0 0 0 12 0v-3'/%3E%3Ccircle cx='20' cy='10' r='2'/%3E%3C/svg%3E"); }

/* Living Here (post 37) */
#hrh-content-grid-37 > *:nth-child(1)::before { background-image: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2334516E' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='8' y='2' width='8' height='4' rx='1' ry='1'/%3E%3Cpath d='M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2'/%3E%3Cpath d='m9 14 2 2 4-4'/%3E%3C/svg%3E"); }
#hrh-content-grid-37 > *:nth-child(2)::before { background-image: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2334516E' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='12' y1='1' x2='12' y2='23'/%3E%3Cpath d='M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6'/%3E%3C/svg%3E"); }
#hrh-content-grid-37 > *:nth-child(3)::before { background-image: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2334516E' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M19 14c1.49-1.46 3-3.21 3-5.5A5.5 5.5 0 0 0 16.5 3c-1.76 0-3 .5-4.5 2-1.5-1.5-2.74-2-4.5-2A5.5 5.5 0 0 0 2 8.5c0 2.29 1.51 4.04 3 5.5'/%3E%3Cpath d='M3.22 12H9.5l.5-1 2 4 .5-2 1 1h5.27'/%3E%3C/svg%3E"); }
#hrh-content-grid-37 > *:nth-child(4)::before { background-image: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2334516E' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z'/%3E%3Cpolyline points='14 2 14 8 20 8'/%3E%3Cline x1='16' y1='13' x2='8' y2='13'/%3E%3Cline x1='16' y1='17' x2='8' y2='17'/%3E%3C/svg%3E"); }

/* Employment (post 39) */
#hrh-content-grid-39 > *:nth-child(1)::before { background-image: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2334516E' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M16 12H3'/%3E%3Cpath d='M16 6H3'/%3E%3Cpath d='M10 18H3'/%3E%3Cpath d='m17 14 2 2 4-4'/%3E%3C/svg%3E"); }
#hrh-content-grid-39 > *:nth-child(2)::before { background-image: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2334516E' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='8' r='6'/%3E%3Cpolyline points='8.21 13.89 7 23 12 20 17 23 15.79 13.88'/%3E%3C/svg%3E"); }
#hrh-content-grid-39 > *:nth-child(3)::before { background-image: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2334516E' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z'/%3E%3Cpolyline points='14 2 14 8 20 8'/%3E%3Cline x1='16' y1='13' x2='8' y2='13'/%3E%3Cline x1='16' y1='17' x2='8' y2='17'/%3E%3C/svg%3E"); }

/* Contact (post 41) */
#hrh-content-grid-41 > *:nth-child(1)::before { background-image: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2334516E' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 10c0 6-8 12-8 12s-8-6-8-12a8 8 0 0 1 16 0z'/%3E%3Ccircle cx='12' cy='10' r='3'/%3E%3C/svg%3E"); }
#hrh-content-grid-41 > *:nth-child(2)::before { background-image: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2334516E' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72c.13.96.37 1.9.7 2.81a2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45c.91.33 1.85.57 2.81.7A2 2 0 0 1 22 16.92z'/%3E%3C/svg%3E"); }
#hrh-content-grid-41 > *:nth-child(3)::before { background-image: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2334516E' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 18v-6a9 9 0 0 1 18 0v6'/%3E%3Cpath d='M21 19a2 2 0 0 1-2 2h-1a2 2 0 0 1-2-2v-3a2 2 0 0 1 2-2h3zM3 19a2 2 0 0 0 2 2h1a2 2 0 0 0 2-2v-3a2 2 0 0 0-2-2H3z'/%3E%3C/svg%3E"); }

/* Privacy Policy (post 3) */
#hrh-content-grid-3 > *::before {
  background-image: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2334516E' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='11' width='18' height='11' rx='2' ry='2'/%3E%3Cpath d='M7 11V7a5 5 0 0 1 10 0v4'/%3E%3C/svg%3E");
}

/* Accessibility (post 43) */
#hrh-content-grid-43 > *::before {
  background-image: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2334516E' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 12s3-7 10-7 10 7 10 7-3 7-10 7-10-7-10-7Z'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3C/svg%3E");
}

[id^="hrh-content-grid-"] > *:hover {
  transform: translateY(-3px);
  box-shadow: 0 14px 36px rgba(74,107,138,0.16), 0 2px 6px rgba(45,42,38,0.06);
  background-color: #FFFCF7 !important;
}
[id^="hrh-content-grid-"] h2,
[id^="hrh-content-grid-"] h3 {
  font-family: 'DM Serif Display', Georgia, serif;
  font-size: 1.375rem !important;
  line-height: 1.25 !important;
  margin-top: 0 !important;
  margin-bottom: 10px !important;
  color: var(--hrh-slate-deep);
  font-weight: 400;
  word-wrap: break-word;
  overflow-wrap: anywhere;
}
[id^="hrh-content-grid-"] p {
  margin: 0 !important;
  color: var(--hrh-ink);
  font-size: 1rem;
  line-height: 1.65;
}
[id^="hrh-content-grid-"] a.e-button-base {
  margin-top: 14px;
  align-self: flex-start;
}

/* Inner page intro (paragraphs/images that appear above the card grid) */
.elementor-element-8ed87f5 > .e-paragraph-base,
.elementor-element-807af3a > .e-paragraph-base,
.elementor-element-f190003 > .e-paragraph-base,
.elementor-element-444d33a > .e-paragraph-base,
.elementor-element-fc6a3ac > .e-paragraph-base,
.elementor-element-3b0ed22 > .e-paragraph-base,
.elementor-element-b96f4ed > .e-paragraph-base,
.elementor-element-5d8002f > .e-paragraph-base {
  font-size: 1.125rem;
  max-width: 70ch;
  margin: 0 auto 12px;
  text-align: center;
  color: var(--hrh-ink);
  line-height: 1.65;
}
.elementor-element-8ed87f5 > img,
.elementor-element-444d33a > img,
img#hrh-intro-photo,
#hrh-intro-photo {
  max-width: 480px !important;
  width: 100% !important;
  height: auto !important;
  margin: 8px auto 24px !important;
  display: block !important;
  border-radius: 1rem !important;
  box-shadow: 0 10px 30px rgba(45, 42, 38, 0.16), 0 2px 6px rgba(45, 42, 38, 0.06) !important;
  object-fit: cover;
}
@media (max-width: 720px) {
  img#hrh-intro-photo,
  #hrh-intro-photo {
    max-width: 92vw !important;
    margin: 0 auto 16px !important;
  }
}

@media (max-width: 720px) {
  [id^="hrh-content-grid-"] {
    grid-template-columns: 1fr !important;
    gap: 18px !important;
  }
  [id^="hrh-content-grid-"] > * {
    padding: 84px 22px 24px 24px !important;
    border-radius: 1rem !important;
  }
  [id^="hrh-content-grid-"] > *::before {
    top: 22px;
    left: 22px;
    width: 46px;
    height: 46px;
  }
  [id^="hrh-content-grid-"] h2,
  [id^="hrh-content-grid-"] h3 {
    font-size: 1.25rem !important;
  }
}

/* ===== Contact page: map at top, 2-card row beneath ===== */
.elementor-element-3b0ed22 > .elementor-widget-google_maps {
  margin: 0 auto 32px !important;
  max-width: 1200px;
  width: 100%;
}
.elementor-element-3b0ed22 .elementor-widget-google_maps .elementor-custom-embed,
.elementor-element-3b0ed22 .elementor-widget-google_maps iframe {
  border-radius: 0.5rem !important;
  box-shadow: 0 6px 22px rgba(45, 42, 38, 0.14);
  border: 0;
  display: block;
}
.elementor-element-3b0ed22 .elementor-widget-google_maps iframe {
  width: 100% !important;
}

#hrh-contact-cards {
  display: grid !important;
  grid-template-columns: 1fr 1fr;
  gap: 24px !important;
  flex-direction: row !important;
  max-width: 1200px;
  margin: 0 auto !important;
  align-items: stretch !important;
}
#hrh-contact-cards > * {
  background: #ffffff !important;
  border: 0 !important;
  border-radius: 1.25rem !important;
  padding: 36px 36px !important;
  box-shadow: 0 2px 14px rgba(45, 42, 38, 0.06), 0 1px 3px rgba(45, 42, 38, 0.04);
  display: flex !important;
  flex-direction: column !important;
  gap: 8px !important;
  transition: transform .2s ease, box-shadow .2s ease;
}
#hrh-contact-cards > *:hover {
  transform: translateY(-3px);
  box-shadow: 0 14px 36px rgba(74,107,138,0.16), 0 2px 6px rgba(45,42,38,0.06);
}
#hrh-contact-cards h2 {
  font-family: 'DM Serif Display', Georgia, serif;
  margin: 0 0 12px !important;
  color: var(--hrh-slate-deep);
  font-size: 1.625rem !important;
  font-weight: 400;
}
#hrh-contact-cards p {
  margin: 4px 0 !important;
  max-width: none !important;
  line-height: 1.6;
}
#hrh-contact-cards a.e-button-base {
  margin-top: auto !important;
  align-self: flex-start;
}
@media (max-width: 720px) {
  #hrh-contact-cards { grid-template-columns: 1fr !important; }
}

/* ===== Inner-page bottom CTA band (#hrh-cta-band) ===== */
#hrh-cta-band {
  background:
    radial-gradient(ellipse at center, rgba(212,166,90,0.18), transparent 65%),
    var(--hrh-slate) !important;
  padding: 64px 24px !important;
  border-top: 4px solid var(--hrh-honey);
  position: relative;
}
#hrh-cta-band, #hrh-cta-band * { color: #ffffff; }
#hrh-cta-band h2 {
  font-family: 'DM Serif Display', Georgia, serif;
  text-align: center;
  font-size: clamp(1.75rem, 2.4vw + 0.8rem, 2.5rem);
  margin: 0 0 10px;
  font-weight: 400;
}
#hrh-cta-band h2::before {
  content: 'Come visit';
  display: block;
  font-family: 'Parisienne', cursive;
  font-size: 0.6em;
  color: var(--hrh-honey);
  line-height: 1;
  margin-bottom: 0.2em;
  font-weight: 400;
}
#hrh-cta-band p {
  text-align: center;
  margin: 0 auto 20px;
  max-width: 56ch;
  opacity: 0.95;
  font-size: 1.0625rem;
}
.elementor #hrh-cta-band a.e-button-base,
#hrh-cta-band a.e-button-base {
  background: var(--hrh-honey) !important;
  background-color: var(--hrh-honey) !important;
  color: var(--hrh-slate-ink) !important;
  border-color: var(--hrh-honey) !important;
}
.elementor #hrh-cta-band a.e-button-base:hover,
.elementor #hrh-cta-band a.e-button-base:focus,
#hrh-cta-band a.e-button-base:hover,
#hrh-cta-band a.e-button-base:focus {
  background: #ffffff !important;
  background-color: #ffffff !important;
  color: var(--hrh-slate-deep) !important;
  border-color: #ffffff !important;
}

/* ===== History band (#hrh-history) ===== */
#hrh-history {
  background: #ffffff !important;
  border-top: 1px solid var(--hrh-line);
  border-bottom: 1px solid var(--hrh-line);
  padding: 80px 24px !important;
  display: grid !important;
  grid-template-columns: 320px 1fr;
  gap: 56px !important;
  align-items: center;
  max-width: 1100px;
  margin: 0 auto !important;
  flex-direction: row !important;
  position: relative;
}
#hrh-history img {
  width: 100% !important;
  height: auto !important;
  border-radius: 0.5rem;
  box-shadow: 0 8px 28px rgba(45, 42, 38, 0.16);
  margin: 0 !important;
}
#hrh-history h2 {
  font-family: 'DM Serif Display', Georgia, serif;
  font-style: italic;
  font-size: clamp(1.5rem, 1.8vw + 0.75rem, 2rem);
  color: var(--hrh-slate-deep);
  line-height: 1.35;
  margin: 0 0 18px;
  font-weight: 400;
  letter-spacing: 0;
  position: relative;
  padding-top: 1.8em;
}
#hrh-history h2::before {
  content: 'Our story';
  display: block;
  font-family: 'Parisienne', cursive;
  font-size: 0.65em;
  color: var(--hrh-honey-deep, var(--hrh-honey));
  font-style: normal;
  font-weight: 400;
  line-height: 1;
  position: absolute;
  top: 0;
  left: 0;
}
#hrh-history h2::after {
  content: '';
  display: block;
  width: 60px;
  height: 2px;
  background: var(--hrh-honey);
  margin: 18px 0 0;
  border-radius: 2px;
}
#hrh-history p {
  color: var(--hrh-ink);
  margin: 0 0 16px;
  max-width: 56ch;
  font-size: 1.0625rem;
  line-height: 1.7;
}
@media (max-width: 720px) {
  #hrh-history { grid-template-columns: 1fr !important; gap: 32px !important; }
  #hrh-history img { max-width: 280px; margin: 0 auto !important; }
}

/* ===== Type ramp ===== */
h1, h2, h3, h4 {
  font-family: 'DM Serif Display', Georgia, serif;
  color: var(--hrh-slate-deep);
  font-weight: 400;
}
h1 { font-size: clamp(2.25rem, 4vw + 1rem, 3.5rem); line-height: 1.1; letter-spacing: -0.005em; margin: 0 0 0.5rem; }
h2 { font-size: clamp(1.75rem, 2.4vw + 0.75rem, 2.5rem); line-height: 1.2; margin: 0.5rem 0; }
h3 { font-size: 1.375rem; line-height: 1.3; margin: 0.25rem 0; }
p  { font-family: 'Nunito', system-ui, sans-serif; font-size: 1.0625rem; line-height: 1.7; margin: 0.25rem 0; color: var(--hrh-ink); }

/* Links */
a:not(.e-button-base):not(.custom-logo-link):not(.menu-item *):not(.skip-link):not(#hrh-cta-band *) {
  color: var(--hrh-slate-deep);
  text-decoration: underline;
  text-underline-offset: 3px;
  text-decoration-color: rgba(74,107,138,0.45);
}
a:not(.e-button-base):not(.custom-logo-link):not(.menu-item *):not(.skip-link):not(#hrh-cta-band *):hover,
a:not(.e-button-base):not(.custom-logo-link):not(.menu-item *):not(.skip-link):not(#hrh-cta-band *):focus {
  color: var(--hrh-blush-deep);
  text-decoration-color: var(--hrh-blush-deep);
}

/* ===== Atomic buttons (e-button-base) — BLUSH primary, BLUSH-DARKER on hover.
   Selector specificity must beat Elementor v4 default ".elementor .e-button-base". */
.elementor a.e-button-base,
.elementor button.e-button-base,
a.e-button-base,
button.e-button-base {
  display: inline-block;
  background-color: var(--hrh-blush-deep) !important;
  color: #ffffff !important;
  padding: 13px 26px !important;
  border: 2px solid transparent;
  border-radius: 0.5rem !important;
  font-weight: 700;
  font-family: 'Nunito', system-ui, sans-serif;
  font-size: 0.9375rem;
  letter-spacing: 0.02em;
  text-decoration: none;
  line-height: 1.2;
  cursor: pointer;
  transition: background-color .15s, color .15s, transform .1s, box-shadow .15s;
  box-shadow: 0 1px 3px rgba(168, 80, 80, 0.18);
}
.elementor a.e-button-base:hover,
.elementor a.e-button-base:focus,
.elementor button.e-button-base:hover,
.elementor button.e-button-base:focus,
a.e-button-base:hover,
a.e-button-base:focus,
button.e-button-base:hover,
button.e-button-base:focus {
  background-color: var(--hrh-blush-darker) !important;
  color: #ffffff !important;
  box-shadow: 0 8px 22px rgba(168, 80, 80, 0.28);
}
.elementor a.e-button-base:focus-visible,
.elementor button.e-button-base:focus-visible {
  outline: 3px solid var(--hrh-honey);
  outline-offset: 3px;
}
.elementor a.e-button-base:active,
a.e-button-base:active { transform: translateY(1px); }

/* On dark slate backgrounds: white-bg / slate-text inverted button */
.elementor .elementor-element-fd40c11 a.e-button-base,
.elementor .elementor-element-783f6c3 a.e-button-base,
.elementor-element-fd40c11 a.e-button-base,
.elementor-element-783f6c3 a.e-button-base,
#page-hero a.e-button-base {
  background-color: #ffffff !important;
  color: var(--hrh-slate-deep) !important;
  box-shadow: 0 4px 14px rgba(0,0,0,0.18);
}
.elementor .elementor-element-fd40c11 a.e-button-base:hover,
.elementor .elementor-element-fd40c11 a.e-button-base:focus,
.elementor .elementor-element-783f6c3 a.e-button-base:hover,
.elementor .elementor-element-783f6c3 a.e-button-base:focus,
.elementor-element-fd40c11 a.e-button-base:hover,
.elementor-element-fd40c11 a.e-button-base:focus,
.elementor-element-783f6c3 a.e-button-base:hover,
.elementor-element-783f6c3 a.e-button-base:focus,
#page-hero a.e-button-base:hover,
#page-hero a.e-button-base:focus {
  background-color: var(--hrh-honey) !important;
  color: var(--hrh-slate-ink) !important;
}

/* Skip link */
.skip-link { position: absolute; left: -9999px; top: auto; }
.skip-link:focus {
  position: fixed; left: 0.5rem; top: 0.5rem;
  background: var(--hrh-slate-deep); color: #fff;
  padding: 0.5rem 1rem; border-radius: 0.25rem; z-index: 999;
  outline: 3px solid var(--hrh-honey); outline-offset: 2px;
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
  *:hover { transform: none !important; }
}

/* Mobile stacking */
@media (max-width: 820px) {
  .elementor-element-7d672fa,
  .elementor-element-8086a1e {
    flex-direction: column !important;
  }
  .elementor-element-7d672fa > *,
  .elementor-element-8086a1e > * {
    width: 100% !important;
    max-width: 100% !important;
  }
  .elementor-element-fd40c11 > .e-con-inner,
  .elementor-element-fd40c11 > .e-flexbox-inner {
    margin-left: 24px !important;
    margin-right: 24px !important;
  }
}

/* ===== Inner-page hero — mobile polish =====
   The h1 was clipping at 390px because clamp() lower bound + center
   alignment with little horizontal padding pushed text off-canvas.
   Also softens the overlay focus toward the right where the building
   typically sits in our composed photos. */
@media (max-width: 720px) {
  #page-hero {
    min-height: 280px !important;
    padding-left: 20px !important;
    padding-right: 20px !important;
    background-position: 65% center !important;
  }
  #page-hero h1,
  #page-hero h1 * {
    font-size: clamp(1.5rem, 4.8vw + 0.4rem, 2.25rem) !important;
    line-height: 1.15 !important;
    overflow-wrap: break-word !important;
    word-break: break-word !important;
    white-space: normal !important;
    max-width: 100% !important;
    padding-left: 8px;
    padding-right: 8px;
    box-sizing: border-box;
  }
  #page-hero p,
  #page-hero p * {
    font-size: 0.9375rem !important;
    line-height: 1.55 !important;
    white-space: normal !important;
    overflow-wrap: anywhere !important;
    word-break: break-word !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
  }
}

/* ===== Inner-page grid wrapper soft background =====
   Warm linen sits between the cards so the page reads as a soft
   composition instead of "boxes on white". A script-accented section
   eyebrow sits above the grid for editorial polish. */
[id^="hrh-content-grid-"] {
  padding: 72px 32px 56px !important;
  border-radius: 1.5rem;
  background-color: var(--hrh-linen) !important;
  max-width: 1200px;
  margin: 40px auto !important;
  position: relative;
}
[id^="hrh-content-grid-"]::before {
  display: block;
  font-family: 'Parisienne', cursive;
  font-size: 1.875rem;
  color: var(--hrh-honey-deep, var(--hrh-honey));
  text-align: center;
  line-height: 1;
  position: absolute;
  top: 32px;
  left: 0;
  right: 0;
  letter-spacing: 0;
  font-weight: 400;
}
/* Per-page eyebrow content above each card grid */
#hrh-content-grid-31::before { content: 'A heritage of care'; }
#hrh-content-grid-33::before { content: 'Everything you need'; }
#hrh-content-grid-35::before { content: 'Care that comes to you'; }
#hrh-content-grid-37::before { content: 'Daily life, simplified'; }
#hrh-content-grid-39::before { content: 'Work that matters'; }
#hrh-content-grid-41::before { content: 'Reach out'; }
#hrh-content-grid-3::before  { content: 'How we protect you'; }
#hrh-content-grid-43::before { content: 'For everyone'; }
@media (max-width: 720px) {
  [id^="hrh-content-grid-"] {
    padding: 56px 16px 32px !important;
    border-radius: 1rem;
    margin: 20px auto !important;
  }
  [id^="hrh-content-grid-"]::before {
    font-size: 1.5rem;
    top: 22px;
  }
}


/* === FIX 2026-05-21: homepage hero alignment + Schedule button icon === */

/* The hero (#fd40c11) inner wrapper (.e-flexbox-inner / .e-con-inner) doesn't exist
   in the v4 atomic rendered DOM, so the align-items rule on the wrapper never took effect.
   Apply directly to the section so heading, paragraph, and CTA row share a left edge. */
#fd40c11.e-flexbox-base,
.elementor-element-fd40c11.e-flexbox-base {
  align-items: flex-start !important;
}

/* Schedule a Visit button has a white background; its calendar icon stroke was white,
   so the icon was invisible. Override with a slate-deep stroke matching the button text. */
#hero-cta a.e-button-base:nth-child(1)::before {
  background-image: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2334516E' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='18' rx='2'/%3E%3Cline x1='16' y1='2' x2='16' y2='6'/%3E%3Cline x1='8' y1='2' x2='8' y2='6'/%3E%3Cline x1='3' y1='10' x2='21' y2='10'/%3E%3C/svg%3E") !important;
}


/* === FIX 2026-05-21: standardize Welcome + How We Care section padding === */
/* Page vertical rhythm was uneven — Welcome was 32px/24px (compact override),
   How We Care was 80px (local default), and the rest were 72px. Bring the two
   outliers to 72px vertical / responsive horizontal for a consistent cadence. */
#7d672fa.e-flexbox-base,
.elementor-element-7d672fa.e-flexbox-base {
  padding: 72px clamp(24px, 4vw, 48px) !important;
}
#f9beba3.e-flexbox-base,
.elementor-element-f9beba3.e-flexbox-base {
  padding: 72px clamp(24px, 4vw, 48px) !important;
}


/* === FIX 2026-05-21: page-specific hero imagery === */
/* Inner page heroes were all reusing the homepage building exterior.
   Give the About page its own hero image tied to "A heritage of care". */
.elementor-element-c77e9c7 {
  background-image:
    radial-gradient(ellipse 70% 85% at center, rgba(20,32,48,0.72) 0%, rgba(20,32,48,0.50) 60%, rgba(20,32,48,0.28) 100%),
    url('/wp-content/uploads/2026/05/518ec1b781531ce476e166dc41e43217df5b2ff3593ec013d21c33e87a68751c-scaled.jpg') !important;
  background-position: center 55% !important;
}


/* Living Here hero — "Daily life, simplified" — senior hands knitting */
.elementor-element-ad4e3af {
  background-image:
    radial-gradient(ellipse 70% 85% at center, rgba(20,32,48,0.72) 0%, rgba(20,32,48,0.50) 60%, rgba(20,32,48,0.28) 100%),
    url('/wp-content/uploads/2026/05/ba82a1ad97ccdb6b18bcd8db6f0cc2149b54a3c165d15c01a9348b91572a8e24-scaled.jpg') !important;
  background-position: center !important;
}

/* In-Home Care hero — "Care that comes to you" — younger hand holding elder hand */
.elementor-element-c317972 {
  background-image:
    radial-gradient(ellipse 70% 85% at center, rgba(20,32,48,0.72) 0%, rgba(20,32,48,0.50) 60%, rgba(20,32,48,0.28) 100%),
    url('/wp-content/uploads/2026/05/8d4ecc689b9b34e14514499c8ebdd2e22a6ca1fc6d03354cf334e9fe0e02b2df-scaled.jpg') !important;
  background-position: center !important;
}


/* Services & Amenities hero — "Everything you need" — autumn table setting */
.elementor-element-eb14a16 {
  background-image:
    radial-gradient(ellipse 70% 85% at center, rgba(20,32,48,0.72) 0%, rgba(20,32,48,0.50) 60%, rgba(20,32,48,0.28) 100%),
    url('/wp-content/uploads/2026/05/fbe040ce011cb987248a7fba5dcf2518bfc430fa49acc30efd77b336060778c3-scaled.jpg') !important;
  background-position: center !important;
}

/* Employment hero — "Work that matters" — caregiver supporting senior */
.elementor-element-060e330 {
  background-image:
    radial-gradient(ellipse 70% 85% at center, rgba(20,32,48,0.72) 0%, rgba(20,32,48,0.50) 60%, rgba(20,32,48,0.28) 100%),
    url('/wp-content/uploads/2026/05/7b4bd2f83dfb14c34840528c4ee0f0f978858c79252ea627bcb490eeff542ae3-scaled.jpg') !important;
  background-position: center !important;
}


/* === FIX 2026-05-21: full-width section margins (match Inside Hearthstone & Our Story) === */
/* Stats strip and Welcome row had max-width / margin:auto creating inset "cards" with
   gutters that broke the page rhythm. Strip those so they span full width like the rest. */
#hrh-stats,
.elementor-element-7d672fa,
.elementor-element-f9beba3,
.elementor-element-783f6c3 {
  max-width: none !important;
  margin: 0 !important;
}

/* Use a consistent horizontal padding clamp so every section breathes the same. */
.elementor-element-7d672fa,
.elementor-element-f9beba3 {
  padding: 72px clamp(24px, 6vw, 72px) !important;
}

#hrh-stats {
  padding: 48px clamp(24px, 6vw, 72px) !important;
}


/* === FIX 2026-05-21: Welcome section margins — match Inside Hearthstone exactly === */
/* Welcome section had clamp(24px, 4vw, 48px) horizontal padding which capped at 48px
   on desktop — less than Inside Hearthstone's uniform 72px. And the flex row content
   sat at justify-content: flex-start (default), leaving big empty space on the right.
   Match specificity .e-flexbox-base so this beats the earlier override in the cascade. */
.elementor-element-7d672fa.e-flexbox-base {
  padding: 72px !important;
  justify-content: center !important;
}

/* Same fix for How We Care row container — full 72px padding all sides */
.elementor-element-f9beba3.e-flexbox-base {
  padding: 72px !important;
}
