/* ————————————————————————————————————————
   WINDWARD HOUSE PRESS — design system
   Palette: Demerara Deep / Shell / Brass / Reef / Ink
   Type: Fraunces (display) · Source Serif 4 (body) · Archivo (utility)
———————————————————————————————————————— */
:root{
  --deep:#0d3533;        /* demerara deep teal */
  --deep-2:#0a2a29;
  --shell:#f6f4ec;       /* shell white */
  --paper:#fffdf7;
  --brass:#b9892f;       /* instrument brass */
  --brass-soft:#d9b567;
  --reef:#c8502e;        /* reef coral — used sparingly */
  --ink:#152322;
  --mist:#5d7371;        /* muted sea text on light */
  --hairline:rgba(13,53,51,.16);
  --hairline-light:rgba(246,244,236,.22);
  --max:1120px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{
  font-family:"Source Serif 4",Georgia,serif;
  color:var(--ink);background:var(--shell);
  line-height:1.65;font-size:1.05rem;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%}
a{color:inherit}
.wrap{max-width:var(--max);margin:0 auto;padding:0 24px}

/* type roles */
.display{font-family:"Fraunces",Georgia,serif;font-weight:560;letter-spacing:-.015em;line-height:1.06}
.eyebrow{
  font-family:"Archivo",system-ui,sans-serif;font-size:.72rem;font-weight:600;
  letter-spacing:.22em;text-transform:uppercase;color:var(--brass);
}
.on-dark .eyebrow{color:var(--brass-soft)}
h1.display{font-size:clamp(2.6rem,6vw,4.4rem)}
h2.display{font-size:clamp(1.9rem,3.6vw,2.7rem)}
h3{font-family:"Fraunces",Georgia,serif;font-weight:600;font-size:1.22rem;line-height:1.3}
.lede{font-size:clamp(1.08rem,1.8vw,1.3rem);color:var(--mist);max-width:44ch}
.on-dark .lede{color:rgba(246,244,236,.78)}

/* nav */
.nav{
  position:sticky;top:0;z-index:50;background:var(--deep);
  border-bottom:1px solid var(--hairline-light);
}
.nav .wrap{display:flex;align-items:center;justify-content:space-between;height:64px}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--shell)}
.brand .mark{width:30px;height:30px;flex:none}
.brand b{font-family:"Fraunces",serif;font-weight:600;font-size:1.05rem;letter-spacing:.02em}
.brand small{display:block;font-family:"Archivo",sans-serif;font-size:.58rem;letter-spacing:.3em;text-transform:uppercase;color:var(--brass-soft)}
.nav nav{display:flex;gap:26px}
.nav nav a{
  font-family:"Archivo",sans-serif;font-size:.8rem;font-weight:500;letter-spacing:.08em;
  text-transform:uppercase;color:rgba(246,244,236,.75);text-decoration:none;
  padding:6px 0;border-bottom:2px solid transparent;
}
.nav nav a:hover,.nav nav a[aria-current]{color:var(--shell);border-bottom-color:var(--brass)}
.nav nav a:focus-visible{outline:2px solid var(--brass-soft);outline-offset:4px}
@media(max-width:760px){.nav nav{gap:14px}.nav nav a{font-size:.68rem}}

/* hero */
.hero{background:var(--deep);color:var(--shell);position:relative;overflow:hidden}
.hero .wrap{position:relative;padding-top:96px;padding-bottom:110px}
.hero .windlines{position:absolute;inset:auto 0 0 0;width:100%;height:120px;opacity:.5;pointer-events:none}
.hero h1{margin:14px 0 20px;max-width:15ch}
.hero .lede{margin-bottom:34px}
.btn{
  display:inline-block;font-family:"Archivo",sans-serif;font-size:.8rem;font-weight:600;
  letter-spacing:.14em;text-transform:uppercase;text-decoration:none;
  padding:14px 26px;border:1px solid var(--brass);color:var(--shell);
  transition:background .2s,color .2s;
}
.btn:hover{background:var(--brass);color:var(--deep-2)}
.btn:focus-visible{outline:2px solid var(--brass-soft);outline-offset:3px}
.btn.solid{background:var(--brass);color:var(--deep-2)}
.btn.solid:hover{background:var(--brass-soft)}
.btn.quiet{border-color:var(--hairline);color:var(--ink)}
.btn.quiet:hover{background:var(--deep);border-color:var(--deep);color:var(--shell)}
.btn-row{display:flex;gap:14px;flex-wrap:wrap}

/* three lanes */
.lanes{background:var(--paper);border-bottom:1px solid var(--hairline)}
.lanes .wrap{display:grid;grid-template-columns:repeat(3,1fr);gap:0}
.lane{padding:44px 30px;border-left:1px solid var(--hairline)}
.lane:first-child{border-left:0}
.lane h3{margin:10px 0 8px}
.lane p{color:var(--mist);font-size:.98rem}
.lane a{display:inline-block;margin-top:14px;font-family:"Archivo",sans-serif;font-size:.74rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--deep);text-decoration:none;border-bottom:2px solid var(--brass)}
.lane a:hover{color:var(--reef)}
@media(max-width:820px){.lanes .wrap{grid-template-columns:1fr}.lane{border-left:0;border-top:1px solid var(--hairline)}.lane:first-child{border-top:0}}

/* sections */
section.block{padding:84px 0}
section.block.tint{background:var(--paper)}
section.block.dark{background:var(--deep);color:var(--shell)}
.section-head{max-width:60ch;margin-bottom:44px}
.section-head h2{margin:12px 0 14px}
.section-head p{color:var(--mist)}
.dark .section-head p{color:rgba(246,244,236,.75)}

