/* ============================================================
   Paper Dusk, sitewide.

   Why this file exists: the approved design system (docs/design/paper-dusk.md)
   is three colors, paper #EDE6D6, ink #2B2A33 and terracotta #B9533C, plus a
   few listed shades of them, set in Hind Siliguri. The theme was built on the
   older "Kalo & Bidyut" system (near black, electric blue). Rather than edit
   a dozen stylesheets that other work still depends on, this one file is
   loaded LAST, after every other theme stylesheet (inc/auto/paper-dusk.php),
   and does three things:

     1. remaps the old design tokens in main.css :root to the Paper Dusk
        palette, which recolors everything written against the tokens;
     2. overrides every hard coded color left in the theme CSS (section 4 was
        generated from a scan of every literal color in assets/css and maps
        each one to the nearest Paper Dusk role);
     3. adds the paper grain, the component shapes (buttons, cards, focus) and
        the motion layer's CSS (paper-dusk.js).

   ROLLBACK: delete inc/auto/paper-dusk.php. Nothing else in the theme was
   changed, so the site returns to the previous look byte for byte.

   Contrast notes (WCAG AA, 4.5:1 for body text):
     ink on paper 11.6, ink-2 on paper 5.5, paper on ink 11.6.
     Terracotta #B9533C on paper is 3.9: enough for large headings, icons,
     borders and the marker (3:1), NOT for body size text or a button label.
     So every terracotta that carries text, links, labels and button fills,
     uses the listed darker shade --pd-accent-2 #9C4130 (5.3 on paper, paper
     on it 5.3), and the bright #B9533C is kept for the logo mark, rules,
     focus rings, checkmarks, featured borders and highlight markers.
     Terracotta on ink is 2.1, so accent TEXT on dark bands uses
     --pd-accent-on-dark (terracotta mixed into paper, 5.6:1).
   ============================================================ */

/* ---------------------------------------------- 1. Hind Siliguri, self hosted (OFL, assets/fonts/OFL.txt) */
@font-face { font-family: "Hind Siliguri"; font-style: normal; font-weight: 400; font-display: swap;
  src: url(../fonts/hind-siliguri-400-bengali.woff2) format("woff2");
  unicode-range: U+0951-0952, U+0964-0965, U+0980-09FE, U+1CD0, U+1CD2, U+1CD5-1CD6, U+1CD8, U+1CE1, U+1CEA, U+1CED, U+1CF2, U+1CF5-1CF7, U+200C-200D, U+20B9, U+25CC, U+A8F1, U+11DF0-11DF1; }
@font-face { font-family: "Hind Siliguri"; font-style: normal; font-weight: 400; font-display: swap;
  src: url(../fonts/hind-siliguri-400-latin.woff2) format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Hind Siliguri"; font-style: normal; font-weight: 600; font-display: swap;
  src: url(../fonts/hind-siliguri-600-bengali.woff2) format("woff2");
  unicode-range: U+0951-0952, U+0964-0965, U+0980-09FE, U+1CD0, U+1CD2, U+1CD5-1CD6, U+1CD8, U+1CE1, U+1CEA, U+1CED, U+1CF2, U+1CF5-1CF7, U+200C-200D, U+20B9, U+25CC, U+A8F1, U+11DF0-11DF1; }
@font-face { font-family: "Hind Siliguri"; font-style: normal; font-weight: 600; font-display: swap;
  src: url(../fonts/hind-siliguri-600-latin.woff2) format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Hind Siliguri"; font-style: normal; font-weight: 700; font-display: swap;
  src: url(../fonts/hind-siliguri-700-bengali.woff2) format("woff2");
  unicode-range: U+0951-0952, U+0964-0965, U+0980-09FE, U+1CD0, U+1CD2, U+1CD5-1CD6, U+1CD8, U+1CE1, U+1CEA, U+1CED, U+1CF2, U+1CF5-1CF7, U+200C-200D, U+20B9, U+25CC, U+A8F1, U+11DF0-11DF1; }
@font-face { font-family: "Hind Siliguri"; font-style: normal; font-weight: 700; font-display: swap;
  src: url(../fonts/hind-siliguri-700-latin.woff2) format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }

/* ---------------------------------------------- 2. tokens */
:root {
  /* the three colors and their listed shades */
  --pd-paper: #EDE6D6;
  --pd-paper-2: #F6F0E3;
  --pd-paper-3: #E2D8C4;
  --pd-line: #d9cfba;
  --pd-ink: #2B2A33;
  --pd-ink-2: #5D5A64;
  --pd-ink-3: #1F1D24;
  --pd-accent: #B9533C;
  --pd-accent-2: #9C4130;
  --pd-accent-tint: rgba(185,83,60,.18);
  /* derived, never new hues: paper at reduced strength on ink, and
     terracotta lifted with paper for accent TEXT on ink (see contrast notes) */
  --pd-paper-muted: rgba(237,230,214,.74);
  --pd-accent-on-dark: var(--pd-paper);
  --pd-accent-3: var(--pd-ink-3);      /* pressed / hover fill, a deeper shade of accent-2 */

  /* the old tokens, remapped (main.css :root) */
  --nil: var(--pd-ink);
  --nil-deep: var(--pd-ink);
  --nil-soft: var(--pd-ink-3);
  --gada: var(--pd-accent-2);         /* text and fills: AA on paper (see contrast notes) */
  --gada-bright: var(--pd-accent-on-dark);
  --gada-soft: rgba(185,83,60,.12);   /* .12, not .18: accent text on it stays at 4.6:1 */
  --kagoj: var(--pd-paper);
  --kagoj-card: var(--pd-paper-2);
  --shobuj: var(--pd-accent-2);       /* "done / included" is ink and accent with an icon now */
  --shobuj-soft: rgba(185,83,60,.10);
  --dhoa: var(--pd-paper-muted);
  --dhoa-dark: var(--pd-ink-2);
  --ink: var(--pd-ink);
  --line-dark: rgba(237,230,214,.16);
  --line-light: var(--pd-line);
  --shadow: 0 1px 2px rgba(43,42,51,.06), 0 10px 26px -14px rgba(43,42,51,.30);
  --radius: 8px;

  /* one face for everything; monospace only for code */
  --f-bn: "Hind Siliguri", system-ui, sans-serif;
  --f-display: "Hind Siliguri", system-ui, sans-serif;
  --f-latin: "Hind Siliguri", system-ui, sans-serif;
  --f-mono: "Hind Siliguri", system-ui, sans-serif;

  /* Tutor LMS reads its own variables: recolor only, no restyle */
  --tutor-color-primary: var(--pd-accent-2);
  --tutor-color-primary-rgb: 156, 65, 48;
  --tutor-color-primary-hover: var(--pd-accent-3);
  --tutor-color-secondary: var(--pd-ink-2);
  --tutor-color-success: var(--pd-accent-2);
  --tutor-color-success-rgb: 156, 65, 48;
  --tutor-color-warning: var(--pd-accent);
  --tutor-color-danger: var(--pd-accent-2);
  --tutor-color-danger-rgb: 156, 65, 48;
  --tutor-body-color: var(--pd-ink);
  --tutor-color-black: var(--pd-ink);
  --tutor-color-muted: var(--pd-ink-2);
  --tutor-color-subdued: var(--pd-ink-2);
  --tutor-border-color: var(--pd-line);
  --tutor-color-gray: var(--pd-paper-3);
  --tutor-color-gray-10: var(--pd-paper-2);
  --tutor-color-white: var(--pd-paper-2);
  --tutor-font-family: "Hind Siliguri", system-ui, sans-serif !important;
}
/* Tutor 4's light theme tokens (tutor-core.min.css, ":root,[data-tutor-theme=light]")
   and its brand ramp, which it prints inline on :root in purple. Recolor only:
   each semantic token gets its Paper Dusk role. html:root outranks both. */
