/* =====================================================================
   Home page — modern UI layer (hero, about, stats, services, portal,
   establishments, team, gallery, call-back popup). Classes are hm-*.
   ===================================================================== */
:root {
  --hm-red: #ce1212;
  --hm-red2: #ff4b4b;
  --hm-ink: #0f172a;
  --hm-muted: #64748b;
  --hm-line: #e2e8f0;
  --hm-soft: #f8fafc;
  --hm-radius: 22px;
  --hm-ease: cubic-bezier(.22, 1, .36, 1);
}

/* ---------- shared bits ---------- */
.hm-pill { display: inline-flex; align-items: center; gap: 8px; padding: 6px 14px; border-radius: 999px; background: rgba(206, 18, 18, .08); color: var(--hm-red); font-weight: 700; font-size: 13px; border: 1px solid rgba(206, 18, 18, .15); }
.hm-pill-dark { background: rgba(255, 255, 255, .08); color: #fecaca; border-color: rgba(255, 255, 255, .15); }
.hm-dot { width: 8px; height: 8px; border-radius: 50%; background: currentColor; box-shadow: 0 0 0 0 currentColor; animation: hmPing 1.8s infinite; }
@keyframes hmPing { 0% { box-shadow: 0 0 0 0 rgba(206, 18, 18, .45); } 80%, 100% { box-shadow: 0 0 0 8px rgba(206, 18, 18, 0); } }

.hm-head { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 10px; margin-bottom: 38px; }
.hm-head h3 { font-family: var(--font-primary, 'Outfit', sans-serif); font-size: clamp(26px, 4vw, 36px); font-weight: 800; color: var(--hm-ink); margin: 0; letter-spacing: -.02em; }
.hm-head p { color: var(--hm-muted); max-width: 620px; margin: 0; font-size: 15px; }

.hm-btn { display: inline-flex; align-items: center; gap: 8px; padding: 12px 24px; border-radius: 999px; font-weight: 700; font-size: 15px; text-decoration: none !important; border: 2px solid transparent; transition: transform .25s var(--hm-ease), box-shadow .25s, background .25s, color .25s; position: relative; overflow: hidden; white-space: nowrap; cursor: pointer; }
.hm-btn i { transition: transform .25s var(--hm-ease); }
.hm-btn:hover { transform: translateY(-2px); }
.hm-btn:hover i.bi-arrow-right { transform: translateX(4px); }
.hm-btn-primary { background: linear-gradient(135deg, var(--hm-red), var(--hm-red2)); color: #fff !important; box-shadow: 0 10px 24px -8px rgba(206, 18, 18, .55); }
.hm-btn-primary::after { content: ''; position: absolute; top: 0; left: -120%; width: 60%; height: 100%; background: linear-gradient(120deg, transparent, rgba(255, 255, 255, .45), transparent); transform: skewX(-20deg); transition: left .7s; }
.hm-btn-primary:hover::after { left: 140%; }
.hm-btn-ghost { background: #fff; color: var(--hm-ink) !important; border-color: var(--hm-line); box-shadow: 0 6px 18px -10px rgba(15, 23, 42, .25); }
.hm-btn-ghost:hover { border-color: var(--hm-red); color: var(--hm-red) !important; }
.hm-btn-glass { background: rgba(255, 255, 255, .08); color: #fff !important; border-color: rgba(255, 255, 255, .2); backdrop-filter: blur(6px); }
.hm-btn-glass:hover { background: rgba(255, 255, 255, .16); }
.hm-btn-lg { padding: 14px 34px; font-size: 16px; }

/* header call-back button */
.hm-head-cb { white-space: nowrap; flex: none; display: inline-flex; align-items: center; gap: 6px; margin-left: 18px; padding: 8px 14px; border-radius: 999px; font-size: 14px; font-weight: 700; color: var(--hm-red) !important; background: rgba(206, 18, 18, .08); border: 1px solid rgba(206, 18, 18, .18); text-decoration: none !important; transition: background .2s, transform .2s; }
.hm-head-cb:hover { background: rgba(206, 18, 18, .15); transform: translateY(-1px); }
.hm-head-cb i { animation: hmRing 2.4s infinite; display: inline-block; }
@keyframes hmRing { 0%, 70%, 100% { transform: rotate(0); } 75% { transform: rotate(-14deg); } 80% { transform: rotate(12deg); } 85% { transform: rotate(-8deg); } 90% { transform: rotate(6deg); } }
@media (max-width: 1399px) { .hm-head-cb span { display: none; } .hm-head-cb { padding: 9px 11px; margin-left: 10px; } }
@media (max-width: 1199px) { .hm-head-cb { margin-left: auto; margin-right: 8px; } }
@media (max-width: 575px) { .hm-head-cb span { display: none; } .hm-head-cb { padding: 8px 10px; } }

/* ---------- HERO ---------- */
.hm-hero { position: relative; overflow: hidden; min-height: 92vh; padding: 120px 0 70px; background: linear-gradient(180deg, #fff 0%, #fff5f5 100%) !important; }
.hm-hero-bg { position: absolute; inset: 0; pointer-events: none; }
.hm-blob { position: absolute; border-radius: 50%; filter: blur(60px); opacity: .55; animation: hmFloat 14s ease-in-out infinite; }
.hm-blob.b1 { width: 420px; height: 420px; background: #fecaca; top: -120px; left: -80px; }
.hm-blob.b2 { width: 360px; height: 360px; background: #fde68a; bottom: -140px; right: 10%; animation-delay: -5s; opacity: .4; }
.hm-blob.b3 { width: 300px; height: 300px; background: #c7d2fe; top: 20%; right: -100px; animation-delay: -9s; opacity: .45; }
@keyframes hmFloat { 0%, 100% { transform: translate(0, 0) scale(1); } 33% { transform: translate(40px, -30px) scale(1.08); } 66% { transform: translate(-30px, 25px) scale(.95); } }
.hm-grid { position: absolute; inset: 0; background-image: linear-gradient(rgba(15, 23, 42, .045) 1px, transparent 1px), linear-gradient(90deg, rgba(15, 23, 42, .045) 1px, transparent 1px); background-size: 46px 46px; mask-image: radial-gradient(ellipse at 50% 40%, #000 20%, transparent 70%); -webkit-mask-image: radial-gradient(ellipse at 50% 40%, #000 20%, transparent 70%); }

.hm-hero-title { font-size: clamp(36px, 5.4vw, 60px) !important; font-weight: 800 !important; line-height: 1.08 !important; letter-spacing: -.03em; color: var(--hm-ink) !important; margin: 18px 0 10px !important; }
.hm-hero p { color: #475569; font-size: 16.5px; line-height: 1.7; max-width: 560px; }
.hm-rotator { font-size: clamp(17px, 2vw, 21px); font-weight: 600; color: var(--hm-muted); margin-bottom: 14px; display: flex; gap: 8px; align-items: center; flex-wrap: wrap; justify-content: inherit; }
.hm-rot-words { position: relative; display: inline-grid; color: var(--hm-red); }
.hm-rot-words b { grid-area: 1 / 1; font-weight: 800; opacity: 0; transform: translateY(60%); transition: opacity .45s, transform .45s var(--hm-ease); white-space: nowrap; }
.hm-rot-words b.is-on { opacity: 1; transform: none; }
.hm-rot-words b.is-out { opacity: 0; transform: translateY(-60%); }
.hm-rot-words::after { content: ''; position: absolute; left: 0; right: 0; bottom: -4px; height: 3px; border-radius: 3px; background: linear-gradient(90deg, var(--hm-red), transparent); }
.hm-hero-btns { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 8px; }
.hm-trust { display: flex; gap: 18px; flex-wrap: wrap; margin-top: 26px; font-size: 13.5px; color: var(--hm-muted); font-weight: 600; }
.hm-trust i { color: var(--hm-red); margin-right: 4px; }
@media (max-width: 991px) { .hm-hero-btns, .hm-trust { justify-content: center; } .hm-hero { min-height: auto; padding-top: 110px; } }

/* entrance animation for the hero (no AOS wait) */
.hm-rise { opacity: 0; transform: translateY(26px); animation: hmRise .9s var(--hm-ease) forwards; animation-delay: var(--d, 0s); }
@keyframes hmRise { to { opacity: 1; transform: none; } }
.hm-pop { opacity: 0; transform: scale(.85); animation: hmPop 1.1s var(--hm-ease) .2s forwards; }
@keyframes hmPop { to { opacity: 1; transform: none; } }

.hm-orbit { position: relative; width: min(440px, 82vw); aspect-ratio: 1; display: grid; place-items: center; }
.hm-ring { position: absolute; border-radius: 50%; border: 2px dashed rgba(206, 18, 18, .22); }
.hm-ring.r1 { inset: 4%; animation: hmSpin 40s linear infinite; }
.hm-ring.r2 { inset: 18%; border-style: solid; border-color: rgba(206, 18, 18, .1); animation: hmSpin 26s linear infinite reverse; }
@keyframes hmSpin { to { transform: rotate(360deg); } }
.hm-logo-card { width: 58%; aspect-ratio: 1; border-radius: 34% 66% 58% 42% / 42% 38% 62% 58%; background: #fff; display: grid; place-items: center; box-shadow: 0 30px 60px -20px rgba(206, 18, 18, .35), inset 0 0 0 1px rgba(206, 18, 18, .08); animation: hmMorph 10s ease-in-out infinite; position: relative; z-index: 2; }
.hm-logo-card img { width: 72%; height: auto; animation: hmBob 6s ease-in-out infinite; }
@keyframes hmMorph { 0%, 100% { border-radius: 34% 66% 58% 42% / 42% 38% 62% 58%; } 50% { border-radius: 58% 42% 38% 62% / 55% 60% 40% 45%; } }
@keyframes hmBob { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-10px); } }
.hm-chip { position: absolute; z-index: 3; display: inline-flex; align-items: center; gap: 7px; padding: 6px 13px 6px 6px; border-radius: 999px; background: rgba(255, 255, 255, .92); backdrop-filter: blur(8px); box-shadow: 0 12px 26px -12px rgba(15, 23, 42, .35); border: 1px solid rgba(255, 255, 255, .8); font-size: 12.5px; font-weight: 700; color: var(--hm-ink); animation: hmBob 5s ease-in-out infinite; white-space: nowrap; }
.hm-chip i { width: 26px; height: 26px; display: grid; place-items: center; border-radius: 50%; color: #fff; font-size: 13px; background: var(--ic, var(--hm-red)); box-shadow: 0 6px 12px -6px var(--ic, var(--hm-red)); }
/* highlighted: Health & LIC */
.hm-chip.is-hot { background: linear-gradient(135deg, var(--ic), color-mix(in srgb, var(--ic) 70%, #000)); color: #fff; border-color: transparent; font-size: 13.5px; padding: 7px 15px 7px 7px; box-shadow: 0 16px 30px -12px var(--ic); }
.hm-chip.is-hot i { background: rgba(255, 255, 255, .22); box-shadow: none; }
.hm-chip.is-hot::after { content: ""; position: absolute; inset: -4px; border-radius: inherit; border: 2px solid var(--ic); opacity: .5; animation: hmHalo 2.2s ease-out infinite; }
@keyframes hmHalo { 0% { transform: scale(.95); opacity: .55; } 100% { transform: scale(1.18); opacity: 0; } }
.hm-chip.c1 { top: 3%; left: 6%; }
.hm-chip.c2 { top: 9%; right: -6%; animation-delay: -1s; }
.hm-chip.c3 { top: 33%; left: -10%; animation-delay: -2s; }
.hm-chip.c4 { top: 36%; right: -9%; animation-delay: -3s; }
.hm-chip.c5 { bottom: 24%; left: -8%; animation-delay: -1.5s; }
.hm-chip.c6 { bottom: 20%; right: -6%; animation-delay: -4s; }
.hm-chip.c7 { bottom: 1%; left: 12%; animation-delay: -2.5s; }
.hm-chip.c8 { bottom: 3%; right: 10%; animation-delay: -3.5s; }
@media (max-width: 1199px) and (min-width: 992px) { .hm-chip { font-size: 11.5px; } .hm-chip.c3, .hm-chip.c5 { left: -4%; } .hm-chip.c2, .hm-chip.c4, .hm-chip.c6 { right: -3%; } }
@media (max-width: 575px) {
  .hm-orbit { width: min(290px, 74vw); margin: 0 auto; }
  .hm-hero { padding-top: 96px; }
  .hm-chip { font-size: 10px; padding: 4px 9px 4px 4px; gap: 5px; }
  .hm-chip i { width: 20px; height: 20px; font-size: 10px; }
  .hm-chip.is-hot { font-size: 10.5px; padding: 4px 10px 4px 4px; }
  .hm-chip.c1 { left: 0; } .hm-chip.c2 { right: -12%; } .hm-chip.c3 { left: -14%; } .hm-chip.c4 { right: -14%; }
  .hm-chip.c5 { left: -12%; } .hm-chip.c6 { right: -12%; } .hm-chip.c7 { left: 2%; } .hm-chip.c8 { right: 0; }
}

.hm-scroll { position: absolute; left: 50%; bottom: 22px; transform: translateX(-50%); width: 26px; height: 42px; border: 2px solid rgba(15, 23, 42, .25); border-radius: 14px; }
.hm-scroll span { position: absolute; left: 50%; top: 8px; width: 4px; height: 8px; margin-left: -2px; border-radius: 2px; background: var(--hm-red); animation: hmWheel 1.6s infinite; }
@keyframes hmWheel { 0% { opacity: 1; transform: translateY(0); } 100% { opacity: 0; transform: translateY(14px); } }
@media (max-width: 991px) { .hm-scroll { display: none; } }

/* ---------- ABOUT ---------- */
.hm-about-media { position: relative; padding: 18px; }
.hm-about-media img { position: relative; z-index: 2; width: 100%; border-radius: 28px; object-fit: cover; box-shadow: 0 30px 60px -25px rgba(15, 23, 42, .35); transition: transform .6s var(--hm-ease); }
.hm-about-media:hover img { transform: scale(1.02) rotate(-.5deg); }
.hm-about-frame { position: absolute; inset: 0 30px 30px 0; border-radius: 32px; background: linear-gradient(135deg, var(--hm-red), #f59e0b); opacity: .9; transform: rotate(-3deg); z-index: 1; }
.hm-about-badge { position: absolute; z-index: 3; right: 0; bottom: 34px; background: #fff; border-radius: 18px; padding: 14px 18px; box-shadow: 0 18px 40px -16px rgba(15, 23, 42, .35); animation: hmBob 5s ease-in-out infinite; }
.hm-about-badge b { display: block; font-size: 20px; color: var(--hm-red); }
.hm-about-badge small { color: var(--hm-muted); font-weight: 600; }
.hm-about-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin: 22px 0 26px; }
@media (max-width: 480px) { .hm-about-grid { grid-template-columns: 1fr; } }
.hm-about-tile { display: block; padding: 16px; border-radius: 18px; background: #fff; border: 1px solid var(--hm-line); text-decoration: none !important; position: relative; overflow: hidden; transition: transform .3s var(--hm-ease), box-shadow .3s, border-color .3s; }
.hm-about-tile::before { content: ''; position: absolute; inset: 0; background: linear-gradient(135deg, var(--c), transparent 70%); opacity: 0; transition: opacity .3s; }
.hm-about-tile:hover { transform: translateY(-4px); box-shadow: 0 16px 30px -16px var(--c); border-color: var(--c); }
.hm-about-tile:hover::before { opacity: .07; }
.hm-about-tile i { display: inline-grid; place-items: center; width: 42px; height: 42px; border-radius: 12px; background: color-mix(in srgb, var(--c) 12%, #fff); color: var(--c); font-size: 20px; margin-bottom: 10px; transition: transform .3s var(--hm-ease); }
.hm-about-tile:hover i { transform: rotate(-8deg) scale(1.08); }
.hm-about-tile h4 { font-size: 16px; font-weight: 700; color: var(--hm-ink); margin: 0 0 4px; position: relative; }
.hm-about-tile p { font-size: 13px; color: var(--hm-muted); margin: 0; position: relative; }

/* ---------- STATS ---------- */
.hm-stats { position: relative; padding: 70px 0; background: linear-gradient(135deg, rgba(15, 23, 42, .92), rgba(127, 29, 29, .85)), var(--bg) center / cover fixed; overflow: hidden; }
.hm-stats::before { content: ''; position: absolute; width: 500px; height: 500px; border-radius: 50%; background: radial-gradient(circle, rgba(255, 75, 75, .35), transparent 65%); top: -250px; right: -150px; animation: hmFloat 16s ease-in-out infinite; }
.hm-stats-grid { position: relative; display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
@media (max-width: 991px) { .hm-stats-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 420px) { .hm-stats-grid { gap: 10px; } }
.hm-stat { display: flex; align-items: center; gap: 14px; padding: 22px; border-radius: 20px; background: rgba(255, 255, 255, .07); border: 1px solid rgba(255, 255, 255, .14); backdrop-filter: blur(10px); color: #fff; transition: transform .35s var(--hm-ease), background .35s; }
.hm-stat:hover { transform: translateY(-6px); background: rgba(255, 255, 255, .12); }
.hm-stat-ic { flex: none; width: 54px; height: 54px; border-radius: 16px; display: grid; place-items: center; font-size: 24px; background: linear-gradient(135deg, var(--hm-red), var(--hm-red2)); box-shadow: 0 10px 22px -8px rgba(255, 75, 75, .8); }
.hm-stat b { display: block; font-size: clamp(26px, 3vw, 34px); font-weight: 800; line-height: 1; font-family: var(--font-primary, 'Outfit', sans-serif); }
.hm-stat small { display: block; margin-top: 6px; font-size: 13.5px; color: rgba(255, 255, 255, .75); font-weight: 600; }
@media (max-width: 420px) { .hm-stat { flex-direction: column; text-align: center; padding: 16px 10px; } }

/* ---------- PREMIUM SERVICES ---------- */
.hm-svc { padding: 90px 0 !important; background: linear-gradient(180deg, #fff, var(--hm-soft)) !important; }
.hm-tabs { border: 0 !important; display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; margin: 0 auto 34px !important; padding: 6px !important; background: #fff; border-radius: 999px !important; box-shadow: 0 10px 30px -18px rgba(15, 23, 42, .35); width: fit-content; max-width: 100%; }
.hm-tabs .nav-item { margin: 0; }
.hm-tabs .nav-link { border: 0 !important; border-radius: 999px !important; padding: 10px 18px !important; font-weight: 700; font-size: 14px; color: #475569 !important; background: transparent !important; cursor: pointer; transition: background .25s, color .25s; display: flex; align-items: center; gap: 6px; }
.hm-tabs .nav-link small { font-size: 11px; background: var(--hm-soft); color: var(--hm-muted); border-radius: 999px; padding: 1px 7px; }
.hm-tabs .nav-link:hover { color: var(--hm-red) !important; }
.hm-tabs .nav-link.active { background: linear-gradient(135deg, var(--hm-red), var(--hm-red2)) !important; color: #fff !important; box-shadow: 0 8px 18px -8px rgba(206, 18, 18, .6); }
.hm-tabs .nav-link.active small { background: rgba(255, 255, 255, .22); color: #fff; }
@media (max-width: 767px) { .hm-tabs { border-radius: 16px !important; flex-wrap: nowrap !important; overflow-x: auto; justify-content: flex-start !important; scrollbar-width: none; width: 100%; margin-bottom: 18px !important; } .hm-tabs::-webkit-scrollbar { display: none; } .hm-tabs .nav-link { white-space: nowrap; } }

.hm-svc-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
@media (max-width: 991px) { .hm-svc-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 575px) { .hm-svc-grid { grid-template-columns: 1fr; } }
.hm-svc-card { background: #fff; border-radius: var(--hm-radius); overflow: hidden; border: 1px solid var(--hm-line); box-shadow: 0 14px 34px -22px rgba(15, 23, 42, .35); display: flex; flex-direction: column; transition: transform .4s var(--hm-ease), box-shadow .4s; }
.hm-svc-card:hover { transform: translateY(-8px); box-shadow: 0 28px 50px -24px rgba(206, 18, 18, .35); }
.hm-svc-media { position: relative; aspect-ratio: 16 / 11; overflow: hidden; background: linear-gradient(135deg, #fee2e2, #fef3c7); }
.hm-svc-media img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s var(--hm-ease), filter .5s; filter: saturate(1.08) contrast(1.03); }
.hm-svc-card:hover .hm-svc-media img { transform: scale(1.08); }
.hm-svc-media::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(15, 23, 42, 0) 45%, rgba(15, 23, 42, .55)); }
.hm-svc-media::before { content: ''; position: absolute; z-index: 2; top: 0; left: -75%; width: 50%; height: 100%; background: linear-gradient(120deg, transparent, rgba(255, 255, 255, .35), transparent); transform: skewX(-20deg); transition: left .9s; }
.hm-svc-card:hover .hm-svc-media::before { left: 130%; }
.hm-svc-cat { position: absolute; z-index: 3; top: 14px; left: 14px; padding: 5px 12px; border-radius: 999px; background: rgba(255, 255, 255, .92); color: var(--hm-red); font-size: 11.5px; font-weight: 800; letter-spacing: .02em; backdrop-filter: blur(6px); }
.hm-svc-price { position: absolute; z-index: 3; bottom: 14px; right: 14px; padding: 6px 12px; border-radius: 10px; background: linear-gradient(135deg, var(--hm-red), var(--hm-red2)); color: #fff; font-size: 12.5px; font-weight: 700; box-shadow: 0 8px 18px -8px rgba(206, 18, 18, .8); }
.hm-svc-body { padding: 20px 22px 22px; display: flex; flex-direction: column; flex: 1; }
.hm-svc-body h4 { font-size: 18px; font-weight: 800; color: var(--hm-ink); margin: 0 0 8px; }
.hm-svc-body p { font-size: 14px; color: var(--hm-muted); line-height: 1.6; margin: 0 0 16px; flex: 1; }
.hm-svc-cta { align-self: flex-start; font-weight: 700; font-size: 14px; color: var(--hm-red) !important; text-decoration: none !important; display: inline-flex; gap: 6px; align-items: center; }
.hm-svc-cta i { transition: transform .25s var(--hm-ease); }
.hm-svc-cta:hover i { transform: translateX(5px); }

/* ---------- ONLINE SERVICES PORTAL ---------- */
.hm-portal { position: relative; padding: 80px 0; overflow: hidden; color: #fff; background: radial-gradient(circle at 15% 20%, #1e293b 0%, #0f172a 55%, #020617 100%); }
.hm-portal-glow { position: absolute; border-radius: 50%; filter: blur(80px); opacity: .5; pointer-events: none; animation: hmFloat 18s ease-in-out infinite; }
.hm-portal-glow.g1 { width: 380px; height: 380px; background: #b91c1c; top: -120px; left: -100px; }
.hm-portal-glow.g2 { width: 320px; height: 320px; background: #4338ca; bottom: -140px; right: -60px; animation-delay: -7s; }
.hm-portal h2 { font-size: clamp(28px, 3.6vw, 40px); font-weight: 800; margin: 16px 0 12px; color: #fff; line-height: 1.15; }
.hm-portal h2 span { display: block; background: linear-gradient(90deg, #ff6b6b, #fbbf24); -webkit-background-clip: text; background-clip: text; color: transparent; }
.hm-portal p { color: rgba(255, 255, 255, .72); font-size: 15.5px; line-height: 1.7; max-width: 520px; }
.hm-portal-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
@media (max-width: 575px) { .hm-portal-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.hm-portal-tile { position: relative; display: flex; flex-direction: column; gap: 4px; padding: 20px 18px; border-radius: 20px; background: rgba(255, 255, 255, .05); border: 1px solid rgba(255, 255, 255, .1); color: #fff !important; text-decoration: none !important; overflow: hidden; transition: transform .35s var(--hm-ease), border-color .35s, background .35s; }
.hm-portal-tile::before { content: ''; position: absolute; width: 140px; height: 140px; border-radius: 50%; background: var(--c); filter: blur(50px); opacity: 0; top: -60px; right: -60px; transition: opacity .35s; }
.hm-portal-tile:hover { transform: translateY(-6px); border-color: var(--c); background: rgba(255, 255, 255, .08); }
.hm-portal-tile:hover::before { opacity: .45; }
.hm-portal-tile i { width: 44px; height: 44px; display: grid; place-items: center; border-radius: 14px; font-size: 21px; color: var(--c); background: rgba(255, 255, 255, .08); margin-bottom: 8px; position: relative; }
.hm-portal-tile b { font-size: 15px; position: relative; }
.hm-portal-tile small { font-size: 12.5px; color: rgba(255, 255, 255, .6); position: relative; }

/* ---------- ESTABLISHMENTS ---------- */
.hm-est { padding: 90px 0; background: linear-gradient(180deg, var(--hm-soft), #fff); }
.hm-est-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); grid-auto-rows: 300px; gap: 20px; }
.hm-est-card.is-wide { grid-column: span 2; grid-row: span 2; }
@media (max-width: 991px) { .hm-est-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-rows: 260px; } .hm-est-card.is-wide { grid-row: span 1; } }
@media (max-width: 575px) { .hm-est-grid { grid-template-columns: 1fr; grid-auto-rows: 240px; } .hm-est-card.is-wide { grid-column: span 1; } }
.hm-est-card { position: relative; display: block; border-radius: var(--hm-radius); overflow: hidden; color: #fff !important; text-decoration: none !important; box-shadow: 0 18px 40px -24px rgba(15, 23, 42, .5); isolation: isolate; }
.hm-est-card img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform 1s var(--hm-ease); z-index: -2; }
.hm-est-card::before { content: ''; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(15, 23, 42, .05) 20%, rgba(15, 23, 42, .9) 100%); transition: background .4s; }
.hm-est-card:hover img { transform: scale(1.1); }
.hm-est-card:hover::before { background: linear-gradient(180deg, rgba(206, 18, 18, .15) 0%, rgba(127, 29, 29, .92) 100%); }
.hm-est-badge { position: absolute; top: 16px; left: 16px; padding: 6px 12px; border-radius: 999px; font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: .05em; background: rgba(255, 255, 255, .16); border: 1px solid rgba(255, 255, 255, .3); backdrop-filter: blur(8px); }
.hm-est-body { position: absolute; left: 0; right: 0; bottom: 0; padding: 22px; transform: translateY(28px); transition: transform .45s var(--hm-ease); }
.hm-est-card:hover .hm-est-body { transform: none; }
.hm-est-ic { width: 42px; height: 42px; display: grid; place-items: center; border-radius: 12px; background: linear-gradient(135deg, var(--hm-red), var(--hm-red2)); font-size: 19px; margin-bottom: 10px; box-shadow: 0 8px 18px -8px rgba(255, 75, 75, .9); }
.hm-est-body h4 { color: #fff; font-size: 20px; font-weight: 800; margin: 0 0 4px; }
.is-wide .hm-est-body h4 { font-size: 28px; }
.hm-est-body p { color: rgba(255, 255, 255, .82); font-size: 13.5px; margin: 0 0 10px; }
.hm-est-more { font-size: 13px; font-weight: 700; opacity: 0; transition: opacity .35s; }
.hm-est-card:hover .hm-est-more { opacity: 1; }
@media (hover: none) { .hm-est-body { transform: none; } .hm-est-more { opacity: 1; } }

/* ---------- TEAM ---------- */
.hm-team { padding: 90px 0; background: radial-gradient(circle at 10% 0%, #fff1f2 0%, #fff 40%), #fff; position: relative; overflow: hidden; }
.hm-team-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 360px)); justify-content: center; gap: 28px; }
.hm-member { position: relative; background: rgba(255, 255, 255, .9); border: 1px solid var(--hm-line); border-radius: 28px; padding: 0 24px 22px; text-align: center; overflow: hidden; box-shadow: 0 24px 50px -32px rgba(15, 23, 42, .45); transition: transform .45s var(--hm-ease), box-shadow .45s, border-color .45s; display: flex; flex-direction: column; align-items: center; }
.hm-member:hover { transform: translateY(-10px); box-shadow: 0 36px 70px -30px rgba(206, 18, 18, .45); border-color: rgba(206, 18, 18, .25); }
.hm-member-cover { height: 118px; align-self: stretch; margin: 0 -24px; background: linear-gradient(135deg, #7f1d1d, var(--hm-red) 45%, #f97316); position: relative; overflow: hidden; }
.hm-member.is-owner .hm-member-cover { background: linear-gradient(135deg, #0f172a, #7f1d1d 50%, var(--hm-red)); }
.hm-member-cover::after { content: ""; position: absolute; inset: 0; background-image: radial-gradient(rgba(255, 255, 255, .22) 1.5px, transparent 1.5px); background-size: 16px 16px; }
.hm-member-cover span { position: absolute; border-radius: 50%; background: rgba(255, 255, 255, .14); animation: hmFloat 12s ease-in-out infinite; }
.hm-member-cover span:first-child { width: 120px; height: 120px; top: -50px; right: -30px; }
.hm-member-cover span:last-child { width: 70px; height: 70px; bottom: -30px; left: 20px; animation-delay: -6s; }
.hm-member-photo { display: block; width: 136px; height: 136px; margin: -68px auto 14px; border-radius: 50%; padding: 4px; background: conic-gradient(from 0deg, var(--hm-red), #f59e0b, #fde68a, var(--hm-red)); box-shadow: 0 16px 32px -14px rgba(15, 23, 42, .55); position: relative; z-index: 2; }
.hm-member-photo img { width: 100%; height: 100%; border-radius: 50%; object-fit: cover; border: 4px solid #fff; transition: transform .5s var(--hm-ease); }
.hm-member:hover .hm-member-photo img { transform: scale(1.06); }
.hm-member-tick { position: absolute; right: 4px; bottom: 8px; width: 30px; height: 30px; display: grid; place-items: center; border-radius: 50%; background: #fff; color: #2563eb; font-size: 18px; box-shadow: 0 6px 14px -6px rgba(15, 23, 42, .5); }
.hm-member h4 { font-size: 22px; font-weight: 800; color: var(--hm-ink); margin: 0 0 8px; letter-spacing: -.01em; }
.hm-member-role { display: inline-flex; align-items: center; flex-wrap: wrap; justify-content: center; gap: 6px; padding: 6px 14px; border-radius: 999px; font-size: 12.5px; font-weight: 800; color: var(--hm-red); background: rgba(206, 18, 18, .08); border: 1px solid rgba(206, 18, 18, .15); }
.hm-member-role .sep { opacity: .5; }
.hm-member-role [itemprop="worksFor"] { color: var(--hm-ink); }
.hm-member-loc { display: block; margin-top: 8px; color: var(--hm-muted); font-size: 12.5px; font-weight: 600; }
.hm-member-loc i { color: var(--hm-red); }
.hm-member p { color: var(--hm-muted); font-size: 14px; line-height: 1.65; margin: 12px 0 14px; }
.hm-member-social { display: flex; justify-content: center; flex-wrap: wrap; gap: 8px; margin-bottom: 14px; }
.hm-member-social:empty { display: none; }
.hm-member-social a { width: 38px; height: 38px; display: grid; place-items: center; border-radius: 12px; font-size: 17px; color: #475569; background: var(--hm-soft); border: 1px solid var(--hm-line); text-decoration: none !important; transition: transform .25s var(--hm-ease), background .25s, color .25s, box-shadow .25s; }
.hm-member-social a:hover { color: #fff; transform: translateY(-4px); }
.hm-member-social .s-facebook:hover { background: #1877f2; box-shadow: 0 8px 18px -8px #1877f2; }
.hm-member-social .s-instagram:hover { background: linear-gradient(45deg, #f58529, #dd2a7b, #8134af); box-shadow: 0 8px 18px -8px #dd2a7b; }
.hm-member-social .s-twitter:hover { background: #0f172a; }
.hm-member-social .s-linkedin:hover { background: #0a66c2; box-shadow: 0 8px 18px -8px #0a66c2; }
.hm-member-social .s-youtube:hover { background: #ff0000; box-shadow: 0 8px 18px -8px #ff0000; }
.hm-member-cta { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; width: 100%; margin-top: auto; padding-top: 14px; border-top: 1px dashed var(--hm-line); }
.hm-member-cta a { display: inline-flex; align-items: center; justify-content: center; gap: 6px; padding: 9px 10px; border-radius: 12px; font-size: 13.5px; font-weight: 700; text-decoration: none !important; transition: transform .25s var(--hm-ease), box-shadow .25s; }
.hm-member-cta a:hover { transform: translateY(-2px); }
.hm-member-cta .wa { background: #dcfce7; color: #15803d !important; }
.hm-member-cta .wa:hover { box-shadow: 0 10px 20px -10px #16a34a; }
.hm-member-cta .call { background: linear-gradient(135deg, var(--hm-red), var(--hm-red2)); color: #fff !important; }
.hm-member-cta .call:hover { box-shadow: 0 10px 20px -10px var(--hm-red); }

/* ---------- GALLERY ---------- */
.hm-gallery { padding: 90px 0; background: linear-gradient(180deg, #fff, var(--hm-soft)); }
.hm-gal-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); grid-auto-rows: 220px; gap: 16px; }
.hm-gal-grid .hm-gal-item:first-child { grid-column: span 2; grid-row: span 2; }
.hm-gal-grid.n2 { grid-template-columns: 1fr 1fr; grid-auto-rows: 360px; }
.hm-gal-grid.n2 .hm-gal-item:first-child, .hm-gal-grid.n3 .hm-gal-item:first-child { grid-row: span 2; }
.hm-gal-grid.n3 { grid-template-columns: 2fr 1fr; grid-auto-rows: 230px; }
.hm-gal-grid.n3 .hm-gal-item:first-child, .hm-gal-grid.n2 .hm-gal-item:first-child { grid-column: span 1; }
.hm-gal-grid.n4 { grid-template-columns: 2fr 1fr 1fr; grid-auto-rows: 240px; }
.hm-gal-grid.n4 .hm-gal-item:first-child { grid-column: span 1; }
.hm-gal-grid.n4 .hm-gal-item:nth-child(4) { grid-column: span 2; }
.hm-gal-grid.n1 { grid-template-columns: 1fr; grid-auto-rows: 420px; }
@media (max-width: 767px) {
  .hm-gal-grid, .hm-gal-grid.n2, .hm-gal-grid.n3, .hm-gal-grid.n4 { grid-template-columns: 1fr 1fr; grid-auto-rows: 170px; gap: 10px; }
  .hm-gal-grid .hm-gal-item:first-child { grid-column: span 2; grid-row: span 1; }
  .hm-gal-grid.n4 .hm-gal-item:nth-child(4) { grid-column: span 1; }
}
.hm-gal-item { position: relative; display: block; border-radius: 20px; overflow: hidden; background: #e2e8f0; box-shadow: 0 16px 34px -24px rgba(15, 23, 42, .5); }
.hm-gal-item img { width: 100%; height: 100%; object-fit: cover; transition: transform 1s var(--hm-ease), filter .5s; }
.hm-gal-item:hover img { transform: scale(1.1); filter: brightness(.85); }
.hm-gal-ov { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8px; color: #fff; background: linear-gradient(180deg, transparent, rgba(127, 29, 29, .55)); opacity: 0; transition: opacity .4s; }
.hm-gal-ov i { width: 48px; height: 48px; display: grid; place-items: center; border-radius: 50%; background: rgba(255, 255, 255, .2); backdrop-filter: blur(6px); font-size: 18px; transform: scale(.6); transition: transform .45s var(--hm-ease); }
.hm-gal-ov b { font-size: 14px; }
.hm-gal-item:hover .hm-gal-ov { opacity: 1; }
.hm-gal-item:hover .hm-gal-ov i { transform: none; }

/* ---------- CALL-BACK POPUP ---------- */
.hm-cb .modal-content { border: 0; border-radius: 24px; overflow: hidden; box-shadow: 0 40px 80px -30px rgba(15, 23, 42, .55); }
.hm-cb-head { display: flex; gap: 14px; align-items: flex-start; padding: 22px 22px 18px; color: #fff; background: linear-gradient(135deg, var(--hm-red), #f97316); position: relative; }
.hm-cb-head h5 { margin: 0 0 4px; font-weight: 800; font-size: 20px; color: #fff; }
.hm-cb-head p { margin: 0; font-size: 13px; opacity: .9; line-height: 1.5; }
.hm-cb-head .btn-close { filter: invert(1); opacity: .9; margin-left: auto; }
.hm-cb-ic { flex: none; width: 46px; height: 46px; border-radius: 14px; display: grid; place-items: center; font-size: 21px; background: rgba(255, 255, 255, .2); }
.hm-cb-ic i { animation: hmRing 2.4s infinite; display: inline-block; }
.hm-cb-body { padding: 20px 22px 22px; }
.hm-cb-body label { display: block; font-size: 12.5px; font-weight: 700; color: #475569; margin-bottom: 5px; }
.hm-cb-body input, .hm-cb-body select, .hm-cb-body textarea { width: 100%; padding: 11px 14px; border-radius: 12px; border: 1px solid var(--hm-line); background: var(--hm-soft); font-size: 14px; color: var(--hm-ink); outline: none; transition: border-color .2s, box-shadow .2s, background .2s; }
.hm-cb-body input:focus, .hm-cb-body select:focus, .hm-cb-body textarea:focus { border-color: var(--hm-red); background: #fff; box-shadow: 0 0 0 4px rgba(206, 18, 18, .1); }
.hm-cb-body .is-invalid { border-color: #dc2626 !important; }
.hm-cb-alert { margin-top: 14px; padding: 12px 14px; border-radius: 12px; font-size: 13.5px; font-weight: 600; }
.hm-cb-alert.ok { background: #ecfdf5; color: #047857; border: 1px solid #a7f3d0; }
.hm-cb-alert.err { background: #fef2f2; color: #b91c1c; border: 1px solid #fecaca; }
.hm-cb-note { display: block; text-align: center; margin-top: 10px; color: var(--hm-muted); font-size: 12px; }


/* ---------- TESTIMONIALS ---------- */
.hm-testi { padding: 90px 0; background: linear-gradient(180deg, var(--hm-soft), #fff); position: relative; overflow: hidden; }
.hm-testi-top { display: flex; justify-content: space-between; align-items: center; gap: 16px; flex-wrap: wrap; margin-bottom: 22px; }
.hm-testi-score { display: flex; align-items: center; gap: 14px; background: #fff; border: 1px solid var(--hm-line); border-radius: 18px; padding: 12px 18px; box-shadow: 0 14px 30px -24px rgba(15, 23, 42, .5); }
.hm-testi-score > b { font-size: 34px; font-weight: 800; color: var(--hm-ink); line-height: 1; font-family: var(--font-primary, 'Outfit', sans-serif); }
.hm-testi-score small { display: block; color: var(--hm-muted); font-size: 12.5px; font-weight: 600; margin-top: 2px; }
.hm-stars { color: #f59e0b; font-size: 14px; letter-spacing: 2px; }
.hm-testi-nav { display: flex; gap: 8px; }
.hm-testi-btn { width: 44px; height: 44px; border-radius: 50%; border: 1px solid var(--hm-line); background: #fff; color: var(--hm-ink); font-size: 18px; display: grid; place-items: center; cursor: pointer; transition: background .25s, color .25s, transform .25s var(--hm-ease); }
.hm-testi-btn:hover { background: var(--hm-red); color: #fff; transform: translateY(-2px); }
.hm-testi-track { display: grid; grid-auto-flow: column; grid-auto-columns: calc((100% - 40px) / 3); gap: 20px; overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth; padding: 6px 2px 18px; scrollbar-width: none; }
.hm-testi-track::-webkit-scrollbar { display: none; }
.hm-testi-card { scroll-snap-align: start; position: relative; margin: 0; background: #fff; border: 1px solid var(--hm-line); border-radius: 24px; padding: 24px; display: flex; flex-direction: column; gap: 12px; box-shadow: 0 18px 40px -30px rgba(15, 23, 42, .45); transition: transform .4s var(--hm-ease), box-shadow .4s, border-color .4s; }
.hm-testi-card:hover { transform: translateY(-6px); border-color: rgba(206, 18, 18, .25); box-shadow: 0 28px 50px -30px rgba(206, 18, 18, .45); }
.hm-testi-q { position: absolute; top: 10px; right: 18px; font-size: 64px; line-height: 1; color: rgba(206, 18, 18, .1); }
.hm-testi-card blockquote { margin: 0; color: #334155; font-size: 14.5px; line-height: 1.7; flex: 1; }
.hm-testi-card figcaption { display: flex; align-items: center; gap: 12px; padding-top: 12px; border-top: 1px dashed var(--hm-line); }
.hm-testi-card figcaption img, .hm-testi-av { width: 46px; height: 46px; border-radius: 50%; object-fit: cover; flex: none; box-shadow: 0 0 0 3px #fff, 0 0 0 5px rgba(206, 18, 18, .2); }
.hm-testi-av { display: grid; place-items: center; font-weight: 800; color: #fff; background: linear-gradient(135deg, var(--hm-red), #f97316); }
.hm-testi-card figcaption b { display: block; color: var(--hm-ink); font-size: 15px; }
.hm-testi-card figcaption small { color: #16a34a; font-size: 12px; font-weight: 700; }
@media (max-width: 991px) { .hm-testi-track { grid-auto-columns: calc((100% - 20px) / 2); } }

/* ---------- MOBILE: less scrolling ---------- */
@media (max-width: 767px) {
  .hm-svc, .hm-est, .hm-team, .hm-gallery, .hm-testi, .hm-portal { padding: 56px 0 !important; }
  .hm-head { margin-bottom: 24px; }
  .hm-head p { font-size: 13.5px; }

  /* about: 2 tiles per row */
  .hm-about-grid { grid-template-columns: 1fr 1fr !important; gap: 10px; }
  .hm-about-tile { padding: 12px; }
  .hm-about-tile i { width: 34px; height: 34px; font-size: 16px; margin-bottom: 6px; }
  .hm-about-tile h4 { font-size: 13.5px; }
  .hm-about-tile p { font-size: 11.5px; }

  /* premium services: 3 small cards per row */
  .hm-svc-grid { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; gap: 10px; }
  .hm-svc-card { border-radius: 16px; }
  .hm-svc-media { aspect-ratio: 1 / 1; }
  .hm-svc-cat { display: none; }
  .hm-svc-price { font-size: 9.5px; padding: 3px 6px; border-radius: 6px; bottom: 6px; right: 6px; left: 6px; text-align: center; }
  .hm-svc-body { padding: 9px 8px 10px; }
  .hm-svc-body h4 { font-size: 12px; line-height: 1.3; margin-bottom: 6px; }
  .hm-svc-body p { display: none; }
  .hm-svc-cta { font-size: 11px; }
  .hm-svc-card:hover { transform: none; }

  /* online services portal: heading + 2 buttons only */
  .hm-portal p, .hm-portal-grid, .hm-portal .col-lg-7 { display: none !important; }
  .hm-portal { text-align: center; }
  .hm-portal .d-flex { justify-content: center; }
  .hm-portal h2 { font-size: 24px; margin: 12px 0 6px; }

  /* establishments: 3 small tiles per row */
  .hm-est-grid { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; grid-auto-rows: 150px !important; gap: 8px; }
  .hm-est-card.is-wide { grid-column: span 1 !important; grid-row: span 1 !important; }
  .hm-est-card { border-radius: 14px; }
  .hm-est-badge, .hm-est-body p, .hm-est-more, .hm-est-ic { display: none; }
  .hm-est-body { padding: 10px; transform: none; }
  .hm-est-body h4, .is-wide .hm-est-body h4 { font-size: 13px; }
  .is-wide .hm-est-body h4 { font-size: 13px; }

  /* team: 2 cards per row */
  .hm-team-grid { grid-template-columns: 1fr 1fr !important; gap: 10px; }
  .hm-member { padding: 0 10px 12px; border-radius: 18px; }
  .hm-member-cover { height: 64px; margin: 0 -10px; }
  .hm-member-photo { width: 84px; height: 84px; margin: -42px auto 8px; padding: 3px; }
  .hm-member-photo img { border-width: 3px; }
  .hm-member-tick { width: 22px; height: 22px; font-size: 13px; right: 0; bottom: 4px; }
  .hm-member h4 { font-size: 14.5px; margin-bottom: 6px; }
  .hm-member-role { font-size: 10px; padding: 4px 8px; gap: 3px; }
  .hm-member-loc { font-size: 10.5px; }
  .hm-member p { display: none; }
  .hm-member-social { gap: 5px; margin: 10px 0; }
  .hm-member-social a { width: 30px; height: 30px; font-size: 14px; border-radius: 9px; }
  .hm-member-cta { grid-template-columns: 1fr 1fr; gap: 6px; padding-top: 10px; }
  .hm-member-cta a { font-size: 11.5px; padding: 7px 4px; border-radius: 10px; }
  .hm-member:hover { transform: none; }

  /* testimonials: smaller swipe cards */
  .hm-testi-track { grid-auto-columns: 78%; gap: 12px; }
  .hm-testi-card { padding: 16px; border-radius: 18px; gap: 8px; }
  .hm-testi-card blockquote { font-size: 13px; line-height: 1.6; }
  .hm-testi-q { font-size: 44px; }
  .hm-testi-score { padding: 8px 12px; }
  .hm-testi-score > b { font-size: 26px; }
  .hm-testi-btn { width: 38px; height: 38px; }
  .hm-testi-card figcaption img, .hm-testi-av { width: 38px; height: 38px; }

  /* stats: tighter */
  .hm-stats { padding: 40px 0; }
}
@media (max-width: 380px) {
  .hm-svc-body h4 { font-size: 11px; }
  .hm-member-cta a { font-size: 10.5px; }
}


/* =====================================================================
   INNER PAGES (About, Services, Team, Gallery, Insurance, Contact, Establishments)
   ===================================================================== */
.hm-page-hero { position: relative; overflow: hidden; padding: 130px 0 56px; background: linear-gradient(180deg, #fff 0%, #fff5f5 100%); text-align: center; }
.hm-page-hero-sm { padding: 120px 0 40px; }
.hm-page-hero .hm-blob { opacity: .45; }
.hm-page-hero h1 { font-size: clamp(30px, 4.6vw, 50px); font-weight: 800; color: var(--hm-ink); letter-spacing: -.03em; margin: 12px 0 10px; }
.hm-page-hero p { color: #475569; font-size: 16px; max-width: 680px; margin: 0 auto; line-height: 1.7; }
.hm-page-hero .hm-hero-btns { justify-content: center; margin-top: 22px; }
.hm-crumbs { display: inline-flex; align-items: center; gap: 8px; padding: 6px 14px; border-radius: 999px; background: #fff; border: 1px solid var(--hm-line); font-size: 13px; font-weight: 600; color: var(--hm-muted); box-shadow: 0 8px 20px -14px rgba(15, 23, 42, .35); }
.hm-crumbs a { color: var(--hm-red); text-decoration: none; }
.hm-crumbs i { font-size: 10px; }

.hm-section { padding: 80px 0; background: #fff; }
.hm-section-soft { background: linear-gradient(180deg, var(--hm-soft), #fff); }
.hm-h2 { font-size: clamp(26px, 3.4vw, 38px); font-weight: 800; color: var(--hm-ink); letter-spacing: -.02em; margin: 14px 0 12px; }
.hm-lead { color: #475569; font-size: 15.5px; line-height: 1.75; }
.hm-stats-plain { background: linear-gradient(135deg, #0f172a, #7f1d1d) !important; }

.hm-btn-sm { padding: 8px 16px; font-size: 13.5px; }
.hm-btn-icon { padding: 8px 12px; }
.hm-btn-light { background: #fff; color: var(--hm-red) !important; box-shadow: 0 10px 24px -10px rgba(0, 0, 0, .35); }

/* values */
.hm-values { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; }
@media (max-width: 991px) { .hm-values { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.hm-value { background: #fff; border: 1px solid var(--hm-line); border-radius: 22px; padding: 24px 20px; position: relative; overflow: hidden; transition: transform .35s var(--hm-ease), box-shadow .35s, border-color .35s; }
.hm-value::after { content: ""; position: absolute; right: -40px; top: -40px; width: 120px; height: 120px; border-radius: 50%; background: var(--c); opacity: .07; transition: transform .5s var(--hm-ease); }
.hm-value:hover { transform: translateY(-6px); border-color: var(--c); box-shadow: 0 22px 40px -26px var(--c); }
.hm-value:hover::after { transform: scale(1.6); }
.hm-value i { display: inline-grid; place-items: center; width: 50px; height: 50px; border-radius: 16px; font-size: 22px; color: #fff; background: var(--c); box-shadow: 0 10px 20px -10px var(--c); margin-bottom: 14px; }
.hm-value h4 { font-size: 17px; font-weight: 800; color: var(--hm-ink); margin: 0 0 6px; }
.hm-value p { color: var(--hm-muted); font-size: 14px; margin: 0; line-height: 1.6; }

/* certificates */
.hm-certs { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 18px; }
.hm-cert { display: block; background: #fff; border: 1px solid var(--hm-line); border-radius: 20px; padding: 12px; text-decoration: none !important; transition: transform .35s var(--hm-ease), box-shadow .35s; }
.hm-cert:hover { transform: translateY(-6px); box-shadow: 0 22px 40px -26px rgba(206, 18, 18, .5); }
.hm-cert-img { position: relative; display: block; border-radius: 14px; overflow: hidden; background: var(--hm-soft); }
.hm-cert-img img { width: 100%; height: auto; display: block; transition: transform .6s var(--hm-ease); }
.hm-cert-img i { position: absolute; inset: 0; display: grid; place-items: center; font-size: 26px; color: #fff; background: rgba(206, 18, 18, .45); opacity: 0; transition: opacity .3s; }
.hm-cert:hover .hm-cert-img img { transform: scale(1.05); }
.hm-cert:hover .hm-cert-img i { opacity: 1; }
.hm-cert b { display: block; text-align: center; color: var(--hm-ink); font-size: 14.5px; margin-top: 10px; }
.hm-empty { max-width: 560px; margin: 0 auto; text-align: center; padding: 40px 24px; border-radius: 24px; border: 2px dashed rgba(206, 18, 18, .15); background: rgba(206, 18, 18, .02); }
.hm-empty i { font-size: 40px; color: var(--hm-red); }
.hm-empty h4 { font-weight: 800; color: var(--hm-ink); margin: 10px 0 6px; }
.hm-empty p { color: var(--hm-muted); margin: 0; }

/* FAQ */
.hm-faq { max-width: 820px; margin: 0 auto; display: grid; gap: 12px; }
.hm-faq details { background: #fff; border: 1px solid var(--hm-line); border-radius: 18px; padding: 0 20px; transition: box-shadow .3s, border-color .3s; }
.hm-faq details[open] { border-color: rgba(206, 18, 18, .3); box-shadow: 0 16px 34px -26px rgba(206, 18, 18, .5); }
.hm-faq summary { list-style: none; cursor: pointer; padding: 18px 30px 18px 0; font-weight: 700; color: var(--hm-ink); font-size: 15.5px; position: relative; }
.hm-faq summary::-webkit-details-marker { display: none; }
.hm-faq summary::after { content: "+"; position: absolute; right: 0; top: 50%; transform: translateY(-50%); width: 26px; height: 26px; border-radius: 50%; display: grid; place-items: center; background: rgba(206, 18, 18, .08); color: var(--hm-red); font-weight: 800; transition: transform .3s; }
.hm-faq details[open] summary::after { content: "–"; }
.hm-faq details p { color: #475569; margin: 0 0 18px; line-height: 1.7; }

/* CTA band */
.hm-cta-band { padding: 60px 0; background: #fff; }
.hm-cta-inner { display: flex; align-items: center; justify-content: space-between; gap: 20px; flex-wrap: wrap; padding: 34px 36px; border-radius: 28px; color: #fff; position: relative; overflow: hidden; background: linear-gradient(135deg, #7f1d1d, var(--hm-red) 55%, #f97316); box-shadow: 0 30px 60px -30px rgba(206, 18, 18, .7); }
.hm-cta-inner::before { content: ""; position: absolute; width: 300px; height: 300px; border-radius: 50%; background: rgba(255, 255, 255, .12); top: -150px; right: 10%; animation: hmFloat 14s ease-in-out infinite; }
.hm-cta-inner h3 { color: #fff; font-weight: 800; font-size: clamp(20px, 2.6vw, 28px); margin: 0 0 6px; position: relative; }
.hm-cta-inner p { margin: 0; opacity: .9; position: relative; }
.hm-cta-inner .d-flex { position: relative; }

/* Services page: highlighted desks */
.hm-desks { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; margin-top: 34px; text-align: left; }
@media (max-width: 991px) { .hm-desks { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.hm-desk { position: relative; display: flex; flex-direction: column; gap: 4px; padding: 20px; border-radius: 22px; background: #fff; border: 1px solid var(--hm-line); text-decoration: none !important; overflow: hidden; box-shadow: 0 18px 36px -28px rgba(15, 23, 42, .45); transition: transform .35s var(--hm-ease), box-shadow .35s, border-color .35s; }
.hm-desk::before { content: ""; position: absolute; inset: 0 0 auto 0; height: 4px; background: var(--c); }
.hm-desk::after { content: ""; position: absolute; width: 140px; height: 140px; border-radius: 50%; background: var(--c); opacity: .07; right: -50px; bottom: -60px; transition: transform .5s var(--hm-ease); }
.hm-desk:hover { transform: translateY(-6px); border-color: var(--c); box-shadow: 0 26px 44px -26px var(--c); }
.hm-desk:hover::after { transform: scale(1.5); }
.hm-desk-ic { width: 48px; height: 48px; display: grid; place-items: center; border-radius: 15px; font-size: 22px; color: #fff; background: var(--c); box-shadow: 0 10px 20px -10px var(--c); margin-bottom: 8px; }
.hm-desk b { color: var(--hm-ink); font-size: 17px; }
.hm-desk small { color: var(--hm-muted); font-size: 13px; line-height: 1.5; }
.hm-desk-go { margin-top: 8px; color: var(--c); font-weight: 700; font-size: 13.5px; position: relative; z-index: 1; }
.hm-desk-go i { transition: transform .25s var(--hm-ease); }
.hm-desk:hover .hm-desk-go i { transform: translateX(4px); }

/* filter chips */
.hm-filter { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; margin: 0 auto 28px; }
.hm-filter button { border: 1px solid var(--hm-line); background: #fff; color: #475569; border-radius: 999px; padding: 8px 16px; font-weight: 700; font-size: 13.5px; cursor: pointer; transition: background .25s, color .25s, border-color .25s; display: inline-flex; gap: 6px; align-items: center; }
.hm-filter button small { font-size: 11px; background: var(--hm-soft); border-radius: 999px; padding: 1px 7px; color: var(--hm-muted); }
.hm-filter button:hover { border-color: var(--hm-red); color: var(--hm-red); }
.hm-filter button.active { background: linear-gradient(135deg, var(--hm-red), var(--hm-red2)); color: #fff; border-color: transparent; box-shadow: 0 8px 18px -8px rgba(206, 18, 18, .6); }
.hm-filter button.active small { background: rgba(255, 255, 255, .22); color: #fff; }
.hm-svc-page { padding: 70px 0 !important; }
.hm-svc-grid-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
@media (max-width: 1199px) { .hm-svc-grid-4 { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.hm-svc-actions { display: flex; gap: 8px; align-items: center; }
.hm-svc-actions .hm-btn-primary { flex: 1; justify-content: center; }
.hm-svc-actions .sd-enquire, .hm-svc-actions .sd-enquire:hover { margin-top: 0; width: auto; height: auto; border: 0; border-radius: 999px; background: linear-gradient(135deg, var(--hm-red), var(--hm-red2)); color: #fff; }
.hm-hide { display: none !important; }
.hm-pop-in { animation: hmPopIn .45s var(--hm-ease); }
@keyframes hmPopIn { from { opacity: 0; transform: translateY(14px) scale(.97); } to { opacity: 1; transform: none; } }

/* Gallery page masonry */
.hm-gallery-page { padding-top: 40px !important; }
.hm-gal-masonry { columns: 3 280px; column-gap: 16px; }
.hm-gal-masonry .hm-gal-item { display: block; margin-bottom: 16px; break-inside: avoid; }
.hm-gal-masonry .hm-gal-item img { height: auto; }

/* Contact */
.hm-contact { padding: 60px 0 80px; background: #fff; }
.hm-contact-home { padding-top: 90px; }
.hm-ct-cards { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; margin-bottom: 26px; }
@media (max-width: 991px) { .hm-ct-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.hm-ct-card { background: #fff; border: 1px solid var(--hm-line); border-radius: 22px; padding: 22px 20px; position: relative; overflow: hidden; transition: transform .35s var(--hm-ease), box-shadow .35s, border-color .35s; }
.hm-ct-card:hover { transform: translateY(-5px); border-color: var(--c); box-shadow: 0 22px 40px -28px var(--c); }
.hm-ct-card > i { display: inline-grid; place-items: center; width: 46px; height: 46px; border-radius: 14px; font-size: 20px; color: #fff; background: var(--c); box-shadow: 0 10px 20px -10px var(--c); margin-bottom: 12px; }
.hm-ct-card h3 { font-size: 16px; font-weight: 800; color: var(--hm-ink); margin: 0 0 6px; }
.hm-ct-card p { color: #475569; font-size: 14px; line-height: 1.6; margin: 0 0 10px; word-break: break-word; }
.hm-ct-card p a { color: #475569; text-decoration: none; }
.hm-ct-card > a { font-size: 13.5px; font-weight: 700; color: var(--c); text-decoration: none; }
.hm-open-now { display: inline-flex; align-items: center; gap: 6px; font-size: 12.5px; font-weight: 700; padding: 4px 10px; border-radius: 999px; }
.hm-open-now.is-open { background: #dcfce7; color: #15803d; }
.hm-open-now.is-closed { background: #fee2e2; color: #b91c1c; }
.hm-ct-main { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; align-items: stretch; }
@media (max-width: 991px) { .hm-ct-main { grid-template-columns: 1fr; } }
.hm-ct-map { border-radius: 24px; overflow: hidden; border: 1px solid var(--hm-line); box-shadow: 0 24px 50px -32px rgba(15, 23, 42, .5); min-height: 420px; }
.hm-ct-map iframe { width: 100%; height: 100%; min-height: 420px; border: 0; display: block; }
.hm-ct-form { background: #fff; border: 1px solid rgba(206, 18, 18, .12); border-radius: 24px; box-shadow: 0 30px 60px -36px rgba(206, 18, 18, .55); overflow: hidden; }
.hm-ct-form-head { display: flex; gap: 14px; align-items: center; padding: 20px 22px; color: #fff; background: linear-gradient(135deg, var(--hm-red), #f97316); }
.hm-ct-form-head h4 { color: #fff; margin: 0 0 2px; font-weight: 800; font-size: 19px; }
.hm-ct-form-head p { margin: 0; font-size: 13px; opacity: .9; }

/* Establishments page */
.hm-est-list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; }
@media (max-width: 991px) { .hm-est-list { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.hm-est-row { background: #fff; border: 1px solid var(--hm-line); border-radius: 24px; overflow: hidden; display: flex; flex-direction: column; box-shadow: 0 20px 40px -30px rgba(15, 23, 42, .5); transition: transform .4s var(--hm-ease), box-shadow .4s; }
.hm-est-row:hover { transform: translateY(-8px); box-shadow: 0 30px 56px -30px rgba(206, 18, 18, .45); }
.hm-est-row-media { position: relative; display: block; aspect-ratio: 16 / 11; overflow: hidden; }
.hm-est-row-media img { width: 100%; height: 100%; object-fit: cover; transition: transform .9s var(--hm-ease); }
.hm-est-row:hover .hm-est-row-media img { transform: scale(1.08); }
.hm-est-row-media .hm-est-badge { color: #fff; background: rgba(15, 23, 42, .45); }
.hm-est-row-media:hover .hm-gal-ov { opacity: 1; }
.hm-est-row-body { padding: 0 22px 22px; display: flex; flex-direction: column; flex: 1; }
.hm-est-row-body .hm-est-ic { margin-top: -22px; position: relative; color: #fff; }
.hm-est-row-body h3 { font-size: 19px; font-weight: 800; color: var(--hm-ink); margin: 0 0 6px; }
.hm-est-row-body p { color: var(--hm-muted); font-size: 14px; margin: 0 0 16px; flex: 1; }

/* Insurance page */
.ins-bar { padding: 18px 0 0; background: #fff; }
.ins-bar-inner { display: flex; justify-content: space-between; align-items: center; gap: 14px; flex-wrap: wrap; padding: 14px 18px; border-radius: 20px; color: #fff; background: linear-gradient(135deg, #0f172a, #7f1d1d 60%, var(--hm-red)); box-shadow: 0 20px 40px -26px rgba(127, 29, 29, .8); position: relative; overflow: hidden; }
.ins-bar-inner::before { content: ""; position: absolute; width: 220px; height: 220px; border-radius: 50%; background: rgba(255, 255, 255, .08); right: 18%; top: -120px; }
.ins-bar-title { display: flex; align-items: center; gap: 12px; position: relative; }
.ins-bar-ic { width: 44px; height: 44px; flex: none; display: grid; place-items: center; border-radius: 14px; background: rgba(255, 255, 255, .14); font-size: 21px; }
.ins-bar h1 { color: #fff; font-size: 21px; font-weight: 800; margin: 0; line-height: 1.2; }
.ins-bar h1 span { color: #fca5a5; }
.ins-bar small { color: rgba(255, 255, 255, .75); font-size: 12.5px; }
.ins-bar-actions { display: flex; gap: 8px; position: relative; }
.ins-choose { padding-top: 26px !important; }
.ins-steps { display: flex !important; align-items: center; justify-content: center; gap: 0 !important; margin: 0 auto 26px !important; max-width: 760px; }
.ins-steps .sd-step { display: flex !important; align-items: center; gap: 10px; background: transparent !important; border: 0 !important; padding: 0 !important; box-shadow: none !important; color: var(--hm-muted); font-weight: 700; font-size: 14px; white-space: nowrap; }
.ins-steps .sd-step > b { width: 42px; height: 42px; flex: none; display: grid !important; place-items: center; border-radius: 50%; background: #fff; border: 2px solid var(--hm-line); color: var(--hm-muted); font-size: 18px; transition: background .3s, color .3s, border-color .3s, box-shadow .3s; }
.ins-steps .sd-step small { display: block; font-size: 11px; font-weight: 700; color: #94a3b8; text-transform: uppercase; letter-spacing: .05em; }
.ins-steps .sd-step.is-on { color: var(--hm-ink); }
.ins-steps .sd-step.is-on > b { background: linear-gradient(135deg, var(--hm-red), var(--hm-red2)); border-color: transparent; color: #fff; box-shadow: 0 10px 20px -8px rgba(206, 18, 18, .7); }
.ins-steps-line { flex: 1; height: 3px; min-width: 24px; margin: 0 12px; border-radius: 3px; background: linear-gradient(90deg, var(--hm-red), var(--hm-line)); opacity: .5; }
.ins-grid { grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)) !important; gap: 16px !important; }
.sd-type.ins-card { position: relative; display: flex !important; flex-direction: column; align-items: flex-start; text-align: left; gap: 6px; padding: 22px 20px 18px !important; border-radius: 22px !important; background: #fff !important; border: 1px solid var(--hm-line) !important; overflow: hidden; transition: transform .35s var(--hm-ease), box-shadow .35s, border-color .35s !important; }
.sd-type.ins-card::after { content: ""; position: absolute; width: 160px; height: 160px; border-radius: 50%; right: -60px; top: -60px; background: var(--c); opacity: .08; transition: transform .5s var(--hm-ease); }
.sd-type.ins-card:hover, .sd-type.ins-card.is-picked { transform: translateY(-6px); border-color: var(--c) !important; box-shadow: 0 24px 44px -26px var(--c) !important; }
.sd-type.ins-card:hover::after { transform: scale(1.5); }
.ins-card .ins-logo { width: 66px !important; height: 66px !important; border-radius: 20px !important; display: grid !important; place-items: center; font-size: 30px !important; color: #fff !important; background: linear-gradient(135deg, var(--c), color-mix(in srgb, var(--c) 60%, #000)) !important; box-shadow: 0 14px 26px -12px var(--c), inset 0 0 0 4px rgba(255, 255, 255, .18); margin-bottom: 8px; position: relative; z-index: 1; }
.ins-card .ins-logo i { color: #fff !important; }
.ins-card b { font-size: 17px; color: var(--hm-ink); position: relative; }
.ins-card small { color: var(--hm-muted); font-size: 13px; line-height: 1.5; position: relative; }
.ins-go { margin-top: 8px; color: var(--c); font-weight: 700; font-size: 13.5px; position: relative; }
.ins-go i { transition: transform .25s var(--hm-ease); }
.ins-card:hover .ins-go i { transform: translateX(4px); }
.ins-card .sd-type-go { display: none !important; }
.ins-card.is-hot { border-width: 2px !important; border-color: color-mix(in srgb, var(--c) 45%, #fff) !important; background: linear-gradient(180deg, color-mix(in srgb, var(--c) 6%, #fff), #fff 60%) !important; }
.ins-badge { position: absolute; top: 14px; right: 14px; z-index: 2; display: inline-flex; gap: 4px; align-items: center; padding: 4px 10px; border-radius: 999px; font-size: 11px; font-weight: 800; color: #fff; background: var(--c); box-shadow: 0 6px 14px -6px var(--c); }

@media (max-width: 767px) {
  .hm-page-hero { padding: 100px 0 34px; }
  .hm-page-hero-sm { padding: 96px 0 24px; }
  .hm-page-hero p { font-size: 14px; }
  .hm-section { padding: 50px 0; }
  .hm-values { gap: 10px; }
  .hm-value { padding: 16px 14px; border-radius: 16px; }
  .hm-value i { width: 40px; height: 40px; font-size: 18px; margin-bottom: 10px; }
  .hm-value h4 { font-size: 14.5px; }
  .hm-value p { font-size: 12.5px; }
  .hm-cta-inner { padding: 24px 20px; border-radius: 22px; text-align: center; justify-content: center; }
  .hm-desks { gap: 10px; margin-top: 22px; }
  .hm-desk { padding: 14px; border-radius: 16px; }
  .hm-desk-ic { width: 40px; height: 40px; font-size: 18px; }
  .hm-desk b { font-size: 14.5px; }
  .hm-desk small { font-size: 11.5px; }
  .hm-filter { flex-wrap: nowrap; overflow-x: auto; justify-content: flex-start; scrollbar-width: none; padding-bottom: 4px; }
  .hm-filter::-webkit-scrollbar { display: none; }
  .hm-filter button { white-space: nowrap; font-size: 12.5px; padding: 7px 13px; }
  .hm-svc-actions { flex-direction: column; align-items: stretch; gap: 6px; }
  .hm-svc-actions .hm-btn { font-size: 11px; padding: 6px 4px; justify-content: center; }
  .hm-svc-actions .hm-btn-icon { display: none; }
  .hm-gal-masonry { columns: 2 140px; column-gap: 10px; }
  .hm-gal-masonry .hm-gal-item { margin-bottom: 10px; border-radius: 14px; }
  .hm-ct-cards { gap: 10px; }
  .hm-ct-card { padding: 14px; border-radius: 16px; }
  .hm-ct-card > i { width: 38px; height: 38px; font-size: 17px; margin-bottom: 8px; }
  .hm-ct-card h3 { font-size: 14px; }
  .hm-ct-card p { font-size: 12.5px; }
  .hm-ct-card > a { font-size: 12px; }
  .hm-ct-map, .hm-ct-map iframe { min-height: 260px; }
  .hm-est-list { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .hm-est-row { border-radius: 16px; }
  .hm-est-row-body { padding: 0 12px 12px; }
  .hm-est-row-body .hm-est-ic { width: 34px; height: 34px; font-size: 15px; margin-top: -17px; }
  .hm-est-row-body h3 { font-size: 14.5px; }
  .hm-est-row-body p { font-size: 12px; margin-bottom: 10px; }
  .hm-est-row-body .hm-btn { font-size: 11.5px; padding: 6px 10px; }
  .hm-est-row-body .hm-btn-ghost { display: none; }
  .ins-bar { padding-top: 12px; }
  .ins-bar-inner { padding: 10px 12px; border-radius: 16px; }
  .ins-bar h1 { font-size: 17px; }
  .ins-bar small { display: none; }
  .ins-bar-ic { width: 36px; height: 36px; font-size: 17px; }
  .ins-bar-actions .hm-btn { font-size: 12px; padding: 7px 12px; }
  .ins-steps .sd-step { font-size: 11.5px; gap: 6px; flex-direction: column; text-align: center; white-space: normal; }
  .ins-steps .sd-step > b { width: 36px; height: 36px; font-size: 15px; }
  .ins-steps .sd-step small { font-size: 9.5px; }
  .ins-steps-line { margin: 0 6px 22px; min-width: 14px; }
  .ins-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 10px !important; }
  .sd-type.ins-card { padding: 14px 12px 12px !important; border-radius: 16px !important; }
  .ins-card .ins-logo { width: 50px !important; height: 50px !important; font-size: 23px !important; border-radius: 15px !important; }
  .ins-card b { font-size: 14px; }
  .ins-card small { font-size: 11.5px; }
  .ins-go { font-size: 12px; }
  .ins-badge { top: 8px; right: 8px; font-size: 9.5px; padding: 3px 7px; }
}

/* ---------- accessibility ---------- */
@media (prefers-reduced-motion: reduce) {
  .hm-hero *, .hm-stats::before, .hm-portal-glow, .hm-dot, .hm-head-cb i, .hm-about-badge { animation: none !important; }
  .hm-rise, .hm-pop { opacity: 1; transform: none; }
}