/* the shelf — typographic spines */
.shelf{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:18px;align-items:end}
.spine{
  min-height:230px;display:flex;flex-direction:column;justify-content:space-between;
  padding:18px 14px;color:var(--shell);text-decoration:none;
  border-radius:2px 6px 6px 2px;
  box-shadow:inset 4px 0 0 rgba(255,255,255,.14), 0 10px 24px rgba(13,53,51,.18);
  transition:transform .18s ease;
}
.spine:hover{transform:translateY(-6px)}
.spine:focus-visible{outline:3px solid var(--brass);outline-offset:3px}
@media (prefers-reduced-motion:reduce){.spine,.spine:hover{transition:none;transform:none}}
.spine .t{display:block;font-family:"Fraunces",serif;font-weight:600;font-size:1.02rem;line-height:1.22}
.spine .a{display:block}
.spine .n{display:block}
.spine .a{font-family:"Archivo",sans-serif;font-size:.62rem;letter-spacing:.2em;text-transform:uppercase;opacity:.85}
.spine .n{font-family:"Archivo",sans-serif;font-size:.62rem;letter-spacing:.12em;text-transform:uppercase;opacity:.7;margin-top:6px}
.s-teal{background:linear-gradient(170deg,#14504d,#0a2a29)}
.s-oxblood{background:linear-gradient(170deg,#5e1f22,#38090c)}
.s-night{background:linear-gradient(170deg,#232a4d,#101430)}
.s-brass{background:linear-gradient(170deg,#8a6420,#4f3607)}
.s-moss{background:linear-gradient(170deg,#3d5c33,#1d3016)}
.s-plum{background:linear-gradient(170deg,#4c2450,#250d29)}
.s-slate{background:linear-gradient(170deg,#39525c,#16262c)}
.s-sand{background:linear-gradient(170deg,#a8814e,#5f4423)}

/* pen-name groups on books page */
.penname{padding:56px 0;border-top:1px solid var(--hairline)}
.penname:first-of-type{border-top:0}
.penname .who{display:flex;align-items:baseline;gap:18px;margin-bottom:8px;flex-wrap:wrap}
.penname .who h2{font-size:clamp(1.5rem,2.6vw,2rem)}
.penname .who .tag{font-family:"Archivo",sans-serif;font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:var(--reef)}
.penname>p{color:var(--mist);max-width:64ch;margin-bottom:26px}
.series-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:18px}
.series-card{border:1px solid var(--hairline);background:var(--paper);padding:22px 22px 18px;display:flex;flex-direction:column;gap:8px}
.series-card h3{font-size:1.12rem}
.series-card .meta{font-family:"Archivo",sans-serif;font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:var(--brass)}
.series-card p{font-size:.94rem;color:var(--mist);flex:1}
.series-card a{align-self:flex-start;font-family:"Archivo",sans-serif;font-size:.72rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--deep);text-decoration:none;border-bottom:2px solid var(--brass);padding-bottom:2px}
.series-card a:hover{color:var(--reef)}

/* rights table */
.rights-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}
@media(max-width:820px){.rights-grid{grid-template-columns:1fr}}
.property{border:1px solid var(--hairline-light);padding:26px;background:rgba(255,255,255,.03)}
.property .meta{font-family:"Archivo",sans-serif;font-size:.66rem;letter-spacing:.16em;text-transform:uppercase;color:var(--brass-soft);margin-bottom:8px}
.property h3{margin-bottom:10px}
.property p{font-size:.95rem;color:rgba(246,244,236,.78)}
table.catalog{width:100%;border-collapse:collapse;margin-top:10px;font-size:.95rem}
table.catalog th{font-family:"Archivo",sans-serif;font-size:.66rem;letter-spacing:.16em;text-transform:uppercase;text-align:left;color:var(--brass-soft);padding:10px 12px;border-bottom:1px solid var(--hairline-light)}
table.catalog td{padding:10px 12px;border-bottom:1px solid var(--hairline-light);color:rgba(246,244,236,.85)}
table.catalog td:first-child{font-family:"Fraunces",serif;font-weight:600}

/* services */
.svc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:18px}
.svc{border:1px solid var(--hairline);background:var(--paper);padding:24px}
.svc .meta{font-family:"Archivo",sans-serif;font-size:.66rem;letter-spacing:.16em;text-transform:uppercase;color:var(--brass);margin-bottom:8px}
.svc p{font-size:.95rem;color:var(--mist)}
.note{border-left:3px solid var(--brass);padding:14px 18px;background:var(--paper);color:var(--mist);font-size:.95rem;max-width:70ch}

/* newsletter band */
.band{background:var(--deep);color:var(--shell)}
.band .wrap{padding:64px 24px;display:flex;align-items:center;justify-content:space-between;gap:30px;flex-wrap:wrap}
.band h2{max-width:20ch}

/* footer */
footer{background:var(--deep-2);color:rgba(246,244,236,.65);font-size:.9rem}
footer .wrap{padding:44px 24px;display:flex;justify-content:space-between;gap:24px;flex-wrap:wrap}
footer a{color:rgba(246,244,236,.85);text-decoration:none}
footer a:hover{color:var(--brass-soft)}
footer .cols{display:flex;gap:60px;flex-wrap:wrap}
footer .cols h4{font-family:"Archivo",sans-serif;font-size:.66rem;letter-spacing:.2em;text-transform:uppercase;color:var(--brass-soft);margin-bottom:10px}
footer .cols ul{list-style:none}
footer .cols li{margin-bottom:6px}
.fineprint{border-top:1px solid var(--hairline-light);padding:18px 24px;text-align:center;font-size:.78rem;color:rgba(246,244,236,.45)}
