/* এআই বন্ধু — shared stylesheet
   Dignified-warmth design system: warm paper background, one teal accent,
   terracotta reserved only for prompt boxes / important callouts.

   Layout model
   ------------
   <700px      single column, comfortable reading measure (primary device)
   700–1099px  wider measure, two-up card grids
   1100px+     day pages become [sidebar | main], hub bands go full width
   1320px+     day pages become [sidebar | main | rail]
   Prose never stretches past ~840px; the furniture fills the screen. */

/* ---------- tokens ---------- */
:root{
  /* Soluva Labs family palette (2026-11-15). Variable names kept from the original theme. */
  --bg:#F6F7FB;
  --ink:#10131D;
  --ink-soft:#4A5068;
  --teal:#6D28D9;          /* primary accent: Soluva violet, AA on white (7.1:1) */
  --teal-dark:#5B21B6;
  --teal-tint:#F1ECFE;
  --terracotta:#C25E3A;    /* warnings keep a warm colour on purpose */
  --terracotta-tint:#F8EAE3;
  --border:#E3E5EF;
  --border-interactive:#8A90A6;
  --card-bg:#FFFFFF;
  --radius:16px;
  --radius-sm:12px;
  --shadow:0 1px 2px rgba(16,19,29,.05), 0 8px 24px -14px rgba(109,40,217,.22);
  --max-w:680px;      /* reading measure — widens at 700px */
  --shell:1400px;     /* outer page container on large screens */
  --gutter:1.1rem;
  --night:#07080D;    /* Soluva dark bands: header, home hero, footer */
  --night-text:#EEF0F7;
  --night-muted:#9AA0B4;
  --grad:linear-gradient(110deg,#A78BFA 0%,#22D3EE 55%,#A3E635 100%);
}

html{ font-size:18px; -webkit-text-size-adjust:100%; }
html.fs-1{ font-size:20px; }
html.fs-2{ font-size:22px; }

*,*::before,*::after{ box-sizing:border-box; }

/* restore native [hidden] behaviour — without this, any element that also
   carries its own `display` declaration (e.g. .btn-primary) ignores the
   hidden attribute entirely, because an author-stylesheet rule always wins
   over the user-agent stylesheet's [hidden]{display:none}, even at equal
   specificity. Elements toggled via el.hidden must actually disappear. */
[hidden]{ display:none !important; }

body{
  margin:0;
  font-family:"Noto Sans Bengali","Kalpurush","SolaimanLipi","Nirmala UI",system-ui,sans-serif;
  background:var(--bg);
  color:var(--ink);
  line-height:1.85;
  font-size:1rem;
  overflow-wrap:break-word;
}

img,svg{ max-width:100%; display:block; }

a{ color:var(--teal-dark); text-decoration-thickness:1.5px; text-underline-offset:3px; }
a:hover{ color:var(--teal); }
a:focus-visible, button:focus-visible, summary:focus-visible, input:focus-visible{
  outline:3px solid var(--teal);
  outline-offset:2px;
}

h1,h2,h3{ line-height:1.35; font-weight:700; color:var(--ink); margin:0 0 .75em; }
h1{ font-size:1.55rem; }
h2{ font-size:1.2rem; }
h3{ font-size:1.02rem; }
p{ margin:0 0 1em; }
ul,ol{ margin:0 0 1em; padding-inline-start:1.3em; }
li{ margin-bottom:.5em; }

.sr-only{
  position:absolute; width:1px; height:1px; padding:0; margin:-1px;
  overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0;
}

.skip-link{
  position:absolute; left:-9999px; top:0; background:var(--teal); color:#fff;
  padding:.75rem 1rem; border-radius:0 0 8px 0; z-index:100;
}
.skip-link:focus{ left:0; }

/* ---------- header ---------- */
.site-header{
  background:var(--bg);
  border-bottom:1px solid var(--border);
}
.header-row{
  max-width:var(--max-w); margin:0 auto; padding:1rem var(--gutter) .8rem;
  display:flex; align-items:center; justify-content:space-between; gap:.75rem;
}
.brand{
  font-size:1.15rem; font-weight:700; color:var(--ink); text-decoration:none;
  letter-spacing:.01em;
}
.brand:hover{ color:var(--teal-dark); }

.font-ctrl{
  display:flex; gap:.4rem; flex-shrink:0;
}
.font-ctrl button{
  min-width:48px; min-height:48px;
  border:1px solid var(--border); background:#fff; color:var(--ink);
  border-radius:var(--radius-sm); font-size:1rem; font-weight:700;
  cursor:pointer; line-height:1;
}
.font-ctrl button:hover{ border-color:var(--teal); color:var(--teal-dark); }

/* ---------- day-page progress indicator (slim bar + label + week) ---------- */
.trail-label{ font-size:.82rem; color:var(--ink-soft); margin:0 0 .3rem; } /* reused by index.html */

.day-progress{ margin:0 0 .3rem; }
.day-week{
  font-size:.82rem; color:var(--ink-soft); font-weight:600; margin:0 0 .55rem;
}
.day-progress-bar{
  height:6px; border-radius:999px; background:#EFE8DC; border:1px solid var(--border);
  overflow:hidden; margin:0 0 1rem; max-width:220px;
}
.day-progress-fill{ display:block; height:100%; width:0; background:var(--teal); border-radius:999px; }

/* ---------- "this week" sidebar list (desktop day pages only) ---------- */
.week-nav{ display:none; }
.week-nav .day-cards{ grid-template-columns:1fr; gap:.4rem; margin:0 0 .9rem; }
.week-all-link{
  display:inline-flex; align-items:center; min-height:44px;
  font-size:.82rem; font-weight:700; color:var(--teal-dark); text-decoration:none;
}
.week-all-link:hover{ color:var(--teal); }

/* ---------- Day 1: "যে শব্দগুলো শুনবেন" terms box ---------- */
.terms-box{
  background:var(--teal-tint); border:1px solid #cfe4e2; border-radius:var(--radius);
  padding:1.2rem 1.3rem 1.3rem; margin:0 0 1.75rem;
}
.terms-box h2{ color:var(--teal-dark); font-size:1.05rem; margin:0 0 .5rem; }
.terms-intro{ color:var(--ink-soft); font-size:.9rem; margin:0 0 1.1rem; }
.terms-list{ margin:0 0 1.1rem; display:grid; gap:.65rem; }
.terms-item{ display:flex; flex-wrap:wrap; gap:.15rem .5rem; align-items:baseline; margin:0; }
.terms-item dt{ font-weight:700; color:var(--ink); flex:0 0 auto; }
.terms-item dd{ margin:0; color:var(--ink-soft); font-size:.92rem; flex:1 1 220px; }
.terms-more{
  display:inline-flex; align-items:center; min-height:48px;
  font-weight:700; color:var(--teal-dark); text-decoration:none;
}
.terms-more:hover{ color:var(--teal); }
@media (min-width:700px){ .terms-list{ grid-template-columns:repeat(2,1fr); gap:.65rem 1.3rem; } }

/* ---------- main layout blocks ---------- */
main{ max-width:var(--max-w); margin:0 auto; padding:1.5rem var(--gutter) 1rem; }

.day-label{
  color:var(--teal-dark); font-weight:700; font-size:.85rem;
  letter-spacing:.04em; margin:0 0 .4rem;
}

.hero-art{ margin:1rem 0 1.75rem; }
.hero-art svg{ width:100%; height:auto; }

.card{
  background:var(--card-bg);
  border:1px solid var(--border);
  border-radius:var(--radius);
  box-shadow:var(--shadow);
  padding:1.3rem 1.3rem 1.4rem;
  margin:0 0 1.5rem;
}

.time-chip{
  display:inline-block; font-size:.72em; font-weight:600; color:var(--teal-dark);
  background:var(--teal-tint); border-radius:999px; padding:.15em .7em;
  vertical-align:middle; margin-inline-start:.5em;
}

/* reflective reveal */
details.reveal{
  background:var(--teal-tint);
  border:1px solid #cfe4e2;
  border-radius:var(--radius-sm);
  padding:.9rem 1rem;
  margin:0 0 1.3rem;
}
details.reveal summary{
  cursor:pointer; font-weight:700; color:var(--teal-dark);
  list-style:none; display:flex; align-items:flex-start; gap:.5rem;
  min-height:48px; padding:.5rem 0;
}
details.reveal summary::-webkit-details-marker{ display:none; }
details.reveal summary::before{
  content:"+"; display:inline-flex; align-items:center; justify-content:center;
  width:22px; height:22px; border-radius:50%; background:#fff; border:1.5px solid var(--teal);
  color:var(--teal-dark); font-size:1rem; flex-shrink:0; margin-top:.15rem;
}
details.reveal[open] summary::before{ content:"\2212"; }
.reveal-hint{ font-weight:400; color:var(--ink-soft); font-size:.85em; }
.reveal-answer{ margin:.8rem 0 0; padding-top:.8rem; border-top:1px dashed #cfe4e2; }

/* blockquote / prompt box */
.prompt-box{
  margin:1rem 0 1.3rem;
  border:1px solid #e9c9b6;
  background:var(--terracotta-tint);
  border-radius:var(--radius-sm);
  padding:1rem 1rem .9rem;
}
.prompt-box blockquote{
  margin:0 0 .8rem; padding:0 0 0 .8rem;
  border-left:3px solid var(--terracotta);
  color:var(--ink); font-style:normal;
}
.prompt-box blockquote p{ margin:0; }
.prompt-hint{ margin:0 0 .75rem; font-size:.85rem; color:var(--ink-soft); }
.copy-btn{
  display:inline-flex; align-items:center; gap:.45rem;
  min-height:48px; padding:.5rem 1rem;
  background:#fff; border:1.5px solid var(--terracotta); color:#9a4a2c;
  border-radius:999px; font-weight:700; font-size:.92rem;
  font-family:inherit; cursor:pointer;
}
.copy-btn:hover{ background:#9a4a2c; border-color:#9a4a2c; color:#fff; }
.copy-btn .icon{ width:18px; height:18px; flex-shrink:0; }
.copy-btn.is-copied{ background:var(--teal); border-color:var(--teal); color:#fff; }
.copy-note{ margin:.6rem 0 0; font-size:.85rem; color:var(--ink-soft); }

/* step checklist */
.step-list{ list-style:none; margin:0; padding:0; }
.step{ margin:0 0 1.1rem; }
.step-row{ display:flex; align-items:flex-start; gap:.7rem; }
.step-check{
  flex-shrink:0; appearance:none; -webkit-appearance:none;
  width:26px; height:26px; margin-top:.15rem;
  border:2px solid var(--border-interactive); border-radius:7px; background:#fff;
  cursor:pointer; position:relative;
  min-width:26px;
}
.step-check:checked{ background:var(--teal); border-color:var(--teal); }
.step-check:checked::after{
  content:""; position:absolute; left:6px; top:2px;
  width:8px; height:13px; border:solid #fff; border-width:0 2.5px 2.5px 0;
  transform:rotate(40deg);
}
.step-label{ cursor:pointer; display:flex; gap:.55rem; min-height:48px; align-items:flex-start; padding-top:.1rem; }
.step-num{
  flex-shrink:0; color:var(--teal-dark); font-weight:700; font-variant-numeric:tabular-nums;
}
.step-text{ flex:1; }
.step-check:checked ~ .step-label .step-text,
.step-row:has(.step-check:checked) .step-text{
  color:var(--ink-soft);
}
strong{ color:var(--ink); }

/* together activity card */
.together-card{
  border-color:#cfe4e2; border-left:4px solid var(--teal);
  background:linear-gradient(180deg,var(--teal-tint) 0%, var(--card-bg) 50%);
}
.together-card .together-icon{ margin-bottom:.6rem; }
.together-icon svg{ width:72px; height:44px; }
.together-subline{ font-size:.85rem; color:var(--ink-soft); margin:-.4rem 0 1.1rem; font-weight:500; }
.together-step-row{ margin-top:1rem; padding-top:.9rem; border-top:1px dashed var(--border); }

/* key point card */
.key-point{ background:var(--teal-tint); border-color:#cfe4e2; }
.key-point h2{ color:var(--teal-dark); }

/* caution / warning card (সতর্কতা) */
.caution-card{
  border-color:#e9c9b6; border-inline-start:4px solid var(--terracotta);
  background:linear-gradient(180deg,var(--terracotta-tint) 0%, var(--card-bg) 55%);
}
.caution-card h2{
  color:#9a4a2c; display:flex; align-items:center; gap:.5rem; margin-bottom:.9rem;
}
.caution-card h2 .icon{ width:22px; height:22px; flex-shrink:0; color:var(--terracotta); }
.caution-card ul,.caution-card ol{ margin:0; padding-inline-start:1.3em; }
.caution-card li{ margin-bottom:.6rem; }
.caution-card li:last-child{ margin-bottom:0; }

/* quiz */
.quiz-card h2{ margin-bottom:.3rem; }
.quiz-intro{ color:var(--ink-soft); font-size:.92rem; margin-top:0; }
.quiz-q{ margin:1.4rem 0; padding-top:1.1rem; border-top:1px solid var(--border); }
.quiz-q:first-of-type{ border-top:none; padding-top:.2rem; }
.quiz-question{ font-weight:700; margin-bottom:.8rem; }
.quiz-options{ display:flex; flex-direction:column; gap:.6rem; }
.quiz-options button{
  text-align:start; font-family:inherit; font-size:1rem; line-height:1.6;
  min-height:48px; padding:.65rem 1rem;
  border:1.5px solid var(--border-interactive); background:#fff; color:var(--ink);
  border-radius:var(--radius-sm); cursor:pointer;
}
.quiz-options button:hover{ border-color:var(--teal); }
.quiz-options button.is-right{ border-color:var(--teal); background:var(--teal-tint); font-weight:700; }
.quiz-options button.is-wrong{ border-color:#cbb9ad; background:#f3ece4; }
.quiz-feedback{
  margin:.8rem 0 0; padding:.75rem .9rem; border-radius:var(--radius-sm); font-size:.95rem;
  display:flex; align-items:flex-start; gap:.55rem;
}
.quiz-feedback .icon{ width:19px; height:19px; flex-shrink:0; margin-top:.2rem; }
.quiz-feedback.is-good{ background:var(--teal-tint); color:var(--teal-dark); }
.quiz-feedback.is-nudge{ background:#F3EEE6; color:var(--ink-soft); }

/* day complete */
.day-complete-wrap{ text-align:center; margin:2rem 0; }
.btn-primary{
  display:inline-flex; align-items:center; gap:.5rem; justify-content:center;
  min-height:52px; padding:.8rem 1.8rem;
  background:var(--teal); color:#fff; border:none; border-radius:999px;
  font-family:inherit; font-size:1.05rem; font-weight:700; cursor:pointer;
}
.btn-primary:hover{ background:var(--teal-dark); }
.day-done-confirm{
  margin-top:1.2rem; padding:1.2rem; background:var(--teal-tint);
  border:1px solid #cfe4e2; border-radius:var(--radius);
}
.done-msg{ display:flex; align-items:center; justify-content:center; gap:.5rem; font-weight:700; color:var(--teal-dark); margin-bottom:1rem; }
.done-msg .icon{ width:22px; height:22px; flex-shrink:0; }
.btn-next{
  display:inline-flex; align-items:center; gap:.4rem; justify-content:center;
  min-height:52px; padding:.8rem 1.6rem; width:100%;
  background:var(--teal-dark); color:#fff; border-radius:999px; font-weight:700; text-decoration:none;
}
.btn-next:hover{ background:var(--teal); color:#fff; }

/* teaser */
.teaser-box{
  margin:1.5rem 0; padding:1.1rem 1.2rem;
  background:var(--terracotta-tint); border:1px solid #e9c9b6; border-radius:var(--radius);
}
.teaser-box p{ margin:0; }

/* day navigation */
.day-nav{
  max-width:var(--max-w); margin:0 auto; padding:0 var(--gutter) 2.5rem;
  display:flex; justify-content:space-between; gap:1rem;
}
.nav-prev a,.nav-next a{
  display:inline-flex; align-items:center; gap:.4rem; min-height:48px;
  padding:.7rem 1.1rem; border:1.5px solid var(--border-interactive); border-radius:999px;
  text-decoration:none; font-weight:600; color:var(--ink);
}
.nav-prev a:hover,.nav-next a:hover{ border-color:var(--teal); color:var(--teal-dark); }
.nav-prev.disabled,.nav-next.disabled{ visibility:hidden; }
.icon{ width:16px; height:16px; }

/* ============================================================
   DAY PAGE SHELL — sidebar / main / rail
   ============================================================ */
.page-grid{ display:block; }
.day-side,.day-rail{ display:block; }

/* phone + tablet: the aside blocks are just flow content */
.day-rail{ max-width:var(--max-w); margin:0 auto; padding:0 var(--gutter); }
.day-rail .day-nav{ padding-left:0; padding-right:0; max-width:none; }
.side-jump{ display:none; }
.day-side .font-ctrl{ display:none; }

@media (min-width:1100px){
  .page-grid{
    display:grid;
    grid-template-columns:minmax(190px,230px) minmax(0,1fr);
    grid-template-areas:"side main" "side rail";
    align-items:start;
    column-gap:1.9rem;
    max-width:var(--shell);
    margin:0 auto;
    padding:0 1.5rem;
  }
  .day-side{
    grid-area:side; align-self:start;
    position:sticky; top:.6rem;
    max-height:calc(100vh - 1.2rem);
    overflow-y:auto; scrollbar-width:thin;
    padding:1.5rem .35rem 1.5rem 0;
  }
  .page-grid > main{
    grid-area:main; max-width:840px; margin:0; padding:1.6rem 0 1rem;
  }
  .day-rail{
    grid-area:rail; max-width:840px; margin:0; padding:0 0 1rem;
  }
  /* one font control in the DOM at a time */
  .day-page .header-row .font-ctrl{ display:none; }
  .day-side .font-ctrl{ display:flex; justify-content:flex-start; }
  .side-jump{ display:block; }

  /* the current-week day list only has room to make sense once the sidebar
     is a true side column — on phone/tablet it stays hidden (minimal). */
  .week-nav{ display:block; margin:0 0 1.3rem; }
  .day-side .day-card{ min-height:48px; font-size:.78rem; padding:.5rem .6rem; }
}

@media (min-width:1320px){
  .page-grid{
    grid-template-columns:minmax(190px,.9fr) minmax(0,3.2fr) minmax(240px,1.2fr);
    grid-template-areas:"side main rail";
  }
  .day-rail{ max-width:none; padding-top:1.6rem; }
  .day-rail .share-text{ font-size:1rem; }
  .day-rail .share-card{ padding:1.4rem 1.1rem 1.1rem; }
  .day-rail .day-nav{ flex-direction:column; gap:.6rem; padding-bottom:1.5rem; }
  .day-rail .nav-prev,.day-rail .nav-next{ width:100%; }
  .day-rail .nav-prev a,.day-rail .nav-next a{ width:100%; justify-content:center; }
  .day-rail .share-wrap{ margin-top:0; }
}

/* sidebar jump links */
.side-jump{ border-top:1px solid var(--border); padding-top:.9rem; margin-top:.2rem; }
.side-jump-title{ font-size:.78rem; color:var(--ink-soft); font-weight:700; margin:0 0 .4rem; letter-spacing:.03em; }
.side-jump ul{ list-style:none; margin:0 0 .9rem; padding:0; }
.side-jump li{ margin:0; }
.side-jump a{
  display:block; padding:.42rem .55rem; border-radius:6px;
  font-size:.82rem; font-weight:600; color:var(--ink-soft); text-decoration:none;
  border-inline-start:2px solid var(--border);
}
.side-jump a:hover{ background:var(--teal-tint); color:var(--teal-dark); border-inline-start-color:var(--teal); }
.side-jump a[aria-current="page"]{ background:var(--teal-tint); color:var(--teal-dark); border-inline-start-color:var(--teal); font-weight:700; }
.side-home{
  display:none; align-items:center; gap:.35rem; font-size:.8rem;
  font-weight:600; margin:0 0 .8rem; text-decoration:none;
}
.side-home .icon{ width:14px; height:14px; }
@media (min-width:1100px){ .side-home{ display:inline-flex; } }

/* ---------- index-only (legacy landing pieces, still used by 404) ---------- */
.landing-hero{ text-align:center; margin:.5rem 0 1.5rem; }
.headline{ font-size:1.6rem; margin:1.1rem 0 .6rem; }
.subheadline{ color:var(--ink-soft); font-size:1.02rem; margin:0 0 1.3rem; }
.cta-button{
  display:inline-flex; align-items:center; gap:.5rem;
  min-height:52px; padding:.85rem 2rem;
  background:var(--teal); color:#fff; border-radius:999px;
  text-decoration:none; font-weight:700; font-size:1.05rem;
}
.cta-button:hover{ background:var(--teal-dark); color:#fff; }
.cta-secondary{
  background:transparent; color:var(--teal-dark);
  border:1.5px solid var(--teal);
}
.cta-secondary:hover{ background:var(--teal-tint); color:var(--teal-dark); }

.benefit-list{ list-style:none; margin:1.6rem 0; padding:0; display:flex; flex-direction:column; gap:.9rem; }
.benefit-list li{
  display:flex; gap:.8rem; align-items:flex-start; margin:0;
  background:var(--card-bg); border:1px solid var(--border); border-radius:var(--radius);
  padding:.9rem 1rem; box-shadow:var(--shadow);
}
.benefit-list .icon{ width:24px; height:24px; color:var(--teal); flex-shrink:0; margin-top:.1rem; }

.day-structure{ display:grid; grid-template-columns:1fr 1fr; gap:.7rem; margin:1.2rem 0 0; }
.day-structure .chip{
  display:flex; flex-direction:column; gap:.4rem; align-items:flex-start;
  background:var(--teal-tint); border:1px solid #cfe4e2; border-radius:var(--radius-sm);
  padding:.8rem .9rem; font-size:.85rem; color:var(--ink);
}
.day-structure .icon{ width:20px; height:20px; color:var(--teal-dark); }

.faq{ margin:2.2rem 0; }
.faq details{
  border:1px solid var(--border); border-radius:var(--radius-sm);
  background:#fff; margin-bottom:.7rem; padding:.2rem .2rem;
}
.faq summary{
  cursor:pointer; list-style:none; font-weight:700; padding:.8rem .9rem;
  min-height:48px; display:flex; align-items:center; justify-content:space-between; gap:.6rem;
}
.faq summary::-webkit-details-marker{ display:none; }
.faq summary::after{ content:"\2304"; font-size:1.1rem; color:var(--teal-dark); }
.faq details[open] summary::after{ content:"\2303"; }
.faq summary .icon{ width:20px; height:20px; color:var(--teal-dark); flex-shrink:0; }
.faq summary .faq-q-text{ flex:1; }
.faq-answer{ padding:0 .9rem 1rem; color:var(--ink-soft); margin:0; }

/* ---------- hidden icon sprite (symbols only, never rendered directly) ---------- */
.icon-defs{ position:absolute; width:0; height:0; overflow:hidden; }

/* ---------- section divider motif ---------- */
.section-divider{ width:110px; max-width:40%; margin:1.7rem auto; color:var(--border); }
.section-divider svg{ width:100%; height:auto; display:block; }

/* ---------- concept diagram (inside আজকের কথা) ---------- */
.concept-diagram{ margin:1.2rem 0 1.4rem; }
.concept-diagram svg{ width:100%; height:auto; }
.concept-diagram figcaption{ text-align:center; font-size:.85rem; color:var(--ink-soft); margin-top:.5rem; }
.diagram-labels{ display:flex; justify-content:space-around; margin:.3rem 0 0; font-size:.85rem; color:var(--ink-soft); font-weight:700; }

/* ---------- illustrated step gutter icons ---------- */
.step-icon{
  flex-shrink:0; width:30px; height:30px; margin-top:.05rem;
  display:flex; align-items:center; justify-content:center;
  background:var(--teal-tint); border-radius:50%; color:var(--teal-dark);
}
.step-icon svg{ width:17px; height:17px; }

/* ---------- shareable summary card ---------- */
.share-wrap{ margin:1.8rem 0; }
.share-card{
  position:relative; overflow:hidden; margin:0;
  background:var(--teal-dark); color:#fff; border-radius:var(--radius);
  padding:1.8rem 1.5rem 1.4rem; text-align:center; box-shadow:var(--shadow);
}
.share-motif{ position:absolute; inset:0; width:100%; height:100%; opacity:.16; }
.share-quote{ width:34px; height:20px; margin:0 auto .6rem; position:relative; }
.share-text{
  position:relative; margin:0; font-size:1.15rem; font-weight:700; line-height:1.65;
  max-width:30ch; margin-inline:auto; quotes:none;
}
.share-foot{
  position:relative; display:flex; justify-content:space-between; align-items:center;
  margin:1.2rem 0 0; padding-top:.8rem; border-top:1px solid rgba(255,255,255,.28);
  font-size:.85rem; font-weight:700; letter-spacing:.02em;
}
.share-day,.share-brand{ opacity:.92; }
.share-caption{ text-align:center; font-size:.85rem; color:var(--ink-soft); margin:.7rem 0 0; }

/* ---------- index: how it works ---------- */
.how-it-works{ display:flex; flex-direction:column; gap:1rem; margin:1.3rem 0 0; }
.how-step{ flex:1; text-align:center; }
.how-step-icon{
  width:52px; height:52px; margin:0 auto .5rem; border-radius:50%;
  background:var(--teal-tint); display:flex; align-items:center; justify-content:center; color:var(--teal-dark);
}
.how-step-icon svg{ width:26px; height:26px; }
.how-step-num{ font-weight:700; color:var(--teal-dark); font-size:.8rem; display:block; margin-bottom:.2rem; }
.how-step p{ font-size:.92rem; margin:0; font-weight:600; }
.how-arrow{ display:none; }
@media (min-width:560px){
  .how-it-works{ flex-direction:row; align-items:flex-start; }
  .how-arrow{ display:flex; align-items:center; justify-content:center; color:var(--border); flex:0 0 auto; padding-top:16px; }
}

/* ---------- index: audience grid ---------- */
.audience-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:.7rem; margin:1.3rem 0 0; }
.audience-item{
  display:flex; flex-direction:column; align-items:center; gap:.4rem; text-align:center;
  background:var(--card-bg); border:1px solid var(--border); border-radius:var(--radius-sm);
  padding:.9rem .5rem; box-shadow:var(--shadow);
}
.audience-item svg{ width:30px; height:30px; }
.audience-item span{ font-size:.82rem; font-weight:600; color:var(--ink); }

/* ============================================================
   HUB (index.html) — full-width bands
   ============================================================ */
main.hub{ max-width:none; margin:0; padding:0; }

/* generous vertical rhythm — the landing page earns its calm from the space
   between ideas, not from boxes around them */
.band{ padding:3.4rem 0; }
.band-inner{ max-width:var(--shell); margin:0 auto; padding:0 var(--gutter); }
.band--tint{ background:var(--teal-tint); }
.band--paper{ background:#fff; border-top:1px solid var(--border); border-bottom:1px solid var(--border); }
.band.faq{ margin:0; }

.band-head{ margin:0 0 1.2rem; }
.band-head h2{ margin:0 0 .35rem; font-size:1.3rem; }
.band-lede{ color:var(--ink-soft); margin:0; max-width:62ch; }

/* hero band */
.hero-band{
  background:linear-gradient(180deg,#EEF0F7 0%, var(--bg) 100%);
  border-bottom:1px solid var(--border);
  padding:2rem 0 3rem;
}
.hero-grid{ display:grid; gap:1.2rem; align-items:center; }
.hero-copy{ text-align:center; }
.hero-eyebrow{
  display:inline-block; font-size:.76rem; font-weight:700; letter-spacing:.06em;
  color:var(--teal-dark); background:var(--teal-tint); border:1px solid #cfe4e2;
  border-radius:999px; padding:.2rem .85rem; margin:0 0 .8rem;
}
.hero-copy .headline{ font-size:1.65rem; margin:0 0 .6rem; }
.hero-copy .subheadline{ margin:0 0 1.3rem; }
.hero-actions{ display:flex; flex-wrap:wrap; gap:.7rem; justify-content:center; }
.hero-note{ margin:1.1rem 0 0; font-size:.9rem; color:var(--ink-soft); }
.hero-figure{ margin:0; }
.hero-figure svg{ width:100%; max-width:380px; height:auto; margin:0 auto; }

@media (min-width:860px){
  .hero-band{ padding:3.2rem 0 4.2rem; }
  .hero-grid{ grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr); gap:2.4rem; }
  .hero-copy{ text-align:start; }
  .hero-copy .headline{ font-size:2.05rem; }
  .hero-copy .subheadline{ font-size:1.08rem; max-width:34ch; }
  .hero-actions{ justify-content:flex-start; }
  .hero-figure svg{ max-width:440px; }
}

/* index: the quiet "why" — a slim era sequence, then two sentences.
   The full four-era telling lives on course.html. */
.why-inner > h2{ font-size:1.35rem; margin:0 0 .45rem; }
.why-inner > p{ max-width:62ch; }
.why-inner > p:last-child{ margin-bottom:0; }
.era-line{
  display:flex; flex-wrap:wrap; align-items:center; gap:.6rem 1rem;
  list-style:none; margin:1.7rem 0 1.9rem; padding:0;
}
.era-line li{
  display:flex; align-items:center; gap:.5rem; margin:0;
  font-size:.92rem; font-weight:600; color:var(--ink-soft);
}
.era-line li + li::before{
  content:""; flex:0 0 auto; width:20px; height:1px;
  background:var(--border); margin-inline-end:.4rem;
}
.era-line svg{ width:26px; height:26px; opacity:.7; }
.era-line .is-now{ color:var(--teal-dark); }
.era-line .is-now svg{ opacity:1; }
.era-now{
  font-size:.7rem; font-weight:700; letter-spacing:.05em;
  background:var(--teal-tint); border:1px solid #cfe4e2; border-radius:999px;
  padding:.1rem .6rem;
}

/* index: trust — plain text on the page, one hairline above it */
.trust-band{ border-top:1px solid var(--border); }
.trust-inner > h2{ font-size:1.2rem; margin:0 0 .5rem; }
.trust-inner > p{ margin:0; max-width:72ch; color:var(--ink-soft); }

/* module grid */
.module-grid{
  display:grid; grid-template-columns:minmax(0,1fr); gap:.9rem;
  list-style:none; margin:1.3rem 0 0; padding:0;
}
.module-grid li{ margin:0; display:flex; }
.module-card{
  display:flex; flex-direction:column; gap:.5rem; width:100%;
  background:var(--card-bg); border:1px solid var(--border); border-radius:var(--radius);
  box-shadow:var(--shadow); padding:1.1rem 1.1rem 1.2rem;
  text-decoration:none; color:var(--ink);
}
.module-card:hover{ border-color:var(--teal); color:var(--ink); box-shadow:0 2px 10px rgba(15,110,110,.1); }
.module-ic{
  width:46px; height:46px; border-radius:12px; flex-shrink:0;
  background:var(--teal-tint); color:var(--teal-dark);
  display:flex; align-items:center; justify-content:center;
}
.module-ic svg{ width:26px; height:26px; }
.module-card h3{ margin:0; font-size:1.02rem; }
.module-card p{ margin:0; font-size:.88rem; color:var(--ink-soft); line-height:1.6; }
.module-go{
  margin-top:auto; padding-top:.5rem; font-size:.84rem; font-weight:700;
  color:var(--teal-dark); display:inline-flex; align-items:center; gap:.3rem;
}
.module-go .icon{ width:14px; height:14px; }
.module-card--lead{ background:var(--teal-tint); border-color:#cfe4e2; }
.module-card--lead .module-ic{ background:#fff; }
.module-tag{
  align-self:flex-start; font-size:.7rem; font-weight:700; letter-spacing:.04em;
  background:var(--terracotta-tint); color:#9a4a2c; border:1px solid #e9c9b6;
  border-radius:999px; padding:.1rem .6rem;
}
@media (min-width:700px){ .module-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (min-width:1100px){ .module-grid{ grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.1rem; } }

/* progress dashboard */
.prog-grid{ display:grid; gap:1.1rem; align-items:center; }
.prog-card{
  background:var(--card-bg); border:1px solid var(--border); border-radius:var(--radius);
  box-shadow:var(--shadow); padding:1.2rem 1.2rem 1.3rem;
}
.prog-count{ margin:0 0 .2rem; font-size:1.5rem; font-weight:700; color:var(--teal-dark); line-height:1.25; }
.prog-count .prog-total{ font-size:1rem; color:var(--ink-soft); font-weight:600; }
.prog-sub{ margin:0 0 .9rem; font-size:.88rem; color:var(--ink-soft); }
.prog-bar{
  height:14px; border-radius:999px; background:#EFE8DC; border:1px solid var(--border);
  overflow:hidden; margin:0 0 1rem;
}
.prog-fill{ display:block; height:100%; width:0; background:var(--teal); border-radius:999px; }
.prog-actions{ display:flex; flex-wrap:wrap; gap:.6rem; }
.prog-actions .cta-button{ font-size:.95rem; padding:.7rem 1.4rem; min-height:48px; }
.prog-note{ font-size:.8rem; color:var(--ink-soft); margin:.9rem 0 0; }
.prog-side{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.7rem; }
.prog-stat{
  background:var(--card-bg); border:1px solid var(--border); border-radius:var(--radius-sm);
  padding:.8rem .9rem; text-align:center;
}
.prog-stat b{ display:block; font-size:1.25rem; color:var(--teal-dark); line-height:1.3; }
.prog-stat span{ font-size:.78rem; color:var(--ink-soft); font-weight:600; }
@media (min-width:860px){
  .prog-grid{ grid-template-columns:minmax(0,1.6fr) minmax(0,1fr); gap:1.6rem; }
}

/* 30-day week grid (course.html) — one calm column of four week blocks */
.week-block{ margin:0 0 2.4rem; }
.week-block:last-child{ margin-bottom:0; }
.week-head{
  display:flex; flex-wrap:wrap; align-items:baseline; gap:.2rem .7rem;
  margin:0 0 .7rem; padding-bottom:.45rem; border-bottom:1px solid var(--border);
  font-size:.95rem;
}
.week-head .week-range{ font-weight:700; color:var(--teal-dark); }
.week-head .week-theme{ font-weight:600; color:var(--ink-soft); font-size:.88rem; }
.day-cards{
  display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.55rem;
  list-style:none; margin:0; padding:0;
}
.day-cards li{ margin:0; display:flex; }
.day-card{
  display:flex; align-items:flex-start; gap:.55rem; width:100%; min-height:56px;
  background:var(--card-bg); border:1px solid var(--border); border-radius:var(--radius-sm);
  padding:.6rem .65rem; text-decoration:none; color:var(--ink);
  font-size:.84rem; line-height:1.45;
}
.day-card:hover{ border-color:var(--teal); background:var(--teal-tint); color:var(--teal-dark); }
.dc-num{
  flex-shrink:0; width:26px; height:26px; border-radius:50%;
  border:1.5px solid var(--border-interactive); color:var(--ink-soft);
  display:inline-flex; align-items:center; justify-content:center;
  font-size:.72rem; font-weight:700; font-variant-numeric:tabular-nums;
}
.dc-title{ flex:1; font-weight:600; }
.day-card.is-done{ background:var(--teal-tint); border-color:#cfe4e2; }
.day-card.is-done .dc-num{ background:var(--teal); border-color:var(--teal); color:#fff; }
.day-card.is-done .dc-title::after{ content:" \2713"; color:var(--teal-dark); font-weight:700; }
@media (min-width:700px){ .day-cards{ grid-template-columns:repeat(3,minmax(0,1fr)); gap:.6rem; } }

/* FAQ at wide widths */
@media (min-width:1100px){
  .faq-grid{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 1.2rem; align-items:start; }
}

/* ---------- footer ---------- */
.site-footer{
  background:var(--teal-dark); color:#fff; margin-top:0;
  padding:2.2rem 0 1.6rem;
}
.site-footer a{ color:#fff; text-decoration:none; }
.site-footer a:hover{ color:#fff; text-decoration:underline; }
.footer-grid{
  display:grid; grid-template-columns:minmax(0,1fr); gap:1.4rem;
}
.foot-brand{ font-size:1.1rem; font-weight:700; margin:0 0 .4rem; }
.foot-tagline{ font-size:.88rem; color:rgba(255,255,255,.8); margin:0; max-width:34ch; }
.foot-col h2{ font-size:.82rem; letter-spacing:.06em; color:rgba(255,255,255,.7); margin:0 0 .5rem; font-weight:700; }
.foot-col ul{ list-style:none; margin:0; padding:0; }
.foot-col li{ margin:0 0 .15rem; }
.foot-col li a{ display:inline-block; padding:.35rem 0; font-size:.88rem; min-height:34px; }
.foot-trust{
  margin-top:1.8rem; padding-top:1.3rem; border-top:1px solid rgba(255,255,255,.22);
}
.foot-trust h2{ font-size:1rem; margin:0 0 .4rem; color:#fff; }
.foot-trust p{ margin:0; font-size:.88rem; color:rgba(255,255,255,.82); max-width:70ch; }
.foot-bottom{
  margin-top:1.3rem; padding-top:1rem; border-top:1px solid rgba(255,255,255,.22);
  display:flex; flex-wrap:wrap; gap:.4rem 1rem; align-items:center;
  font-size:.82rem; color:rgba(255,255,255,.78);
}
.foot-bottom a{ display:inline-flex; align-items:center; gap:.35rem; min-height:34px; }
.foot-bottom .icon{ width:16px; height:16px; }
@media (min-width:700px){
  .footer-grid{ grid-template-columns:minmax(0,1.3fr) repeat(2,minmax(0,1fr)); gap:1.6rem 2rem; }
}
@media (min-width:1100px){
  .footer-grid{ grid-template-columns:minmax(0,1.4fr) repeat(3,minmax(0,1fr)); }
}

/* slim footer used on day pages / 404 */
.site-footer--slim{ padding:1.4rem 0 1.5rem; }
.foot-trust-mini{
  font-size:.78rem; line-height:1.6; color:rgba(255,255,255,.8);
  margin:0 auto .9rem; max-width:70ch;
}
.foot-slim{
  display:flex; flex-wrap:wrap; gap:.3rem 1.1rem; align-items:center;
  font-size:.85rem; color:rgba(255,255,255,.82);
}
.foot-slim a{ min-height:40px; display:inline-flex; align-items:center; }
.foot-slim .foot-sep{ opacity:.45; }

/* ---------- responsive: tablet widening + two-up grids ---------- */
@media (min-width:700px){
  :root{ --max-w:780px; --gutter:1.6rem; }
  .quiz-options{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.6rem; }
  .audience-grid{ grid-template-columns:repeat(3,minmax(0,1fr)); gap:.9rem; }
  .day-structure{ grid-template-columns:repeat(2,minmax(0,1fr)); gap:.9rem; }
  .benefit-list{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.9rem; }
  .card{ padding:1.5rem 1.6rem 1.6rem; }
  h1{ font-size:1.75rem; }
  h2{ font-size:1.28rem; }
  /* keep the day illustrations from ballooning in a wide column */
  .hero-art svg{ max-width:520px; margin-inline:auto; }
  .concept-diagram svg{ max-width:620px; margin-inline:auto; }
}

@media (min-width:1100px){
  :root{ --max-w:840px; }
  .header-row{ max-width:var(--shell); padding-inline:1.5rem; }
  .audience-grid{ grid-template-columns:repeat(6,minmax(0,1fr)); }
  .benefit-list{ grid-template-columns:repeat(3,minmax(0,1fr)); }
  .band{ padding:4.8rem 0; }
  .band-inner{ padding:0 1.5rem; }
  .band-head h2{ font-size:1.45rem; }
}

@media (max-width:420px){
  html{ font-size:17px; }
  html.fs-1{ font-size:19px; }
  html.fs-2{ font-size:21px; }
  .day-structure{ grid-template-columns:1fr; }
  .audience-grid{ grid-template-columns:repeat(2,1fr); }
  .share-text{ font-size:1.05rem; }
  h1{ font-size:1.4rem; }
  .day-cards{ grid-template-columns:1fr; }
  .hero-copy .headline{ font-size:1.45rem; }
}

/* ============================================================
   পেশা অনুযায়ী AI pages
   ============================================================ */
.day-card[aria-current="page"]{
  background:var(--teal-tint); border-color:#cfe4e2; color:var(--teal-dark); font-weight:700;
}

@media (prefers-reduced-motion:reduce){
  *{ transition:none !important; }
}

/* ============================================================
   REFERENCE PAGES — tools.html / shobdokosh.html / prompt.html
   ============================================================ */
.crumb{ margin:0 0 .9rem; font-size:.85rem; }
.crumb a{ font-weight:600; }
.ref-intro{ max-width:70ch; }

/* prominent notice callout (honesty note / bracket-placeholder instructions) */
.notice-box{
  margin:1.2rem 0 .3rem; padding:1.1rem 1.2rem;
  background:var(--terracotta-tint); border:1px solid #e9c9b6; border-radius:var(--radius);
}
.notice-box .notice-head{ display:flex; align-items:center; gap:.55rem; margin:0 0 .5rem; }
.notice-box .notice-head svg{ width:22px; height:22px; color:#9a4a2c; flex-shrink:0; }
.notice-box .notice-head h2,.notice-box .notice-head h3{ margin:0; font-size:1.02rem; color:#9a4a2c; }
.notice-box p{ margin:0; }

/* tools.html: assistant + need cards */
.need-grid{ display:grid; grid-template-columns:minmax(0,1fr); gap:.9rem; list-style:none; margin:1.2rem 0 0; padding:0; }
.need-grid li{ margin:0; display:flex; }
.need-card{
  display:flex; flex-direction:column; gap:.5rem; width:100%;
  background:var(--card-bg); border:1px solid var(--border); border-radius:var(--radius);
  box-shadow:var(--shadow); padding:1.1rem 1.1rem 1.2rem;
}
.need-card h3{ margin:0; font-size:1.02rem; }
.need-card p{ margin:0; font-size:.9rem; color:var(--ink-soft); line-height:1.65; }
.need-card ul{ margin:.2rem 0 0; padding-inline-start:1.2em; font-size:.88rem; color:var(--ink-soft); }
.need-card ul li{ margin-bottom:.4rem; }
.need-ic{
  width:44px; height:44px; border-radius:12px; flex-shrink:0;
  background:var(--teal-tint); color:var(--teal-dark);
  display:flex; align-items:center; justify-content:center;
}
.need-ic svg{ width:24px; height:24px; }
@media (min-width:700px){ .need-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (min-width:1100px){ .need-grid{ grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.1rem; } }

/* shobdokosh.html: filter box + glossary grid */
.gloss-filter{ margin:1.2rem 0 1rem; }
.gloss-filter input{
  width:100%; min-height:48px; padding:.65rem 1.1rem;
  border:1.5px solid var(--border-interactive); border-radius:999px;
  font-family:inherit; font-size:1rem; background:#fff; color:var(--ink);
}
.gloss-filter-status{ font-size:.82rem; color:var(--ink-soft); margin:.5rem 0 0; min-height:1.3em; }
.gloss-grid{ display:grid; grid-template-columns:minmax(0,1fr); gap:.8rem; list-style:none; margin:1.1rem 0 0; padding:0; }
.gloss-grid li{ margin:0; display:flex; }
.gloss-card{
  width:100%; background:var(--card-bg); border:1px solid var(--border); border-radius:var(--radius);
  box-shadow:var(--shadow); padding:1rem 1.1rem 1.1rem;
}
.gloss-card h3{ margin:0 0 .4rem; font-size:1rem; color:var(--teal-dark); }
.gloss-card p{ margin:0; font-size:.92rem; }
@media (min-width:700px){ .gloss-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (min-width:1100px){ .gloss-grid{ grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; } }

/* prompt.html: grouped prompt grid + sticky TOC (reuses .page-grid/.day-side/.side-jump) */
.prompt-group{ margin:1.6rem 0 0; }
.prompt-group-lede{ color:var(--ink-soft); margin:0 0 1rem; max-width:70ch; }
.prompt-grid{ display:grid; grid-template-columns:minmax(0,1fr); gap:1rem; margin:0; padding:0; list-style:none; }
.prompt-grid li{ margin:0; }
@media (min-width:860px){ .prompt-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.1rem; } }
@media (min-width:1320px){
  body.prompt-page .page-grid,
  body[data-pesha] .page-grid{ grid-template-columns:minmax(190px,.9fr) minmax(0,1fr); grid-template-areas:"side main"; }
}

/* ============================================================
   course.html — ৩০ দিনের যাত্রা
   one idea per section, real space between them, cards only where earned
   ============================================================ */
.course-sec{ margin:0 0 3.4rem; }
.course-sec:last-child{ margin-bottom:1.5rem; }
.course-sec > h2{ font-size:1.3rem; margin:0 0 .5rem; }
.course-sec > h3{ font-size:1.12rem; margin:2.2rem 0 .6rem; }
.course-sec > p{ max-width:70ch; }
.sec-lede{ color:var(--ink-soft); margin:0 0 1.3rem; max-width:62ch; }

.meta-line{
  display:flex; flex-wrap:wrap; gap:.1rem .5rem; list-style:none;
  margin:0; padding:0; font-size:.88rem; font-weight:600; color:var(--ink-soft);
}
.meta-line li{ margin:0; }
.meta-line li:not(:last-child)::after{ content:"\00B7"; margin-inline-start:.5rem; opacity:.45; }

/* the four eras, told as plain text on the page — no cards */
.era-list{ display:grid; gap:1.9rem; list-style:none; margin:1.5rem 0 1.6rem; padding:0; }
.era-list li{
  margin:0; padding-inline-start:1.1rem;
  border-inline-start:2px solid var(--border);
}
.era-list li:last-child{ border-inline-start-color:var(--teal); }
.era-kicker{
  margin:0 0 .15rem; font-size:.78rem; font-weight:700; letter-spacing:.04em;
  color:var(--ink-soft);
}
.era-list h3{ margin:0 0 .3rem; font-size:1.05rem; }
.era-list p:last-child{ margin:0; max-width:70ch; color:var(--ink-soft); }
.era-note{ margin:0 0 .4rem; max-width:70ch; font-weight:600; }

.course-cta{ text-align:center; }

.shift-close{ font-weight:600; }

.start-grid{ display:grid; grid-template-columns:minmax(0,1fr); gap:1rem; margin:0; }
.start-card{
  background:var(--card-bg); border:1px solid var(--border); border-radius:var(--radius);
  box-shadow:var(--shadow); padding:1.3rem 1.25rem 1.4rem;
}
.start-card--warm{
  background:linear-gradient(180deg,var(--terracotta-tint) 0%, var(--card-bg) 60%);
  border-color:#e9c9b6; border-inline-start:4px solid var(--terracotta);
}
.start-head{ display:flex; align-items:center; gap:.7rem; margin:0 0 .85rem; }
.start-head h3{ margin:0; font-size:1.1rem; }
.start-ic{
  width:44px; height:44px; border-radius:50%; flex-shrink:0;
  background:#fff; border:1px solid var(--border); color:var(--teal-dark);
  display:flex; align-items:center; justify-content:center;
}
.start-card--warm .start-ic{ border-color:#e9c9b6; color:#9a4a2c; }
.start-ic svg{ width:25px; height:25px; }
.start-card p:last-child{ margin-bottom:0; }
.ready-list{ list-style:none; display:grid; gap:.55rem; margin:0 0 .9rem; padding:0; }
.ready-list li{ display:flex; gap:.6rem; align-items:flex-start; margin:0; font-size:.92rem; line-height:1.6; }
.ready-list svg{ width:20px; height:20px; flex-shrink:0; margin-top:.25rem; color:var(--teal); }
.ready-note{
  margin:0; font-size:.86rem; color:var(--ink-soft);
  padding-top:.85rem; border-top:1px dashed var(--border);
}
@media (min-width:700px){ .ready-list{ grid-template-columns:repeat(2,minmax(0,1fr)); gap:.6rem .9rem; } }
@media (min-width:860px){
  .start-grid{ grid-template-columns:minmax(0,1fr) minmax(0,1.15fr); gap:1.3rem; align-items:start; }
}

.app-grid{
  display:grid; grid-template-columns:minmax(0,1fr); gap:.9rem;
  list-style:none; margin:1.2rem 0 0; padding:0;
}
.app-grid li{ margin:0; display:flex; }
.app-card{
  display:flex; gap:.85rem; align-items:flex-start; width:100%;
  background:var(--card-bg); border:1px solid var(--border); border-radius:var(--radius);
  box-shadow:var(--shadow); padding:1rem 1.05rem 1.1rem;
}
.app-ic{
  width:44px; height:44px; border-radius:12px; flex-shrink:0;
  background:var(--teal-tint); color:var(--teal-dark);
  display:flex; align-items:center; justify-content:center;
}
.app-ic svg{ width:25px; height:25px; }
.app-card h4{ margin:0 0 .25rem; font-size:1rem; font-weight:700; line-height:1.4; color:var(--ink); }
.app-card p{ margin:0; font-size:.86rem; color:var(--ink-soft); line-height:1.6; }
@media (min-width:700px){ .app-grid{ grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; } }

.app-more{
  display:inline-flex; align-items:center; gap:.55rem; margin:1.2rem 0 0;
  min-height:48px; padding:.6rem 1.2rem; background:#fff;
  border:1.5px solid var(--teal); border-radius:999px;
  font-weight:700; font-size:.95rem; color:var(--teal-dark); text-decoration:none;
}
.app-more:hover{ background:var(--teal-tint); color:var(--teal-dark); }
.app-more .icon{ width:17px; height:17px; flex-shrink:0; }
.app-note{ margin-top:1.2rem; max-width:70ch; }

/* ============================================================
   index.html — "চতুর্থ বদল" narrative section (#shift)
   four-era sequence · welcome + expectations cards · app grid
   ============================================================ */
.era-row{
  display:grid; grid-template-columns:minmax(0,1fr); gap:.9rem;
  list-style:none; margin:1.4rem 0 0; padding:0;
}
.era-step{
  position:relative; display:flex; flex-direction:column; gap:.45rem; margin:0;
  background:var(--card-bg); border:1px solid var(--border); border-radius:var(--radius);
  box-shadow:var(--shadow); padding:1.15rem 1.1rem 1.25rem; overflow:hidden;
}
.era-step::before{
  content:""; position:absolute; inset:0 0 auto 0; height:4px; background:var(--border);
}
.era-step:nth-child(1)::before{ background:#D8CDBA; }
.era-step:nth-child(2)::before{ background:#B3C9C4; }
.era-step:nth-child(3)::before{ background:#4E9593; }
.era-step:nth-child(4)::before{ background:var(--teal); }
.era-step--now{ background:var(--teal-tint); border-color:#cfe4e2; }
.era-ic{
  width:48px; height:48px; border-radius:12px; flex-shrink:0;
  background:var(--teal-tint); color:var(--teal-dark);
  display:flex; align-items:center; justify-content:center; margin-bottom:.2rem;
}
.era-step--now .era-ic{ background:#fff; }
.era-ic svg{ width:28px; height:28px; }
.era-num{ font-size:.72rem; font-weight:700; letter-spacing:.05em; color:var(--ink-soft); }
.era-step--now .era-num{ color:var(--teal-dark); }
.era-step h3{ margin:0; font-size:1.02rem; }
.era-when{ margin:0; font-size:.78rem; font-weight:600; color:var(--teal-dark); }
.era-step p:last-child{ margin:0; font-size:.88rem; color:var(--ink-soft); line-height:1.65; }
.era-note{
  margin:1.2rem 0 0; max-width:70ch; font-weight:600;
}
@media (min-width:700px){ .era-row{ grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; } }
@media (min-width:1100px){ .era-row{ grid-template-columns:repeat(4,minmax(0,1fr)); gap:1rem; } }

.shift-sub{ margin:2.2rem 0 0; }
.shift-sub h3{ font-size:1.12rem; margin:0 0 .6rem; }
.shift-sub p{ max-width:70ch; }
.shift-close{ font-weight:600; }

.reach-chips{
  display:flex; flex-wrap:wrap; gap:.45rem; list-style:none; margin:1rem 0 1.1rem; padding:0;
}
.reach-chips li{
  margin:0; font-size:.85rem; font-weight:600; color:var(--teal-dark);
  background:var(--teal-tint); border:1px solid #cfe4e2; border-radius:999px;
  padding:.26rem .85rem;
}

/* ============================================================
   top navigation — grouped menu (কোর্স · মডিউল · আরও)
   native <details>/<summary>: works with JS disabled
   ============================================================ */
.header-row{ flex-wrap:wrap; }

.main-nav{
  order:3; flex-basis:100%; position:relative;
  display:flex; gap:.4rem; margin-top:.2rem;
}
.nav-item{ flex:1 1 0; min-width:0; }

.nav-item > summary{
  list-style:none; cursor:pointer;
  display:flex; align-items:center; justify-content:center; gap:.35rem;
  min-height:44px; padding:.35rem .55rem;
  font-size:.92rem; font-weight:700; color:var(--ink);
  background:var(--card-bg); border:1px solid var(--border);
  border-radius:var(--radius-sm);
}
.nav-item > summary::-webkit-details-marker{ display:none; }
.nav-item > summary::after{
  content:""; flex:none; width:.42em; height:.42em;
  border-right:2px solid var(--ink-soft); border-bottom:2px solid var(--ink-soft);
  transform:rotate(45deg); margin-top:-.22em;
}
.nav-item > summary:hover{ border-color:var(--teal); color:var(--teal-dark); }
.nav-item > summary:focus-visible{ outline:2px solid var(--teal); outline-offset:2px; }
.nav-item[open] > summary{
  background:var(--teal-tint); border-color:var(--teal); color:var(--teal-dark);
}
.nav-item[open] > summary::after{
  transform:rotate(-135deg); margin-top:.16em;
  border-color:var(--teal-dark);
}

.nav-item > ul{
  position:absolute; z-index:60; top:100%; inset-inline:0; margin:.35rem 0 0;
  list-style:none; padding:.3rem;
  background:var(--card-bg); border:1px solid var(--border);
  border-radius:var(--radius); box-shadow:var(--shadow);
}
.nav-item > ul li{ margin:0; }
.nav-item > ul a{
  display:flex; align-items:center; min-height:44px;
  padding:.5rem .7rem; border-radius:var(--radius-sm);
  font-size:.92rem; line-height:1.5; color:var(--ink); text-decoration:none;
}
.nav-item > ul a:hover,
.nav-item > ul a:focus-visible{ background:var(--teal-tint); color:var(--teal-dark); }

@media (min-width:700px){
  .main-nav{ order:2; flex-basis:auto; margin:0 0 0 auto; }
  .font-ctrl{ order:3; margin-inline-start:.6rem; }
  .nav-item{ flex:none; position:relative; }
  /* The menu sits at the right of the header, so every panel opens leftward from its
     button's right edge -- a left-anchored panel ran past the viewport on pages where
     the menu is the last header item (lesson, earn and profession pages). */
  .nav-item > ul{ inset-inline:auto; inset-inline-end:0; min-width:235px; max-width:calc(100vw - 2rem); }
}

/* share bar, progress backup, undo, save error */
.share-bar{ max-width:var(--max-w); margin:2rem auto 1rem; padding:1rem; border:1px solid var(--border); border-radius:var(--radius); background:var(--card-bg); display:flex; flex-wrap:wrap; gap:.6rem; align-items:center; }
.share-bar p{ flex-basis:100%; margin:0; color:var(--ink-soft); }
.share-bar a{ display:inline-flex; align-items:center; min-height:44px; padding:0 1rem; border-radius:var(--radius-sm); background:var(--teal); color:#fff; font-weight:600; text-decoration:none; }
.share-bar a:hover,.share-bar a:focus-visible{ background:var(--teal-dark); }
.backup-box{ margin-top:1.2rem; padding:.8rem 1rem; border:1px solid var(--border); border-radius:var(--radius); background:var(--card-bg); }
.backup-box summary{ cursor:pointer; font-weight:600; min-height:44px; display:flex; align-items:center; }
.backup-box input{ min-height:44px; padding:0 .6rem; border:1px solid var(--border-interactive); border-radius:var(--radius-sm); font:inherit; max-width:100%; }
.backup-code strong{ font-family:monospace; font-size:1.15rem; letter-spacing:.05em; }
.btn-undo{ min-height:44px; padding:0 1rem; margin-top:.6rem; border:1px solid var(--border-interactive); border-radius:var(--radius-sm); background:transparent; color:var(--ink); font:inherit; cursor:pointer; }
.save-error{ color:#A34A2B; font-weight:600; }

/* ============================================================
   language switch (বাংলা ⇄ English) + English typography
   ============================================================ */
.lang-switch{
  display:inline-flex; align-items:center; gap:.35rem; flex-shrink:0;
  min-height:44px; padding:.3rem .65rem; margin-inline-start:auto;
  border:1px solid var(--border); border-radius:var(--radius-sm); background:#fff;
  color:var(--ink); font-size:.9rem; font-weight:700; text-decoration:none; line-height:1;
}
.lang-switch .icon{ width:1.05em; height:1.05em; color:var(--teal); }
.lang-switch:hover{ border-color:var(--teal); color:var(--teal-dark); }
.lang-switch:focus-visible{ outline:2px solid var(--teal); outline-offset:2px; }
.lang-switch[lang="bn"]{ font-family:"Noto Sans Bengali","Kalpurush","SolaimanLipi","Nirmala UI",system-ui,sans-serif; }
@media (min-width:700px){
  .lang-switch{ order:4; margin-inline-start:.6rem; }
}
/* English reading font: each device's own screen-tuned UI face (Roboto on Android, SF on
   iPhone, Segoe on Windows) — zero download, the best legibility per device. */
html[lang="en"] body{
  font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Noto Sans","Helvetica Neue",Arial,sans-serif;
  line-height:1.7;
  font-size:1.0625rem;
}

/* ============================================================
   Soluva Labs family theme (2026-11-15)
   Dark, glowing bands where people arrive (header, home hero, footer) to match
   soluvalabs.com; lesson reading surfaces stay light and high-contrast.
   ============================================================ */
h1, h2, .headline{ letter-spacing:-.015em; }
html[lang="en"] h1, html[lang="en"] .headline{ letter-spacing:-.025em; }

.site-header{
  background:
    radial-gradient(520px 200px at 8% -60%, rgba(139,92,246,.50), transparent 70%),
    radial-gradient(480px 200px at 96% -80%, rgba(34,211,238,.32), transparent 70%),
    var(--night);
  border-bottom:1px solid rgba(255,255,255,.08);
  color:var(--night-text);
}
.brand{
  display:inline-grid; grid-template-columns:auto auto; column-gap:.55rem; align-items:center;
  color:#fff; line-height:1.1;
}
.brand::before{
  content:"L"; grid-row:span 2;
  display:grid; place-items:center; width:34px; height:34px; border-radius:10px;
  background:linear-gradient(135deg,#8B5CF6,#22D3EE); color:#fff;
  font:800 1rem/1 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  box-shadow:0 6px 18px -6px rgba(139,92,246,.85);
}
.brand:hover{ color:#fff; }
.brand-by{ font-size:.68rem; font-weight:500; color:var(--night-muted); letter-spacing:.02em; }
.site-header .nav-item > summary,
.site-header .lang-switch,
.site-header .font-ctrl button{
  background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.16);
  color:var(--night-text); border-radius:999px;
}
.site-header .font-ctrl button{ min-width:44px; min-height:44px; }
.site-header .nav-item > summary::after{ border-color:var(--night-muted); }
.site-header .nav-item[open] > summary{ background:rgba(139,92,246,.22); border-color:#A78BFA; color:#fff; }
.site-header .nav-item[open] > summary::after{ border-color:#fff; }
.site-header .nav-item > summary:hover,
.site-header .lang-switch:hover,
.site-header .font-ctrl button:hover{ border-color:#A78BFA; color:#fff; }
.site-header .nav-item > summary:focus-visible,
.site-header .lang-switch:focus-visible{ outline-color:#22D3EE; }
.site-header .lang-switch .icon{ color:#22D3EE; }
/* dropdown panels stay light and readable */
.site-header .nav-item > ul{ color:var(--ink); border-radius:var(--radius-sm); }

/* pill buttons, as on soluvalabs.com */
.cta-button, .btn-primary, .btn-next, .btn-undo{ border-radius:999px; }
.cta-button, .btn-primary{
  background:var(--ink); color:#fff; border-color:var(--ink);
  box-shadow:0 0 0 1px rgba(255,255,255,.08), 0 10px 28px -12px rgba(109,40,217,.8);
}
.cta-button:hover, .btn-primary:hover{ background:#232838; color:#fff; }

/* home hero: Soluva dark band with glow + faint grid */
.hero-band{
  background:
    radial-gradient(680px 300px at 12% 0%, rgba(139,92,246,.42), transparent 70%),
    radial-gradient(600px 300px at 92% 8%, rgba(34,211,238,.22), transparent 70%),
    linear-gradient(rgba(255,255,255,.035) 1px, transparent 1px) 0 0/48px 48px,
    linear-gradient(90deg, rgba(255,255,255,.035) 1px, transparent 1px) 0 0/48px 48px,
    var(--night);
  color:var(--night-text);
}
.hero-band .headline{ color:#fff; }
.hero-band p, .hero-band .subheadline{ color:#B8BDD0; }
.hero-band .cta-button{ background:var(--night-text); color:var(--night); border-color:var(--night-text); }
.hero-band .cta-button:hover{ background:#fff; color:var(--night); }
.hero-band .hero-eyebrow{
  background:rgba(163,230,53,.12); color:#A3E635; border:1px solid rgba(163,230,53,.35); border-radius:999px;
}
.hero-band svg [stroke="#10131D"]{ stroke:var(--night-text); }
.hero-band svg [fill="#10131D"]{ fill:var(--night-text); }

/* lesson accents */
.key-point{
  border:2px solid transparent;
  background:linear-gradient(var(--card-bg),var(--card-bg)) padding-box, var(--grad) border-box;
}
.share-card{ background:linear-gradient(135deg,#5B21B6 0%,#6D28D9 45%,#0E7490 100%); }

/* footer: dark band with link back to soluvalabs.com */
.site-footer{ background:var(--night); color:var(--night-muted); border-top:1px solid rgba(255,255,255,.08); }
.site-footer a{ color:var(--night-text); }
.site-footer a:hover{ color:#22D3EE; }
.teaser-box{ background:#E9FAFD; border-color:#A5E3F0; }
.cert-linkedin{ margin:1rem 0 0; padding:1rem; border-radius:var(--radius); background:var(--teal-tint); display:flex; flex-wrap:wrap; gap:.6rem; align-items:center; }
.cert-linkedin-title{ flex-basis:100%; margin:0; font-weight:700; }
.cert-linkedin-btn{ text-decoration:none; display:inline-flex; align-items:center; min-height:48px; padding:.6rem 1.2rem; border-radius:999px; }
.cert-linkedin .btn-secondary{ background:var(--card-bg); color:var(--ink); border:1px solid var(--border-interactive); font-weight:700; }
.cert-linkedin .btn-secondary:hover{ border-color:var(--teal); color:var(--teal-dark); }
.cert-linkedin .btn-primary{ color:#fff; font-weight:700; }
/* English pages: the "বাংলা" switch is shown only to visitors who chose English themselves
   (set by the inline head script); visitors placed in English by region never see it. */
.lang-switch[data-set-lang="bn"]{ display:none; }
html.show-bn-switch .lang-switch[data-set-lang="bn"]{ display:inline-flex; }
