:root{
  --ink:#1b1a17;
  --ink-soft:#3a3833;
  --paper:#f5f0e6;
  --paper-2:#ebe4d3;
  --rule:#c9bfa8;
  --sage:#4a5a3f;
  --sage-soft:#8a9a7a;
  --clay:#b45a3c;
  --gold:#a7852b;
  --mute:#6b6559;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  background:var(--paper);
  color:var(--ink);
  font-family:"Cormorant Garamond","EB Garamond",Georgia,serif;
  font-size:19px;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block}
a{color:var(--ink);text-decoration:none;transition:color .2s}
a:hover{color:var(--clay)}
.container{max-width:1240px;margin:0 auto;padding:0 32px}
.narrow{max-width:780px;margin:0 auto;padding:0 32px}

/* ---- Typography ---- */
.serif-display{font-family:"Playfair Display","Cormorant Garamond",Georgia,serif;font-weight:400;letter-spacing:-.01em}
.mono{font-family:"JetBrains Mono",ui-monospace,monospace;font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--mute)}
h1,h2,h3,h4{font-family:"Playfair Display",Georgia,serif;font-weight:500;color:var(--ink);letter-spacing:-.015em;line-height:1.15}
h1{font-size:clamp(2.6rem,6vw,5.2rem)}
h2{font-size:clamp(1.9rem,3.2vw,2.8rem)}
h3{font-size:1.5rem}
h4{font-size:1.15rem}
p{margin-bottom:1em}
.lede{font-size:1.25rem;color:var(--ink-soft);font-style:italic}

/* ---- Masthead ---- */
.masthead{border-bottom:1px solid var(--rule);background:var(--paper)}
.masthead-top{display:flex;justify-content:space-between;align-items:center;padding:14px 32px;font-size:12px;color:var(--mute);letter-spacing:.15em;text-transform:uppercase;border-bottom:1px solid var(--rule)}
.masthead-mid{text-align:center;padding:36px 32px 22px}
.logo{font-family:"Playfair Display",serif;font-weight:500;font-size:clamp(2.4rem,5vw,3.8rem);letter-spacing:.02em}
.logo .amp{font-style:italic;color:var(--clay);padding:0 .15em}
.tagline{margin-top:8px;font-size:12px;letter-spacing:.35em;text-transform:uppercase;color:var(--mute)}
nav.primary{border-top:1px solid var(--rule);border-bottom:1px double var(--rule)}
nav.primary ul{display:flex;justify-content:center;flex-wrap:wrap;list-style:none;gap:38px;padding:16px 32px}
nav.primary a{font-size:12px;letter-spacing:.25em;text-transform:uppercase;color:var(--ink-soft)}
nav.primary a.active,nav.primary a:hover{color:var(--clay)}
.burger{display:none;background:none;border:none;font-size:22px;cursor:pointer;color:var(--ink)}

/* ---- Hero ---- */
.hero{padding:80px 0 60px;border-bottom:1px solid var(--rule)}
.hero-grid{display:grid;grid-template-columns:1.05fr 1fr;gap:60px;align-items:center}
.hero .eyebrow{margin-bottom:22px}
.hero h1{margin-bottom:24px}
.hero h1 em{font-family:"Playfair Display",serif;font-style:italic;color:var(--sage)}
.hero .lede{max-width:520px;margin-bottom:32px}
.hero-figure{position:relative}
.hero-figure figcaption{margin-top:14px;font-size:12px;color:var(--mute);letter-spacing:.18em;text-transform:uppercase}
.hero-figure::before{content:"";position:absolute;inset:-18px -18px 40px 40px;border:1px solid var(--rule);z-index:0}
.hero-figure img{position:relative;z-index:1;filter:saturate(.95)}

/* ---- Buttons ---- */
.btn{display:inline-block;padding:16px 30px;font-size:11px;letter-spacing:.3em;text-transform:uppercase;border:1px solid var(--ink);color:var(--ink);background:transparent;cursor:pointer;transition:all .25s;font-family:inherit}
.btn:hover{background:var(--ink);color:var(--paper)}
.btn-ghost{border-color:var(--rule);color:var(--ink-soft)}
.btn-filled{background:var(--ink);color:var(--paper)}
.btn-filled:hover{background:var(--sage);border-color:var(--sage)}

/* ---- Section chrome ---- */
section{padding:80px 0}
.sec-head{display:flex;justify-content:space-between;align-items:end;margin-bottom:48px;gap:24px;border-bottom:1px solid var(--rule);padding-bottom:22px}
.sec-head h2{max-width:600px}
.sec-num{font-family:"Playfair Display",serif;font-style:italic;color:var(--clay);font-size:1.2rem}
.sec-link{font-size:11px;letter-spacing:.28em;text-transform:uppercase;color:var(--sage);white-space:nowrap}