html:root, html [data-tutor-theme=light] {
  --tutor-surface-base: var(--pd-paper);
  --tutor-surface-l1: var(--pd-paper-2);
  --tutor-surface-l1-hover: var(--pd-paper-3);
  --tutor-surface-l2: var(--pd-paper-3);
  --tutor-surface-l2-hover: var(--pd-line);
  --tutor-surface-l3: var(--pd-paper-2);
  --tutor-surface-sidebar-l1: var(--pd-paper-2);
  --tutor-surface-dark: var(--pd-ink);
  --tutor-surface-warning: var(--pd-paper-2);
  --tutor-surface-warning-hover: var(--pd-paper-3);
  --tutor-surface-warning-hover-2: var(--pd-paper-3);
  --tutor-surface-success: var(--pd-paper-2);
  --tutor-surface-critical: var(--pd-paper-2);
  --tutor-surface-exception2-secondary: var(--pd-paper-2);
  --tutor-surface-exception6: var(--pd-paper-2);
  --tutor-text-primary: var(--pd-ink);
  --tutor-text-primary-inverse: var(--pd-paper);
  --tutor-text-secondary: var(--pd-ink);
  --tutor-text-subdued: var(--pd-ink-2);
  --tutor-text-disabled: var(--pd-line);
  --tutor-text-light: var(--pd-paper);
  --tutor-text-success: var(--pd-accent-2);
  --tutor-text-critical: var(--pd-accent-2);
  --tutor-text-critical-hover: var(--pd-accent-3);
  --tutor-text-warning: var(--pd-accent-2);
  --tutor-text-caution: var(--pd-accent-2);
  --tutor-text-exception1: var(--pd-accent-2);
  --tutor-text-exception2: var(--pd-accent-2);
  --tutor-text-exception4: var(--pd-accent-2);
  --tutor-text-exception5: var(--pd-accent-2);
  --tutor-text-highlighted-hover: var(--pd-ink);
  --tutor-icon-idle: var(--pd-ink);
  --tutor-icon-idle-inverse: var(--pd-paper);
  --tutor-icon-hover: var(--pd-ink-3);
  --tutor-icon-secondary: var(--pd-ink-2);
  --tutor-icon-subdued: var(--pd-ink-2);
  --tutor-icon-disabled: var(--pd-line);
  --tutor-icon-exception1: var(--pd-accent);
  --tutor-icon-exception2: var(--pd-accent);
  --tutor-icon-exception4: var(--pd-accent);
  --tutor-icon-exception5: var(--pd-accent);
  --tutor-icon-success-primary: var(--pd-accent-2);
  --tutor-icon-success-secondary: var(--pd-accent);
  --tutor-icon-caution: var(--pd-accent);
  --tutor-icon-critical: var(--pd-accent-2);
  --tutor-icon-critical-hover: var(--pd-accent-3);
  --tutor-icon-warning: var(--pd-accent-2);
  --tutor-icon-warning-secondary: var(--pd-accent);
  --tutor-border-idle: var(--pd-line);
  --tutor-border-idle2: var(--pd-line);
  --tutor-border-hover: var(--pd-ink-2);
  --tutor-border-tertiary: var(--pd-ink-2);
  --tutor-border-inverse: var(--pd-paper);
  --tutor-border-dark: var(--pd-ink);
  --tutor-border-success: var(--pd-accent);
  --tutor-border-success-secondary: var(--pd-accent-2);
  --tutor-border-warning: var(--pd-line);
  --tutor-border-warning-secondary: var(--pd-accent-2);
  --tutor-border-warning-tertiary: var(--pd-accent);
  --tutor-border-error: var(--pd-accent);
  --tutor-border-error-secondary: var(--pd-accent-2);
  --tutor-border-error-tertiary: var(--pd-accent);
  --tutor-border-exception6: var(--pd-accent);
}
html:root {
  --tutor-brand-100: var(--pd-paper-2);
  --tutor-brand-200: var(--pd-paper-3);
  --tutor-brand-300: var(--pd-paper-3);
  --tutor-brand-400: var(--pd-line);
  --tutor-brand-450: var(--pd-line);
  --tutor-brand-500: var(--pd-accent);
  --tutor-brand-600: var(--pd-accent-2);
  --tutor-brand-700: var(--pd-accent-2);
  --tutor-brand-800: var(--pd-accent-3);
  --tutor-brand-900: var(--pd-ink);
  --tutor-brand-950: var(--pd-ink-3);
}
@supports (color: color-mix(in srgb, red, blue)) {
  :root {
    --pd-accent-on-dark: color-mix(in srgb, var(--pd-accent) 55%, var(--pd-paper));
    --pd-accent-3: color-mix(in srgb, var(--pd-accent-2) 75%, var(--pd-ink));
  }
}

/* ---------------------------------------------- 3. base */
html { background: var(--pd-paper); }
body {
  background: var(--pd-paper);
  color: var(--pd-ink);
  font-family: var(--f-bn);
  line-height: 1.7;              /* body Bangla, never below 1.5 */
}
h1, h2, h3, h4, h5, h6 { font-family: var(--f-display); font-weight: 700; line-height: 1.3; }
b, strong { font-weight: 700; }
code, kbd, pre, samp { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; }
.mono, .label.en, .tracked { font-family: var(--f-bn); }
::selection { background: var(--pd-accent-tint); color: var(--pd-ink); }

/* Paper grain. Sits behind the content (z-index -1) on the paper ground, so
   cards, bands and photographs stay clean and nothing is blended per scroll
   frame over the whole page. pointer-events: none, it is decoration only. */
body::before {
  content: ""; position: fixed; inset: 0; z-index: -1; pointer-events: none;
  opacity: .3; mix-blend-mode: multiply;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2'/%3E%3CfeColorMatrix values='0 0 0 0 .17 0 0 0 0 .16 0 0 0 0 .2 0 0 0 .45 0'/%3E%3C/filter%3E%3Crect width='200' height='200' filter='url(%23n)'/%3E%3C/svg%3E");
}

/* links and focus */
a { color: var(--pd-accent-2); }
:focus-visible,
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, summary:focus-visible {
  outline: 3px solid var(--pd-accent);
  outline-offset: 2px;
}
.band-dark a:not(.btn), .site-foot a:not(.btn) { color: var(--pd-paper-muted); }
.band-dark a:not(.btn):hover, .site-foot a:not(.btn):hover { color: var(--pd-paper); }

/* ---------------------------------------------- 4. every hard coded color left in the theme CSS
   Generated from a scan of main.css, checkout.css, free-resources.css,
   motion.css, nav-footer-v2.css, pages-v3.css and quiz.css: same selector,
   same property, the literal color swapped for its Paper Dusk role
   (white text on dark to paper, white surfaces to paper-2, black and navy
   shadows to ink, blue/green/amber/red tints to terracotta, greys to ink-2
   and the line color). Placed before the hand written
   components below, which refine a few of them. */
