/* ============================================================
   Lathi Blocks v2.0 — frontend.css
   Visually distinct from all WordPress core blocks.
   Animated. Branded. Unmistakably MyGlutenShield.
   ============================================================ */
:root {
  --lb-teal:#073b52; --lb-tm:#0e5470; --lb-tl:#cbe8e6; --lb-tx:#e8f4f3;
  --lb-sage:#8aab9a; --lb-sage-lt:#d4e8de;
  --lb-cream:#faf8f5; --lb-white:#fff;
  --lb-text:#1a2e3b; --lb-muted:#6b7f8a; --lb-soft:#9ab0bb; --lb-border:#e4edef;
  --lb-sh:0 2px 24px rgba(7,59,82,.07); --lb-sh-lg:0 12px 48px rgba(7,59,82,.13);
  --lb-r:14px; --lb-btn-r:100px;
}

/* ── Entrance animation base ── */
.lb-animate { opacity:0; transform:translateY(20px); transition:opacity .55s ease,transform .55s ease; }
.lb-animate.lb-visible { opacity:1; transform:none; }
.lb-animate-left  { opacity:0; transform:translateX(-24px); transition:opacity .55s ease,transform .55s ease; }
.lb-animate-left.lb-visible  { opacity:1; transform:none; }
.lb-animate-scale { opacity:0; transform:scale(.94); transition:opacity .45s ease,transform .45s ease; }
.lb-animate-scale.lb-visible { opacity:1; transform:scale(1); }

