:root{
  --bg:#0b0b0c;--panel:#121316;--ink:#e9ecf1;--muted:#b7beca;
  --gold:#caa862;--accent:#2aa198;--link:#7dd3fc;--maxw:1200px;
  --radius:16px;--shadow:0 10px 30px rgba(0,0,0,.35)
}

html{scroll-behavior:smooth}
*{box-sizing:border-box}
body{
  margin:0;
  background:linear-gradient(180deg,#0a0a0b 0%,#0e0f12 100%);
  color:var(--ink);
  font:16px/1.6 system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif
}
a{color:var(--link);text-decoration:none}
a:hover{text-decoration:underline}
img{max-width:100%;height:auto;display:block}
.wrap{max-width:var(--maxw);margin-inline:auto;padding:0 20px}

/* Header */
header{
  position:sticky;top:0;z-index:1000;
  background:rgba(10,10,11,.75);
  backdrop-filter:saturate(120%) blur(10px);
  border-bottom:1px solid rgba(255,255,255,.06)
}
.nav{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 0}
.brand{display:flex;align-items:center;gap:12px}
.brand .dot{
  width:12px;height:12px;border-radius:999px;
  background:var(--gold);
  box-shadow:0 0 0 3px rgba(202,168,98,.15)
}
.brand strong{letter-spacing:.4px}
.menu{display:flex;gap:18px;flex-wrap:wrap}
.menu a{color:var(--ink);opacity:.9}
.cta{
  display:inline-flex;align-items:center;gap:10px;
  padding:10px 14px;border-radius:12px;
  background:var(--gold);color:#0a0a0b;
  font-weight:600;box-shadow:var(--shadow)
}
.cta:hover{text-decoration:none;filter:brightness(1.02)}
.menu-toggle{display:none;border:1px solid rgba(255,255,255,.15);padding:8px 10px;border-radius:10px}

/* HERO (full-bleed background) */
.hero{
  position:relative;overflow:hidden;
  border-bottom:1px solid rgba(255,255,255,.06);
  min-height:100vh;
  background-image:url('../images/hero-banner.jpg'); /* fallback */
  background-size:cover;
  background-position:top center;
  background-repeat:no-repeat
}
.hero::before{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(0,0,0,.45) 0%,rgba(0,0,0,.25) 50%,rgba(0,0,0,.55) 100%),
             radial-gradient(1200px 600px at 20% 10%,rgba(202,168,98,.18),transparent 60%),
             radial-gradient(1000px 500px at 80% 0%,rgba(42,161,152,.14),transparent 60%);
  pointer-events:none
}
.hero-grid{
  position:relative;z-index:1;
  display:grid;grid-template-columns:1fr;
  gap:24px;align-items:center;
  padding:20vh 0 96px
}
.hero h1{font-size:clamp(34px,5vw,56px);line-height:1.05;margin:0 0 8px}
.hero .lead{color:var(--muted);font-size:clamp(16px,2.2vw,18px);margin:0 0 22px}
.hero .actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:10px}
.tag{
  display:inline-flex;gap:8px;align-items:center;
  padding:6px 10px;border:1px solid rgba(255,255,255,.15);
  border-radius:999px;color:var(--muted)
}

/* Sections */
section{padding:56px 0}
section h2{font-size:28px;margin:0 0 16px}
.muted{color:var(--muted)}
.card{
  background:var(--panel);
  border:1px solid rgba(255,255,255,.06);
  border-radius:var(--radius);
  box-shadow:var(--shadow)
}

/* About */
.about-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:28px;align-items:center}
.headshot{border-radius:var(--radius);overflow:hidden;border:1px solid rgba(255,255,255,.08)}

/* Books + News */
.books-grid{display:grid;gap:18px;justify-items:center}
.books-grid.two-col{
  grid-template-columns:1.2fr .8fr; /* keep book wider than news */
  align-items:start
}
.news-card .body{padding:16px}
.news-card .items{display:grid;gap:12px}

/* Book card — now fills its column (less dead space) */
.book{
  display:flex;flex-direction:column;
  width:100%;
  max-width:520px;          /* stops it getting too huge on ultrawide */
  margin:0 auto
}
.book .body{padding:16px}
.book .meta{display:flex;gap:10px;flex-wrap:wrap;font-size:12px;color:var(--muted)}
.book .btns{display:flex;gap:10px;flex-wrap:wrap;margin-top:10px}
.book img{width:100%;height:auto;aspect-ratio:2/3;object-fit:cover;border-bottom:1px solid rgba(255,255,255,.06)}
.btn{display:inline-flex;align-items:center;gap:8px;padding:10px 12px;border-radius:12px;border:1px solid rgba(255,255,255,.12);color:var(--ink)}
.btn:hover{text-decoration:none;background:rgba(255,255,255,.03)}
.btn.gold{background:var(--gold);border-color:transparent;color:#0a0a0b;font-weight:600}

/* Close up the gap between Books and Newsletter band */
section#books{padding-bottom:32px}
section#newsletter{padding-top:32px}

/* Newsletter full width band */
.newsletter-full{
  padding:64px 0;
  background:linear-gradient(180deg,rgba(255,255,255,.03),rgba(255,255,255,.01));
  border-top:1px solid rgba(255,255,255,.06);
  border-bottom:1px solid rgba(255,255,255,.06)
}
.signup-card{border:1px solid rgba(255,255,255,.08)}

/* Newsletter form */
form.newsletter{display:grid;gap:12px}
.input{display:grid;gap:6px}
label{font-size:14px;color:var(--muted)}
input,textarea{
  width:100%;padding:12px 14px;
  border-radius:12px;border:1px solid rgba(255,255,255,.12);
  background:#0e1114;color:var(--ink)
}
input:focus,textarea:focus{outline:2px solid rgba(202,168,98,.35);border-color:rgba(202,168,98,.5)}
.consent{display:flex;gap:10px;align-items:flex-start;font-size:13px;color:var(--muted)}

/* 2-column form on wide screens */
@media (min-width:980px){
  form.newsletter{grid-template-columns:1fr 1fr;gap:14px 16px}
  form.newsletter .consent{grid-column:1/-1}
  form.newsletter .cta{grid-column:1/2;justify-self:start}
  form.newsletter small{grid-column:2/3;align-self:center;justify-self:end}
}

/* News list */
.items{display:grid;gap:12px}
.item{padding:14px;border-radius:12px;border:1px dashed rgba(255,255,255,.12)}

/* Contact */
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.contact-tile{padding:16px}

/* Footer */
footer{border-top:1px solid rgba(255,255,255,.06);padding:28px 0;color:var(--muted)}
.foot{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}

/* Responsive */
@media (max-width:980px){
  .about-grid,.contact-grid{grid-template-columns:1fr}
  .books-grid.two-col{grid-template-columns:1fr}
  .menu{display:none}
  .menu.open{display:flex}
  .menu-toggle{display:inline-flex}
}
@media (max-width:700px){
  .hero{min-height:80vh;background-position:top center}
  .hero-grid{padding:20vh 0 48px}
  .hero h1{font-size:clamp(28px,7vw,40px)}
}
