@import url('https://fonts.googleapis.com/css2?family=Syne:wght@700;800&family=Outfit:wght@300;400;500;600&display=swap');

:root {
  --bg:#0D0D12; --surface:#15151E; --surface2:#1C1C28; --surface3:#232333;
  --border:rgba(255,255,255,0.07); --border2:rgba(255,255,255,0.13);
  --text:#EEEAF8; --muted:#A0A0C0; --dim:#7070A0;
  --health:#34D399; --health-dim:rgba(52,211,153,0.09);
  --finance:#60A5FA; --finance-dim:rgba(96,165,250,0.09);
  --kitchen:#FB923C; --kitchen-dim:rgba(251,146,60,0.09);
  --life:#F472B6; --life-dim:rgba(244,114,182,0.09);
  --dates:#A78BFA; --dates-dim:rgba(167,139,250,0.09);
  --biz:#FBBF24; --biz-dim:rgba(251,191,36,0.09);
}
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{font-family:'Outfit',sans-serif;background:var(--bg);color:var(--text);min-height:100vh;-webkit-font-smoothing:antialiased;}
body::before{content:'';position:fixed;inset:0;background-image:linear-gradient(rgba(255,255,255,0.018) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,0.018) 1px,transparent 1px);background-size:52px 52px;pointer-events:none;z-index:0;}

/* NAV */
nav{position:sticky;top:0;z-index:100;display:flex;align-items:center;justify-content:space-between;padding:16px 40px;background:rgba(13,13,18,0.96);backdrop-filter:blur(14px);border-bottom:1px solid var(--border);}
.logo{font-family:'Syne',sans-serif;font-size:1.25rem;font-weight:800;color:var(--text);text-decoration:none;letter-spacing:-0.02em;display:flex;align-items:center;gap:9px;}
.logo-icon{width:30px;height:30px;background:linear-gradient(135deg,#60A5FA,#A78BFA);border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:15px;flex-shrink:0;}
.nav-links{display:flex;gap:2px;list-style:none;}
.nav-links a{font-size:13px;font-weight:500;color:var(--muted);text-decoration:none;padding:7px 13px;border-radius:8px;transition:all .2s;}
.nav-links a:hover{color:var(--text);background:var(--surface2);}
.hamburger{display:none;background:var(--surface2);border:1px solid var(--border);border-radius:8px;padding:7px 11px;color:var(--text);cursor:pointer;font-size:18px;line-height:1;}
.mobile-menu{display:none;flex-direction:column;background:var(--surface);border-bottom:1px solid var(--border);padding:10px 16px;gap:2px;position:sticky;top:61px;z-index:99;}
.mobile-menu.open{display:flex;}
.mobile-menu a{font-size:14px;color:var(--muted);text-decoration:none;padding:9px 12px;border-radius:8px;transition:background .2s;}
.mobile-menu a:hover{background:var(--surface2);color:var(--text);}

/* PAGE */
.page{position:relative;z-index:1;max-width:1080px;margin:0 auto;padding:0 24px 100px;}

/* AD SLOTS */
.ad-slot{width:100%;background:var(--surface);border:1px dashed var(--dim);border-radius:10px;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--muted);font-size:12px;gap:3px;}
.ad-slot-leaderboard{height:100px;margin:28px 0;}
.ad-slot-rectangle{width:100%;max-width:336px;height:280px;margin:24px auto;}
.ad-label{font-size:10px;color:var(--dim);text-transform:uppercase;letter-spacing:.08em;}

/* FOOTER */
footer{position:relative;z-index:1;border-top:1px solid var(--border);padding:44px 40px 28px;margin-top:20px;}
.footer-inner{max-width:1080px;margin:0 auto;display:grid;grid-template-columns:240px 1fr;gap:48px;}
.footer-brand p{font-size:13px;color:var(--muted);line-height:1.65;margin-top:10px;max-width:220px;}
.footer-cols{display:flex;gap:40px;flex-wrap:wrap;}
.footer-col h4{font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--dim);margin-bottom:13px;}
.footer-col a{display:block;font-size:13px;color:var(--muted);text-decoration:none;margin-bottom:7px;transition:color .2s;}
.footer-col a:hover{color:var(--text);}
.footer-bottom{max-width:1080px;margin:28px auto 0;border-top:1px solid var(--border);padding-top:18px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px;}
.footer-copy{font-size:12px;color:var(--dim);}
.footer-legal{display:flex;gap:18px;}
.footer-legal a{font-size:12px;color:var(--dim);text-decoration:none;transition:color .2s;}
.footer-legal a:hover{color:var(--muted);}

