/* ============================================================
   PENSA 2027 — Light Editorial design system
   "medical journal meets gallery": warm ivory paper, ink text,
   one botanical-green accent, high-contrast serif + quiet sans,
   hairline rules, generous whitespace. Flat — no gradients,
   no glows, no shadows beyond the faintest. Loaded after the
   stock template main.css and overrides it.
   ============================================================ */

:root {
  --serif: "Cormorant", Georgia, "Times New Roman", serif;
  --sans:  "Montserrat", "Hanken Grotesk", system-ui, -apple-system, sans-serif;

  --paper:    #f7f4ef;   /* warm ivory */
  --paper-2:  #fffdf9;   /* card / raised */
  --paper-3:  #efeae1;   /* sunken / hover */
  --ink:      #1a1a1a;
  --ink-soft: #57534b;
  --ink-faint:#8c8779;
  --accent:   #006B35;   /* PENSA green */
  --accent-deep:#061F50; /* PENSA navy */
  --pensa-navy: #061F50;
  --pensa-green:#006B35;
  --pensa-gold: #F2A000;
  --pensa-teal: #006A70;
  --pensa-leaf: #367B27;
  --line:     #e3ddd2;   /* hairline */
  --line-2:   #d3ccbd;   /* stronger hairline */

  --maxw: 1180px;
  --measure: 66ch;
  --ease: cubic-bezier(.4,.1,.2,1);
}

/* Map the stock template's design tokens onto the editorial palette so anything
   using var(--accent-color)/var(--surface-color)/etc. can't leak magenta or dark. */
:root {
  --background-color: #f7f4ef;
  --default-color: #1a1a1a;
  --heading-color: #1a1a1a;
  --accent-color: #006B35;
  --accent-color-rgb: 0, 107, 53;
  --surface-color: #fffdf9;
  --contrast-color: #f7f4ef;
  --nav-color: #57534b;
  --nav-hover-color: #1a1a1a;
  --nav-dropdown-background-color: #fffdf9;
  --nav-dropdown-color: #1a1a1a;
  --nav-dropdown-hover-color: #006B35;
}
.dark-background { --background-color: #f7f4ef; --default-color: #1a1a1a; --heading-color: #1a1a1a; --surface-color: #fffdf9; }
.bg-important-dates p { background: transparent !important; }
.countdown-card { background: var(--paper-2) !important; }

/* ---------------- base ---------------- */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 96px; -webkit-text-size-adjust: 100%; }
body, body.index-page {
  background: var(--paper) !important;
  color: var(--ink) !important;
  font-family: var(--sans) !important;
  font-size: 17px; line-height: 1.72; font-weight: 400;
  -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility;
  overflow-x: hidden;
}
::selection { background: var(--accent); color: var(--paper); }
img { max-width: 100%; height: auto; }
a { color: var(--accent); text-decoration: none; transition: color .25s var(--ease); }
a:hover { color: var(--accent-deep); }
hr { border: 0; border-top: 1px solid var(--line); margin: 0; opacity: 1; }
::-webkit-scrollbar { width: 11px; height: 11px; }
::-webkit-scrollbar-track { background: var(--paper); }
::-webkit-scrollbar-thumb { background: #d8d1c4; border: 3px solid var(--paper); border-radius: 99px; }
::-webkit-scrollbar-thumb:hover { background: var(--accent); }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, .ed-btn:focus-visible {
  outline: 2px solid var(--accent); outline-offset: 3px;
}

/* ---------------- typography ---------------- */
h1, h2, h3, h4, h5, h6 {
  font-family: var(--serif) !important; color: var(--ink);
  font-weight: 400; line-height: 1.08; letter-spacing: -0.01em; text-wrap: balance;
}
p { text-wrap: pretty; }
.ed-wrap { max-width: var(--maxw); margin-inline: auto; padding-inline: clamp(22px, 5vw, 48px); }
.ed-measure { max-width: var(--measure); }
.ed-eyebrow {
  font-family: var(--sans); font-size: .72rem; font-weight: 600;
  letter-spacing: .22em; text-transform: uppercase; color: var(--accent);
  display: inline-flex; align-items: center; gap: .8em;
}
.ed-eyebrow::before { content: ""; width: 28px; height: 1px; background: var(--accent); display: inline-block; }
.ed-eyebrow.is-plain::before { display: none; }

.ed-section { padding: clamp(48px, 7vw, 88px) 0; position: relative; }
/* collapse stacked sections so we never get double padding between them */
.ed-section + .ed-section { border-top: 1px solid var(--line); padding-top: clamp(40px, 5.5vw, 68px); }
/* tighter gap right under the page banner */
.hero2 + .ed-section, .hero2 + section, #hero2 + section { padding-top: clamp(44px, 6vw, 72px); }
.ed-head { max-width: 30ch; margin-bottom: clamp(36px, 6vw, 64px); }
.ed-head h2 { font-size: clamp(2rem, 5vw, 3.5rem); margin: 18px 0 0; }
.ed-lead { color: var(--ink-soft); font-size: clamp(1.05rem, 1.6vw, 1.22rem); line-height: 1.6; max-width: 54ch; }

/* ---------------- header / nav ---------------- */
.header.fixed-top {
  background: rgba(247,244,239,.82) !important;
  backdrop-filter: saturate(120%) blur(12px);
  border-bottom: 1px solid transparent; box-shadow: none !important;
  transition: border-color .3s var(--ease), background .3s var(--ease);
}
body.scrolled .header.fixed-top, .header.scrolled { border-bottom-color: var(--line); background: rgba(247,244,239,.94) !important; }
.navmenu ul li a {
  font-family: var(--sans) !important; font-size: .8rem !important; font-weight: 500 !important;
  letter-spacing: .04em; text-transform: uppercase; color: var(--ink-soft) !important;
  padding: 10px 14px !important; position: relative;
}
.navmenu ul li a:hover, .navmenu ul li a.active { color: var(--ink) !important; }
/* keep the full nav on one line on smaller desktops */
@media (min-width: 1200px) and (max-width: 1499px) {
  .navmenu ul li a { font-size: .72rem !important; letter-spacing: .02em; padding: 10px 9px !important; }
  .navmenu > ul > li > a.active::after { left: 9px; right: 9px; }
}
.navmenu > ul > li > a.active::after {
  content: ""; position: absolute; left: 14px; right: 14px; bottom: 4px; height: 1px; background: var(--accent);
}
.navmenu .dropdown ul {
  background: var(--paper-2) !important; border: 1px solid var(--line) !important;
  border-radius: 2px !important; box-shadow: 0 18px 40px -28px rgba(26,26,26,.4) !important; padding: 6px !important;
}
.navmenu .dropdown ul li a { border-radius: 2px; text-transform: none; letter-spacing: .02em; }
.navmenu .dropdown ul li a:hover { background: var(--paper-3) !important; }
.mobile-nav-toggle { color: var(--ink) !important; }
@media (max-width: 1199px) { .navmenu ul { background: var(--paper) !important; } }

/* logo wordmark (refined serif) */
.px-logo, .logo { text-decoration: none; padding-left: 8px; }
.px-logo-mark { display: none !important; }
.px-logo-text { display: flex; flex-direction: column; line-height: 1; }
.px-logo-text b { font-family: var(--serif); font-weight: 500; font-size: 1.6rem; letter-spacing: .01em; color: var(--ink); }
.px-logo-text b .px-logo-year { color: var(--accent); margin-left: .14em; }
.px-logo-text small { font-family: var(--sans); font-size: .54rem; font-weight: 600; letter-spacing: .2em; text-transform: uppercase; color: var(--ink-faint); margin-top: 5px; }
@media (max-width: 768px) { .px-logo-text small { display: none; } .px-logo-text b { font-size: 1.35rem; } }

/* ---------------- buttons ---------------- */
.ed-btn, a.ed-btn, .btn-primary, a.btn-primary {
  display: inline-flex; align-items: center; gap: .7em;
  font-family: var(--sans); font-weight: 600; font-size: .8rem; letter-spacing: .08em; text-transform: uppercase;
  color: var(--paper) !important; background: var(--ink) !important; border: 1px solid var(--ink) !important;
  padding: 15px 30px !important; border-radius: 2px !important; cursor: pointer;
  transition: background .3s var(--ease), border-color .3s var(--ease), color .3s var(--ease); box-shadow: none !important;
}
.ed-btn:hover, .btn-primary:hover { background: var(--accent) !important; border-color: var(--accent) !important; color: var(--paper) !important; }
.ed-btn.is-ghost { background: transparent !important; color: var(--ink) !important; border-color: var(--line-2) !important; }
.ed-btn.is-ghost:hover { border-color: var(--ink) !important; background: transparent !important; color: var(--ink) !important; }
.ed-link {
  display: inline-flex; align-items: center; gap: .5em; font-family: var(--sans); font-weight: 600;
  font-size: .9rem; letter-spacing: .02em; color: var(--ink); padding-bottom: 3px;
  border-bottom: 1px solid var(--line-2); transition: border-color .3s var(--ease), color .25s var(--ease);
}
.ed-link:hover { color: var(--accent); border-bottom-color: var(--accent); }
.ed-link .ar { transition: transform .3s var(--ease); }
.ed-link:hover .ar { transform: translateX(4px); }
.btn-getstarted, a.btn-getstarted {
  font-family: var(--sans) !important; font-weight: 600; font-size: .74rem; letter-spacing: .08em; text-transform: uppercase;
  color: var(--paper) !important; background: var(--ink) !important; border: 1px solid var(--ink) !important;
  padding: 11px 24px !important; border-radius: 2px !important; box-shadow: none !important;
  transition: background .3s var(--ease), border-color .3s var(--ease);
}
.btn-getstarted:hover { background: var(--accent) !important; border-color: var(--accent) !important; color: var(--paper) !important; }
.btn-submit-abstract, a.btn-submit-abstract { background: var(--accent) !important; color: var(--paper) !important; border: 0 !important; border-radius: 2px !important; font-family: var(--sans); font-weight: 600; letter-spacing: .04em; box-shadow: none !important; }
.btn-submit-abstract:hover { background: var(--accent-deep) !important; }

/* ---------------- HERO (home) ---------------- */
.ed-hero { padding: clamp(150px, 20vh, 220px) 0 clamp(64px, 9vw, 110px); position: relative; }
.ed-hero .ed-eyebrow { font-size: .78rem; }
.ed-hero-title {
  font-family: var(--serif); font-weight: 300; color: var(--ink);
  font-size: clamp(2.8rem, 7.4vw, 6.2rem); line-height: 1.02; letter-spacing: -0.02em;
  margin: 26px 0 0; max-width: 16ch;
}
.ed-hero-title em { font-style: italic; color: var(--accent); }
.ed-hero-stand { color: var(--ink-soft); font-size: clamp(1.1rem, 1.9vw, 1.4rem); line-height: 1.55; max-width: 46ch; margin: 30px 0 0; font-weight: 300; }
.ed-hero-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 18px 34px; margin-top: 40px; }
.ed-meta { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 0; margin-top: clamp(48px, 7vw, 84px); border-top: 1px solid var(--line); }
.ed-meta > div { padding: 26px 28px 0 0; border-right: 1px solid var(--line); }
.ed-meta > div:last-child { border-right: 0; padding-right: 0; }
@media (max-width: 760px){ .ed-meta { grid-template-columns: 1fr; } .ed-meta > div { border-right: 0; border-bottom: 1px solid var(--line); padding: 20px 0; } .ed-meta > div:last-child { border-bottom: 0; } }
.ed-meta .k { font-family: var(--sans); font-size: .68rem; font-weight: 600; letter-spacing: .2em; text-transform: uppercase; color: var(--ink-faint); }
.ed-meta .v { font-family: var(--serif); font-size: 1.5rem; color: var(--ink); margin-top: 8px; line-height: 1.15; }

