/* ==========================================================================
   PRAI 2026 — Premium Typography & Component Polish
   Loaded LAST in <head> so it overrides page-level <style> blocks and inline styles.
   Refines fonts, colors, spacing, tables, buttons, cards, nav, footer.
   Does NOT alter macro layout (rows, columns, grid, widths).
   Brand: navy #1B3767 | cyan #00ACC8 | body #444 | footer #002E6D
   ========================================================================== */

:root {
    --prai-navy: #1B3767;
    --prai-navy-deep: #16305a;
    --prai-cyan: #00ACC8;
    --prai-body: #444444;
    --prai-muted: #6b7280;
    --prai-bg-soft: #f7f9fc;
    --prai-border: #e3e8ef;
    --prai-row-hover: #eef3fb;
}

html { scroll-behavior: smooth; }

/* ---------- Base body ---------- */
body {
    color: var(--prai-body);
    font-family: "Roboto", "Helvetica Neue", Arial, "Microsoft YaHei", "PingFang SC", sans-serif;
    font-size: 15px;
    line-height: 1.75;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

/* ---------- Headings ---------- */
.dynamik-page-builder .site-inner h1,
.dynamik-page-builder .site-inner h2,
.dynamik-page-builder .site-inner h3,
.dynamik-page-builder .site-inner h4,
.dynamik-page-builder .site-inner h5,
.dynamik-page-builder .site-inner h6,
.content .entry-content h1,
.content .entry-content h2,
.content .entry-content h3,
.content .entry-content h4,
.content .entry-content h5,
.content .entry-content h6 {
    font-weight: 500;
    line-height: 1.4;
    margin: 0 0 12px;
}
.dynamik-page-builder .site-inner h1, .content .entry-content h1 { color: var(--prai-navy); font-size: 32px; font-weight: 600; letter-spacing: .3px; }
.dynamik-page-builder .site-inner h2, .content .entry-content h2 { color: var(--prai-navy); font-size: 24px; }
.dynamik-page-builder .site-inner h3, .content .entry-content h3 { color: var(--prai-navy); font-size: 20px; }
.dynamik-page-builder .site-inner h4, .content .entry-content h4 { color: var(--prai-cyan); font-size: 17px; }
.dynamik-page-builder .site-inner h5, .content .entry-content h5 { color: var(--prai-cyan); font-size: 15px; letter-spacing: .3px; }
.dynamik-page-builder .site-inner h6, .content .entry-content h6 { color: var(--prai-navy); font-size: 14px; font-weight: 500; }

/* Page-title h1 with centered cyan accent underline */
.dynamik-page-builder .site-inner h1 {
    position: relative;
    text-align: center;
    padding-bottom: 16px;
    margin: 14px 0 30px;
}
.dynamik-page-builder .site-inner h1::after {
    content: "";
    position: absolute;
    left: 50%;
    bottom: 0;
    transform: translateX(-50%);
    width: 72px;
    height: 3px;
    background: var(--prai-cyan);
    border-radius: 2px;
}

/* Home hero "Welcome to join PRAI 2026 !" */
.fl-module-rich-text .fl-rich-text > h2 {
    text-align: center;
    color: var(--prai-navy);
    font-size: 20px;
    font-weight: 500;
    line-height: 1.55;
    margin: 12px 0 26px;
}
.fl-module-rich-text .fl-rich-text > h2 strong span {
    display: block;
    font-size: 34px !important;
    font-weight: 700;
    letter-spacing: 1px;
    color: var(--prai-navy) !important;
    margin-bottom: 12px;
}
.fl-module-rich-text .fl-rich-text > h2 strong span::after {
    content: "";
    display: block;
    width: 64px;
    height: 3px;
    background: var(--prai-cyan);
    border-radius: 2px;
    margin: 14px auto 0;
}

/* ---------- Body paragraphs: normalize 12px / #666 inline ---------- */
.fl-rich-text p,
.entry-content p,
.dynamik-page-builder .site-inner p {
    color: var(--prai-body);
    font-size: 15px;
    line-height: 1.8;
    margin: 0 0 14px;
    text-align: justify;
}
.fl-rich-text p span[style*="font-size: 12px"],
.entry-content p span[style*="font-size: 12px"] { font-size: 15px !important; color: var(--prai-body) !important; }
.fl-rich-text p span[style*="rgb(102, 102, 102)"],
.entry-content p span[style*="rgb(102, 102, 102)"] { color: var(--prai-body) !important; }
.fl-rich-text p span[style*="color: rgb(102, 102, 102)"],
.entry-content p span[style*="color: rgb(102, 102, 102)"] { color: var(--prai-body) !important; }

/* ---------- Links ---------- */
.dynamik-page-builder .site-inner a,
.dynamik-page-builder .site-inner a:visited,
.entry-content a, .entry-content a:visited,
.fl-rich-text a, .fl-rich-text a:visited {
    color: var(--prai-navy);
    text-decoration: none;
    border-bottom: 1px solid transparent;
    -webkit-transition: color .2s, border-color .2s;
    transition: color .2s, border-color .2s;
}
.dynamik-page-builder .site-inner a:hover,
.entry-content a:hover,
.fl-rich-text a:hover {
    color: var(--prai-cyan);
    border-bottom-color: var(--prai-cyan);
    text-decoration: none;
}

/* ---------- Ad-hoc helper classes -> brand tokens ---------- */
.STYLE1  { font-size: 15px; font-weight: 600; color: var(--prai-navy); }
.STYLE2  { font-size: 15px; }
.STYLE3  { color: var(--prai-navy); }
.STYLE7  { color: var(--prai-body); font-size: 14px; line-height: 1.95; }
.STYLE8  { color: var(--prai-navy); }
.STYLE9  { color: var(--prai-navy); font-size: 15px; font-weight: 600; }
.STYLE10 { color: var(--prai-navy); }
.STYLE11 { font-size: 15px; color: var(--prai-navy); }

/* .auto-style1 is used as section header on committee/inner pages */
.auto-style1 {
    display: inline-block;
    font-size: 22px !important;
    font-weight: 600 !important;
    color: var(--prai-navy) !important;
    letter-spacing: .4px;
    padding-left: 14px;
    border-left: 4px solid var(--prai-cyan);
    margin: 10px 0 8px;
    line-height: 1.3;
}
.auto-style3 { font-size: 14px; }
.auto-style5 { color: var(--prai-navy); }
.auto-style6 { color: var(--prai-navy); }

/* ---------- Deprecated <font color="..."> fallbacks ---------- */
font[color="#000080"] { color: var(--prai-navy) !important; }
font[color="#0000FF"] { color: var(--prai-navy) !important; }
font[color="#FA0408"], font[color="#fa0408"] { color: #c8102e !important; }
[style*="color: #FA0408"], [style*="color:#FA0408"] { color: #c8102e !important; }

/* ============================================================
   PREMIUM DATA TABLES  (table.table on home + table[border="1"])
   Card with navy header, cyan accent, zebra rows, hover.
   ============================================================ */
.fl-rich-text table.table,
.fl-rich-text table[border="1"] {
    border-collapse: collapse;
    border: 1px solid var(--prai-border);
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 2px 12px rgba(27, 55, 103, 0.06);
    font-size: 14px;
    margin: 14px 0 24px;
    background: #fff;
    width: 100%;
}
.fl-rich-text table.table td,
.fl-rich-text table[border="1"] td {
    padding: 12px 16px;
    border-bottom: 1px solid #ececec;
    vertical-align: middle;
    color: var(--prai-body);
}
.fl-rich-text table.table tr:first-child td,
.fl-rich-text table[border="1"] tbody tr:first-child td {
    background: var(--prai-navy);
    color: #fff !important;
    font-weight: 600;
    letter-spacing: .4px;
    border-bottom: 2px solid var(--prai-cyan);
}
/* Header-cell nested headings stay light on navy */
.fl-rich-text table.table tr:first-child td h3,
.fl-rich-text table.table tr:first-child td h4,
.fl-rich-text table.table tr:first-child td h5,
.fl-rich-text table[border="1"] tbody tr:first-child td h3,
.fl-rich-text table[border="1"] tbody tr:first-child td h4,
.fl-rich-text table[border="1"] tbody tr:first-child td h5 {
    color: #fff !important;
    margin: 0;
    font-size: 16px;
    font-weight: 600;
}
.fl-rich-text table.table tr:first-child td u,
.fl-rich-text table[border="1"] tbody tr:first-child td u { text-decoration: none; }

/* Zebra striping (skip first/header row) */
.fl-rich-text table.table tbody tr:nth-child(even) td,
.fl-rich-text table.table tr:nth-child(even) td:first-child ~ td,
.fl-rich-text table[border="1"] tbody tr:nth-child(even) td { background: var(--prai-bg-soft); }

/* Row hover */
.fl-rich-text table.table tbody tr:hover td,
.fl-rich-text table[border="1"] tbody tr:hover td { background: var(--prai-row-hover); }

/* Important Dates: emphasize the deadline row red call */
.fl-rich-text table.table td strong[style*="color: #FA0408"],
.fl-rich-text table.table td strong[style*="color:#FA0408"] { color: #c8102e !important; }

/* ============================================================
   LAYOUT TABLES (border="0") — speaker grids, photo+bio rows.
   Clean padding only, no borders, no navy header.
   ============================================================ */
.fl-rich-text table[border="0"] {
    border: none;
    border-collapse: collapse;
    font-size: 14px;
}
.fl-rich-text table[border="0"] td {
    padding: 10px 12px;
    vertical-align: top;
    border: none;
}
.fl-rich-text table[border="0"] img { vertical-align: middle; }

/* Generic table fallback (no class, no border attr) */
.fl-rich-text table:not(.table):not([border="1"]):not([border="0"]) {
    border-collapse: collapse;
    font-size: 14px;
    margin: 10px 0 18px;
}
.fl-rich-text table:not(.table):not([border="1"]):not([border="0"]) td {
    padding: 8px 12px;
    border-bottom: 1px solid #ececec;
}

/* ---------- Special sessions list (home right column) ---------- */
.fl-rich-text h6 { font-size: 14px; line-height: 2.0; color: var(--prai-body); font-weight: 400; }
.fl-rich-text h6 img { vertical-align: middle; margin-right: 6px; }
.fl-rich-text h6 a { font-size: 14px; color: var(--prai-navy); font-weight: 500; }
.fl-rich-text h6 a:hover { color: var(--prai-cyan); }
.fl-rich-text h6 strong a { color: var(--prai-navy); font-size: 15px; font-weight: 600; }

/* ---------- Lists inside rich text ---------- */
.fl-rich-text ul, .fl-rich-text ol { margin: 6px 0 14px; padding: 0 0 6px 22px; }
.fl-rich-text ul li { list-style: square; margin: 4px 0; line-height: 1.8; }

/* ============================================================
   BUTTONS — pill, shadow, hover lift + color shift
   ============================================================ */
.fl-button {
    background: var(--prai-navy) !important;
    color: #ffffff !important;
    padding: 12px 30px !important;
    border-radius: 26px !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    letter-spacing: 1px !important;
    text-transform: uppercase !important;
    border: none !important;
    box-shadow: 0 4px 14px rgba(27, 55, 103, 0.22) !important;
    -webkit-transition: background .25s, box-shadow .25s, transform .25s !important;
    transition: background .25s, box-shadow .25s, transform .25s !important;
    display: inline-block;
}
.fl-button:hover {
    background: var(--prai-cyan) !important;
    color: #fff !important;
    box-shadow: 0 8px 20px rgba(0, 172, 200, 0.35) !important;
    -webkit-transform: translateY(-2px) !important;
    transform: translateY(-2px) !important;
    text-decoration: none !important;
}
.fl-button-text { color: #fff; }

/* ============================================================
   FEATURE CARDS — Call for Papers / 3-Day Programme / Keynote
   ============================================================ */
.pp-heading-content {
    background: #fff;
    border: 1px solid var(--prai-border);
    border-radius: 10px;
    padding: 30px 26px !important;
    box-shadow: 0 2px 12px rgba(27, 55, 103, 0.05);
    -webkit-transition: box-shadow .3s, transform .3s, border-color .3s;
    transition: box-shadow .3s, transform .3s, border-color .3s;
    height: 100%;
}
.pp-heading-content:hover {
    box-shadow: 0 14px 32px rgba(27, 55, 103, 0.12);
    -webkit-transform: translateY(-4px);
    transform: translateY(-4px);
    border-color: #d6e0ef;
}
.pp-heading-content .heading-title .title-text {
    color: var(--prai-navy) !important;
    font-size: 20px !important;
    font-weight: 600 !important;
    letter-spacing: .3px;
}
.pp-heading-content .pp-sub-heading p {
    color: var(--prai-muted);
    font-size: 14px;
    line-height: 1.7;
}
.pp-heading-content .pp-separator-line { background: var(--prai-cyan) !important; }
.pp-heading-content .pp-separator-line .pp-separator-line { background: var(--prai-cyan); }

/* ---------- Section breathing room (padding only, no layout shift) ---------- */
.fl-row-content-wrap { padding-top: 30px; padding-bottom: 30px; }
.fl-rich-text { padding: 4px 2px; }

/* ---------- Homepage sponsor/logo row ---------- */
.fl-rich-text table table td { padding: 10px 12px; vertical-align: middle; }
.fl-rich-text table table img { vertical-align: middle; }

/* ---------- Navy-bg Conference Secretary section ---------- */
.fl-row-bg-color .fl-rich-text h2 {
    color: #fff;
    font-size: 24px;
    font-weight: 500;
    letter-spacing: .4px;
    margin-bottom: 14px;
}
.fl-row-bg-color .fl-rich-text p {
    color: rgba(255, 255, 255, 0.92);
    font-size: 14px;
    line-height: 1.9;
    text-align: left;
}
.fl-row-bg-color .fl-rich-text a,
.fl-row-bg-color .fl-rich-text a:visited { color: var(--prai-cyan); }
.fl-row-bg-color .fl-rich-text a:hover { color: #fff; }

/* ---------- Footer ---------- */
.site-footer { padding: 18px 0; }
.site-footer p { color: rgba(255, 255, 255, 0.85); font-size: 13px; letter-spacing: .2px; line-height: 1.6; }
.site-footer a, .site-footer a:visited { color: #c8d4e8; }
.site-footer a:hover { color: var(--prai-cyan); }

/* ---------- Nav refinement ---------- */
.nav-primary { letter-spacing: .6px; }
.menu-primary > li > a {
    padding: 22px 20px !important;
    font-size: 13px !important;
    font-weight: 500 !important;
    letter-spacing: .8px;
    -webkit-transition: background .2s;
    transition: background .2s;
}
.menu-primary li li a,
.menu-primary li li a:link,
.menu-primary li li a:visited {
    font-size: 13px !important;
    letter-spacing: 0;
    padding: 14px 18px !important;
}

/* ---------- Selection + focus ---------- */
::selection { background: var(--prai-navy); color: #fff; }
::-moz-selection { background: var(--prai-navy); color: #fff; }
a:focus, .fl-button:focus { outline: 2px solid var(--prai-cyan); outline-offset: 2px; }

/* ---------- Responsive type ---------- */
@media only screen and (max-width: 839px) {
    body { font-size: 14px; }
    .dynamik-page-builder .site-inner h1, .content .entry-content h1 { font-size: 26px; }
    .dynamik-page-builder .site-inner h2, .content .entry-content h2 { font-size: 21px; }
    .dynamik-page-builder .site-inner h3, .content .entry-content h3 { font-size: 18px; }
    .fl-module-rich-text .fl-rich-text > h2 strong span { font-size: 26px !important; }
    .fl-rich-text p, .entry-content p { font-size: 14px; line-height: 1.7; }
    .pp-heading-content { padding: 22px 18px !important; }
}