.btn-primary { color: var(--pd-paper); }
.site-nav a.btn-primary { color: var(--pd-paper); }
.site-nav a.btn-primary:hover { color: var(--pd-paper); }
.band-dark { color: var(--pd-paper); }
.fan .cardin { box-shadow: 0 2px 6px rgba(43,42,51,.12), 0 24px 48px -18px rgba(43,42,51,.35); }
.fan .card:hover .cardin, .fan .card:focus-within .cardin { box-shadow: 0 6px 14px rgba(43,42,51,.16), 0 40px 70px -22px rgba(43,42,51,.5); }
.fan .card .mock .stage { background: rgba(237,230,214,.07); }
.fan .card .mock .cap { color: var(--pd-paper); }
.fan .card .mock .bar { background: rgba(237,230,214,.18); }
.fan .c1 .mock .stage { background: linear-gradient(160deg, rgba(237,230,214,.10), rgba(237,230,214,.02)); }
.fan .c1 .mock .stage::before { border-left: 16px solid rgba(237,230,214,.9); }
.fan .c2 .mock .stage { background: repeating-linear-gradient(0deg, rgba(237,230,214,.06) 0 1px, transparent 1px 15px), rgba(237,230,214,.05); }
.fan .c3 .mock .stage { background: radial-gradient(circle at 50% 45%, rgba(185,83,60,.55), transparent 62%), rgba(237,230,214,.06); }
.fan .c3 .mock .stage::before { background-image: repeating-linear-gradient(90deg, rgba(237,230,214,.16) 0 2px, transparent 2px 5px); }
.fan .c4 .mock .stage { background: rgba(237,230,214,.05); }
.fan .c4 .mock .stage::before { background: rgba(237,230,214,.13); }
.fan .c4 .mock .stage i { background: rgba(237,230,214,.28); }
.fan .c5 .mock .stage { background: linear-gradient(135deg, rgba(185,83,60,.5), rgba(237,230,214,.04)); }
.fan .c5 .mock .stage i { background: rgba(237,230,214,.2); }
.bubble { color: var(--pd-paper); }
.quiz-result .buy { color: var(--pd-paper); }
.seg { color: var(--pd-paper); }
.seg h3 { color: var(--pd-paper); }
.seg .after { color: var(--pd-paper); }
.seg .go b { color: var(--pd-paper); }
.path { color: var(--pd-paper); }
.work .thumb .kind { color: rgba(237,230,214,.72); border: 1px solid rgba(237,230,214,.2); background: rgba(43,42,51,.5); }
.work:nth-child(1) .thumb { background: repeating-linear-gradient(45deg, rgba(237,230,214,.05) 0 8px, transparent 8px 16px), var(--nil-soft); }
.work:nth-child(2) .thumb { background: repeating-linear-gradient(0deg, rgba(237,230,214,.07) 0 1px, transparent 1px 16px), repeating-linear-gradient(90deg, rgba(237,230,214,.07) 0 1px, transparent 1px 60px), var(--nil-soft); }
.work:nth-child(3) .thumb { background: radial-gradient(circle at 30% 30%, rgba(185,83,60,.4), transparent 55%), var(--nil-soft); }
.work:nth-child(4) .thumb { background: linear-gradient(135deg, rgba(185,83,60,.45), transparent 65%), var(--nil-soft); }
.work:nth-child(5) .thumb { background: linear-gradient(180deg, rgba(237,230,214,.12), transparent 70%), var(--nil-soft); }
.work:nth-child(6) .thumb { background: repeating-linear-gradient(-45deg, rgba(185,83,60,.14) 0 10px, transparent 10px 20px), var(--nil-soft); }
.instructor .photo { background: radial-gradient(circle at 50% 35%, rgba(185,83,60,.35), transparent 60%), var(--nil-soft); }
.instructor .photo .monogram { color: rgba(237,230,214,.28); }
.curric summary h3 { color: var(--pd-paper); }
.tier.featured { color: var(--pd-paper); background: linear-gradient(var(--nil), var(--nil)) padding-box, linear-gradient(160deg, var(--gada), rgba(185,83,60,.25) 60%, var(--gada-bright)) border-box; box-shadow: 0 30px 60px -24px rgba(185,83,60,.45); }
.tier.featured::before { color: var(--pd-paper); }
.vstack .final { color: var(--pd-paper); }
.sb-bundle .sb-label { color: var(--pd-paper); }
.sales-hero { color: var(--pd-paper); }
.sales-meta .cred .mono { color: var(--pd-paper); }
.buybox { box-shadow: 0 2px 8px rgba(43,42,51,.2), 0 30px 60px -24px rgba(43,42,51,.5); }
.fit-col h3 { color: var(--pd-paper); }
.tier { color: var(--pd-paper); }
.tier .btn-ghost { color: var(--pd-paper); border-color: rgba(237,230,214,.45); }
.tier .btn-ghost:hover { border-color: var(--pd-paper); }
.tier-name { color: var(--pd-paper); }
.tier-price { color: var(--pd-paper); }
.tier-flag { color: var(--pd-paper); }
.rail { color: var(--pd-paper); }
.aib-checkout-bar { color: var(--pd-paper); }
.aib-checkout-bar b { color: var(--pd-paper); }
#place_order, .woocommerce #payment #place_order { color: var(--pd-paper) !important; }
.avatar-mono { color: var(--pd-paper); }
.pay-strip { background: var(--pd-paper-2); }
.pay-strip-h { color: var(--pd-ink-2); }
.woocommerce .button, .woocommerce a.button, .woocommerce button.button, .woocommerce input.button { color: var(--pd-paper) !important; }
.site-foot h4 { color: var(--pd-paper); }
.site-foot a:hover { color: var(--pd-paper); }
.momentum { color: var(--pd-paper); }
.mo-main > div + div { border-left: 1px solid rgba(237,230,214,.1); }
.mo-bar { background: rgba(237,230,214,.12); }
.mo-bar-t b { color: var(--pd-paper); }
.mo-steps b { color: var(--pd-paper); }
.mo-streak-n b { color: var(--pd-paper); }
.mo-day { background: rgba(237,230,214,.09); }
.mo-day.now { box-shadow: inset 0 0 0 1.5px rgba(237,230,214,.45); }
.mo-win { border-top: 1px solid rgba(237,230,214,.1); }
.mo-win-msg.ok { background: rgba(185,83,60,.18); color: var(--pd-paper); }
.mo-win-msg.bad { background: rgba(185,83,60,.18); color: var(--pd-paper); }
.mo-f input, .mo-f select, .mo-f textarea { color: var(--pd-paper); background: rgba(237,230,214,.06); border: 1px solid rgba(237,230,214,.16); }
.mo-f input::placeholder, .mo-f textarea::placeholder { color: rgba(237,230,214,.35); }
.mo-win.is-asking { background: rgba(185,83,60,.09); border: 1px solid rgba(185,83,60,.35); }
.mo-win.is-asking .mo-win-d > summary b { color: var(--pd-paper); }
.mo-win.is-asking .mo-win-d > summary span { color: rgba(237,230,214,.72); }
.wc-page .single_add_to_cart_button, .wc-page .button { color: var(--pd-paper); }
.wc-page .single_add_to_cart_button:hover, .wc-page .button:hover { color: var(--pd-paper); }
.hero { background-image: radial-gradient(60% 50% at 50% 16%, rgba(185,83,60,.10), transparent 70%), linear-gradient(to right, rgba(43,42,51,.045) 1px, transparent 1px), linear-gradient(to bottom, rgba(43,42,51,.045) 1px, transparent 1px); }
.hero::before { background-image: radial-gradient(58% 46% at 50% 14%, rgba(185,83,60,.11), transparent 72%), linear-gradient(to right, rgba(43,42,51,.05) 1px, transparent 1px), linear-gradient(to bottom, rgba(43,42,51,.05) 1px, transparent 1px); }
.proof-bar { box-shadow: 0 1px 2px rgba(43,42,51,.05), 0 10px 24px -16px rgba(43,42,51,.35); }
.proof-txt .stars { color: var(--pd-accent); }
.site-nav .wc-menu-item .number-of-items { color: var(--pd-paper); }
.bento .cell { box-shadow: 0 1px 2px rgba(43,42,51,.04); }
.bento .cell:hover { box-shadow: 0 2px 4px rgba(43,42,51,.06), 0 18px 34px -20px rgba(43,42,51,.4); }
.bento .cell:nth-child(3) .t { color: var(--pd-ink-2); }
.quiz { box-shadow: 0 1px 2px rgba(43,42,51,.05), 0 30px 60px -28px rgba(43,42,51,.40); }
.seg:hover { box-shadow: 0 22px 44px -22px rgba(43,42,51,.65); }
.work:hover { box-shadow: 0 2px 4px rgba(43,42,51,.05), 0 22px 40px -22px rgba(43,42,51,.4); }
.outcome:hover { box-shadow: 0 18px 34px -20px rgba(43,42,51,.35); }
.tier:hover { border-color: rgba(185,83,60,.5); }
.faq details[open] { border-color: rgba(185,83,60,.4); }
.close-cta::before { background: radial-gradient(50% 60% at 50% 30%, rgba(185,83,60,.16), transparent 70%); }
.band-tint { background-color: var(--pd-paper-2); background-image: radial-gradient(rgba(185,83,60,.09) 1px, transparent 1px); }
.band-tint .muted { color: var(--pd-ink-2); }
.band-warm { background: var(--pd-paper-2); }
.band-warm .muted { color: var(--pd-ink-2); }
.band-tint .quiz { box-shadow: 0 1px 2px rgba(43,42,51,.06), 0 34px 70px -30px rgba(185,83,60,.45); }
.quiz-opt:hover { box-shadow: 0 10px 22px -14px rgba(185,83,60,.5); }
.quiz-opt:hover .k { color: var(--pd-paper); }
.band-warm .guarantee .seal { border-color: var(--pd-line); color: var(--pd-ink-2); }
.gate { background-image: radial-gradient(52% 40% at 50% 8%, rgba(185,83,60,.22), transparent 70%), linear-gradient(to right, rgba(237,230,214,.04) 1px, transparent 1px), linear-gradient(to bottom, rgba(237,230,214,.04) 1px, transparent 1px); }
.gate-card { color: var(--pd-paper); }
.gate-pill { background: rgba(237,230,214,.07); border: 1px solid rgba(237,230,214,.14); }
.gate-login { border: 1px solid rgba(237,230,214,.1); }
.gate-err { background: rgba(185,83,60,.18); color: var(--pd-paper); }
.gate-capped-btn { color: var(--pd-paper); }
.gate-login input[type=text], .gate-login input[type=password] { color: var(--pd-paper); background: rgba(237,230,214,.06); border: 1px solid rgba(237,230,214,.16); }
.gate-login .button, .gate-login #wp-submit { color: var(--pd-paper); }
.band-paper .curric details, .band-tint .curric details, .band-warm .curric details { box-shadow: 0 1px 2px rgba(43,42,51,.04); }
.band-dark .curric .lesson.is-link:hover { background: rgba(237,230,214,.06); color: var(--pd-paper); }
.gd-jump a:hover { color: var(--pd-paper); background: rgba(185,83,60,.14); }
.gd-chooser { border: 1px solid var(--pd-line); }
.gd-chooser dl > div { border-bottom: 1px dashed var(--pd-line); }
.gd-chooser dt { color: var(--pd-ink-2); }
.gd-track-h { border-bottom: 1px solid var(--pd-line); }
.gd-track-h > div > p { color: var(--pd-ink-2); }
.gd-role { border: 1px solid var(--pd-line); }
.gd-role > p { color: var(--pd-ink-2); }
.gd-role-rate { border-top: 1px solid var(--pd-line); }
.gd-role-rate span { color: var(--pd-ink-2); }
.gd-role-rate-soft { color: var(--pd-ink-2); }
.gd-fine { color: var(--pd-ink-2); }
.gd-course-h h3 { color: var(--pd-paper); }
.gd-first { color: var(--pd-paper); background: rgba(185,83,60,.12); }
.post-body .callout.warn { border-left-color: var(--pd-accent); background: var(--pd-paper-2); }
.post-body .nextstep { color: var(--pd-paper); }
.post-body .nextstep h2 { color: var(--pd-paper); }
.post-body .nextstep a { color: var(--pd-paper); }
.foot-blog { background: rgba(237,230,214,.04); }
.foot-blog h3 { color: var(--pd-paper); }
.foot-brand { color: var(--pd-paper); }
.pay-band { background: var(--pd-ink-3); }
.pay-band .pay-strip { background: rgba(237,230,214,.055); border: 1px solid rgba(237,230,214,.09); }
.gd-role-rate .mono em { color: var(--pd-ink-2); }
.gd-rate-note { color: var(--pd-ink); }
.gd-rate-note strong { color: var(--pd-ink); }
.blog-pager .page-numbers.current { color: var(--pd-paper); }
.hero-facts b { color: var(--pd-paper); }
.bk-on-dark .bk-lockup { color: var(--pd-paper); }
.bk-dont { border-left: 3px solid var(--pd-accent); }
.bk-cgroup-h p { color: var(--pd-ink-2); }
.bk-file b { color: var(--pd-paper); }
.aib-update { color: var(--pd-paper); box-shadow: 0 18px 50px -18px rgba(43,42,51,.7); }
.aib-update-go { color: var(--pd-paper); }
.aib-update-no:hover { color: var(--pd-paper); }
.bk-keep { background: var(--shobuj-soft, rgba(185,83,60,.06)); }
.band-dark .btn-closed, .aib-checkout-bar .btn-closed { background: rgba(237,230,214,.09); border-color: rgba(237,230,214,.16); }
.aib-subscribe input[type=text], .aib-subscribe input[type=email] { border: 1px solid var(--pd-line); }
.aib-subscribe button { color: var(--pd-paper); background: var(--pd-accent); }
.aib-subscribe-err { background: var(--pd-paper-2); color: var(--pd-accent-2); }
.ck-main input.input-text, .ck-main select, .ck-main textarea { background: var(--pd-paper-2); }
.ck-main .woocommerce-invalid input.input-text { border-color: var(--pd-accent); }
.aib-bump { background: color-mix(in srgb, var(--gada-soft) 45%, var(--pd-paper-2)); }
.aib-bump-tick { background: var(--pd-paper-2); }
.aib-bump-tick::after { border: solid var(--pd-paper); }
.aib-bump-tag { color: var(--pd-paper); }
.ck-main #payment ul.payment_methods li { background: var(--pd-paper-2); }
.ck-main .woocommerce-order-overview li { background: var(--pd-paper-2); }
.ck-main .woocommerce-order-details, .ck-main .woocommerce-customer-details { background: var(--pd-paper-2); }
.fr-form input[type=text], .fr-form input[type=email] { border: 1px solid var(--pd-line); background: var(--pd-paper-2); }
.fr-err { background: var(--pd-paper-2); color: var(--pd-accent-2); }
.fr-small { color: var(--pd-ink-2); }
.fr-paid-box { border: 1px dashed var(--pd-line); }
.aib-motion .instructor .photo.has-cut { box-shadow: 10px 10px 0 rgba(185,83,60,.32); }
.site-nav .sub-menu { box-shadow: 0 18px 40px rgba(43,42,51,.16); }
.site-nav .sub-menu a:hover, .site-nav .sub-menu a:focus-visible { background: rgba(185,83,60,.08); }
.site-foot .foot-help { background: rgba(237,230,214,.05); }
.site-foot .foot-help h3 { color: var(--pd-paper); }
.site-foot .foot-help-btns a.btn-primary { color: var(--pd-paper); }
.site-foot .foot-help-btns .btn-wa { border: 1px solid rgba(237,230,214,.35); color: var(--pd-paper); }
.site-foot .foot-help-btns .btn-wa:hover { border-color: var(--pd-paper); }
.band-dark .v3-link { color: var(--pd-paper); }
.v3-steps li::before { color: var(--pd-paper); }
.v3-empty { border: 2px dashed var(--pd-line); }
.v3-stars { color: var(--pd-line); }
.v3-stars b { color: var(--pd-accent); }
.v3-dev.is-laptop { background: var(--pd-paper-3); color: var(--pd-ink-2); }
.v3-pass-table tfoot th, .v3-pass-table tfoot td { color: var(--pd-paper); }
.v3-pass-price b { color: var(--pd-paper); }
.qz-pick { color: var(--pd-paper); }
.qz-name { color: var(--pd-paper); }
.qz-steps li::before { color: var(--pd-paper); }
.qz-row input { background: var(--pd-paper-2); }
.qz-msg.is-bad { color: var(--pd-accent-2); }
@media (max-width: 720px) {
  .pay-strip::after { background: linear-gradient(to right, rgba(237,230,214,0), var(--pd-paper-2) 78%); }
  .pay-band .pay-strip::after { background: linear-gradient(to right, rgba(43,42,51,0), var(--pd-ink-3) 78%); }
}
@media (max-width: 900px) {
  .mo-main > div + div { border-top: 1px solid rgba(237,230,214,.1); }
}
@media (prefers-reduced-motion: no-preference) {
  .aib-motion .site-head::after { background: linear-gradient(rgba(43,42,51,.08), transparent); }
  .aib-motion .aib-admission-bar b::after { background: linear-gradient(100deg, transparent 30%, rgba(237,230,214,.85) 50%, transparent 70%); }
  .aib-motion .m-spot-l { background: radial-gradient(circle, rgba(185,83,60,.13), rgba(185,83,60,.04) 40%, transparent 68%); }
  .aib-motion .tiers.reveal.in .tier.featured::after { box-shadow: 0 0 0 2px rgba(185,83,60,.6); }
}
@media (prefers-reduced-motion: no-preference) { @media (hover: hover) {
  .aib-motion .quotes.reveal.in > .quote:hover { box-shadow: 0 18px 34px -22px rgba(43,42,51,.35); }
} }