/* BREADCRUMB */
.breadcrumb{font-size:13px;color:var(--muted);margin:22px 0 30px;display:flex;align-items:center;gap:6px;flex-wrap:wrap;}
.breadcrumb a{color:var(--muted);text-decoration:none;transition:color .2s;}
.breadcrumb a:hover{color:var(--text);}
.breadcrumb span{color:var(--dim);}

/* TOOL HERO */
.tool-hero{padding:44px 0 32px;border-bottom:1px solid var(--border);margin-bottom:36px;}
.cat-badge{display:inline-flex;align-items:center;gap:6px;padding:5px 13px;border-radius:20px;font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;margin-bottom:16px;}
.tool-hero h1{font-family:'Syne',sans-serif;font-size:clamp(1.7rem,4vw,2.6rem);font-weight:800;letter-spacing:-0.03em;line-height:1.1;margin-bottom:10px;}
.tool-hero p{font-size:15px;color:var(--muted);line-height:1.7;max-width:540px;}

/* TOOL GRID */
.tool-grid{display:grid;grid-template-columns:1fr 350px;gap:32px;align-items:start;}

/* CALCULATOR CARD */
.calculator-card{background:var(--surface);border:1px solid var(--border2);border-radius:18px;padding:28px;position:sticky;top:80px;}
.calculator-card h2{font-family:'Syne',sans-serif;font-size:1.05rem;font-weight:700;margin-bottom:22px;letter-spacing:-0.01em;}

/* INFO CONTENT */
.info-content h2{font-family:'Syne',sans-serif;font-size:1.2rem;font-weight:700;margin:32px 0 12px;}
.info-content h2:first-child{margin-top:0;}
.info-content p{font-size:15px;color:var(--muted);line-height:1.8;margin-bottom:14px;}
.info-content ul{list-style:none;margin-bottom:16px;}
.info-content ul li{font-size:15px;color:var(--muted);line-height:1.8;padding:4px 0 4px 18px;position:relative;}
.info-content ul li::before{content:'›';position:absolute;left:0;color:var(--dim);}
.highlight-box{background:var(--surface2);border-left:3px solid var(--finance);border-radius:0 10px 10px 0;padding:14px 18px;margin:18px 0;}
.highlight-box p{margin:0;font-size:14px;color:var(--muted);line-height:1.7;}

/* FORM */
.field{margin-bottom:16px;}
.field label{display:block;font-size:13px;font-weight:600;color:var(--muted);margin-bottom:7px;}
.field input[type=number],.field input[type=date],.field input[type=text],.field input[type=email],.field select,.field textarea{width:100%;background:var(--surface2);border:1px solid var(--border2);border-radius:10px;padding:11px 13px;font-family:'Outfit',sans-serif;font-size:15px;color:var(--text);outline:none;transition:border-color .2s;-webkit-appearance:none;}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--finance);}
.field select option{background:var(--surface2);color:var(--text);}
.field .hint{font-size:12px;color:var(--dim);margin-top:5px;}
.input-row{display:flex;gap:8px;}
.input-row input,.input-row select{flex:1;}
.input-row select{flex:0 0 100px;}

