/*
Theme Name:   Practice Ledger (Astra Child)
Theme URI:    https://example.com/
Description:  ICAI-aware child theme for a Chartered Accountancy practice. Ships compliance guard rails, structured data, AI-retrieval scaffolding and a statutory deadline board. Built for Basti, Gorakhpur and Ayodhya service areas.
Author:       Practice Ledger
Template:     astra
Version:      1.0.0
Text Domain:  capp
Requires PHP: 8.0
License:      GPL-2.0-or-later
*/

/* ============================================================
   DESIGN TOKENS
   Direction: "working paper". The visual language of a CA's
   real artefacts - ruled ledger paper, attestation seal ink,
   date stamps - rather than generic corporate navy/gold.
   ============================================================ */

:root{
  /* Surfaces */
  --paper:        #FCFBF9;   /* warm ledger white */
  --paper-sunk:   #F4F2ED;   /* recessed panels */
  --paper-edge:   #EAE6DE;

  /* Ink */
  --ink:          #151E2D;   /* deep ink navy, true not tinted-black */
  --ink-soft:     #4A5567;
  --ink-faint:    #7C8595;

  /* Rules - hairlines do the work that shadows usually do */
  --rule:         #DCD7CC;
  --rule-strong:  #C3BCAE;

  /* Accent: attestation seal ink. One accent only. */
  --seal:         #8C2F27;
  --seal-deep:    #6E241E;
  --seal-wash:    #F6EBE9;

  /* State: reviewed / verified */
  --verified:     #2F6B52;
  --verified-wash:#EDF4F0;

  /* Type scale - Elements of Typographic Style, 1.25 */
  --t-xs:   0.8125rem;
  --t-sm:   0.9375rem;
  --t-base: 1.0625rem;
  --t-md:   1.25rem;
  --t-lg:   1.5625rem;
  --t-xl:   1.953rem;
  --t-2xl:  2.441rem;
  --t-3xl:  3.052rem;

  /* Rhythm */
  --space-1: .5rem;  --space-2: .875rem; --space-3: 1.25rem;
  --space-4: 2rem;   --space-5: 3rem;    --space-6: 4.5rem;
  --space-7: 7rem;

  --measure: 68ch;
  --wrap: 1180px;
  --wrap-tight: 820px;

  --serif: "Source Serif 4", Georgia, "Noto Serif", serif;
  --sans:  "IBM Plex Sans", "IBM Plex Sans Devanagari", -apple-system, "Segoe UI", sans-serif;
  --deva:  "IBM Plex Sans Devanagari", "Noto Sans Devanagari", var(--sans);
}

/* ============================================================
   BASE
   ============================================================ */

html{ -webkit-text-size-adjust:100%; }

body{
  background:var(--paper);
  color:var(--ink);
  font-family:var(--sans);
  font-size:var(--t-base);
  line-height:1.65;
  font-feature-settings:"kern" 1, "liga" 1, "tnum" 0;
}

body:lang(hi), .lang-hi{ font-family:var(--deva); line-height:1.8; }

h1,h2,h3,h4{
  font-family:var(--serif);
  color:var(--ink);
  font-weight:600;
  letter-spacing:-0.012em;
  line-height:1.2;
  text-wrap:balance;
}
h1{ font-size:var(--t-2xl); }
h2{ font-size:var(--t-xl); margin-top:var(--space-5); }
h3{ font-size:var(--t-md); margin-top:var(--space-4); }

p, li{ max-width:var(--measure); }

a{ color:var(--seal); text-underline-offset:.18em; text-decoration-thickness:.06em; }
a:hover{ color:var(--seal-deep); }

:focus-visible{
  outline:2px solid var(--seal);
  outline-offset:3px;
  border-radius:2px;
}

.capp-wrap{ max-width:var(--wrap); margin-inline:auto; padding-inline:var(--space-3); }
.capp-wrap--tight{ max-width:var(--wrap-tight); }

/* ============================================================
   DEADLINE BOARD  —  the one bold element on the site.
   Factual, useful, ICAI-safe, and the reason people return.
   ============================================================ */