/* ---------------------------------------------- 5. header */
.site-head { background: var(--pd-paper); border-bottom-color: var(--pd-line); color: var(--pd-ink); }
.brand, .site-head .brand { color: var(--pd-ink); }
.brand b, .site-head .brand b { color: var(--pd-accent); }
.brand-mark, .site-head .brand-mark { color: var(--pd-accent); }
.site-nav a { color: var(--pd-ink-2); }
.site-nav a:hover, .site-nav .current-menu-item > a { color: var(--pd-ink); }
.site-nav .sub-toggle { color: var(--pd-ink-2); }
.site-nav .sub-menu { background: var(--pd-paper-2); border-color: var(--pd-line); }
.site-nav .sub-menu a { color: var(--pd-ink); }
.site-nav .sub-menu a:hover, .site-nav .sub-menu a:focus-visible { color: var(--pd-accent-2); }
.site-nav .sub-menu .menu-item-all > a { color: var(--pd-accent-2); border-top-color: var(--pd-line); }
.site-nav .sub-menu small { color: var(--pd-ink-2); }
.nav-toggle { border-color: var(--pd-line) !important; color: var(--pd-ink) !important; background: var(--pd-paper-2) !important; border-radius: 10px !important; }
@media (max-width: 1100px) {
  .site-nav.open > ul { background: var(--pd-paper); border-bottom-color: var(--pd-line); box-shadow: 0 18px 30px -18px rgba(43,42,51,.35); }
  .site-nav.open > ul > li { border-bottom-color: var(--pd-line); }
}
.site-nav .wc-menu-item .number-of-items { background: var(--pd-accent-2); color: var(--pd-paper); }

