/* Students Awaz — custom platform styles v1.0
   One file. CSS variables. Mobile-first. No frameworks. */

:root{
  --bg:#FFFFFF;
  --bg-soft:#F7F8FA;
  --text:#16181D;
  --text-soft:#5C6270;
  --accent:#2563EB;
  --accent-dark:#1D4ED8;
  --success:#16A34A;
  --border:#E5E7EB;
  --radius:12px;
  --shadow:0 1px 3px rgba(0,0,0,.06);
}
[data-theme="dark"]{
  --bg:#101215; --bg-soft:#1A1D22; --text:#F3F4F6;
  --text-soft:#9CA3AF; --border:#2A2E35;
  --shadow:0 1px 3px rgba(0,0,0,.4);
}

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  font-family:-apple-system,"Segoe UI",Roboto,"Noto Sans",sans-serif;
  font-size:16px;line-height:1.6;color:var(--text);background:var(--bg);
}
img{max-width:100%}
a{color:var(--accent);text-decoration:none}
a:hover{color:var(--accent-dark)}
h1{font-size:28px;font-weight:600;line-height:1.3}
h2{font-size:22px;font-weight:600;margin-bottom:16px}
h3{font-size:18px;font-weight:600}
.wrap{max-width:1100px;margin:0 auto;padding:0 16px}

/* ---------- Header ---------- */
.site-header{
  position:sticky;top:0;z-index:50;background:var(--bg);
  border-bottom:1px solid var(--border);
}
.header-in{display:flex;align-items:center;gap:16px;min-height:64px}
.logo{display:inline-flex;flex-direction:column;line-height:1;color:var(--text)}
.logo-text{
  font-family:'Caveat','Segoe Script','Bradley Hand',cursive;
  font-size:27px;font-weight:700;letter-spacing:.5px;
}
.logo-text span{color:var(--accent)}
.logo-line{width:120px;height:8px;color:var(--accent);margin-top:1px}
.logo-line path{
  stroke-dasharray:160;stroke-dashoffset:160;
  animation:logo-draw .9s ease .2s forwards;
}
@keyframes logo-draw{to{stroke-dashoffset:0}}
.logo:hover .logo-line path{animation:logo-draw .6s ease forwards}
.site-nav{margin-left:auto}
.site-nav ul{list-style:none;display:flex;gap:8px;align-items:center}
.site-nav a{display:block;padding:8px 10px;color:var(--text);font-size:15px;border-radius:8px}
.site-nav a:hover{background:var(--bg-soft);color:var(--accent)}
.has-drop{position:relative}
.site-nav ul.drop{
  display:none;position:absolute;top:100%;left:0;min-width:220px;
  background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);
  box-shadow:0 8px 24px rgba(0,0,0,.08);padding:8px;flex-direction:column;gap:0;
}
.site-nav .has-drop:hover ul.drop,.site-nav .has-drop:focus-within ul.drop{display:flex}
.drop a{padding:8px 12px;width:100%}
.theme-btn{
  background:none;border:1px solid var(--border);border-radius:8px;color:var(--text);
  width:40px;height:40px;font-size:16px;cursor:pointer;flex-shrink:0;
}
.nav-toggle{display:none}
.nav-burger{display:none;cursor:pointer;margin-left:auto;padding:8px}
.nav-burger span{display:block;width:22px;height:2px;background:var(--text);margin:5px 0;border-radius:2px}

@media (max-width:900px){
  .nav-burger{display:block}
  .site-nav{
    display:none;position:fixed;inset:64px 0 0 0;background:var(--bg);
    overflow-y:auto;padding:16px;margin:0;
  }
  .nav-toggle:checked ~ .site-nav{display:block}
  .site-nav ul{flex-direction:column;align-items:stretch;gap:0}
  .site-nav a{padding:14px 8px;font-size:16px;border-bottom:1px solid var(--border)}
  .site-nav ul.drop{display:flex;position:static;border:none;box-shadow:none;padding:0 0 0 16px;min-width:0}
  .nav-burger{margin-left:auto}
}

