/* ForWidows.com - Optimized CSS for PageSpeed 100/100 */
/* Core Reset & Performance Optimizations */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{font-size:16px;-webkit-text-size-adjust:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;scroll-behavior:smooth}
body{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;line-height:1.6;color:#2d3748;background:#fdfcfb;overflow-x:hidden}
img,svg{max-width:100%;height:auto;display:block}
a{color:#5a67d8;text-decoration:none;transition:color .2s ease}
a:hover{color:#434190}
a:focus{outline:2px solid #5a67d8;outline-offset:2px}

/* CSS Variables for Theme Colors */
:root{
  --primary:#5a67d8;
  --primary-dark:#434190;
  --secondary:#ed64a6;
  --teal:#38b2ac;
  --lavender:#9f7aea;
  --cream:#fdfcfb;
  --warm-cream:#f7f5f2;
  --gray-50:#f9fafb;
  --gray-100:#f3f4f6;
  --gray-200:#e5e7eb;
  --gray-300:#d1d5db;
  --gray-600:#4b5563;
  --gray-700:#374151;
  --gray-800:#1f2937;
  --gray-900:#111827;
  --text-primary:#2d3748;
  --text-secondary:#4a5568;
  --shadow-sm:0 1px 2px 0 rgba(0,0,0,.05);
  --shadow-md:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -1px rgba(0,0,0,.06);
  --shadow-lg:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -2px rgba(0,0,0,.05);
  --transition:all .3s ease;
  --border-radius:8px;
  --container-width:1200px;
}

/* Typography - System Fonts for Fast Loading */
h1,h2,h3,h4,h5,h6{font-weight:700;line-height:1.2;color:var(--gray-900);margin-bottom:1rem}
h1{font-size:clamp(2rem,5vw,3.5rem);letter-spacing:-.025em}
h2{font-size:clamp(1.75rem,4vw,2.5rem);letter-spacing:-.025em}
h3{font-size:clamp(1.5rem,3vw,2rem)}
h4{font-size:clamp(1.25rem,2.5vw,1.5rem)}
h5{font-size:clamp(1.125rem,2vw,1.25rem)}
p{margin-bottom:1rem;line-height:1.75;color:var(--text-secondary)}
.lead{font-size:1.25rem;font-weight:300;color:var(--text-primary)}

/* Header & Navigation */
header{background:rgba(255,255,255,.98);backdrop-filter:blur(10px);box-shadow:var(--shadow-sm);position:sticky;top:0;z-index:1000;border-bottom:1px solid var(--gray-200)}
.header-container{max-width:var(--container-width);margin:0 auto;padding:1rem 1.5rem;display:flex;justify-content:space-between;align-items:center}
.logo{display:flex;align-items:center;gap:.75rem;font-size:1.5rem;font-weight:700;color:var(--primary)}
.logo svg{width:40px;height:40px}
nav ul{list-style:none;display:flex;gap:2rem;align-items:center}
nav a{color:var(--text-primary);font-weight:500;padding:.5rem 1rem;border-radius:var(--border-radius);transition:var(--transition)}
nav a:hover,nav a:focus{background:var(--gray-100);color:var(--primary)}
.cta-button{background:var(--primary);color:#fff!important;padding:.75rem 1.5rem!important;border-radius:var(--border-radius);font-weight:600;box-shadow:var(--shadow-md);transition:var(--transition)}
.cta-button:hover{background:var(--primary-dark);transform:translateY(-2px);box-shadow:var(--shadow-lg)}

/* Mobile Menu Toggle */
.menu-toggle{display:none;background:none;border:none;cursor:pointer;padding:.5rem;border-radius:var(--border-radius)}
.menu-toggle:hover{background:var(--gray-100)}
.menu-toggle span{display:block;width:24px;height:2px;background:var(--gray-800);margin:5px 0;transition:var(--transition)}

/* Hero Section */
.hero{background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);color:#fff;padding:4rem 1.5rem;text-align:center;position:relative;overflow:hidden}
.hero::before{content:'';position:absolute;top:0;left:0;right:0;bottom:0;background:url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23ffffff' fill-opacity='0.05'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");opacity:.3}
.hero-container{max-width:900px;margin:0 auto;position:relative;z-index:1}
.hero h1{color:#fff;margin-bottom:1.5rem;text-shadow:0 2px 4px rgba(0,0,0,.1)}
.hero .lead{color:rgba(255,255,255,.95);margin-bottom:2rem;font-size:1.35rem}
.hero-buttons{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;margin-top:2rem}
.btn{display:inline-block;padding:1rem 2rem;border-radius:var(--border-radius);font-weight:600;text-align:center;transition:var(--transition);cursor:pointer;border:2px solid transparent}
.btn-primary{background:#fff;color:var(--primary);box-shadow:var(--shadow-lg)}
.btn-primary:hover{transform:translateY(-3px);box-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 10px 10px -5px rgba(0,0,0,.04)}
.btn-secondary{background:transparent;color:#fff;border-color:#fff}
.btn-secondary:hover{background:#fff;color:var(--primary)}

/* Quick Help Banner */
.quick-help{background:var(--warm-cream);border-left:4px solid var(--secondary);padding:1.5rem;margin:2rem auto;max-width:var(--container-width);border-radius:var(--border-radius);box-shadow:var(--shadow-sm)}
.quick-help h3{color:var(--secondary);margin-bottom:.75rem;font-size:1.25rem}
.quick-help p{margin-bottom:1rem;color:var(--text-primary)}
.quick-help-links{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;margin-top:1rem}
.quick-link{display:flex;align-items:center;gap:.75rem;padding:1rem;background:#fff;border-radius:var(--border-radius);box-shadow:var(--shadow-sm);transition:var(--transition);border:1px solid var(--gray-200)}
.quick-link:hover{box-shadow:var(--shadow-md);transform:translateY(-2px);border-color:var(--primary)}
.quick-link svg{width:24px;height:24px;flex-shrink:0;fill:var(--primary)}
.quick-link span{font-weight:500;color:var(--text-primary)}

/* Main Container */
.container{max-width:var(--container-width);margin:0 auto;padding:3rem 1.5rem}
.section{margin-bottom:4rem}
.section-header{text-align:center;margin-bottom:3rem}
.section-header h2{color:var(--gray-900);margin-bottom:1rem}
.section-header p{color:var(--text-secondary);max-width:700px;margin:0 auto;font-size:1.125rem}

/* Pillars Grid */
.pillars-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:2rem;margin-top:2rem}
.pillar-card{background:#fff;border-radius:var(--border-radius);padding:2rem;box-shadow:var(--shadow-md);transition:var(--transition);border-top:4px solid var(--gray-300);position:relative}
.pillar-card:hover{transform:translateY(-5px);box-shadow:var(--shadow-lg)}
.pillar-card.grief{border-top-color:var(--teal)}
.pillar-card.finance{border-top-color:var(--primary)}
.pillar-card.lifestyle{border-top-color:var(--lavender)}
.pillar-card.dating{border-top-color:var(--secondary)}
.pillar-card svg{width:48px;height:48px;margin-bottom:1rem}
.pillar-card h3{color:var(--gray-900);margin-bottom:1rem;font-size:1.5rem}
.pillar-card p{color:var(--text-secondary);margin-bottom:1.5rem}
.pillar-card ul{list-style:none;margin-bottom:1.5rem}
.pillar-card li{padding:.5rem 0;color:var(--text-secondary);position:relative;padding-left:1.5rem}
.pillar-card li::before{content:'✓';position:absolute;left:0;color:var(--teal);font-weight:700}
.pillar-card .btn-link{color:var(--primary);font-weight:600;display:inline-flex;align-items:center;gap:.5rem}
.pillar-card .btn-link:hover{gap:.75rem}

/* Article Layout */
article{max-width:800px;margin:0 auto;background:#fff;padding:3rem;border-radius:var(--border-radius);box-shadow:var(--shadow-md)}
.article-meta{display:flex;gap:1rem;align-items:center;margin-bottom:2rem;padding-bottom:1rem;border-bottom:2px solid var(--gray-200);font-size:.875rem;color:var(--text-secondary)}
.article-meta .author{font-weight:600;color:var(--text-primary)}
.article-meta .date{display:flex;align-items:center;gap:.5rem}

/* Table of Contents */
.toc{background:var(--gray-50);border-left:4px solid var(--primary);padding:1.5rem;margin:2rem 0;border-radius:var(--border-radius)}
.toc h3{font-size:1.125rem;margin-bottom:1rem;color:var(--gray-900)}
.toc ul{list-style:none}
.toc li{padding:.5rem 0}
.toc a{color:var(--primary);font-weight:500}
.toc a:hover{text-decoration:underline}

/* Content Sections */
article section{margin:3rem 0}
article h2{margin-top:2.5rem;margin-bottom:1rem;padding-top:1rem;border-top:1px solid var(--gray-200)}
article h2:first-of-type{border-top:none;margin-top:0;padding-top:0}
article ul,article ol{margin:1rem 0 1rem 2rem;color:var(--text-secondary)}
article li{margin:.5rem 0;line-height:1.75}
article blockquote{border-left:4px solid var(--lavender);padding:1rem 1.5rem;margin:2rem 0;background:var(--gray-50);font-style:italic;color:var(--text-primary)}
article strong{color:var(--gray-900);font-weight:600}

/* Aside/Sidebar Elements */
aside{background:var(--warm-cream);padding:2rem;border-radius:var(--border-radius);margin:2rem 0;border:1px solid var(--gray-200)}
aside h3{font-size:1.25rem;margin-bottom:1rem;color:var(--gray-900)}
aside ul{list-style:none}
aside li{padding:.75rem 0;border-bottom:1px solid var(--gray-200)}
aside li:last-child{border-bottom:none}

/* Callout Boxes */
.callout{padding:1.5rem;border-radius:var(--border-radius);margin:2rem 0;border-left:4px solid}
.callout-info{background:#e6f7ff;border-color:#1890ff;color:#004085}
.callout-warning{background:#fff7e6;border-color:#fa8c16;color:#856404}
.callout-success{background:#f6ffed;border-color:#52c41a;color:#155724}
.callout-danger{background:#fff1f0;border-color:#f5222d;color:#721c24}
.callout h4{margin-bottom:.5rem;font-size:1.125rem}

/* Calculator Styles */
.calculator{background:#fff;border:2px solid var(--gray-200);border-radius:var(--border-radius);padding:2rem;margin:2rem 0;box-shadow:var(--shadow-md)}
.calculator h3{margin-bottom:1.5rem;color:var(--gray-900)}
.form-group{margin-bottom:1.5rem}
.form-group label{display:block;margin-bottom:.5rem;font-weight:600;color:var(--gray-900)}
.form-group input,.form-group select{width:100%;padding:.75rem;border:2px solid var(--gray-300);border-radius:var(--border-radius);font-size:1rem;transition:var(--transition)}
.form-group input:focus,.form-group select:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px rgba(90,103,216,.1)}
.form-group .help-text{font-size:.875rem;color:var(--text-secondary);margin-top:.5rem}
.calculator-result{background:var(--primary);color:#fff;padding:2rem;border-radius:var(--border-radius);margin-top:2rem;text-align:center}
.calculator-result h4{color:#fff;margin-bottom:1rem}
.calculator-result .amount{font-size:2.5rem;font-weight:700;margin:1rem 0}
.calculator-result p{color:rgba(255,255,255,.9);font-size:.875rem}

/* Checklist Styles */
.checklist{list-style:none;margin:2rem 0}
.checklist li{padding:1rem;margin:.5rem 0;background:#fff;border:2px solid var(--gray-200);border-radius:var(--border-radius);display:flex;align-items:flex-start;gap:1rem;transition:var(--transition)}
.checklist li:hover{border-color:var(--primary);box-shadow:var(--shadow-sm)}
.checklist input[type="checkbox"]{width:20px;height:20px;margin-top:.25rem;cursor:pointer;accent-color:var(--primary)}
.checklist label{flex:1;cursor:pointer;color:var(--text-primary);font-weight:500}
.checklist .timeline{font-size:.875rem;color:var(--text-secondary);font-style:italic}

/* Footer */
footer{background:var(--gray-900);color:var(--gray-300);padding:3rem 1.5rem 1.5rem}
.footer-container{max-width:var(--container-width);margin:0 auto}
.footer-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:2rem;margin-bottom:2rem}
.footer-section h4{color:#fff;margin-bottom:1rem;font-size:1.125rem}
.footer-section ul{list-style:none}
.footer-section li{padding:.5rem 0}
.footer-section a{color:var(--gray-300);transition:var(--transition)}
.footer-section a:hover{color:#fff}
.footer-bottom{border-top:1px solid var(--gray-700);padding-top:2rem;text-align:center;color:var(--gray-400);font-size:.875rem}
.footer-bottom p{margin:.5rem 0}

/* Accessibility & Skip Links */
.skip-link{position:absolute;top:-40px;left:0;background:var(--primary);color:#fff;padding:8px;z-index:100;transition:top .2s}
.skip-link:focus{top:0}

/* Responsive Design */
@media (max-width:768px){
  .header-container{flex-wrap:wrap}
  nav{display:none;width:100%;order:3}
  nav.active{display:block}
  nav ul{flex-direction:column;gap:0;padding:1rem 0}
  nav li{width:100%;border-top:1px solid var(--gray-200)}
  nav a{display:block;padding:1rem}
  .menu-toggle{display:block}
  .menu-toggle.active span:nth-child(1){transform:rotate(45deg) translate(5px,5px)}
  .menu-toggle.active span:nth-child(2){opacity:0}
  .menu-toggle.active span:nth-child(3){transform:rotate(-45deg) translate(7px,-6px)}
  .hero{padding:3rem 1.5rem}
  .hero-buttons{flex-direction:column}
  .btn{width:100%}
  article{padding:2rem 1.5rem}
  .pillars-grid{grid-template-columns:1fr}
  .footer-grid{grid-template-columns:1fr}
}

@media (max-width:480px){
  .container{padding:2rem 1rem}
  .pillar-card{padding:1.5rem}
  article{padding:1.5rem 1rem}
  .calculator{padding:1.5rem}
}

/* Print Styles */
@media print{
  header,footer,.cta-button,.hero-buttons,aside,.menu-toggle{display:none}
  body{color:#000;background:#fff}
  article{box-shadow:none;padding:0}
  a{color:#000;text-decoration:underline}
  .checklist li{border:1px solid #000;break-inside:avoid}
}

/* Performance Optimizations */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
}

/* Dark Mode Support (Optional) */
@media (prefers-color-scheme:dark){
  body.dark-mode{background:var(--gray-900);color:var(--gray-100)}
  body.dark-mode header{background:rgba(31,41,55,.98);border-bottom-color:var(--gray-700)}
  body.dark-mode .pillar-card,body.dark-mode article{background:var(--gray-800);color:var(--gray-100)}
  body.dark-mode h1,body.dark-mode h2,body.dark-mode h3,body.dark-mode h4,body.dark-mode h5,body.dark-mode h6{color:var(--gray-100)}
  body.dark-mode p,body.dark-mode li{color:var(--gray-300)}
}

/* Loading Performance - Prevent FOUC */
html.loading *{transition:none!important}
