:root{
  --ink:#242420;
  --paper:#fbfaf6;
  --sage:#5c6b57;
  --sage-dark:#465142;
  --sage-pale:#e8ebe3;
  --sand:#d9d3c3;
  --muted:#8a8579;
  --maxw:920px;
}
*{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{background:var(--paper);color:var(--ink);font-family:'Inter',sans-serif;line-height:1.7;font-weight:400;font-size:16px;}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 40px;}
a{color:var(--sage);text-decoration:none;}
a:hover{color:var(--sage-dark);}
h1,h2,h3,blockquote{font-family:'Newsreader',serif;font-weight:400;}
img{max-width:100%;display:block;}

/* header / nav */
header.site{padding:30px 0;border-bottom:1px solid var(--sand);}
header.site .nav{display:flex;align-items:center;justify-content:space-between;position:relative;}
.wordmark{font-family:'Newsreader',serif;font-size:19px;letter-spacing:0.01em;color:var(--ink);}
nav.primary ul{list-style:none;display:flex;gap:32px;font-size:13px;color:var(--muted);align-items:center;}
nav.primary ul li a{color:var(--muted);}
nav.primary ul li a.current,nav.primary ul li a:hover{color:var(--ink);}
.has-sub{position:relative;}
.sub-menu{display:none;position:absolute;top:26px;left:0;background:var(--paper);border:1px solid var(--sand);border-radius:8px;padding:10px 0;min-width:190px;box-shadow:0 6px 18px rgba(0,0,0,0.06);z-index:10;}
.has-sub:hover .sub-menu{display:block;}
.sub-menu li{padding:0;}
.sub-menu li a{display:block;padding:8px 18px;font-size:13px;}
.menu-toggle{display:none;background:none;border:none;font-size:22px;color:var(--ink);cursor:pointer;}

/* hero */
.hero{padding:72px 0 88px;text-align:center;}
.hero .eyebrow{font-size:12px;letter-spacing:0.16em;text-transform:uppercase;color:var(--sage);margin-bottom:26px;}
.hero h1{font-size:44px;font-weight:400;line-height:1.25;max-width:680px;margin:0 auto;}
.hero p.lede{margin:24px auto 0;max-width:480px;font-size:17px;color:var(--muted);}
.cta-row{margin-top:34px;display:flex;gap:18px;justify-content:center;flex-wrap:wrap;}
.btn{display:inline-block;padding:14px 30px;font-size:14px;border-radius:100px;border:1px solid transparent;cursor:pointer;font-family:'Inter',sans-serif;}
.btn-primary{background:var(--sage);color:var(--paper);}
.btn-primary:hover{background:var(--sage-dark);color:var(--paper);}
.btn-ghost{border:1px solid var(--sand);color:var(--ink);background:transparent;}
.btn-ghost:hover{border-color:var(--sage);color:var(--sage);}

/* page header (non-home) */
.page-hero{padding:64px 0 56px;text-align:center;}
.page-hero .kicker{font-size:12px;letter-spacing:0.14em;text-transform:uppercase;color:var(--sage);margin-bottom:14px;}
.page-hero h1{font-size:38px;}
.page-hero p{margin-top:18px;max-width:560px;margin-left:auto;margin-right:auto;color:var(--muted);font-size:16px;}

/* quote section */
.quote-section{padding:80px 0;background:var(--sage-pale);text-align:center;}
.quote-section blockquote{font-size:27px;line-height:1.55;max-width:680px;margin:0 auto;font-style:italic;}
.quote-section cite{display:block;margin-top:22px;font-style:normal;font-family:'Inter',sans-serif;font-size:12px;letter-spacing:0.12em;text-transform:uppercase;color:var(--sage);}

/* generic section */
.section{padding:88px 0;}
.section.tight{padding:56px 0;}
.section-head{text-align:center;margin-bottom:56px;}
.section-head .kicker{font-size:12px;letter-spacing:0.14em;text-transform:uppercase;color:var(--sage);margin-bottom:14px;}
.section-head h2{font-size:30px;}
.section.bordered{border-top:1px solid var(--sand);}