/* ---------------- ABOUT / statement ---------------- */
.ed-statement { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(36px, 7vw, 96px); align-items: start; }
@media (max-width: 880px){ .ed-statement { grid-template-columns: 1fr; gap: 28px; } }

/* Editorial split: heading sits sticky in the left rail beside its text,
   so long copy never leaves a void under the section heading. */
@media (min-width: 881px){
  .ed-wrap.ed-split{
    display: grid;
    grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
    gap: clamp(36px, 7vw, 96px);
    align-items: start;
  }
  .ed-wrap.ed-split > .ed-head{
    /* Heading sits at the top of the left rail beside its copy. No sticky:
       sticky travelled over the following full-width rows on some browsers. */
    position: static;
    align-self: start;
    margin-bottom: 0;
    max-width: none;
  }
  .ed-wrap.ed-split > .ed-head h2{
    font-size: clamp(1.9rem, 3.4vw, 2.9rem);
  }
  .ed-wrap.ed-split > .ed-statement{
    grid-template-columns: 1fr;
    gap: 0;
  }
  .ed-wrap.ed-split > .ed-statement > div:empty{ display: none; }
  .ed-wrap.ed-split > :not(.ed-head):not(.ed-statement){
    grid-column: 1 / -1;
  }
}
/* No section heading is ever sticky — prevents overlap with later rows. */
.ed-head{ position: static !important; }
.ed-statement h2 { font-size: clamp(1.9rem, 4vw, 3rem); font-weight: 300; line-height: 1.12; }
.ed-statement h2 em { font-style: italic; color: var(--accent); }
.ed-statement p { color: var(--ink-soft); margin: 0 0 1.1em; }
.ed-statement .ed-link { margin-top: 10px; }

/* ---------------- TOPICS (numbered hairline list) ---------------- */
.ed-topics-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0 clamp(40px, 6vw, 88px); border-top: 1px solid var(--line); }
@media (max-width: 760px){ .ed-topics-grid { grid-template-columns: 1fr; } }
.ed-topic { display: grid; grid-template-columns: auto 1fr; column-gap: 20px; row-gap: 10px; padding: 22px 0; border-bottom: 1px solid var(--line); align-items: baseline; }
.ed-topic .n { font-family: var(--sans); font-size: .78rem; font-weight: 600; letter-spacing: .1em; color: var(--accent); padding-top: 6px; }
.ed-topic h3 { font-family: var(--serif); font-weight: 500; font-size: 1.4rem; line-height: 1.2; margin: 0; transition: color .25s var(--ease); }
.ed-topic p { grid-column: 2; margin: 0; color: var(--ink-soft); }
.ed-topic:hover h3 { color: var(--accent); }

/* ---------------- DATES (timeline list) ---------------- */
.ed-dates { border-top: 1px solid var(--line); }
.ed-date { display: grid; grid-template-columns: 240px 1fr; gap: 24px; padding: 28px 0; border-bottom: 1px solid var(--line); }
@media (max-width: 680px){ .ed-date { grid-template-columns: 1fr; gap: 6px; } }
.ed-date .d { font-family: var(--sans); font-size: .82rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--accent); padding-top: 6px; }
.ed-date h3 { font-family: var(--serif); font-weight: 500; font-size: 1.5rem; }
.ed-date p { color: var(--ink-soft); margin: 4px 0 0; font-size: .98rem; }

/* ---------------- STATS ---------------- */
.ed-stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
@media (max-width: 720px){ .ed-stats { grid-template-columns: repeat(2,1fr); } .ed-stats > div:nth-child(-n+2){ border-bottom: 1px solid var(--line);} }
.ed-stat { padding: clamp(28px,4vw,44px) 28px; border-right: 1px solid var(--line); }
.ed-stat:last-child { border-right: 0; }
@media (max-width: 720px){ .ed-stat:nth-child(2n){ border-right: 0; } }
.ed-stat .num { font-family: var(--serif); font-weight: 300; font-size: clamp(2.6rem, 5vw, 4rem); line-height: 1; color: var(--ink); }
.ed-stat .num::after { content: "+"; color: var(--accent); }
.ed-stat .lbl { font-family: var(--sans); font-size: .72rem; font-weight: 600; letter-spacing: .18em; text-transform: uppercase; color: var(--ink-faint); margin-top: 14px; }

/* ---------------- MESSAGES ---------------- */
.ed-msgs { display: grid; grid-template-columns: repeat(3,1fr); gap: 0; border-top: 1px solid var(--line); }
@media (max-width: 900px){ .ed-msgs { grid-template-columns: 1fr; } }
.ed-msg { padding: clamp(28px,3vw,40px); border-right: 1px solid var(--line); display: flex; flex-direction: column; }
.ed-msg:last-child { border-right: 0; }
@media (max-width: 900px){ .ed-msg { border-right: 0; border-bottom: 1px solid var(--line); } .ed-msg:last-child{ border-bottom: 0; } }
.ed-msg blockquote { font-family: var(--serif); font-weight: 400; font-style: italic; font-size: 1.32rem; line-height: 1.42; color: var(--ink); margin: 0 0 26px; flex: 1; }
.ed-msg .who { display: flex; align-items: center; gap: 14px; }
.ed-msg .who img { width: 52px; height: 52px; border-radius: 50%; object-fit: cover; background: var(--paper-3); filter: grayscale(1) contrast(.95); }
.ed-msg .who .nm { font-family: var(--serif); font-size: 1.12rem; color: var(--ink); line-height: 1.1; }
.ed-msg .who .ro { font-family: var(--sans); font-size: .74rem; letter-spacing: .04em; color: var(--ink-faint); text-transform: uppercase; margin-top: 4px; }
.ed-msg .ed-link { margin-top: 20px; align-self: flex-start; }

/* ---------------- VENUE ---------------- */
.ed-venue { display: grid; grid-template-columns: 1fr 1.1fr; gap: clamp(34px, 6vw, 80px); align-items: center; }
@media (max-width: 900px){ .ed-venue { grid-template-columns: 1fr; } }
.ed-venue .addr { margin-top: 26px; padding-top: 22px; border-top: 1px solid var(--line); }
.ed-venue .addr .k { font-family: var(--sans); font-size: .68rem; font-weight: 600; letter-spacing: .2em; text-transform: uppercase; color: var(--ink-faint); }
.ed-venue .addr .v { font-family: var(--serif); font-size: 1.25rem; color: var(--ink); margin-top: 6px; }
.ed-map { aspect-ratio: 16/11; border: 1px solid var(--line-2); }
.ed-map iframe { width: 100%; height: 100%; border: 0; filter: grayscale(1) contrast(.95) opacity(.92); }

/* ---------------- closing CTA ---------------- */
.ed-cta { text-align: center; }
.ed-cta h2 { font-family: var(--serif); font-weight: 300; font-size: clamp(2rem, 5.5vw, 4rem); line-height: 1.06; max-width: 18ch; margin: 14px auto 0; }
.ed-cta h2 em { font-style: italic; color: var(--accent); }
.ed-cta p { color: var(--ink-soft); max-width: 48ch; margin: 22px auto 0; }
.ed-cta .ed-hero-actions { justify-content: center; margin-top: 36px; }

/* ============================================================
   SRI LANKA — Ayubowan welcome + scattered motifs
   ============================================================ */
:root { --sinhala: "Noto Serif Sinhala", var(--serif); }
.ed-photo { display: block; width: 100%; height: 100%; object-fit: cover; filter: grayscale(1) contrast(.97); transition: filter .6s var(--ease), transform .9s var(--ease); }
.ed-frame { border: 1px solid var(--line-2); overflow: hidden; background: var(--paper-3); }
.ed-frame:hover .ed-photo { filter: grayscale(0) contrast(1); transform: scale(1.03); }
.ed-frame--square { aspect-ratio: 1/1; border-radius: 50%; max-width: 240px; margin: 0 auto 18px; }
.ed-figcap { font-family: var(--sans); font-size: .68rem; letter-spacing: .03em; color: var(--ink-faint); margin-top: 10px; }
.ed-figcap a { color: var(--ink-faint); border-bottom: 1px solid var(--line-2); }
.ed-figcap a:hover { color: var(--accent); }
.ed-portrait { margin: 0 0 26px; text-align: center; }
.ed-portrait .ed-frame--square { border: 2px solid var(--line-2); box-shadow: 0 18px 50px rgba(6,31,80,.10); }
.ed-portrait .ed-photo { filter: grayscale(.25) contrast(1); }
.ed-portrait .ed-frame:hover .ed-photo { filter: grayscale(0) contrast(1.02); transform: scale(1.04); }
.ed-portrait-pair { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; margin: 0 0 30px; }
.ed-portrait-pair .ed-portrait { float: none; width: auto; margin: 0; text-align: center; }
.ed-portrait-pair .ed-frame--square { width: min(100%, 190px); }
.ed-portrait-pair .ed-figcap { max-width: 24ch; margin-left: auto; margin-right: auto; text-align: center; }
@media (min-width: 768px){
  .ed-portrait { float: right; margin: 0 0 22px 28px; width: min(34%, 220px); text-align: left; }
  .ed-portrait .ed-figcap { text-align: center; }
}
@media (max-width: 520px){
  .ed-portrait-pair { gap: 16px; }
  .ed-portrait-pair .ed-figcap { font-size: .62rem; }
}