.capp-board{
  background:var(--ink);
  color:var(--paper);
  padding:var(--space-5) 0 var(--space-4);
  border-bottom:3px solid var(--seal);
}
.capp-board__head{
  display:flex; flex-wrap:wrap; gap:var(--space-2);
  align-items:baseline; justify-content:space-between;
  margin-bottom:var(--space-3);
}
.capp-board__title{
  font-family:var(--serif); font-size:var(--t-lg);
  color:var(--paper); margin:0;
}
.capp-board__stamp{
  font-size:var(--t-xs); color:#A9B4C4;
  font-variant-numeric:tabular-nums;
}
.capp-board__grid{
  display:grid; gap:1px;
  background:rgba(255,255,255,.14);
  grid-template-columns:repeat(auto-fit, minmax(230px,1fr));
  border:1px solid rgba(255,255,255,.14);
}
.capp-due{ background:var(--ink); padding:var(--space-3); }
.capp-due__date{
  font-family:var(--serif); font-size:var(--t-lg);
  font-variant-numeric:tabular-nums; color:var(--paper);
  display:block; line-height:1.1;
}
.capp-due__form{ font-size:var(--t-sm); color:#C7D0DC; margin:.35rem 0 0; max-width:none; }
.capp-due__what{ font-size:var(--t-xs); color:#94A0B0; margin:.2rem 0 0; max-width:none; }
.capp-due__count{
  display:inline-block; margin-top:var(--space-2);
  font-size:var(--t-xs); font-variant-numeric:tabular-nums;
  padding:.15rem .5rem; border:1px solid rgba(255,255,255,.28);
}
.capp-due--near .capp-due__count{ background:var(--seal); border-color:var(--seal); color:#fff; }

/* ============================================================
   DOCUMENT BLOCKS
   ============================================================ */

.capp-answer{
  border-left:3px solid var(--seal);
  background:var(--seal-wash);
  padding:var(--space-3) var(--space-3) var(--space-3) var(--space-4);
  margin:var(--space-4) 0;
}
.capp-answer p{ margin:0; font-size:var(--t-md); line-height:1.55; }

.capp-meta{
  display:flex; flex-wrap:wrap; gap:var(--space-3);
  border-block:1px solid var(--rule);
  padding-block:var(--space-2);
  margin-block:var(--space-3) var(--space-4);
  font-size:var(--t-xs); color:var(--ink-soft);
  font-variant-numeric:tabular-nums;
}
.capp-meta__reviewed{ color:var(--verified); }

.capp-author{
  border:1px solid var(--rule);
  background:var(--paper-sunk);
  padding:var(--space-3);
  display:grid; grid-template-columns:auto 1fr; gap:var(--space-3);
  align-items:start;
  margin-block:var(--space-5);
}
.capp-author img{ width:76px; height:76px; object-fit:cover; border:1px solid var(--rule-strong); }
.capp-author__name{ font-family:var(--serif); font-size:var(--t-md); margin:0 0 .25rem; }
.capp-author__creds{ font-size:var(--t-sm); color:var(--ink-soft); margin:0; }
.capp-author__creds b{ font-weight:600; color:var(--ink); }

/* Source citation row - every regulatory claim carries its notification */
.capp-source{
  font-size:var(--t-xs);
  border-left:2px solid var(--rule-strong);
  padding-left:var(--space-2);
  color:var(--ink-soft);
  margin-block:var(--space-2);
}

/* ============================================================
   INDEXES  —  ruled rows, not cards. No shadows anywhere.
   ============================================================ */

.capp-index{ list-style:none; margin:0; padding:0; border-top:1px solid var(--rule); }
.capp-index li{ max-width:none; border-bottom:1px solid var(--rule); }
.capp-index a{
  display:grid; grid-template-columns:1fr auto; gap:var(--space-3);
  align-items:baseline; padding:var(--space-3) 0;
  color:var(--ink); text-decoration:none;
}
.capp-index a:hover{ background:var(--paper-sunk); }
.capp-index__title{ font-family:var(--serif); font-size:var(--t-md); }
.capp-index__date{ font-size:var(--t-xs); color:var(--ink-faint); font-variant-numeric:tabular-nums; }
.capp-index__excerpt{ font-size:var(--t-sm); color:var(--ink-soft); margin:.3rem 0 0; grid-column:1/-1; }

/* ============================================================
   SERVICE / LOCATION HEADERS
   ============================================================ */

.capp-hdr{ border-bottom:1px solid var(--rule); padding-block:var(--space-5) var(--space-4); }
.capp-hdr h1{ margin:0 0 var(--space-2); }
.capp-hdr__sub{ font-size:var(--t-md); color:var(--ink-soft); max-width:var(--measure); margin:0; }

.capp-jurisdiction{
  display:grid; gap:1px; background:var(--rule);
  border:1px solid var(--rule); margin-block:var(--space-4);
  grid-template-columns:repeat(auto-fit,minmax(200px,1fr));
}
.capp-jurisdiction div{ background:var(--paper); padding:var(--space-3); }
.capp-jurisdiction dt{ font-size:var(--t-xs); color:var(--ink-faint); margin:0 0 .25rem; }
.capp-jurisdiction dd{ margin:0; font-size:var(--t-sm); }

/* ============================================================
   FORMS  —  enquiry is a pull request, not a sales funnel
   ============================================================ */

.capp-form label{ display:block; font-size:var(--t-sm); margin-bottom:.3rem; color:var(--ink-soft); }
.capp-form input, .capp-form select, .capp-form textarea{
  width:100%; padding:.7rem .8rem; font:inherit; font-size:var(--t-sm);
  border:1px solid var(--rule-strong); background:#fff; border-radius:0; color:var(--ink);
}
.capp-form input:focus, .capp-form textarea:focus{ border-color:var(--seal); }
.capp-btn{
  display:inline-block; background:var(--ink); color:var(--paper);
  border:1px solid var(--ink); padding:.75rem 1.5rem; font:inherit;
  font-size:var(--t-sm); cursor:pointer; border-radius:0; text-decoration:none;
}
.capp-btn:hover{ background:var(--seal); border-color:var(--seal); color:#fff; }

/* ============================================================
   FOOTER REGULATORY BLOCK
   ============================================================ */

.capp-reg{
  border-top:3px solid var(--ink);
  background:var(--paper-sunk);
  padding-block:var(--space-4);
  font-size:var(--t-sm);
}
.capp-reg dl{ display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:var(--space-3); }
.capp-reg dt{ font-size:var(--t-xs); color:var(--ink-faint); }
.capp-reg dd{ margin:.15rem 0 0; }
.capp-reg__note{ margin-top:var(--space-3); color:var(--ink-soft); font-size:var(--t-xs); max-width:var(--measure); }

/* ============================================================
   RESPONSIVE + PREFERENCES
   ============================================================ */

@media (max-width:640px){
  :root{ --t-2xl:1.95rem; --t-xl:1.6rem; --space-6:3rem; --space-7:4rem; }
  .capp-index a{ grid-template-columns:1fr; }
  .capp-author{ grid-template-columns:1fr; }
}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{ animation-duration:.01ms !important; transition-duration:.01ms !important; }
}

@media print{
  .capp-board, .capp-form, nav{ display:none; }
  body{ background:#fff; font-size:11pt; }
}