/* ---- Featured Editorial ---- */
.featured{background:var(--paper-2);border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}
.featured-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:64px;align-items:center}
.featured img{aspect-ratio:4/3;object-fit:cover}
.featured h2{margin:14px 0 20px;font-size:clamp(1.9rem,3.6vw,3rem)}
.byline{display:flex;gap:16px;margin-top:24px;font-size:12px;color:var(--mute);letter-spacing:.14em;text-transform:uppercase}
.byline span{padding-right:16px;border-right:1px solid var(--rule)}
.byline span:last-child{border:none}

/* ---- Categories ---- */
.cats-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:1px;background:var(--rule);border:1px solid var(--rule)}
.cat{background:var(--paper);padding:32px 22px;text-align:center;transition:background .2s}
.cat:hover{background:var(--paper-2)}
.cat .num{font-family:"Playfair Display",serif;font-style:italic;font-size:1.3rem;color:var(--clay);display:block;margin-bottom:8px}
.cat .name{font-family:"Playfair Display",serif;font-size:1.15rem;display:block;margin-bottom:4px}
.cat .count{font-size:11px;color:var(--mute);letter-spacing:.18em;text-transform:uppercase}

/* ---- Articles grid ---- */
.articles{display:grid;grid-template-columns:repeat(3,1fr);gap:56px 40px}
.card{display:flex;flex-direction:column}
.card-img{aspect-ratio:4/3;overflow:hidden;margin-bottom:20px;background:var(--paper-2)}
.card-img img{width:100%;height:100%;object-fit:cover;transition:transform .6s}
.card:hover .card-img img{transform:scale(1.03)}
.card-meta{display:flex;gap:12px;font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--mute);margin-bottom:12px}
.card-meta .cat-tag{color:var(--clay)}
.card h3{margin-bottom:12px;font-size:1.4rem;line-height:1.25}
.card p{color:var(--ink-soft);font-size:1.02rem;margin-bottom:14px}
.card .read{font-size:11px;letter-spacing:.28em;text-transform:uppercase;color:var(--sage);border-bottom:1px solid var(--sage);padding-bottom:2px;align-self:start}

