/*
Theme Name: ZiaOnline
Theme URI: https://ziaonline.com
Author: ZITCO Private Limited
Author URI: https://ziaonline.com
Description: A dynamic WordPress theme for Syed Zia ur Rahman — Psychologist, Corporate Trainer, Distinguished Toastmaster and Motivational Speaker. Built with custom post types for Services, Testimonials, Courses and Videos, a full Customizer panel (hero, counters, contact, social, colors) and a royal-blue / gold / white / dark-grey editorial design.
Version: 1.11.0
Requires at least: 6.0
Requires PHP: 7.4
Tested up to: 6.6
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: ziaonline
Tags: custom-colors, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready, one-column, two-columns

ZiaOnline WordPress Theme
*/

/* -----------------------------------------------------------
   0. CSS Variables (overridable live from Customizer via
      inline style in header.php — see zia_customizer_css())
----------------------------------------------------------- */
:root{
  --ink:#14213D;          /* Dark Grey / near-black text */
  --ink-soft:#4A5670;
  --royal:#153E90;        /* Royal Blue */
  --royal-soft:#5D82C4;
  --gold:#C9A227;         /* Gold */
  --gold-soft:#E4C860;
  --paper:#F4F6FA;        /* White-ish background */
  --paper-raised:#FFFFFF;
  --line:rgba(20,33,61,0.13);
  --max:1180px;
  --accent:#B23A2E;       /* small accent for testimonial cards */
}

/* -----------------------------------------------------------
   1. Reset & base
----------------------------------------------------------- */
*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}
body{
  background:var(--paper);
  color:var(--ink);
  font-family:'Work Sans', -apple-system, BlinkMacSystemFont, sans-serif;
  font-weight:400;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%; height:auto; display:block;}
