/* ==========================================================================
   Frontend (public site) font-size scaling. Loaded AFTER style.css.
   AUTO-GENERATED from every font-size rule in style.css:
     font-size = base-px  x  master (--ffs-all)  x  category (--ffs-<cat>)
   The multipliers are set at runtime by assets/js/frontend-fonts.js from the
   values the admin saved in Backend > সেটিংস > ফ্রন্টএন্ড ফন্ট সাইজ.
   With nothing saved every multiplier is 1 => the site looks exactly as before.
   ========================================================================== */
:root { --fb:1.25; --fmin:18px; }
:root { --ffs-all:1; --ffs-topbar:1; --ffs-header:1; --ffs-hero:1; --ffs-heading:1; --ffs-text:1; --ffs-card:1; --ffs-table:1; --ffs-form:1; --ffs-button:1; --ffs-footer:1; --ffs-popup:1; }

body { font-size: max(calc(var(--fb, 1.25) * 16.2px * var(--ffs-all) * var(--ffs-text)), calc(var(--fmin, 18px) * var(--ffs-all) * var(--ffs-text))); }
.section-head h2 { font-size: max(calc(var(--fb, 1.25) * 22.4px * var(--ffs-all) * var(--ffs-heading)), calc(var(--fmin, 18px) * var(--ffs-all) * var(--ffs-heading))); }
.section-head .more { font-size: max(calc(var(--fb, 1.25) * 14px * var(--ffs-all) * var(--ffs-heading)), calc(var(--fmin, 18px) * var(--ffs-all) * var(--ffs-heading))); }
.topbar { font-size: max(calc(var(--fb, 1.25) * 13.4px * var(--ffs-all) * var(--ffs-topbar)), calc(var(--fmin, 18px) * var(--ffs-all) * var(--ffs-topbar))); }
.topbar .update-more { font-size: max(calc(var(--fb, 1.25) * 12.3px * var(--ffs-all) * var(--ffs-topbar)), calc(var(--fmin, 18px) * var(--ffs-all) * var(--ffs-topbar))); }
.brand-text .name { font-size: max(calc(var(--fb, 1.25) * 19px * var(--ffs-all) * var(--ffs-header)), calc(var(--fmin, 18px) * var(--ffs-all) * var(--ffs-header))); }
.brand-text .tag { font-size: max(calc(var(--fb, 1.25) * 11.8px * var(--ffs-all) * var(--ffs-header)), calc(var(--fmin, 18px) * var(--ffs-all) * var(--ffs-header))); }
nav.mainnav a.nav-link, nav.mainnav button.nav-link { font-size: max(calc(var(--fb, 1.25) * 15.1px * var(--ffs-all) * var(--ffs-header)), calc(var(--fmin, 18px) * var(--ffs-all) * var(--ffs-header))); }
.dropdown a { font-size: max(calc(var(--fb, 1.25) * 14.6px * var(--ffs-all) * var(--ffs-header)), calc(var(--fmin, 18px) * var(--ffs-all) * var(--ffs-header))); }
.btn { font-size: max(calc(var(--fb, 1.25) * 14.6px * var(--ffs-all) * var(--ffs-button)), calc(var(--fmin, 18px) * var(--ffs-all) * var(--ffs-button))); }
.btn-sm { font-size: max(calc(var(--fb, 1.25) * 13.4px * var(--ffs-all) * var(--ffs-button)), calc(var(--fmin, 18px) * var(--ffs-all) * var(--ffs-button))); }
.hero-badge { font-size: max(calc(var(--fb, 1.25) * 12.9px * var(--ffs-all) * var(--ffs-hero)), calc(var(--fmin, 18px) * var(--ffs-all) * var(--ffs-hero))); }
.hero h1 { font-size: max(calc(var(--fb, 1.25) * 33.6px * var(--ffs-all) * var(--ffs-hero)), calc(var(--fmin, 18px) * var(--ffs-all) * var(--ffs-hero))); }
.hero p { font-size: max(calc(var(--fb, 1.25) * 15.7px * var(--ffs-all) * var(--ffs-hero)), calc(var(--fmin, 18px) * var(--ffs-all) * var(--ffs-hero))); }
.hero-stats div b { font-size: max(calc(var(--fb, 1.25) * 22.4px * var(--ffs-all) * var(--ffs-hero)), calc(var(--fmin, 18px) * var(--ffs-all) * var(--ffs-hero))); }
.hero-stats div span { font-size: max(calc(var(--fb, 1.25) * 12.3px * var(--ffs-all) * var(--ffs-hero)), calc(var(--fmin, 18px) * var(--ffs-all) * var(--ffs-hero))); }
.stat-chip b { font-size: max(calc(var(--fb, 1.25) * 24.6px * var(--ffs-all) * var(--ffs-hero)), calc(var(--fmin, 18px) * var(--ffs-all) * var(--ffs-hero))); }
.stat-chip span { font-size: max(calc(var(--fb, 1.25) * 12.9px * var(--ffs-all) * var(--ffs-hero)), calc(var(--fmin, 18px) * var(--ffs-all) * var(--ffs-hero))); }
.notice-box .head h3 { font-size: max(calc(var(--fb, 1.25) * 15.7px * var(--ffs-all) * var(--ffs-card)), calc(var(--fmin, 18px) * var(--ffs-all) * var(--ffs-card))); }
.notice-list li { font-size: max(calc(var(--fb, 1.25) * 14.3px * var(--ffs-all) * var(--ffs-card)), calc(var(--fmin, 18px) * var(--ffs-all) * var(--ffs-card))); }
.notice-list .go { font-size: max(calc(var(--fb, 1.25) * 12.3px * var(--ffs-all) * var(--ffs-card)), calc(var(--fmin, 18px) * var(--ffs-all) * var(--ffs-card))); }
.director-name { font-size: max(calc(var(--fb, 1.25) * 16.8px * var(--ffs-all) * var(--ffs-card)), calc(var(--fmin, 18px) * var(--ffs-all) * var(--ffs-card))); }
.director blockquote { font-size: max(calc(var(--fb, 1.25) * 15.2px * var(--ffs-all) * var(--ffs-card)), calc(var(--fmin, 18px) * var(--ffs-all) * var(--ffs-card))); }
.sub-two h4 { font-size: max(calc(var(--fb, 1.25) * 14.6px * var(--ffs-all) * var(--ffs-card)), calc(var(--fmin, 18px) * var(--ffs-all) * var(--ffs-card))); }
.sub-two ul li { font-size: max(calc(var(--fb, 1.25) * 14.1px * var(--ffs-all) * var(--ffs-card)), calc(var(--fmin, 18px) * var(--ffs-all) * var(--ffs-card))); }
.person-name { font-size: max(calc(var(--fb, 1.25) * 15.7px * var(--ffs-all) * var(--ffs-card)), calc(var(--fmin, 18px) * var(--ffs-all) * var(--ffs-card))); }
.person-role { font-size: max(calc(var(--fb, 1.25) * 12.9px * var(--ffs-all) * var(--ffs-card)), calc(var(--fmin, 18px) * var(--ffs-all) * var(--ffs-card))); }
.person-meta { font-size: max(calc(var(--fb, 1.25) * 12.3px * var(--ffs-all) * var(--ffs-card)), calc(var(--fmin, 18px) * var(--ffs-all) * var(--ffs-card))); }
.person-card-h .p-name { font-size: max(calc(var(--fb, 1.25) * 15.7px * var(--ffs-all) * var(--ffs-card)), calc(var(--fmin, 18px) * var(--ffs-all) * var(--ffs-card))); }
.person-card-h .p-role { font-size: max(calc(var(--fb, 1.25) * 12.9px * var(--ffs-all) * var(--ffs-card)), calc(var(--fmin, 18px) * var(--ffs-all) * var(--ffs-card))); }
.person-card-h .p-meta-line { font-size: max(calc(var(--fb, 1.25) * 12.7px * var(--ffs-all) * var(--ffs-card)), calc(var(--fmin, 18px) * var(--ffs-all) * var(--ffs-card))); }
.person-card-h .p-more { font-size: max(calc(var(--fb, 1.25) * 12.9px * var(--ffs-all) * var(--ffs-card)), calc(var(--fmin, 18px) * var(--ffs-all) * var(--ffs-card))); }
.gallery-tile .g-cap { font-size: max(calc(var(--fb, 1.25) * 14px * var(--ffs-all) * var(--ffs-card)), calc(var(--fmin, 18px) * var(--ffs-all) * var(--ffs-card))); }
.g-badge { font-size: max(calc(var(--fb, 1.25) * 11.2px * var(--ffs-all) * var(--ffs-card)), calc(var(--fmin, 18px) * var(--ffs-all) * var(--ffs-card))); }
table.data { font-size: max(calc(var(--fb, 1.25) * 14.3px * var(--ffs-all) * var(--ffs-table)), calc(var(--fmin, 18px) * var(--ffs-all) * var(--ffs-table))); }
.pill { font-size: max(calc(var(--fb, 1.25) * 12.3px * var(--ffs-all) * var(--ffs-table)), calc(var(--fmin, 18px) * var(--ffs-all) * var(--ffs-table))); }
.filters .f-item label { font-size: max(calc(var(--fb, 1.25) * 12.3px * var(--ffs-all) * var(--ffs-table)), calc(var(--fmin, 18px) * var(--ffs-all) * var(--ffs-table))); }
.blog-meta { font-size: max(calc(var(--fb, 1.25) * 12.3px * var(--ffs-all) * var(--ffs-card)), calc(var(--fmin, 18px) * var(--ffs-all) * var(--ffs-card))); }
.blog-title { font-size: max(calc(var(--fb, 1.25) * 16.2px * var(--ffs-all) * var(--ffs-card)), calc(var(--fmin, 18px) * var(--ffs-all) * var(--ffs-card))); }
.readmore { font-size: max(calc(var(--fb, 1.25) * 13.4px * var(--ffs-all) * var(--ffs-card)), calc(var(--fmin, 18px) * var(--ffs-all) * var(--ffs-card))); }
.field label { font-size: max(calc(var(--fb, 1.25) * 13.4px * var(--ffs-all) * var(--ffs-form)), calc(var(--fmin, 18px) * var(--ffs-all) * var(--ffs-form))); }
.map-fake { font-size: max(calc(var(--fb, 1.25) * 14px * var(--ffs-all) * var(--ffs-text)), calc(var(--fmin, 18px) * var(--ffs-all) * var(--ffs-text))); }
footer h4 { font-size: max(calc(var(--fb, 1.25) * 15.1px * var(--ffs-all) * var(--ffs-footer)), calc(var(--fmin, 18px) * var(--ffs-all) * var(--ffs-footer))); }
footer li { font-size: max(calc(var(--fb, 1.25) * 13.8px * var(--ffs-all) * var(--ffs-footer)), calc(var(--fmin, 18px) * var(--ffs-all) * var(--ffs-footer))); }
.foot-bottom { font-size: max(calc(var(--fb, 1.25) * 12.9px * var(--ffs-all) * var(--ffs-footer)), calc(var(--fmin, 18px) * var(--ffs-all) * var(--ffs-footer))); }
.empty { font-size: max(calc(var(--fb, 1.25) * 14.6px * var(--ffs-all) * var(--ffs-text)), calc(var(--fmin, 18px) * var(--ffs-all) * var(--ffs-text))); }
.toast { font-size: max(calc(var(--fb, 1.25) * 14.3px * var(--ffs-all) * var(--ffs-popup)), calc(var(--fmin, 18px) * var(--ffs-all) * var(--ffs-popup))); }
.admin-fab { font-size: max(calc(var(--fb, 1.25) * 14px * var(--ffs-all) * var(--ffs-popup)), calc(var(--fmin, 18px) * var(--ffs-all) * var(--ffs-popup))); }
.modal-head h3 { font-size: max(calc(var(--fb, 1.25) * 16.8px * var(--ffs-all) * var(--ffs-popup)), calc(var(--fmin, 18px) * var(--ffs-all) * var(--ffs-popup))); }
.modal-close { font-size: max(calc(var(--fb, 1.25) * 20.2px * var(--ffs-all) * var(--ffs-popup)), calc(var(--fmin, 18px) * var(--ffs-all) * var(--ffs-popup))); }
.modal.confirm .modal-body { font-size: max(calc(var(--fb, 1.25) * 15.1px * var(--ffs-all) * var(--ffs-popup)), calc(var(--fmin, 18px) * var(--ffs-all) * var(--ffs-popup))); }
.admin-side button { font-size: max(calc(var(--fb, 1.25) * 14.3px * var(--ffs-all) * var(--ffs-popup)), calc(var(--fmin, 18px) * var(--ffs-all) * var(--ffs-popup))); }
@media (max-width: 760px) {
  .topbar { font-size: max(calc(var(--fb, 1.25) * 11.8px * var(--ffs-all) * var(--ffs-topbar)), calc(var(--fmin, 18px) * var(--ffs-all) * var(--ffs-topbar))); }
}

/* form controls (inputs inherit body size otherwise) follow the "form" category */
.field input, .field select, .field textarea { font-size: max(calc(var(--fb, 1.25) * 16.2px * var(--ffs-all) * var(--ffs-form)), calc(var(--fmin, 18px) * var(--ffs-all) * var(--ffs-form))); }

/* the phone topbar codes row uses a viewport-based size; keep it scalable too */
@media (max-width: 760px) {
  .topbar .codes { font-size: max(calc(var(--fb, 1.25) * clamp(7.5px, 2.3vw, 10px) * var(--ffs-all) * var(--ffs-topbar)), calc(13px * var(--ffs-all) * var(--ffs-topbar))); }
}

/* header height changes with font size (measured by frontend-fonts.js) so the mobile menu still starts under it */
@media (max-width: 1080px) {
  nav.mainnav { top: var(--header-h, 60px); }
}