/* books */
.books-grid{display:grid;grid-template-columns:1fr 1fr;gap:64px;}
.book-card{text-align:left;}
.book-cover{width:100%;border-radius:6px;margin-bottom:20px;overflow:hidden;background:var(--sand);}
.book-cover img{width:100%;height:100%;object-fit:cover;}
.book-card .kicker{font-size:12px;letter-spacing:0.08em;text-transform:uppercase;color:var(--sage);margin-bottom:8px;}
.book-card h3{font-size:22px;margin-bottom:10px;}
.book-card p{font-size:15px;color:var(--muted);margin-bottom:12px;}

/* newsletter */
.newsletter{text-align:center;padding:80px 0;border-top:1px solid var(--sand);border-bottom:1px solid var(--sand);background:var(--paper);}
.newsletter h2{font-size:28px;}
.newsletter p{margin:16px auto 32px;max-width:420px;color:var(--muted);font-size:15px;}
.signup{display:flex;justify-content:center;gap:12px;flex-wrap:wrap;}
.signup input{padding:14px 18px;border:1px solid var(--sand);border-radius:100px;font-size:14px;width:280px;background:var(--paper);font-family:'Inter',sans-serif;}
.signup button{padding:14px 26px;background:var(--ink);color:var(--paper);border:none;border-radius:100px;font-size:14px;cursor:pointer;}
.signup button:hover{background:var(--sage-dark);}
.form-note{font-size:12px;color:var(--muted);margin-top:14px;}

/* article teasers */
.triple{display:grid;grid-template-columns:repeat(3,1fr);gap:40px;text-align:left;}
.triple .item .cat{font-size:12px;letter-spacing:0.06em;text-transform:uppercase;color:var(--sage);margin-bottom:10px;}
.triple .item h3{font-size:18px;line-height:1.4;}
.triple .item img{border-radius:6px;margin-bottom:16px;aspect-ratio:16/9;object-fit:cover;background:var(--sand);}

/* article list page */
.article-list{display:flex;flex-direction:column;gap:0;}
.article-row{display:grid;grid-template-columns:200px 1fr;gap:32px;padding:32px 0;border-top:1px solid var(--sand);align-items:center;}
.article-row:last-child{border-bottom:1px solid var(--sand);}
.article-row img{border-radius:6px;aspect-ratio:16/9;object-fit:cover;background:var(--sand);}
.article-row .cat{font-size:12px;letter-spacing:0.06em;text-transform:uppercase;color:var(--sage);margin-bottom:8px;}
.article-row h3{font-size:21px;margin-bottom:8px;}
.article-row p{font-size:14px;color:var(--muted);}

/* services */
.services-grid{display:grid;grid-template-columns:1fr 1fr;gap:48px;text-align:left;}
.service h3{font-size:21px;margin-bottom:12px;}
.service p{font-size:15px;color:var(--muted);}
.service a{display:inline-block;margin-top:14px;font-size:13px;border-bottom:1px solid var(--sage);}

/* single service page */
.service-detail{padding:0 0 88px;}
.service-detail .lede{font-size:19px;color:var(--ink);max-width:640px;margin:0 auto 40px;text-align:center;}
.service-detail ol,.service-detail ul{max-width:640px;margin:24px auto;padding-left:22px;color:var(--muted);}
.service-detail ol li,.service-detail ul li{margin-bottom:10px;}
.service-detail h2{font-size:24px;max-width:640px;margin:44px auto 16px;text-align:left;}
.service-detail .body-copy{max-width:640px;margin:0 auto;}
.service-detail .body-copy p{margin-bottom:16px;color:var(--ink);}

/* templates */
.template-grid{display:grid;grid-template-columns:1fr 1fr;gap:48px;}
.template-card{border:1px solid var(--sand);border-radius:10px;padding:28px;}
.template-card .kicker{font-size:12px;letter-spacing:0.08em;text-transform:uppercase;color:var(--sage);margin-bottom:8px;}
.template-card h3{font-size:20px;margin-bottom:10px;}
.template-card p{font-size:14px;color:var(--muted);margin-bottom:18px;}
.template-card img{border-radius:6px;margin-bottom:18px;background:var(--sand);}
.template-links{display:flex;gap:14px;flex-wrap:wrap;}
.template-links a{font-size:13px;border-bottom:1px solid var(--sage);}