/* ---- Education panel ---- */
.edu{background:var(--ink);color:var(--paper);border:none}
.edu h2,.edu h3,.edu h4{color:var(--paper)}
.edu .sec-head{border-color:#3a3833}
.edu .sec-num{color:var(--gold)}
.edu-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:48px 40px;margin-top:16px}
.edu-item h4{margin-bottom:12px;color:var(--paper)}
.edu-item p{color:#c9c3b3;font-size:1rem}
.edu-item .mark{font-family:"Playfair Display",serif;font-style:italic;color:var(--gold);font-size:1.1rem;display:block;margin-bottom:14px;border-bottom:1px solid #3a3833;padding-bottom:10px}
.edu-note{margin-top:56px;padding:28px;border:1px solid #3a3833;background:#232220;font-size:.95rem;color:#c9c3b3;font-style:italic}

/* ---- FAQ ---- */
.faq{max-width:820px;margin:0 auto}
.faq details{border-bottom:1px solid var(--rule);padding:22px 0}
.faq summary{cursor:pointer;font-family:"Playfair Display",serif;font-size:1.35rem;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:20px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-family:"Playfair Display",serif;color:var(--clay);font-size:1.6rem;transition:transform .3s}
.faq details[open] summary::after{content:"–"}
.faq details p{margin-top:14px;color:var(--ink-soft)}

/* ---- Newsletter ---- */
.news{background:var(--paper-2);border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}
.news-inner{max-width:720px;margin:0 auto;text-align:center}
.news h2{margin:16px 0 14px}
.news p.lede{margin-bottom:36px}
.news-form{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.news-form input[type=text],.news-form input[type=email]{grid-column:span 1;padding:16px 18px;background:transparent;border:1px solid var(--rule);font-family:inherit;font-size:1rem;color:var(--ink)}
.news-form input:focus{outline:none;border-color:var(--sage)}
.news-form .full{grid-column:span 2}
.news-form label{display:flex;align-items:flex-start;gap:10px;text-align:left;font-size:.95rem;color:var(--ink-soft);grid-column:span 2}
.news-form button{grid-column:span 2;margin-top:6px}
.news-fine{margin-top:14px;font-size:12px;color:var(--mute);letter-spacing:.14em;text-transform:uppercase}
.news-ok{color:var(--sage);margin-top:16px;font-style:italic;display:none}
.news-ok.show{display:block}

/* ---- About preview ---- */
.about-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:64px;align-items:center}
.about-grid img{aspect-ratio:4/3;object-fit:cover}
.about-quote{border-left:3px solid var(--clay);padding-left:24px;margin:26px 0;font-style:italic;color:var(--ink-soft);font-size:1.15rem}

/* ---- Footer ---- */
footer{background:var(--ink);color:#c9c3b3;padding:72px 0 28px;margin-top:40px}
footer h4{color:var(--paper);font-family:"Playfair Display",serif;font-size:1.15rem;margin-bottom:18px}
.foot-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:48px}
.foot-brand .logo{color:var(--paper);font-size:1.9rem}
.foot-brand .logo .amp{color:var(--gold)}
.foot-brand p{color:#a19a89;font-size:.95rem;margin-top:16px;max-width:320px}
footer ul{list-style:none}
footer li{margin-bottom:10px;font-size:.98rem}
footer a{color:#c9c3b3}
footer a:hover{color:var(--gold)}
.foot-base{margin-top:56px;padding-top:24px;border-top:1px solid #3a3833;display:flex;justify-content:space-between;color:#807a6c;font-size:12px;letter-spacing:.14em;text-transform:uppercase;flex-wrap:wrap;gap:14px}

/* ---- Cookie banner ---- */
.cookie{position:fixed;bottom:22px;left:22px;right:22px;max-width:560px;background:var(--ink);color:var(--paper);padding:26px 28px;border:1px solid var(--gold);z-index:1000;display:none;box-shadow:0 20px 50px rgba(0,0,0,.25)}
.cookie.show{display:block}
.cookie h4{color:var(--paper);margin-bottom:10px;font-size:1.15rem}
.cookie p{color:#c9c3b3;font-size:.95rem;margin-bottom:18px}
.cookie-actions{display:flex;gap:10px;flex-wrap:wrap}
.cookie-actions button{padding:12px 18px;font-size:10px;letter-spacing:.22em;text-transform:uppercase;font-family:inherit;cursor:pointer;border:1px solid var(--paper);background:transparent;color:var(--paper)}
.cookie-actions .accept{background:var(--gold);border-color:var(--gold);color:var(--ink)}
.cookie-actions .reject{background:transparent}
.cookie-prefs{margin-top:18px;display:none;border-top:1px solid #3a3833;padding-top:16px}
.cookie-prefs.show{display:block}
.cookie-prefs label{display:flex;align-items:center;gap:10px;margin-bottom:10px;font-size:.9rem;color:#c9c3b3}

/* ---- Interior page ---- */
.page-hero{padding:70px 0 40px;border-bottom:1px solid var(--rule);text-align:center}
.page-hero .mono{margin-bottom:16px;display:block}
.page-body{padding:60px 0 80px}
.page-body h2{margin-top:44px;margin-bottom:16px;font-size:1.8rem}
.page-body h3{margin-top:28px;margin-bottom:10px;font-size:1.3rem}
.page-body p, .page-body li{color:var(--ink-soft)}
.page-body ul{padding-left:22px;margin-bottom:16px}
.page-body li{margin-bottom:8px}
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:56px;margin-top:20px}
.contact-form input, .contact-form textarea{width:100%;padding:14px 16px;background:transparent;border:1px solid var(--rule);font-family:inherit;font-size:1rem;color:var(--ink);margin-bottom:14px}
.contact-form textarea{min-height:160px;resize:vertical}
.contact-form input:focus, .contact-form textarea:focus{outline:none;border-color:var(--sage)}

/* ---- Responsive ---- */
@media (max-width: 960px){
  .hero-grid,.featured-grid,.about-grid{grid-template-columns:1fr;gap:40px}
  .cats-grid{grid-template-columns:repeat(2,1fr)}
  .articles{grid-template-columns:repeat(2,1fr);gap:40px 24px}
  .edu-grid{grid-template-columns:repeat(2,1fr)}
  .foot-grid{grid-template-columns:1fr 1fr;gap:40px}
  .contact-grid{grid-template-columns:1fr}
  nav.primary ul{gap:22px;font-size:11px}
}
@media (max-width: 600px){
  section{padding:60px 0}
  .container,.narrow{padding:0 22px}
  .masthead-top{font-size:10px;padding:12px 22px}
  .articles{grid-template-columns:1fr;gap:44px}
  .cats-grid{grid-template-columns:1fr}
  .news-form{grid-template-columns:1fr}
  .news-form input, .news-form .full{grid-column:span 1}
  .foot-grid{grid-template-columns:1fr;gap:32px}
  .foot-base{flex-direction:column;text-align:center}
  nav.primary ul{gap:16px;padding:12px 16px}
  nav.primary a{font-size:10px;letter-spacing:.18em}
  .sec-head{flex-direction:column;align-items:flex-start;gap:12px}
}