/* ---------- Hero ---------- */
.hero{background:var(--bg-soft);padding:48px 0;text-align:center}
.hero-sub{color:var(--text-soft);margin:16px auto 24px;max-width:640px}
.search-box{max-width:560px;margin:0 auto}
#tool-search{
  width:100%;height:52px;font-size:16px;padding:0 16px;
  border:1px solid var(--border);border-radius:var(--radius);
  background:var(--bg);color:var(--text);
}
#tool-search:focus{outline:2px solid var(--accent);border-color:var(--accent)}
.chips{list-style:none;display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin-top:24px}
.chips li{
  font-size:14px;color:var(--text-soft);background:var(--bg);
  border:1px solid var(--border);border-radius:999px;padding:6px 14px;
}

/* ---------- Seasonal banner ---------- */
.season-banner{
  display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;
  background:var(--bg-soft);border:1px solid var(--border);border-radius:var(--radius);
  padding:16px 24px;margin:32px 0 0;
}
.season-banner strong{font-size:18px}
.season-banner p{color:var(--text-soft);font-size:15px}

/* ---------- Buttons ---------- */
.btn{
  display:inline-block;background:var(--accent);color:#fff;font-weight:600;
  min-height:48px;line-height:48px;padding:0 24px;border-radius:var(--radius);
  border:none;cursor:pointer;font-size:16px;
}
.btn:hover{background:var(--accent-dark);color:#fff}
@media (max-width:600px){.btn{width:100%;text-align:center}}

/* ---------- Grids & cards ---------- */
section.wrap{margin-top:48px}
.grid{display:grid;gap:16px}
.grid-4{grid-template-columns:repeat(4,1fr)}
.grid-3{grid-template-columns:repeat(3,1fr)}
@media (max-width:900px){.grid-4{grid-template-columns:repeat(2,1fr)}.grid-3{grid-template-columns:repeat(2,1fr)}}
@media (max-width:520px){.grid-4,.grid-3{grid-template-columns:1fr 1fr}.grid-3{grid-template-columns:1fr}}

.card{
  position:relative;display:flex;flex-direction:column;gap:4px;
  background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);
  box-shadow:var(--shadow);padding:16px;color:var(--text);
}
a.card:hover{border-color:var(--accent);color:var(--text)}
a.card:hover .tool-name{color:var(--accent)}
.tool-icon{font-size:24px}
.tool-name{font-weight:600;font-size:16px}
.tool-desc{font-size:14px;color:var(--text-soft)}
.is-soon{opacity:.75}
.badge{
  position:absolute;top:12px;right:12px;font-size:12px;font-weight:600;
  color:var(--text-soft);background:var(--bg-soft);border:1px solid var(--border);
  border-radius:999px;padding:2px 10px;
}
.cat-head{display:flex;align-items:baseline;justify-content:space-between;gap:16px}
.view-all{font-size:15px;white-space:nowrap}
.sec-sub{color:var(--text-soft);margin:-8px 0 16px}

/* ---------- Resources ---------- */
.resources{background:var(--bg-soft);margin-top:48px;padding:48px 0}
.res-card .tool-desc{font-size:14px}

/* ---------- Latest updates ---------- */
.latest-list{list-style:none}
.latest-list li{
  display:flex;justify-content:space-between;gap:16px;align-items:baseline;
  padding:12px 0;border-bottom:1px solid var(--border);
}
.latest-list time{font-size:14px;color:var(--text-soft);white-space:nowrap}

/* ---------- About ---------- */
.about-strip p{color:var(--text-soft);max-width:820px}

/* ---------- FAQ ---------- */
.faq-sec{margin-bottom:64px}
.faq{
  border:1px solid var(--border);border-radius:var(--radius);
  padding:0 16px;margin-bottom:8px;background:var(--bg);
}
.faq summary{
  cursor:pointer;font-weight:600;padding:14px 0;list-style:none;position:relative;
}
.faq summary::after{content:"+";position:absolute;right:0;color:var(--text-soft)}
.faq[open] summary::after{content:"–"}
.faq p{padding:0 0 14px;color:var(--text-soft)}

