/* LSPerk Place - styled to match the SharePoint site (LSPBenefitResourcesHub) */
:root{
  --navy:#000E42;      /* SharePoint header / theme primary */
  --gold:#EFA22C;      /* LSP logo accent */
  --ink:#323130;       /* SharePoint neutralPrimary */
  --ink2:#605E5C;      /* neutralSecondary */
  --line:#C8C6C4;      /* neutralTertiaryAlt */
  --side:#F6F5F8;      /* right-column section background */
  --hover:#F3F2F1;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:#fff;color:var(--ink);font-family:"Segoe UI","Segoe UI Web (West European)",-apple-system,BlinkMacSystemFont,Roboto,"Helvetica Neue",Arial,sans-serif;font-size:18px;line-height:1.3;-webkit-font-smoothing:antialiased}
a{color:var(--navy)}
.skip{position:absolute;left:-999px;top:0;background:#fff;color:var(--navy);padding:8px 12px;z-index:10}
.skip:focus{left:8px;top:8px}

/* ---------- Header (SharePoint hub-style, navy) ---------- */
header.top{background:var(--navy);color:#fff}
header .bar{display:flex;align-items:center;gap:28px;padding:22px 32px 18px}
header .logo{flex:none;display:block;line-height:0}
header .logo img{width:60px;height:auto}
header .hdr{min-width:0}
header .title{display:inline-block;color:#fff;text-decoration:none;font-size:24px;font-weight:600;line-height:1.2;margin:0 0 8px}
nav ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:0 4px}
nav a{display:block;position:relative;color:#fff;text-decoration:none;font-size:14px;line-height:20px;padding:4px 10px 8px;border-radius:2px}
nav li:first-child a{padding-left:2px}
nav a:hover{background:rgba(255,255,255,.12)}
nav a[aria-current=page]{font-weight:600}
nav a[aria-current=page]::after{content:"";position:absolute;left:10px;right:10px;bottom:0;height:2px;background:#fff}
nav li:first-child a[aria-current=page]::after{left:2px}

/* ---------- SharePoint page banner (title area) ---------- */
.spbanner{position:relative;height:280px;overflow:hidden;background:#123764}
.spbanner>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.spbanner::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.35),rgba(0,0,0,0) 65%)}
.spbanner.darktext::after{display:none}
.spbanner .inner{position:absolute;left:0;right:0;bottom:33px;z-index:1;max-width:1236px;margin:0 auto}
.spbanner .topic{display:inline-block;background:#000E44;color:#fff;font-size:12px;font-weight:600;line-height:16px;letter-spacing:1px;text-transform:uppercase;padding:4px 12px;margin-bottom:6px}
.spbanner h1{margin:0;color:#fff;font-size:42px;font-weight:600;line-height:1.4}
.spbanner.darktext h1{color:#201F1E}

/* ---------- Canvas + SharePoint flexible section (70-column grid) ---------- */
main{padding:0 0 40px}
.canvas{max-width:1236px;margin:0 auto;padding:16px 0}
.flexwrap{container-type:inline-size;width:100%}
.flexgrid{--u:calc(100cqw / 70);display:grid;grid-template-columns:repeat(70,1fr);grid-auto-rows:var(--u)}
.it{min-width:0;position:relative;z-index:1}
.it.bg{z-index:0}
.bg-navy{background:#123764}
.bg-gray{background:#F5F5F7}
.it.img{margin:0;display:flex;align-items:flex-start;justify-content:center}
.it.img img{max-width:100%;max-height:100%;object-fit:contain;display:block}
.it.vid video{width:100%;height:100%;background:#000;display:block;object-fit:contain}
hr.it.div{border:0;border-top:1px solid #605E5C;margin:0;height:0;align-self:start}

/* ---------- SharePoint text web part ---------- */
.txt,.flowtxt{font-size:18px;line-height:1.3;color:#323130}
.txt p,.flowtxt p{margin:0 0 12px}
.txt h1,.txt h2,.txt h3,.txt h4,.flowtxt h2,.flowtxt h3,.flowtxt h4{margin:14px 0 10px;font-weight:600;color:#323130}
.txt>:first-child,.flowtxt>:first-child{margin-top:0}
.txt h1{font-size:32px;line-height:1.3}.txt h2,.flowtxt h2{font-size:28px;line-height:1.3}
.txt h3,.flowtxt h3{font-size:24px;line-height:1.3}.txt h4,.flowtxt h4{font-size:20px;line-height:1}
.noSpacingAbove{margin-top:0!important}.noSpacingBelow{margin-bottom:0!important}
.spacingBelow{margin-bottom:12px!important}
.headingNoSpacingAbove{margin-top:0!important}.headingNoSpacingBelow{margin-bottom:0!important}
.headingSpacingAbove{margin-top:14px!important}.headingSpacingBelow{margin-bottom:10px!important}
.fontSizeSuper{font-size:42px;line-height:1.4}.fontSizeXxxLarge{font-size:36px;line-height:1.3}
.fontSizeXxLarge{font-size:28px;line-height:1.3}.fontSizeXLargePlus{font-size:24px;line-height:1.3}
.fontSizeXLarge{font-size:20px;line-height:1}.fontSizeLarge{font-size:18px;line-height:1.3}
.lh1{line-height:1!important}.fs18{font-size:18px}.c-white{color:#fff}
.txt ul,.flowtxt ul{margin:6px 0 12px;padding-left:40px}
.txt li,.flowtxt li{margin:0}
.txt li p,.flowtxt li p{margin:0}
.ck-list-marker-bold::marker{font-weight:700}
.txt a,.flowtxt a{color:#000E44;text-decoration:underline}
.ondark,.ondark a{color:#fff}
.ilink.pending{color:inherit;pointer-events:none}
figure.table{margin:8px 0 14px;overflow-x:auto}
.txt table{border-collapse:collapse;width:100%;font-size:16px}
.txt th,.txt td,.flowtxt th,.flowtxt td{border:1px solid #C8C6C4;padding:6px 10px;text-align:left;vertical-align:top}
.txt thead th,.txt tr:first-child th{background:#F3F2F1;font-weight:600}
.txt td p,.txt th p{margin:0}

/* ---------- Home: events + quick links ---------- */
.news h2,.qlinks-wp h2{font-size:28px;font-weight:600;margin:0 0 18px;color:#323130}
.event{display:flex;gap:24px;align-items:flex-start;text-decoration:none;color:#323130;padding:0 0 18px;border-bottom:1px solid #EDEBE9}
.event:hover strong{text-decoration:underline}
.thumb{flex:none;width:120px;height:92px;background:var(--navy);display:flex;align-items:center;justify-content:center;overflow:hidden}
.thumb img{width:100%;height:100%;object-fit:cover}
.ttxt{color:#fff;font-size:11px;font-weight:700;letter-spacing:.06em;background:rgba(0,0,0,.35);padding:3px 6px}
.etext{font-size:14px;color:#605E5C;line-height:1.45}
.etext strong{display:block;color:#323130;font-size:16px;font-weight:600;margin:6px 0}
.qlinks{list-style:none;padding:0;margin:0}
.qlinks li{margin:0 0 14px}
.qlinks a{display:flex;align-items:center;gap:12px;color:#323130;text-decoration:none;font-size:14px}
.qlinks a:hover{text-decoration:underline}
.tile{flex:none;width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:#fff;border:1px solid #EDEBE9;color:var(--navy);font-weight:700;font-size:13px;overflow:hidden}
.tile img{max-width:100%;max-height:100%}
.qlinks a.pending{pointer-events:none;opacity:.6}
.pg-index .news,.pg-index .qlinks-wp{padding:0 16px}

/* ---------- Contacts: People web part ---------- */
.flowtxt{padding:0 0 16px}
.people h2{font-size:24px;font-weight:600;margin:10px 0 16px}
.pgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:20px 28px}
.person{display:flex;gap:14px;align-items:center}
.avatar{flex:none;width:56px;height:56px;border-radius:50%;background:var(--navy);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:18px}
.pname{display:flex;flex-direction:column;font-size:14px;color:#605E5C;overflow-wrap:anywhere}
.pname strong{color:#323130;font-size:16px;font-weight:600}

/* ---------- Pages without a SharePoint layout (open-enrollment) ---------- */
.wrap{max-width:1236px;margin:0 auto;padding:0 32px}
.ptitle{font-size:42px;font-weight:600;line-height:1.2;margin:24px 0 18px;color:#323130}
.psub{font-size:20px;font-weight:600;margin:-8px 0 20px}
.panel{margin:0 0 26px}
.panel h2{font-size:24px;font-weight:600;margin:0 0 12px}
.cols{display:grid;gap:40px;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));margin-bottom:26px}
.cols>.panel{margin-bottom:0}
.cols2x2{grid-template-columns:1fr 1fr}
.btns{display:flex;flex-wrap:wrap;gap:10px;margin:12px 0}
.btn{display:inline-block;background:var(--navy);color:#fff;text-decoration:none;font-size:14px;font-weight:600;line-height:20px;padding:6px 20px;border-radius:2px}
.btn.pending{background:#C8C6C4;color:#605E5C;pointer-events:none}
.notice{background:#F5F5F7;border-left:4px solid var(--gold);padding:14px 18px;margin:0 0 26px;font-size:16px}
ul.plain{padding-left:34px}

footer{border-top:1px solid #EDEBE9;padding:18px 0;color:#605E5C;font-size:13px}
footer a{color:var(--navy)}
[hidden]{display:none!important}
:focus-visible{outline:2px solid var(--gold);outline-offset:2px}

/* ---------- Below 1280px: stack in reading order, like SharePoint on small screens ---------- */
@media (max-width:1279px){
  .canvas{padding:16px 32px}
  .spbanner .inner{padding:0 32px}
  .flexgrid{display:flex;flex-direction:column;gap:16px}
  .it.bg{display:none}
  .it.ondark{background:#123764;padding:20px}
  .it.img img{max-height:none;width:auto;max-width:min(100%,560px)}
  .it.vid{aspect-ratio:16/9}
  hr.it.div{width:100%}
  .pg-index .news,.pg-index .qlinks-wp{padding:20px;background:#F5F5F7}
}
@media (max-width:640px){
  .canvas{padding:12px 16px}
  .spbanner{height:170px}
  .spbanner .inner{padding:0 16px;bottom:18px}
  .spbanner h1{font-size:26px;line-height:1.25}
  .txt,.flowtxt{font-size:16px}
  .fontSizeSuper{font-size:30px}.fontSizeXxLarge,.txt h2{font-size:24px}
  .txt ul,.flowtxt ul{padding-left:26px}
  .wrap{padding:0 16px}
  .cols2x2{grid-template-columns:1fr}
  .txt table{font-size:14px}
}
@media print{nav,.skip{display:none}header.top{background:#fff;color:#000}header .title{color:#000}}
/* ---------- Header on phones: one-line, swipeable menu ---------- */
@media (max-width:640px){
  header .bar{gap:14px;padding:14px 16px 10px;align-items:flex-start}
  header .logo img{width:44px}
  header .title{font-size:20px;margin-bottom:6px}
  nav ul{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;margin-right:-16px}
  nav ul::-webkit-scrollbar{display:none}
  nav a{white-space:nowrap;padding:4px 8px 8px}
  .ondark p:empty{display:none}
}
footer .wrap{max-width:1236px;margin:0 auto;padding:0 32px}
@media (max-width:640px){footer .wrap{padding:0 16px}}