/* ════════════════════════════════════
   1. TLDR BOX
════════════════════════════════════ */
.lc-tldr { background:var(--lb-teal); border-radius:16px; padding:1.5rem 1.8rem; position:relative; overflow:hidden; margin:1.75rem 0; }
.lc-tldr::before { content:''; position:absolute; top:-50px; right:-50px; width:180px; height:180px; border-radius:50%; background:rgba(255,255,255,.04); pointer-events:none; }
.lc-tldr::after  { content:''; position:absolute; bottom:-30px; left:-30px; width:120px; height:120px; border-radius:50%; background:rgba(138,171,154,.08); pointer-events:none; }
.lc-tldr__label { font-size:.6rem; font-weight:700; letter-spacing:.18em; text-transform:uppercase; color:var(--lb-tl); margin-bottom:.65rem; display:flex; align-items:center; gap:.5rem; position:relative; z-index:1; }
.lc-tldr__label::before { content:'⚡'; }
.lc-tldr h4 { font-family:'Playfair Display',Georgia,serif; font-size:1rem; font-weight:600; color:#fff; margin:0 0 .65rem; position:relative; z-index:1; }
.lc-tldr ul { list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:.45rem; position:relative; z-index:1; }
.lc-tldr li { font-size:.87rem; color:rgba(255,255,255,.78); display:flex; align-items:flex-start; gap:.55rem; line-height:1.6; animation:lb-slide-in .4s ease both; }
.lc-tldr li:nth-child(1){animation-delay:.05s} .lc-tldr li:nth-child(2){animation-delay:.1s} .lc-tldr li:nth-child(3){animation-delay:.15s} .lc-tldr li:nth-child(4){animation-delay:.2s}
@keyframes lb-slide-in { from{opacity:0;transform:translateX(-10px)} to{opacity:1;transform:none} }
.lc-tldr li::before { content:'→'; color:var(--lb-tl); flex-shrink:0; font-weight:700; margin-top:.05rem; }

/* ════════════════════════════════════
   2. CALLOUT
════════════════════════════════════ */
.lc-callout { border-radius:12px; padding:1.1rem 1.4rem; display:flex; gap:.9rem; align-items:flex-start; border-left:4px solid; margin:1.5rem 0; position:relative; overflow:hidden; transition:transform .25s,box-shadow .25s; }
.lc-callout:hover { transform:translateX(4px); box-shadow:var(--lb-sh); }
.lc-callout__icon { font-size:1.25rem; flex-shrink:0; margin-top:.05rem; }
.lc-callout__label { font-size:.6rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase; margin-bottom:.3rem; }
.lc-callout p { font-size:.88rem; line-height:1.75; margin:0 !important; color:var(--lb-text); }
.lc-callout--science { background:linear-gradient(135deg,var(--lb-tx),#d8eef2); border-color:var(--lb-teal); } .lc-callout--science .lc-callout__label{color:var(--lb-teal)}
.lc-callout--tip     { background:linear-gradient(135deg,#f0fdf4,#dcfce7); border-color:#16a34a; } .lc-callout--tip .lc-callout__label{color:#16a34a}
.lc-callout--warn    { background:linear-gradient(135deg,#fef3c7,#fde68a20); border-color:#f59e0b; } .lc-callout--warn .lc-callout__label{color:#d97706}
.lc-callout--danger  { background:linear-gradient(135deg,#fee2e2,#fecaca20); border-color:#dc2626; } .lc-callout--danger .lc-callout__label{color:#dc2626}
.lc-callout--info    { background:linear-gradient(135deg,#eff6ff,#dbeafe20); border-color:#3b82f6; } .lc-callout--info .lc-callout__label{color:#2563eb}

/* ════════════════════════════════════
   3. PULL QUOTE
════════════════════════════════════ */
.lc-pullquote { padding:2rem 2.25rem; background:linear-gradient(135deg,var(--lb-tx),#d8eef2); border-radius:16px; position:relative; margin:1.75rem 0; overflow:hidden; }
.lc-pullquote::before { content:'\201C'; position:absolute; top:-.5rem; left:1.2rem; font-family:'Playfair Display',Georgia,serif; font-size:5.5rem; line-height:1; color:var(--lb-tl); opacity:.7; pointer-events:none; }
.lc-pullquote::after { content:''; position:absolute; bottom:-20px; right:-20px; width:100px; height:100px; border-radius:50%; background:rgba(7,59,82,.04); }
.lc-pullquote p { font-family:'Playfair Display',Georgia,serif; font-size:1.2rem; font-style:italic; color:var(--lb-teal); line-height:1.6; margin:0 !important; padding-left:.5rem; position:relative; z-index:1; }
.lc-pullquote cite { display:block; font-style:normal; font-size:.76rem; font-weight:600; color:var(--lb-muted); margin-top:.75rem; padding-left:.5rem; letter-spacing:.04em; }

/* ════════════════════════════════════
   4. STAT ROW
════════════════════════════════════ */
.lc-stat-row { display:flex; gap:1.1rem; flex-wrap:wrap; margin:1.75rem 0; }
.lc-stat-box { flex:1; min-width:120px; background:var(--lb-white); border-radius:16px; padding:1.4rem; text-align:center; box-shadow:var(--lb-sh); border-top:3px solid var(--lb-tl); position:relative; overflow:hidden; transition:transform .3s,box-shadow .3s; }
.lc-stat-box:hover { transform:translateY(-5px); box-shadow:var(--lb-sh-lg); }
.lc-stat-box::after { content:''; position:absolute; bottom:-20px; right:-20px; width:80px; height:80px; border-radius:50%; background:linear-gradient(135deg,var(--lb-tx),transparent); pointer-events:none; }
.lc-stat-box__n { font-family:'Playfair Display',Georgia,serif; font-size:2.25rem; font-weight:900; color:var(--lb-teal); line-height:1; display:block; margin-bottom:.35rem; position:relative; z-index:1; }
.lc-stat-box__l { font-size:.7rem; font-weight:600; letter-spacing:.06em; text-transform:uppercase; color:var(--lb-muted); line-height:1.35; position:relative; z-index:1; }

/* ════════════════════════════════════
   5. FAQ BOX
════════════════════════════════════ */
.lc-faq-box { border-radius:16px; overflow:hidden; margin:1.75rem 0; box-shadow:var(--lb-sh); }
.lc-faq-box__header { background:linear-gradient(135deg,var(--lb-teal),var(--lb-tm)); padding:1rem 1.4rem; display:flex; align-items:center; gap:.65rem; }
.lc-faq-box__header::before { content:'❓'; font-size:.95rem; }
.lc-faq-box__header span { font-family:'Playfair Display',Georgia,serif; font-size:.98rem; font-weight:600; color:#fff; }
.lc-faq-box__item { border-bottom:1px solid var(--lb-border); background:#fff; }
.lc-faq-box__item:last-child { border-bottom:none; }
.lc-faq-box__q { width:100%; display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:.92rem 1.4rem; background:transparent; border:none; cursor:pointer; text-align:left; font-size:.9rem; font-weight:500; color:var(--lb-text); transition:all .2s; font-family:inherit; }
.lc-faq-box__q:hover { background:var(--lb-tx); padding-left:1.7rem; color:var(--lb-teal); }
.lc-faq-box__q.open { background:var(--lb-tx); color:var(--lb-teal); padding-left:1.7rem; }
.lc-faq-box__ico { flex-shrink:0; width:22px; height:22px; border-radius:50%; border:1.5px solid var(--lb-border); display:flex; align-items:center; justify-content:center; font-size:.8rem; color:var(--lb-muted); transition:transform .35s cubic-bezier(.34,1.56,.64,1),background .2s,border-color .2s; }
.lc-faq-box__q.open .lc-faq-box__ico { transform:rotate(45deg) scale(1.1); background:var(--lb-teal); border-color:var(--lb-teal); color:#fff; }
.lc-faq-box__a { display:none; padding:.5rem 1.4rem 1.2rem; background:linear-gradient(to bottom,var(--lb-tx),rgba(232,244,243,.4)); font-size:.87rem; line-height:1.8; color:var(--lb-text); }
.lc-faq-box__a.open { display:block; animation:lb-faq-open .25s ease; }
@keyframes lb-faq-open { from{opacity:0;transform:translateY(-6px)} to{opacity:1;transform:none} }

/* ════════════════════════════════════
   6. BAR CHART
════════════════════════════════════ */
.lc-hbar { background:var(--lb-white); border-radius:16px; padding:1.6rem; box-shadow:var(--lb-sh); margin:1.75rem 0; position:relative; overflow:hidden; }
.lc-hbar::before { content:''; position:absolute; top:0; left:0; right:0; height:3px; background:linear-gradient(90deg,var(--lb-teal),var(--lb-sage)); }
.lc-hbar__title { font-family:'Playfair Display',Georgia,serif; font-size:1rem; font-weight:600; color:var(--lb-text); margin-bottom:1.1rem; }
.lc-hbar__row { display:grid; grid-template-columns:150px 1fr 48px; gap:.65rem; align-items:center; margin-bottom:.7rem; }
.lc-hbar__row:last-of-type { margin-bottom:0; }
.lc-hbar__label { font-size:.8rem; font-weight:500; color:var(--lb-text); text-align:right; line-height:1.3; }
.lc-hbar__track { height:14px; background:var(--lb-border); border-radius:7px; overflow:hidden; }
.lc-hbar__fill { height:100%; border-radius:7px; transition:width 1s cubic-bezier(.4,0,.2,1); position:relative; overflow:hidden; }
.lc-hbar__fill::after { content:''; position:absolute; top:0; left:-100%; right:0; bottom:0; background:linear-gradient(90deg,transparent,rgba(255,255,255,.25),transparent); animation:lb-bar-shine 2s ease infinite; }
@keyframes lb-bar-shine { from{left:-100%} to{left:200%} }
.lc-hbar__val { font-size:.78rem; font-weight:700; color:var(--lb-text); }
.lc-hbar__src { font-size:.68rem; color:var(--lb-soft); margin-top:.85rem; font-style:italic; }

/* ════════════════════════════════════
   7. COMPARISON TABLE
════════════════════════════════════ */
.lc-table-wrap { overflow-x:auto; border-radius:16px; box-shadow:var(--lb-sh); margin:1.75rem 0; }
.lc-table { width:100%; border-collapse:collapse; background:var(--lb-white); font-size:.88rem; }
.lc-table caption { font-family:'Playfair Display',Georgia,serif; font-size:.97rem; font-weight:600; color:var(--lb-text); text-align:left; padding:1.1rem 1.4rem .65rem; border-bottom:1px solid var(--lb-border); }
.lc-table thead tr { background:linear-gradient(135deg,var(--lb-teal),var(--lb-tm)); }
.lc-table thead th { padding:.92rem 1.1rem; text-align:left; font-size:.68rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:rgba(255,255,255,.75); white-space:nowrap; }
.lc-table tbody tr { border-bottom:1px solid var(--lb-border); transition:background .15s,transform .15s; }
.lc-table tbody tr:hover { background:var(--lb-tx); }
.lc-table tbody tr:last-child { border-bottom:none; }
.lc-table tbody td { padding:.88rem 1.1rem; vertical-align:middle; color:var(--lb-text); }
.lc-td-bar { display:flex; align-items:center; gap:.65rem; }
.lc-td-bar__track { flex:1; height:8px; background:var(--lb-border); border-radius:4px; overflow:hidden; min-width:55px; }
.lc-td-bar__fill { height:100%; border-radius:4px; background:linear-gradient(90deg,var(--lb-sage),var(--lb-teal)); transition:width 1s cubic-bezier(.4,0,.2,1); }
.lc-td-bar__val { font-size:.78rem; font-weight:700; color:var(--lb-text); white-space:nowrap; }
.lc-pill { display:inline-flex; align-items:center; font-size:.68rem; font-weight:700; letter-spacing:.05em; padding:.22em .75em; border-radius:100px; white-space:nowrap; }
.lc-pill--yes   { background:#dcfce7; color:#16a34a; border:1px solid #bbf7d0; }
.lc-pill--no    { background:#fee2e2; color:#dc2626; border:1px solid #fecaca; }
.lc-pill--maybe { background:#fef3c7; color:#d97706; border:1px solid #fde68a; }

/* ════════════════════════════════════
   8. TIMELINE
════════════════════════════════════ */
.lc-timeline { position:relative; padding-left:2.25rem; display:flex; flex-direction:column; gap:1.4rem; margin:1.75rem 0; }
.lc-timeline::before { content:''; position:absolute; left:.7rem; top:.6rem; bottom:.6rem; width:2px; background:linear-gradient(to bottom,var(--lb-teal),var(--lb-tl)); border-radius:1px; }
.lc-timeline__item { position:relative; opacity:0; transform:translateX(-16px); transition:opacity .4s ease,transform .4s ease; }
.lc-timeline__item.lb-visible { opacity:1; transform:none; }
.lc-timeline__item:nth-child(1){transition-delay:.05s} .lc-timeline__item:nth-child(2){transition-delay:.15s} .lc-timeline__item:nth-child(3){transition-delay:.25s} .lc-timeline__item:nth-child(4){transition-delay:.35s} .lc-timeline__item:nth-child(5){transition-delay:.45s}
.lc-timeline__marker { position:absolute; left:-1.65rem; top:.6rem; width:12px; height:12px; border-radius:50%; background:var(--lb-teal); border:2px solid var(--lb-white); box-shadow:0 0 0 3px var(--lb-tl),0 0 0 5px rgba(7,59,82,.1); flex-shrink:0; transition:transform .3s; }
.lc-timeline__item:hover .lc-timeline__marker { transform:scale(1.3); }
.lc-timeline__content { background:var(--lb-white); border-radius:14px; padding:1.1rem 1.3rem; flex:1; box-shadow:var(--lb-sh); border:1px solid var(--lb-border); transition:transform .25s,box-shadow .25s; }
.lc-timeline__content:hover { transform:translateX(4px); box-shadow:var(--lb-sh-lg); }
.lc-timeline__time { font-size:.63rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--lb-white); background:var(--lb-sage); padding:.2em .7em; border-radius:100px; display:inline-block; margin-bottom:.4rem; }
.lc-timeline__title { font-family:'Playfair Display',Georgia,serif; font-size:1rem; font-weight:600; color:var(--lb-text); margin:.2rem 0 .35rem; }
.lc-timeline__body { font-size:.86rem; color:var(--lb-muted); line-height:1.75; margin:0; }

/* ════════════════════════════════════
   9. PRODUCT CARD
════════════════════════════════════ */
.lc-pc { border-radius:20px; padding:1.75rem; display:flex; flex-direction:column; gap:.55rem; margin:1.75rem 0; position:relative; overflow:hidden; transition:transform .3s,box-shadow .3s; }
.lc-pc:hover { transform:translateY(-6px); box-shadow:var(--lb-sh-lg); }
.lc-pc--teal  { background:linear-gradient(135deg,var(--lb-tx),#d8eef2); border:1px solid var(--lb-tl); }
.lc-pc--dark  { background:linear-gradient(135deg,var(--lb-teal),var(--lb-tm)); }
.lc-pc--light { background:var(--lb-white); border:1px solid var(--lb-border); box-shadow:var(--lb-sh); }
.lc-pc::before { content:''; position:absolute; top:-40px; right:-40px; width:130px; height:130px; border-radius:50%; background:rgba(255,255,255,.05); pointer-events:none; }
.lc-pc__icon  { font-size:2.5rem; margin-bottom:.2rem; display:block; }
.lc-pc__tag   { font-size:.6rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--lb-sage); }
.lc-pc--dark .lc-pc__tag { color:var(--lb-tl); }
.lc-pc__title { font-family:'Playfair Display',Georgia,serif; font-size:1.1rem; font-weight:700; color:var(--lb-teal); margin:0; line-height:1.25; }
.lc-pc--dark .lc-pc__title { color:#fff; }
.lc-pc__sub   { font-size:.86rem; color:var(--lb-muted); line-height:1.75; margin:0; }
.lc-pc--dark .lc-pc__sub { color:rgba(255,255,255,.6); }
.lc-pc__perks { list-style:none; padding:0; margin:.3rem 0; display:flex; flex-direction:column; gap:.38rem; }
.lc-pc__perks li { font-size:.83rem; color:var(--lb-text); display:flex; align-items:center; gap:.5rem; }
.lc-pc--dark .lc-pc__perks li { color:rgba(255,255,255,.78); }
.lc-pc__perks li::before { content:'✓'; width:18px; height:18px; border-radius:50%; background:var(--lb-sage-lt); color:var(--lb-sage); font-size:.62rem; font-weight:700; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.lc-pc__btn { display:block; text-align:center; background:var(--lb-teal); color:#fff; padding:.78em 1.25em; border-radius:var(--lb-btn-r,100px); font-weight:700; font-size:.85rem; text-decoration:none; transition:all .25s; margin-top:.5rem; }
.lc-pc--dark .lc-pc__btn { background:var(--lb-sage); }
.lc-pc__btn:hover { filter:brightness(1.1); transform:translateY(-2px); color:#fff; box-shadow:0 8px 24px rgba(7,59,82,.2); }

/* ════════════════════════════════════
   10. HERO BANNER
════════════════════════════════════ */
.lb-hero { position:relative; overflow:hidden; padding:5rem 2rem; text-align:center; margin:1.75rem 0; border-radius:20px; }
.lb-hero--teal  { background:linear-gradient(135deg,var(--lb-teal) 0%,var(--lb-tm) 60%,#0d6b8a 100%); }
.lb-hero--cream { background:linear-gradient(135deg,var(--lb-cream),var(--lb-tx)); }
.lb-hero--sage  { background:linear-gradient(135deg,#5d8f7c,var(--lb-sage)); }
.lb-hero::before { content:''; position:absolute; top:-80px; right:-80px; width:350px; height:350px; border-radius:50%; background:rgba(255,255,255,.05); pointer-events:none; }
.lb-hero::after  { content:''; position:absolute; bottom:-60px; left:-60px; width:250px; height:250px; border-radius:50%; background:rgba(255,255,255,.03); pointer-events:none; }
.lb-hero__kicker { font-size:.72rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--lb-tl); display:inline-flex; align-items:center; gap:.5rem; margin-bottom:.75rem; }
.lb-hero--cream .lb-hero__kicker, .lb-hero--sage .lb-hero__kicker { color:var(--lb-sage); }
.lb-hero__kicker::before { content:''; width:18px; height:1px; background:currentColor; }
.lb-hero__title { font-family:'Playfair Display',Georgia,serif; font-size:clamp(2rem,5vw,3.5rem); font-weight:700; color:#fff; line-height:1.1; letter-spacing:-.02em; margin:0 0 .75rem; position:relative; z-index:1; }
.lb-hero--cream .lb-hero__title { color:var(--lb-teal); }
.lb-hero__sub { font-size:1.05rem; color:rgba(255,255,255,.65); max-width:520px; margin:0 auto 1.75rem; line-height:1.8; position:relative; z-index:1; }
.lb-hero--cream .lb-hero__sub { color:var(--lb-muted); }
.lb-hero__btns { display:flex; gap:.85rem; justify-content:center; flex-wrap:wrap; position:relative; z-index:1; }
.lb-hero__btn { display:inline-flex; align-items:center; justify-content:center; padding:.8em 2.25em; border-radius:var(--lb-btn-r,100px); font-weight:700; font-size:.88rem; text-decoration:none; transition:all .25s; }
.lb-hero__btn--primary { background:#fff; color:var(--lb-teal); }
.lb-hero__btn--primary:hover { transform:translateY(-2px); box-shadow:0 10px 30px rgba(0,0,0,.2); color:var(--lb-teal); }
.lb-hero__btn--outline { background:transparent; color:#fff; border:2px solid rgba(255,255,255,.4); }
.lb-hero__btn--outline:hover { background:rgba(255,255,255,.12); border-color:rgba(255,255,255,.7); color:#fff; }

/* ════════════════════════════════════
   11. ICON BOX
════════════════════════════════════ */
.lb-icon-box { display:flex; gap:1.1rem; padding:1.4rem; border-radius:16px; background:var(--lb-white); border:1px solid var(--lb-border); box-shadow:var(--lb-sh); transition:transform .3s,box-shadow .3s,border-color .3s; margin:.5rem 0; }
.lb-icon-box:hover { transform:translateY(-4px); box-shadow:var(--lb-sh-lg); border-color:var(--lb-tl); }
.lb-icon-box--centered { flex-direction:column; align-items:center; text-align:center; }
.lb-icon-box--teal { background:linear-gradient(135deg,var(--lb-teal),var(--lb-tm)); border-color:transparent; }
.lb-icon-box--sage { background:linear-gradient(135deg,var(--lb-sage-lt),var(--lb-tx)); border-color:var(--lb-tl); }
.lb-icon-box__icon { width:52px; height:52px; border-radius:14px; background:var(--lb-tx); display:flex; align-items:center; justify-content:center; font-size:1.5rem; flex-shrink:0; transition:transform .3s; }
.lb-icon-box:hover .lb-icon-box__icon { transform:scale(1.12) rotate(3deg); }
.lb-icon-box--teal .lb-icon-box__icon { background:rgba(255,255,255,.12); }
.lb-icon-box__title { font-family:'Playfair Display',Georgia,serif; font-size:1.02rem; font-weight:600; color:var(--lb-text); margin:0 0 .35rem; }
.lb-icon-box--teal .lb-icon-box__title { color:#fff; }
.lb-icon-box__body { font-size:.86rem; color:var(--lb-muted); line-height:1.75; margin:0; }
.lb-icon-box--teal .lb-icon-box__body { color:rgba(255,255,255,.62); }

/* ════════════════════════════════════
   12. FEATURE GRID
════════════════════════════════════ */
.lb-feature-grid { display:grid; gap:1.25rem; margin:1.75rem 0; }
.lb-feature-grid--2 { grid-template-columns:repeat(2,1fr); }
.lb-feature-grid--3 { grid-template-columns:repeat(3,1fr); }
.lb-feature-grid--4 { grid-template-columns:repeat(4,1fr); }
.lb-feature-item { background:var(--lb-white); border-radius:16px; padding:1.5rem; border:1px solid var(--lb-border); box-shadow:var(--lb-sh); transition:transform .3s,box-shadow .3s; position:relative; overflow:hidden; }
.lb-feature-item::after { content:''; position:absolute; bottom:0; left:0; right:0; height:3px; background:linear-gradient(90deg,var(--lb-teal),var(--lb-sage)); transform:scaleX(0); transform-origin:left; transition:transform .35s ease; }
.lb-feature-item:hover::after { transform:scaleX(1); }
.lb-feature-item:hover { transform:translateY(-5px); box-shadow:var(--lb-sh-lg); }
.lb-feature-item__icon { font-size:1.75rem; margin-bottom:.65rem; display:block; }
.lb-feature-item__title { font-family:'Playfair Display',Georgia,serif; font-size:.97rem; font-weight:600; color:var(--lb-text); margin:0 0 .4rem; }
.lb-feature-item__body { font-size:.84rem; color:var(--lb-muted); line-height:1.72; margin:0; }
@media(max-width:640px){ .lb-feature-grid--3,.lb-feature-grid--4 { grid-template-columns:repeat(2,1fr); } }
@media(max-width:480px){ .lb-feature-grid--2,.lb-feature-grid--3,.lb-feature-grid--4 { grid-template-columns:1fr; } }

/* ════════════════════════════════════
   13. TESTIMONIAL
════════════════════════════════════ */
.lb-testimonial { background:var(--lb-white); border-radius:20px; padding:1.75rem; box-shadow:var(--lb-sh-lg); border:1px solid var(--lb-border); position:relative; margin:1.75rem 0; overflow:hidden; transition:transform .3s; }
.lb-testimonial:hover { transform:translateY(-4px); }
.lb-testimonial::before { content:'\201C'; position:absolute; top:-.5rem; right:1.2rem; font-family:'Playfair Display',serif; font-size:6rem; line-height:1; color:var(--lb-tl); pointer-events:none; opacity:.6; }
.lb-testimonial__stars { display:flex; gap:3px; margin-bottom:.85rem; }
.lb-testimonial__star { color:#f59e0b; font-size:1rem; }
.lb-testimonial__star--empty { color:var(--lb-border); }
.lb-testimonial__text { font-family:'Playfair Display',Georgia,serif; font-size:1rem; font-style:italic; color:var(--lb-text); line-height:1.7; margin:0 0 1.1rem; }
.lb-testimonial__author { display:flex; align-items:center; gap:.75rem; }
.lb-testimonial__avatar { width:44px; height:44px; border-radius:50%; background:var(--lb-teal); color:#fff; display:flex; align-items:center; justify-content:center; font-size:.8rem; font-weight:700; flex-shrink:0; border:2px solid var(--lb-tl); }
.lb-testimonial__name { font-size:.88rem; font-weight:600; color:var(--lb-text); }
.lb-testimonial__role { font-size:.76rem; color:var(--lb-muted); }

/* ════════════════════════════════════
   14. COUNTDOWN TIMER
════════════════════════════════════ */
.lb-countdown { display:flex; gap:1rem; justify-content:center; flex-wrap:wrap; margin:1.75rem 0; }
.lb-countdown__unit { background:var(--lb-teal); border-radius:16px; padding:1.25rem 1.5rem; text-align:center; min-width:90px; position:relative; overflow:hidden; box-shadow:var(--lb-sh-lg); }
.lb-countdown__unit::before { content:''; position:absolute; top:-20px; right:-20px; width:70px; height:70px; border-radius:50%; background:rgba(255,255,255,.06); }
.lb-countdown__n { font-family:'Playfair Display',Georgia,serif; font-size:2.75rem; font-weight:900; color:#fff; line-height:1; display:block; font-variant-numeric:tabular-nums; }
.lb-countdown__label { font-size:.62rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--lb-tl); margin-top:.25rem; display:block; }

/* ════════════════════════════════════
   15. PROGRESS BAR
════════════════════════════════════ */
.lb-progress-wrap { display:flex; flex-direction:column; gap:1rem; margin:1.75rem 0; }
.lb-progress { }
.lb-progress__header { display:flex; justify-content:space-between; align-items:center; margin-bottom:.45rem; }
.lb-progress__label { font-size:.85rem; font-weight:600; color:var(--lb-text); }
.lb-progress__val { font-size:.8rem; font-weight:700; color:var(--lb-teal); }
.lb-progress__track { height:10px; background:var(--lb-border); border-radius:5px; overflow:hidden; }
.lb-progress__fill { height:100%; border-radius:5px; background:linear-gradient(90deg,var(--lb-sage),var(--lb-teal)); transition:width 1.2s cubic-bezier(.4,0,.2,1); position:relative; overflow:hidden; }
.lb-progress__fill::after { content:''; position:absolute; top:0; bottom:0; left:-100%; width:60%; background:linear-gradient(90deg,transparent,rgba(255,255,255,.35),transparent); animation:lb-progress-shine 2.5s ease 1.3s infinite; }
@keyframes lb-progress-shine { from{left:-60%} to{left:160%} }

/* ════════════════════════════════════
   16. TABS
════════════════════════════════════ */
.lb-tabs { margin:1.75rem 0; }
.lb-tabs__nav { display:flex; gap:.25rem; border-bottom:2px solid var(--lb-border); margin-bottom:0; flex-wrap:wrap; }
.lb-tabs__btn { padding:.65rem 1.25rem; border:none; background:transparent; font-family:inherit; font-size:.86rem; font-weight:500; color:var(--lb-muted); cursor:pointer; border-bottom:2px solid transparent; margin-bottom:-2px; transition:all .2s; border-radius:8px 8px 0 0; }
.lb-tabs__btn:hover { color:var(--lb-teal); background:var(--lb-tx); }
.lb-tabs__btn.active { color:var(--lb-teal); border-bottom-color:var(--lb-teal); font-weight:600; background:var(--lb-tx); }
.lb-tabs__panel { display:none; padding:1.4rem; background:var(--lb-white); border:1px solid var(--lb-border); border-top:none; border-radius:0 0 12px 12px; animation:lb-faq-open .2s ease; }
.lb-tabs__panel.active { display:block; }

/* ════════════════════════════════════
   17. ACCORDION
════════════════════════════════════ */
.lb-accordion { display:flex; flex-direction:column; gap:.5rem; margin:1.75rem 0; }
.lb-accordion__item { border:1px solid var(--lb-border); border-radius:12px; overflow:hidden; transition:border-color .2s; background:var(--lb-white); }
.lb-accordion__item.open { border-color:var(--lb-teal); box-shadow:var(--lb-sh); }
.lb-accordion__trigger { width:100%; display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:.95rem 1.25rem; background:transparent; border:none; cursor:pointer; text-align:left; font-family:inherit; font-size:.92rem; font-weight:500; color:var(--lb-text); transition:background .2s,padding-left .2s; }
.lb-accordion__trigger:hover, .lb-accordion__item.open .lb-accordion__trigger { background:var(--lb-tx); color:var(--lb-teal); padding-left:1.55rem; }
.lb-accordion__ico { width:24px; height:24px; border-radius:50%; border:1.5px solid var(--lb-border); display:flex; align-items:center; justify-content:center; color:var(--lb-muted); font-size:.85rem; flex-shrink:0; transition:transform .35s cubic-bezier(.34,1.56,.64,1),background .2s; }
.lb-accordion__item.open .lb-accordion__ico { transform:rotate(45deg) scale(1.1); background:var(--lb-teal); border-color:var(--lb-teal); color:#fff; }
.lb-accordion__body { display:none; padding:.5rem 1.25rem 1.2rem; font-size:.88rem; line-height:1.8; color:var(--lb-muted); }
.lb-accordion__item.open .lb-accordion__body { display:block; animation:lb-faq-open .2s ease; }

/* ════════════════════════════════════
   18. NOTICE BANNER
════════════════════════════════════ */
.lb-notice { display:flex; align-items:flex-start; gap:.85rem; padding:1rem 1.3rem; border-radius:12px; border-left:4px solid; margin:1.5rem 0; position:relative; }
.lb-notice__icon { font-size:1.15rem; flex-shrink:0; margin-top:.05rem; }
.lb-notice__content { flex:1; min-width:0; }
.lb-notice__title { font-size:.82rem; font-weight:700; margin:0 0 .2rem; }
.lb-notice__body { font-size:.83rem; line-height:1.7; margin:0; }
.lb-notice__close { background:none; border:none; cursor:pointer; color:inherit; opacity:.5; font-size:1rem; flex-shrink:0; padding:0; transition:opacity .2s; }
.lb-notice__close:hover { opacity:1; }
.lb-notice--info    { background:#eff6ff; border-color:#3b82f6; color:#1e40af; }
.lb-notice--success { background:#f0fdf4; border-color:#16a34a; color:#15803d; }
.lb-notice--warn    { background:#fef3c7; border-color:#f59e0b; color:#92400e; }
.lb-notice--danger  { background:#fee2e2; border-color:#dc2626; color:#991b1b; }
.lb-notice--teal    { background:var(--lb-tx); border-color:var(--lb-teal); color:var(--lb-teal); }

/* ════════════════════════════════════
   19. NUMBER COUNTER
════════════════════════════════════ */
.lb-counter-row { display:flex; gap:1.5rem; flex-wrap:wrap; justify-content:center; margin:1.75rem 0; }
.lb-counter-item { text-align:center; flex:1; min-width:110px; }
.lb-counter-item__n { font-family:'Playfair Display',Georgia,serif; font-size:3rem; font-weight:900; color:var(--lb-teal); line-height:1; display:block; font-variant-numeric:tabular-nums; }
.lb-counter-item__suffix { font-family:'Playfair Display',Georgia,serif; font-size:2rem; font-weight:700; color:var(--lb-sage); }
.lb-counter-item__label { font-size:.72rem; font-weight:600; letter-spacing:.08em; text-transform:uppercase; color:var(--lb-muted); margin-top:.3rem; }

/* ════════════════════════════════════
   20. IMAGE + TEXT
════════════════════════════════════ */
.lb-media-text { display:grid; gap:2.5rem; align-items:center; margin:1.75rem 0; }
.lb-media-text--img-left  { grid-template-columns:1fr 1fr; }
.lb-media-text--img-right { grid-template-columns:1fr 1fr; }
.lb-media-text--img-right .lb-media-text__img { order:2; }
.lb-media-text--img-right .lb-media-text__content { order:1; }
.lb-media-text--wide { grid-template-columns:3fr 2fr; }
.lb-media-text__img { border-radius:16px; overflow:hidden; box-shadow:var(--lb-sh-lg); }
.lb-media-text__img img { width:100%; height:100%; object-fit:cover; display:block; }
.lb-media-text__img-placeholder { background:linear-gradient(135deg,var(--lb-tx),var(--lb-tl)); min-height:260px; display:flex; align-items:center; justify-content:center; font-size:3.5rem; border-radius:16px; }
.lb-media-text__tag { font-size:.7rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--lb-sage); margin-bottom:.5rem; display:flex; align-items:center; gap:.4rem; }
.lb-media-text__tag::before { content:''; width:16px; height:1px; background:var(--lb-sage); }
.lb-media-text__title { font-family:'Playfair Display',Georgia,serif; font-size:clamp(1.4rem,2.5vw,1.9rem); font-weight:700; color:var(--lb-text); line-height:1.2; margin:0 0 .75rem; letter-spacing:-.01em; }
.lb-media-text__body { font-size:.95rem; color:var(--lb-muted); line-height:1.85; margin:0 0 1.25rem; }
.lb-media-text__btn { display:inline-flex; align-items:center; gap:.4rem; padding:.75em 2em; background:var(--lb-teal); color:#fff; border-radius:var(--lb-btn-r,100px); font-weight:700; font-size:.85rem; text-decoration:none; transition:all .25s; }
.lb-media-text__btn:hover { background:var(--lb-tm); transform:translateY(-2px); color:#fff; }
@media(max-width:720px){ .lb-media-text--img-left,.lb-media-text--img-right,.lb-media-text--wide { grid-template-columns:1fr; } .lb-media-text--img-right .lb-media-text__img { order:0; } }

/* ════════════════════════════════════
   21. CTA SECTION
════════════════════════════════════ */
.lb-cta-section { background:linear-gradient(135deg,var(--lb-teal) 0%,var(--lb-tm) 60%,#0d6b8a 100%); border-radius:20px; padding:3.5rem 2.5rem; text-align:center; margin:1.75rem 0; position:relative; overflow:hidden; }
.lb-cta-section::before { content:''; position:absolute; top:-60px; left:-60px; width:260px; height:260px; border-radius:50%; background:rgba(255,255,255,.04); }
.lb-cta-section::after  { content:''; position:absolute; bottom:-50px; right:-50px; width:200px; height:200px; border-radius:50%; background:rgba(138,171,154,.08); }
.lb-cta-section__kicker { font-size:.7rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--lb-tl); margin-bottom:.65rem; display:flex; align-items:center; justify-content:center; gap:.5rem; position:relative; z-index:1; }
.lb-cta-section__kicker::before { content:''; width:18px; height:1px; background:var(--lb-tl); }
.lb-cta-section__title { font-family:'Playfair Display',Georgia,serif; font-size:clamp(1.65rem,3vw,2.4rem); font-weight:700; color:#fff; line-height:1.15; margin:0 0 .75rem; position:relative; z-index:1; }
.lb-cta-section__sub { font-size:.97rem; color:rgba(255,255,255,.6); max-width:480px; margin:0 auto 1.75rem; line-height:1.8; position:relative; z-index:1; }
.lb-cta-section__btns { display:flex; gap:.85rem; justify-content:center; flex-wrap:wrap; position:relative; z-index:1; }
.lb-cta-section__btn { display:inline-flex; align-items:center; padding:.8em 2.25em; border-radius:var(--lb-btn-r,100px); font-weight:700; font-size:.88rem; text-decoration:none; transition:all .25s; }
.lb-cta-section__btn--primary { background:#fff; color:var(--lb-teal); }
.lb-cta-section__btn--primary:hover { transform:translateY(-2px); box-shadow:0 12px 30px rgba(0,0,0,.2); color:var(--lb-teal); }
.lb-cta-section__btn--outline { background:transparent; color:#fff; border:2px solid rgba(255,255,255,.4); }
.lb-cta-section__btn--outline:hover { background:rgba(255,255,255,.12); border-color:rgba(255,255,255,.7); color:#fff; }

/* ════════════════════════════════════
   22. DIVIDER
════════════════════════════════════ */
.lb-divider { margin:2rem 0; overflow:hidden; line-height:0; }
.lb-divider svg { display:block; width:100%; }
.lb-divider--line { display:flex; align-items:center; gap:1rem; margin:2rem 0; overflow:visible; }
.lb-divider--line::before,.lb-divider--line::after { content:''; flex:1; height:1px; background:var(--lb-border); }
.lb-divider--line span { font-size:.7rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--lb-soft); white-space:nowrap; }

/* ════════════════════════════════════
   23. BADGE / TAG
════════════════════════════════════ */
.lb-badge-group { display:flex; flex-wrap:wrap; gap:.4rem; margin:.5rem 0; }
.lb-badge { display:inline-flex; align-items:center; gap:.3rem; font-size:.72rem; font-weight:700; letter-spacing:.06em; padding:.3em .85em; border-radius:100px; line-height:1; }
.lb-badge--teal   { background:var(--lb-teal); color:#fff; }
.lb-badge--sage   { background:var(--lb-sage-lt); color:var(--lb-sage); border:1px solid var(--lb-sage); }
.lb-badge--cream  { background:var(--lb-tx); color:var(--lb-teal); border:1px solid var(--lb-tl); }
.lb-badge--dark   { background:var(--lb-text); color:#fff; }
.lb-badge--green  { background:#dcfce7; color:#16a34a; border:1px solid #bbf7d0; }
.lb-badge--red    { background:#fee2e2; color:#dc2626; border:1px solid #fecaca; }
.lb-badge--yellow { background:#fef3c7; color:#d97706; border:1px solid #fde68a; }
.lb-badge--outline { background:transparent; color:var(--lb-teal); border:1.5px solid var(--lb-teal); }

/* ════════════════════════════════════
   24. AUTHOR CARD
════════════════════════════════════ */
.lb-author-card { background:linear-gradient(135deg,var(--lb-tx),var(--lb-white)); border:1px solid var(--lb-border); border-radius:20px; padding:1.75rem; display:flex; gap:1.25rem; align-items:flex-start; margin:1.75rem 0; box-shadow:var(--lb-sh); transition:transform .3s,box-shadow .3s; }
.lb-author-card:hover { transform:translateY(-3px); box-shadow:var(--lb-sh-lg); }
.lb-author-card__avatar { width:72px; height:72px; border-radius:50%; object-fit:cover; border:3px solid var(--lb-white); box-shadow:0 4px 16px rgba(7,59,82,.12); flex-shrink:0; background:var(--lb-teal); display:flex; align-items:center; justify-content:center; font-size:1.75rem; }
.lb-author-card__body { flex:1; min-width:0; }
.lb-author-card__role { font-size:.6rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--lb-sage); margin-bottom:.2rem; }
.lb-author-card__name { font-family:'Playfair Display',Georgia,serif; font-size:1.1rem; font-weight:600; color:var(--lb-text); margin:0 0 .15rem; }
.lb-author-card__title { font-size:.76rem; color:var(--lb-muted); margin-bottom:.55rem; }
.lb-author-card__bio { font-size:.86rem; color:var(--lb-text); line-height:1.78; margin:0 0 .75rem; }
.lb-author-card__socials { display:flex; gap:.35rem; flex-wrap:wrap; }
.lb-author-card__social { display:inline-flex; align-items:center; gap:.28rem; font-size:.7rem; font-weight:600; color:var(--lb-text); border:1.5px solid var(--lb-border); padding:.26em .7em; border-radius:100px; text-decoration:none; background:var(--lb-white); transition:all .2s; }
.lb-author-card__social:hover { border-color:var(--lb-teal); color:var(--lb-teal); background:var(--lb-tx); }
.lb-author-card__expertise { display:flex; flex-wrap:wrap; gap:.28rem; margin-top:.6rem; }
.lb-author-card__chip { font-size:.63rem; font-weight:600; color:var(--lb-text); background:var(--lb-white); border:1px solid var(--lb-border); padding:.18em .6em; border-radius:100px; }

/* ════════════════════════════════════
   ROW / SECTION LAYOUT SYSTEM
════════════════════════════════════ */
.lb-section { position:relative; overflow:hidden; }
.lb-section__inner { position:relative; z-index:1; }
.lb-columns { display:grid; width:100%; }
.lb-column  { min-width:0; }
/* Responsive stacking */
@media(max-width:900px){
  .lb-stack-tablet { grid-template-columns:1fr !important; }
}
@media(max-width:560px){
  .lb-stack-mobile,.lb-stack-tablet { grid-template-columns:1fr !important; }
}

/* ════════════════════════════════════
   ADDITIONAL FRONTEND INTERACTIONS
════════════════════════════════════ */
/* Tabs interactive */
.lb-tabs__nav { display:flex; gap:.25rem; border-bottom:2px solid var(--lb-border,#e4edef); flex-wrap:wrap; }
.lb-tabs__btn { padding:.65rem 1.25rem; border:none; background:transparent; font-family:inherit; font-size:.86rem; font-weight:500; color:var(--lb-muted,#6b7f8a); cursor:pointer; border-bottom:2px solid transparent; margin-bottom:-2px; transition:all .2s; border-radius:8px 8px 0 0; }
.lb-tabs__btn:hover { color:var(--lb-teal,#073b52); background:var(--lb-tx,#e8f4f3); }
.lb-tabs__btn.active { color:var(--lb-teal,#073b52); border-bottom-color:var(--lb-teal,#073b52); font-weight:600; background:var(--lb-tx,#e8f4f3); }
.lb-tabs__panel { display:none; padding:1.4rem; background:var(--lb-white,#fff); border:1px solid var(--lb-border,#e4edef); border-top:none; border-radius:0 0 12px 12px; animation:lb-faq-open .2s ease; }
.lb-tabs__panel.active { display:block; }

/* Countdown */
.lb-countdown-wrap { margin:1.75rem 0; }
.lb-countdown { display:flex; gap:1rem; justify-content:center; flex-wrap:wrap; }

/* Counter animate */
.lb-counter-row { margin:1.75rem 0; display:flex; gap:1.5rem; flex-wrap:wrap; justify-content:center; }
.lb-counter-item__n { display:block; }

/* Progress visible on load */
.lb-progress__fill { width:0; }

/* Divider */
.lb-divider { margin:2rem 0; overflow:hidden; line-height:0; }
.lb-divider svg { display:block; width:100%; }
.lb-divider--line { display:flex; align-items:center; gap:1rem; margin:2rem 0; }
.lb-divider--line span { font-size:.7rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--lb-soft,#9ab0bb); white-space:nowrap; }