/* ---------- Search filter ---------- */
.searchable .hide{display:none}

/* ---------- Footer ---------- */
.site-footer{background:var(--bg-soft);border-top:1px solid var(--border);margin-top:0;padding:48px 0 24px}
.foot-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:24px}
@media (max-width:900px){.foot-grid{grid-template-columns:repeat(2,1fr)}}
.foot-grid h3{font-size:15px;margin-bottom:8px}
.foot-grid ul{list-style:none}
.foot-grid a{display:block;padding:4px 0;font-size:14px;color:var(--text-soft)}
.foot-grid a:hover{color:var(--accent)}
.foot-bottom{margin-top:32px;padding-top:16px;border-top:1px solid var(--border);text-align:center}
.foot-bottom p{font-size:14px;color:var(--text-soft)}
.foot-tag{margin-top:4px}

/* ============ Batch 2: tool page components ============ */
.tool-page{max-width:720px;margin-left:auto;margin-right:auto}
.breadcrumb{font-size:14px;color:var(--text-soft);margin:24px 0 8px}
.breadcrumb a{color:var(--text-soft)}
.breadcrumb a:hover{color:var(--accent)}
.crumb-sep{margin:0 4px}
.answer-capsule{color:var(--text-soft);margin:16px 0 24px}

.calc-box{
  background:var(--bg-soft);border:1px solid var(--border);
  border-radius:var(--radius);padding:24px;margin:0 0 8px;
}
.calc-row{display:grid;grid-template-columns:2fr 1fr;gap:16px;margin-bottom:16px}
.calc-row label{font-size:14px;font-weight:600;display:block}
.calc-row input,.calc-row select{
  width:100%;height:52px;font-size:16px;padding:0 12px;margin-top:4px;
  border:1px solid var(--border);border-radius:var(--radius);
  background:var(--bg);color:var(--text);
}
.calc-row input:focus,.calc-row select:focus{outline:2px solid var(--accent);border-color:var(--accent)}
.calc-box .btn{width:100%;margin-top:8px}
.calc-box .btn-soft{margin-bottom:8px}
.btn-soft{
  display:inline-block;background:var(--bg);border:1px solid var(--border);
  color:var(--text);font-weight:600;min-height:48px;line-height:46px;
  padding:0 20px;border-radius:var(--radius);cursor:pointer;font-size:15px;
  transition:border-color .15s ease;
}
.btn-soft:hover{border-color:var(--accent);color:var(--accent)}
.btn-wa{
  display:inline-block;background:#25D366;color:#fff;font-weight:600;
  min-height:48px;line-height:48px;padding:0 20px;border-radius:var(--radius);
  font-size:15px;
}
.btn-wa:hover{background:#1EBE5B;color:#fff}

.result-box{
  background:var(--bg);border:1px solid var(--border);border-left:4px solid var(--success);
  border-radius:var(--radius);padding:24px;margin-top:16px;text-align:center;
  animation:sa-fade .2s ease;
}
@keyframes sa-fade{from{opacity:0}to{opacity:1}}
.result-label{font-size:14px;color:var(--text-soft)}
.result-num{font-size:32px;font-weight:600;color:var(--success);margin:4px 0}
.result-sub{font-size:14px;color:var(--text-soft);margin-bottom:8px}
.result-actions{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin-top:8px}

.updated-line{font-size:14px;color:var(--text-soft);margin:8px 0 32px}
.tool-page h2{margin-top:40px}
.tool-page h3{margin-top:24px;margin-bottom:8px}
.formula{
  background:var(--bg-soft);border:1px solid var(--border);border-radius:var(--radius);
  padding:16px;margin:16px 0;overflow-x:auto;
}
.formula code{font-size:15px}
.example-list{margin:8px 0 16px 24px}
.example-list li{margin-bottom:4px}
.note{font-size:14px;color:var(--text-soft);font-style:italic}

.data-table{width:100%;border-collapse:collapse;margin:16px 0;font-size:15px}
.data-table th,.data-table td{
  border:1px solid var(--border);padding:10px 12px;text-align:left;
}
.data-table th{background:var(--bg-soft);font-weight:600}
.data-table tr:nth-child(even) td{background:var(--bg-soft)}

.cta-banner{
  background:var(--bg-soft);border:1px solid var(--border);border-radius:var(--radius);
  padding:16px 24px;margin:40px 0 48px;display:flex;align-items:center;
  justify-content:space-between;gap:16px;flex-wrap:wrap;
}
.cta-banner p{font-size:15px;color:var(--text-soft)}
.cta-banner .btn{flex-shrink:0}

@media (max-width:600px){
  .calc-row{grid-template-columns:1fr 1fr}
}
@media (prefers-reduced-motion: reduce){
  *{transition:none!important;animation:none!important}
}

/* ---------- v4: discovery menu + unified WP chrome ---------- */
.site-nav ul{gap:2px}
.site-nav > ul > li > a{padding:8px 9px;font-size:14.5px;white-space:nowrap}
.has-drop > a::after{content:" ▾";font-size:10px;color:var(--text-soft)}
.site-nav ul.drop{min-width:240px}
.drop-head{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.6px;color:var(--text-soft);padding:8px 12px 2px;list-style:none}
.drop-all a{color:var(--accent);font-weight:600}
.drop-right{left:auto;right:0}
.foot-hubs{text-align:center;padding:10px 0;font-size:14px;border-top:1px solid var(--border)}
.foot-hubs a{color:var(--text-soft)}
.foot-hubs a:hover{color:var(--accent)}
@media (max-width:1080px){.site-nav > ul > li > a{padding:8px 6px;font-size:14px}}
@media (max-width:900px){
  .has-drop > a::after{content:""}
  .drop-head{padding:12px 8px 2px}
}
/* WordPress side: hide GeneratePress chrome, ours is injected instead */
.sa-wp #masthead,.sa-wp #mobile-menu-control-wrapper,.sa-wp #footer-widgets,
.sa-wp div.site-footer,.sa-wp footer.site-info{display:none!important}
.sa-wp header.site-header{background:var(--bg);border-bottom:1px solid var(--border)}
.sa-wp footer.site-footer{margin-top:32px}
.site-nav ul.drop{align-items:stretch;text-align:left}

/* ---------- v5: animated homepage ---------- */
.hero{position:relative;overflow:hidden;background:linear-gradient(120deg,#EEF4FF,#F5F0FF,#EFF8FF,#EEF4FF);background-size:300% 300%;animation:sa-grad 16s ease infinite}
[data-theme="dark"] .hero{background:linear-gradient(120deg,#131A2A,#1A1530,#10202E,#131A2A);background-size:300% 300%}
@keyframes sa-grad{0%{background-position:0% 50%}50%{background-position:100% 50%}100%{background-position:0% 50%}}
.hero .blob{position:absolute;border-radius:50%;filter:blur(60px);opacity:.55;pointer-events:none;animation:sa-float 13s ease-in-out infinite}
.blob-1{width:300px;height:300px;background:#BFD3FE;top:-90px;left:-70px}
.blob-2{width:240px;height:240px;background:#DDD1FE;bottom:-80px;right:-50px;animation-delay:-6s}
.blob-3{width:160px;height:160px;background:#C7F0DB;top:30%;right:12%;animation-delay:-3s;opacity:.4}
[data-theme="dark"] .blob-1{background:#1E3A8A}[data-theme="dark"] .blob-2{background:#4C1D95}[data-theme="dark"] .blob-3{background:#065F46}
@keyframes sa-float{0%,100%{transform:translateY(0) scale(1)}50%{transform:translateY(26px) scale(1.07)}}
.hero .wrap{position:relative}
.hero-line{width:230px;height:12px;color:var(--accent);display:block;margin:4px auto 0}
.hero-line path{stroke-dasharray:260;stroke-dashoffset:260;animation:logo-draw 1s ease .55s forwards}
@media (prefers-reduced-motion: no-preference){
  .fade-up{opacity:0;transform:translateY(16px);animation:sa-up .6s ease forwards}
  .d1{animation-delay:.05s}.d2{animation-delay:.2s}.d3{animation-delay:.35s}.d4{animation-delay:.5s}
  .reveal{opacity:0;transform:translateY(20px);transition:opacity .55s ease,transform .55s ease}
  .reveal.in{opacity:1;transform:none}
}
@keyframes sa-up{to{opacity:1;transform:none}}
/* stats band */
.stats-band{background:var(--bg);border-bottom:1px solid var(--border)}
.stats-in{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;padding:24px 16px;text-align:center}
.stat-num{display:block;font-size:32px;font-weight:700;color:var(--accent);font-variant-numeric:tabular-nums;line-height:1.2}
.stat-lbl{font-size:14px;color:var(--text-soft)}
@media(max-width:700px){.stats-in{grid-template-columns:repeat(2,1fr);gap:20px 8px}}
/* card lift */
a.card{transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}
a.card:hover{transform:translateY(-4px);box-shadow:0 10px 24px rgba(37,99,235,.13)}
/* category icon chips */
.cat-chip{display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:12px;font-size:21px;margin-right:10px;vertical-align:-8px}
.cc-1{background:#DBEAFE}.cc-2{background:#EDE9FE}.cc-3{background:#FEF3C7}.cc-4{background:#D1FAE5}.cc-5{background:#FFE4E6}.cc-6{background:#E0F2FE}
[data-theme="dark"] .cat-chip{filter:saturate(.55) brightness(.65)}
/* consolidated results hub buttons */
.latest-hub{display:flex;gap:12px;flex-wrap:wrap;margin-top:18px}
.latest-hub .btn-soft{flex-shrink:0}

/* ---------- v6: hero background, drawn underline, typewriter, quick links ---------- */
.hero-doodles{position:absolute;inset:0;pointer-events:none;opacity:.55;background-repeat:repeat;background-size:340px 340px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='340' height='340' viewBox='0 0 340 340'%3E%3Cg fill='none' stroke='%232563EB' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' opacity='.14'%3E%3Cpath d='M30 62 L70 48 L110 62 L70 76 Z'/%3E%3Cpath d='M50 70 v14 c0 7 40 7 40 0 v-14'/%3E%3Cpath d='M106 64 v16'/%3E%3Ccircle cx='106' cy='83' r='2.5'/%3E%3Cpath d='M210 40 c14-8 32-8 46 0 v34 c-14-8-32-8-46 0 z'/%3E%3Cpath d='M256 40 c14-8 32-8 46 0 v34 c-14-8-32-8-46 0 z'/%3E%3Cpath d='M60 210 l46-46 12 12 -46 46 -16 4 z'/%3E%3Cpath d='M100 170 l12 12'/%3E%3Crect x='232' y='160' width='54' height='70' rx='8'/%3E%3Crect x='240' y='168' width='38' height='16' rx='3'/%3E%3Cpath d='M244 196 h6 M256 196 h6 M268 196 h6 M244 210 h6 M256 210 h6 M268 210 h6'/%3E%3Ccircle cx='170' cy='285' r='14'/%3E%3Cpath d='M164 297 c0 8 12 8 12 0 M166 303 h8 M170 258 v6 M148 264 l4 4 M192 264 l-4 4'/%3E%3Cpath d='M40 300 l34-12 -26 24 -2-9 z'/%3E%3C/g%3E%3Cg fill='%232563EB' opacity='.13' font-family='Georgia,serif' font-weight='bold'%3E%3Ctext x='150' y='120' font-size='30'%3EA+%3C/text%3E%3Ctext x='300' y='120' font-size='30'%3E%CF%80%3C/text%3E%3Ctext x='40' y='150' font-size='26'%3E%25%3C/text%3E%3Ctext x='296' y='280' font-size='30'%3E%CE%A3%3C/text%3E%3Ctext x='220' y='320' font-size='24'%3E%E2%88%9A%3C/text%3E%3C/g%3E%3C/svg%3E")}
[data-theme="dark"] .hero-doodles{opacity:.5;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='340' height='340' viewBox='0 0 340 340'%3E%3Cg fill='none' stroke='%2393B4FD' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' opacity='.16'%3E%3Cpath d='M30 62 L70 48 L110 62 L70 76 Z'/%3E%3Cpath d='M50 70 v14 c0 7 40 7 40 0 v-14'/%3E%3Cpath d='M106 64 v16'/%3E%3Ccircle cx='106' cy='83' r='2.5'/%3E%3Cpath d='M210 40 c14-8 32-8 46 0 v34 c-14-8-32-8-46 0 z'/%3E%3Cpath d='M256 40 c14-8 32-8 46 0 v34 c-14-8-32-8-46 0 z'/%3E%3Cpath d='M60 210 l46-46 12 12 -46 46 -16 4 z'/%3E%3Cpath d='M100 170 l12 12'/%3E%3Crect x='232' y='160' width='54' height='70' rx='8'/%3E%3Crect x='240' y='168' width='38' height='16' rx='3'/%3E%3Cpath d='M244 196 h6 M256 196 h6 M268 196 h6 M244 210 h6 M256 210 h6 M268 210 h6'/%3E%3Ccircle cx='170' cy='285' r='14'/%3E%3Cpath d='M164 297 c0 8 12 8 12 0 M166 303 h8 M170 258 v6 M148 264 l4 4 M192 264 l-4 4'/%3E%3Cpath d='M40 300 l34-12 -26 24 -2-9 z'/%3E%3C/g%3E%3Cg fill='%2393B4FD' opacity='.15' font-family='Georgia,serif' font-weight='bold'%3E%3Ctext x='150' y='120' font-size='30'%3EA+%3C/text%3E%3Ctext x='300' y='120' font-size='30'%3E%CF%80%3C/text%3E%3Ctext x='40' y='150' font-size='26'%3E%25%3C/text%3E%3Ctext x='296' y='280' font-size='30'%3E%CE%A3%3C/text%3E%3Ctext x='220' y='320' font-size='24'%3E%E2%88%9A%3C/text%3E%3C/g%3E%3C/svg%3E")}
/* drawn underline on the H1 word */
.mark-word{position:relative;display:inline-block;white-space:nowrap;color:var(--accent)}
.mark-line{position:absolute;left:-2%;bottom:-8px;width:104%;height:12px;color:var(--accent);pointer-events:none}
.mark-line path{stroke-dasharray:240;stroke-dashoffset:0}
/* typewriter line */
.hero-type{font-size:20px;font-weight:600;margin:14px 0 4px;min-height:1.55em}
.type-word{color:var(--accent);font-weight:700}
.type-caret{display:inline-block;width:2px;height:1.05em;background:var(--accent);margin-left:3px;vertical-align:-2px}
/* quick links under search */
.quick-links{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;align-items:center;margin-top:14px}
.ql-label{font-size:14px;color:var(--text-soft)}
.quick-links a{font-size:14px;padding:5px 13px;border:1px solid var(--border);border-radius:999px;background:var(--bg);color:var(--text);text-decoration:none;transition:border-color .15s ease,color .15s ease,transform .15s ease}
.quick-links a:hover{border-color:var(--accent);color:var(--accent);transform:translateY(-1px)}
@media (prefers-reduced-motion: no-preference){
  .hero-doodles{animation:sa-pan 70s linear infinite}
  .mark-line path{stroke-dashoffset:240;animation:sa-draw .9s ease .85s forwards}
  .type-caret{animation:sa-blink 1.05s steps(1) infinite}
}
@keyframes sa-pan{from{background-position:0 0}to{background-position:340px 340px}}
@keyframes sa-draw{to{stroke-dashoffset:0}}
@keyframes sa-blink{0%,55%{opacity:1}56%,100%{opacity:0}}
@media(max-width:600px){.hero-type{font-size:17px}}