/* RADIO GROUP */
.radio-group{display:flex;gap:8px;flex-wrap:wrap;}
.radio-group label{display:flex;align-items:center;gap:7px;background:var(--surface2);border:1px solid var(--border2);border-radius:9px;padding:9px 13px;cursor:pointer;font-size:13px;font-weight:500;color:var(--muted);transition:all .2s;user-select:none;}
.radio-group label:hover{color:var(--text);}
.radio-group input[type=radio]{accent-color:var(--finance);width:14px;height:14px;flex-shrink:0;}
.radio-group label:has(input:checked){border-color:var(--finance);background:rgba(96,165,250,0.09);color:var(--text);}

/* BUTTON */
.btn-calc{width:100%;padding:13px;background:linear-gradient(135deg,#60A5FA,#A78BFA);border:none;border-radius:11px;font-family:'Outfit',sans-serif;font-size:15px;font-weight:600;color:#fff;cursor:pointer;transition:opacity .2s,transform .15s;margin-top:4px;letter-spacing:0.01em;}
.btn-calc:hover{opacity:.88;transform:translateY(-1px);}
.btn-calc:active{transform:translateY(0);}

/* RESULTS */
.result-box{margin-top:18px;background:var(--surface2);border-radius:12px;padding:18px;display:none;animation:fadeUp .3s ease both;}
.result-box.show{display:block;}
.result-label{font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:5px;}
.result-value{font-family:'Syne',sans-serif;font-size:1.9rem;font-weight:800;color:var(--text);line-height:1.15;word-break:break-word;}
.result-sub{font-size:13px;color:var(--muted);margin-top:6px;line-height:1.6;}
.result-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px;}
.result-item{background:var(--surface3);border-radius:9px;padding:12px;}
.result-item .rl{font-size:11px;color:var(--muted);margin-bottom:4px;}
.result-item .rv{font-size:1.05rem;font-weight:700;color:var(--text);}

/* ANIMATIONS */
@keyframes fadeUp{from{opacity:0;transform:translateY(14px);}to{opacity:1;transform:translateY(0);}}
.fade-up{animation:fadeUp .5s ease both;}

/* RESPONSIVE */
@media(max-width:800px){
  nav{padding:14px 18px;}
  .nav-links{display:none;}
  .hamburger{display:block;}
  footer{padding:36px 18px 24px;}
  .footer-inner{grid-template-columns:1fr;}
  .tool-grid{grid-template-columns:1fr;}
  .calculator-card{position:static;}
  .page{padding:0 16px 80px;}
  .result-grid{grid-template-columns:1fr 1fr;}
}
@media(max-width:480px){
  .result-grid{grid-template-columns:1fr;}
  .radio-group label{font-size:12px;padding:8px 10px;}
  .footer-cols{gap:24px;}
}

/* Accessibility: improved contrast ratios */
.card-desc{color:#A8A8C8;}
.footer-col a{color:#A0A0C0;}
.footer-copy{color:#8888B0;}
.footer-legal a{color:#8888B0;}
.breadcrumb{color:#A0A0C0;}
.breadcrumb a{color:#A0A0C0;}
.result-sub{color:#A8A8C8;}
.field label{color:#B0B0CC;}
.result-item .rl{color:#A0A0C0;}
.hint{color:#9090B8;}
.ad-label{color:#8080A8;}
.cat-count{font-weight:700;}
.why-desc{color:#A8A8C8;}
.info-content p{color:#A8A8C8;}
.info-content ul li{color:#A8A8C8;}
.highlight-box p{color:#A8A8C8;}
.hero-sub{color:#A8A8C8;}
.tool-hero p{color:#A8A8C8;}
.nav-links a{color:#A0A0C0;}
.mobile-menu a{color:#A0A0C0;}



/* === RavenSharp / Ascension Digital final alignment + colour system === */
:root {
  --rs-bg-1: #050914;
  --rs-bg-2: #0a1024;
  --rs-panel: rgba(8, 14, 32, 0.94);
  --rs-panel-2: rgba(19, 12, 46, 0.94);
  --rs-border: rgba(0, 229, 255, 0.24);
  --rs-cyan: #06d6ff;
  --rs-purple: #8b5cf6;
  --rs-pink: #d946ef;
  --rs-text: #f7fbff;
  --rs-muted: rgba(247, 251, 255, 0.78);
}

html,
body {
  width: 100% !important;
  max-width: 100% !important;
  overflow-x: hidden !important;
  margin: 0 !important;
  box-sizing: border-box !important;
}

body {
  background:
    radial-gradient(circle at 10% 0%, rgba(6, 214, 255, 0.13), transparent 32%),
    radial-gradient(circle at 92% 8%, rgba(139, 92, 246, 0.18), transparent 34%),
    linear-gradient(180deg, var(--rs-bg-1), var(--rs-bg-2)) !important;
}

/* Remove accidental offset/float behaviour */
body > a[href*="mycalctools"],
body > a[href*="mycalendartools"],
body > a[href*="mycalctools.net"],
body > a[href*="mycalendartools.net"],
header > a[href*="mycalctools"],
header > a[href*="mycalendartools"],
nav > a[href*="mycalctools"],
nav > a[href*="mycalendartools"] {
  position: static !important;
  float: none !important;
  right: auto !important;
  top: auto !important;
  transform: none !important;
}

/* Main centring fix */
main,
.main,
.page,
.page-shell,
.container,
.wrapper,
.content,
.site-content,
.hero,
.hero-section {
  width: min(1120px, calc(100% - 28px)) !important;
  max-width: 1120px !important;
  margin-left: auto !important;
  margin-right: auto !important;
  box-sizing: border-box !important;
}

/* Fix dodgey one-sided boxes */
section,
.card,
.tool-card,
.panel,
.calculator,
.calculator-card,
.tools-grid,
.grid,
.cards {
  box-sizing: border-box !important;
}

section,
.panel,
.calculator,
.calculator-card {
  margin-left: auto !important;
  margin-right: auto !important;
}

/* Shared RavenSharp colour treatment */
.rs-brand-strip,
.rs-donate-panel,
.rs-about-story,
.rs-footer-brand {
  background:
    radial-gradient(circle at 10% 0%, rgba(6, 214, 255, 0.16), transparent 34%),
    radial-gradient(circle at 90% 10%, rgba(139, 92, 246, 0.19), transparent 36%),
    linear-gradient(135deg, rgba(5, 9, 20, 0.98), rgba(18, 10, 45, 0.96)) !important;
  border-color: var(--rs-border) !important;
  color: var(--rs-text) !important;
}

.rs-brand-strip {
  margin: 0 0 18px 0 !important;
  padding: 12px 16px !important;
  width: 100% !important;
  box-sizing: border-box !important;
}

.rs-brand-inner {
  width: min(1120px, 100%) !important;
  margin: 0 auto !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 14px !important;
}

.rs-brand-left {
  display: flex !important;
  align-items: center !important;
  gap: 12px !important;
  min-width: 0 !important;
}

.rs-raven-mark {
  width: 46px !important;
  height: 46px !important;
  border-radius: 14px !important;
  object-fit: cover !important;
  box-shadow: 0 0 22px rgba(6, 214, 255, 0.32) !important;
}

.rs-brand-title strong {
  color: #fff !important;
  letter-spacing: .08em !important;
}

.rs-brand-title span {
  color: var(--rs-muted) !important;
}

.rs-donate-mini,
.rs-donate-button {
  background: linear-gradient(135deg, var(--rs-cyan), var(--rs-purple), var(--rs-pink)) !important;
  color: #fff !important;
  border: 0 !important;
  text-decoration: none !important;
  box-shadow: 0 0 20px rgba(6, 214, 255, .28) !important;
}

.rs-donate-panel,
.rs-about-story {
  width: min(960px, calc(100% - 28px)) !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

.rs-footer-brand {
  width: 100% !important;
  margin-top: 18px !important;
}

/* Cross-site links block */
.rs-cross-links {
  width: min(960px, calc(100% - 28px));
  margin: 18px auto;
  display: flex;
  justify-content: center;
  gap: 12px;
  flex-wrap: wrap;
}

.rs-cross-links a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 10px 14px;
  border-radius: 999px;
  background: rgba(255,255,255,.08);
  border: 1px solid rgba(6,214,255,.24);
  color: #fff !important;
  text-decoration: none !important;
  font-weight: 800;
}

/* Bottom menu: balanced two-row/flexible layout */
footer nav,
footer ul,
footer .footer-nav,
footer .footer-links,
.site-footer nav,
.site-footer ul,
.site-footer .footer-nav,
.site-footer .footer-links {
  display: flex !important;
  flex-wrap: wrap !important;
  justify-content: center !important;
  align-items: center !important;
  gap: 8px 14px !important;
  max-width: 760px !important;
  margin: 14px auto !important;
  padding: 0 !important;
  text-align: center !important;
  list-style: none !important;
  box-sizing: border-box !important;
}

footer nav a,
footer ul a,
footer .footer-nav a,
footer .footer-links a,
.site-footer nav a,
.site-footer ul a,
.site-footer .footer-nav a,
.site-footer .footer-links a {
  position: static !important;
  float: none !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  white-space: normal !important;
  text-align: center !important;
}

@media (max-width: 760px) {
  main,
  .main,
  .page,
  .page-shell,
  .container,
  .wrapper,
  .content,
  .site-content,
  .hero,
  .hero-section {
    width: min(100% - 20px, 100%) !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  .rs-brand-strip {
    padding: 9px 10px !important;
    margin-bottom: 12px !important;
  }

  .rs-brand-inner {
    gap: 8px !important;
  }

  .rs-raven-mark {
    width: 36px !important;
    height: 36px !important;
    border-radius: 11px !important;
  }

  .rs-brand-title strong {
    font-size: .72rem !important;
    letter-spacing: .04em !important;
  }

  .rs-brand-title span {
    font-size: .62rem !important;
  }

  .rs-donate-mini {
    padding: 7px 9px !important;
    font-size: .7rem !important;
    white-space: nowrap !important;
  }

  footer nav,
  footer ul,
  footer .footer-nav,
  footer .footer-links,
  .site-footer nav,
  .site-footer ul,
  .site-footer .footer-nav,
  .site-footer .footer-links {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 8px 10px !important;
    width: min(430px, calc(100% - 28px)) !important;
  }

  footer nav a,
  footer ul a,
  footer .footer-nav a,
  footer .footer-links a,
  .site-footer nav a,
  .site-footer ul a,
  .site-footer .footer-nav a,
  .site-footer .footer-links a {
    width: 100% !important;
    padding: 6px 4px !important;
    box-sizing: border-box !important;
  }

  .rs-cross-links {
    width: min(100% - 22px, 430px);
    gap: 8px;
  }

  .rs-cross-links a {
    flex: 1 1 160px;
    font-size: .82rem;
    padding: 9px 10px;
  }
}


/* === FINAL TYPO FIX === */
.rs-brand-strip,
.rs-donate-panel,
.rs-about-story,
.rs-footer-brand,
.rs-cross-links {
  font-family: inherit !important;
  font-size: inherit !important;
  line-height: inherit !important;
  color: inherit !important;
}

.rs-about-story h1,
.rs-about-story h2,
.rs-donate-panel h2 {
  font-family: inherit !important;
  font-size: 1.4rem !important;
  font-weight: 600 !important;
  color: inherit !important;
}

.rs-about-story p,
.rs-donate-panel p,
.rs-about-story li {
  font-size: 0.95rem !important;
  color: rgba(255,255,255,0.75) !important;
}

.rs-brand-title strong {
  font-size: 0.85rem !important;
}

.rs-brand-title span {
  font-size: 0.7rem !important;
  opacity: 0.6 !important;
}

.rs-donate-button,
.rs-donate-mini {
  font-size: 0.85rem !important;
}



/* === FINAL COLOUR / READABILITY FIX === */
/* Stop accent colours such as yellow from taking over body copy */
.rs-brand-strip,
.rs-donate-panel,
.rs-about-story,
.rs-footer-brand,
.rs-cross-links {
  color: #e8eef7 !important;
}

.rs-about-story p,
.rs-about-story li,
.rs-about-story span,
.rs-donate-panel p,
.rs-footer-brand p {
  color: rgba(232, 238, 247, 0.82) !important;
}

.rs-about-story h1,
.rs-about-story h2,
.rs-about-story h3,
.rs-donate-panel h2,
.rs-footer-brand strong,
.rs-brand-title strong {
  color: #f8fbff !important;
}

.rs-brand-title span {
  color: rgba(232, 238, 247, 0.68) !important;
}

.rs-about-story strong,
.rs-donate-panel strong {
  color: #ffffff !important;
}

.rs-about-story a,
.rs-donate-panel a:not(.rs-donate-button),
.rs-footer-brand a,
.rs-cross-links a {
  color: #8eeaff !important;
}

.rs-donate-button,
.rs-donate-mini {
  color: #ffffff !important;
}

/* Tone down blockquote so it does not become a bright yellow block */
.rs-about-story blockquote {
  color: #f8fbff !important;
  background: rgba(255,255,255,0.06) !important;
  border-left-color: #06d6ff !important;
}

/* If global site CSS sets all text to yellow, override inside main content to readable defaults */
main,
.main,
.page,
.page-shell,
.container,
.wrapper,
.content,
.site-content {
  color: #e8eef7;
}

/* Keep normal links distinguishable but not harsh */
main a:not(.rs-donate-button):not(.rs-donate-mini):not(.rs-cross-links a) {
  color: #6edbff;
}


/* === MYCALCTOOLS CARD SIZE FIX FOR SAMSUNG / DESKTOP CONSISTENCY === */
.tools-grid,
.grid,
.cards,
.calculator-grid,
.tool-grid {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 12px !important;
  align-items: stretch !important;
}

@media (min-width: 768px) {
  .tools-grid,
  .grid,
  .cards,
  .calculator-grid,
  .tool-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }
}

@media (min-width: 1024px) {
  .tools-grid,
  .grid,
  .cards,
  .calculator-grid,
  .tool-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  }
}

.tool-card,
.card,
.calculator-card,
.tools-grid > a,
.grid > a,
.cards > a,
.calculator-grid > a,
.tool-grid > a {
  min-height: 140px !important;
  height: 100% !important;
  box-sizing: border-box !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: space-between !important;
  text-align: center !important;
  overflow: hidden !important;
}

.tool-card h2,
.tool-card h3,
.card h2,
.card h3,
.calculator-card h2,
.calculator-card h3 {
  font-size: 0.98rem !important;
  line-height: 1.25 !important;
  margin-bottom: 6px !important;
}

.tool-card p,
.card p,
.calculator-card p,
.tools-grid > a p,
.grid > a p,
.cards > a p {
  font-size: 0.82rem !important;
  line-height: 1.35 !important;
  color: rgba(232, 238, 247, 0.78) !important;
  display: -webkit-box !important;
  -webkit-line-clamp: 2 !important;
  -webkit-box-orient: vertical !important;
  overflow: hidden !important;
}

.tool-card,
.card,
.calculator-card {
  word-break: break-word !important;
}



/* === FINAL EMOJI / ICON COLOUR FIX === */
/* Stop desktop browsers from forcing yellow/accent colour onto emoji/icons */
.rs-brand-strip,
.rs-donate-panel,
.rs-about-story,
.rs-footer-brand,
.rs-cross-links {
  -webkit-text-fill-color: initial !important;
}

/* Keep text readable but do not recolour native emoji images */
.rs-brand-strip p,
.rs-brand-strip span,
.rs-brand-strip strong,
.rs-donate-panel p,
.rs-donate-panel span,
.rs-about-story p,
.rs-about-story li,
.rs-about-story span,
.rs-footer-brand p,
.rs-footer-brand span {
  -webkit-text-fill-color: currentColor !important;
}

/* Restore normal image/icon rendering */
img,
picture,
svg,
canvas,
video,
.emoji,
.icon,
[class*="emoji"],
[class*="icon"] {
  filter: none !important;
  mix-blend-mode: normal !important;
}

/* Do not force SVG icons into yellow */
svg,
svg *,
.icon,
.icon *,
[class*="icon"] svg,
[class*="icon"] svg * {
  color: inherit !important;
  fill: currentColor;
}

/* Native emoji font fallback */
.rs-about-story,
.rs-donate-panel,
.rs-footer-brand,
.rs-brand-strip {
  font-family: inherit, "Apple Color Emoji", "Segoe UI Emoji", "Noto Color Emoji", sans-serif !important;
}

/* Prevent global link/accent colour from bleeding into emojis or image-like spans */
.rs-about-story .emoji,
.rs-donate-panel .emoji,
.rs-footer-brand .emoji,
.rs-brand-strip .emoji {
  color: inherit !important;
  -webkit-text-fill-color: initial !important;
}



/* === FINAL SAFE CENTERING FIX === */
/* Corrects off-centre main boxes without forcing every internal component. */

html,
body {
  width: 100% !important;
  max-width: 100% !important;
  overflow-x: hidden !important;
}

body {
  margin-left: 0 !important;
  margin-right: 0 !important;
}

/* Only centre true page-level wrappers */
body > main,
body > .main,
body > .page,
body > .page-shell,
body > .container,
body > .wrapper,
body > .content,
body > .site-content,
main,
.main-content {
  width: min(1120px, calc(100% - 28px)) !important;
  max-width: 1120px !important;
  margin-left: auto !important;
  margin-right: auto !important;
  box-sizing: border-box !important;
}

/* Do NOT force inner cards/tools to width:1120; let original grids work */
section,
.card,
.tool-card,
.calculator-card,
.tools-grid,
.grid,
.cards,
.calculator-grid,
.tool-grid {
  max-width: none;
}

/* Keep RavenSharp injected sections centred */
.rs-donate-panel,
.rs-about-story,
.rs-cross-links {
  width: min(960px, calc(100% - 28px)) !important;
  margin-left: auto !important;
  margin-right: auto !important;
  box-sizing: border-box !important;
}

.rs-brand-inner {
  width: min(1120px, calc(100% - 20px)) !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

/* Fix any accidental horizontal push from cross-site links */
.rs-cross-links,
.rs-cross-links * {
  box-sizing: border-box !important;
}

@media (max-width: 760px) {
  body > main,
  body > .main,
  body > .page,
  body > .page-shell,
  body > .container,
  body > .wrapper,
  body > .content,
  body > .site-content,
  main,
  .main-content {
    width: calc(100% - 20px) !important;
    max-width: calc(100% - 20px) !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }

  .rs-donate-panel,
  .rs-about-story,
  .rs-cross-links {
    width: calc(100% - 20px) !important;
    max-width: calc(100% - 20px) !important;
  }
}



/* === FINAL TYPE MATCH FIX === */
/* Makes injected RavenSharp / Ascension sections match the native site typography. */

.rs-brand-strip,
.rs-brand-strip *,
.rs-donate-panel,
.rs-donate-panel *,
.rs-about-story,
.rs-about-story *,
.rs-footer-brand,
.rs-footer-brand *,
.rs-cross-links,
.rs-cross-links *,
.rs-clean-footer,
.rs-clean-footer * {
  font-family: var(--font-body, var(--font-sans, "Outfit", "Inter", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif)) !important;
  letter-spacing: normal !important;
  text-transform: none !important;
  line-height: 1.45 !important;
}

/* Normal body-style text */
.rs-about-story,
.rs-donate-panel,
.rs-footer-brand,
.rs-clean-footer {
  font-size: 0.95rem !important;
  font-weight: 400 !important;
  color: rgba(232, 238, 247, 0.82) !important;
}

.rs-about-story p,
.rs-about-story li,
.rs-donate-panel p,
.rs-footer-brand p,
.rs-clean-footer a,
.rs-clean-footer p {
  font-size: 0.92rem !important;
  font-weight: 400 !important;
  line-height: 1.55 !important;
  color: rgba(232, 238, 247, 0.78) !important;
}

/* Headings match site scale, not giant injected blocks */
.rs-about-story h1 {
  font-size: clamp(1.45rem, 5vw, 2rem) !important;
  font-weight: 750 !important;
  line-height: 1.15 !important;
  color: #f7fbff !important;
  margin: 0 0 14px !important;
}

.rs-about-story h2,
.rs-donate-panel h2,
.rs-clean-footer h2 {
  font-size: clamp(1.05rem, 3.6vw, 1.35rem) !important;
  font-weight: 700 !important;
  line-height: 1.2 !important;
  color: #f7fbff !important;
  margin: 18px 0 10px !important;
}

/* Brand header should be subtle, not massive */
.rs-brand-title strong {
  font-size: 0.82rem !important;
  font-weight: 700 !important;
  line-height: 1.15 !important;
  letter-spacing: 0.01em !important;
  text-transform: none !important;
  color: #f7fbff !important;
}

.rs-brand-title span {
  font-size: 0.68rem !important;
  font-weight: 400 !important;
  line-height: 1.2 !important;
  color: rgba(232, 238, 247, 0.62) !important;
}

/* Buttons use same font, controlled size */
.rs-donate-mini,
.rs-donate-button,
.rs-cross-links a {
  font-family: var(--font-body, var(--font-sans, "Outfit", "Inter", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif)) !important;
  font-size: 0.82rem !important;
  font-weight: 700 !important;
  letter-spacing: normal !important;
  text-transform: none !important;
  line-height: 1.2 !important;
}

/* Lists should not look like a different document pasted in */
.rs-about-story ul,
.rs-about-story ol {
  margin: 10px 0 14px 1.15rem !important;
  padding: 0 !important;
}

.rs-about-story li {
  margin: 5px 0 !important;
}

/* Remove overdone quote styling */
.rs-about-story blockquote {
  font-family: inherit !important;
  font-size: 0.95rem !important;
  font-weight: 650 !important;
  line-height: 1.45 !important;
  letter-spacing: normal !important;
  color: rgba(247, 251, 255, 0.9) !important;
}

/* Footer links should match native small link style */
.rs-clean-footer a,
.rs-footer-grid a {
  font-size: 0.8rem !important;
  font-weight: 500 !important;
  color: rgba(232, 238, 247, 0.78) !important;
}

/* Image logo captions/brand don't dominate bottom */
.rs-footer-brand strong {
  font-size: 0.82rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.01em !important;
  text-transform: none !important;
}

@media (max-width: 760px) {
  .rs-about-story,
  .rs-donate-panel,
  .rs-footer-brand,
  .rs-clean-footer {
    font-size: 0.9rem !important;
  }

  .rs-about-story p,
  .rs-about-story li,
  .rs-donate-panel p,
  .rs-footer-brand p {
    font-size: 0.86rem !important;
  }

  .rs-brand-title strong {
    font-size: 0.72rem !important;
  }

  .rs-brand-title span {
    font-size: 0.6rem !important;
  }

  .rs-donate-mini,
  .rs-donate-button,
  .rs-cross-links a {
    font-size: 0.76rem !important;
  }
}