/* ---------------------------------------------- 6. buttons
   Terracotta fill (accent-2, so the label passes AA), paper text, 10px
   radius, a 4px bottom edge one shade deeper; the press moves the button
   down 2px and eats the edge. Ghost: 2px ink border. */
.btn { border-radius: 10px; font-family: var(--f-bn); }
.btn-primary,
.site-nav a.btn-primary,
.woocommerce .button, .woocommerce a.button, .woocommerce button.button, .woocommerce input.button,
.woocommerce #respond input#submit, .woocommerce a.button.alt, .woocommerce button.button.alt,
.wc-page .single_add_to_cart_button, .wc-page .button,
#place_order, .woocommerce #payment #place_order,
.aib-subscribe button, .gate-login .button, .gate-login #wp-submit, .gate-capped-btn, .aib-update-go,
.tutor-btn-primary {
  background: var(--pd-accent-2) !important;
  color: var(--pd-paper) !important;
  border-color: var(--pd-accent-2) !important;
  border-radius: 10px !important;
  box-shadow: 0 4px 0 var(--pd-accent-3);
  transition: transform .15s ease, box-shadow .15s ease, background-color .15s ease;
}
.btn-primary:hover,
.site-nav a.btn-primary:hover,
.woocommerce .button:hover, .woocommerce a.button:hover, .woocommerce button.button:hover, .woocommerce input.button:hover,
.wc-page .single_add_to_cart_button:hover, .wc-page .button:hover,
#place_order:hover, .aib-subscribe button:hover, .gate-login .button:hover, .gate-login #wp-submit:hover, .aib-update-go:hover,
.tutor-btn-primary:hover {
  background: var(--pd-accent-3) !important;
  border-color: var(--pd-accent-3) !important;
  color: var(--pd-paper) !important;
  transform: translateY(-1px);
  box-shadow: 0 5px 0 var(--pd-ink-3);
}
.btn-primary:active, .woocommerce .button:active, #place_order:active, .tutor-btn-primary:active, .aib-subscribe button:active {
  transform: translateY(2px);
  box-shadow: 0 2px 0 var(--pd-accent-3);
}
.btn-ghost { border: 2px solid currentColor; opacity: 1; color: var(--pd-ink); border-radius: 10px; }
.site-nav a.btn-ghost { color: var(--pd-ink); }
.btn-ghost:hover { background: rgba(43,42,51,.06); }
.band-dark .btn-ghost, .site-foot .btn-ghost, .tier .btn-ghost, .sales-hero .btn-ghost { color: var(--pd-paper); }
.band-dark .btn-ghost:hover, .tier .btn-ghost:hover { background: rgba(237,230,214,.08); }
.site-foot .foot-help-btns .btn-wa { border: 2px solid rgba(237,230,214,.5); color: var(--pd-paper); border-radius: 10px; }
.site-foot .foot-help-btns .btn-wa:hover { border-color: var(--pd-paper); }
.band-dark .btn-closed, .aib-checkout-bar .btn-closed { box-shadow: none !important; }

/* ---------------------------------------------- 7. bands */
.band-dark { background: var(--pd-ink); color: var(--pd-paper); }
.band-dark .muted { color: var(--pd-paper-muted); }
.band-dark .shead .label, .band-dark .label { color: var(--pd-accent-on-dark); }
.shead .label { color: var(--pd-accent-2); }
.band-paper { background: var(--pd-paper); }
.band-tint { background-color: var(--pd-paper-2); background-image: none; }
.band-warm { background: var(--pd-paper-2); }

/* ---------------------------------------------- 8. footer: ink, paper text, terracotta accents */
.site-foot { background: var(--pd-ink); color: var(--pd-paper-muted); }
.site-foot h4, .site-foot .foot-help h3 { color: var(--pd-paper); }
.site-foot a { color: var(--pd-paper-muted); }
.site-foot a:hover { color: var(--pd-paper); text-decoration: underline; text-decoration-color: var(--pd-accent); text-underline-offset: 3px; }
.site-foot .foot-help { background: rgba(237,230,214,.05); border-color: rgba(237,230,214,.14); border-left: 4px solid var(--pd-accent); border-radius: 10px; }
.site-foot .foot-help p { color: var(--pd-paper-muted); }
.site-foot .legal { border-top-color: rgba(237,230,214,.14); }
.foot-brand { color: var(--pd-paper); }
.foot-brand b, .foot-brand .brand-mark { color: var(--pd-accent); }
.pay-band { background: var(--pd-ink-3); border-top-color: rgba(237,230,214,.1); }
.pay-band .pay-strip-h { color: var(--pd-paper-muted); }

/* ---------------------------------------------- 9. components */
/* cards: paper-2 with a soft paper shadow */
.card, .tier, .fit-col, .buybox, .quiz, .v3-card, .gd-role, .gd-chooser, .bcard, .mc-opt, .fr-card,
.faq details, .post-body .faq-block details, .curric details, .quote, .outcome, .work, .seg {
  border-color: var(--pd-line);
}
.band-paper .faq details, .post-body .faq-block details, .band-paper .curric details { background: var(--pd-paper-2); }

/* pills, chips, badges: accent-2 text on a light tint, AA on paper */
.v3-empty-tag, .v3-dev.is-mixed, .v3-safe-mark, .gd-sn, .bk-keep { color: var(--pd-accent-2); }

/* forms */
input[type=text], input[type=email], input[type=tel], input[type=password], input[type=number], input[type=search], input[type=url], select, textarea {
  border-color: var(--pd-line);
  color: var(--pd-ink);
}
.woocommerce form .form-row input.input-text, .woocommerce form .form-row textarea, .woocommerce form .form-row select,
.ck-main input.input-text, .ck-main select, .ck-main textarea, .qz-row input, .fr-form input[type=text], .fr-form input[type=email],
.aib-subscribe input[type=text], .aib-subscribe input[type=email] {
  background: var(--pd-paper-2);
  border-color: var(--pd-line);
}
input:focus, select:focus, textarea:focus { border-color: var(--pd-accent) !important; }
::placeholder { color: var(--pd-ink-2); opacity: .8; }

/* tables */
table th, table td { border-color: var(--pd-line); }
.woocommerce table.shop_table { border-color: var(--pd-line); background: var(--pd-paper-2); }
.woocommerce table.shop_table th, .woocommerce table.shop_table td { border-color: var(--pd-line); }

/* WooCommerce notices: no green, no blue; ink and accent with Woo's own icon */
.woocommerce-message, .woocommerce-info, .woocommerce-error, .woocommerce-noreviews, p.no-comments {
  background: var(--pd-paper-2) !important;
  color: var(--pd-ink) !important;
  border-top-color: var(--pd-accent) !important;
}
.woocommerce-error { border-top-color: var(--pd-accent-2) !important; }
.woocommerce-message::before, .woocommerce-info::before, .woocommerce-error::before { color: var(--pd-accent) !important; }
.woocommerce-form-coupon-toggle .woocommerce-info { background: transparent !important; border-top-color: var(--pd-line) !important; }
.woocommerce span.onsale { background: var(--pd-accent-2); color: var(--pd-paper); }
.woocommerce .star-rating span::before, .woocommerce p.stars a { color: var(--pd-accent); }
.woocommerce-store-notice, p.demo_store { background: var(--pd-ink) !important; color: var(--pd-paper) !important; }

/* checkout: calm, same palette */
.ck-bar, .ck-foot { background: var(--pd-paper); border-color: var(--pd-line); }
.aib-bump { background: var(--pd-paper-2); border-color: var(--pd-accent); }
.aib-bump-tag { background: var(--pd-accent-2); color: var(--pd-paper); }
.ck-main #payment, .woocommerce-checkout #payment { background: var(--pd-paper-2) !important; }
.woocommerce-checkout #payment div.payment_box { background: var(--pd-paper-3) !important; color: var(--pd-ink) !important; }
.woocommerce-checkout #payment div.payment_box::before { border-bottom-color: var(--pd-paper-3) !important; }

/* Tutor: recolor only */
.tutor-dashboard-menu-item.active > a, .tutor-dashboard-menu-item a:hover { color: var(--pd-accent-2) !important; }
.tutor-progress-bar .tutor-progress-value { background: var(--pd-accent) !important; }

/* the module one-liner was written for a dark card (--dhoa); on paper bands it needs ink-2 */
.band-paper .curric summary .mod-outcome, .band-tint .curric summary .mod-outcome, .band-warm .curric summary .mod-outcome { color: var(--pd-ink-2); }
/* bright terracotta where it carries no small text */
.brand-mark, .tier.featured, .faq details[open] { border-color: var(--pd-accent); }

