/* Dr. Krishnamoorthy Asokan CMS v4.0.0 — universal editor, right-side heroes and editable design */
:root{--v4-max:1380px}
body{color:#080808!important}
body p,body li,body figcaption{font-family:'Poppins',system-ui,sans-serif}

/* Universal section variables */
.cms-v4-section,.cms-hero-v4,.cms-running-banner{
  background:var(--section-bg,#fff)!important;
  color:var(--section-text,#111)!important;
  padding-top:var(--section-pad-top,68px);
  padding-bottom:var(--section-pad-bottom,68px);
}
.cms-v4-shell,.cms-hero-v4-shell{margin-inline:auto;padding-inline:clamp(16px,3vw,42px)}
.cms-v4-shell{display:grid;gap:clamp(22px,3vw,48px);align-items:center}
.cms-width-narrow{width:min(820px,100%)}
.cms-width-standard{width:min(1120px,100%)}
.cms-width-wide{width:min(var(--v4-max),100%)}
.cms-width-full{width:100%}
.cms-v4-copy,.cms-hero-v4-copy{min-width:0;color:var(--section-text,#111)!important}
.cms-eyebrow{display:block;margin-bottom:10px;color:var(--section-accent,#c9973e)!important;font-size:var(--section-eyebrow-size,14px)!important;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.cms-section-heading{margin:0 0 18px;color:var(--section-heading,#000)!important;font-size:var(--section-heading-size,38px)!important;line-height:1.16;overflow-wrap:anywhere}
.cms-prose,.cms-prose p,.cms-prose li,.cms-v4-copy>p{color:var(--section-text,#111)!important;font-size:var(--section-text-size,17px)!important;line-height:1.75}
.cms-prose p{margin:0 0 1.08em}
.cms-prose h2,.cms-prose h3,.cms-prose h4,.cms-prose h5{color:var(--section-heading,#000)!important}
.cms-prose a,.cms-v4-copy a:not(.btn){color:var(--section-accent,#c9973e)!important;text-decoration:underline;text-underline-offset:3px}
.text-align-left .cms-v4-copy,.text-align-left .cms-prose p,.text-align-left .cms-prose li{text-align:left!important}
.text-align-center .cms-v4-copy,.text-align-center .cms-prose p,.text-align-center .cms-prose li{text-align:center!important}
.text-align-right .cms-v4-copy,.text-align-right .cms-prose p,.text-align-right .cms-prose li{text-align:right!important}
.text-align-justify .cms-v4-copy{text-align:left!important}
.text-align-justify .cms-prose p,.text-align-justify .cms-prose li{text-align:justify!important;text-justify:inter-word}
.image-position-left .cms-v4-shell{grid-template-columns:minmax(290px,.92fr) minmax(0,1.08fr)}
.image-position-right .cms-v4-shell{grid-template-columns:minmax(0,1.08fr) minmax(290px,.92fr)}
.image-position-top .cms-v4-shell,.image-position-bottom .cms-v4-shell{grid-template-columns:1fr}
.cms-v4-media{display:grid;gap:var(--section-media-gap,18px);min-width:0}
.cms-section-images{display:grid;gap:var(--section-media-gap,18px);min-width:0}
.cms-section-images.columns-1{grid-template-columns:1fr}
.cms-section-images.columns-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.cms-section-images.columns-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.cms-section-images.columns-4{grid-template-columns:repeat(4,minmax(0,1fr))}
.cms-section-images figure{margin:0;overflow:hidden;border-radius:14px;background:rgba(255,255,255,.7);border:1px solid rgba(80,80,80,.18);box-shadow:0 12px 30px rgba(0,0,0,.09)}
.cms-section-images img{display:block;width:100%;height:clamp(220px,27vw,440px);background:#eee}
.cms-section-images.image-fit-cover img{object-fit:cover}
.cms-section-images.image-fit-contain img{object-fit:contain}
.cms-section-images figcaption,.cms-hero-slide figcaption{padding:11px 14px;color:var(--section-caption,#222)!important;background:rgba(255,255,255,.94);font-size:var(--section-caption-size,14px)!important;line-height:1.5;text-align:left}
.image-position-left .cms-section-images.columns-3,.image-position-left .cms-section-images.columns-4,.image-position-right .cms-section-images.columns-3,.image-position-right .cms-section-images.columns-4{grid-template-columns:repeat(2,minmax(0,1fr))}

/* Hero: no image background; content left and media right */
.cms-hero-v4{position:relative;overflow:hidden;isolation:isolate;min-height:520px;display:flex;align-items:center}
.cms-hero-v4:before{content:none!important;background:none!important}
.cms-hero-v4-shell{display:grid;grid-template-columns:minmax(0,.88fr) minmax(420px,1.12fr);gap:clamp(32px,5vw,82px);align-items:center;width:min(var(--v4-max),100%)}
.cms-hero-v4-copy{padding-left:0;max-width:680px;justify-self:start}
.cms-hero-v4 .cms-section-heading{font-size:var(--section-heading-size,56px)!important;color:var(--section-heading,#fff)!important;line-height:1.08}
.cms-hero-v4 .cms-prose,.cms-hero-v4 .cms-prose p{color:var(--section-text,#fff)!important;font-size:var(--section-text-size,19px)!important}
.cms-hero-v4.text-align-left .cms-hero-v4-copy,.cms-hero-v4.text-align-left .cms-prose p,.cms-hero-v4.text-align-left .cms-prose li{text-align:left!important}
.cms-hero-v4.text-align-center .cms-hero-v4-copy,.cms-hero-v4.text-align-center .cms-prose p,.cms-hero-v4.text-align-center .cms-prose li{text-align:center!important}
.cms-hero-v4.text-align-right .cms-hero-v4-copy,.cms-hero-v4.text-align-right .cms-prose p,.cms-hero-v4.text-align-right .cms-prose li{text-align:right!important}
.cms-hero-v4.text-align-justify .cms-hero-v4-copy{text-align:left!important}
.cms-hero-v4.text-align-justify .cms-prose p,.cms-hero-v4.text-align-justify .cms-prose li{text-align:justify!important;text-justify:inter-word}
.cms-hero-v4-media{min-width:0;width:100%;justify-self:end;display:grid;gap:var(--section-media-gap,18px)}
.cms-hero-slides{position:relative;width:100%;min-height:clamp(330px,45vw,610px);border-radius:22px;overflow:hidden;background:transparent}
.cms-hero-slide{position:absolute;inset:0;margin:0;opacity:0;visibility:hidden;transition:opacity .7s ease;display:grid;grid-template-rows:minmax(0,1fr) auto}
.cms-hero-slide.is-active{opacity:1;visibility:visible}
.cms-hero-slide img{display:block;width:100%;height:100%;object-fit:cover;border-radius:22px}
.cms-hero-slide figcaption{position:absolute;left:16px;right:16px;bottom:16px;border-radius:10px;background:rgba(0,0,0,.72);color:#fff!important}
.cms-section-button{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:11px 18px;border-radius:9px;background:var(--section-button-bg,#c9973e)!important;color:var(--section-button-text,#111)!important;border:1px solid var(--section-button-bg,#c9973e)!important;font-weight:800;text-decoration:none!important}
.cms-section-button.secondary{background:transparent!important;color:var(--section-heading,#fff)!important;border-color:var(--section-accent,#c9973e)!important}
.hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:26px}

/* Small continuous running banner */
.cms-running-banner{padding-top:var(--section-pad-top,12px)!important;padding-bottom:var(--section-pad-bottom,12px)!important;overflow:hidden;border-top:1px solid rgba(212,175,55,.35);border-bottom:1px solid rgba(212,175,55,.35)}
.cms-running-viewport{overflow:hidden;width:100%;mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent)}
.cms-running-track{display:flex;width:max-content;align-items:center;gap:40px;animation:cmsTicker var(--ticker-speed,28s) linear infinite;will-change:transform}
.cms-running-track span{display:inline-flex;align-items:center;gap:12px;white-space:nowrap;font-family:'Cinzel',Georgia,serif;font-size:var(--section-heading-size,26px)!important;font-weight:700;line-height:1.2;background:linear-gradient(100deg,var(--section-text,#d4af37) 10%,var(--section-accent,#fff2a8) 45%,var(--section-text,#d4af37) 75%);background-size:220% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:cmsGoldShine 2.4s linear infinite}
.cms-running-track i{font-style:normal;color:var(--section-accent,#e5c158);font-size:.58em}
.cms-ticker-extra{margin:24px auto 0;padding-inline:18px;display:grid;gap:18px}
@keyframes cmsTicker{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@keyframes cmsGoldShine{from{background-position:200% 0}to{background-position:-20% 0}}

/* Section YouTube videos */
.cms-inline-video-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--section-media-gap,18px)}
.cms-inline-video{overflow:hidden;border-radius:14px;border:1px solid rgba(80,80,80,.18);background:rgba(255,255,255,.94);box-shadow:0 12px 30px rgba(0,0,0,.08)}
.cms-inline-video .video-embed{aspect-ratio:16/9}
.cms-inline-video iframe{width:100%;height:100%;border:0}
.cms-inline-video-copy{padding:14px}
.cms-inline-video-copy h3{margin:0 0 7px;color:var(--section-heading,#000)!important;font-size:min(24px,var(--section-heading-size,24px))!important}
.cms-inline-video-copy p{margin:0;color:var(--section-text,#111)!important;font-size:var(--section-caption-size,14px)!important;text-align:justify}

/* Structured blocks inherit section colours */
.cms-stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-top:26px}
.cms-stat-grid article{padding:22px;border-radius:14px;background:rgba(255,255,255,.11);border:1px solid color-mix(in srgb,var(--section-accent) 42%,transparent);text-align:center}
.cms-stat-grid strong,.cms-stat-grid span{display:block;color:var(--section-heading,#fff)!important}
.cms-stat-grid strong{font-size:min(44px,var(--section-heading-size,38px))!important}
.cms-stat-grid span{margin-top:6px;font-size:var(--section-text-size,17px)!important}
.cms-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-top:28px}
.cms-card-grid .portfolio-card{background:rgba(255,255,255,.96)!important;color:#111!important;border-radius:15px;overflow:hidden;border:1px solid rgba(80,80,80,.16)}
.cms-card-grid .portfolio-card img{width:100%;aspect-ratio:4/3;object-fit:cover}
.cms-card-grid .portfolio-card>div{padding:18px}
.cms-card-grid h3{color:#080808!important}
.cms-card-grid p{color:#111!important;text-align:justify}
.cms-gallery-grid{margin-top:28px}
.cms-gallery-grid figcaption{color:var(--section-caption,#222)!important;font-size:var(--section-caption-size,14px)!important}
.public-document-grid,.public-video-grid{margin-top:28px}
.public-document-card,.public-video-card{background:rgba(255,255,255,.96)!important;color:#111!important}
.public-document-card h3,.public-video-card h3{color:#080808!important}
.public-document-card p,.public-video-card p{color:#111!important;text-align:justify}
.cms-social-actions,.cms-cta-action{display:flex;gap:12px;flex-wrap:wrap;margin-top:24px}
.cms-contact-form{margin-top:26px;background:rgba(255,255,255,.96)!important;color:#111!important}
.cms-contact-form label{color:#111!important}

/* Override old background hero rules completely */
.cms-hero{background:var(--forest-2)!important;background-image:none!important}
.cms-hero:before{display:none!important}

@media(max-width:1000px){
  .cms-hero-v4-shell{grid-template-columns:1fr;gap:34px}
  .cms-hero-v4-copy{max-width:820px}
  .cms-hero-v4-media{width:100%;max-width:820px;justify-self:start}
  .cms-hero-slides{min-height:clamp(330px,70vw,560px)}
  .image-position-left .cms-v4-shell,.image-position-right .cms-v4-shell{grid-template-columns:1fr}
  .image-position-right .cms-v4-copy{order:1}.image-position-right .cms-v4-media{order:2}
  .cms-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .cms-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:680px){
  .cms-v4-shell,.cms-hero-v4-shell{padding-inline:14px}
  .cms-hero-v4{min-height:auto}
  .cms-hero-v4 .cms-section-heading,.cms-section-heading{font-size:min(var(--section-heading-size,38px),13vw)!important}
  .cms-prose,.cms-prose p,.cms-prose li,.cms-hero-v4 .cms-prose,.cms-hero-v4 .cms-prose p{font-size:min(var(--section-text-size,17px),7vw)!important}
  .cms-eyebrow{font-size:min(var(--section-eyebrow-size,14px),5.5vw)!important}
  .cms-section-images.columns-2,.cms-section-images.columns-3,.cms-section-images.columns-4,.cms-inline-video-grid,.cms-card-grid,.cms-stat-grid{grid-template-columns:1fr}
  .cms-section-images img{height:auto;max-height:580px}
  .cms-hero-slides{min-height:330px;border-radius:15px}
  .cms-hero-slide img{border-radius:15px}
  .cms-running-track{gap:28px}
  .cms-running-track span{font-size:min(var(--section-heading-size,26px),8vw)!important}
  .text-align-justify .cms-prose p,.text-align-justify .cms-prose li{text-align:justify!important}
}
@media(prefers-reduced-motion:reduce){.cms-running-track,.cms-running-track span{animation-play-state:paused}.cms-hero-slide{transition:none}}
.cms-running-copy{margin:0 auto 14px;padding-inline:18px}
.cms-running-copy .cms-section-heading{margin-bottom:10px}
.cms-running-copy.text-align-center{text-align:center}.cms-running-copy.text-align-right{text-align:right}
.cms-running-copy.text-align-justify .cms-prose p{text-align:justify!important}
