/* Karnawat Cancer Hospital - functional styles for forms, mobile CTA bar and media.
   Colours come from Elementor Site Settings (global colours), so changing them there updates this too. */
.kch-form .elementor-field-group{position:relative}
.kch-form .elementor-field.kch-invalid,.kch-form .elementor-field-textual.kch-invalid{border-color:#C0392B!important;box-shadow:0 0 0 3px rgba(192,57,43,.12)}
.kch-err{display:block;width:100%;margin-top:6px;font-size:12.5px;line-height:1.4;color:#B03A2E;font-weight:600}
.kch-form select.kch-ph{color:var(--e-global-color-kchmuted,#6E7566)}
.kch-form .elementor-field::placeholder{color:var(--e-global-color-kchmuted,#6E7566);opacity:1}
.kch-form .elementor-field:focus{outline:none;border-color:var(--e-global-color-secondary,#7E8C55)!important;box-shadow:0 0 0 3px rgba(126,140,85,.18)}
.kch-upload-note{margin:2px 0 -4px;font-size:13px;color:var(--e-global-color-kchmuted,#6E7566)}
.kch-form .elementor-field-type-upload input[type=file]{padding:12px;border-style:dashed!important;cursor:pointer}
.kch-form .elementor-message{border-radius:12px;padding:12px 14px;font-weight:600}
.kch-form .elementor-message.elementor-message-success{background:var(--e-global-color-kchsoft,#EEF1E4);color:var(--e-global-color-primary,#26301F)}
.kch-form .elementor-message.elementor-message-danger{background:#FBEDEB;color:#8E2B20}
/* Mobile sticky Call / WhatsApp / Book bar (built as an Elementor container in the footer - edit it there). */
@media (max-width:767px){
  .elementor-element.kch-mbar{position:fixed!important;left:0!important;right:0!important;bottom:0!important;top:auto!important;width:100%!important;max-width:100%!important;margin:0!important;padding-bottom:calc(10px + env(safe-area-inset-bottom))!important}
  .elementor-element.kch-mbar .elementor-widget-button{flex:1 1 0;min-width:0}
  .elementor-element.kch-mbar .elementor-button{width:100%;justify-content:center;white-space:nowrap}
  body:has(.kch-mbar){padding-bottom:74px}
  .elementor-location-popup ~ .kch-mbar{z-index:998}
}
/* Lightbox thumbnails show they can be opened. */
a[data-elementor-open-lightbox="yes"] img{cursor:zoom-in}
/* Images never overflow their column on small screens. */
.elementor-widget-image img,.elementor-widget-image-box img{max-width:100%;height:auto}
/* Comfortable tap targets on touch screens. */
@media (pointer:coarse){.elementor-icon-list-item>a{min-height:40px;align-items:center}.elementor-social-icon{min-width:40px;min-height:40px}}
@media (prefers-reduced-motion:reduce){.elementor-invisible{visibility:visible!important}.animated{animation:none!important}}
/* ===================== v8 design layer (colours follow Site Settings) ===================== */
:root{--kch-ease:cubic-bezier(.2,.7,.2,1)}
/* Sidebar: no more overlapping cards - only the booking card stays in view while scrolling (desktop). */
@media (min-width:1025px){
  .e-con.kch-side{align-self:stretch}
  .e-con.kch-sticky{position:sticky!important;top:112px;z-index:3}
  .admin-bar .e-con.kch-sticky{top:144px}
}
.e-con.kch-sidecard{position:relative;overflow:hidden;transition:box-shadow .3s var(--kch-ease),transform .3s var(--kch-ease)}
.e-con.kch-sidecard::before{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:linear-gradient(90deg,var(--e-global-color-secondary,#7E8C55),var(--e-global-color-kchsage2,#A4B07A) 60%,transparent)}
.e-con.kch-sidecard:hover{box-shadow:0 16px 36px -20px rgba(29,34,24,.35)}
.e-con.kch-sticky::before{background:linear-gradient(90deg,var(--e-global-color-kchsage2,#A4B07A),transparent)}
/* Pointer lists: chevron slides on hover, divider lines between items */
.kch-navlist .elementor-icon-list-item>a{transition:color .2s,padding-left .25s var(--kch-ease)}
.kch-navlist .elementor-icon-list-item>a:hover{padding-left:6px}
.kch-navlist .elementor-icon-list-item>a:hover .elementor-icon-list-icon{transform:translateX(3px)}
.kch-navlist .elementor-icon-list-icon{transition:transform .25s var(--kch-ease)}
.kch-navlist .elementor-icon-list-item:has(a[href$="/"]){cursor:pointer}
/* Long-form content: section headings with an accent pointer, leaf dividers */
.e-con.kch-main>.elementor-widget-heading h2.elementor-heading-title{position:relative;padding-left:18px}
.e-con.kch-main>.elementor-widget-heading h2.elementor-heading-title::before{content:"";position:absolute;left:0;top:.18em;bottom:.18em;width:4px;border-radius:4px;background:linear-gradient(180deg,var(--e-global-color-secondary,#7E8C55),var(--e-global-color-kchsage2,#A4B07A))}
.e-con.kch-main>.elementor-widget-heading h3.elementor-heading-title{position:relative;padding-left:22px}
.e-con.kch-main>.elementor-widget-heading h3.elementor-heading-title::before{content:"";position:absolute;left:2px;top:.45em;width:9px;height:9px;border-right:2.5px solid var(--e-global-color-secondary,#7E8C55);border-top:2.5px solid var(--e-global-color-secondary,#7E8C55);transform:rotate(45deg)}
.elementor-widget-divider .elementor-divider__element .elementor-icon{opacity:.9}
.e-con.kch-main .elementor-widget-icon-list .elementor-icon-list-item{align-items:flex-start}
.e-con.kch-main .elementor-widget-icon-list .elementor-icon-list-icon{margin-top:.25em}
/* Cards: lift, accent border, pointer cursor and an arrow cue on linked cards */
.e-con.kch-infocard{transition:border-color .25s,transform .3s var(--kch-ease),box-shadow .3s var(--kch-ease)}
.e-con.kch-infocard:hover{border-color:var(--e-global-color-kchsage2,#A4B07A)!important}
.e-con.kch-linkcard{cursor:pointer}
.e-con.kch-linkcard .elementor-widget-button .elementor-button-text::after{content:"\2192";display:inline-block;margin-left:6px;transition:transform .25s var(--kch-ease)}
.e-con.kch-linkcard:hover .elementor-widget-button .elementor-button-text::after{transform:translateX(4px)}
.e-con.kch-linkcard:hover{border-color:var(--e-global-color-secondary,#7E8C55)!important}
/* Hero: texture + a soft growth line at the base */
.e-con.kch-hero{position:relative}
.e-con.kch-hero::after{content:"";position:absolute;left:0;right:0;bottom:0;height:3px;background:linear-gradient(90deg,transparent,var(--e-global-color-kchsage2,#A4B07A) 30%,var(--e-global-color-accent,#5B4331) 70%,transparent);opacity:.7}
/* Blog posts: comfortable reading */
.elementor-widget-theme-post-content{font-size:16.5px;line-height:1.8}
.elementor-widget-theme-post-content h2{font-family:Fraunces,serif;font-weight:400;font-size:clamp(24px,3vw,32px);margin:1.6em 0 .5em;color:var(--e-global-color-kchink,#1D2218);padding-left:16px;border-left:4px solid var(--e-global-color-secondary,#7E8C55)}
.elementor-widget-theme-post-content h3{font-size:20px;margin:1.4em 0 .4em;color:var(--e-global-color-kchink,#1D2218)}
.elementor-widget-theme-post-content img{border-radius:14px;box-shadow:0 14px 34px -22px rgba(29,34,24,.5);height:auto;max-width:100%}
.elementor-widget-theme-post-content ul{list-style:none;padding-left:0}
.elementor-widget-theme-post-content ul li{position:relative;padding-left:26px;margin:.45em 0}
.elementor-widget-theme-post-content ul li::before{content:"";position:absolute;left:4px;top:.62em;width:8px;height:8px;border-right:2.5px solid var(--e-global-color-secondary,#7E8C55);border-top:2.5px solid var(--e-global-color-secondary,#7E8C55);transform:rotate(45deg)}
.elementor-widget-theme-post-content blockquote{margin:1.5em 0;padding:18px 22px;border-left:4px solid var(--e-global-color-accent,#5B4331);background:var(--e-global-color-kchmist,#F6F7F1);border-radius:0 14px 14px 0;font-style:italic}
.elementor-widget-theme-post-content table{width:100%;border-collapse:collapse;font-size:15px;display:block;overflow-x:auto}
.elementor-widget-theme-post-content th,.elementor-widget-theme-post-content td{border:1px solid var(--e-global-color-kchline,#E2E6D6);padding:10px 12px;text-align:left}
.elementor-widget-theme-post-content hr{border:0;height:1px;background:var(--e-global-color-kchline,#E2E6D6);margin:2em 0}
.elementor-widget-theme-post-content a{color:var(--e-global-color-accent,#5B4331);text-decoration:underline;text-underline-offset:3px}
/* Reading time + progress bar (blog) */
.kch-readtime{display:inline-flex;gap:6px;align-items:center;font-size:12.5px;color:var(--e-global-color-kchondark,#CDD4BD)}
.kch-progress{position:fixed;left:0;top:0;height:3px;width:0;z-index:10000;background:linear-gradient(90deg,var(--e-global-color-secondary,#7E8C55),var(--e-global-color-kchgold,#E2A93B));transition:width .1s linear}
.admin-bar .kch-progress{top:32px}
/* Video cards */
.kch-video .elementor-custom-embed-image-overlay{border-radius:14px;overflow:hidden}
.kch-video .elementor-custom-embed-play i,.kch-video .elementor-custom-embed-play svg{filter:drop-shadow(0 6px 18px rgba(0,0,0,.45));transition:transform .3s var(--kch-ease)}
.kch-video:hover .elementor-custom-embed-play i,.kch-video:hover .elementor-custom-embed-play svg{transform:scale(1.12)}
/* Facebook feed column */
.kch-fb{width:100%;max-width:340px;border-radius:14px;overflow:hidden;background:rgba(255,255,255,.04)}
.kch-fb iframe{display:block;width:100%;max-width:340px;border:0}
.kch-fb-link{display:inline-flex;align-items:center;gap:8px;margin-top:10px;font-size:13px;color:var(--e-global-color-kchondark,#CDD4BD)}
@media (prefers-reduced-motion:reduce){.kch-navlist .elementor-icon-list-item>a:hover{padding-left:0}.kch-progress{transition:none}}
/* v8.1: gradient bands always have a readable base colour, even before/without the gradient */
.e-con.kch-band{background-color:var(--e-global-color-accent,#5B4331)}
/* ===================== v8.2 polish ===================== */
/* One card system: equal heights, action always at the bottom */
.e-con.kch-linkcard,.e-con.kch-infocard{height:100%}
.e-con.kch-linkcard>.e-con{flex-grow:1}
.e-con.kch-linkcard>.e-con>.elementor-widget-button:last-child{margin-top:auto}
.e-con.kch-linkcard .elementor-widget-image{overflow:hidden}
.e-con.kch-linkcard .elementor-widget-image img{transition:transform .5s var(--kch-ease)}
.e-con.kch-linkcard:hover .elementor-widget-image img{transform:scale(1.02)}
.e-con.kch-linkcard,.e-con.kch-infocard{transition:transform .28s var(--kch-ease),box-shadow .28s var(--kch-ease),border-color .25s}
.e-con.kch-linkcard:hover{transform:translateY(-4px)}
/* Touch targets and keyboard focus */
.elementor-button{min-height:44px;display:inline-flex;align-items:center;justify-content:center}
@media (max-width:1024px){.elementor-nav-menu--dropdown a{min-height:44px;display:flex!important;align-items:center}}
a:focus-visible,button:focus-visible,.elementor-button:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--e-global-color-kchsage2,#A4B07A);outline-offset:3px;border-radius:6px}
/* Slimmer mobile bar (about 58px + safe area) */
@media (max-width:767px){
  .elementor-element.kch-mbar{padding-top:7px!important;padding-bottom:calc(7px + env(safe-area-inset-bottom))!important}
  .elementor-element.kch-mbar .elementor-button{min-height:44px;padding-top:10px!important;padding-bottom:10px!important}
  body:has(.kch-mbar){padding-bottom:calc(64px + env(safe-area-inset-bottom))}
  .e-con.kch-hero .elementor-widget-button{flex:1 1 100%}
  .e-con.kch-hero .elementor-widget-button .elementor-button{width:100%}
}
/* Facebook box stays compact */
.kch-fb{max-height:300px}
/* Nothing on the site should rely on JavaScript to become visible */
.elementor-invisible{visibility:visible!important;opacity:1!important}

/* ===================== v8.4 QA / responsive / accessibility ===================== */
html,body{max-width:100%;overflow-x:clip}
img,svg,video,iframe{max-width:100%}
.elementor-widget-image img{height:auto}
.kch-static-stat{margin:0;display:flex;flex-direction:column;gap:4px;color:#fff}
.kch-static-stat strong{font-family:Fraunces,serif;font-size:clamp(34px,4vw,44px);font-weight:400;line-height:1}
.kch-static-stat span{font-family:Manrope,sans-serif;font-size:13px;line-height:1.45;color:var(--e-global-color-kchondark,#CDD4BD)}
.elementor-button,.elementor-nav-menu a{touch-action:manipulation}
.elementor-button{white-space:normal;text-align:center}
.e-con.kch-band{background:#5B4331!important;background:linear-gradient(110deg,#5B4331,#7E8C55)!important}
.e-con.kch-band,.e-con.kch-band h1,.e-con.kch-band h2,.e-con.kch-band h3{color:#fff}
.kch-fb iframe{aspect-ratio:340/300;min-height:260px}
@media(max-width:1024px){.e-con.kch-main{width:100%!important}.elementor-nav-menu--dropdown a{white-space:normal}}
@media(max-width:767px){
  .e-con{min-width:0}
  .elementor-heading-title{overflow-wrap:anywhere}
  .kch-static-stat{text-align:center;align-items:center}
  .kch-fb{max-width:100%;max-height:none}.kch-fb iframe{max-width:100%}
  .elementor-widget-form .elementor-field-group,.elementor-widget-form .elementor-field{min-width:0}
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}


/* ===================== v8.5 visual consistency / header / hero / footer ===================== */
/* Header: readable, balanced and stable at real desktop/tablet widths. */
.kch-mainheader{min-height:82px!important}
.kch-mainheader .kch-brand{flex:0 0 auto!important;min-width:0}
.kch-mainheader .kch-mainnav{flex:1 1 auto!important;min-width:0}
.kch-mainheader .kch-mainnav .elementor-nav-menu{justify-content:center;gap:2px}
.kch-mainheader .kch-mainnav .elementor-item{padding:12px 9px!important;font-size:13px;line-height:1.2;white-space:nowrap}
.kch-mainheader .kch-header-book{flex:0 0 auto}
.kch-mainheader .kch-header-book .elementor-button{white-space:nowrap;padding-inline:18px!important}
.kch-topbar{min-height:34px}
.kch-topbar .elementor-icon-list-text,.kch-topbar .elementor-icon-list-icon{line-height:1.3}
@media (max-width:1180px) and (min-width:768px){
 .kch-mainheader .kch-brand{width:220px!important}
 .kch-mainheader .kch-brand .elementor-heading-title{font-size:15px!important}
 .kch-mainheader .kch-mainnav .elementor-item{padding-inline:6px!important;font-size:12px}
 .kch-mainheader .kch-header-book .elementor-button{padding-inline:14px!important;font-size:12px}
}
@media (max-width:767px){
 .kch-mainheader{min-height:68px!important;padding:8px 16px!important;gap:8px!important}
 .kch-mainheader .kch-brand{width:auto!important;max-width:68%!important}
 .kch-mainheader .kch-brand .elementor-widget-image img{width:44px!important;height:44px!important;object-fit:contain!important}
 .kch-mainheader .kch-brand .elementor-heading-title{line-height:1.15!important}
}

/* Hero trust bullets: no jumping/hover layout shift; clean compact proof row. */
.kch-home-hero .kch-hero-trust .elementor-icon-list-items{display:flex!important;flex-wrap:wrap!important;gap:8px 18px!important}
.kch-home-hero .kch-hero-trust .elementor-icon-list-item{margin:0!important;padding:0!important;min-height:28px;align-items:center!important}
.kch-home-hero .kch-hero-trust .elementor-icon-list-item>a,.kch-home-hero .kch-hero-trust .elementor-icon-list-item{transform:none!important;transition:color .2s ease!important}
.kch-home-hero .kch-hero-trust .elementor-icon-list-icon{transform:none!important;margin:0!important}
.kch-home-hero .kch-hero-trust .elementor-icon-list-text{padding-left:7px!important}
/* Body map: labels were visually colliding with anatomy. Keep precise dots; details live in tooltip. */
.kch-bodymap .e-hotspot__label{display:none!important}
.kch-bodymap .e-hotspot{z-index:2}
.kch-bodymap .e-hotspot__button{box-shadow:0 0 0 4px rgba(255,255,255,.82),0 4px 12px rgba(38,48,31,.22)!important;transition:transform .2s ease,box-shadow .2s ease!important}
.kch-bodymap .e-hotspot:hover .e-hotspot__button,.kch-bodymap .e-hotspot:focus-within .e-hotspot__button{transform:scale(1.12)!important;box-shadow:0 0 0 5px rgba(126,140,85,.24),0 5px 16px rgba(38,48,31,.28)!important}
.kch-bodymap .e-hotspot__tooltip{max-width:210px!important;font-size:12px!important;line-height:1.45!important}
@media(max-width:767px){
 .kch-home-hero{padding-top:38px!important;padding-bottom:48px!important}
 .kch-home-hero .kch-hero-trust .elementor-icon-list-items{display:grid!important;grid-template-columns:1fr!important;gap:6px!important}
 .kch-bodymap .e-hotspot__tooltip{max-width:170px!important}
}

/* Image system: consistent crops and alignment without stretching source files. */
.kch-card .elementor-widget-image,.kch-card .kch-media{width:100%}
.kch-card .elementor-widget-image img{width:100%!important;aspect-ratio:16/10;object-fit:cover!important;object-position:center!important;display:block}
.kch-card .elementor-widget-image a{display:block;width:100%}
.kch-media img{display:block;max-width:100%;height:auto}
/* Doctor portraits retain headroom. */
.e-con.kch-linkcard:has(a[href*="dr-"]) .elementor-widget-image img{object-position:center top!important}

/* Footer: four clear information columns; Facebook becomes a secondary strip, never a fifth cramped column. */
.kch-site-footer{overflow:hidden}
.kch-footer-grid{align-items:flex-start!important}
.kch-footer-grid>.e-con{min-width:0}
.kch-footer-grid .elementor-heading-title{margin-bottom:2px}
.kch-footer-grid .elementor-icon-list-item{margin-bottom:5px}
.kch-footer-grid .elementor-icon-list-text{line-height:1.5}
.kch-footer-facebook{margin-top:10px;padding-top:28px!important;border-top:1px solid rgba(255,255,255,.12)}
.kch-footer-facebook .kch-fb{max-width:500px!important;max-height:280px;margin:0}
.kch-footer-facebook .kch-fb iframe{max-width:500px!important;min-height:240px!important;max-height:280px!important}
.kch-footer-bottom{padding-top:20px!important;border-top:1px solid rgba(255,255,255,.12);gap:18px!important}
@media(min-width:1025px){
 .kch-footer-about{width:30%!important}.kch-footer-col{flex:1 1 17%!important}.kch-footer-contact{width:27%!important}
}
@media(max-width:1024px){
 .kch-footer-about,.kch-footer-col,.kch-footer-contact{width:calc(50% - 18px)!important}
 .kch-footer-facebook{width:100%!important}
}
@media(max-width:767px){
 .kch-site-footer{padding-top:48px!important}
 .kch-footer-grid{gap:28px!important}
 .kch-footer-about,.kch-footer-col,.kch-footer-contact{width:100%!important}
 .kch-footer-bottom{flex-direction:column!important;align-items:flex-start!important}
}

/* Project-wide rhythm: one consistent card/media language. */
.kch-card{overflow:hidden}
.kch-card .elementor-heading-title{text-wrap:balance}
@supports not (text-wrap:balance){.kch-card .elementor-heading-title{overflow-wrap:break-word}}


/* ===================== v8.6 visual-system correction =====================
   Fixes observed in real staging screenshots: header crowding, hero hotspot label collisions,
   inconsistent bullets, media alignment, footer density and Facebook blank/loading state. */

/* One page grid: keep every main section on the same optical axis. */
.elementor-location-header .e-con.e-con-boxed>.e-con-inner,
.elementor-location-footer .e-con.e-con-boxed>.e-con-inner{width:min(100%,1280px);margin-inline:auto}

/* HEADER — stable proportions instead of squeezing logo/menu/CTA. */
.kch-topbar{min-height:38px!important}
.kch-topbar,.kch-mainheader{padding-inline:clamp(18px,3vw,36px)!important}
.kch-mainheader{min-height:86px!important;gap:24px!important;flex-wrap:nowrap!important}
.kch-mainheader>.kch-brand{width:245px!important;flex:0 0 245px!important}
.kch-mainheader .kch-brand img{max-height:58px!important;width:auto!important;object-fit:contain!important}
.kch-mainheader>.kch-mainnav{flex:1 1 auto!important;min-width:0!important}
.kch-mainheader .kch-mainnav .elementor-nav-menu{display:flex!important;align-items:center!important;justify-content:flex-end!important;gap:0!important;flex-wrap:nowrap!important}
.kch-mainheader .kch-mainnav .elementor-item{padding:14px 8px!important;font-size:13px!important;line-height:1.2!important;white-space:nowrap!important}
.kch-mainheader>.kch-header-book{flex:0 0 auto!important;margin-left:4px!important}
.kch-mainheader .kch-header-book .elementor-button{min-height:44px!important;padding:12px 17px!important;white-space:nowrap!important}
.kch-mobile-lang{flex:0 0 auto!important}
@media (max-width:1180px) and (min-width:768px){
 .kch-mainheader{gap:12px!important;padding-inline:18px!important}
 .kch-mainheader>.kch-brand{width:205px!important;flex-basis:205px!important}
 .kch-mainheader .kch-mainnav .elementor-item{padding-inline:5px!important;font-size:12px!important}
 .kch-mainheader .kch-header-book .elementor-button{padding-inline:12px!important;font-size:12px!important}
}
@media (max-width:1024px){
 .kch-topbar{display:none!important}
 .kch-mainheader{min-height:72px!important;padding:9px 18px!important;gap:10px!important}
 .kch-mainheader>.kch-brand{width:auto!important;flex:1 1 auto!important;max-width:250px!important}
 .kch-mainheader .kch-brand img{max-height:50px!important}
 .kch-mainheader>.kch-mainnav{flex:0 0 auto!important}
 .kch-mainheader>.kch-header-book{order:2!important}
 .kch-mainheader>.kch-mainnav{order:3!important}
 .kch-mainheader>.kch-mobile-lang{order:1!important}
}
@media (max-width:767px){
 .kch-mainheader{padding:8px 14px!important;min-height:66px!important}
 .kch-mainheader>.kch-brand{max-width:190px!important}
 .kch-mainheader .kch-brand img{max-height:44px!important}
 .kch-mainheader>.kch-header-book .elementor-button{min-height:40px!important;padding:9px 12px!important;font-size:11.5px!important}
}

/* HERO / BODY MAP — labels never sit permanently over the anatomy illustration. */
.kch-bodymap .e-hotspot__label,
.kch-bodymap.e-hotspot--active .e-hotspot__label,
.kch-bodymap .e-hotspot--active .e-hotspot__label{display:none!important;opacity:0!important;visibility:hidden!important;pointer-events:none!important}
.kch-bodymap .e-hotspot__button{width:18px!important;height:18px!important;min-width:18px!important;min-height:18px!important;padding:0!important;border:3px solid #fff!important;box-shadow:0 0 0 2px rgba(91,67,49,.45),0 3px 10px rgba(38,48,31,.22)!important;transform:none!important}
.kch-bodymap .e-hotspot:hover .e-hotspot__button,.kch-bodymap .e-hotspot:focus-within .e-hotspot__button{transform:scale(1.16)!important;box-shadow:0 0 0 4px rgba(126,140,85,.25),0 4px 12px rgba(38,48,31,.28)!important}
.kch-bodymap .e-hotspot__tooltip{z-index:50!important;max-width:220px!important;padding:10px 12px!important;border-radius:8px!important;box-shadow:0 10px 30px rgba(20,28,20,.18)!important}

/* HERO proof/bullet row — no hover movement and no cramped icons. */
.kch-home-hero .elementor-icon-list-items,.kch-hero-trust .elementor-icon-list-items{display:flex!important;align-items:center!important;flex-wrap:wrap!important;column-gap:22px!important;row-gap:9px!important}
.kch-home-hero .elementor-icon-list-item,.kch-hero-trust .elementor-icon-list-item{display:flex!important;align-items:center!important;gap:8px!important;margin:0!important;padding:0!important;min-height:28px!important;transform:none!important}
.kch-home-hero .elementor-icon-list-item:hover,.kch-hero-trust .elementor-icon-list-item:hover{transform:none!important;padding-left:0!important}
.kch-home-hero .elementor-icon-list-icon,.kch-hero-trust .elementor-icon-list-icon{display:flex!important;align-items:center!important;justify-content:center!important;flex:0 0 18px!important;width:18px!important;margin:0!important;transform:none!important}
.kch-home-hero .elementor-icon-list-text,.kch-hero-trust .elementor-icon-list-text{padding:0!important;line-height:1.45!important}

/* BULLETS — one aligned system across long-form pages, sidebars and cards. */
.kch-main .elementor-widget-icon-list .elementor-icon-list-items{display:grid!important;gap:8px!important}
.kch-main .elementor-widget-icon-list .elementor-icon-list-item{display:grid!important;grid-template-columns:18px minmax(0,1fr)!important;column-gap:9px!important;align-items:start!important;margin:0!important;padding:0!important}
.kch-main .elementor-widget-icon-list .elementor-icon-list-icon{width:18px!important;min-width:18px!important;margin:3px 0 0!important;display:flex!important;justify-content:center!important}
.kch-main .elementor-widget-icon-list .elementor-icon-list-text{padding:0!important;line-height:1.6!important;min-width:0!important}
.kch-navlist .elementor-icon-list-item>a{display:grid!important;grid-template-columns:16px minmax(0,1fr)!important;column-gap:8px!important;align-items:start!important;padding-left:0!important}
.kch-navlist .elementor-icon-list-item>a:hover{padding-left:0!important}

/* IMAGES — predictable crop, alignment and equal media rhythm. */
.kch-card .elementor-widget-image,.kch-linkcard .elementor-widget-image,.kch-infocard .elementor-widget-image{width:100%!important;overflow:hidden!important}
.kch-card .elementor-widget-image a,.kch-linkcard .elementor-widget-image a,.kch-infocard .elementor-widget-image a{display:block!important;width:100%!important}
.kch-card .elementor-widget-image img,.kch-linkcard .elementor-widget-image img,.kch-infocard .elementor-widget-image img{display:block!important;width:100%!important;height:auto!important;aspect-ratio:16/10!important;object-fit:cover!important;object-position:center!important;margin:0!important}
.kch-card:has(a[href*="dr-"]) .elementor-widget-image img,.kch-linkcard:has(a[href*="dr-"]) .elementor-widget-image img{aspect-ratio:4/5!important;object-position:center top!important}
.kch-main>.elementor-widget-image img{display:block!important;max-width:100%!important;height:auto!important;margin-inline:auto!important}

/* Consistent cards and section rhythm. */
.kch-linkcard,.kch-infocard{overflow:hidden!important;min-width:0!important}
.kch-linkcard>.e-con,.kch-infocard>.e-con{min-width:0!important}
.kch-linkcard .elementor-heading-title,.kch-infocard .elementor-heading-title{overflow-wrap:anywhere!important}

/* FOOTER — compact, aligned 4-column information architecture. */
.kch-site-footer{padding:58px clamp(18px,3vw,36px) 22px!important}
.kch-footer-grid{display:grid!important;grid-template-columns:minmax(240px,1.25fr) minmax(150px,.8fr) minmax(170px,.9fr) minmax(230px,1.15fr)!important;gap:42px!important;width:100%!important;align-items:start!important}
.kch-footer-grid>.e-con{width:auto!important;max-width:none!important;min-width:0!important;margin:0!important;padding:0!important}
.kch-footer-grid .elementor-icon-list-items{display:grid!important;gap:7px!important}
.kch-footer-grid .elementor-icon-list-item{margin:0!important;align-items:flex-start!important}
.kch-footer-grid .elementor-icon-list-icon{margin-top:3px!important;flex:0 0 16px!important}
.kch-footer-grid .elementor-icon-list-text{padding-left:7px!important;line-height:1.5!important}
.kch-footer-facebook{grid-column:1/-1!important;width:100%!important;margin-top:4px!important;padding-top:28px!important;border-top:1px solid rgba(255,255,255,.12)!important}
.kch-footer-facebook .elementor-widget-shortcode{max-width:100%!important}
.kch-footer-facebook .kch-fb{width:100%!important;max-width:500px!important;height:300px!important;max-height:300px!important;background:rgba(255,255,255,.06)!important;border:1px solid rgba(255,255,255,.10)!important;border-radius:10px!important}
.kch-footer-facebook .kch-fb iframe{display:block!important;width:100%!important;max-width:500px!important;height:300px!important;min-height:300px!important;border:0!important;background:#fff!important}
.kch-footer-facebook .kch-fb-link{margin-top:10px!important}
.kch-footer-bottom{margin-top:30px!important;padding-top:20px!important;border-top:1px solid rgba(255,255,255,.12)!important}
@media(max-width:1024px){
 .kch-footer-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:34px 40px!important}
}
@media(max-width:767px){
 .kch-site-footer{padding:46px 18px 92px!important}
 .kch-footer-grid{grid-template-columns:1fr!important;gap:28px!important}
 .kch-footer-facebook{grid-column:1!important;padding-top:22px!important}
 .kch-footer-facebook .kch-fb,.kch-footer-facebook .kch-fb iframe{max-width:100%!important;height:320px!important;min-height:320px!important}
 .kch-footer-bottom{display:flex!important;flex-direction:column!important;align-items:flex-start!important;gap:12px!important}
}

/* Contact and other split layouts: prevent the large accidental blank column seen in staging. */
@media(min-width:768px){
 .kch-contact-grid{align-items:start!important}
 .kch-contact-grid>.e-con{min-width:0!important}
}

/* No decorative hover may move text/bullets and create layout shift. */
.kch-main .elementor-icon-list-item,.kch-side .elementor-icon-list-item,.kch-site-footer .elementor-icon-list-item{transform:none!important}

/* ===================== v8.7 UI/UX refinement =====================
   Screenshot-driven corrections: hotspot typography/colour, navbar hierarchy,
   footer balance, Facebook presentation, and bullet alignment. */

/* HOTSPOTS — hover/focus must never change typography or create a colour clash. */
.kch-bodymap .e-hotspot__tooltip,
.kch-bodymap .e-hotspot__tooltip *,
.kch .hs .lb,
.kch .hs .lb *{
  font-family:"Manrope",sans-serif!important;
  font-style:normal!important;
  text-decoration:none!important;
}
.kch-bodymap .e-hotspot__tooltip{
  color:#26301F!important;
  background:#FFFFFF!important;
  border:1px solid #DDE3D5!important;
  font-size:12px!important;
  font-weight:600!important;
  line-height:1.4!important;
}
.kch-bodymap .e-hotspot__tooltip *,
.kch-bodymap .e-hotspot:hover .e-hotspot__tooltip *,
.kch-bodymap .e-hotspot:focus-within .e-hotspot__tooltip *{color:#26301F!important;font-size:inherit!important;font-weight:inherit!important}
.kch .hs .lb,.kch .hs:hover .lb,.kch .hs:focus-within .lb{color:#26301F!important;background:#fff!important;border-color:#DDE3D5!important}
.kch .hs .lb b,.kch .hs:hover .lb b,.kch .hs:focus-within .lb b{color:#26301F!important;font-size:13px!important;font-weight:600!important;line-height:1.3!important}
.kch .hs .lb small,.kch .hs:hover .lb small,.kch .hs:focus-within .lb small{color:#667064!important;font-size:11px!important;font-weight:500!important;line-height:1.35!important}

/* NAVBAR — calm two-tier hierarchy with predictable optical alignment. */
.kch-topbar{height:36px!important;min-height:36px!important;padding-block:0!important}
.kch-mainheader{height:82px!important;min-height:82px!important;padding-block:0!important;padding-inline:24px!important;gap:20px!important;background:#fff!important}
.kch-mainheader>.kch-brand{width:230px!important;flex:0 0 230px!important}
.kch-mainheader .kch-brand img{display:block!important;max-width:220px!important;max-height:54px!important;width:auto!important;height:auto!important;object-fit:contain!important;object-position:left center!important}
.kch-mainheader>.kch-mainnav{display:flex!important;align-items:center!important;justify-content:flex-end!important;min-width:0!important}
.kch-mainheader .kch-mainnav .elementor-nav-menu{align-items:center!important}
.kch-mainheader .kch-mainnav .elementor-item{min-height:44px!important;display:flex!important;align-items:center!important;padding:0 7px!important;font-family:"Manrope",sans-serif!important;font-size:12.5px!important;font-weight:500!important;line-height:1.2!important;color:#26301F!important}
.kch-mainheader .kch-mainnav .elementor-item:hover,.kch-mainheader .kch-mainnav .elementor-item.elementor-item-active{color:#5F6B3B!important}
.kch-mainheader .kch-header-book .elementor-button{min-height:44px!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;padding:0 18px!important;font-family:"Manrope",sans-serif!important;font-size:12.5px!important;font-weight:700!important;line-height:1!important}
@media (max-width:1180px) and (min-width:1025px){
 .kch-mainheader{gap:12px!important;padding-inline:18px!important}
 .kch-mainheader>.kch-brand{width:190px!important;flex-basis:190px!important}
 .kch-mainheader .kch-brand img{max-width:185px!important}
 .kch-mainheader .kch-mainnav .elementor-item{font-size:11.5px!important;padding-inline:5px!important}
 .kch-mainheader .kch-header-book .elementor-button{padding-inline:13px!important;font-size:11.5px!important}
}
@media(max-width:1024px){
 .kch-mainheader{height:72px!important;min-height:72px!important;padding:8px 18px!important}
 .kch-mainheader>.kch-brand{width:auto!important;flex:1 1 auto!important;max-width:220px!important}
 .kch-mainheader .kch-brand img{max-width:205px!important;max-height:48px!important}
}
@media(max-width:767px){
 .kch-mainheader{height:66px!important;min-height:66px!important;padding:7px 14px!important}
 .kch-mainheader>.kch-brand{max-width:175px!important}
 .kch-mainheader .kch-brand img{max-width:170px!important;max-height:44px!important}
}

/* BULLETS — one baseline and one gap across content, sidebars, hero and footer. */
.kch-main .elementor-widget-icon-list .elementor-icon-list-item,
.kch-side .elementor-widget-icon-list .elementor-icon-list-item,
.kch-site-footer .elementor-widget-icon-list .elementor-icon-list-item{align-items:flex-start!important}
.kch-main .elementor-widget-icon-list .elementor-icon-list-icon,
.kch-side .elementor-widget-icon-list .elementor-icon-list-icon,
.kch-site-footer .elementor-widget-icon-list .elementor-icon-list-icon{display:flex!important;align-items:center!important;justify-content:center!important;width:16px!important;min-width:16px!important;margin:3px 0 0!important;padding:0!important}
.kch-main .elementor-widget-icon-list .elementor-icon-list-text,
.kch-side .elementor-widget-icon-list .elementor-icon-list-text,
.kch-site-footer .elementor-widget-icon-list .elementor-icon-list-text{padding:0!important;margin:0!important;line-height:1.55!important}

/* FOOTER — shorter, balanced columns; Facebook becomes a contained social module. */
.kch-site-footer{padding:56px 24px 20px!important}
.kch-footer-grid{grid-template-columns:minmax(220px,1.25fr) minmax(145px,.8fr) minmax(165px,.95fr) minmax(225px,1.15fr)!important;gap:36px 44px!important;align-items:start!important}
.kch-footer-about,.kch-footer-col,.kch-footer-contact{align-self:start!important}
.kch-footer-grid .elementor-heading-title{margin-bottom:12px!important}
.kch-footer-grid .elementor-widget-text-editor p{margin-top:0!important;margin-bottom:12px!important;line-height:1.65!important}
.kch-footer-facebook{grid-column:1/-1!important;display:grid!important;grid-template-columns:minmax(180px,.55fr) minmax(320px,1.45fr)!important;gap:28px!important;align-items:start!important;margin-top:10px!important;padding:24px!important;border:1px solid rgba(255,255,255,.10)!important;border-radius:12px!important;background:rgba(255,255,255,.035)!important}
.kch-footer-facebook>.elementor-widget-heading{grid-column:1!important;margin:0!important}
.kch-footer-facebook>.elementor-widget-shortcode{grid-column:2!important;margin:0!important;max-width:520px!important;width:100%!important}
.kch-footer-facebook .kch-fb{width:100%!important;max-width:520px!important;height:260px!important;max-height:260px!important;overflow:hidden!important;border-radius:8px!important;background:#fff!important}
.kch-footer-facebook .kch-fb iframe{width:100%!important;max-width:520px!important;height:260px!important;min-height:260px!important;border:0!important;background:#fff!important}
.kch-footer-facebook .kch-fb-link{display:inline-flex!important;align-items:center!important;gap:7px!important;margin-top:10px!important;color:#D9DECB!important;font-family:"Manrope",sans-serif!important;font-size:12.5px!important;font-weight:600!important}
.kch-footer-facebook .kch-fb-link:hover{color:#fff!important}
.kch-footer-bottom{margin-top:26px!important;padding-top:18px!important}
@media(max-width:1024px){
 .kch-footer-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:32px 38px!important}
 .kch-footer-facebook{grid-template-columns:1fr!important;gap:14px!important}
 .kch-footer-facebook>.elementor-widget-heading,.kch-footer-facebook>.elementor-widget-shortcode{grid-column:1!important}
}
@media(max-width:767px){
 .kch-site-footer{padding:44px 18px 92px!important}
 .kch-footer-grid{grid-template-columns:1fr!important;gap:26px!important}
 .kch-footer-facebook{padding:18px!important;margin-top:0!important}
 .kch-footer-facebook .kch-fb,.kch-footer-facebook .kch-fb iframe{height:280px!important;min-height:280px!important;max-height:280px!important}
}

/* ===================== v8.8 BODY MAP interaction fix =====================
   The custom homepage anatomy uses .hs/.lb, not Elementor's .e-hotspot labels.
   Keep only the dot visible at rest; reveal a consistent label on hover/focus. */
.kch .hx-fig .hs .ln{
  opacity:0!important;
  visibility:hidden!important;
  transition:opacity .18s ease!important;
}
.kch .hx-fig .hs .lb{
  opacity:0!important;
  visibility:hidden!important;
  pointer-events:none!important;
  transform:translateY(-50%) translateY(4px)!important;
  font-family:"Manrope",sans-serif!important;
  color:#26301F!important;
  background:#FFFFFF!important;
  border:1px solid #DDE3D5!important;
  box-shadow:0 8px 24px rgba(38,48,31,.16)!important;
  transition:opacity .18s ease,transform .18s ease,visibility .18s ease!important;
}
.kch .hx-fig .hs:hover .ln,
.kch .hx-fig .hs:focus-within .ln{
  opacity:1!important;
  visibility:visible!important;
}
.kch .hx-fig .hs:hover .lb,
.kch .hx-fig .hs:focus-within .lb{
  opacity:1!important;
  visibility:visible!important;
  pointer-events:auto!important;
  transform:translateY(-50%) translateY(0)!important;
  color:#26301F!important;
  background:#FFFFFF!important;
}
.kch .hx-fig .hs .lb b,
.kch .hx-fig .hs:hover .lb b,
.kch .hx-fig .hs:focus-within .lb b{
  font-family:"Manrope",sans-serif!important;
  font-size:13px!important;
  font-weight:600!important;
  line-height:1.3!important;
  color:#26301F!important;
}
.kch .hx-fig .hs .lb small,
.kch .hx-fig .hs:hover .lb small,
.kch .hx-fig .hs:focus-within .lb small{
  font-family:"Manrope",sans-serif!important;
  font-size:11px!important;
  font-weight:500!important;
  line-height:1.35!important;
  color:#667064!important;
}
/* Dots stay compact; hover must not turn labels into brown pills or move anatomy. */
.kch .hx-fig .hs .dot{width:14px!important;height:14px!important;left:-7px!important;top:-7px!important;background:#fff!important;border:3px solid #5B4331!important}
.kch .hx-fig .hs:hover .dot,.kch .hx-fig .hs:focus-within .dot{background:#5B4331!important;transform:scale(1.12)!important}
@media(max-width:767px){
  /* Touch screens have no reliable hover: keep the anatomy clean and use tap/focus only. */
  .kch .hx-fig .hs .lb{max-width:150px!important;white-space:normal!important}
  .kch .hx-fig .hs .ln{max-width:54px!important}
}