a{color:inherit; text-decoration:none;}
ul{list-style:none;}
button{font-family:inherit; cursor:pointer;}
.wrap{max-width:var(--max); margin:0 auto; padding:0 32px;}
h1,h2,h3,h4,h5{font-family:'Fraunces', Georgia, serif; font-weight:600; line-height:1.1; letter-spacing:-0.01em; color:var(--ink);}
p{color:var(--ink-soft);}
.screen-reader-text{position:absolute!important; clip:rect(1px,1px,1px,1px); overflow:hidden; height:1px; width:1px;}
.skip-link{position:absolute; left:-9999px; top:0; background:var(--royal); color:#fff; padding:12px 20px; z-index:999;}
.skip-link:focus{left:10px; top:10px;}

.eyebrow{
  font-family:'IBM Plex Mono', 'Courier New', monospace;
  font-size:12.5px; letter-spacing:.14em; text-transform:uppercase;
  color:var(--royal); display:flex; align-items:center; gap:10px; margin-bottom:14px;
}
.eyebrow::before{content:''; width:22px; height:1px; background:var(--gold); display:inline-block;}

.btn{
  display:inline-flex; align-items:center; gap:10px;
  font-weight:600; font-size:15px;
  padding:14px 26px; border-radius:3px; text-decoration:none;
  border:1px solid var(--ink); transition:all .25s ease; background:transparent; color:var(--ink);
}
.btn-solid{background:var(--royal); color:#fff; border-color:var(--royal);}
.btn-solid:hover{background:var(--ink); border-color:var(--ink);}
.btn-gold{background:var(--gold); color:var(--ink); border-color:var(--gold);}
.btn-gold:hover{background:var(--gold-soft); border-color:var(--gold-soft);}
.btn-ghost{background:transparent; color:var(--ink);}
.btn-ghost:hover{background:var(--ink); color:#fff;}

section{padding:64px 0;}
@media(max-width:760px){section{padding:44px 0;}}
.section-tight{padding:32px 0;}
.section-tight .section-head{margin-bottom:24px;}
@media(max-width:760px){.section-tight{padding:24px 0;}}
.section-head{max-width:640px; margin-bottom:48px;}
.section-head h2{font-size:clamp(26px,4vw,40px); margin-top:6px;}
.section-head.center{margin-left:auto; margin-right:auto; text-align:center;}
.section-head.center .eyebrow{justify-content:center;}
.section-head.center .eyebrow::before{display:none;}

/* -----------------------------------------------------------
   2. Header / Nav
----------------------------------------------------------- */
#masthead{position:sticky; top:0; z-index:60; background:rgba(244,246,250,0.94); backdrop-filter:blur(8px); border-bottom:1px solid var(--line);}
.header-top{display:flex; align-items:center; justify-content:space-between; height:76px; gap:20px;}
.site-branding{display:flex; align-items:center; gap:10px;}
.site-branding img.custom-logo{max-height:44px; width:auto;}
.site-branding .site-title{font-family:'Fraunces',serif; font-weight:600; font-size:20px; letter-spacing:-.01em;}
.site-branding .site-title span{color:var(--gold);}
.site-branding .site-title a{text-decoration:none;}

.header-menu-row{display:none; border-top:1px solid var(--line); background:rgba(255,255,255,.5);}
.header-menu-row nav{display:flex; justify-content:center;}
@media(min-width:960px){.header-menu-row{display:block;}}

.primary-menu{display:none; gap:30px; font-size:14.5px; font-weight:500; padding:14px 0;}
.primary-menu li a{opacity:.78; transition:opacity .2s; padding:8px 0;}
.primary-menu li a:hover, .primary-menu li.current-menu-item a{opacity:1; color:var(--royal);}
@media(min-width:960px){.primary-menu{display:flex;}}

.header-actions{display:flex; align-items:center; gap:14px;}
.nav-cta{display:none;}
@media(min-width:960px){.nav-cta{display:inline-flex;}}
.header-search-toggle{background:none; border:none; font-size:18px; color:var(--ink); padding:4px;}
.burger{display:flex; flex-direction:column; gap:5px; background:none; border:none; padding:6px;}
@media(min-width:960px){.burger{display:none;}}
.burger span{width:24px; height:2px; background:var(--ink); display:block;}
#mobile-nav{display:none; flex-direction:column; padding:10px 32px 24px; border-top:1px solid var(--line);}
#mobile-nav.open{display:flex;}
#mobile-nav a{padding:12px 0; border-bottom:1px solid var(--line); font-weight:500;}
#mobile-nav .btn{margin-top:16px; justify-content:center;}

.header-search-box{display:none; padding:14px 0; border-top:1px solid var(--line);}
.header-search-box.open{display:block;}
.header-search-box form{display:flex; gap:10px;}
.header-search-box input[type="search"]{flex:1; padding:12px 14px; border:1px solid var(--line); border-radius:3px; font-family:inherit; font-size:15px;}
.header-search-box button{padding:12px 18px; background:var(--royal); color:#fff; border:none; border-radius:3px;}

/* -----------------------------------------------------------
   3. Hero
----------------------------------------------------------- */
.hero{padding:90px 0 56px; position:relative; overflow:hidden;}
.hero-grid{display:grid; grid-template-columns:1fr; gap:44px; align-items:center;}
@media(min-width:920px){.hero-grid{grid-template-columns:1.15fr .85fr;}}
.hero h1{font-size:clamp(34px,6vw,62px); margin:16px 0 20px;}
.hero h1 em{font-style:italic; color:var(--royal); font-weight:500;}
.hero p.lede{font-size:18px; max-width:52ch; color:var(--ink-soft); margin-bottom:30px;}
.hero-actions{display:flex; gap:16px; flex-wrap:wrap;}
.hero-photo{position:relative; border-radius:3px; overflow:hidden; background:var(--ink); aspect-ratio:4/5; display:flex; align-items:flex-end;}
.hero-photo img{width:100%; height:100%; object-fit:cover;}
.hero-photo .tag{position:absolute; bottom:18px; left:18px; right:18px; background:rgba(20,33,61,.88); color:#fff; padding:14px 16px; font-family:'IBM Plex Mono',monospace; font-size:12px; letter-spacing:.04em; border-left:3px solid var(--gold);}

.pulse{width:100%; height:56px; margin-top:16px;}
.pulse path{fill:none; stroke:var(--gold); stroke-width:1.6;}
.pulse .p2{stroke:var(--royal-soft); opacity:.5;}

/* -----------------------------------------------------------
   4. About
----------------------------------------------------------- */
.about-grid{display:grid; grid-template-columns:1fr; gap:40px;}
@media(min-width:860px){.about-grid{grid-template-columns:.9fr 1.1fr; gap:64px;}}
.about-grid p{margin-bottom:15px; font-size:16.5px;}
.stat-row{display:grid; grid-template-columns:repeat(2,1fr); gap:20px; margin-top:32px; padding-top:26px; border-top:1px solid var(--line);}
@media(min-width:520px){.stat-row{grid-template-columns:repeat(4,1fr);}}
.stat-row .num{font-family:'Fraunces',serif; font-size:32px; color:var(--royal); font-weight:600;}
.stat-row .label{font-size:12px; color:var(--ink-soft); margin-top:4px;}

/* -----------------------------------------------------------
   5. Services cards
----------------------------------------------------------- */
.services-grid{display:grid; grid-template-columns:1fr; gap:22px; margin-top:10px;}
@media(min-width:640px){.services-grid{grid-template-columns:repeat(2,1fr);}}
@media(min-width:960px){.services-grid{grid-template-columns:repeat(3,1fr);}}
.service-card{background:var(--paper-raised); border:1px solid var(--line); padding:32px 26px; transition:transform .2s ease, box-shadow .2s ease;}
.service-card:hover{transform:translateY(-4px); box-shadow:0 14px 30px rgba(20,33,61,.08);}
.service-card .icon{font-size:30px; margin-bottom:16px; display:block;}
.service-card h3{font-size:20px; margin-bottom:10px; font-weight:500;}
.service-card p{font-size:14.5px;}
.service-card a.more{display:inline-block; margin-top:14px; font-size:13px; font-weight:600; color:var(--royal); font-family:'IBM Plex Mono',monospace;}

/* -----------------------------------------------------------
   6. Pillars (dark band, used for "Why Choose Me" alt layout)
----------------------------------------------------------- */
.band-dark{background:var(--ink); color:var(--paper);}
.band-dark .eyebrow{color:var(--gold-soft);}
.band-dark .eyebrow::before{background:var(--gold-soft);}
.band-dark h2{color:#fff;}
.counter-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:1px; background:rgba(244,246,250,.14); margin-top:24px;}
@media(min-width:760px){.counter-grid{grid-template-columns:repeat(4,1fr);}}
.counter-item{background:var(--ink); padding:36px 24px; text-align:center;}
.counter-item .count{font-family:'Fraunces',serif; font-size:44px; color:var(--gold); font-weight:600; line-height:1;}
.counter-item .clabel{margin-top:10px; font-size:13px; color:rgba(244,246,250,.72); letter-spacing:.03em;}

/* -----------------------------------------------------------
   7. Topics list
----------------------------------------------------------- */
.topics-list{display:grid; grid-template-columns:1fr; border-top:1px solid var(--line);}
@media(min-width:760px){.topics-list{grid-template-columns:1fr 1fr;}}
.topic{padding:20px 0; border-bottom:1px solid var(--line); display:flex; gap:16px; align-items:baseline;}
@media(min-width:760px){.topic:nth-child(odd){border-right:1px solid var(--line); padding-right:28px;} .topic:nth-child(even){padding-left:28px;}}
.topic .tnum{font-family:'IBM Plex Mono',monospace; color:var(--gold); font-size:13px; flex-shrink:0;}
.topic h4{font-size:16px; font-weight:500;}

/* -----------------------------------------------------------
   8. Videos
----------------------------------------------------------- */
.video-grid{display:grid; grid-template-columns:1fr; gap:26px; margin-top:10px;}
@media(min-width:760px){.video-grid{grid-template-columns:repeat(3,1fr);}}
.video-card{background:var(--paper-raised); border:1px solid var(--line);}
.video-card .embed{position:relative; padding-bottom:56.25%; height:0; overflow:hidden; background:var(--ink);}
.video-card .embed iframe{position:absolute; inset:0; width:100%; height:100%; border:0;}
.video-card .vtitle{padding:16px 18px; font-size:15px; font-weight:500;}

/* -----------------------------------------------------------
   9. Testimonials
----------------------------------------------------------- */
.testimonials{background:var(--paper-raised);}
.test-scroll{display:grid; grid-template-columns:1fr; gap:22px; margin-top:20px;}
@media(min-width:760px){.test-scroll{grid-template-columns:repeat(3,1fr);}}
.test-card{background:var(--paper); border:1px solid var(--line); padding:28px 24px; border-top:3px solid var(--gold);}
.test-card p{font-size:15px; margin-bottom:16px; font-style:italic;}
.test-card .who{font-size:13.5px; font-weight:600; font-family:'IBM Plex Mono',monospace;}
.test-card .who .role{display:block; font-weight:400; font-style:normal; color:var(--ink-soft); font-size:12px; margin-top:2px;}

/* -----------------------------------------------------------
   10. Blog / Articles
----------------------------------------------------------- */
.articles-grid{display:grid; grid-template-columns:1fr; gap:26px; margin-top:10px;}
@media(min-width:760px){.articles-grid{grid-template-columns:repeat(3,1fr);}}
.article-card{background:var(--paper-raised); border:1px solid var(--line); display:flex; flex-direction:column;}
.article-card .thumb{aspect-ratio:16/10; overflow:hidden; background:var(--line);}
.article-card .thumb img{width:100%; height:100%; object-fit:cover;}
.article-card .body{padding:20px;}
.article-card .meta{font-family:'IBM Plex Mono',monospace; font-size:11.5px; color:var(--royal); margin-bottom:8px; text-transform:uppercase; letter-spacing:.04em;}
.article-card h3{font-size:18px; margin-bottom:8px; font-weight:500;}
.article-card h3 a:hover{color:var(--royal);}
.article-card p{font-size:14px;}

/* -----------------------------------------------------------
   11. CTA / Contact
----------------------------------------------------------- */
.cta{background:var(--royal); color:#fff; text-align:center;}
.cta h2{color:#fff; font-size:clamp(28px,5vw,48px); max-width:18ch; margin:0 auto 18px;}
.cta p{color:rgba(255,255,255,.82); max-width:48ch; margin:0 auto 30px;}
.cta .btn-gold{border-color:var(--gold);}

.contact-section{background:var(--ink); color:var(--paper); text-align:center;}
.contact-section h2{color:#fff; font-size:clamp(28px,5vw,48px); max-width:16ch; margin:0 auto 18px;}
.contact-section p{color:rgba(244,246,250,.72); max-width:48ch; margin:0 auto 32px;}
.contact-actions{display:flex; gap:16px; justify-content:center; flex-wrap:wrap;}
.contact-section .btn-ghost{border-color:var(--paper); color:var(--paper);}
.contact-section .btn-ghost:hover{background:var(--paper); color:var(--ink);}
.contact-meta{margin-top:44px; padding-top:26px; border-top:1px solid rgba(244,246,250,.16); font-family:'IBM Plex Mono',monospace; font-size:12.5px; color:rgba(244,246,250,.55);}
.contact-grid{display:grid; grid-template-columns:1fr; gap:40px; text-align:left; margin-top:40px;}
@media(min-width:860px){.contact-grid{grid-template-columns:1fr 1fr;}}
.contact-form input, .contact-form textarea, .contact-form select{width:100%; padding:13px 14px; border:1px solid var(--line); border-radius:3px; font-family:inherit; font-size:15px; margin-bottom:14px; background:var(--paper-raised); color:var(--ink);}
.contact-form label{display:block; font-size:13px; font-weight:600; margin-bottom:6px;}
.contact-form textarea{min-height:130px; resize:vertical;}

/* -----------------------------------------------------------
   12. Footer
----------------------------------------------------------- */
#colophon{background:var(--ink); color:rgba(244,246,250,.85); padding:64px 0 0;}
.footer-grid{display:grid; grid-template-columns:1fr; gap:40px; padding-bottom:44px;}
@media(min-width:760px){.footer-grid{grid-template-columns:1.3fr 1fr 1fr 1.2fr;}}
.footer-col h4{color:#fff; font-size:14px; text-transform:uppercase; letter-spacing:.06em; margin-bottom:18px; font-family:'Work Sans',sans-serif; font-weight:600;}
.footer-col p, .footer-col a{color:rgba(244,246,250,.65); font-size:14px;}
.footer-col ul li{margin-bottom:10px;}
.footer-col a:hover{color:var(--gold);}
.footer-brand .site-title{color:#fff; font-family:'Fraunces',serif; font-size:20px; margin-bottom:12px;}
.footer-brand .site-title span{color:var(--gold);}
.social-row{display:flex; gap:12px; margin-top:16px;}
.social-row a{width:36px; height:36px; border:1px solid rgba(244,246,250,.25); border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:14px;}
.social-row a:hover{background:var(--gold); border-color:var(--gold); color:var(--ink);}
.newsletter-form{display:flex; margin-top:6px;}
.newsletter-form input{flex:1; padding:11px 12px; border:1px solid rgba(244,246,250,.25); background:transparent; color:#fff; font-family:inherit; border-radius:3px 0 0 3px;}
.newsletter-form button{padding:11px 16px; background:var(--gold); color:var(--ink); border:none; border-radius:0 3px 3px 0; font-weight:600;}
.footer-bottom{border-top:1px solid rgba(244,246,250,.14); padding:22px 0; display:flex; flex-wrap:wrap; gap:12px; justify-content:space-between; font-size:12.5px; color:rgba(244,246,250,.55);}
.footer-bottom a{color:rgba(244,246,250,.55);}
.footer-bottom a:hover{color:var(--gold);}

/* WhatsApp float button */
.whatsapp-float{position:fixed; bottom:24px; right:24px; z-index:80; width:58px; height:58px; border-radius:50%; background:#25D366; display:flex; align-items:center; justify-content:center; box-shadow:0 6px 18px rgba(0,0,0,.25); font-size:28px; color:#fff;}
.whatsapp-float:hover{transform:scale(1.06);}

/* -----------------------------------------------------------
   13. Generic page / blog content
----------------------------------------------------------- */
.page-header{padding:70px 0 20px;}
.page-header h1{font-size:clamp(30px,5vw,48px);}
.entry-content{max-width:820px;}
.entry-content p, .entry-content li{font-size:16.5px; margin-bottom:16px;}
.entry-content h2{margin:34px 0 14px; font-size:28px;}
.entry-content h3{margin:26px 0 12px; font-size:22px;}
.entry-content img{border-radius:3px; margin:20px 0;}
.entry-content blockquote{border-left:3px solid var(--gold); padding-left:20px; font-style:italic; color:var(--ink-soft); margin:20px 0;}
.entry-content ul, .entry-content ol{padding-left:22px; margin-bottom:16px;}
.post-thumb{margin-bottom:34px; border-radius:3px; overflow:hidden;}
.post-meta{font-family:'IBM Plex Mono',monospace; font-size:12.5px; color:var(--royal); margin-bottom:10px; text-transform:uppercase; letter-spacing:.04em;}
.tag-list{margin-top:34px; padding-top:22px; border-top:1px solid var(--line); display:flex; gap:8px; flex-wrap:wrap;}
.tag-list a{font-size:12.5px; border:1px solid var(--line); padding:6px 12px; border-radius:20px;}

.pagination{display:flex; gap:10px; margin-top:44px; flex-wrap:wrap;}
.pagination a, .pagination span{padding:10px 16px; border:1px solid var(--line); font-size:14px; border-radius:3px;}
.pagination .current{background:var(--royal); color:#fff; border-color:var(--royal);}

.education-grid{display:grid; grid-template-columns:1fr; gap:0; margin-top:10px;}
@media(min-width:760px){.education-grid{grid-template-columns:repeat(2,1fr);}}
.edu-item{padding:18px 0; border-bottom:1px solid var(--line);}
@media(min-width:760px){.edu-item{padding-right:30px;}}
.edu-item .deg{font-weight:600; font-size:15.5px;}
.edu-item .inst{font-size:14px; color:var(--ink-soft); margin-top:3px;}

.timeline{position:relative; padding-left:28px; border-left:1px solid var(--line); margin-top:10px;}
.tl-item{position:relative; padding-bottom:40px;}
.tl-item:last-child{padding-bottom:0;}
.tl-item::before{content:''; position:absolute; left:-33px; top:4px; width:9px; height:9px; border-radius:50%; background:var(--gold); box-shadow:0 0 0 4px var(--paper);}
.tl-year{font-family:'IBM Plex Mono',monospace; font-size:12.5px; color:var(--royal); margin-bottom:6px;}
.tl-item h4{font-size:19px; font-weight:500; margin-bottom:4px;}
.tl-item .org{font-size:14px; color:var(--accent); font-weight:600; margin-bottom:6px;}

.reveal{opacity:0; transform:translateY(16px); transition:opacity .6s ease, transform .6s ease;}
.reveal.in{opacity:1; transform:none;}

.widget{margin-bottom:34px;}
.widget h2, .widget .widget-title{font-size:16px; text-transform:uppercase; letter-spacing:.04em; margin-bottom:16px;}
.widget ul li{padding:8px 0; border-bottom:1px solid var(--line); font-size:14px;}

.alignwide{max-width:calc(var(--max) + 200px);}
.alignfull{max-width:none; width:100%;}
.wp-caption-text{font-size:13px; color:var(--ink-soft); margin-top:6px;}

@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  .reveal{opacity:1; transform:none; transition:none;}
}