/* podcast */
.podcast-hero{display:grid;grid-template-columns:220px 1fr;gap:48px;align-items:center;}
.podcast-hero img{border-radius:10px;}
.platform-list{display:flex;flex-wrap:wrap;gap:14px;margin-top:24px;}
.platform-list a{border:1px solid var(--sand);border-radius:100px;padding:10px 20px;font-size:13px;color:var(--ink);}
.platform-list a:hover{border-color:var(--sage);color:var(--sage);}
.host-bio{max-width:640px;margin:0 auto;text-align:center;color:var(--muted);font-size:15px;}
.host-bio h3{color:var(--ink);font-size:20px;margin-bottom:12px;}

/* contact */
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:56px;}
.contact-info h3{font-size:20px;margin-bottom:14px;}
.contact-info p{color:var(--muted);margin-bottom:8px;}
.contact-form label{display:block;font-size:13px;color:var(--muted);margin-bottom:6px;margin-top:16px;}
.contact-form input,.contact-form textarea{width:100%;padding:12px 16px;border:1px solid var(--sand);border-radius:8px;font-family:'Inter',sans-serif;font-size:14px;background:var(--paper);}
.contact-form textarea{min-height:120px;resize:vertical;}
.contact-form button{margin-top:20px;}

/* article single page */
.article-header{text-align:center;padding:56px 0 40px;}
.article-header .byline{font-size:13px;color:var(--muted);letter-spacing:0.04em;text-transform:uppercase;margin-bottom:18px;}
.article-header h1{font-size:36px;max-width:680px;margin:0 auto 20px;}
.article-header .dek{font-size:18px;color:var(--muted);max-width:560px;margin:0 auto;font-style:italic;font-family:'Newsreader',serif;}
.article-feature-img{max-width:var(--maxw);margin:0 auto 48px;padding:0 40px;}
.article-feature-img img{border-radius:10px;width:100%;object-fit:cover;max-height:420px;}
.article-body{max-width:640px;margin:0 auto;padding:0 40px 80px;}
.article-body p{margin-bottom:20px;font-size:16px;}
.article-body ul{margin:0 0 24px 22px;}
.article-body ul li{margin-bottom:8px;}
.article-body img{border-radius:8px;margin:32px 0;}
.article-body .tldr{background:var(--sage-pale);border-radius:10px;padding:24px 28px;margin-bottom:28px;}
.article-body .tldr p{font-weight:500;margin-bottom:10px;}
.article-nav{max-width:640px;margin:0 auto;padding:0 40px 80px;display:flex;justify-content:space-between;font-size:13px;border-top:1px solid var(--sand);padding-top:28px;}

/* footer */
footer.site{padding:48px 0;text-align:center;font-size:13px;color:var(--muted);border-top:1px solid var(--sand);margin-top:0;}
footer.site .wordmark{font-size:15px;color:var(--ink);margin-bottom:10px;}
footer.site .foot-links{margin-top:14px;display:flex;gap:20px;justify-content:center;flex-wrap:wrap;}

/* responsive */
@media (max-width:760px){
  .wrap{padding:0 24px;}
  nav.primary{position:absolute;top:60px;left:0;right:0;background:var(--paper);border:1px solid var(--sand);border-radius:8px;display:none;padding:8px 0;}
  nav.primary.open{display:block;}
  nav.primary ul{flex-direction:column;gap:0;align-items:stretch;}
  nav.primary ul li a{display:block;padding:12px 20px;}
  .sub-menu{position:static;border:none;box-shadow:none;padding-left:20px;display:block;}
  .has-sub:hover .sub-menu{display:block;}
  .menu-toggle{display:block;}
  .hero h1{font-size:32px;}
  .books-grid,.services-grid,.triple,.template-grid,.contact-grid{grid-template-columns:1fr;}
  .podcast-hero{grid-template-columns:1fr;text-align:center;}
  .article-row{grid-template-columns:1fr;}
}
