/* ================================================
   BIM Curriculum — Frontend Styles  v3.0.0
   ================================================ */
*,*::before,*::after{box-sizing:border-box;}

/* ── Section wrapper ── */
.bimc-section{
    position:relative;
    padding:48px 40px 64px;
    overflow:hidden;
}

/* ── Two-column grid — EQUAL HEIGHT ── */
.bimc-grid{
    display:grid;
    grid-template-columns:420px 1fr;
    gap:24px;
    align-items:stretch;  /* KEY: both columns same height */
}

/* Left column — fills grid row height */
.bimc-left{
    position:sticky;
    top:24px;
    align-self:start;      /* sticky needs align-self:start */
    height:100%;           /* inherit full row height */
}

/* ================================================
   LEFT PANEL
   ================================================ */
.bimc-week-panel{
    background:#fff;
    border-radius:16px;
    border:1px solid rgba(10,26,16,0.09);
    overflow:hidden;
    box-shadow:0 2px 8px rgba(10,26,16,0.06),0 12px 32px rgba(10,26,16,0.08);
    display:flex;
    flex-direction:column;
    height:100%;           /* fill the left column fully */
}

/* Green header */
.bimc-wp-head{
    background:linear-gradient(135deg,#0d2818 0%,#113522 55%,#1a4a30 100%);
    padding:22px 24px 20px;
    position:relative;
    overflow:hidden;
    flex-shrink:0;
}
.bimc-wp-head::before{
    content:'';position:absolute;inset:0;pointer-events:none;
    background:
        radial-gradient(ellipse 70% 60% at 90% 10%,rgba(46,184,122,0.18) 0%,transparent 55%),
        repeating-linear-gradient(90deg,rgba(255,255,255,0.018) 0px,rgba(255,255,255,0.018) 1px,transparent 1px,transparent 32px),
        repeating-linear-gradient(0deg,rgba(255,255,255,0.018) 0px,rgba(255,255,255,0.018) 1px,transparent 1px,transparent 32px);
}
.bimc-wp-head::after{
    content:'';position:absolute;top:0;left:0;right:0;height:3px;
    background:linear-gradient(90deg,#2eb87a,#4fd898,#2eb87a);
}

.bimc-wp-eyebrow{
    font-family:'JetBrains Mono',monospace;
    font-size:9px;letter-spacing:.22em;text-transform:uppercase;
    color:rgba(255,255,255,0.35);margin-bottom:7px;position:relative;z-index:1;
}
.bimc-wp-title{
    font-family:'Cormorant Garamond',serif;
    font-size:20px;font-weight:700;color:#fff;
    letter-spacing:-.01em;margin-bottom:16px;
    position:relative;z-index:1;line-height:1.2;
}
.bimc-wp-title em{font-style:italic;color:#4fd898;}
.bimc-wp-stats{display:flex;gap:20px;position:relative;z-index:1;}
.bimc-wstat{display:flex;flex-direction:column;gap:2px;}
.bimc-wstat-v{
    font-family:'Cormorant Garamond',serif;
    font-size:21px;font-weight:700;color:#2eb87a;line-height:1;
}
.bimc-wstat-l{
    font-size:9px;color:rgba(255,255,255,0.35);
    text-transform:uppercase;letter-spacing:.1em;
}

/* ── SCROLLABLE week list ── */
.bimc-weeks{
    overflow-y:auto;
    max-height:360px;   /* ~7-8 rows visible; reduced from 480px */
    scrollbar-width:thin;
    scrollbar-color:rgba(46,184,122,0.3) transparent;
    /* Do NOT use flex:1 here — causes blank space on mobile */
}
.bimc-weeks::-webkit-scrollbar{width:4px;}
.bimc-weeks::-webkit-scrollbar-track{background:transparent;}
.bimc-weeks::-webkit-scrollbar-thumb{
    background:rgba(46,184,122,0.3);
    border-radius:4px;
}
.bimc-weeks::-webkit-scrollbar-thumb:hover{
    background:rgba(46,184,122,0.55);
}

/* Scroll hint — three dots at bottom of panel */
.bimc-scroll-hint{
    display:flex;align-items:center;justify-content:center;gap:4px;
    padding:7px 0 9px;
    border-top:1px solid rgba(10,26,16,0.06);
    flex-shrink:0;
    transition:opacity .3s;
}
.bimc-scroll-hint span{
    width:4px;height:4px;border-radius:50%;
    background:rgba(46,184,122,0.4);
    animation:bimc-bounce 1.6s ease-in-out infinite;
}
.bimc-scroll-hint span:nth-child(2){animation-delay:.2s;}
.bimc-scroll-hint span:nth-child(3){animation-delay:.4s;}
.bimc-scroll-hint.bimc-sh-hidden{opacity:0;pointer-events:none;}
@keyframes bimc-bounce{
    0%,80%,100%{transform:translateY(0);}
    40%{transform:translateY(-4px);}
}

/* Week rows */
.bimc-wi{
    display:flex;align-items:center;cursor:pointer;
    border-bottom:1px solid rgba(10,26,16,0.09);
    position:relative;transition:background .18s;
}
.bimc-wi:last-child{border-bottom:none;}
.bimc-wi::before{
    content:'';position:absolute;left:0;top:0;bottom:0;width:3px;
    background:linear-gradient(180deg,#2eb87a,#4fd898);
    border-radius:0 2px 2px 0;
    transform:scaleY(0);transform-origin:center;
    transition:transform .25s cubic-bezier(.34,1.56,.64,1);
}
.bimc-wi:hover{background:rgba(46,184,122,0.04);}
.bimc-wi.active{background:linear-gradient(90deg,rgba(46,184,122,0.08),rgba(46,184,122,0.02));}
.bimc-wi.active::before{transform:scaleY(1);}

.bimc-wi-n{
    width:64px;flex-shrink:0;padding:13px 0;
    display:flex;align-items:center;justify-content:center;
    font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:.06em;font-weight:600;
    color:#5a7a6a;border-right:1px solid rgba(10,26,16,0.09);
    transition:color .18s;
}
.bimc-wi.active .bimc-wi-n{color:#2eb87a;}
.bimc-wi-t{
    flex:1;padding:13px 15px;font-size:13.5px;font-weight:600;
    color:#1e3a2a;line-height:1.3;transition:color .18s;
    font-family:'Sora',sans-serif;
}
.bimc-wi.active .bimc-wi-t{color:#0a1a10;font-weight:700;}
.bimc-wi-ico{width:34px;flex-shrink:0;display:flex;align-items:center;justify-content:center;}
.bimc-wi-ico.arr{color:#2eb87a;opacity:0;transition:opacity .18s;}
.bimc-wi.active .bimc-wi-ico.arr{opacity:1;}
.bimc-wi-ico.lck{color:#7a9486;opacity:.38;}
.bimc-wi-ico svg{width:12px;height:12px;}

/* ================================================
   RIGHT — PANES
   ================================================ */
.bimc-right{
    display:flex;
    flex-direction:column;
}

.bimc-pane{display:none;flex:1;}
.bimc-pane.on{
    display:flex;
    flex-direction:column;
    animation:bimcIn .38s cubic-bezier(.22,1,.36,1) both;
}
@keyframes bimcIn{
    from{opacity:0;transform:translateX(16px);}
    to{opacity:1;transform:translateX(0);}
}

/* ── Content card ── */
.bimc-content-card,
.bimc-gate-card{
    background:#fff;
    border-radius:16px;
    border:1px solid rgba(10,26,16,0.09);
    overflow:hidden;
    box-shadow:0 2px 8px rgba(10,26,16,0.05),0 16px 40px rgba(10,26,16,0.08);
    display:flex;
    flex-direction:column;
    flex:1;
}

/* ── STRIP (per-week — colours set inline via Elementor repeater) ── */
.bimc-strip{
    display:flex;align-items:center;justify-content:space-between;gap:16px;
    padding:14px 22px;
    position:relative;flex-shrink:0;
}
.bimc-strip::after{
    content:'';position:absolute;bottom:0;left:0;right:0;height:1px;
    background:rgba(232,144,26,0.22);
}
.bimc-strip-left{display:flex;align-items:center;gap:12px;flex-wrap:wrap;}
.bimc-strip-week{
    font-family:'JetBrains Mono',monospace;font-size:9.5px;letter-spacing:.18em;
    text-transform:uppercase;padding:5px 14px;border-radius:100px;font-weight:500;
    white-space:nowrap;
}
.bimc-strip-title{
    font-family:'Cormorant Garamond',serif;font-size:17px;font-weight:700;
    letter-spacing:-.01em;line-height:1.1;
}
.bimc-strip-dur{
    flex-shrink:0;font-family:'JetBrains Mono',monospace;font-size:9.5px;
    letter-spacing:.12em;padding:5px 14px;border-radius:100px;font-weight:600;
    white-space:nowrap;
}

/* ── CARD BODY: image LEFT + content RIGHT ── */
.bimc-card-body{
    display:grid;
    grid-template-columns:1fr 1fr;
    flex:1;
    min-height:320px;
}

/* Visual pane */
.bimc-card-vis{
    position:relative;overflow:hidden;
    border-right:1px solid rgba(10,26,16,0.09);
}
/* Image mode — overlay sits on top of the bg image */
.bimc-card-vis--img{
    background-size:cover;
    background-position:center center;
    background-repeat:no-repeat;
}
.bimc-vis-img-overlay{
    position:absolute;inset:0;pointer-events:none;z-index:1;
}
.bimc-vis-svg{
    position:absolute;inset:0;width:100%;height:100%;
}
.bimc-vis-fade{
    position:absolute;bottom:0;left:0;right:0;height:60px;pointer-events:none;z-index:2;
    background:linear-gradient(to bottom,transparent,rgba(0,0,0,0.35));
}

/* Content pane */
.bimc-card-content{
    padding:22px 22px 24px;
    overflow-y:auto;
    display:flex;flex-direction:column;gap:0;
}
.bimc-desc-week{
    font-family:'JetBrains Mono',monospace;font-size:9.5px;letter-spacing:.2em;
    text-transform:uppercase;margin-bottom:10px;font-weight:500;
}
.bimc-cc-desc{
    font-family:'Sora',sans-serif;font-size:13px;font-weight:300;
    color:#3a5244;line-height:1.65;margin-bottom:16px;
}

/* Topics */
.bimc-topics{display:flex;flex-direction:column;gap:7px;margin-bottom:16px;}
.bimc-topic{
    display:flex;align-items:flex-start;gap:10px;
    background:#f2ede3;border:1px solid rgba(10,26,16,0.08);
    border-radius:9px;padding:9px 12px;
    font-family:'Sora',sans-serif;font-size:12.5px;
    color:#0a1a10;line-height:1.4;
    transition:border-color .18s,box-shadow .18s;
}
.bimc-topic:hover{border-color:rgba(232,144,26,0.3);box-shadow:0 2px 8px rgba(232,144,26,0.08);}
.bimc-t-chk{
    width:16px;height:16px;border-radius:50%;flex-shrink:0;
    display:flex;align-items:center;justify-content:center;margin-top:1px;
}
.bimc-t-chk svg{width:8px;height:8px;}

/* Tools */
.bimc-tools{display:flex;flex-wrap:wrap;gap:6px;}
.bimc-tool{
    display:inline-flex;align-items:center;gap:5px;
    font-family:'Sora',sans-serif;
    background:#faf7f1;border:1px solid rgba(10,26,16,0.09);
    border-radius:7px;padding:5px 11px;
    font-size:11.5px;font-weight:500;color:#3a5244;
    transition:border-color .18s,color .18s;cursor:default;
}
.bimc-tool:hover{border-color:rgba(232,144,26,0.3);color:#c96a10;}

/* ================================================
   GATE CARD
   ================================================ */
/* Gate strip — top heading bar of unlock section */
.bimc-gate-strip{
    display:flex;align-items:center;gap:12px;
    padding:14px 22px;flex-shrink:0;
}
.bimc-gate-strip-ico{
    width:28px;height:28px;border-radius:50%;
    background:rgba(255,255,255,0.15);
    display:flex;align-items:center;justify-content:center;flex-shrink:0;
}
.bimc-gate-strip-ico svg{width:14px;height:14px;color:#fff;}
.bimc-gate-strip-text{
    font-family:'Cormorant Garamond',serif;
    font-size:17px;font-weight:700;color:#fff;letter-spacing:-.01em;
}

/* Gate body — equal height */
.bimc-gate-body{
    display:grid;grid-template-columns:1fr 1fr;
    flex:1;min-height:320px;
}

/* Left blurred preview — BG is inline style from Elementor */
.bimc-gate-preview{
    position:relative;overflow:hidden;
    border-right:1px solid rgba(10,26,16,0.09);
    background:linear-gradient(135deg,#0d2818,#1a4a30); /* fallback */
}
.bimc-gp-svg{
    position:absolute;inset:0;width:100%;height:100%;
    opacity:.25;filter:blur(1.5px);
}
/* Fog overlay — inline style from Elementor */
.bimc-gp-fog{
    position:absolute;inset:0;
    background:linear-gradient(135deg,rgba(10,26,16,0.84),rgba(17,53,34,0.78));
    display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;
}
.bimc-gp-lock{
    width:44px;height:44px;border-radius:50%;
    background:rgba(255,255,255,0.08);border:1.5px solid rgba(255,255,255,0.15);
    display:flex;align-items:center;justify-content:center;
}
.bimc-gp-lock svg{width:18px;height:18px;color:#f5b840;}
.bimc-gp-lbl{
    font-family:'JetBrains Mono',monospace;font-size:8.5px;
    letter-spacing:.22em;text-transform:uppercase;
    color:rgba(255,255,255,0.4);text-align:center;line-height:1.6;
}

/* Gate form side */
.bimc-gate-form-side{
    padding:24px;display:flex;flex-direction:column;justify-content:center;
    overflow-y:auto;
}
.bimc-gf-title{
    font-family:'Cormorant Garamond',serif;
    font-size:22px;font-weight:700;color:#0a1a10;
    letter-spacing:-.02em;margin-bottom:6px;line-height:1.2;
}
.bimc-gf-title em{font-style:italic;color:#c96a10;}
.bimc-gf-sub{
    font-family:'Sora',sans-serif;font-size:12.5px;font-weight:300;
    color:#3a5244;line-height:1.6;margin-bottom:14px;
}
.bimc-gf-perks{display:flex;flex-direction:column;gap:7px;margin-bottom:16px;}
.bimc-gf-perk{
    display:flex;align-items:center;gap:8px;
    font-family:'Sora',sans-serif;font-size:12px;color:#3a5244;
}
.bimc-gf-p-ico{
    width:17px;height:17px;border-radius:50%;flex-shrink:0;
    background:rgba(232,144,26,0.12);border:1px solid rgba(232,144,26,0.22);
    display:flex;align-items:center;justify-content:center;
}
.bimc-gf-p-ico svg{width:8px;height:8px;color:#e8901a;}

/* Built-in form */
.bimc-gfl{
    display:block;font-family:'JetBrains Mono',monospace;font-size:8.5px;
    letter-spacing:.16em;text-transform:uppercase;color:#7a9486;margin-bottom:5px;
}
.bimc-gfi{
    width:100%;padding:9px 12px;
    border:1.5px solid rgba(10,26,16,0.09);border-radius:8px;
    font-family:'Sora',sans-serif;font-size:12.5px;
    color:#0a1a10;background:#f2ede3;
    outline:none;margin-bottom:9px;
    transition:border-color .18s,box-shadow .18s;
}
.bimc-gfi::placeholder{color:#7a9486;font-weight:300;}
.bimc-gfi:focus{
    border-color:#e8901a;background:#fff;
    box-shadow:0 0 0 3px rgba(232,144,26,0.1);
}
.bimc-gate-btn{
    width:100%;padding:11px;
    background:linear-gradient(135deg,#0d2818,#1a4a30);
    color:#fff;border:none;border-radius:8px;
    font-family:'Sora',sans-serif;font-size:13px;font-weight:600;
    cursor:pointer;letter-spacing:.02em;
    display:flex;align-items:center;justify-content:center;gap:7px;
    position:relative;overflow:hidden;
    transition:transform .15s,box-shadow .2s;
}
.bimc-gate-btn::before{
    content:'';position:absolute;inset:0;
    background:linear-gradient(135deg,rgba(46,184,122,0.2) 0%,transparent 60%);
    pointer-events:none;
}
.bimc-gate-btn:hover{transform:translateY(-1px);box-shadow:0 6px 20px rgba(10,26,16,0.22);}
.bimc-gate-btn:disabled{opacity:.6;cursor:default;transform:none;}
.bimc-gate-btn svg{width:13px;height:13px;}

/* Form status message */
.bimc-form-status{
    font-family:'Sora',sans-serif;font-size:11.5px;
    min-height:18px;margin-top:4px;text-align:center;
    transition:opacity .3s;
}
.bimc-form-status.err{color:#c84830;}
.bimc-form-status.ok{color:#2eb87a;}

/* Elementor Pro form wrapper */
.bimc-ep-form-wrap{}
.bimc-ep-form-wrap .elementor-form .elementor-field-group{margin-bottom:9px;}
.bimc-ep-form-wrap .elementor-form input,
.bimc-ep-form-wrap .elementor-form select,
.bimc-ep-form-wrap .elementor-form textarea{
    width:100%;padding:9px 12px;
    border:1.5px solid rgba(10,26,16,0.09) !important;border-radius:8px !important;
    font-family:'Sora',sans-serif !important;font-size:12.5px !important;
    color:#0a1a10 !important;background:#f2ede3 !important;outline:none;
    transition:border-color .18s,box-shadow .18s;
}
.bimc-ep-form-wrap .elementor-form input:focus,
.bimc-ep-form-wrap .elementor-form textarea:focus{
    border-color:#e8901a !important;background:#fff !important;
    box-shadow:0 0 0 3px rgba(232,144,26,0.1) !important;
}
.bimc-ep-form-wrap .elementor-form .elementor-button{
    width:100% !important;padding:11px !important;
    background:linear-gradient(135deg,#0d2818,#1a4a30) !important;
    color:#fff !important;border:none !important;border-radius:8px !important;
    font-family:'Sora',sans-serif !important;font-size:13px !important;font-weight:600 !important;
    cursor:pointer;letter-spacing:.02em;
    transition:transform .15s,box-shadow .2s;
}
.bimc-ep-form-wrap .elementor-form .elementor-button:hover{
    transform:translateY(-1px);box-shadow:0 6px 20px rgba(10,26,16,0.22) !important;
}
.bimc-ep-form-wrap .elementor-form label{
    font-family:'JetBrains Mono',monospace !important;font-size:8.5px !important;
    letter-spacing:.16em;text-transform:uppercase;color:#7a9486;
}

/* Success state */
.bimc-gate-succ{
    display:none;text-align:center;padding:16px 0;
}
.bimc-gate-succ.on{display:block;}
.bimc-gform-wrap.off{display:none;}
.bimc-succ-ico{
    width:44px;height:44px;border-radius:50%;
    background:rgba(46,184,122,0.1);border:2px solid #2eb87a;
    display:flex;align-items:center;justify-content:center;margin:0 auto 10px;
}
.bimc-succ-ico svg{width:20px;height:20px;color:#2eb87a;}
.bimc-succ-t{font-family:'Cormorant Garamond',serif;font-size:18px;font-weight:700;color:#0a1a10;margin-bottom:5px;}
.bimc-succ-s{font-family:'Sora',sans-serif;font-size:12px;color:#3a5244;line-height:1.65;}

/* ================================================
   SVG ANIMATIONS
   ================================================ */
.bimc-dl{stroke-dasharray:900;stroke-dashoffset:900;animation:bimc-draw 2s ease forwards;}
.bimc-dr{stroke-dasharray:1100;stroke-dashoffset:1100;animation:bimc-draw 2.2s ease forwards;}
.bimc-dc{stroke-dasharray:350;stroke-dashoffset:350;animation:bimc-draw 1.5s ease forwards;}
@keyframes bimc-draw{to{stroke-dashoffset:0;}}
.bimc-fl{animation:bimc-flt 3s ease-in-out infinite;}
.bimc-fl2{animation:bimc-flt 3s ease-in-out infinite 1s;}
.bimc-fl3{animation:bimc-flt 3s ease-in-out infinite 2s;}
@keyframes bimc-flt{0%,100%{transform:translateY(0);}50%{transform:translateY(-5px);}}

/* ================================================
   RESPONSIVE — defaults (JS overrides per widget)
   ================================================ */
@media(max-width:840px){
    .bimc-grid{grid-template-columns:1fr !important;}
    .bimc-left{position:static !important; height:auto !important;}
    .bimc-week-panel{height:auto !important; min-height:0 !important;}
    .bimc-card-body{grid-template-columns:1fr !important;}
    .bimc-card-vis{height:220px;border-right:none !important;border-bottom:1px solid rgba(10,26,16,0.09);}
    .bimc-gate-body{grid-template-columns:1fr !important;}
    .bimc-gate-preview{height:160px;border-right:none !important;border-bottom:1px solid rgba(10,26,16,0.09);}
    .bimc-strip{flex-wrap:wrap;gap:8px !important;padding:12px 16px !important;}
    .bimc-strip-title{font-size:14px !important;}
    .bimc-gate-form-side{padding:18px;}
    .bimc-card-content{padding:18px;}
    /* On mobile: remove max-height so all weeks show without blank space */
    .bimc-weeks{max-height:none !important; overflow-y:visible !important;}
    .bimc-scroll-hint{display:none !important;}
}
@media(max-width:540px){
    .bimc-section{padding:28px 16px 44px !important;}
    .bimc-wp-head{padding:16px 18px 14px !important;}
    .bimc-gf-title{font-size:18px !important;}
    .bimc-strip-title{font-size:13px !important;}
}
@media(max-width:400px){
    .bimc-wi-t{font-size:12px;}
    .bimc-wi-n{width:52px;}
}
