/*
Theme Name: Werthwhile Solutions
Theme URI: https://werthwhilesolutions.com
Author: Werthwhile Solutions
Author URI: https://werthwhilesolutions.com
Description: Custom professional theme for Werthwhile Solutions — IT Consulting & Web Design
Version: 1.0.0
Requires at least: 6.0
Tested up to: 6.7
Requires PHP: 8.0
License: Proprietary
Text Domain: werthwhile
*/

/* ============================================
   WERTHWHILE SOLUTIONS — WordPress Theme CSS
   ============================================ */

@import url('https://fonts.googleapis.com/css2?family=Cinzel:wght@400;600;700&family=Raleway:wght@300;400;500;600;700&family=Source+Sans+3:ital,wght@0,300;0,400;0,600;1,300&display=swap');

:root {
  --purple:       #512888;
  --dark:         #333333;
  --white:        #ffffff;
  --silver:       #c0c0c0;
  --teal:         #00a6a6;
  --mauve:        #bfa2bd;
  --purple-light: #6b3aac;
  --purple-dark:  #3a1a66;
  --dark-bg:      #1c1c1e;
  --card-bg:      #f8f7fc;
  --border:       #e4dff0;
  --text-body:    #444;
  --shadow-sm: 0 2px 12px rgba(81,40,136,0.08);
  --shadow-md: 0 8px 32px rgba(81,40,136,0.14);
  --transition: all 0.3s cubic-bezier(0.4,0,0.2,1);
}

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; font-size: 16px; }

body {
  font-family: 'Raleway', sans-serif;
  color: var(--text-body);
  background: var(--white);
  line-height: 1.7;
  overflow-x: hidden;
}

/* ---- TYPOGRAPHY ---- */
h1,h2,h3 { font-family:'Cinzel',serif; color:var(--dark); line-height:1.2; letter-spacing:0.02em; }
h4,h5,h6 { font-family:'Raleway',sans-serif; font-weight:600; color:var(--dark); }
p { margin-bottom:1rem; font-weight:400; }
a { color:var(--purple); text-decoration:none; transition:var(--transition); }
a:hover { color:var(--teal); }
img { max-width:100%; height:auto; }
ul, ol { margin:0; padding:0; }

/* ---- WORDPRESS CORE OVERRIDES ---- */
.wp-block-image { margin:0; }
.alignwide { max-width:1200px; margin-left:auto; margin-right:auto; }
.screen-reader-text { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); border:0; }
#wpadminbar ~ .navbar { top:32px; }

