:root{
  --navy:#0B2545;
  --navy-dark:#071A33;
  --orange:#C1440E;
  --orange-light:#E0631F;
  --steel:#5A6572;
  --grey-line:#DDE1E5;
  --grey-text:#4A4F55;
  --bg-alt:#F3F4F6;
  --font-head: 'Oswald', 'Arial Narrow', Impact, sans-serif;
  --font: Arial, Helvetica, "Segoe UI", sans-serif;
}
*{box-sizing:border-box; margin:0; padding:0;}
body{background:#fff; color:#1E2226; font-family:var(--font); line-height:1.6; font-size:15px;}
a{color:inherit; text-decoration:none;}
img{max-width:100%; display:block; width:100%; height:100%; object-fit:cover;}

/* header */
header{background:#fff; border-bottom:3px solid var(--navy); position:sticky; top:0; z-index:200; box-shadow:0 2px 10px rgba(7,26,51,.06);}
.nav-wrap{max-width:100%; margin:0; display:flex; justify-content:space-between; align-items:center; padding:16px 40px;}
.brand{display:flex; align-items:center; gap:12px;}
.brand-mark{height:46px; width:auto; display:block; object-fit:contain;}
.brand-text .name{font-family:var(--font-head); font-size:19px; font-weight:700; text-transform:uppercase; letter-spacing:.01em; color:var(--navy); line-height:1.15;}
.brand-text .name-short{display:none;}
.brand-text .sub{font-size:11px; letter-spacing:.08em; color:var(--steel); margin-top:3px; font-weight:bold;}
nav ul{display:flex; gap:26px; list-style:none; font-family:var(--font-head); font-size:13.5px; font-weight:600; letter-spacing:.03em; text-transform:uppercase; color:var(--navy);}
nav ul a:hover, nav ul a.active{color:var(--orange);}

/* header nav dropdowns */
nav ul li{position:relative; display:flex; align-items:center;}
.caret-btn{background:none; border:none; cursor:pointer; padding:6px 4px; margin-left:2px; display:inline-flex; align-items:center;}
.caret-btn::before{content:''; display:block; width:0; height:0; border-left:4px solid transparent; border-right:4px solid transparent; border-top:5px solid var(--navy); transition:transform .15s ease;}
.has-sub:hover .caret-btn::before, .has-sub.sub-open .caret-btn::before{transform:rotate(180deg);}
.sub-nav{list-style:none; position:absolute; top:100%; left:0; margin-top:14px; background:#fff; min-width:210px; border:1px solid var(--grey-line); border-top:3px solid var(--orange); border-radius:4px; box-shadow:0 12px 28px rgba(7,26,51,.14); padding:8px 0; opacity:0; visibility:hidden; transform:translateY(6px); transition:opacity .15s ease, transform .15s ease, visibility .15s ease; z-index:250;}
.has-sub:hover .sub-nav{opacity:1; visibility:visible; transform:translateY(0);}
.sub-nav li{display:block;}
.sub-nav li a{display:block; padding:10px 18px; font-size:12.5px; font-weight:600; text-transform:none; letter-spacing:normal; color:var(--grey-text); white-space:nowrap;}
.sub-nav li a:hover{background:var(--bg-alt); color:var(--navy);}
.btn{display:inline-block; padding:12px 24px; font-family:var(--font-head); font-size:13px; font-weight:600; letter-spacing:.04em; text-transform:uppercase; border:2px solid transparent; cursor:pointer;}
.btn-solid{background:var(--orange); color:#fff;}
.btn-outline{border:2px solid var(--navy); color:var(--navy);}

/* page header banner (for interior pages) */
.page-banner{position:relative; min-height:230px; display:flex; align-items:center; color:#fff; background:var(--navy);}
.page-banner .overlay{position:absolute; inset:0; background:linear-gradient(100deg, rgba(7,26,51,.60) 0%, rgba(7,26,51,.25) 60%);}
.page-banner .bg{position:absolute; inset:0; z-index:-1;}
.page-banner-inner{position:relative; max-width:1200px; margin:0 auto; padding:0 24px; width:100%;}
.page-banner .crumb{font-family:var(--font-head); font-size:11.5px; letter-spacing:.1em; text-transform:uppercase; color:#B9C4D1; margin-bottom:10px;}
.page-banner h1{font-family:var(--font-head); font-size:38px; text-transform:uppercase; font-weight:700;}
.page-banner::after{content:''; position:absolute; left:0; bottom:0; width:100%; height:5px; background:var(--orange);}

/* hero (home) */
.hero{position:relative; min-height:480px; display:flex; align-items:center; color:#fff; background:var(--navy); overflow:hidden;}
.hero .overlay{position:absolute; inset:0; background:linear-gradient(100deg, rgba(7,26,51,.55) 0%, rgba(7,26,51,.15) 65%); z-index:1; pointer-events:none;}
.hero-slides{position:absolute; inset:0; z-index:0;}
.hero-slide{position:absolute; inset:0; background-size:cover; background-position:center; opacity:0; transition:opacity 1.2s ease;}
.hero-slide.is-active{opacity:1;}
.hero-dots{position:absolute; right:28px; bottom:24px; z-index:3; display:flex; gap:8px;}
.hero-dot{width:9px; height:9px; border-radius:50%; border:1.5px solid rgba(255,255,255,.7); background:transparent; padding:0; cursor:pointer; transition:.2s;}
.hero-dot.is-active{background:var(--orange-light); border-color:var(--orange-light);}
.hero .bg{position:absolute; inset:0; z-index:-1;}
.hero::after{content:''; position:absolute; left:0; bottom:0; width:100%; height:6px; background:var(--orange); z-index:2;}
.hero-inner{position:relative; z-index:2; max-width:1200px; margin:0 auto; padding:70px 24px; width:100%;}
.hero-tag{display:inline-block; background:var(--orange); color:#fff; font-family:var(--font-head); font-size:11.5px; font-weight:600; letter-spacing:.1em; text-transform:uppercase; padding:6px 14px; margin-bottom:22px;}
.hero h1{font-family:var(--font-head); font-size:52px; font-weight:700; text-transform:uppercase; line-height:1.08; margin-bottom:20px; max-width:680px;}
.hero p{font-size:16.5px; color:#D3DBE5; max-width:520px; margin-bottom:30px;}
.hero-ctas .btn{margin-right:14px;}
.hero-ctas .btn-outline{border-color:#fff; color:#fff; background:rgba(7,26,51,.35); backdrop-filter:blur(2px); text-shadow:0 1px 2px rgba(0,0,0,.4);}
.hero-ctas .btn-solid{box-shadow:0 2px 10px rgba(0,0,0,.25);}
.hero-tag{box-shadow:0 2px 10px rgba(0,0,0,.2);}
.hero h1{text-shadow:0 2px 8px rgba(0,0,0,.35);}
.hero p{text-shadow:0 1px 4px rgba(0,0,0,.3);}
.photo-credit{position:relative; text-align:right; font-size:11px; color:#B9C4D1; font-style:italic; padding:8px 24px 0; max-width:1200px; margin:0 auto;}

/* stats */
.stats-bar{background:var(--navy-dark); border-top:1px solid #142A46;}
.stats-wrap{max-width:1200px; margin:0 auto; display:grid; grid-template-columns:repeat(4,1fr); text-align:center;}
.stats-wrap div{padding:28px 10px; border-right:1px solid #142A46; color:#fff;}
.stats-wrap div:last-child{border-right:none;}
.stats-wrap .num{font-family:var(--font-head); font-size:30px; font-weight:700; color:var(--orange-light);}
.stats-wrap .lbl{font-size:11.5px; color:#9FAEBE; margin-top:5px; letter-spacing:.04em; text-transform:uppercase;}

section{padding:70px 24px;}
.inner{max-width:1200px; margin:0 auto;}
.head-row{display:flex; justify-content:space-between; align-items:baseline; border-bottom:3px solid var(--navy); padding-bottom:14px; margin-bottom:38px;}
.head-row h2{font-family:var(--font-head); font-size:28px; font-weight:700; text-transform:uppercase; color:var(--navy); letter-spacing:.01em;}
.head-row .more{font-family:var(--font-head); font-size:13px; font-weight:600; color:var(--orange); text-transform:uppercase; letter-spacing:.03em;}

.about-grid{display:grid; grid-template-columns:1fr 1fr; gap:50px; align-items:center;}
.about-photo{min-height:320px; position:relative; overflow:hidden;}
.about-photo .tag{position:absolute; left:0; bottom:0; background:rgba(7,26,51,.85); color:#D3DBE5; font-size:11px; padding:8px 14px; width:100%;}
.about-copy p{color:var(--grey-text); font-size:15px; margin-bottom:16px;}
.about-list{list-style:none; margin-top:18px;}
.about-list li{padding:10px 0 10px 26px; border-bottom:1px solid var(--grey-line); position:relative; font-size:14.5px; color:var(--navy); font-weight:bold;}
.about-list li::before{content:'—'; position:absolute; left:0; color:var(--orange); font-weight:700;}

.events{background:var(--bg-alt); border-top:1px solid var(--grey-line); border-bottom:1px solid var(--grey-line);}
.event-table{width:100%; border-collapse:collapse; font-size:14.5px; background:#fff;}
.event-table th{text-align:left; font-family:var(--font-head); font-size:11.5px; text-transform:uppercase; letter-spacing:.05em; color:#fff; background:var(--navy); padding:12px 16px;}
.event-table td{padding:16px; border-bottom:1px solid var(--grey-line); vertical-align:top;}
.event-table .date{font-weight:bold; color:var(--orange); white-space:nowrap; font-family:var(--font-head);}
.event-table .name{font-weight:bold; color:var(--navy); font-size:15.5px;}

.news-grid{display:grid; grid-template-columns:1.3fr .7fr; gap:36px;}
.news-main{border:1px solid var(--grey-line);}
.news-main .photo{height:220px; overflow:hidden;}
.news-main .body{padding:24px;}
.news-main .cat{font-family:var(--font-head); font-size:11px; font-weight:700; color:var(--orange); text-transform:uppercase; letter-spacing:.05em;}
.news-main h3{font-size:19px; margin:10px 0 8px; color:var(--navy); font-weight:bold;}
.news-main p{font-size:14px; color:var(--grey-text);}
.news-item{padding:14px 0; border-bottom:1px solid var(--grey-line);}
.news-item .cat{font-family:var(--font-head); font-size:10.5px; font-weight:700; color:var(--orange); text-transform:uppercase;}
.news-item h4{font-size:14.5px; margin-top:6px; color:var(--navy); font-weight:bold;}

.cta{background:var(--navy); color:#fff; text-align:center; position:relative;}
.cta::before{content:''; position:absolute; top:0; left:0; width:100%; height:5px; background:var(--orange);}
.cta h2{font-family:var(--font-head); font-size:30px; text-transform:uppercase; margin-bottom:14px;}
.cta p{font-size:15px; color:#C7D0DA; max-width:540px; margin:0 auto 26px;}

/* membership tiers */
.tiers{display:grid; grid-template-columns:repeat(3,3fr); gap:40px;}
.tiers-4col{display:grid; grid-template-columns:repeat(4,1fr); gap:26px;}
.tier{border:1px solid var(--grey-line); display:flex; flex-direction:column;}
.tier-head{background:var(--navy); color:#fff; padding: 24px; text-align:center;}
.tier-head.featured{background:var(--orange);}
.tier-head .name{font-family:var(--font-head); font-size:18px; text-transform:uppercase; letter-spacing:.03em;}
.tier-head .price{font-family:var(--font-head); font-size:28px; margin-top:8px;}
.tier-head .price span{font-size:12px; font-family:var(--font);}
.tier-body{padding:30px; flex:1; display:flex; flex-direction:column;}
.tier-body ul{list-style:none; margin-bottom:22px; flex:1;}
.tier-body li{padding:9px 0 9px 22px; border-bottom:1px solid var(--grey-line); font-size:13.5px; color:var(--grey-text); position:relative;}
.tier-body li::before{content:'✓'; position:absolute; left:0; color:var(--orange); font-weight:bold;}

/* membership tiers — redesigned icon-card layout (IMBF) */
.imbf-tiers{display:grid; grid-template-columns:repeat(3,1fr); gap:28px; margin-top:10px;}
.imbf-tier-card{background:#fff; border:1px solid var(--grey-line); border-top:4px solid var(--navy); border-radius:6px; padding:30px 26px; text-align:center; display:flex; flex-direction:column;}
.imbf-tier-card.featured{border-top-color:var(--orange); box-shadow:0 8px 24px rgba(11,37,69,.12);}
.imbf-tier-icon{width:58px; height:58px; border-radius:50%; background:var(--bg-alt); display:flex; align-items:center; justify-content:center; margin:0 auto 16px;}
.imbf-tier-card.featured .imbf-tier-icon{background:#FDEDE4;}
.imbf-tier-icon svg{width:26px; height:26px; stroke:var(--navy);}
.imbf-tier-card.featured .imbf-tier-icon svg{stroke:var(--orange);}
.imbf-tier-name{font-family:var(--font-head); font-size:19px; font-weight:700; color:var(--navy); text-transform:uppercase; letter-spacing:.02em;}
.imbf-tier-underline{width:34px; height:3px; background:var(--orange); margin:8px auto 14px; border-radius:2px;}
.imbf-tier-desc{font-size:13.5px; color:var(--grey-text); margin-bottom:16px; min-height:52px;}
.imbf-tier-facts{text-align:left; font-size:12.5px; color:var(--steel); margin-bottom:20px; flex:1;}
.imbf-tier-facts div{padding:5px 0; border-bottom:1px dashed var(--grey-line);}
.imbf-tier-facts b{color:var(--navy);}
.imbf-tier-card .btn{margin-top:auto;}
.imbf-tier-card:hover{box-shadow:0 8px 24px rgba(11,37,69,.12); transform:translateY(-2px); transition:transform .2s ease, box-shadow .2s ease;}

/* membership category tabs */
.imbf-tabs{display:flex; flex-wrap:wrap; justify-content:center; gap:6px; border-bottom:1px solid var(--grey-line); margin:24px 0 34px; padding-bottom:0;}
.imbf-tab{background:none; border:none; cursor:pointer; font-family:var(--font-head); font-size:13.5px; font-weight:600; letter-spacing:.03em; text-transform:uppercase; color:var(--steel); padding:12px 18px; border-bottom:3px solid transparent; margin-bottom:-1px; transition:color .15s ease, border-color .15s ease;}
.imbf-tab:hover{color:var(--navy);}
.imbf-tab.active{color:var(--orange); border-bottom-color:var(--orange);}
.imbf-tab-panel{display:none;}
.imbf-tab-panel.active{display:block; animation:imbfFadeIn .25s ease;}
@keyframes imbfFadeIn{from{opacity:0; transform:translateY(6px);} to{opacity:1; transform:translateY(0);}}
.imbf-tab-single{display:flex; justify-content:center;}
.imbf-tab-single .imbf-tier-card{max-width:340px; width:100%;}
.imbf-tab-intro{max-width:760px; margin:0 auto 30px; text-align:center;}
.imbf-tab-intro h3{font-family:var(--font-head); color:var(--navy); font-size:20px; margin-bottom:10px;}
.imbf-tab-intro p{font-size:14px; color:var(--grey-text); line-height:1.6;}

/* company sub-category cards (under the Companies tab) */
.imbf-company-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:24px; max-width:800px; margin:0 auto;}
.imbf-company-card{background:#fff; border:1px solid var(--grey-line); border-left:4px solid var(--navy); border-radius:6px; padding:22px 24px;}
.imbf-company-top{display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:14px; flex-wrap:wrap;}
.imbf-company-name{font-family:var(--font-head); font-size:16.5px; font-weight:700; color:var(--navy); text-transform:uppercase; letter-spacing:.01em;}
.imbf-company-badge{background:var(--bg-alt); color:var(--orange); font-size:11.5px; font-weight:bold; padding:4px 10px; border-radius:20px; white-space:nowrap;}
.imbf-company-card .imbf-tier-facts{margin-bottom:16px;}

@media(max-width:620px){
  .imbf-company-grid{grid-template-columns:1fr;}
  .imbf-tabs{gap:2px;}
  .imbf-tab{padding:10px 12px; font-size:12px;}
}

/* why choose IMBF — 6-card feature grid */
.imbf-why{display:grid; grid-template-columns:repeat(3,1fr); gap:24px; margin-top:10px;}
.imbf-why-card{border:1px solid var(--grey-line); border-radius:6px; padding:28px 24px; text-align:center;}
.imbf-why-icon{width:52px; height:52px; border-radius:50%; background:var(--bg-alt); display:flex; align-items:center; justify-content:center; margin:0 auto 16px;}
.imbf-why-icon svg{width:24px; height:24px; stroke:var(--navy);}
.imbf-why-title{font-family:var(--font-head); font-size:16px; font-weight:700; color:var(--navy); margin-bottom:8px;}
.imbf-why-desc{font-size:13px; color:var(--grey-text); line-height:1.55;}

@media(max-width:860px){
  .imbf-tiers, .imbf-why{grid-template-columns:repeat(2,1fr);}
}
@media(max-width:480px){
  .imbf-tiers, .imbf-why{grid-template-columns:1fr;}
}

/* forms */
.form-wrap{max-width:640px;}
.form-row{margin-bottom:22px;}
.form-row label{display:block; font-family:var(--font-head); font-size:12px; text-transform:uppercase; letter-spacing:.04em; color:var(--navy); margin-bottom:8px; font-weight:600;}
.form-row input, .form-row select, .form-row textarea{width:100%; padding:12px 14px; border:1px solid var(--grey-line); font-family:var(--font); font-size:14px; color:#1E2226;}
.form-row textarea{min-height:110px; resize:vertical;}
.form-cols{display:grid; grid-template-columns:1fr 1fr; gap:20px;}

/* directory */
.directory-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:22px;}
.member-card{border:1px solid var(--grey-line); padding:22px;}
.member-card .logo{width:56px; height:56px; background:var(--bg-alt); border:1px solid var(--grey-line); display:flex; align-items:center; justify-content:center; font-family:var(--font-head); color:var(--steel); font-weight:700; margin-bottom:14px;}
.member-card h4{font-family:var(--font-head); color:var(--navy); font-size:15.5px; text-transform:uppercase;}
.member-card .type{font-size:12px; color:var(--orange); font-weight:bold; margin:4px 0 10px;}
.member-card p{font-size:13px; color:var(--grey-text);}

/* standards / downloads */
.doc-list{border-top:1px solid var(--grey-line);}
.doc-row{display:flex; justify-content:space-between; align-items:center; padding:18px 0; border-bottom:1px solid var(--grey-line);}
.doc-row .name{font-weight:bold; color:var(--navy); font-size:15px;}
.doc-row .meta{font-size:12.5px; color:var(--steel); margin-top:4px;}

/* contact */
.contact-grid{display:grid; grid-template-columns:1fr 1fr; gap:50px;}
.contact-info .item{padding:16px 0; border-bottom:1px solid var(--grey-line);}
.contact-info .label{font-family:var(--font-head); font-size:11.5px; text-transform:uppercase; letter-spacing:.05em; color:var(--orange); margin-bottom:4px;}
.contact-info .value{font-size:15px; color:var(--navy); font-weight:bold;}
.map-block{min-height:220px; background:var(--bg-alt); border:1px solid var(--grey-line); display:flex; align-items:center; justify-content:center; color:var(--steel); font-size:13px; margin-top:26px;}

footer{background:var(--navy-dark); color:#9FAEBE; padding:44px 24px 22px; font-size:13px;}
.foot-wrap{max-width:1200px; margin:0 auto; display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:30px; border-bottom:1px solid #142A46; padding-bottom:30px;}
.foot-wrap h5{color:#fff; font-family:var(--font-head); font-size:13.5px; margin-bottom:12px; text-transform:uppercase; letter-spacing:.03em;}
.foot-wrap ul{list-style:none; line-height:2.1;}
.foot-bottom{max-width:1200px; margin:16px auto 0; display:flex; justify-content:space-between; font-size:11.5px;}

@media(max-width:860px){
  .hero{min-height:auto;}
  .hero-inner{padding:48px 24px;}
  .hero h1{font-size:32px;}
  .hero p{font-size:15px;}
  .about-grid,.news-grid,.contact-grid{grid-template-columns:1fr; gap:32px;}
  .stats-wrap{grid-template-columns:1fr 1fr;}
  .stats-wrap div{border-right:1px solid #142A46; border-bottom:1px solid #142A46; padding:22px 10px;}
  .stats-wrap div:nth-child(2n){border-right:none;}
  .tiers, .tiers-4col, .directory-grid{grid-template-columns:1fr; gap:20px;}
  .form-cols{grid-template-columns:1fr;}
  nav ul{display:none;}

  section.block, section{padding:48px 20px;}
  .inner{padding:0;}
  .head-row{margin-bottom:28px; flex-wrap:wrap; gap:8px;}
  .head-row h2{font-size:23px;}

  .page-banner{min-height:150px;}
  .page-banner h1{font-size:26px;}

  .hero-ctas{display:flex; flex-direction:column; gap:12px; align-items:stretch;}
  .hero-ctas .btn{margin-right:0; text-align:center;}

  .foot-wrap{grid-template-columns:1fr; gap:32px; text-align:left;}
  .foot-bottom{flex-direction:column; gap:10px; text-align:center; margin-top:20px;}

  .doc-row{flex-direction:column; align-items:flex-start; gap:12px;}
  .doc-row .btn{align-self:stretch; text-align:center;}

  /* Tables convert to stacked cards on mobile — see auto-label script in footer.php */
  table.event-table, table.data-table{border:none; width:100%;}
  table.event-table thead, table.data-table thead{display:none;}
  table.event-table tr, table.data-table tr{display:block; margin-bottom:14px; border:1px solid var(--grey-line); border-radius:4px; padding:6px 14px; background:#fff;}
  table.event-table td, table.data-table td{display:flex; justify-content:space-between; align-items:center; gap:14px; padding:11px 0; border:none; border-bottom:1px solid #EFEFEF; white-space:normal; text-align:right; font-size:14px;}
  table.event-table td:last-child, table.data-table td:last-child{border-bottom:none;}
  table.event-table td::before, table.data-table td::before{content:attr(data-label); font-family:var(--font-head); font-size:11px; font-weight:600; color:var(--navy); text-transform:uppercase; letter-spacing:.03em; text-align:left; flex-shrink:0;}
  table.event-table td:empty, table.data-table td:empty{display:none;}

  .cta h2{font-size:24px;}
  .cta p{font-size:14px;}
}

@media(max-width:480px){
  .hero h1{font-size:26px;}
  .stats-wrap{grid-template-columns:1fr 1fr;}
  .brand-text .name{font-size:15px;}
  .brand-text .sub{display:none;}
  section.block, section{padding:36px 18px;}
  .tier-head .price{font-size:24px;}
}

/* ===== Dashboard mobile (member + admin panels) ===== */
@media(max-width:860px){
  .dash-shell{flex-direction:column;}
  .dash-sidebar{width:100%; position:static; overflow-x:auto;}
  .dash-sidebar .side-head{display:none;}
  .dash-sidebar ul{display:flex; white-space:nowrap;}
  .dash-sidebar li a{padding:14px 16px; border-left:none; border-bottom:3px solid transparent; white-space:nowrap;}
  .dash-main{padding:24px 18px;}
  .card-row{grid-template-columns:1fr 1fr; gap:14px;}
  .panel{padding:20px;}
  .auth-wrap{margin:40px auto;}
  .auth-card{padding:28px 24px;}
}
@media(max-width:480px){
  .card-row{grid-template-columns:1fr;}
}

/* ===== Auth pages (member/admin login) ===== */
.auth-wrap{max-width:420px; margin:70px auto; padding:0 24px;}
.auth-card{border:1px solid var(--grey-line); padding:36px;}
.auth-card h1{font-family:var(--font-head); font-size:24px; text-transform:uppercase; color:var(--navy); margin-bottom:6px;}
.auth-card .sub{font-size:13px; color:var(--steel); margin-bottom:26px;}
.alert{padding:12px 16px; font-size:13.5px; margin-bottom:20px; border-left:4px solid var(--orange); background:var(--bg-alt); color:var(--navy);}
.alert-success{border-color:#1E7A3C;}
.auth-links{margin-top:18px; font-size:13px; text-align:center;}
.auth-links a{color:var(--orange); font-weight:bold;}

/* ===== Dashboard (member + admin shared) ===== */
.dash-shell{display:flex; min-height:calc(100vh - 90px); align-items:flex-start;}
.dash-sidebar{width:230px; background:var(--navy-dark); color:#C7D0DA; flex-shrink:0; position:sticky; top:0;}
.dash-sidebar .side-head{padding:22px 20px; font-family:var(--font-head); font-size:13px; text-transform:uppercase; color:#fff; border-bottom:1px solid #142A46;}
.dash-sidebar ul{list-style:none;}
.dash-sidebar li a{display:block; padding:14px 20px; font-size:13.5px; border-left:3px solid transparent;}
.dash-sidebar li a:hover, .dash-sidebar li a.active{background:#0F2C52; border-color:var(--orange); color:#fff;}
.dash-main{flex:1; padding:40px; background:var(--bg-alt); min-width:0;}
.dash-topbar{display:flex; justify-content:space-between; align-items:center; margin-bottom:30px; flex-wrap:wrap; gap:14px;}
.dash-topbar h1{font-family:var(--font-head); font-size:24px; color:var(--navy); text-transform:uppercase;}

.card-row{display:grid; grid-template-columns:repeat(4,1fr); gap:20px; margin-bottom:32px;}
.stat-card{background:#fff; border:1px solid var(--grey-line); padding:22px;}
.stat-card .num{font-family:var(--font-head); font-size:26px; color:var(--navy);}
.stat-card .lbl{font-size:12px; color:var(--steel); text-transform:uppercase; margin-top:6px;}

.panel{background:#fff; border:1px solid var(--grey-line); padding:26px; margin-bottom:28px;}
.panel h2{font-family:var(--font-head); font-size:17px; color:var(--navy); text-transform:uppercase; margin-bottom:18px; padding-bottom:14px; border-bottom:2px solid var(--navy);}
.panel + .panel{margin-top:0;}

table.data-table{width:100%; border-collapse:collapse; font-size:13.5px;}
table.data-table th{text-align:left; background:var(--navy); color:#fff; padding:10px 12px; font-family:var(--font-head); font-size:11px; text-transform:uppercase; letter-spacing:.04em;}
table.data-table td{padding:11px 12px; border-bottom:1px solid var(--grey-line); vertical-align:middle;}
table.data-table tr:hover td{background:#FAFAF9;}
.badge{display:inline-block; padding:3px 10px; font-size:11px; font-weight:bold; color:#fff; border-radius:2px;}
.row-actions a{font-size:12.5px; font-weight:bold; color:var(--orange); margin-right:10px;}

.btn-sm{padding:8px 14px; font-size:12px;}
.btn-danger{background:#8C1D18; color:#fff;}

/* ===================================================================
   PROFESSIONAL POLISH PASS
   Mobile nav, transitions, focus states, flash banners, micro-interactions
=================================================================== */

/* Accessibility: skip link */
.skip-link{position:absolute; left:-999px; top:0; background:var(--orange); color:#fff; padding:12px 20px; z-index:1000; font-family:var(--font-head); text-transform:uppercase; font-size:13px;}
.skip-link:focus{left:12px; top:12px;}

/* Focus states for keyboard nav */
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible{
  outline:3px solid var(--orange-light); outline-offset:2px;
}

/* Smooth interactions */
a, .btn, .tier, .member-card, .news-item, .event-table tr, .doc-row, input, select, textarea{
  transition: all .18s ease;
}
.btn{cursor:pointer;}
.btn-solid:hover{background:var(--orange-light); transform:translateY(-1px); box-shadow:0 4px 10px rgba(193,68,14,.25);}
.btn-outline:hover{background:var(--navy); color:#fff; border-color:var(--navy);}
.tier:hover{box-shadow:0 8px 24px rgba(11,37,69,.12); transform:translateY(-2px);}
.member-card:hover{box-shadow:0 6px 18px rgba(11,37,69,.10); transform:translateY(-2px);}
.event-table tr:hover td{background:#FBF9F5;}
input:focus, select:focus, textarea:focus{border-color:var(--orange); box-shadow:0 0 0 3px rgba(193,68,14,.12);}

/* Flash banners */
.flash-banner{padding:14px 24px;}
.flash-banner .inner{max-width:1200px; margin:0 auto; padding:12px 18px; font-size:14px; font-weight:bold;}
.flash-success .inner{background:#EAF6EE; color:#1E7A3C; border-left:4px solid #1E7A3C;}
.flash-error .inner{background:#FBEAEA; color:#8C1D18; border-left:4px solid #8C1D18;}

/* Footer newsletter form */
.foot-newsletter input::placeholder{color:#7E8FA3;}

/* ===== Mobile Navigation (hamburger) ===== */
.nav-toggle{display:none; flex-direction:column; justify-content:center; gap:5px; width:40px; height:40px; background:none; border:none; cursor:pointer; padding:0;}
.nav-toggle span{display:block; width:26px; height:3px; background:var(--navy); transition:.25s ease;}
.nav-toggle.open span:nth-child(1){transform:translateY(8px) rotate(45deg);}
.nav-toggle.open span:nth-child(2){opacity:0;}
.nav-toggle.open span:nth-child(3){transform:translateY(-8px) rotate(-45deg);}

.nav-cta-mobile{display:none;}
.nav-overlay{display:none;}

@media(max-width:860px){
  .nav-wrap{flex-wrap:wrap;}
  .nav-toggle{display:flex;}
  .nav-cta-desktop{display:none;}

  nav#primaryNav{
    display:block;
    position:fixed; top:0; right:-320px; width:300px; height:100vh;
    background:#fff; box-shadow:-6px 0 24px rgba(0,0,0,.15);
    padding:80px 28px 28px; z-index:200; transition:right .28s ease; overflow-y:auto;
  }
  nav#primaryNav.open{right:0;}
  nav#primaryNav ul{display:flex; flex-direction:column; gap:2px;}
  nav#primaryNav ul li a{display:block; padding:14px 4px; border-bottom:1px solid var(--grey-line); font-size:15px;}
  nav#primaryNav ul li{flex-direction:column; align-items:stretch; border-bottom:none;}
  nav#primaryNav ul li > a{border-bottom:1px solid var(--grey-line); flex:1;}
  nav#primaryNav .has-sub{display:flex; flex-wrap:wrap;}
  nav#primaryNav .caret-btn{position:absolute; right:0; top:0; padding:14px 8px;}
  nav#primaryNav .sub-nav{position:static; width:100%; opacity:1; visibility:visible; transform:none; box-shadow:none; border:none; margin:0; padding:0; max-height:0; overflow:hidden; transition:max-height .2s ease; border-radius:0;}
  nav#primaryNav .has-sub.sub-open .sub-nav{max-height:300px;}
  nav#primaryNav .sub-nav li a{padding:10px 10px 10px 20px; font-size:14px; border-bottom:1px dashed var(--grey-line); color:var(--steel);}
  .nav-cta-mobile{display:flex; flex-direction:column; gap:10px; margin-top:24px;}
  .nav-cta-mobile .btn{text-align:center;}

  .nav-overlay{display:block; position:fixed; inset:0; background:rgba(7,26,51,.5); opacity:0; pointer-events:none; transition:.25s ease; z-index:150;}
  .nav-overlay.open{opacity:1; pointer-events:auto;}
}

/* ===== 404 / simple content page ===== */
.error-page{max-width:600px; margin:100px auto; text-align:center; padding:0 24px;}
.error-page .code{font-family:var(--font-head); font-size:100px; color:var(--navy); line-height:1; opacity:.15;}
.error-page h1{font-family:var(--font-head); font-size:28px; text-transform:uppercase; color:var(--navy); margin:10px 0 14px;}
.error-page p{color:var(--grey-text); margin-bottom:26px;}

.legal-page{max-width:820px; margin:0 auto; padding:60px 24px;}
.legal-page h2{font-family:var(--font-head); font-size:20px; color:var(--navy); text-transform:uppercase; margin:32px 0 12px;}
.legal-page p, .legal-page li{color:var(--grey-text); font-size:14.5px; margin-bottom:12px; line-height:1.7;}
.legal-page .updated{font-size:12.5px; color:var(--steel); margin-bottom:30px;}

/* ===================================================================
   MOBILE TYPOGRAPHY & SPACING — round 2 fixes
   Header wrapping, minimum readable font sizes, breathing room
=================================================================== */

/* Header: prevent brand text from wrapping/cramping on mobile */
@media(max-width:520px){
  .nav-wrap{padding:12px 16px; gap:10px;}
  .brand{gap:8px;}
  .brand-mark{height:38px; width:auto;}
  .brand-text .name-full{display:none;}
  .brand-text .name-short{display:block; font-size:16px;}
}

/* Minimum readable font sizes on mobile — nothing under ~13px */
@media(max-width:860px){
  body{font-size:15.5px;}
  nav#primaryNav ul li a{font-size:16px;}
  .form-row label{font-size:12.5px;}
  .form-row input, .form-row select, .form-row textarea{font-size:16px; padding:13px 14px;}
  .stats-wrap .lbl{font-size:11.5px;}
  .stat-card .lbl{font-size:12.5px;}
  .badge{font-size:12px; padding:4px 11px;}
  .member-card p{font-size:13.5px;}
  .member-card .type{font-size:12.5px;}
  .news-item h4{font-size:15.5px;}
  .news-item .cat, .doc-row .meta{font-size:12px;}
  .doc-row .name{font-size:15.5px;}
  .contact-info .value{font-size:15.5px;}
  .about-list li{font-size:15px;}
  .pillar p, .about-col p{font-size:14.5px;}
  .legal-page p, .legal-page li{font-size:15px;}
  .foot-wrap ul, .foot-wrap p{font-size:14px;}
  .foot-bottom{font-size:12.5px;}
  .event-table td, .data-table td{font-size:14.5px;}
}

/* Extra breathing room between stacked sections on mobile */
@media(max-width:860px){
  .about-photo{margin-bottom:6px;}
  .directory-grid, .tiers, .tiers-4col{gap:22px;}
  .member-card, .tier{margin-bottom:2px;}
  .panel{margin-bottom:20px;}
  .card-row{margin-bottom:24px;}
  section.block + section.block, section + section{padding-top:44px;}
  .cta{padding:52px 20px;}
  .page-banner-inner{padding:24px 0;}
}

/* ===================================================================
   ADMIN PANEL — mobile interactivity fixes
   Bigger tap targets, touch feedback, scroll affordance
=================================================================== */
@media(max-width:860px){
  .row-actions{display:flex; flex-wrap:wrap; gap:14px; justify-content:flex-start !important;}
  .row-actions a{font-size:14px; padding:8px 4px; margin-right:0;}
  .badge{padding:5px 12px;}
  select, .form-row select{min-height:44px;}
  .btn, .btn-sm{min-height:42px; display:inline-flex; align-items:center; justify-content:center;}

  /* Fade edges on the horizontally-scrolling admin sidebar to hint it's scrollable */
  .dash-sidebar{position:relative; background:linear-gradient(90deg, var(--navy-dark) 0, var(--navy-dark) 100%);}
  .dash-sidebar::after{content:''; position:absolute; top:0; right:0; width:24px; height:100%; background:linear-gradient(90deg, transparent, rgba(7,26,51,.9)); pointer-events:none;}
}

/* Touch feedback — visible tap state on buttons/links/table rows */
.btn:active{transform:scale(0.98); opacity:.92;}
.row-actions a:active{opacity:.6;}
table.data-table tr:active, table.event-table tr:active{background:#F5F5F3;}
.dash-sidebar li a:active{background:#0F2C52;}

/* ===================================================================
   DIRECTORY MODAL — click a member card to view full details + Connect
=================================================================== */
.directory-card{cursor:pointer;}
.directory-card:hover, .directory-card:focus{box-shadow:0 8px 24px rgba(11,37,69,.14); transform:translateY(-3px); outline:none;}

.modal-overlay{position:fixed; inset:0; background:rgba(7,26,51,.6); z-index:500; display:none; align-items:center; justify-content:center; padding:20px; opacity:0; transition:opacity .2s ease;}
.modal-overlay.open{display:flex; opacity:1;}
.modal-card{background:#fff; max-width:520px; width:100%; max-height:88vh; overflow-y:auto; position:relative; border-radius:4px; padding:34px; transform:translateY(16px) scale(.98); opacity:0; transition:.22s ease;}
.modal-overlay.open .modal-card{transform:translateY(0) scale(1); opacity:1;}
.modal-close{position:absolute; top:14px; right:16px; background:none; border:none; font-size:26px; line-height:1; color:var(--steel); cursor:pointer;}
.modal-close:hover{color:var(--navy);}
.modal-logo{width:64px; height:64px; border-radius:4px; overflow:hidden; background:var(--bg-alt); display:flex; align-items:center; justify-content:center; font-family:var(--font-head); font-size:22px; color:var(--steel); font-weight:700; margin-bottom:16px;}
.modal-logo img{width:100%; height:100%; object-fit:cover;}
.modal-card h3{font-family:var(--font-head); font-size:21px; color:var(--navy); text-transform:uppercase; margin-bottom:4px;}
.modal-card .modal-tier{font-size:12.5px; color:var(--orange); font-weight:bold; margin-bottom:18px;}
.modal-field{padding:11px 0; border-bottom:1px solid var(--grey-line);}
.modal-field .label{font-family:var(--font-head); font-size:10.5px; text-transform:uppercase; letter-spacing:.04em; color:var(--steel); margin-bottom:3px;}
.modal-field .value{font-size:14.5px; color:#1E2226;}
.modal-actions{margin-top:22px; display:flex; gap:12px;}
.modal-msg{margin-top:14px; padding:10px 14px; font-size:13.5px; border-left:3px solid var(--orange); background:var(--bg-alt); display:none;}
.modal-msg.show{display:block;}

/* ===================================================================
   MICRO-ANIMATIONS — scroll reveal + subtle motion (minimal, modern)
=================================================================== */
.reveal{opacity:0; transform:translateY(18px); transition:opacity .6s ease, transform .6s ease;}
.reveal.in-view{opacity:1; transform:translateY(0);}
.tier, .member-card, .event-card, .doc-row, .news-item{transition:transform .2s ease, box-shadow .2s ease;}
.stat-card, .stats-wrap div .num{transition:transform .3s ease;}
.stats-wrap div:hover .num{transform:scale(1.06);}
a, .btn{transition:color .15s ease, background-color .15s ease, transform .15s ease, box-shadow .15s ease;}
.member-mark, .brand-mark{transition:transform .3s ease;}
.brand:hover .brand-mark{transform:rotate(-4deg);}

@media (prefers-reduced-motion: reduce){
  .reveal{opacity:1; transform:none; transition:none;}
  *{scroll-behavior:auto !important;}
}