/* grand Ayubowan */
.ayu-grid { display: grid; grid-template-columns: 1.05fr .95fr; gap: clamp(36px, 6vw, 88px); align-items: center; }
@media (max-width: 880px){ .ayu-grid { grid-template-columns: 1fr; } }
.ayu-si { font-family: var(--sinhala); font-weight: 600; color: var(--accent); line-height: 1; letter-spacing: -.01em; font-size: clamp(3.2rem, 11vw, 7.4rem); margin: 18px 0 0; }
.ayu-en { font-family: var(--serif); font-weight: 300; font-size: clamp(2rem, 4.5vw, 3.2rem); color: var(--ink); margin: 8px 0 0; letter-spacing: .03em; }
.ayu-en::after { content: ""; display: block; width: 64px; height: 1px; background: var(--accent); margin: 24px 0 0; }
.ayu-meaning { color: var(--ink-soft); font-size: clamp(1.05rem, 1.6vw, 1.2rem); line-height: 1.62; max-width: 46ch; margin: 26px 0 0; }
.ayu-meaning em { font-style: italic; color: var(--ink); }
.ayu-fig { margin: 0; }
.ayu-fig .ed-frame { aspect-ratio: 4/5; }

/* discover gallery */
.ed-gallery { display: grid; grid-template-columns: repeat(4,1fr); gap: 16px; }
@media (max-width: 880px){ .ed-gallery { grid-template-columns: repeat(2,1fr); gap: 14px; } }
.ed-gallery figure { margin: 0; }
.ed-gallery .ed-frame { aspect-ratio: 3/4; }
.ed-gallery .cap { font-family: var(--serif); font-size: 1.1rem; color: var(--ink); margin-top: 14px; }
.ed-gallery .sub { font-family: var(--sans); font-size: .7rem; letter-spacing: .14em; text-transform: uppercase; color: var(--ink-faint); margin-top: 4px; }

/* hero meta flag */
.ed-flag { height: .72em; width: auto; vertical-align: baseline; margin-right: .45em; border: 1px solid var(--line); }

/* footer lotus motif (every page) */
.footer .ed-lotus { width: 200px; max-width: 200px; height: 200px; border-radius: 50%; object-fit: cover; margin: 0 auto 10px; display: block; padding: 0; box-shadow: 0 6px 22px rgba(0,0,0,.35); }
.footer .ed-lotus-cap { font-family: var(--sinhala); font-size: .8rem; letter-spacing: .04em; color: rgba(247,244,239,.5); text-align: center; margin: 0 0 22px; }

/* full-width photo accent band (subpages) */
.ed-bandsec { padding-block: clamp(40px, 6vw, 76px); }
.ed-band { margin: 0; }
.ed-band .ed-frame { aspect-ratio: 21/9; }
@media (max-width: 680px){ .ed-band .ed-frame { aspect-ratio: 3/2; } }

/* ============================================================
   SHARED / SUBPAGE TEMPLATE COMPONENTS (restyled light)
   ============================================================ */
/* page header banner (subpages use #hero2.hero2) */
#hero2.hero2, .hero2.section {
  background: var(--paper) !important; border-bottom: 1px solid var(--line);
  padding: clamp(120px, 16vh, 160px) 0 clamp(36px, 5vw, 60px) !important;
}
.hero2-content { text-align: center; }
.hero2-content h1, #hero2 h1 {
  font-family: var(--serif) !important; font-weight: 300; color: var(--ink) !important;
  font-size: clamp(2.4rem, 6vw, 4.4rem) !important; letter-spacing: -.02em; text-transform: none;
}
.hero2-content::after { content: ""; display: block; width: 56px; height: 1px; background: var(--accent); margin: 22px auto 0; }
#hero2::before, .hero2::before, #hero::before, .hero::before { display: none !important; }

/* generic section titles used on subpages/home template */
.section-title h2, .section-header h2, .about h2, .program-at-glance h2 {
  font-family: var(--serif) !important; color: var(--ink) !important; font-weight: 400 !important;
  font-size: clamp(1.8rem, 4vw, 2.8rem) !important; letter-spacing: -.01em;
}
.section-title p, .section-header p { color: var(--ink-soft); font-family: var(--sans); }
.dark-background, .about.dark-background, section.dark-background, .program-at-glance.dark-background {
  background: var(--paper) !important; color: var(--ink) !important;
}
.dark-background h1,.dark-background h2,.dark-background h3,.dark-background h4,.dark-background h5 { color: var(--ink) !important; }

/* generic cards -> flat hairline */
.card { background: var(--paper-2) !important; border: 1px solid var(--line) !important; border-radius: 2px !important; box-shadow: none !important; color: var(--ink) !important; }
.card .card-body, .card-body { color: var(--ink); }

/* committee */
.card-organizing { background: transparent !important; border: 0 !important; }
.card-organizing .card { background: var(--paper-2) !important; border: 1px solid var(--line) !important; overflow: hidden; transition: border-color .3s var(--ease); }
.card-organizing .card:hover { border-color: var(--line-2) !important; }
.img-organizing { filter: grayscale(1) contrast(.96); transition: filter .4s var(--ease); width: 100%; }
.card-organizing .card:hover .img-organizing { filter: grayscale(0) contrast(1); }
.organizing-name { font-family: var(--serif) !important; font-size: 1.15rem !important; color: var(--ink) !important; }
.organizing-title { font-family: var(--sans) !important; font-size: .72rem !important; letter-spacing: .12em; text-transform: uppercase; color: var(--ink-faint) !important; }
.organizing-placeholder-note { color: var(--ink-faint); font-style: italic; font-family: var(--serif); font-size: 1.05rem; }

/* welcome / messages (full page) */
.card-welcome-message { background: var(--paper-2) !important; border: 1px solid var(--line) !important; box-shadow: none !important; padding: clamp(24px,4vw,44px) !important; color: var(--ink-soft) !important; font-size: 1.02rem; }
.card-welcome-message .name { font-family: var(--serif) !important; color: var(--ink) !important; font-size: 1.2rem; }
.card-welcome-message .job-title { font-family: var(--sans) !important; color: var(--accent) !important; font-size: .76rem; letter-spacing: .1em; text-transform: uppercase; font-style: normal; }
.welcome-profile .img-welcome-message { filter: grayscale(1); border: 1px solid var(--line); }
.profile-card { background: transparent !important; border: 0 !important; box-shadow: none !important; }

/* tables (faculty / registration) */
.table { color: var(--ink) !important; --bs-table-bg: transparent; --bs-table-color: var(--ink); border-color: var(--line) !important; }
.table th, .table td { border-color: var(--line) !important; padding: 15px 18px !important; }
.table > :not(caption) > * > th, .table thead th {
  background: transparent !important; color: var(--ink) !important; font-family: var(--sans) !important;
  font-weight: 600; font-size: .72rem; letter-spacing: .14em; text-transform: uppercase;
  border-bottom: 1px solid var(--ink) !important;
}
.table td { font-family: var(--sans); }
.table tbody tr:hover { background: var(--paper-3) !important; }

/* accordions (faq / submission) */
.accordion-item { background: var(--paper-2) !important; border: 0 !important; border-top: 1px solid var(--line) !important; border-radius: 0 !important; margin: 0 !important; }
.accordion-item:last-of-type { border-bottom: 1px solid var(--line) !important; }
.accordion-button { background: transparent !important; color: var(--ink) !important; font-family: var(--serif) !important; font-weight: 500; font-size: 1.25rem !important; padding: 24px 8px !important; box-shadow: none !important; }
.accordion-button:not(.collapsed) { color: var(--accent) !important; background: transparent !important; }
.accordion-button::after { transition: transform .3s var(--ease); }
.accordion-body { color: var(--ink-soft) !important; padding: 0 8px 26px !important; }
.faq-accordion, .content-wrapper { color: var(--ink-soft); }

/* forms */
.form-control, .form-select { background: var(--paper-2) !important; border: 1px solid var(--line-2) !important; border-radius: 2px !important; color: var(--ink) !important; padding: 13px 16px !important; font-family: var(--sans); box-shadow: none !important; }
.form-control:focus, .form-select:focus { border-color: var(--accent) !important; box-shadow: 0 0 0 3px rgba(46,91,78,.12) !important; }
.form-control::placeholder { color: var(--ink-faint) !important; }
label { font-family: var(--sans); font-weight: 600; color: var(--ink); font-size: .85rem; }
.information-text { font-family: var(--serif) !important; color: var(--accent) !important; font-size: 1.1rem !important; font-weight: 500; }

/* registration tabs + buy ticket */
.tabs-regist { display: inline-flex; gap: 4px; padding: 4px; border: 1px solid var(--line) !important; background: var(--paper-2); border-radius: 2px; }
.tab-regist { border: 0; background: transparent; color: var(--ink-faint); font-family: var(--sans); font-weight: 600; font-size: .76rem; letter-spacing: .08em; text-transform: uppercase; padding: 11px 22px; border-radius: 2px; cursor: pointer; transition: color .25s var(--ease), background .25s var(--ease); }
.tab-regist.active { background: var(--ink); color: var(--paper); }
.tab-regist:hover:not(.active) { color: var(--ink); }
.tab-regist::after, .tab-regist.active::after, .tabs-regist::after { display: none !important; }
.btn-buy-ticket { background: var(--accent) !important; color: var(--paper) !important; border: 0 !important; border-radius: 2px !important; font-family: var(--sans) !important; font-weight: 600 !important; font-size: .78rem !important; letter-spacing: .06em; text-transform: uppercase; padding: 13px 22px !important; box-shadow: none !important; transition: background .3s var(--ease); }
.btn-buy-ticket:hover { background: var(--accent-deep) !important; }

