:root{
  --ink:#1c1a17;
  --paper:#faf7f2;
  --paper-2:#f0ebe2;
  --line:#ddd4c5;
  --accent:#c4432b;
  --accent-2:#2f6f5e;
  --font-display:'Outfit',sans-serif;
  --font-body:'Inter',sans-serif;
  --radius:10px;
  --shadow:0 4px 20px rgba(28,26,23,0.08);
}
[data-theme="dark"]{
  --ink:#f3efe6;
  --paper:#161412;
  --paper-2:#211e1a;
  --line:#3a352c;
  --accent:#e8623f;
  --accent-2:#4fa88f;
  --shadow:0 4px 24px rgba(0,0,0,0.4);
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:var(--font-body);
  transition:background .3s ease,color .3s ease;
  overflow-x:hidden;
  width:100%;
}
img{max-width:100%;display:block;}
a{color:inherit;}
.container{max-width:1180px;margin:0 auto;padding:0 20px;width:100%;}
h1,h2,h3,h4{font-family:var(--font-display);margin:0 0 .5em;line-height:1.15;}
p{line-height:1.7;}
.eyebrow{
  font-family:var(--font-display);
  text-transform:uppercase;
  letter-spacing:.14em;
  font-size:.72rem;
  color:var(--accent);
  font-weight:600;
}

/* Skip link */
.skip-link{position:absolute;left:-999px;top:0;background:var(--accent);color:#fff;padding:10px 16px;z-index:999;border-radius:0 0 8px 0;}
.skip-link:focus{left:0;}

/* Header */
header.site-header{
  position:sticky;top:0;z-index:200;
  background:var(--paper);
  border-bottom:1px solid var(--line);
}
.nav-wrap{
  display:flex;align-items:center;justify-content:space-between;
  padding:14px 20px;max-width:1180px;margin:0 auto;gap:16px;
}
.brand{font-family:var(--font-display);font-weight:800;font-size:1.25rem;text-decoration:none;letter-spacing:-.02em;}
.brand span{color:var(--accent);}
nav.primary-nav{display:flex;align-items:center;gap:6px;}
nav.primary-nav > ul{display:flex;list-style:none;margin:0;padding:0;gap:4px;align-items:center;}
nav.primary-nav > ul > li{position:relative;}
nav.primary-nav > ul > li > a, .nav-btn{
  display:inline-block;padding:9px 12px;text-decoration:none;font-size:.92rem;font-weight:500;border-radius:8px;background:none;border:none;cursor:pointer;color:var(--ink);font-family:var(--font-body);
}
nav.primary-nav > ul > li > a:hover, .nav-btn:hover{background:var(--paper-2);}
.mega{
  position:absolute;top:100%;left:0;
  background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);
  box-shadow:var(--shadow);
  padding:14px;display:none;
  min-width:560px;
  grid-template-columns:1fr 1fr;gap:4px 18px;
  z-index:50;
}
li.has-mega:hover .mega, li.has-mega:focus-within .mega{display:grid;}
.mega a{display:block;padding:7px 8px;border-radius:6px;font-size:.87rem;text-decoration:none;color:var(--ink);}
.mega a:hover{background:var(--paper-2);color:var(--accent);}
.header-actions{display:flex;align-items:center;gap:8px;}
.theme-toggle{
  background:var(--paper-2);border:1px solid var(--line);border-radius:20px;
  width:52px;height:30px;cursor:pointer;position:relative;flex-shrink:0;
}
.theme-toggle .dot{
  position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;
  background:var(--accent);transition:left .25s ease;
}
[data-theme="dark"] .theme-toggle .dot{left:27px;}
.menu-toggle{display:none;background:none;border:1px solid var(--line);border-radius:8px;padding:8px 10px;cursor:pointer;}