/* ---- NAVBAR ---- */
.navbar {
  position:fixed; top:0; left:0; right:0; z-index:1000;
  display:flex; align-items:center; justify-content:space-between;
  padding:0.75rem 2.5rem; height:auto; min-height:80px;
  background:#ffffff !important;
  border-bottom:1px solid rgba(81,40,136,0.15);
  box-shadow:0 2px 12px rgba(81,40,136,0.08);
  transition:var(--transition);
  overflow:visible;
}
.navbar.scrolled { background:#ffffff !important; box-shadow:0 4px 24px rgba(81,40,136,0.12); }
.nav-logo a { display:block; line-height:0; }
.nav-logo img.site-logo,
.nav-logo .site-logo { height:52px !important; width:auto !important; max-width:260px !important; display:block !important; object-fit:contain !important; }
.nav-links { display:flex; align-items:center; gap:0.25rem; list-style:none; }
.nav-links a {
  color:var(--dark); font-family:'Raleway',sans-serif; font-weight:500;
  font-size:0.85rem; letter-spacing:0.08em; text-transform:uppercase;
  padding:0.5rem 0.9rem; border-radius:4px; transition:var(--transition); position:relative;
}
.nav-links a::after {
  content:''; position:absolute; bottom:2px; left:50%; right:50%;
  height:2px; background:var(--purple); transition:var(--transition); border-radius:2px;
}
.nav-links a:hover,
.nav-links a.current-menu-item,
.nav-links li.current-menu-item > a,
.nav-links li.current_page_item > a { color:var(--purple); }
.nav-links a:hover::after,
.nav-links li.current-menu-item > a::after,
.nav-links li.current_page_item > a::after { left:0.9rem; right:0.9rem; }
.nav-cta-item > a, .nav-links .nav-cta {
  background:var(--purple) !important; color:var(--white) !important;
  padding:0.5rem 1.2rem !important; border-radius:4px !important; font-weight:600 !important;
}
.nav-cta-item > a:hover, .nav-links .nav-cta:hover { background:var(--teal) !important; }
.nav-cta-item > a::after, .nav-links .nav-cta::after { display:none !important; }
.nav-toggle { display:none; flex-direction:column; gap:5px; cursor:pointer; padding:4px; background:none; border:none; }
.nav-toggle span { display:block; width:24px; height:2px; background:var(--dark); transition:var(--transition); border-radius:2px; }

/* ---- HERO ---- */
.hero {
  position:relative; min-height:100vh; display:flex; align-items:center;
  background:linear-gradient(135deg,#1c1c1e 0%,#2a1a40 40%,#1c1c1e 100%);
  overflow:hidden; padding-top:72px;
}
.hero-bg-grid {
  position:absolute; inset:0;
  background-image: linear-gradient(rgba(81,40,136,0.12) 1px,transparent 1px),
                    linear-gradient(90deg,rgba(81,40,136,0.12) 1px,transparent 1px);
  background-size:60px 60px; opacity:0.5;
}
.hero-accent { position:absolute; width:600px; height:600px; border-radius:50%; background:radial-gradient(circle,rgba(81,40,136,0.25) 0%,transparent 70%); top:-100px; right:-100px; pointer-events:none; }
.hero-accent-2 { position:absolute; width:400px; height:400px; border-radius:50%; background:radial-gradient(circle,rgba(0,166,166,0.15) 0%,transparent 70%); bottom:0; left:10%; pointer-events:none; }
.hero-content { position:relative; z-index:1; max-width:1200px; margin:0 auto; padding:4rem 2.5rem; width:100%; }
.hero-eyebrow { font-family:'Raleway',sans-serif; font-size:0.8rem; font-weight:600; letter-spacing:0.2em; text-transform:uppercase; color:var(--teal); margin-bottom:1.25rem; display:flex; align-items:center; gap:0.75rem; }
.hero-eyebrow::before { content:''; display:block; width:32px; height:2px; background:var(--teal); border-radius:2px; }
.hero h1 { color:var(--white); font-size:clamp(2.4rem,5vw,4rem); margin-bottom:1.5rem; line-height:1.15; }
.hero h1 span { color:var(--mauve); }
.hero-sub { color:rgba(255,255,255,0.7); font-size:1.15rem; max-width:580px; margin-bottom:2.5rem; font-weight:300; line-height:1.8; }
.hero-actions { display:flex; gap:1rem; flex-wrap:wrap; }

/* ---- BUTTONS ---- */
.btn { display:inline-flex; align-items:center; gap:0.5rem; padding:0.85rem 2rem; border-radius:4px; font-family:'Raleway',sans-serif; font-weight:600; font-size:0.9rem; letter-spacing:0.06em; text-transform:uppercase; transition:var(--transition); cursor:pointer; border:none; }
.btn-primary { background:var(--purple); color:var(--white); box-shadow:0 4px 20px rgba(81,40,136,0.4); }
.btn-primary:hover { background:var(--purple-light); color:var(--white); box-shadow:0 6px 28px rgba(81,40,136,0.5); transform:translateY(-2px); }
.btn-outline { background:transparent; color:var(--white); border:1.5px solid rgba(255,255,255,0.4); }
.btn-outline:hover { background:rgba(255,255,255,0.08); color:var(--white); border-color:rgba(255,255,255,0.7); transform:translateY(-2px); }
.btn-teal { background:var(--teal); color:var(--white); box-shadow:0 4px 20px rgba(0,166,166,0.35); }
.btn-teal:hover { background:#008f8f; color:var(--white); transform:translateY(-2px); }

/* ---- SECTION LAYOUTS ---- */
.section { padding:6rem 2.5rem; }
.section-alt { background:var(--card-bg); }
.container { max-width:1200px; margin:0 auto; width:100%; }
.section-label { font-family:'Raleway',sans-serif; font-size:0.75rem; font-weight:700; letter-spacing:0.22em; text-transform:uppercase; color:var(--teal); margin-bottom:0.75rem; display:flex; align-items:center; gap:0.6rem; }
.section-label::before { content:''; display:block; width:24px; height:2px; background:var(--teal); border-radius:2px; }
.section-title { font-size:clamp(1.8rem,3.5vw,2.75rem); margin-bottom:1.25rem; }
.section-lead { font-size:1.1rem; color:#666; max-width:620px; font-weight:300; line-height:1.8; }

/* ---- CARDS ---- */
.card { background:var(--white); border:1px solid var(--border); border-radius:8px; padding:2rem; transition:var(--transition); position:relative; overflow:hidden; }
.card::before { content:''; position:absolute; top:0; left:0; width:4px; height:100%; background:var(--purple); transform:scaleY(0); transition:var(--transition); transform-origin:bottom; }
.card:hover { transform:translateY(-4px); box-shadow:var(--shadow-md); border-color:var(--mauve); }
.card:hover::before { transform:scaleY(1); }
.card-icon { width:52px; height:52px; background:linear-gradient(135deg,rgba(81,40,136,0.1),rgba(0,166,166,0.1)); border-radius:12px; display:flex; align-items:center; justify-content:center; margin-bottom:1.25rem; font-size:1.5rem; }
.card h3 { font-size:1.15rem; margin-bottom:0.75rem; }
.card p { font-size:0.95rem; color:#666; margin-bottom:0; line-height:1.7; }

/* ---- GRID LAYOUTS ---- */
.grid-3 { display:grid; grid-template-columns:repeat(3,1fr); gap:1.5rem; }
.grid-2 { display:grid; grid-template-columns:repeat(2,1fr); gap:2rem; }
.grid-2-1 { display:grid; grid-template-columns:1fr 1fr; gap:4rem; align-items:center; }

/* ---- STAT STRIP ---- */
.stat-strip { background:linear-gradient(135deg,var(--purple-dark),var(--purple)); padding:3.5rem 2.5rem; position:relative; overflow:hidden; }
.stat-strip::before { content:''; position:absolute; inset:0; background-image:linear-gradient(rgba(255,255,255,0.04) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,0.04) 1px,transparent 1px); background-size:40px 40px; }
.stat-strip .container { position:relative; display:grid; grid-template-columns:repeat(4,1fr); gap:2rem; text-align:center; }
.stat-item .stat-number { font-family:'Cinzel',serif; font-size:2.5rem; color:var(--white); line-height:1; margin-bottom:0.5rem; }
.stat-item .stat-number span { color:var(--teal); }
.stat-item .stat-label { font-size:0.82rem; font-weight:600; letter-spacing:0.12em; text-transform:uppercase; color:rgba(255,255,255,0.65); }

/* ---- PAGE HEADER ---- */
.page-header { background:linear-gradient(135deg,#1c1c1e 0%,#2a1a40 60%,#1c1c1e 100%); padding:10rem 2.5rem 5rem; position:relative; overflow:hidden; }
.page-header::after { content:''; position:absolute; inset:0; background-image:linear-gradient(rgba(81,40,136,0.1) 1px,transparent 1px),linear-gradient(90deg,rgba(81,40,136,0.1) 1px,transparent 1px); background-size:60px 60px; }
.page-header .container { position:relative; z-index:1; }
.page-header-eyebrow { font-size:0.75rem; font-weight:700; letter-spacing:0.22em; text-transform:uppercase; color:var(--teal); margin-bottom:0.75rem; display:flex; align-items:center; gap:0.6rem; }
.page-header-eyebrow::before { content:''; display:inline-block; width:24px; height:2px; background:var(--teal); border-radius:2px; }
.page-header h1 { color:var(--white); font-size:clamp(2rem,4vw,3rem); margin-bottom:1rem; }
.page-header p { color:rgba(255,255,255,0.65); font-size:1.1rem; max-width:560px; font-weight:300; margin:0; }

/* ---- DIVIDER ---- */
.divider { width:60px; height:3px; background:linear-gradient(90deg,var(--purple),var(--teal)); border-radius:2px; margin:1rem 0 1.5rem; }

/* ---- HIGHLIGHT BOX ---- */
.highlight-box { background:linear-gradient(135deg,rgba(81,40,136,0.06),rgba(0,166,166,0.06)); border:1px solid rgba(81,40,136,0.15); border-left:4px solid var(--purple); border-radius:0 8px 8px 0; padding:1.5rem 2rem; margin:2rem 0; }
.highlight-box p { margin:0; font-style:italic; color:#555; }

/* ---- BADGES ---- */
.badge { display:inline-block; padding:0.25rem 0.75rem; background:rgba(81,40,136,0.1); color:var(--purple); border-radius:100px; font-size:0.78rem; font-weight:600; letter-spacing:0.06em; }
.badge-teal { background:rgba(0,166,166,0.1); color:var(--teal); }

/* ---- CONTACT FORM ---- */
.form-group { margin-bottom:1.25rem; }
.form-group label { display:block; font-size:0.82rem; font-weight:600; letter-spacing:0.08em; text-transform:uppercase; color:var(--dark); margin-bottom:0.5rem; }
.form-group input,
.form-group textarea,
.form-group select { width:100%; padding:0.85rem 1.1rem; border:1.5px solid var(--border); border-radius:6px; font-family:'Raleway',sans-serif; font-size:0.95rem; color:var(--dark); background:var(--white); transition:var(--transition); outline:none; }
.form-group input:focus,
.form-group textarea:focus,
.form-group select:focus { border-color:var(--purple); box-shadow:0 0 0 3px rgba(81,40,136,0.1); }
.form-group textarea { min-height:140px; resize:vertical; }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:1rem; }

/* ---- CAREER TIMELINE (About) ---- */
.career-timeline { position:relative; padding-left:2rem; }
.career-timeline::before { content:''; position:absolute; left:0; top:8px; bottom:8px; width:2px; background:linear-gradient(180deg,var(--purple),var(--teal)); border-radius:2px; }
.career-item { position:relative; padding:0 0 2.25rem 2rem; }
.career-item:last-child { padding-bottom:0; }
.career-item::before { content:''; position:absolute; left:-2.5rem; top:8px; width:12px; height:12px; border-radius:50%; background:var(--purple); border:2px solid var(--white); box-shadow:0 0 0 2px var(--purple); }
.career-item:nth-child(2)::before { background:#6b3aac; box-shadow:0 0 0 2px #6b3aac; }
.career-item:nth-child(3)::before { background:var(--teal); box-shadow:0 0 0 2px var(--teal); }
.career-item:nth-child(4)::before { background:var(--mauve); box-shadow:0 0 0 2px var(--mauve); }
.career-dates { font-size:0.78rem; font-weight:700; letter-spacing:0.12em; text-transform:uppercase; color:var(--teal); margin-bottom:0.25rem; }
.career-title { font-family:'Cinzel',serif; font-size:1rem; color:var(--dark); margin-bottom:0.15rem; line-height:1.4; }
.career-company { font-size:0.88rem; font-weight:600; color:var(--purple); margin-bottom:0.75rem; }
.career-highlights { list-style:none; display:flex; flex-direction:column; gap:0.45rem; }
.career-highlights li { font-size:0.88rem; color:#666; display:flex; gap:0.6rem; align-items:flex-start; line-height:1.6; }
.career-highlights li::before { content:'▸'; color:var(--teal); flex-shrink:0; margin-top:1px; font-size:0.75rem; }

/* ---- CERT CARDS ---- */
.cert-card { display:flex; gap:1rem; align-items:flex-start; background:var(--white); border:1px solid var(--border); border-radius:8px; padding:1.25rem 1.5rem; transition:var(--transition); }
.cert-card:hover { border-color:var(--purple); box-shadow:var(--shadow-sm); transform:translateY(-2px); }
.cert-icon { width:44px; height:44px; border-radius:10px; background:linear-gradient(135deg,rgba(81,40,136,0.12),rgba(0,166,166,0.12)); display:flex; align-items:center; justify-content:center; font-size:1.3rem; flex-shrink:0; }
.cert-name { font-family:'Cinzel',serif; font-size:0.92rem; color:var(--dark); margin-bottom:0.2rem; }
.cert-issuer { font-size:0.8rem; color:#999; }

/* ---- IMPACT NUMBERS ---- */
.impact-number { font-family:'Cinzel',serif; font-size:2rem; color:var(--purple); line-height:1; margin-bottom:0.3rem; }
.impact-number span { color:var(--teal); }

/* ---- HOW I WORK — Timeline ---- */
.timeline { position:relative; padding:0; margin:0; }
.timeline::before { content:''; position:absolute; left:28px; top:0; bottom:0; width:2px; background:linear-gradient(180deg,var(--purple),var(--teal)); }
.timeline-item { position:relative; padding:0 0 2.5rem 5rem; }
.timeline-item:last-child { padding-bottom:0; }
.timeline-dot { position:absolute; left:0; top:0; width:56px; height:56px; border-radius:50%; background:var(--purple); color:var(--white); font-family:'Cinzel',serif; font-weight:700; font-size:1rem; display:flex; align-items:center; justify-content:center; border:3px solid var(--white); box-shadow:0 0 0 3px var(--purple); z-index:1; }
.timeline-item:nth-child(2) .timeline-dot { background:#6b3aac; box-shadow:0 0 0 3px #6b3aac; }
.timeline-item:nth-child(3) .timeline-dot { background:var(--mauve); box-shadow:0 0 0 3px var(--mauve); color:var(--dark); }
.timeline-item:nth-child(4) .timeline-dot { background:var(--teal); box-shadow:0 0 0 3px var(--teal); }
.timeline-item:nth-child(5) .timeline-dot { background:#008f8f; box-shadow:0 0 0 3px #008f8f; }
.timeline-content { background:var(--white); border:1px solid var(--border); border-radius:8px; padding:1.75rem 2rem; margin-top:-4px; transition:var(--transition); }
.timeline-content:hover { box-shadow:var(--shadow-sm); border-color:var(--mauve); }
.timeline-content h4 { font-family:'Cinzel',serif; font-size:1.05rem; margin-bottom:0.5rem; color:var(--dark); }
.timeline-content p { font-size:0.93rem; color:#666; margin:0; line-height:1.75; }

/* ---- CONTACT PAGE ---- */
.contact-info-card { background:linear-gradient(135deg,#1c1c1e,#2a1a40); border-radius:12px; padding:2.5rem; position:relative; overflow:hidden; }
.contact-info-card::before { content:''; position:absolute; inset:0; background-image:linear-gradient(rgba(81,40,136,0.15) 1px,transparent 1px),linear-gradient(90deg,rgba(81,40,136,0.15) 1px,transparent 1px); background-size:30px 30px; }
.contact-info-card > * { position:relative; z-index:1; }
.contact-detail { display:flex; gap:1rem; align-items:flex-start; padding:1.25rem 0; border-bottom:1px solid rgba(255,255,255,0.07); }
.contact-detail:last-of-type { border-bottom:none; }
.contact-detail-icon { width:40px; height:40px; background:rgba(81,40,136,0.4); border-radius:8px; display:flex; align-items:center; justify-content:center; font-size:1.1rem; flex-shrink:0; }
.contact-detail-label { font-size:0.75rem; font-weight:700; letter-spacing:0.14em; text-transform:uppercase; color:var(--teal); margin-bottom:0.2rem; }
.contact-detail-value { color:rgba(255,255,255,0.85); font-size:0.95rem; line-height:1.6; }
.contact-detail-value a { color:rgba(255,255,255,0.85); }
.contact-detail-value a:hover { color:var(--teal); }

/* ---- FOOTER ---- */
.footer { background:#f8f7fc !important; color:var(--text-body); padding:4rem 2.5rem 2rem; border-top:2px solid var(--purple); }
.footer-grid { max-width:1200px; margin:0 auto; display:grid; grid-template-columns:1.6fr 1fr 1fr 1.4fr; gap:2rem; padding-bottom:3rem; border-bottom:1px solid rgba(255,255,255,0.08); margin-bottom:2rem; }
.footer-brand img { height:40px; width:auto; max-width:220px; object-fit:contain; margin-bottom:1rem; }
.footer-brand p { font-size:0.9rem; line-height:1.8; margin-bottom:1.5rem; color:#666; }
.footer-tagline { display:inline-flex; align-items:center; gap:0.5rem; font-size:0.78rem; font-weight:600; letter-spacing:0.12em; text-transform:uppercase; color:var(--teal); border:1px solid rgba(0,166,166,0.4); padding:0.4rem 0.9rem; border-radius:4px; }
.footer-col h5 { color:var(--dark); font-size:0.8rem; font-weight:700; letter-spacing:0.14em; text-transform:uppercase; margin-bottom:1.25rem; }
.footer-col ul { list-style:none; }
.footer-col ul li { margin-bottom:0.6rem; }
.footer-col ul a { color:#666; font-size:0.9rem; transition:var(--transition); }
.footer-col ul a:hover { color:var(--purple); padding-left:4px; }
.footer-contact-item { display:flex; gap:0.6rem; align-items:flex-start; margin-bottom:0.75rem; font-size:0.88rem; color:#666; }
.footer-contact-icon { color:var(--teal); flex-shrink:0; margin-top:2px; }
.footer-bottom { max-width:1200px; margin:0 auto; display:flex; justify-content:space-between; align-items:center; font-size:0.82rem; color:#999; }

/* ---- ANIMATIONS ---- */
@keyframes fadeUp { from{opacity:0;transform:translateY(24px);} to{opacity:1;transform:translateY(0);} }
@keyframes fadeIn { from{opacity:0;} to{opacity:1;} }
.animate-fade-up { animation:fadeUp 0.7s ease forwards; }
.animate-fade-in { animation:fadeIn 0.6s ease forwards; }
.delay-1{animation-delay:0.1s;opacity:0;} .delay-2{animation-delay:0.25s;opacity:0;}
.delay-3{animation-delay:0.4s;opacity:0;} .delay-4{animation-delay:0.55s;opacity:0;}

/* ---- RESPONSIVE ---- */
@media(max-width:1024px){
  .grid-3{grid-template-columns:repeat(2,1fr);}
  .stat-strip .container{grid-template-columns:repeat(2,1fr);}
  .footer-grid{grid-template-columns:1fr 1fr;}
  .grid-2-1{gap:2.5rem;}
}
@media(max-width:768px){
  .navbar{padding:0 1.5rem;}
  .nav-links{position:fixed;top:72px;left:0;right:0;background:rgba(255,255,255,0.99);flex-direction:column;padding:1.5rem;gap:0.25rem;transform:translateY(-120%);transition:var(--transition);border-bottom:1px solid rgba(81,40,136,0.12);box-shadow:0 8px 24px rgba(81,40,136,0.1);}
  .nav-links.open{transform:translateY(0);}
  .nav-links li{width:100%;}
  .nav-links a{display:block;padding:0.75rem 1rem;}
  .nav-toggle{display:flex;}
  .hero-content{padding:3rem 1.5rem;}
  .section{padding:4rem 1.5rem;}
  .grid-3,.grid-2,.grid-2-1{grid-template-columns:1fr;}
  .stat-strip .container{grid-template-columns:1fr 1fr;}
  .footer-grid{grid-template-columns:1fr;gap:2rem;}
  .footer-bottom{flex-direction:column;gap:0.5rem;text-align:center;}
  .form-row{grid-template-columns:1fr;}
  .page-header{padding:8rem 1.5rem 4rem;}
}
@media(max-width:480px){
  .grid-3{grid-template-columns:1fr;}
  .stat-strip .container{grid-template-columns:1fr;}
  .hero-actions{flex-direction:column;}
  .btn{text-align:center;justify-content:center;}
}
