/*
Theme Name: IBA Portal
Theme URI: https://biogas-india.com/
Author: Indian Biogas Association
Description: Production-ready WordPress theme built for the IBA Membership plugin, member portal, LMS, checkout, directory and course pages.
Version: 1.1.1
Requires at least: 6.7
Requires PHP: 7.4
Text Domain: iba-portal
License: GPL-2.0-or-later
*/

:root{
  --iba-orange:#ed8223;
  --iba-orange-dark:#d96f13;
  --iba-green:#1d8a44;
  --iba-blue:#1d5c9b;
  --iba-blue-dark:#143f6e;
  --iba-navy:#10263e;
  --iba-ink:#172033;
  --iba-muted:#667085;
  --iba-line:#e5e9ef;
  --iba-soft:#f6f8fb;
  --iba-white:#ffffff;
  --iba-shadow:0 18px 50px rgba(23,32,51,.09);
  --iba-shadow-header:0 12px 34px rgba(16,38,62,.08);
  --iba-content:1380px;
  --iba-radius:18px;
}

html{scroll-behavior:smooth}
*,*::before,*::after{box-sizing:border-box}
body{margin:0;background:var(--iba-white);color:var(--iba-ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:16px;line-height:1.65;-webkit-font-smoothing:antialiased}
a{color:var(--iba-blue);text-decoration-thickness:1px;text-underline-offset:3px}
a:hover{color:var(--iba-orange)}
img{max-width:100%;height:auto}
button,input,select,textarea{font:inherit}

.screen-reader-text{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.screen-reader-text:focus{clip:auto!important;width:auto;height:auto;top:12px;left:12px;padding:10px 14px;background:#fff;color:var(--iba-blue);z-index:100000;border-radius:8px;box-shadow:var(--iba-shadow)}

.iba-site-wrap{min-height:100vh;display:flex;flex-direction:column}
.iba-site-main{flex:1;min-width:0}
.iba-container{width:min(var(--iba-content),calc(100% - 56px));margin-inline:auto}

/* --------------------------------------------------------------------------
   Header — shared foundation
   -------------------------------------------------------------------------- */
.iba-site-header{z-index:999;background:#fff;border-bottom:1px solid var(--iba-line)}
.iba-site-header.is-sticky{position:sticky;top:0}
.admin-bar .iba-site-header.is-sticky{top:32px}
.iba-header-main{background:rgba(255,255,255,.98);backdrop-filter:blur(16px)}
.iba-header-inner{min-height:84px;display:flex;align-items:center;gap:34px}
.iba-site-brand{display:flex;align-items:center;gap:13px;text-decoration:none;min-width:max-content;flex:0 0 auto}
.iba-site-brand img,.iba-site-logo{display:block;max-height:54px;max-width:280px;width:auto;object-fit:contain}
.iba-brand-mark{width:44px;height:44px;border-radius:13px;background:linear-gradient(145deg,var(--iba-blue),#236db4);display:grid;place-items:center;color:#fff;font-weight:900;letter-spacing:-.03em;box-shadow:0 8px 20px rgba(29,92,155,.2)}
.iba-brand-copy{display:flex;flex-direction:column;line-height:1.05}
.iba-brand-copy strong{color:var(--iba-ink);font-size:17px;font-weight:850;letter-spacing:-.015em}
.iba-brand-copy span{color:var(--iba-blue);font-size:10px;font-weight:900;letter-spacing:.11em;text-transform:uppercase;margin-top:5px}

.iba-primary-nav{margin-left:auto;min-width:0}
.iba-primary-nav ul{list-style:none;margin:0;padding:0;display:flex;align-items:center;gap:6px}
.iba-primary-nav li{margin:0;position:relative}
.iba-primary-nav a{display:flex;align-items:center;text-decoration:none;color:var(--iba-ink);font-size:14px;font-weight:750;line-height:1.2;padding:11px 12px;border-radius:10px;white-space:nowrap;transition:background .2s ease,color .2s ease}
.iba-primary-nav a:hover,.iba-primary-nav .current-menu-item>a,.iba-primary-nav .current_page_item>a{background:rgba(29,92,155,.07);color:var(--iba-blue)}
.iba-primary-nav ul ul{display:none;position:absolute;left:0;top:calc(100% + 8px);min-width:230px;padding:8px;background:#fff;border:1px solid var(--iba-line);border-radius:13px;box-shadow:var(--iba-shadow);z-index:20}
.iba-primary-nav li:hover>ul,.iba-primary-nav li:focus-within>ul{display:block}
.iba-primary-nav ul ul a{white-space:normal;padding:11px 12px}

.iba-header-actions{display:flex;align-items:center;gap:10px;flex:0 0 auto}
.iba-header-secondary{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 14px;color:var(--iba-blue)!important;text-decoration:none;font-weight:800;border-radius:10px;white-space:nowrap;border:1px solid rgba(29,92,155,.18);background:#fff;transition:.2s ease}
.iba-header-secondary:hover{background:rgba(29,92,155,.06);border-color:rgba(29,92,155,.3);transform:translateY(-1px)}
.iba-header-cta{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:0 19px;background:var(--iba-orange);color:#fff!important;text-decoration:none;border-radius:11px;font-weight:850;white-space:nowrap;box-shadow:0 9px 22px rgba(237,130,35,.23);transition:.2s ease}
.iba-header-cta:hover{background:var(--iba-orange-dark);color:#fff!important;transform:translateY(-1px);box-shadow:0 12px 25px rgba(237,130,35,.28)}

.iba-menu-toggle{display:none;width:46px;height:46px;border:1px solid var(--iba-line);background:#fff;border-radius:11px;color:var(--iba-blue);align-items:center;justify-content:center;cursor:pointer;padding:0}
.iba-menu-toggle-lines{width:20px;display:grid;gap:4px}
.iba-menu-toggle-lines i{display:block;height:2px;border-radius:999px;background:currentColor}

/* Professional header */
.iba-site-header--professional{box-shadow:var(--iba-shadow-header)}
.iba-site-header--professional .iba-header-inner{min-height:86px}

/* Compact header */
.iba-site-header--compact{box-shadow:0 7px 22px rgba(16,38,62,.06)}
.iba-site-header--compact .iba-header-inner{min-height:68px;gap:24px}
.iba-site-header--compact .iba-site-brand img,.iba-site-header--compact .iba-site-logo{max-height:43px}
.iba-site-header--compact .iba-brand-mark{width:39px;height:39px;border-radius:10px}
.iba-site-header--compact .iba-brand-copy strong{font-size:15px}
.iba-site-header--compact .iba-primary-nav a{padding:9px 10px;font-size:13px}
.iba-site-header--compact .iba-header-secondary,.iba-site-header--compact .iba-header-cta{min-height:40px}

/* Split/two-row header */
.iba-site-header--split{box-shadow:var(--iba-shadow-header);border-bottom:0}
.iba-header-top{background:var(--iba-navy);color:#dbe6f1;font-size:12px;font-weight:650;letter-spacing:.015em}
.iba-header-top-inner{min-height:34px;display:flex;align-items:center;justify-content:space-between;gap:20px}
.iba-header-top-actions{display:flex;align-items:center;gap:18px}
.iba-header-top-actions a{color:#fff;text-decoration:none;font-weight:800}
.iba-header-top-actions a:hover{color:#ffd7b4}
.iba-site-header--split .iba-header-inner{min-height:72px}
.iba-site-header--split .iba-header-inner>.iba-primary-nav{display:none}
.iba-header-nav-row{background:var(--iba-blue);border-top:1px solid rgba(255,255,255,.08)}
.iba-primary-nav--split{margin-left:0}
.iba-primary-nav--split ul{justify-content:center;gap:2px}
.iba-primary-nav--split a{color:#fff;padding:13px 16px;border-radius:0;font-size:13px}
.iba-primary-nav--split a:hover,.iba-primary-nav--split .current-menu-item>a,.iba-primary-nav--split .current_page_item>a{background:rgba(255,255,255,.12);color:#fff}
.iba-primary-nav--split ul ul{background:#fff}
.iba-primary-nav--split ul ul a{color:var(--iba-ink);border-radius:9px}
.iba-primary-nav--split ul ul a:hover{color:var(--iba-blue);background:rgba(29,92,155,.07)}

/* Standard pages */
.iba-page-shell{width:min(1180px,calc(100% - 48px));margin:48px auto 70px}
.iba-page-shell.is-wide{width:min(var(--iba-content),calc(100% - 48px))}
.iba-entry-header{margin-bottom:28px}
.iba-entry-title{font-size:clamp(32px,4vw,52px);line-height:1.08;letter-spacing:-.035em;margin:0;color:var(--iba-ink)}
.iba-entry-content{min-width:0}
.iba-entry-content>:first-child{margin-top:0}
.iba-entry-content h1,.iba-entry-content h2,.iba-entry-content h3{line-height:1.2;color:var(--iba-ink)}
.iba-entry-content table{width:100%;border-collapse:collapse}
.iba-entry-content th,.iba-entry-content td{padding:12px;border-bottom:1px solid var(--iba-line);text-align:left}
.iba-entry-content input:not([type=checkbox]):not([type=radio]),.iba-entry-content select,.iba-entry-content textarea{max-width:100%}

/* IBA Membership plugin pages */
body.iba-portal-page .iba-page-shell{width:100%;max-width:none;margin:0;padding:0}
body.iba-portal-page .iba-entry-content{width:100%;max-width:none;margin:0;padding:0}
body.iba-portal-page .iba-entry-header{display:none}
body.iba-portal-page .entry-header,body.iba-portal-page .page-header,body.iba-portal-page .wp-block-post-title{display:none!important}
body.iba-portal-page .site-main,body.iba-portal-page main{max-width:none}

/* Full-width course hero */
body.iba-course-page .iba-course-banner-hero{
  width:100vw!important;
  max-width:100vw!important;
  margin-left:calc(50% - 50vw)!important;
  margin-right:calc(50% - 50vw)!important;
  border-radius:0!important;
  height:clamp(390px,42vw,590px)!important;
  box-shadow:none!important;
}
body.iba-course-page .iba-course-banner-hero>img{width:100%!important;height:100%!important;object-fit:cover!important;object-position:center!important}
body.iba-course-page .iba-course-banner-hero:after{background:linear-gradient(90deg,rgba(29,92,155,.94) 0%,rgba(29,92,155,.65) 45%,rgba(29,92,155,.14) 100%)!important}
body.iba-course-page .iba-course-banner-overlay{left:max(24px,calc((100vw - var(--iba-content))/2 + 24px))!important;bottom:0!important;padding:clamp(34px,5vw,68px) 0!important;width:min(790px,calc(100vw - 48px));max-width:none!important}
body.iba-course-page .iba-course-banner-overlay h1{font-size:clamp(36px,5vw,60px)!important;line-height:1.04!important;letter-spacing:-.035em!important}
body.iba-course-page .iba-course-banner-overlay p{font-size:clamp(15px,1.5vw,18px)!important;max-width:680px}
body.iba-course-page .iba-course-layout{margin-top:30px}
body.iba-course-page .iba-course-sidebar{border-top:5px solid var(--iba-orange)!important}

/* Strict IBA visual system on plugin components */
body.iba-portal-page .iba-btn-primary{background:var(--iba-orange)!important;color:#fff!important}
body.iba-portal-page .iba-status-success,body.iba-portal-page .iba-status-box-free{color:var(--iba-green)!important}
body.iba-portal-page .iba-back,body.iba-portal-page .iba-btn-outline{color:var(--iba-blue)!important}
body.iba-portal-page .iba-panel,body.iba-portal-page .iba-form,body.iba-portal-page .iba-course-sidebar,body.iba-portal-page .iba-member-card{border-color:var(--iba-line)!important}
body.iba-portal-page .iba-shell{padding-left:clamp(18px,3vw,42px)!important;padding-right:clamp(18px,3vw,42px)!important}

/* Posts/search */
.iba-loop{display:grid;gap:22px}
.iba-loop-card{border:1px solid var(--iba-line);border-radius:16px;padding:24px;background:#fff;box-shadow:0 7px 26px rgba(23,32,51,.04)}
.iba-loop-card h2{margin:0 0 8px;font-size:27px}
.iba-loop-card h2 a{text-decoration:none;color:var(--iba-ink)}
.iba-loop-card h2 a:hover{color:var(--iba-blue)}
.iba-meta{color:var(--iba-muted);font-size:13px}

/* --------------------------------------------------------------------------
   Footer — shared foundation
   -------------------------------------------------------------------------- */
.iba-site-footer{margin-top:auto}
.iba-site-footer ul{list-style:none;margin:0;padding:0}
.iba-site-footer a{text-decoration:none}
.iba-footer-bottom-wrap{border-top:1px solid rgba(255,255,255,.1)}
.iba-footer-bottom{min-height:56px;color:#9fb1c4;font-size:13px;display:flex;align-items:center;justify-content:space-between;gap:20px}

/* Corporate footer */
.iba-site-footer--corporate{background:var(--iba-navy);color:#d8e3ef;border-top:5px solid var(--iba-orange)}
.iba-footer-main{padding:58px 0 42px;display:grid;grid-template-columns:minmax(280px,1.45fr) .8fr .8fr 1fr;gap:48px}
.iba-footer-logo{display:inline-flex;align-items:center;gap:11px;color:#fff!important;text-decoration:none;margin-bottom:18px}
.iba-footer-logo img{max-height:52px;max-width:250px;width:auto;filter:brightness(0) invert(1)}
.iba-footer-brand-mark{width:42px;height:42px;border-radius:11px;background:var(--iba-blue);display:grid;place-items:center;color:#fff;font-weight:900}
.iba-footer-logo strong{font-size:21px}
.iba-footer-brand p{max-width:520px;color:#b9c8d8;margin:0;line-height:1.75}
.iba-site-footer--corporate h3{color:#fff;font-size:13px;text-transform:uppercase;letter-spacing:.1em;margin:0 0 17px}
.iba-site-footer--corporate ul{display:grid;gap:9px}
.iba-site-footer--corporate a{color:#d8e3ef}
.iba-site-footer--corporate a:hover{color:#fff}
.iba-footer-cta-column p{color:#b9c8d8;margin:0 0 17px;line-height:1.65}
.iba-footer-cta{display:inline-flex!important;min-height:43px;align-items:center;justify-content:center;padding:0 16px;background:var(--iba-orange);color:#fff!important;border-radius:9px;font-weight:850;box-shadow:0 8px 20px rgba(237,130,35,.2)}

/* Compact footer */
.iba-site-footer--compact{background:var(--iba-navy);color:#d8e3ef;border-top:4px solid var(--iba-orange)}
.iba-footer-compact-row{min-height:96px;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:36px}
.iba-footer-compact-brand{color:#fff!important;font-size:19px;font-weight:850;white-space:nowrap}
.iba-footer-compact-nav ul{display:flex;justify-content:center;align-items:center;gap:25px}
.iba-footer-compact-nav a{color:#d8e3ef;font-size:14px}
.iba-footer-compact-nav a:hover{color:#fff}
.iba-footer-compact-cta{color:#fff!important;background:var(--iba-orange);border-radius:9px;padding:9px 15px;font-weight:850;white-space:nowrap}

/* Minimal footer */
.iba-site-footer--minimal{background:#fff;color:var(--iba-muted);border-top:1px solid var(--iba-line)}
.iba-site-footer--minimal .iba-footer-bottom-wrap{border-color:var(--iba-line)}
.iba-site-footer--minimal .iba-footer-bottom{color:var(--iba-muted)}
.iba-footer-minimal-row{min-height:90px;display:flex;align-items:center;justify-content:space-between;gap:28px}
.iba-footer-minimal-brand{font-weight:850;color:var(--iba-ink)}
.iba-footer-minimal-nav ul{display:flex;align-items:center;gap:24px}
.iba-footer-minimal-nav a{color:var(--iba-muted);font-size:14px}
.iba-footer-minimal-nav a:hover{color:var(--iba-blue)}

/* WordPress alignment helpers */
.alignwide{width:min(var(--iba-content),calc(100vw - 48px));max-width:none;margin-left:50%;transform:translateX(-50%)}
.alignfull{width:100vw;max-width:none;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw)}

/* Accessibility */
:focus-visible{outline:3px solid rgba(29,92,155,.32);outline-offset:3px}

@media(max-width:1180px){
  .iba-header-inner{gap:18px}
  .iba-primary-nav a{padding:10px 8px;font-size:13px}
  .iba-header-secondary{display:none}
  .iba-footer-main{grid-template-columns:1.25fr 1fr 1fr}
  .iba-footer-cta-column{grid-column:2/4}
}

@media(max-width:900px){
  .admin-bar .iba-site-header.is-sticky{top:46px}
  .iba-container,.iba-page-shell,.iba-page-shell.is-wide{width:calc(100% - 32px)}
  .iba-header-inner,.iba-site-header--compact .iba-header-inner,.iba-site-header--split .iba-header-inner{min-height:72px}
  .iba-menu-toggle{display:inline-flex;margin-left:auto}
  .iba-header-actions{display:none}
  .iba-site-header--split .iba-header-top{display:none}
  .iba-site-header--split .iba-header-inner>.iba-primary-nav{display:none}
  .iba-header-nav-row{background:transparent;border:0;height:0;position:relative}
  .iba-primary-nav,.iba-primary-nav--split{display:none;position:absolute;top:calc(100% + 1px);left:16px;right:16px;margin:0;background:#fff;border:1px solid var(--iba-line);box-shadow:var(--iba-shadow);border-radius:15px;padding:10px;z-index:9999;max-height:calc(100vh - 110px);overflow:auto}
  .iba-header-main .iba-primary-nav{top:72px}
  .iba-primary-nav.is-open{display:block}
  .iba-primary-nav ul,.iba-primary-nav--split ul{display:block}
  .iba-primary-nav a,.iba-primary-nav--split a{padding:12px;color:var(--iba-ink);border-radius:9px;font-size:14px}
  .iba-primary-nav a:hover,.iba-primary-nav--split a:hover{background:rgba(29,92,155,.07);color:var(--iba-blue)}
  .iba-primary-nav ul ul,.iba-primary-nav--split ul ul{position:static;display:block;box-shadow:none;border:0;padding:0 0 0 14px;min-width:0;background:transparent}
  body.iba-course-page .iba-course-banner-overlay{left:24px!important;width:calc(100vw - 48px)}
  body.iba-course-page .iba-course-banner-hero{height:430px!important}
  .iba-footer-main{grid-template-columns:1fr 1fr;gap:34px}
  .iba-footer-brand{grid-column:1/-1}
  .iba-footer-cta-column{grid-column:auto}
  .iba-footer-compact-row{grid-template-columns:1fr auto;gap:22px;padding-top:24px;padding-bottom:24px}
  .iba-footer-compact-nav{grid-column:1/-1;grid-row:2}
  .iba-footer-compact-nav ul{justify-content:flex-start;flex-wrap:wrap}
}

@media(max-width:600px){
  .iba-container,.iba-page-shell,.iba-page-shell.is-wide{width:calc(100% - 24px)}
  .iba-site-brand img,.iba-site-logo{max-height:42px;max-width:205px}
  .iba-brand-copy span{display:none}
  .iba-brand-copy strong{font-size:15px}
  .iba-brand-mark{width:40px;height:40px;border-radius:11px}
  .iba-primary-nav,.iba-primary-nav--split{left:12px;right:12px}
  body.iba-portal-page .iba-shell{padding-left:14px!important;padding-right:14px!important}
  body.iba-course-page .iba-course-banner-hero{height:390px!important}
  body.iba-course-page .iba-course-banner-overlay{left:20px!important;width:calc(100vw - 40px);padding:30px 0!important}
  .iba-footer-main{grid-template-columns:1fr;gap:30px;padding:44px 0 34px}
  .iba-footer-brand{grid-column:auto}
  .iba-footer-cta-column{grid-column:auto}
  .iba-footer-bottom{align-items:flex-start;flex-direction:column;justify-content:center;padding:14px 0;gap:4px}
  .iba-footer-compact-row{grid-template-columns:1fr;align-items:flex-start}
  .iba-footer-compact-cta{justify-self:start}
  .iba-footer-compact-nav{grid-column:auto;grid-row:auto}
  .iba-footer-compact-nav ul{display:grid;gap:8px}
  .iba-footer-minimal-row{align-items:flex-start;flex-direction:column;padding:28px 0;gap:16px}
  .iba-footer-minimal-nav ul{flex-wrap:wrap;gap:10px 18px}
}


/* Comments and paginated post content */
.iba-page-links{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:28px 0}.iba-page-links .post-page-numbers{display:inline-flex;align-items:center;justify-content:center;min-width:38px;height:38px;padding:0 10px;border:1px solid var(--iba-line);border-radius:9px;text-decoration:none}.iba-page-links .post-page-numbers.current{background:var(--iba-blue);border-color:var(--iba-blue);color:#fff}.iba-comments{max-width:900px;margin:40px auto;padding:0 28px}.iba-comments-list{list-style:none;margin:0;padding:0}.iba-comments-list .comment{padding:18px 0;border-bottom:1px solid var(--iba-line)}.iba-comments .comment-meta{font-size:14px;color:var(--iba-muted)}.iba-comments .comment-content{margin-top:8px}.iba-comments .comment-respond{margin-top:28px}.iba-comments input:not([type=submit]),.iba-comments textarea{width:100%;border:1px solid var(--iba-line);border-radius:10px;padding:10px 12px}.iba-comments input[type=submit]{background:var(--iba-orange);color:#fff;border:0;border-radius:10px;padding:11px 17px;font-weight:700;cursor:pointer}