/* Breadcrumb */
.breadcrumb{padding:14px 0;font-size:.82rem;color:#8a8378;}
[data-theme="dark"] .breadcrumb{color:#a19a8c;}
.breadcrumb a{text-decoration:none;color:var(--accent-2);}
.breadcrumb span{margin:0 6px;}

/* Hero */
.hero{padding:40px 0 60px;}
.hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:48px;align-items:center;}
.hero h1{font-size:clamp(2rem,4vw,3.1rem);letter-spacing:-.02em;}
.hero p.lead{font-size:1.1rem;max-width:52ch;color:#5b5347;}
[data-theme="dark"] .hero p.lead{color:#c7c0b3;}
.hero-badges{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px;}
.badge{
  font-size:.78rem;font-weight:600;padding:6px 12px;border-radius:20px;
  background:var(--paper-2);border:1px solid var(--line);
}
.hero-visual{
  background:var(--paper-2);border:1px solid var(--line);border-radius:16px;padding:22px;
  font-family:'Courier New',monospace;font-size:.9rem;box-shadow:var(--shadow);
}
.hero-visual .line{opacity:0;animation:fadeUp .5s ease forwards;}
.hero-visual .line:nth-child(1){animation-delay:.1s;}
.hero-visual .line:nth-child(2){animation-delay:.25s;}
.hero-visual .line:nth-child(3){animation-delay:.4s;}
.hero-visual .line:nth-child(4){animation-delay:.55s;}
@keyframes fadeUp{from{opacity:0;transform:translateY(6px);}to{opacity:1;transform:translateY(0);}}
@media (prefers-reduced-motion: reduce){.hero-visual .line{animation:none;opacity:1;}}

/* Tool section */
.tool-section{padding:20px 0 60px;}
.tool-card{
  background:var(--paper-2);border:1px solid var(--line);border-radius:16px;
  padding:28px;box-shadow:var(--shadow);
}
.tool-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;}
.field-label{font-weight:600;font-size:.9rem;margin-bottom:8px;display:flex;justify-content:space-between;}
.char-count{font-weight:400;color:#8a8378;font-size:.8rem;}
textarea{
  width:100%;min-height:220px;resize:vertical;padding:14px;border-radius:10px;
  border:1px solid var(--line);background:var(--paper);color:var(--ink);font-family:var(--font-body);
  font-size:.96rem;line-height:1.6;
}
textarea:focus, button:focus-visible, select:focus-visible, a:focus-visible{outline:3px solid var(--accent-2);outline-offset:2px;}
.error-msg{color:var(--accent);font-size:.82rem;margin-top:6px;min-height:1.2em;}
.tool-controls{display:flex;gap:12px;flex-wrap:wrap;margin-top:18px;align-items:center;}
select{padding:10px 12px;border-radius:8px;border:1px solid var(--line);background:var(--paper);color:var(--ink);font-family:var(--font-body);}
.btn{
  font-family:var(--font-display);font-weight:600;padding:12px 22px;border-radius:9px;
  border:none;cursor:pointer;font-size:.95rem;transition:transform .15s ease, opacity .15s ease;
}
.btn-primary{background:var(--accent);color:#fff;}
.btn-primary:hover{transform:translateY(-1px);}
.btn-primary:disabled{opacity:.55;cursor:not-allowed;transform:none;}
.btn-ghost{background:transparent;border:1px solid var(--line);color:var(--ink);}
.btn-ghost:hover{background:var(--paper);}
.btn-small{padding:8px 14px;font-size:.85rem;}
.result-section{margin-top:26px;padding-top:22px;border-top:1px dashed var(--line);display:none;}
.result-section.show{display:block;}
.result-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px;}
.toast{
  position:fixed;bottom:24px;left:50%;transform:translateX(-50%) translateY(20px);
  background:var(--ink);color:var(--paper);padding:12px 20px;border-radius:8px;font-size:.88rem;
  opacity:0;transition:all .25s ease;pointer-events:none;z-index:500;
}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0);}

/* Resource strip */
.resource-strip{padding:40px 0;background:var(--paper-2);border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
.resource-strip h2{font-size:1.1rem;}
.resource-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:8px;list-style:none;padding:0;margin:16px 0 0;}
.resource-list a{font-size:.85rem;text-decoration:none;color:var(--accent-2);border-bottom:1px solid transparent;}
.resource-list a:hover{border-bottom-color:var(--accent-2);}

/* Features */
.section{padding:64px 0;}
.section-head{max-width:640px;margin:0 auto 36px;text-align:center;}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;}
.feat-card{
  background:var(--paper-2);border:1px solid var(--line);border-radius:14px;padding:24px;
}
.feat-card .icon{
  width:38px;height:38px;border-radius:9px;background:var(--accent);color:#fff;
  display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-weight:700;margin-bottom:14px;
}
.feat-card h3{font-size:1.05rem;}
.feat-card p{font-size:.9rem;color:#5b5347;}
[data-theme="dark"] .feat-card p{color:#c7c0b3;}

/* How it works */
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;counter-reset:step;}
.step{position:relative;padding-left:0;}
.step .num{
  font-family:var(--font-display);font-size:2.2rem;font-weight:800;color:var(--line);display:block;margin-bottom:6px;
}
.step h3{font-size:1.02rem;}
.step p{font-size:.9rem;color:#5b5347;}
[data-theme="dark"] .step p{color:#c7c0b3;}

/* Article */
.article{max-width:760px;margin:0 auto;}
.article p{color:#4a4438;}
[data-theme="dark"] .article p{color:#d3ccbe;}

/* FAQ */
.faq-item{border-bottom:1px solid var(--line);}
.faq-q{
  width:100%;text-align:left;background:none;border:none;padding:18px 4px;font-family:var(--font-display);
  font-size:1rem;font-weight:600;cursor:pointer;display:flex;justify-content:space-between;align-items:center;color:var(--ink);
}
.faq-a{max-height:0;overflow:hidden;transition:max-height .3s ease;font-size:.92rem;color:#5b5347;}
[data-theme="dark"] .faq-a{color:#c7c0b3;}
.faq-a-inner{padding:0 4px 18px;}
.faq-item.open .faq-a{max-height:220px;}
.faq-q .plus{transition:transform .25s ease;font-size:1.3rem;color:var(--accent);}
.faq-item.open .plus{transform:rotate(45deg);}

/* CTA */
.cta{
  background:var(--ink);color:var(--paper);border-radius:20px;padding:48px 32px;text-align:center;
}
.cta h2{color:var(--paper);}
.cta p{color:#cfc7b8;max-width:52ch;margin:0 auto 24px;}
.cta-actions{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;}
.btn-light{background:var(--paper);color:var(--ink);}
.btn-outline-light{background:transparent;border:1px solid #766f60;color:var(--paper);}

/* Feedback / share */
.util-row{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;padding:20px 0 0;}

/* Footer */
footer{background:var(--paper-2);border-top:1px solid var(--line);padding:50px 0 20px;margin-top:20px;}
.footer-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;}
.footer-grid h4{font-size:.85rem;text-transform:uppercase;letter-spacing:.08em;color:var(--accent);}
.footer-grid ul{list-style:none;padding:0;margin:0;}
.footer-grid li{margin-bottom:8px;}
.footer-grid a{font-size:.83rem;text-decoration:none;color:var(--ink);opacity:.85;}
.footer-grid a:hover{opacity:1;color:var(--accent-2);}
.footer-bottom{
  margin-top:36px;padding-top:20px;border-top:1px solid var(--line);
  display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;font-size:.8rem;opacity:.75;
}
.disclaimer{font-size:.76rem;opacity:.65;max-width:900px;margin-top:14px;line-height:1.6;}

/* Cookie banner */
#cookie-banner{
  position:fixed;bottom:0;left:0;right:0;background:var(--ink);color:var(--paper);
  padding:16px 20px;display:none;z-index:999;box-shadow:0 -6px 20px rgba(0,0,0,0.2);
}
#cookie-banner.show{display:flex;}
.cookie-inner{max-width:1180px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;}
.cookie-inner p{margin:0;font-size:.85rem;max-width:70ch;}
.cookie-inner a{color:#f2b8a3;text-decoration:underline;}
.cookie-btns{display:flex;gap:10px;flex-shrink:0;}

@media(max-width:960px){
  .hero-grid{grid-template-columns:1fr;}
  .tool-grid{grid-template-columns:1fr;}
  .grid-3{grid-template-columns:1fr;}
  .steps{grid-template-columns:1fr;}
  .footer-grid{grid-template-columns:repeat(2,1fr);}
  .mega{position:static;min-width:100%;box-shadow:none;border:none;grid-template-columns:1fr;display:none;}
  li.has-mega:hover .mega{display:none;}
  li.has-mega.open .mega{display:grid;}
}
@media(max-width:760px){
  nav.primary-nav{
    position:fixed;top:64px;left:0;right:0;bottom:0;background:var(--paper);
    padding:16px 20px;overflow-y:auto;transform:translateX(100%);transition:transform .25s ease;
  }
  nav.primary-nav.open{transform:translateX(0);}
  nav.primary-nav > ul{flex-direction:column;align-items:stretch;width:100%;}
  .menu-toggle{display:inline-flex;}
  .footer-grid{grid-template-columns:1fr;}
}