/* pages-v3 used the old green-tint token as TEXT on the dark pass box */
.v3-pass-save { color: var(--pd-accent-on-dark); }
.v3-stars { color: rgba(43,42,51,.3); }

/* the Messenger chat bubble (plugin) */
.wpsr-fm-btn.messenger, .wpsr-fm-bubble-btn.messenger { background-color: var(--pd-accent-2) !important; }
.wpsr-fm-chat, .wpsr-fm-chat-room { background-color: var(--pd-paper) !important; }
.wpsr-fm-chat-header { background-color: var(--pd-paper-2) !important; color: var(--pd-ink) !important; }
.wpsr-fm-chat-bubble span, .wpsr-fm-chat-bubbles span { background-color: var(--pd-ink-2) !important; }
hr { border-color: var(--pd-line); color: var(--pd-line); }
.required, abbr.required, .woocommerce form .form-row .required { color: var(--pd-accent-2) !important; }
.tutor-dashboard, .tutor-wrap, .tutor-course-single-content-wrapper, .tutor-course-details-page { font-family: var(--f-bn); }

/* blog article pieces */
.post-body a { color: var(--pd-accent-2); text-decoration-color: rgba(185,83,60,.5); }
.post-body a:hover { color: var(--pd-accent); }
.post-body .tldr { background: var(--pd-paper-2); border-color: var(--pd-line); border-left: 4px solid var(--pd-accent); }
.post-body .callout { background: var(--pd-paper-2); border-left-color: var(--pd-accent); }
.post-body .nextstep { background: var(--pd-ink); }
.post-body .nextstep p { color: var(--pd-paper-muted); }
.post-body .nextstep a { color: var(--pd-paper); text-decoration-color: var(--pd-accent); }
.post-body blockquote { border-left-color: var(--pd-accent); }
.post-rail .toc a.is-here { color: var(--pd-accent-2); border-left-color: var(--pd-accent); }
.blog-pager .page-numbers.current { background: var(--pd-accent-2); color: var(--pd-paper); }

/* plugin popups (NotificationX) to the same palette */
.notificationx-frontend .notificationx-inner, .nx-notification .notificationx-inner { background: var(--pd-paper-2) !important; color: var(--pd-ink) !important; }

/* inc/auto/get-paid.php prints this one with an inline blue fallback */
.aib-get-paid-note, .get-paid-note { border-left-color: var(--pd-accent) !important; background: var(--pd-accent-tint) !important; }

/* ---------------------------------------------- 10. highlight marker
   Accent tint under the words, painted per line fragment so it follows a
   wrapped phrase. It draws in left to right when paper-dusk.js marks it. */
mark, .hl, .pd-mark {
  color: inherit;
  background-color: transparent;
  background-image: linear-gradient(var(--pd-accent-tint), var(--pd-accent-tint));
  background-repeat: no-repeat;
  background-position: 0 70%;
  background-size: 100% .5em;
  padding-inline: .08em;
  -webkit-box-decoration-break: clone;
          box-decoration-break: clone;
}
.hero h1 .hl { background-image: linear-gradient(var(--pd-accent-tint), var(--pd-accent-tint)); color: inherit; }
.band-dark mark, .band-dark .hl { background-image: linear-gradient(rgba(185,83,60,.45), rgba(185,83,60,.45)); }

/* ---------------------------------------------- 11. motion (paper-dusk.js)
   Every hidden starting state needs BOTH .pd-js on <html> (set by the inline
   head script only when motion is welcome: no prefers-reduced-motion, no
   Save-Data, not 2g) AND a class the script itself adds to the element. If the
   script never runs, nothing carries those classes and nothing is hidden.
   Transform and opacity only, except the marker, which grows its
   background-size once (a paint, no layout). */
.pd-js .pd-r {
  opacity: 0;
  transform: translate3d(0, 16px, 0);
  transition: opacity .6s ease var(--pd-d, 0ms), transform .6s cubic-bezier(.2, .7, .2, 1) var(--pd-d, 0ms);
}
.pd-js .pd-r.pd-in { opacity: 1; transform: none; }

.pd-js .pd-draw { background-size: 0 .5em; transition: background-size .9s cubic-bezier(.2, .7, .2, 1) .15s; }
.pd-js .pd-draw.pd-on { background-size: 100% .5em; }

.pd-js .pd-num { display: inline-block; font-variant-numeric: tabular-nums; }

@media (hover: hover) {
  .pd-js .pd-card { transition: transform .25s ease, box-shadow .25s ease; }
  .pd-js .pd-card:hover { transform: translate3d(0, -4px, 0) rotate(-.4deg); box-shadow: 0 16px 30px -18px rgba(43,42,51,.45); }
}
.pd-js .pd-card:active { transform: translate3d(0, -1px, 0) scale(.995); }

.pd-js .pd-sheen { position: relative; overflow: hidden; isolation: isolate; }
.pd-js .pd-sheen::after {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background: linear-gradient(100deg, transparent 30%, rgba(246,240,227,.5) 50%, transparent 70%);
  transform: translate3d(-120%, 0, 0);
}
.pd-js .pd-sheen.pd-go::after { transform: translate3d(120%, 0, 0); transition: transform 1s ease .3s; }

@media (prefers-reduced-motion: reduce) {
  .pd-js .pd-r { opacity: 1; transform: none; transition: none; }
  .pd-js .pd-draw { background-size: 100% .5em; transition: none; }
  .pd-js .pd-sheen::after { display: none; }
}
@media print {
  .pd-js .pd-r { opacity: 1; transform: none; }
  body::before { display: none; }
}


/* Footer legibility: the Paper Dusk muted grey on ink read soft; links and body
   text sit at 88% paper now (12:1 on ink), headings full paper. */
