@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600&family=Playfair+Display:ital,wght@0,400;0,600;0,700;1,400&display=swap');

:root { --paper:#f9f9f9; --white:#fff; --ink:#222; --dark:#111; --muted:#666; --gold:#c5a059; --green:#1b3b2b; --line:#e5e5e5; --serif:'Playfair Display', Georgia, serif; --sans:Inter, system-ui, sans-serif; }
* { box-sizing:border-box; }
body { margin:0; color:var(--ink); background:var(--paper); font:16px/1.6 var(--sans); }
a { color:inherit; text-decoration:none; }
img { display:block; max-width:100%; height:auto; }
h1,h2,h3 { font-family:var(--serif); font-weight:400; line-height:1.2; }
.container { width:min(1120px, calc(100% - 3rem)); margin:auto; }
.notice { padding:.6rem 1rem; color:#fff; background:var(--green); text-align:center; font-size:.72rem; letter-spacing:.1em; text-transform:uppercase; }
header { background:#fff; border-bottom:1px solid var(--line); }
.header-inner { display:flex; align-items:center; justify-content:space-between; min-height:80px; gap:2rem; }
.brand { font:600 1.3rem var(--serif); letter-spacing:.05em; white-space:nowrap; }
.nav { display:flex; flex-wrap:wrap; align-items:center; justify-content:flex-end; gap:1.25rem; font-size:.78rem; letter-spacing:.08em; text-transform:uppercase; color:var(--muted); }
.nav > a { display:inline-flex; align-items:center; justify-content:center; min-height:40px; }
.nav a:hover,.breadcrumbs a { color:var(--gold); }
.nav a[aria-current="page"] { color:var(--green); }
.nav-enrol { height:40px; padding:.55rem .9rem; border:1px solid var(--green); background:var(--green); color:#fff!important; line-height:1; }
.nav-enrol:hover { background:#fff; color:var(--green)!important; }
.nav-toggle { display:none; width:44px; height:44px; padding:10px; border:1px solid var(--line); border-radius:6px; background:#fff; color:var(--green); cursor:pointer; }
.nav-toggle-line { display:block; width:22px; height:2px; margin:4px auto; background:currentColor; transition:transform .2s ease,opacity .2s ease; }
main { padding:4.5rem 0 6rem; }
.breadcrumbs { margin-bottom:2rem; font-size:.75rem; letter-spacing:.1em; text-transform:uppercase; color:var(--muted); }
.breadcrumbs span { margin:0 .5rem; color:var(--line); }
.eyebrow { color:var(--gold); font-size:.75rem; font-weight:600; letter-spacing:.15em; text-transform:uppercase; }
h1 { margin:.75rem 0 1rem; font-size:clamp(2.4rem, 6vw, 5rem); }
h2 { margin:0 0 1rem; font-size:clamp(2rem, 4vw, 3.2rem); }
h3 { font-size:1.5rem; }
.lede { max-width:720px; font-size:1.15rem; color:var(--muted); }
.grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1.5rem; margin-top:3rem; }
.card { display:flex; flex-direction:column; background:#fff; border:1px solid var(--line); }
.card img { width:100%; aspect-ratio:16/9; object-fit:cover; }
.card-body { display:flex; flex:1; flex-direction:column; padding:1.5rem; }
.card-body p { color:var(--muted); }
.card-body .button { margin-top:auto; align-self:flex-start; }
.button { display:inline-block; padding:.75rem 1.25rem; border:1px solid var(--dark); background:var(--dark); color:#fff; font-size:.78rem; letter-spacing:.1em; text-transform:uppercase; }
.button.alt { background:transparent; color:var(--ink); }
.button.green { border-color:var(--green); background:var(--green); }
.actions { display:flex; flex-wrap:wrap; gap:1rem; margin-top:2rem; }
.prose { max-width:800px; }
.prose p { margin:1rem 0; }
.prose ul { padding-left:1.25rem; }
.hero { padding:5rem 0; background:linear-gradient(120deg,#171717,#2a2a2a); color:#fff; }
.hero .lede { color:#ddd; }
.section { padding:4rem 0; border-top:1px solid var(--line); }
.two-col { display:grid; grid-template-columns:1fr 1fr; gap:3rem; align-items:start; }
.feature-image { width:100%; aspect-ratio:4/3; object-fit:cover; }
form { display:grid; gap:1rem; max-width:720px; }
.form-grid { display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
label { display:grid; gap:.35rem; font-size:.85rem; font-weight:600; }
input,select,textarea { width:100%; padding:.8rem; border:1px solid #cfcfcf; background:#fff; color:var(--ink); font:inherit; }
textarea { min-height:130px; resize:vertical; }
.consent { display:flex; grid-template-columns:none; grid-template-columns:auto 1fr; align-items:start; gap:.6rem; }
.consent input { width:auto; margin-top:.35rem; }
footer { padding:3rem 0; background:var(--dark); color:#fff; }
.footer-grid { display:grid; grid-template-columns:2fr 1fr 1fr; gap:2rem; }
.footer-grid h2,.footer-grid h3 { margin-top:0; }
.footer-grid p,.footer-grid a { color:#ccc; }
.footer-links { display:grid; align-content:start; gap:.5rem; }
.footer-links a:hover { color:var(--gold); }
.footer-action { display:inline-block; margin-top:.75rem; padding:.65rem .9rem; border:1px solid var(--gold); color:#fff; font-size:.75rem; letter-spacing:.07em; text-transform:uppercase; }
.footer-action:hover { background:var(--gold); color:var(--dark); }
.site-footer .footer-bottom { display:flex; justify-content:space-between; gap:1rem; padding-top:1.5rem; border-top:1px solid #333; color:#999; font-size:.78rem; }

.about-intro { display:grid; grid-template-columns:1.15fr .85fr; gap:2rem; align-items:center; margin-bottom:2rem; }
.feature-panel { background:#fff; border:1px solid var(--line); border-radius:18px; overflow:hidden; box-shadow:0 22px 40px rgba(17,17,17,.08); }
.feature-image { width:100%; min-height:420px; object-fit:cover; }
.book-feature { display:grid; grid-template-columns:300px 1fr; gap:2rem; align-items:center; background:#fff; border:1px solid var(--line); border-radius:18px; padding:2rem; box-shadow:0 12px 24px rgba(17,17,17,.03); }
.book-cover-wrap { display:flex; justify-content:center; }
.book-cover { width:100%; max-width:260px; border-radius:12px; box-shadow:0 18px 30px rgba(17,17,17,.15); }
.book-info h2 { margin-top:.5rem; margin-bottom:.25rem; font-size:clamp(2rem,3vw,3rem); }
.book-meta { color:var(--muted); font-weight:600; letter-spacing:.08em; text-transform:uppercase; margin-bottom:1rem; }
.book-info p { color:var(--muted); }
@media (max-width:900px) {
  .header-inner { position:relative; align-items:center; flex-direction:row; min-height:72px; padding:.75rem 0; }
  .brand { font-size:clamp(1rem,5vw,1.3rem); }
  .nav-toggle { display:block; margin-left:auto; flex:0 0 auto; }
  .header-inner.nav-open .nav-toggle-line:nth-child(1) { transform:translateY(6px) rotate(45deg); }
  .header-inner.nav-open .nav-toggle-line:nth-child(2) { opacity:0; }
  .header-inner.nav-open .nav-toggle-line:nth-child(3) { transform:translateY(-6px) rotate(-45deg); }
  .nav { display:none; position:absolute; z-index:100; top:100%; left:0; right:0; flex-direction:column; align-items:stretch; gap:0; padding:.5rem; border:1px solid var(--line); background:#fff; box-shadow:0 18px 36px rgba(17,17,17,.12); }
  .header-inner.nav-open .nav { display:flex; }
  .nav a { padding:.85rem 1rem; border-radius:4px; }
  .nav > a { min-height:0; }
  .nav a:hover,.nav a:focus-visible { background:#f2f4f0; color:var(--green); }
  .nav a[aria-current="page"] { background:#edf1e9; }
  .nav-enrol { margin-top:.35rem; text-align:center; }
  .grid,.two-col,.footer-grid,.form-grid,.about-intro,.book-feature { grid-template-columns:1fr; }
  .book-feature { padding:1.5rem; }
  .feature-image { min-height:260px; }
  main { padding-top:3rem; }
  .site-footer .footer-bottom { flex-direction:column; }
}