/* important-dates / topics legacy list (if present) */
.bg-important-dates { background: var(--paper-2) !important; border: 1px solid var(--line) !important; border-radius: 2px !important; box-shadow: none !important; }
.bg-important-dates p { color: var(--ink) !important; }
.bg-important-dates hr { border-color: var(--line) !important; }

/* ---------------- FOOTER (ink colophon) ---------------- */
.footer, .footer.dark-background { background: var(--ink) !important; color: var(--paper) !important; padding: clamp(56px,7vw,84px) 0 !important; border: 0 !important; }
.footer .px-logo-text b { color: var(--paper); }
.footer .px-logo-text b .px-logo-year { color: #c8b98a; }
.footer .px-logo-text small { color: rgba(247,244,239,.5); }
.footer p { color: rgba(247,244,239,.62) !important; font-family: var(--sans); }
.footer a { color: var(--paper); }
.footer .social-links a { width: 40px; height: 40px; display: grid; place-items: center; border: 1px solid rgba(247,244,239,.22); border-radius: 50%; color: var(--paper) !important; transition: background .3s var(--ease), color .3s var(--ease); }
.footer .social-links a:hover { background: var(--paper); color: var(--ink) !important; }
.footer hr { border-color: rgba(247,244,239,.16) !important; }
.footer .ed-credit { font-family: var(--sans); font-size: .76rem; letter-spacing: .04em; color: rgba(247,244,239,.45); margin-top: 8px; }
.footer .ed-credit a { color: rgba(247,244,239,.74); border-bottom: 1px solid rgba(247,244,239,.22); padding-bottom: 1px; }
.footer .ed-credit a:hover { color: #c8b98a; border-bottom-color: #c8b98a; }
.footer .sitename { filter: none; }

/* scroll-top */
.scroll-top { background: var(--ink) !important; border-radius: 2px !important; box-shadow: none !important; }
.scroll-top:hover { background: var(--accent) !important; }
.scroll-top i { color: var(--paper); }

/* modal (contact + payhere) light */
.modal-content { background: var(--paper-2) !important; border: 1px solid var(--line) !important; border-radius: 3px !important; color: var(--ink) !important; }
.modal-title { font-family: var(--serif) !important; color: var(--ink) !important; }
.contact-item i { color: var(--accent); }
#payhereModal #ph-summary { color: var(--accent); font-family: var(--serif); font-size: 1.1rem; }
#payhereModal .ph-secure { color: var(--ink-faint); font-size: .82rem; }

/* ---------------- subtle reveals ---------------- */
@media (prefers-reduced-motion: no-preference) {
  [data-aos] { transition-timing-function: var(--ease) !important; }
  .ed-reveal { opacity: 0; transform: translateY(16px); transition: opacity .8s var(--ease), transform .8s var(--ease); }
  .ed-reveal.is-in { opacity: 1; transform: none; }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

/* ============================================================
   AMBIENT BACKGROUND ANIMATION — subtle, editorial, GPU-friendly.
   Reuses the .px-grain element already present on every page + a
   body::before grain layer. Whisper-quiet; off for reduced-motion.
   ============================================================ */
body::before {
  content: ""; position: fixed; inset: 0; z-index: -2; pointer-events: none; opacity: .05;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  animation: edGrain 5s steps(3) infinite;
}
@keyframes edGrain { 0% { background-position: 0 0; } 100% { background-position: 130px 90px; } }

.px-grain {
  display: block !important; position: fixed; inset: 0; z-index: -1;
  pointer-events: none; overflow: hidden; opacity: 1; background: none;
}
.px-grain::before, .px-grain::after { content: ""; position: absolute; border-radius: 50%; will-change: transform; }
.px-grain::before { width: 72vmax; height: 72vmax; left: -22vmax; top: -26vmax; border: 1.5px solid var(--accent); opacity: .16; animation: edDrift1 30s ease-in-out infinite alternate; }
.px-grain::after { width: 58vmax; height: 58vmax; right: -20vmax; bottom: -24vmax; border: 1.5px solid var(--ink-soft); opacity: .12; animation: edDrift2 40s ease-in-out infinite alternate; }
/* a third, slimmer ripple for quiet depth */
.px-grain { background-image: radial-gradient(circle at 78% 18%, transparent 21vmax, rgba(46,91,78,.05) 21vmax, transparent 21.3vmax); background-repeat: no-repeat; animation: edBreathe 22s ease-in-out infinite alternate; }
@keyframes edDrift1 { from { transform: translate(0,0) scale(1) rotate(0deg); } to { transform: translate(6vmax,4vmax) scale(1.08) rotate(28deg); } }
@keyframes edDrift2 { from { transform: translate(0,0) scale(1); } to { transform: translate(-5vmax,-5vmax) scale(1.07); } }
@keyframes edBreathe { from { background-size: 100% 100%; } to { background-size: 116% 116%; } }
@media (prefers-reduced-motion: reduce) { body::before, .px-grain, .px-grain::before, .px-grain::after { animation: none; } }


/* ===== PENSA 2027 brand alignment (theme: A Pearl of Global Nutrition) ===== */
.ed-hero-title .ed-hero-sub {
  display: block;
  margin-top: .38em;
  font-family: var(--sans);
  font-weight: 500;
  font-size: clamp(.95rem, 1.6vw, 1.35rem);
  letter-spacing: .01em;
  line-height: 1.35;
  color: var(--ink-soft);
}
.ed-eyebrow { color: var(--pensa-green); }
.ed-hero-title em, .ed-statement h2 em, .ed-cta h2 em { color: var(--pensa-navy); }
.ed-topic .n, .ed-date .d, .ed-stat .num { color: var(--pensa-gold); }
.ed-btn { background: var(--pensa-navy) !important; color: #fff !important; }
.ed-btn:hover { background: var(--pensa-green) !important; }

/* ============================================================
   PENSA 2027 — Brand refresh (2026)
   White + PENSA Navy foundation, Montserrat throughout,
   green / teal / gold / leaf used as purposeful accents only.
   Hierarchy: WHITE+NAVY > GREEN+TEAL > GOLD > LEAF.
   ============================================================ */

:root {
  /* Montserrat is the single typeface — the "serif" slot is remapped. */
  --serif: "Montserrat", system-ui, -apple-system, sans-serif;
  --sans:  "Montserrat", system-ui, -apple-system, sans-serif;

  --paper:    #ffffff;
  --paper-2:  #ffffff;
  --paper-3:  #f2f5fa;
  --ink:      #061F50;   /* PENSA Navy */
  --ink-soft: #41506e;
  --ink-faint:#7d89a3;
  --accent:      #006B35; /* PENSA Green */
  --accent-deep: #061F50;
  --line:     #e5eaf2;
  --line-2:   #ccd6e4;

  --background-color: #ffffff;
  --default-color: #061F50;
  --heading-color: #061F50;
  --surface-color: #ffffff;
  --contrast-color: #ffffff;
  --nav-color: #41506e;
  --nav-hover-color: #061F50;
  --nav-dropdown-background-color: #ffffff;
  --nav-dropdown-color: #061F50;
  --nav-dropdown-hover-color: #006B35;
}
.dark-background { --background-color: #ffffff; --default-color: #061F50; --heading-color: #061F50; --surface-color: #ffffff; }

body, body.index-page { background: #ffffff !important; color: var(--ink) !important; font-family: var(--sans) !important; }

/* --- typography: confident, spacious, never dense --- */
h1, h2, h3, h4, h5, h6 { font-family: var(--sans) !important; font-weight: 700 !important; letter-spacing: -0.02em; }
.ed-hero-title, .ed-cta h2, .ed-statement h2, .ayu-en, .ed-stat .num, .page-title h1 {
  font-weight: 800 !important; letter-spacing: -0.03em;
}
.ed-hero-title em, .ed-statement h2 em, .ed-cta h2 em { font-style: normal; color: var(--accent); }
.ed-hero-title .ed-hero-sub { font-weight: 500 !important; letter-spacing: 0; color: var(--ink-soft); }
.ed-msg blockquote { font-style: normal; font-weight: 400; letter-spacing: -0.005em; }
.organizing-placeholder-note { font-style: normal; }
.accordion-button, .modal-title, .ed-date h3, .ed-msg .who .nm, .ed-venue .addr .v,
.organizing-name, .card-welcome-message .name, .ed-gallery .cap, .information-text {
  font-weight: 600 !important;
}
.ed-lead, .ed-hero-stand { font-weight: 400; color: var(--ink-soft); }

/* --- header on white --- */
.header.fixed-top { background: rgba(255,255,255,.86) !important; }
body.scrolled .header.fixed-top, .header.scrolled { background: rgba(255,255,255,.96) !important; border-bottom-color: var(--line); }
.navmenu ul li a { font-weight: 600 !important; }
.px-logo-text b { font-weight: 800; letter-spacing: -0.01em; }
.px-logo-text b .px-logo-year { color: var(--pensa-gold); }

/* --- accents with purpose --- */
.ed-eyebrow { color: var(--pensa-teal); }
.ed-eyebrow::before { background: var(--pensa-gold); width: 34px; }
.ed-topic .n { color: var(--pensa-teal); }
.ed-date .d, .ed-meta .k { color: var(--pensa-gold) !important; font-weight: 700; }
.ed-stat .num { color: var(--pensa-navy); }
.ed-stat .num::after { content: ""; display: block; width: 34px; height: 2px; background: var(--pensa-gold); margin-top: 14px; }
.ed-section + .ed-section { border-top-color: var(--line); }
.ayu-si, .ed-lotus-cap { color: var(--pensa-leaf); }
.footer .ed-lotus-cap { color: rgba(255,255,255,.62); }
.information-text { color: var(--pensa-teal) !important; }

/* --- buttons --- */
.ed-btn, a.ed-btn, .btn-primary, a.btn-primary, .btn-getstarted, a.btn-getstarted {
  background: var(--pensa-navy) !important; border-color: var(--pensa-navy) !important; color: #ffffff !important;
}
.ed-btn:hover, .btn-primary:hover, .btn-getstarted:hover {
  background: var(--pensa-green) !important; border-color: var(--pensa-green) !important; color: #ffffff !important;
}
.ed-btn.is-ghost { color: var(--pensa-navy) !important; border-color: var(--line-2) !important; }
.ed-btn.is-ghost:hover { border-color: var(--pensa-navy) !important; color: var(--pensa-navy) !important; }
.btn-submit-abstract, a.btn-submit-abstract { background: var(--pensa-green) !important; }
.btn-submit-abstract:hover { background: var(--pensa-navy) !important; }
.ed-link { color: var(--pensa-navy); }
.ed-link:hover { color: var(--pensa-green); border-bottom-color: var(--pensa-green); }

/* --- surfaces --- */
.countdown-card, .card, .modal-content { background: #ffffff !important; border-color: var(--line) !important; }
::selection { background: var(--pensa-navy); color: #ffffff; }
::-webkit-scrollbar-track { background: #ffffff; }
::-webkit-scrollbar-thumb { background: #d6dfeb; border-color: #ffffff; }

/* --- footer: navy field, white type, fine gold rule --- */
.footer, .footer.dark-background { background: var(--pensa-navy) !important; color: #ffffff !important; }
.footer .px-logo-text b { color: #ffffff; }
.footer .px-logo-text b .px-logo-year { color: var(--pensa-gold); }
.footer .px-logo-text small, .footer p { color: rgba(255,255,255,.7) !important; }
.footer a, .footer .social-links a { color: #ffffff !important; }
.footer .social-links a { border-color: rgba(255,255,255,.28); }
.footer .social-links a:hover { background: var(--pensa-gold); border-color: var(--pensa-gold); color: var(--pensa-navy) !important; }
.footer hr { border-color: rgba(255,255,255,.18) !important; }
.footer .ed-credit a:hover { color: var(--pensa-gold); border-bottom-color: var(--pensa-gold); }
.footer .ed-lotus { border-color: rgba(255,255,255,.3); }

/* --- interim content states --- */
.ed-btn.is-soon{background:var(--pensa-navy,#061F50);opacity:.55;cursor:default;pointer-events:none;display:inline-block}
.ed-signoff{margin-top:28px;color:var(--pensa-navy,#061F50)}
.ed-msg .who{gap:0}

/* Responsive navigation: use the component's explicit open state so the
   menu does not depend on body-class timing or a transformed header. */
@media (max-width: 1199px) {
  .header.fixed-top {
    backdrop-filter: none;
  }

  .navmenu .mobile-nav-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    padding: 0;
    border: 0;
    background: transparent;
    border-radius: 0;
  }

  .navmenu.is-open {
    position: fixed;
    inset: 0;
    z-index: 10000;
    background: rgba(6, 31, 80, 0.72);
  }

  .navmenu.is-open .mobile-nav-toggle {
    position: fixed;
    top: 12px;
    right: 14px;
    z-index: 10002;
    color: #ffffff !important;
    font-size: 32px;
  }

  .navmenu.is-open > ul {
    display: block;
    position: fixed;
    inset: 64px 16px 16px;
    max-height: none;
    overflow-y: auto;
    background: var(--paper-2) !important;
    border: 1px solid var(--line);
    border-radius: 4px;
    box-shadow: 0 24px 60px -20px rgba(6, 31, 80, 0.35);
    z-index: 10001;
  }

  .navmenu.is-open > ul > li > a {
    white-space: normal;
    line-height: 1.35;
    padding: 14px 20px !important;
  }
}

/* ---- TBA notify form ---- */
.tba-form { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 26px; max-width: 520px; }
.tba-form input {
  flex: 1 1 240px; font-family: var(--sans); font-size: .95rem; color: var(--ink);
  padding: 13px 16px; border: 1px solid var(--line); border-radius: 2px; background: #fff;
  outline: none; transition: border-color .2s var(--ease);
}
.tba-form input:focus { border-color: var(--ink); }
.tba-form button {
  font-family: var(--sans); font-size: .78rem; font-weight: 600; letter-spacing: .12em;
  text-transform: uppercase; color: #fff; background: var(--ink); border: 1px solid var(--ink);
  border-radius: 2px; padding: 13px 26px; cursor: pointer; transition: background .2s var(--ease), color .2s var(--ease);
}
.tba-form button:hover:not(:disabled) { background: transparent; color: var(--ink); }
.tba-form button:disabled { opacity: .6; cursor: default; }
.tba-note { font-family: var(--sans); font-size: .9rem; margin-top: 16px; color: var(--ink-soft); }
.tba-success { color: #1a7a4a; font-weight: 500; }
.tba-error { color: #b23b3b; }

/* ---- Fancy footer (nutrition/pearl theme) ---- */
.pfx-footer { position: relative; overflow: hidden; }
.pfx-footer::before {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background:
    radial-gradient(520px 300px at 12% 8%, rgba(232,169,60,.10), transparent 70%),
    radial-gradient(620px 340px at 88% 92%, rgba(139,63,176,.12), transparent 70%);
}
.pfx-molecule { position: relative; margin-bottom: clamp(28px, 4vw, 48px); }
.pfx-molecule svg { display: block; width: 100%; height: clamp(46px, 6vw, 90px); }
.pfx-mol-line { stroke: rgba(247,244,239,.16); stroke-width: 1.2; stroke-dasharray: 6 8; }
.px-motion .pfx-mol-line { animation: pfxMolDash 26s linear infinite; }
.pfx-mol-nodes circle { fill: rgba(247,244,239,.5); }
.pfx-mol-nodes .pfx-gold { fill: #e8a93c; }
.pfx-mol-nodes .pfx-violet { fill: #b678d6; }
.px-motion .pfx-mol-nodes circle { animation: pfxMolPulse 4.5s ease-in-out infinite; }
.px-motion .pfx-mol-nodes circle:nth-child(odd) { animation-delay: -2.2s; }
@keyframes pfxMolDash { to { stroke-dashoffset: -560; } }
@keyframes pfxMolPulse { 0%,100% { opacity: .55; } 50% { opacity: 1; } }

.pfx-footer .container { position: relative; }
.pfx-col-brand .ed-lotus { margin: 0 0 10px; }
.pfx-col-brand .ed-lotus-cap { text-align: left; margin: 0 0 18px; }
.pfx-brand { align-items: flex-start !important; text-align: left !important; }
.pfx-tagline { max-width: 42ch; margin-top: 20px; font-size: .95rem; line-height: 1.7; }
.pfx-shimmer {
  background: linear-gradient(100deg, rgba(247,244,239,.55) 20%, #e8a93c 40%, #f4d489 50%, #e8a93c 60%, rgba(247,244,239,.55) 80%);
  background-size: 220% 100%; -webkit-background-clip: text; background-clip: text; color: transparent;
}
.px-motion .pfx-shimmer { animation: pfxShimmer 5s linear infinite; }
@keyframes pfxShimmer { to { background-position: -220% 0; } }
.pfx-pearls { list-style: none; display: flex; flex-wrap: wrap; gap: 8px 0; padding: 0; margin: 22px 0 0; }
.pfx-pearls li {
  font-family: var(--sans); font-size: .68rem; font-weight: 600; letter-spacing: .16em;
  text-transform: uppercase; color: rgba(247,244,239,.62); display: flex; align-items: center;
}
.pfx-pearls li:not(:last-child)::after {
  content: ""; width: 6px; height: 6px; border-radius: 50%; margin: 0 14px;
  background: radial-gradient(circle at 35% 30%, #f4d489, #c8b98a 55%, #8b7f5a);
  box-shadow: 0 0 6px rgba(232,169,60,.45);
}
.pfx-footer .pfx-head {
  font-family: var(--sans); font-size: .72rem; font-weight: 700; letter-spacing: .22em;
  text-transform: uppercase; color: #c8b98a !important; margin: 6px 0 20px; display: flex; align-items: center; gap: 12px;
}
.pfx-head::after { content: ""; flex: 1; height: 1px; background: linear-gradient(90deg, rgba(200,185,138,.45), transparent); }
.pfx-links { list-style: none; padding: 0; margin: 0; display: grid; gap: 10px; }
.pfx-links a {
  font-family: var(--sans); font-size: .92rem; color: rgba(247,244,239,.72) !important;
  text-decoration: none; display: inline-flex; align-items: center; gap: 10px; transition: color .2s var(--ease), gap .25s var(--ease);
}
.pfx-links a::before {
  content: ""; width: 5px; height: 5px; border-radius: 50%; background: #e8a93c; opacity: .55;
  transition: transform .25s var(--ease), opacity .2s var(--ease);
}
.pfx-links a:hover { color: #fff !important; gap: 14px; }
.pfx-links a:hover::before { transform: scale(1.5); opacity: 1; }
.pfx-contact-note { font-size: .82rem; letter-spacing: .04em; margin: 0 0 18px; color: rgba(247,244,239,.5) !important; }
.pfx-contact-row {
  display: flex; align-items: center; gap: 14px; text-decoration: none;
  padding: 12px 14px; border: 1px solid rgba(247,244,239,.14); border-radius: 10px;
  background: rgba(247,244,239,.04); margin-bottom: 12px; transition: border-color .25s var(--ease), background .25s var(--ease), transform .25s var(--ease);
}
.pfx-contact-row:hover { border-color: rgba(232,169,60,.55); background: rgba(232,169,60,.07); transform: translateY(-2px); }
.pfx-ico {
  width: 38px; height: 38px; flex: 0 0 38px; display: grid; place-items: center; border-radius: 50%;
  background: linear-gradient(135deg, rgba(232,169,60,.25), rgba(139,63,176,.25));
  border: 1px solid rgba(232,169,60,.4); color: #e8a93c; font-size: 1rem;
}
.pfx-contact-row small { display: block; font-size: .68rem; letter-spacing: .14em; text-transform: uppercase; color: rgba(247,244,239,.5); }
.pfx-contact-row span:last-child { font-family: var(--sans); color: rgba(247,244,239,.88); font-size: .95rem; }
.pfx-bottom {
  display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 8px 20px;
  margin-top: clamp(36px, 5vw, 56px); padding-top: 22px; border-top: 1px solid rgba(247,244,239,.14);
}
.pfx-bottom p { margin: 0; font-size: .82rem; }
@media (max-width: 991.98px) {
  .pfx-col-brand .ed-lotus { margin: 0 auto 10px; }
  .pfx-col-brand .ed-lotus-cap { text-align: center; }
  .pfx-col-brand { text-align: center; }
  .pfx-col-brand .px-logo-text { align-items: center !important; text-align: center !important; }
  .pfx-tagline { margin-inline: auto; }
  .pfx-pearls { justify-content: center; }
  .pfx-bottom { justify-content: center; text-align: center; }
}

/* ============================================================
   EMERALD HERITAGE PREMIUM — selected 2026 direction
   Sri Lankan ceremonial warmth, scientific clarity, pearl light.
   ============================================================ */
:root {
  --serif: "Sora", system-ui, sans-serif;
  --sans: "Manrope", system-ui, sans-serif;
  --paper: #fffdf8;
  --paper-2: #ffffff;
  --paper-3: #f5f4ec;
  --ink: #123665;
  --ink-soft: #3f6670;
  --ink-faint: #73858b;
  --accent: #2d7776;
  --accent-deep: #123665;
  --pensa-navy: #123665;
  --pensa-green: #2d7776;
  --pensa-gold: #dda52c;
  --pensa-teal: #2d7776;
  --pensa-leaf: #4f7d43;
  --pensa-ruby: #123665;
  --line: #e8e2d4;
  --line-2: #d9cfba;
  --background-color: #fffdf8;
  --default-color: #123665;
  --heading-color: #123665;
  --surface-color: #ffffff;
  --contrast-color: #fffdf8;
  --nav-color: #315761;
  --nav-hover-color: #2d7776;
  --nav-dropdown-background-color: #fffdf8;
  --nav-dropdown-color: #123665;
  --nav-dropdown-hover-color: #2d7776;
}

body, body.index-page {
  background: var(--paper) !important;
  color: var(--ink) !important;
  font-family: var(--sans) !important;
  font-size: 16px;
  line-height: 1.74;
}
h1, h2, h3, h4, h5, h6,
.ed-hero-title, .ed-cta h2, .ed-statement h2, .ayu-en,
.ed-stat .num, .page-title h1, .accordion-button, .organizing-name {
  font-family: var(--serif) !important;
  font-weight: 700 !important;
  letter-spacing: 0 !important;
}
.ed-hero-title { font-weight: 700 !important; }
.ed-eyebrow, .navmenu ul li a, .px-logo-text small { letter-spacing: .12em; }

/* ceremonial weave rules shared by all full-width sections */
.ed-section { overflow: clip; }
.ed-section::before {
  content: "";
  position: absolute;
  top: 0;
  left: 50%;
  width: min(1180px, calc(100% - 44px));
  height: 1px;
  transform: translateX(-50%);
  background: linear-gradient(90deg, transparent, var(--line-2) 16%, var(--pensa-gold) 50%, var(--line-2) 84%, transparent);
  opacity: .72;
}
.ed-section + .ed-section { border-top: 0; }
.ed-section:nth-of-type(odd):not(.ed-ayubowan) { background: color-mix(in oklab, var(--paper-3) 48%, var(--paper)); }
.ed-head h2 { max-width: 15ch; }
.ed-eyebrow { color: var(--pensa-teal); font-weight: 700; }
.ed-eyebrow::before { width: 36px; height: 2px; background: var(--pensa-gold); }
.ed-lead { color: var(--ink-soft); }

/* navigation: pearl glass with a fine ceremonial edge */
.header.fixed-top,
body.scrolled .header.fixed-top, .header.scrolled {
  background: color-mix(in oklab, var(--paper) 91%, transparent) !important;
  border-bottom: 1px solid color-mix(in oklab, var(--pensa-gold) 35%, var(--line));
}
.header.fixed-top::after {
  content: "";
  position: absolute;
  inset: auto 0 -4px;
  height: 3px;
  pointer-events: none;
  background: repeating-linear-gradient(90deg, transparent 0 18px, color-mix(in oklab, var(--pensa-ruby) 48%, transparent) 18px 19px, transparent 19px 36px);
  opacity: .34;
}
.px-logo-mark { display: inline-flex !important; width: 46px; height: 46px; margin-right: 9px; align-items: center; justify-content: center; }
.px-logo-mark img { width: 100%; height: 100%; object-fit: contain; }
.px-logo-full { height: 56px; width: 56px; display: block; border-radius: 50%; object-fit: cover; object-position: center; box-shadow: 0 2px 10px rgba(6,72,62,.22); }
.header.scrolled .px-logo-full { height: 46px; width: 46px; }
.pfx-brand .px-logo-full { height: 64px; width: 64px; box-shadow: 0 4px 14px rgba(0,0,0,.35); }
.px-logo-text b { color: var(--ink); font-size: 1.34rem; font-weight: 800; }
.px-logo-name { color: var(--pensa-navy); }
.px-year-red { color: #c91d2e; }
.px-year-gold { color: var(--pensa-gold); }
.px-year-green { color: var(--pensa-green); }
.navmenu ul li a { color: var(--ink) !important; font-size: .72rem !important; font-weight: 700 !important; }
.navmenu ul li a:hover, .navmenu ul li a.active { color: var(--pensa-teal) !important; }
.navmenu > ul > li > a.active::after { background: var(--pensa-gold); height: 2px; }
.btn-getstarted, a.btn-getstarted { background: var(--pensa-navy) !important; border-color: var(--pensa-navy) !important; }
.btn-getstarted:hover { background: var(--pensa-green) !important; border-color: var(--pensa-green) !important; }

/* image-led home opening */
.ed-hero--heritage {
  min-height: min(880px, 94vh);
  display: flex;
  align-items: flex-end;
  padding: clamp(150px, 19vh, 190px) 0 0;
  background:
    linear-gradient(0deg, rgba(5,44,37,.62) 0%, rgba(5,44,37,.18) 30%, transparent 60%),
    url("../img/srilanka/tea-hills.jpg") center 42% / cover no-repeat;
  color: var(--paper);
  isolation: isolate;
}
.ed-hero--heritage::before {
  display: block !important;
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  border-radius: 0;
  filter: none;
  background: linear-gradient(135deg, color-mix(in oklab, var(--pensa-gold) 16%, transparent), transparent 28%);
  opacity: .55;
}
.ed-hero--heritage::after {
  display: block !important;
  content: "";
  position: absolute;
  inset: 18px;
  z-index: -1;
  border: 1px solid rgba(255,253,248,.28);
  border-radius: 0;
  filter: none;
  background: none;
}
.ed-hero--heritage .ed-wrap { width: 100%; padding-inline: 0; }
.ed-hero--heritage .ed-eyebrow { color: #f0c65d; }
.ed-hero--heritage .ed-eyebrow::before { background: #f0c65d; }
.ed-hero--heritage .ed-hero-title { color: var(--paper); max-width: 13ch; font-size: clamp(3rem, 7vw, 6.3rem); line-height: 1.02; text-shadow: 0 2px 18px rgba(0,0,0,.18); }
.ed-hero--heritage .ed-hero-title em { color: #f0c65d; font-style: normal; }
.ed-hero--heritage .ed-hero-title .ed-hero-sub { color: rgba(255,253,248,.86); max-width: 40ch; font-family: var(--sans); font-size: clamp(1rem, 1.5vw, 1.28rem); text-shadow: 0 1px 10px rgba(0,0,0,.15); }
.ed-hero--heritage .ed-hero-stand { color: rgba(255,253,248,.86); text-shadow: 0 1px 10px rgba(0,0,0,.15); }
.ed-hero--heritage .ed-btn { background: var(--pensa-navy) !important; border-color: var(--pensa-navy) !important; }
.ed-hero--heritage .ed-link { color: var(--paper); border-color: rgba(255,253,248,.55); }
.ed-hero--heritage .ed-meta { border-color: rgba(255,253,248,.28); max-width: 900px; margin-left: auto; margin-right: auto; text-align: center; }
.ed-hero--heritage .ed-meta > div { border-color: rgba(255,253,248,.18); padding: 26px 20px 0; display: flex; flex-direction: column; align-items: center; }
.ed-hero--heritage .ed-meta > div:last-child { padding-right: 20px; }
.ed-hero--heritage .ed-meta .k { color: #f0c65d !important; }
.ed-hero--heritage .ed-meta .v, .ed-hero--heritage .ed-meta a { color: var(--paper); }

/* localized text panel: opacity only behind copy, video stays clear elsewhere */
.ed-hero-panel {
  width: 100%;
  max-width: 720px;
  margin-left: auto;
  margin-right: auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 14px;
  padding: clamp(18px, 3vw, 30px) clamp(16px, 3.5vw, 32px);
  background: none;
  border: 0;
}
.ed-hero-panel > * {
  width: fit-content;
  max-width: 100%;
  padding: 0;
  background: none;
  border: 0;
  overflow: visible;
}
.ed-hero-panel .ed-eyebrow { text-shadow: 0 2px 12px rgba(0,0,0,.45); }
.ed-hero-panel .ed-hero-title {
  max-width: 100%;
  text-align: center;
  text-shadow: 0 3px 22px rgba(0,0,0,.55), 0 1px 6px rgba(0,0,0,.35);
}
.ed-hero-panel .ed-hero-title .ed-hero-sub {
  max-width: 100%;
  text-shadow: 0 2px 12px rgba(0,0,0,.45), 0 1px 4px rgba(0,0,0,.3);
}
.ed-hero-panel .ed-hero-stand {
  max-width: 100%;
  text-align: center;
  text-shadow: 0 2px 14px rgba(0,0,0,.5), 0 1px 4px rgba(0,0,0,.35);
}
.ed-hero-panel .ed-hero-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 14px;
}
.ed-hero-panel .ed-meta {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  text-align: center;
}
.ed-hero-panel .ed-meta > div {
  border: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-shadow: 0 2px 12px rgba(0,0,0,.45), 0 1px 4px rgba(0,0,0,.3);
}
.ed-hero-panel .ed-meta .k { margin-bottom: 4px; text-shadow: 0 2px 10px rgba(0,0,0,.5); }

/* live Sri Lanka background film */
.ed-hero--heritage.has-video { overflow: hidden; }
/* while the film is playing, never let the still photo show through
   (it used to flash during clip swaps / before the first clip loaded) */
.ed-hero--heritage.has-video {
  background-image:
    linear-gradient(0deg, rgba(5,44,37,.62) 0%, rgba(5,44,37,.18) 30%, transparent 60%),
    linear-gradient(180deg, #06483e, #052c25);
  background-color: #052c25;
}
.ed-hero-video {
  position: absolute;
  inset: 0;
  z-index: -3;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 45%;
  pointer-events: none;
  border: 0;
  opacity: 1;
  transition: opacity .4s ease;
}
.ed-hero-video.is-fading { opacity: 0; }
.ed-video-loader {
  position: absolute;
  inset: 0;
  z-index: 4;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 18px;
  background: var(--paper);
  opacity: 1;
  visibility: visible;
  transition: opacity .5s ease, visibility 0s linear .5s;
}
.ed-video-loader-mark {
  width: clamp(110px, 16vw, 170px);
  height: auto;
  animation: ed-loader-breathe 1.6s ease-in-out infinite;
}
.ed-video-loader-wordmark {
  font-family: var(--sans);
  font-size: clamp(1.8rem, 4vw, 3.2rem);
  font-weight: 800;
  line-height: 1;
  letter-spacing: .03em;
}
.ed-hero.is-video-ready .ed-video-loader { opacity: 0; visibility: hidden; pointer-events: none; }
@keyframes ed-loader-breathe { 50% { transform: scale(1.035); opacity: .82; } }
.ed-hero-veil {
  position: absolute;
  inset: 0;
  z-index: -2;
  pointer-events: none;
  background: linear-gradient(0deg, rgba(5,44,37,.28) 0%, transparent 38%);
}
@media (prefers-reduced-motion: reduce) {
  .ed-hero-video { display: none; }
  .ed-video-loader-mark { animation: none; }
  /* no film here, so restore the still photo */
  .ed-hero--heritage.has-video {
    background-image:
      linear-gradient(0deg, rgba(5,44,37,.62) 0%, rgba(5,44,37,.18) 30%, transparent 60%),
      url("../img/srilanka/tea-hills.jpg");
    background-position: center 42%;
    background-size: cover;
    background-repeat: no-repeat;
  }
}


/* inner-page photographic banners */
#hero2.hero2, .hero2.section {
  position: relative;
  isolation: isolate;
  min-height: clamp(390px, 37.5vw, 558px);
  display: grid;
  place-items: end center;
  padding: 150px 0 44px !important;
  overflow: hidden;
  border: 0;
  background: url("/__l5e/assets-v1/9eda3ca3-32e9-4b3d-aa79-a1fbd8c4821d/pensa-2027-inner-banner.jpeg") center / cover no-repeat !important;
}
#hero2.hero2.hero2--welcome,
#hero2.hero2.hero2--venue,
#hero2.hero2.hero2--partners,
#hero2.hero2.hero2--submission,
#hero2.hero2.hero2--registration,
#hero2.hero2.hero2--registration-group,
#hero2.hero2.hero2--scientific-programme,
#hero2.hero2.hero2--committee {
  background-image: url("/__l5e/assets-v1/9eda3ca3-32e9-4b3d-aa79-a1fbd8c4821d/pensa-2027-inner-banner.jpeg") !important;
  background-position: center !important;
}
#hero2.hero2::after {
  content: "";
  position: absolute;
  inset: 18px;
  z-index: -1;
  border: 1px solid rgba(255,253,248,.32);
  background: none;
}
.hero2-content {
  display: inline-block;
  max-width: min(100%, 760px);
  padding: 14px 22px 16px;
  text-align: left;
  background: rgba(6,31,80,.88);
  border-left: 4px solid var(--pensa-gold);
  backdrop-filter: blur(7px);
}
.hero2-content::before, .hero2-content::after { display: none; }
.hero2-content h1, #hero2 h1 { color: var(--paper) !important; font-size: clamp(1.7rem, 3vw, 2.8rem) !important; max-width: 22ch; margin: 0; line-height: 1.08; text-align: left; text-shadow: 0 2px 14px rgba(0,0,0,.3); }

/* editorial bands and Sri Lankan imagery */
.ed-ayubowan { background: var(--paper) !important; }
.ayu-grid { position: relative; }
.ayu-grid::after { content: ""; position: absolute; width: 90px; height: 90px; right: -18px; bottom: -24px; border: 1px solid var(--pensa-gold); transform: rotate(45deg); opacity: .36; }
.ayu-si { color: var(--pensa-teal); }
.ayu-en::after { height: 3px; background: var(--pensa-gold); }
.ed-frame { border: 1px solid var(--line-2); background: var(--paper-3); box-shadow: 14px 14px 0 color-mix(in oklab, var(--pensa-gold) 13%, transparent); }
.ed-photo { filter: saturate(.88) contrast(1.02); }
.ed-frame:hover .ed-photo { filter: saturate(1.07) contrast(1.02); }
.ed-bandsec { padding-block: clamp(28px, 4vw, 48px); background: var(--paper) !important; }
.ed-band .ed-frame { aspect-ratio: 24/8; box-shadow: none; border: 0; }
.ed-band .ed-photo { filter: saturate(.85) contrast(1.05); }
.ed-band { position: relative; }
.ed-band::after { content: ""; position: absolute; inset: 14px; border: 1px solid rgba(255,253,248,.62); pointer-events: none; }
.ed-gallery { gap: clamp(12px, 2vw, 22px); }
.ed-gallery figure:nth-child(even) { margin-top: 36px; }
.ed-gallery .ed-frame { box-shadow: 8px 8px 0 color-mix(in oklab, var(--pensa-ruby) 11%, transparent); }
.ed-gallery .cap { color: var(--pensa-ruby); font-weight: 700; }

/* scientific lists, dates, leadership */
.ed-topic { padding: 26px 16px 26px 0; }
.ed-topic .n { color: var(--pensa-ruby); font-weight: 800; }
.ed-topic:hover h3 { color: var(--pensa-green); }
.ed-dates { border-top-color: var(--pensa-gold); }
.ed-date .d { color: var(--pensa-ruby) !important; }
.ed-msgs { border-top: 3px solid var(--pensa-gold); }
.ed-msg { background: var(--paper-2); }
.ed-msg:nth-child(2) { background: color-mix(in oklab, var(--paper-3) 68%, var(--paper)); }
.ed-msg blockquote { color: var(--ink); font-size: 1.16rem; line-height: 1.58; }
.ed-signoff { border-left: 3px solid var(--pensa-gold); padding-left: 18px; color: var(--pensa-ruby); }
.ed-portrait .ed-frame--square { border: 4px solid var(--paper); outline: 2px solid var(--pensa-gold); box-shadow: 12px 14px 0 color-mix(in oklab, var(--pensa-ruby) 13%, transparent); }

/* venue, FAQ, cards and forms */
.dark-background, .about.dark-background, section.dark-background, .program-at-glance.dark-background { background: var(--paper) !important; color: var(--ink) !important; }
.card-welcome-message { border: 0 !important; border-top: 4px solid var(--pensa-gold) !important; box-shadow: 0 24px 70px -52px rgba(23,58,49,.55) !important; }
.card-welcome-message img { border-radius: 0 !important; min-height: 300px; object-fit: cover; }
.btn-view-maps { display: inline-flex; padding: 11px 20px; background: var(--pensa-ruby); color: var(--paper) !important; font-weight: 700; }
#faq .col-lg-8 { max-width: 920px; }
#faq h2.mb-3 { margin-top: 3rem !important; color: var(--pensa-ruby) !important; font-size: 1.1rem !important; text-transform: uppercase; }
.accordion-item { background: transparent !important; border-top-color: var(--line-2) !important; }
.accordion-button { font-size: 1.08rem !important; padding: 22px 8px !important; }
.accordion-button:not(.collapsed) { color: var(--pensa-ruby) !important; }
.accordion-button:focus { box-shadow: none !important; }
.form-control:focus, .form-select:focus { border-color: var(--pensa-green) !important; box-shadow: 0 0 0 3px color-mix(in oklab, var(--pensa-green) 14%, transparent) !important; }
.tba-form { max-width: 620px; padding-top: 8px; }
.tba-form input { background: var(--paper-2); border-color: var(--line-2); border-radius: 0; }
.tba-form input:focus { border-color: var(--pensa-green); }
.tba-form button { background: var(--pensa-ruby); border-color: var(--pensa-ruby); border-radius: 0; }
.tba-form button:hover:not(:disabled) { background: var(--pensa-green); border-color: var(--pensa-green); color: var(--paper); }
.tba-success { color: var(--pensa-green); }
.tba-error { color: var(--pensa-ruby); }
.card-organizing .card { border-top: 3px solid var(--pensa-gold) !important; }
.img-organizing { filter: saturate(.8) contrast(1); }
.card-organizing .card:hover .img-organizing { filter: saturate(1.05) contrast(1); }

/* buttons and calls to action */
.ed-btn, a.ed-btn, .btn-primary, a.btn-primary { background: var(--pensa-ruby) !important; border-color: var(--pensa-ruby) !important; border-radius: 0 !important; }
.ed-btn:hover, .btn-primary:hover { background: var(--pensa-green) !important; border-color: var(--pensa-green) !important; }
.ed-btn.is-ghost { color: var(--pensa-green) !important; border-color: var(--pensa-green) !important; }
.ed-link { color: var(--pensa-ruby); border-color: color-mix(in oklab, var(--pensa-ruby) 35%, transparent); }
.ed-link:hover { color: var(--pensa-green); border-bottom-color: var(--pensa-green); }
.ed-cta { padding: clamp(46px, 7vw, 78px); background: var(--pensa-green); color: var(--paper); position: relative; }
.ed-cta::before, .ed-cta::after { content: ""; position: absolute; inset: 12px; border: 1px solid rgba(255,253,248,.25); pointer-events: none; }
.ed-cta::after { inset: 20px; border-color: rgba(227,165,26,.38); }
.ed-cta .ed-eyebrow, .ed-cta h2, .ed-cta p { color: var(--paper); position: relative; z-index: 1; }
.ed-cta h2 em { color: #f0c65d; }
.ed-cta .ed-link { color: var(--paper); border-color: rgba(255,253,248,.5); }

/* premium nutrition footer */
.footer, .footer.dark-background { background: var(--accent-deep) !important; color: var(--paper) !important; }
.pfx-footer::before {
  background-image:
    linear-gradient(135deg, transparent 0 48%, rgba(227,165,26,.045) 48% 49%, transparent 49% 100%),
    linear-gradient(45deg, transparent 0 48%, rgba(255,253,248,.03) 48% 49%, transparent 49% 100%);
  background-size: 44px 44px;
}
.pfx-mol-line { stroke: rgba(255,253,248,.2); }
.pfx-mol-nodes .pfx-gold { fill: var(--pensa-gold); }
.pfx-mol-nodes .pfx-violet { fill: #be496b; }
.pfx-footer .pfx-head { color: #f0c65d !important; }
.pfx-head::after { background: linear-gradient(90deg, rgba(227,165,26,.52), transparent); }
.pfx-links a::before { background: var(--pensa-gold); }
.pfx-contact-row { border-radius: 2px; background: rgba(255,253,248,.035); }
.pfx-contact-row:hover { border-color: rgba(227,165,26,.58); background: rgba(227,165,26,.08); }
.pfx-ico { border-radius: 50%; background: rgba(227,165,26,.12); border-color: rgba(227,165,26,.46); color: #f0c65d; }
.pfx-shimmer { background-image: linear-gradient(100deg, rgba(255,253,248,.64) 20%, #f0c65d 40%, #fff1ba 50%, #f0c65d 60%, rgba(255,253,248,.64) 80%); }

@media (max-width: 1199px) {
  .navmenu.is-open { background: rgba(6,72,62,.82); }
  .navmenu.is-open > ul { background: var(--paper) !important; border-color: var(--line-2); box-shadow: 0 24px 60px -20px rgba(23,58,49,.45); }
  .navmenu.is-open > ul, .navmenu.is-open > ul > li { animation-duration: .18s; }
}
@media (max-width: 880px) {
  .ed-hero--heritage { min-height: 820px; background-position: 62% center; }
  .ed-hero--heritage { background-image: linear-gradient(0deg, rgba(5,44,37,.96) 0%, rgba(5,44,37,.75) 68%, rgba(5,44,37,.35) 100%), url("../img/srilanka/tea-hills.jpg"); }
  .ed-hero--heritage .ed-hero-title { max-width: 12ch; }
  .ed-gallery figure:nth-child(even) { margin-top: 0; }
  .hero2-content h1, #hero2 h1 { max-width: 13ch; }
}
@media (max-width: 680px) {
  .ed-hero--heritage { min-height: 0; height: auto; padding-top: 118px; padding-bottom: 28px; }
  .ed-hero--heritage::after, #hero2.hero2::after { inset: 10px; }
  .ed-hero--heritage .ed-hero-title { font-size: 2.65rem; margin-top: 18px; }
  .ed-hero--heritage .ed-hero-stand { margin-top: 18px; font-size: 1rem; }
  .ed-hero--heritage .ed-hero-actions { margin-top: 24px; gap: 14px 18px; }
  .ed-hero--heritage .ed-meta { grid-template-columns: repeat(3,minmax(0,1fr)); margin-top: 28px; }
  .ed-hero--heritage .ed-meta > div { border-right: 1px solid rgba(255,253,248,.22); border-bottom: 0; padding: 14px 10px 0; }
  .ed-hero--heritage .ed-meta > div:last-child { border-right: 0; }
  .ed-hero--heritage .ed-meta .k { font-size: .55rem; letter-spacing: .1em; }
  .ed-hero--heritage .ed-meta .v { font-size: .82rem; line-height: 1.25; }
  #hero2.hero2, .hero2.section {
    min-height: 360px;
    padding: 112px 0 28px !important;
    background-position: 42% center !important;
  }
  .hero2-content { max-width: calc(100vw - 44px); padding: 11px 15px 13px; }
  .hero2-content h1, #hero2 h1 { font-size: clamp(1.45rem, 7vw, 2.15rem) !important; overflow-wrap: anywhere; }
  #hero2.hero2.hero2--venue h1 { font-size: 1.42rem !important; max-width: 20ch; overflow-wrap: normal; }
  .ed-cta { padding: 42px 22px; }
  .ayu-grid::after { display: none; }
  .ed-band .ed-frame { aspect-ratio: 4/3; }
  #about .container-fluid, #faq .container-fluid { padding: 28px 18px !important; }
  .card-welcome-message { padding: 20px !important; }
}

/* ============================================================
   SRI LANKAN MOTIF & PHOTOGRAPHY LAYER
   Palapetiya-inspired geometry, lotus/pearl forms, island imagery.
   ============================================================ */
.ed-section > .ed-wrap { position: relative; z-index: 1; }
.ed-section:not(.ed-bandsec)::after {
  content: "";
  position: absolute;
  width: 74px;
  height: 74px;
  right: max(16px, calc((100vw - var(--maxw)) / 2 - 90px));
  top: 46px;
  opacity: .2;
  pointer-events: none;
  background:
    conic-gradient(from 45deg at 50% 16%, transparent 0 12.5%, var(--pensa-gold) 12.5% 16%, transparent 16% 100%),
    conic-gradient(from 135deg at 84% 50%, transparent 0 12.5%, var(--pensa-ruby) 12.5% 16%, transparent 16% 100%),
    conic-gradient(from 225deg at 50% 84%, transparent 0 12.5%, var(--pensa-gold) 12.5% 16%, transparent 16% 100%),
    conic-gradient(from 315deg at 16% 50%, transparent 0 12.5%, var(--pensa-green) 12.5% 16%, transparent 16% 100%);
  transform: rotate(45deg);
}
.ed-section:nth-of-type(even)::after { left: max(16px, calc((100vw - var(--maxw)) / 2 - 90px)); right: auto; transform: rotate(22.5deg); }

/* handloom-like ceremonial edge; intentionally quiet at reading distance */
.ed-bandsec::before,
.ed-discover::before,
#faq::before {
  width: 100%;
  height: 8px;
  top: 0;
  opacity: .7;
  background:
    linear-gradient(135deg, var(--pensa-ruby) 25%, transparent 25%) 0 0 / 16px 8px,
    linear-gradient(225deg, var(--pensa-gold) 25%, transparent 25%) 0 0 / 16px 8px,
    var(--pensa-green);
}

/* framed destination image for every announcement page */
.tba-statement { grid-template-columns: minmax(240px, .82fr) minmax(0, 1.18fr); align-items: center; }
.tba-visual { margin: 0; position: relative; }
.tba-visual .ed-frame { aspect-ratio: 4 / 5; box-shadow: 14px 14px 0 color-mix(in oklab, var(--pensa-gold) 18%, transparent); }
.tba-visual .ed-photo { object-position: center; }
.tba-visual::before {
  content: "";
  position: absolute;
  inset: -14px auto auto -14px;
  width: 68px;
  height: 68px;
  border-top: 2px solid var(--pensa-ruby);
  border-left: 2px solid var(--pensa-ruby);
  z-index: 2;
  pointer-events: none;
}
.tba-visual figcaption {
  margin-top: 14px;
  color: var(--pensa-ruby);
  font: 700 .66rem/1.4 var(--sans);
  letter-spacing: .14em;
  text-transform: uppercase;
}

/* pearl constellation on the footer; nutrition molecules meet island craft */
.pfx-footer::after {
  content: "";
  position: absolute;
  width: 220px;
  height: 220px;
  right: -48px;
  top: 70px;
  border-radius: 50%;
  border: 1px solid rgba(227,165,26,.18);
  box-shadow:
    -34px 28px 0 -32px rgba(255,253,248,.64),
    -72px 70px 0 -68px rgba(227,165,26,.75),
    -116px 22px 0 -112px rgba(255,253,248,.5),
    -145px 92px 0 -141px rgba(227,165,26,.55);
  pointer-events: none;
}

/* image captions feel like curated cultural annotations */
.ed-figcap, .tba-visual figcaption { border-left: 2px solid var(--pensa-gold); padding-left: 10px; }
.ed-gallery figure { position: relative; }
.ed-gallery figure::after {
  content: "";
  position: absolute;
  top: 10px;
  right: 10px;
  width: 20px;
  height: 20px;
  border: 1px solid rgba(255,253,248,.82);
  transform: rotate(45deg);
  pointer-events: none;
}

@media (max-width: 880px) {
  .tba-statement { grid-template-columns: 1fr; }
  .tba-visual { max-width: 420px; }
  .tba-visual .ed-frame { aspect-ratio: 16 / 10; }
  .ed-section:not(.ed-bandsec)::after { width: 52px; height: 52px; top: 24px; right: -22px; }
  .ed-section:nth-of-type(even)::after { left: -22px; }
}
@media (max-width: 680px) {
  .tba-visual { margin-bottom: 10px; }
  .tba-visual::before { inset: -8px auto auto -8px; width: 42px; height: 42px; }
  .pfx-footer::after { opacity: .55; }
}

/* Header wordmark: keep on one line, never shrink */
.px-logo-text { flex: 0 0 auto; }
.px-logo-text b { white-space: nowrap !important; }
.px-logo-text small { white-space: nowrap !important; }
@media (max-width: 1199px) { .px-logo-text small { display: none; } }

/* Ayubowan flyer */
.ayu-flyer{margin:0 auto;max-width:1100px}
.ayu-flyer img{display:block;width:100%;height:auto;border-radius:18px;box-shadow:0 24px 60px -28px rgba(6,72,62,.35),0 0 0 1px rgba(227,165,26,.25)}

/* Organizing committee — leadership grid */
.oc-people { list-style: none; margin: 0; padding: 0; display: grid; gap: 22px;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); }
.oc-person { text-align: center; }
.oc-person h3 { font-size: 1.02rem; margin: 14px 0 4px; line-height: 1.35; }
.oc-person p { margin: 0; font-size: .82rem; letter-spacing: .09em; text-transform: uppercase;
  color: color-mix(in oklab, var(--pensa-emerald, #0b6655) 85%, black); }
.oc-avatar { width: 150px; height: 150px; margin: 0 auto; border-radius: 50%; overflow: hidden;
  display: grid; place-items: center; background: var(--paper-3);
  border: 4px solid var(--paper); outline: 2px solid var(--pensa-gold);
  box-shadow: 10px 12px 0 color-mix(in oklab, var(--pensa-ruby, #6b1534) 12%, transparent); }
.oc-avatar img { width: 100%; height: 100%; object-fit: cover; display: block; }
.oc-avatar span { font-size: 2rem; font-weight: 600; letter-spacing: .04em;
  color: color-mix(in oklab, var(--pensa-emerald, #0b6655) 70%, white); }