.site-foot, .site-foot p, .site-foot li, .site-foot a, .site-foot .legal { color: rgba(237, 230, 214, .88); }
.site-foot a:hover, .site-foot a:focus-visible { color: #F6F0E3; }
.site-foot h3, .site-foot h4 { color: #F6F0E3; }

/* The wordmark: in Hind Siliguri a capital I and a lowercase l are the same
   stroke, so "AIin" read "Alin". The Latin wordmark uses Verdana, whose I has
   serifs, everywhere the brand appears. */
.brand > span, .foot-brand > span, .gate-mark { font-family: Verdana, Tahoma, "Hind Siliguri", sans-serif; letter-spacing: -.02em; }

/* ------------------------------------------------------------------ curriculum
   The lesson list was flat grey rows. Now: a numbered module badge, numbered
   lessons with a type icon (video, text, quiz), a duration chip, a "ফ্রি" tag
   on preview lessons, hover lift, and a done tick for students. Paper Dusk only. */
.curric details { border-radius: 14px; overflow: hidden; border: 1px solid var(--pd-paper-3, #E2D8C4); transition: box-shadow .25s ease, transform .25s ease; }
.curric details:hover { box-shadow: 0 10px 26px rgba(43,42,51,.08); }
.curric details[open] { box-shadow: 0 14px 34px rgba(43,42,51,.10); }
.curric summary { display: grid !important; grid-template-columns: auto 1fr auto auto; align-items: center; gap: 16px; padding: 18px 22px !important; cursor: pointer; }
.curric summary .mod-n { width: 46px; height: 46px; border-radius: 12px; display: grid; place-items: center; background: var(--pd-ink, #2B2A33); color: var(--pd-paper, #EDE6D6); font-weight: 700; font-size: 1.05rem; transform: rotate(-3deg); box-shadow: 0 3px 0 rgba(43,42,51,.25); }
.curric details[open] summary .mod-n { background: var(--pd-accent-2, #9C4130); transform: rotate(0); transition: transform .3s ease, background .3s ease; }
.curric summary h3 { font-size: 1.15rem !important; line-height: 1.35; }
.curric summary .rt { background: rgba(185,83,60,.12); color: var(--pd-accent-2, #9C4130) !important; font-weight: 600; padding: 4px 12px; border-radius: 99px; font-size: .82rem !important; }
.curric summary .chev { font-size: 1.3rem; color: var(--pd-accent-2, #9C4130) !important; }
.curric .lessons { padding: 6px 12px 14px !important; display: flex; flex-direction: column; gap: 4px; border-top: 1px dashed var(--pd-paper-3, #E2D8C4); }
.curric .lesson { display: grid !important; grid-template-columns: 28px 30px 1fr auto auto; align-items: center; gap: 10px; padding: 11px 12px !important; border-radius: 10px; color: var(--pd-ink, #2B2A33) !important; font-size: 1rem; line-height: 1.45; transition: background .2s ease, transform .2s ease; }
.curric .lesson:hover { background: rgba(237,230,214,.7); transform: translateX(4px); }
.curric .lesson .ln { color: var(--pd-ink-2, #5D5A64); font-size: .85rem; text-align: right; font-variant-numeric: tabular-nums; }
.curric .lesson .kind { width: 28px; height: 28px; border-radius: 50%; display: grid; place-items: center; background: var(--pd-paper-2, #F6F0E3); border: 1px solid var(--pd-paper-3, #E2D8C4); position: relative; }
.curric .lesson .kind::before { content: ""; display: block; }
.curric .lesson .k-video::before { width: 0; height: 0; border-left: 8px solid var(--pd-accent, #B9533C); border-top: 5px solid transparent; border-bottom: 5px solid transparent; margin-left: 2px; }
.curric .lesson .k-text::before { width: 11px; height: 9px; border-top: 2px solid var(--pd-ink-2, #5D5A64); border-bottom: 2px solid var(--pd-ink-2, #5D5A64); box-shadow: inset 0 -3.5px 0 -1.5px var(--pd-ink-2, #5D5A64); }
.curric .lesson .k-quiz::before { content: "?"; font-weight: 700; font-size: .85rem; color: var(--pd-accent-2, #9C4130); }
.curric .lesson:hover .k-video { background: var(--pd-accent, #B9533C); }
.curric .lesson:hover .k-video::before { border-left-color: var(--pd-paper, #EDE6D6); }
.curric .lesson .t { min-width: 0; }
.curric .lesson .pv { font-style: normal; font-size: .72rem; font-weight: 700; color: var(--pd-paper, #EDE6D6); background: var(--pd-accent-2, #9C4130); padding: 2px 8px; border-radius: 99px; margin-left: 6px; vertical-align: 2px; }
.curric .lesson .mono { font-size: .8rem !important; color: var(--pd-ink-2, #5D5A64); background: var(--pd-paper-2, #F6F0E3); border: 1px solid var(--pd-paper-3, #E2D8C4); padding: 2px 9px; border-radius: 99px; font-variant-numeric: tabular-nums; }
.curric .lesson .tick { width: 22px; height: 22px; border-radius: 50%; border: 2px solid var(--pd-paper-3, #E2D8C4); display: grid; place-items: center; font-size: .75rem; color: var(--pd-paper, #EDE6D6); }
.curric .lesson.done .tick { background: var(--pd-accent-2, #9C4130); border-color: var(--pd-accent-2, #9C4130); }
.curric .lesson.done .t { color: var(--pd-ink-2, #5D5A64); }
.curric details[open] .lesson { animation: pdLessonIn .35s ease backwards; }
.curric details[open] .lesson:nth-child(2) { animation-delay: .03s } .curric details[open] .lesson:nth-child(3) { animation-delay: .06s } .curric details[open] .lesson:nth-child(4) { animation-delay: .09s } .curric details[open] .lesson:nth-child(5) { animation-delay: .12s } .curric details[open] .lesson:nth-child(n+6) { animation-delay: .15s }
@keyframes pdLessonIn { from { opacity: 0; transform: translateY(6px); } }
@media (max-width: 620px) {
  .curric summary { grid-template-columns: auto 1fr auto; gap: 12px; padding: 14px 14px !important; }
  .curric summary .rt { grid-column: 2; justify-self: start; }
  .curric summary .chev { grid-row: 1; grid-column: 3; }
  .curric .lesson { grid-template-columns: 22px 26px 1fr auto; gap: 8px; }
  .curric .lesson .tick { display: none; }
}
@media (prefers-reduced-motion: reduce) { .curric details[open] .lesson { animation: none; } .curric .lesson:hover { transform: none; } }

/* Lesson rows, clean and minimal (2026-10-08): one line per lesson for buyers and
   students alike. Flex, not grid, so the old 3-column .is-link grid in main.css
   cannot wrap the row into a stretched duration "slider". Duration is plain
   muted text, the tick only shows for students. */
.curric .lessons .lesson,
.curric .lessons .lesson.is-link {
  display: flex !important; align-items: center; gap: 12px; flex-wrap: nowrap;
  margin: 0 !important; padding: 10px 12px !important; border-radius: 8px;
  grid-template-columns: none !important; text-decoration: none;
}
.curric .lessons .lesson .ln { flex: 0 0 22px; text-align: right; font-size: .82rem; color: var(--pd-ink-2, #5D5A64); }
.curric .lessons .lesson .kind { flex: 0 0 22px; width: 22px; height: 22px; background: transparent; border: 1px solid var(--pd-paper-3, #E2D8C4); }
.curric .lessons .lesson .k-video::before { border-left-width: 6px; border-top-width: 4px; border-bottom-width: 4px; }
.curric .lessons .lesson:hover .k-video { background: var(--pd-accent, #B9533C); border-color: var(--pd-accent, #B9533C); }
.curric .lessons .lesson .t { flex: 1 1 auto; min-width: 0; color: var(--pd-ink, #2B2A33); }
.curric .lessons .lesson .mono { flex: 0 0 auto; background: none !important; border: 0 !important; padding: 0 !important; font-size: .82rem !important; color: var(--pd-ink-2, #5D5A64); }
.curric .lessons .lesson .tick { flex: 0 0 18px; order: 10; width: 18px; height: 18px; border-width: 1.5px; font-size: .65rem; }
.curric .lessons .lesson:not(.done) .tick { border-color: var(--pd-paper-3, #E2D8C4); background: transparent; }
.curric .lessons .lesson:hover { background: rgba(185,83,60,.06); transform: none; }
.curric .lessons .lesson.is-link:hover .t { color: var(--pd-accent-2, #9C4130); }
@media (max-width: 620px) {
  .curric .lessons .lesson, .curric .lessons .lesson.is-link { gap: 9px; padding: 9px 6px !important; }
  .curric .lessons .lesson .tick { display: grid; }
}

/* ---------------------------------------------- 9. audit 4 (content and design), 2026-10-08 */

/* Payment strip: no sideways scroll (owner: no sliders anywhere). Desktop shows
   the artwork once; on phones the same image is cut at the gap after the 12th
   logo column (x 1186 of 2400) and the halves stack, at the same scale the old
   scroller used, so the logos stay as legible as before. */
.pay-half { display: block; }
.pay-half-r { display: none; }
@media (max-width: 720px) {
  .pay-scroll { overflow: visible; display: grid; gap: 6px; }
  .pay-strip::after, .pay-band .pay-strip::after { display: none; }
  .pay-half, .pay-half-r { display: block; position: relative; overflow: hidden; aspect-ratio: 1214 / 268; }
  .pay-strip .pay-half img { position: absolute; top: 0; height: 100%; width: auto; min-width: 0; max-width: none; }
  .pay-half-l img { left: 0; clip-path: inset(0 50.58% 0 0); }
  .pay-half-r img { right: 0; }
}

/* Tutor 4 (dashboard, lessons, quizzes): the font and the colour tokens that
   sections 2 and 3 did not reach yet. Found by listing every light-theme token
   in tutor-core.min.css that still resolved to a non Paper Dusk colour (green
   success buttons, red destructive buttons, cyan/purple/pink stat cards, lime
   highlights, a blue video play button) and every literal colour in Tutor's
   CSS that a student can meet. Same rules: success uses ink, errors and
   warnings use terracotta, greys become paper shades. */
html:root, html [data-tutor-theme=light] {
  --tutor-font-family-body: "Hind Siliguri", system-ui, sans-serif;
  --tutor-font-family-heading: "Hind Siliguri", system-ui, sans-serif;
  --tutor-color-hints: var(--pd-ink-2);
  --tutor-button-destructive: var(--pd-accent-2);
  --tutor-button-destructive-hover: var(--pd-ink-3);
  --tutor-button-destructive-focused: var(--pd-accent-2);
  --tutor-button-destructive-soft: var(--pd-paper-3);
  --tutor-button-destructive-soft-hover: var(--pd-line);
  --tutor-button-destructive-soft-focused: var(--pd-paper-3);
  --tutor-button-success: var(--pd-ink);
  --tutor-button-success-hover: var(--pd-ink-3);
  --tutor-button-success-focused: var(--pd-ink);
  --tutor-button-secondary: var(--pd-paper-3);
  --tutor-button-secondary-hover: var(--pd-line);
  --tutor-button-secondary-focused: var(--pd-paper-3);
  --tutor-button-outline-hover: var(--pd-paper-3);
  --tutor-button-ghost-hover: var(--pd-paper-3);
  --tutor-button-disabled: var(--pd-paper-3);
  --tutor-tab-sidebar-l2: var(--pd-paper-2);
  --tutor-tab-sidebar-l2-hover: var(--pd-paper-3);
  --tutor-tab-sidebar-l4-hover: var(--pd-paper-3);
  --tutor-tab-l3-active-hover: var(--pd-paper-3);
  --tutor-actions-success-primary: var(--pd-ink);
  --tutor-actions-success-secondary: var(--pd-line);
  --tutor-actions-success-tertiary: var(--pd-paper-2);
  --tutor-actions-success-exception: var(--pd-ink);
  --tutor-actions-warning-primary: var(--pd-accent);
  --tutor-actions-warning-secondary: var(--pd-paper-3);
  --tutor-actions-warning-tertiary: var(--pd-paper-2);
  --tutor-actions-warning-exception: var(--pd-accent-2);
  --tutor-actions-gray-empty: var(--pd-paper-2);
  --tutor-actions-gray-secondary: var(--pd-paper-3);
  --tutor-actions-gray-tertiary: var(--pd-paper-3);
  --tutor-actions-gray-quaternary: var(--pd-line);
  --tutor-actions-critical-primary: var(--pd-accent-2);
  --tutor-actions-critical-secondary: var(--pd-paper-3);
  --tutor-actions-exception3-highlight: var(--pd-accent-tint);
  --tutor-actions-caution: var(--pd-accent);
  --tutor-actions-caution-secondary: var(--pd-paper-3);
  --tutor-actions-exception5: var(--pd-accent-2);
  --tutor-actions-exception6: var(--pd-paper-2);
  --tutor-surface-exception3-highlight: var(--pd-accent-tint);
  --tutor-quiz-idle: var(--pd-paper-2);
  --tutor-quiz-hover: var(--pd-paper-3);
  --tutor-visual-gray-2: var(--pd-paper-3);
  --tutor-visual-gray-3: var(--pd-line);
  --tutor-visual-gray-4: var(--pd-ink);
  --tutor-visual-success-1: var(--pd-ink);
  --tutor-visual-success-2: var(--pd-ink);
  --tutor-visual-critical-1: var(--pd-accent-2);
  --tutor-visual-critical-2: var(--pd-paper-3);
  --tutor-visual-caution-1: var(--pd-accent);
  --tutor-visual-caution-2: var(--pd-accent-2);
  --tutor-visual-caution-3: var(--pd-ink);
  --tutor-visual-orange-1: var(--pd-accent);
  --tutor-visual-exception-1: var(--pd-accent);
  --tutor-visual-exception-2: var(--pd-accent);
  --tutor-visual-exception-3: var(--pd-accent-2);
  --plyr-color-main: var(--pd-accent-2);
  --plyr-video-control-background-hover: var(--pd-accent-2);
}
.tutor-color-success, .tutor-coming-soon-wrapper .tutor-color-success { color: var(--pd-ink) !important; }
.tutor-color-warning, .tutor-color-danger { color: var(--pd-accent-2) !important; }
.tutor-bg-success { background-color: var(--pd-ink) !important; }
.tutor-bg-warning, .tutor-bg-danger, .tutor-btn-danger { background-color: var(--pd-accent-2) !important; }
.tutor-ratings-stars, .individual-review-rating-wrap, .individual-review-rating-wrap i,
.course-avg-rating-html i, .single-instructor-wrap .single-instructor-bottom .ratings .rating-generated,
table.qna-list-table .tutor-icon-msg-important-fill-filled { color: var(--pd-accent) !important; }
.tutor-ratings-progress-bar .tutor-progress-value { background-color: var(--pd-accent) !important; }
.tutor-stat-card-icon { color: var(--pd-accent) !important; }
.tutor-stat-card-value { color: var(--pd-ink) !important; }
.tutor-video-player .plyr__control--overlaid { background: var(--pd-accent-2) !important; color: var(--pd-paper) !important; }
.tutor-quiz-intro-marks-correct::before { background-color: var(--pd-ink) !important; }
.tutor-quiz-intro-marks-incorrect::before { background-color: var(--pd-accent-2) !important; }
.tutor-quiz-attempt-details .tutor-quiz-question-review-action[data-review-status=correct]:has(input:checked) { background-color: var(--pd-ink) !important; }
.tutor-quiz-attempt-details .tutor-quiz-question-review-action[data-review-status=incorrect]:has(input:checked) { background-color: var(--pd-accent-2) !important; }
.tutor-quiz-type-boolean, .tutor-switch input:checked + .slider, .tutor-switch input:checked + .slider.tutor-switch-blue { background-color: var(--pd-accent-2) !important; }
.tutor-quiz-explanation-wrapper { background: var(--pd-paper-2) !important; border: 1px solid var(--pd-line); }
.tutor-greetings-modal .tutor-greetings-card .tutor-greetings-content::before,
.tutor-greetings-modal .tutor-greetings-card .tutor-greetings-content::after { background: var(--pd-accent) !important; }
.tutor-password-strength-hint .indicator span.weak::before { background-color: var(--pd-accent-2) !important; }
.tutor-password-strength-hint .indicator span.medium::before { background-color: var(--pd-accent) !important; }
.tutor-password-strength-hint .text.weak, .tutor-password-strength-hint .text.medium { color: var(--pd-accent-2) !important; }
.tutor-course-certificate-tabs.tutor-nav, .tutor-gradebook-finalgrade { background: var(--pd-paper-2) !important; border-color: var(--pd-line) !important; }
.tutor-notification-tab .tab-header-item::before { border-bottom-color: var(--pd-accent) !important; }
.tutor-status-blocked-context i, .quiz-incorrect-answer-text i { background: var(--pd-accent-2) !important; }
.tutor-quiz-time-expired, .tutor-instructor-rejection-notice a, .tutor-instructor-rejection-notice span i { color: var(--pd-accent-2) !important; }

/* The payback line on a course page carries its honest caveat (audit 4). */
.buybox .payback small { display: block; margin-top: 2px; font-size: .78rem; font-weight: 400; color: var(--pd-ink-2); line-height: 1.5; }

/* Blog tables of 3+ columns (inc/auto/stack-tables.php): on phones each row
   becomes a small card, each value under its column heading, so nothing
   scrolls sideways (owner: no sliders, no sideways rows). */
@media (max-width: 600px) {
  .post-body .fig-scroll:has(> table.aib-stack) { overflow: visible; }
  .post-body table.aib-stack, .post-body table.aib-stack tbody { display: block; width: 100%; }
  .post-body table.aib-stack thead, .post-body table.aib-stack tr:has(> th):not(:has(> td)) { display: none; }
  .post-body table.aib-stack tr { display: block; margin: 0 0 10px; padding: 6px 14px; background: var(--pd-paper-2); border: 1px solid var(--pd-line); border-radius: 10px; }
  .post-body table.aib-stack td, .post-body table.aib-stack tr > th { display: block; padding: 7px 0; border: 0; border-bottom: 1px solid var(--pd-line); text-align: left; }
  .post-body table.aib-stack tr > :last-child { border-bottom: 0; }
  .post-body table.aib-stack td[data-label] { display: grid; grid-template-columns: minmax(0, 38%) minmax(0, 1fr); gap: 10px; }
  .post-body table.aib-stack td[data-label]::before { content: attr(data-label); font-size: .8rem; font-weight: 700; color: var(--pd-ink-2); line-height: 1.5; }
  .post-body table.aib-stack tr:last-child td { border-bottom: 0; }
  .post-body table.aib-stack tr td:not(:last-child) { border-bottom: 1px solid var(--pd-line); }
}

/* Tutor buttons and fields set their own system font (Arial on the old login page). */
.tutor-btn, button.tutor-btn, .tutor-form-control, .tutor-form-select { font-family: "Hind Siliguri", system-ui, sans-serif; }

/* Lesson H1 (inc/tutor-chrome.php): Tutor's header title shows the course on
   wide screens and the lesson on phones. Wide screens now show both, the
   lesson after the course in muted ink, so the page's one H1 names the lesson
   at every width. Phones are unchanged. */
@media (min-width: 769px) {
  .aib-lesson-h1 .tutor-hidden.tutor-md-inline { display: inline; color: var(--pd-ink-2); font-weight: 400; }
  .aib-lesson-h1 .tutor-hidden.tutor-md-inline::before { content: "/"; margin: 0 .45em; color: var(--pd-ink-2); }
}

/* The brand word in running text (aib_wm() in inc/brand.php): the same Verdana
   stack as the logo, a touch smaller because Verdana runs wide next to Hind
   Siliguri. Copy 13 phase 3. */
.wm { font-family: Verdana, Tahoma, "Hind Siliguri", sans-serif; font-size: .9em; letter-spacing: -.02em; }
