:root {
  --yellow: #f4c430;
  --red: #b53a2e;
  --black: #111111;
  --white: #f7f3e8;
  --paper: #efe8d8;
  --ink: #151515;
  --muted: #666055;
  --max: 1180px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: "DM Sans", Arial, sans-serif;
  color: var(--ink);
  background: var(--white);
  line-height: 1.55;
}
a { color: inherit; }
.top-band { height: 8px; display: grid; grid-template-columns: repeat(4, 1fr); }
.top-band span { display: block; }
.yellow { background: var(--yellow); }.red { background: var(--red); }.black { background: var(--black); }.white { background: #fff; }

.site-header {
  width: min(var(--max), calc(100% - 40px));
  margin: auto;
  min-height: 88px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
}
.brand { display: flex; gap: 12px; align-items: center; text-decoration: none; }
.brand-mark {
  width: 42px; height: 42px; border-radius: 50%; background: var(--black); color: white;
  display: grid; place-items: center; font-size: 13px; font-weight: 800; letter-spacing: .08em;
  border: 4px solid var(--yellow); box-shadow: 0 0 0 2px var(--red);
}
.brand-text { display: flex; flex-direction: column; line-height: 1.08; }
.brand-text strong { font-family: "Fraunces", Georgia, serif; font-size: 21px; }
.brand-text small { font-size: 10px; text-transform: uppercase; letter-spacing: .16em; margin-top: 5px; }
nav { display: flex; gap: 28px; }
nav a { text-decoration: none; font-size: 14px; font-weight: 600; }
nav a:hover { text-decoration: underline; text-underline-offset: 5px; }

.button {
  display: inline-flex; align-items: center; justify-content: center; padding: 14px 20px;
  background: var(--black); color: white; border: 1px solid var(--black); border-radius: 999px;
  text-decoration: none; font-weight: 700; font-size: 14px; cursor: pointer;
}
.button:hover { transform: translateY(-1px); }
.button-small { padding: 10px 16px; font-size: 12px; }
.text-link { font-weight: 700; text-decoration: none; font-size: 14px; }
.text-link span { margin-left: 6px; }
.eyebrow { margin: 0 0 14px; font-size: 11px; font-weight: 800; letter-spacing: .18em; text-transform: uppercase; }
.eyebrow.light { color: #fff; }

.hero {
  width: min(var(--max), calc(100% - 40px)); margin: 22px auto 80px;
  min-height: 610px; display: grid; grid-template-columns: 1.03fr .97fr; overflow: hidden;
  border-radius: 28px; background: var(--paper);
}
.hero-copy { padding: clamp(45px, 7vw, 86px); align-self: center; }
h1, h2, h3, blockquote { font-family: "Fraunces", Georgia, serif; }
h1 { font-size: clamp(54px, 7vw, 92px); line-height: .94; margin: 0 0 28px; letter-spacing: -.04em; }
h1 span { color: var(--red); }
.hero-lead { font-size: 20px; max-width: 620px; margin: 0 0 18px; }
.hero-text { max-width: 620px; color: var(--muted); }
.hero-actions { display: flex; align-items: center; gap: 22px; margin-top: 30px; flex-wrap: wrap; }

.hero-art { position: relative; min-height: 610px; background: var(--yellow); overflow: hidden; }
.sun { position: absolute; width: 110px; height: 110px; border-radius: 50%; background: var(--red); right: 13%; top: 12%; }
.cloud { position: absolute; height: 24px; background: var(--white); border-radius: 999px; opacity: .9; }
.cloud::before,.cloud::after { content:""; position:absolute; background:inherit; border-radius:50%; }
.cloud::before { width: 38px; height: 38px; left: 20px; bottom: 0; }
.cloud::after { width: 52px; height: 52px; left: 47px; bottom: 0; }
.cloud-one { width: 125px; top: 23%; left: 10%; }.cloud-two { width: 90px; top: 34%; right: 8%; transform: scale(.8); }
.hill { position:absolute; left:-15%; width:130%; border-radius:50% 50% 0 0 / 100% 100% 0 0; }
.hill-back { height: 310px; bottom: 80px; background:#dad2bf; transform: rotate(-4deg); }
.hill-front { height: 265px; bottom: -25px; background:var(--black); transform: rotate(4deg); }
.river { position:absolute; width:47%; height:310px; bottom:-40px; left:29%; background:var(--white); border-radius:55% 45% 0 0; transform:rotate(9deg); clip-path: polygon(40% 0, 63% 0, 100% 100%, 0 100%); }
.spruce { position:absolute; width:0; height:0; border-left:42px solid transparent; border-right:42px solid transparent; border-bottom:120px solid var(--red); bottom:150px; z-index:4; }
.spruce::after { content:""; position:absolute; left:-30px; top:56px; border-left:30px solid transparent; border-right:30px solid transparent; border-bottom:88px solid var(--red); }
.spruce-one{left:12%;}.spruce-two{left:27%;transform:scale(.7);bottom:120px}.spruce-three{right:10%;transform:scale(.86);bottom:125px}
.hero-note { position:absolute; right:24px; bottom:22px; z-index:7; background:rgba(255,255,255,.9); padding:10px 14px; border-radius:999px; font-size:11px; font-weight:700; }

.story-strip { background: var(--black); color: white; padding: 58px max(24px, calc((100vw - var(--max))/2)); display:grid; grid-template-columns: 80px 1fr 1.1fr; gap:40px; align-items:start; }
.story-strip-number { font-size: 12px; font-weight: 800; padding-top: 7px; color: var(--yellow); }
.story-strip h2 { font-size: clamp(34px,4vw,52px); line-height:1.02; margin:0; max-width:520px; }
.story-strip > p { margin:0; color:#d9d5cc; font-size:17px; }

.section { width: min(var(--max), calc(100% - 40px)); margin: 0 auto; padding: 110px 0; }
.section-heading { max-width:760px; margin-bottom:48px; }
.section-heading h2,.nature-copy h2,.book-copy h2,.future h2,.signup h2 { font-size: clamp(42px,5vw,66px); line-height:1; letter-spacing:-.025em; margin:0 0 22px; }
.section-heading > p:last-child { font-size:18px; color:var(--muted); }
.four-grid { display:grid; grid-template-columns:repeat(4,1fr); border:1px solid #cfc8b9; }
.culture-card { padding:34px; min-height:330px; display:flex; flex-direction:column; }
.culture-card + .culture-card { border-left:1px solid rgba(17,17,17,.3); }
.culture-card h3 { font-size:34px; margin:auto 0 10px; }
.culture-card p { margin:0; font-size:14px; }
.card-number { font-size:11px; font-weight:800; }
.yellow-card { background:var(--yellow); }.red-card{background:var(--red);color:white}.black-card{background:var(--black);color:white}.white-card{background:#fff}
.culture-note { margin-top:28px; padding:22px 24px; border-left:4px solid var(--red); background:#fff; display:grid; grid-template-columns:220px 1fr; gap:25px; }
.culture-note p { margin:0; color:var(--muted); font-size:14px; }

.nature { display:grid; grid-template-columns:1fr 1fr; gap:90px; align-items:center; }
.nature-copy p { color:var(--muted); font-size:17px; }
.nature-list { border-top:1px solid #cfc8b9; }
.nature-list > div { display:grid; grid-template-columns:22px 1fr; gap:15px; padding:22px 0; border-bottom:1px solid #cfc8b9; }
.nature-list span { color:var(--red); }.nature-list p{margin:0}

.quote-section { background:var(--red); color:white; text-align:center; padding:100px 24px; }
.quote-section blockquote { max-width:900px; margin:0 auto 20px; font-size:clamp(42px,6vw,78px); line-height:1.02; }
.quote-note { font-size:12px; opacity:.8; }

.book { display:grid; grid-template-columns:.8fr 1.2fr; gap:100px; align-items:center; }
.book-cover { width:min(100%,400px); aspect-ratio:.76; background:var(--paper); border:1px solid #bdb4a2; padding:34px; box-shadow: 18px 22px 0 #d8cfbe; position:relative; display:flex; flex-direction:column; overflow:hidden; }
.mini-band { height:6px; display:grid; grid-template-columns:repeat(4,1fr); margin:-34px -34px 32px; }.mini-band i:nth-child(1){background:var(--yellow)}.mini-band i:nth-child(2){background:var(--red)}.mini-band i:nth-child(3){background:var(--black)}.mini-band i:nth-child(4){background:white}
.book-cover small{font-weight:800;letter-spacing:.15em;font-size:9px}.book-cover h3{font-size:60px;line-height:.85;margin:32px 0 10px}.book-cover p{margin:0}.book-cover strong{margin-top:auto;font-size:12px;letter-spacing:.14em}
.cover-landscape { position:absolute; width:230px; height:230px; border-radius:50%; background:var(--yellow); right:-42px; bottom:62px; overflow:hidden; }
.cover-landscape::before { content:""; position:absolute; width:120%; height:55%; background:var(--black); bottom:-18px; left:-10%; border-radius:50% 50% 0 0; transform:rotate(-8deg); }
.cover-landscape span { position:absolute;width:55px;height:55px;border-radius:50%;background:var(--red);right:36px;top:34px; }
.book-copy > p:not(.eyebrow){font-size:18px;color:var(--muted);max-width:650px}
.book-points { margin:32px 0; display:grid; gap:0; border-top:1px solid #cfc8b9; }
.book-points div { display:grid; grid-template-columns:50px 1fr; padding:15px 0; border-bottom:1px solid #cfc8b9; }.book-points b{color:var(--red);font-size:12px}

.future { background:var(--yellow); width:100%; max-width:none; padding:100px max(24px,calc((100vw - var(--max))/2)); display:grid; grid-template-columns:.8fr 1.2fr; gap:90px; }
.future-copy > p { max-width:680px; }
.subscription-placeholder { margin-top:30px; background:var(--black); color:white; border-radius:20px; padding:28px; display:flex; justify-content:space-between; gap:25px; align-items:center; }
.subscription-placeholder small { display:block; color:var(--yellow); font-weight:800; letter-spacing:.12em; margin-bottom:7px; }.subscription-placeholder strong{font-family:"Fraunces";font-size:25px}.subscription-placeholder p{margin:5px 0 0;color:#d7d2c9;font-size:13px}
.subscription-placeholder button { border:1px solid #6c6c6c; background:#292929; color:#aaa; padding:12px 16px; border-radius:999px; white-space:nowrap; }
.fine-print{font-size:12px;color:#5c501a}

.signup { background:var(--black); color:white; padding:90px max(24px,calc((100vw - var(--max))/2)); display:grid; grid-template-columns:1fr 1fr; gap:80px; align-items:end; }
.signup h2 { color:white; }.signup > div > p:last-child { color:#c9c4ba; }
.signup-form { display:flex; gap:10px; flex-wrap:wrap; }
.signup-form input { flex:1; min-width:220px; padding:14px 18px; border-radius:999px; border:1px solid #777; background:white; font:inherit; }
.button-light { background:white;color:var(--black);border-color:white; }
#formMessage { width:100%; margin:6px 0 0; font-size:12px; color:var(--yellow); }

footer { width:min(var(--max),calc(100% - 40px)); margin:auto; padding:42px 0 55px; display:grid; grid-template-columns:1fr auto; gap:20px; font-size:12px; color:var(--muted); }
.footer-brand{display:flex;gap:12px;align-items:center}.footer-brand div{display:flex;flex-direction:column}.footer-brand strong{font-family:"Fraunces";font-size:18px;color:var(--ink)}.footer-brand small{text-transform:uppercase;letter-spacing:.12em;font-size:8px}.footer-note{grid-column:1/-1;border-top:1px solid #d6d0c2;padding-top:18px;max-width:820px}
.sr-only { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0); }

@media (max-width: 900px) {
  nav { display:none; }
  .hero { grid-template-columns:1fr; }
  .hero-art { min-height:430px; }
  .story-strip { grid-template-columns:40px 1fr; }.story-strip > p{grid-column:2}
  .four-grid { grid-template-columns:1fr 1fr; }.culture-card:nth-child(3){border-left:0;border-top:1px solid rgba(17,17,17,.3)}.culture-card:nth-child(4){border-top:1px solid rgba(17,17,17,.3)}
  .nature,.book,.future,.signup { grid-template-columns:1fr; gap:55px; }
  .book-cover { margin:auto; }
}
@media (max-width: 600px) {
  .site-header { min-height:74px; width:calc(100% - 26px); }.site-header>.button{display:none}
  .hero { width:calc(100% - 24px); margin-top:12px; border-radius:20px; }.hero-copy{padding:42px 26px}.hero-art{min-height:350px}.hero-note{left:18px;right:auto;bottom:16px}
  h1{font-size:54px}.hero-lead{font-size:18px}
  .story-strip{padding:48px 22px;grid-template-columns:1fr;gap:18px}.story-strip-number,.story-strip>p{grid-column:1}.story-strip h2{font-size:38px}
  .section{width:calc(100% - 36px);padding:75px 0}.section-heading h2,.nature-copy h2,.book-copy h2,.future h2,.signup h2{font-size:43px}
  .four-grid{grid-template-columns:1fr}.culture-card{min-height:250px}.culture-card + .culture-card{border-left:0;border-top:1px solid rgba(17,17,17,.3)}
  .culture-note{grid-template-columns:1fr}
  .quote-section{padding:75px 20px}.quote-section blockquote{font-size:42px}
  .book{gap:60px}.book-cover{width:88%;box-shadow:12px 15px 0 #d8cfbe}.book-cover h3{font-size:50px}
  .future,.signup{padding:75px 22px}.subscription-placeholder{align-items:flex-start;flex-direction:column}.subscription-placeholder button{white-space:normal}
  footer{grid-template-columns:1fr;padding-bottom:40px}.footer-note{grid-column:1}
}


/* Dakota House author section */
.dakota-house{background:#f6f1e7;border-top:1px solid rgba(0,0,0,.1)}
.dakota-gallery{display:grid;grid-template-columns:1fr 1fr 1fr;gap:18px;margin:42px 0 12px}
.dakota-gallery figure{margin:0;background:#fff;border:1px solid #111;overflow:hidden}
.dakota-gallery img,.career-placeholder{width:100%;height:330px;object-fit:cover;display:block}
.dakota-gallery figcaption{padding:16px 18px;display:flex;flex-direction:column;gap:5px}
.dakota-gallery figcaption span{font-size:.9rem;opacity:.72}
.career-placeholder{background:#111;color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;border-bottom:12px solid #d7ad25}
.career-placeholder b{font-family:'Fraunces',serif;font-size:3rem}.career-placeholder span{letter-spacing:.18em;font-size:.8rem}
.photo-note{font-size:.78rem;opacity:.62;margin-bottom:42px}
.dakota-bio-grid{display:grid;grid-template-columns:1.35fr .9fr;gap:48px;align-items:start}
.dakota-story h3,.going-miles-box h3{font-family:'Fraunces',serif;font-size:2rem;margin:0 0 18px}.dakota-story p,.going-miles-box p{line-height:1.75}
.credit-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:25px}.credit-chips span{border:1px solid #111;border-radius:30px;padding:8px 13px;font-size:.8rem;font-weight:700}
.going-miles-box{background:#b3272d;color:#fff;padding:34px}.going-miles-box small{font-weight:800;letter-spacing:.12em}.going-miles-box .text-link{color:#fff;border-bottom-color:#fff}
.dakota-legacy{display:grid;grid-template-columns:repeat(4,1fr);margin-top:48px;border-top:1px solid #111;border-bottom:1px solid #111}.dakota-legacy div{padding:24px;border-right:1px solid #111}.dakota-legacy div:last-child{border-right:0}.dakota-legacy strong,.dakota-legacy span{display:block}.dakota-legacy strong{font-family:'Fraunces',serif;font-size:1.4rem;margin-bottom:6px}.dakota-legacy span{font-size:.85rem;line-height:1.4}
footer a{color:inherit}
@media(max-width:800px){.dakota-gallery{grid-template-columns:1fr}.dakota-bio-grid{grid-template-columns:1fr}.dakota-legacy{grid-template-columns:1fr 1fr}.dakota-legacy div:nth-child(2){border-right:0}.dakota-gallery img,.career-placeholder{height:300px}}
@media(max-width:480px){.dakota-legacy{grid-template-columns:1fr}.dakota-legacy div{border-right:0;border-bottom:1px solid #111}.dakota-legacy div:last-child{border-bottom:0}}
