:root{
  --max-width:1200px;
  --accent:#c8102e;
}
*{box-sizing:border-box}
body{font-family:Montserrat,serif;margin:0;color:#111;background:#fff}
.site-header{border-bottom:1px solid #eee;padding:18px 0}
.topbar{display:flex;justify-content:space-between;align-items:center;padding:0 16px}
.brand{display:flex;flex-direction:column;align-items:center;margin:12px 0}
.logo{font-family:Playfair Display,serif;color:var(--accent);font-size:72px;line-height:1}
.title{font-family:Playfair Display,serif;font-size:22px;margin-top:-6px}
.container{max-width:var(--max-width);margin:28px auto;padding:0 16px}
.columns{display:grid;grid-template-columns:1fr 2fr 320px;gap:24px}
.left-col{border-right:1px solid #eee;padding-right:24px}
.right-col{border-left:1px solid #eee;padding-left:24px}
.featured img{width:100%;height:auto;display:block}
.featured{margin-bottom:20px}
.featured img{display:block;width:100%;height:auto}
.featured .featured-body{padding:18px 0}
.featured .featured-body h2{font-family:Playfair Display,serif;font-size:28px;margin:8px 0;color:#2d1a7a}
.featured .featured-body p{color:#333;line-height:1.55}
.cards{display:grid;grid-template-columns:repeat(2,1fr);gap:24px}
.card{display:flex;flex-direction:column;gap:12px;padding-bottom:18px;border-bottom:1px solid #eee}
.card img{width:100%;height:auto;object-fit:cover;border-radius:2px}
.card h3{font-family:Playfair Display,serif;margin:0 0 8px;font-size:20px}
.card p{margin:0;color:#444}
.grid-list{margin-top:40px;display:grid;grid-template-columns:repeat(4,1fr);gap:32px}
.grid-article img{width:100%;height:160px;object-fit:cover}
.grid-article h4{font-family:Playfair Display,serif;margin:8px 0}
.sidebar h4{font-family:Playfair Display,serif;margin-top:4px}

/* George page overrides: make main content wider than sidebar */
.george-columns{grid-template-columns:2fr 1fr;gap:28px}

/* Sidebar list items with image on top for george.html */
.sidebar ol{list-style:none;padding:0;margin:0}
.sidebar li{margin-bottom:18px}
.sidebar .side-article img{width:100%;height:110px;object-fit:cover;border-radius:4px}
.sidebar .side-article a{display:block;margin-top:8px;color:#2d1a7a;text-decoration:none;font-weight:600}
.sidebar .side-article a:hover{text-decoration:underline}

/* Header nav styling */
.navlinks{display:flex;gap:18px;align-items:center}
.navlinks a{color:#333;text-decoration:none;padding:6px 10px;border-radius:4px;font-weight:600;cursor:pointer}
.navlinks a:hover{background:#f4f4f4;text-decoration:none}
.navlinks a:active{transform:translateY(1px)}

/* make card title links more prominent */
.card a{color:#2d1a7a;text-decoration:underline}

/* Active state for header nav */
.navlinks a.active{background:#c8102e;color:#fff;text-decoration:none}
.navlinks a.active:hover{background:#2b1764}
.footer-columns{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;background:#000;color:#fff;padding:36px}
.legal{padding:18px 0 6px 0;text-align:left;background:#000;color:#fff;font-size:13px}

/* Redesigned footer styles to match screenshot */
.site-footer{background:#000;color:#fff;padding:36px 16px}
.footer-columns{display:grid;grid-template-columns:repeat(3,1fr);gap:36px;max-width:1200px;margin:0 auto}
.footer-columns h4{font-family:Playfair Display,serif;color:#fff;margin-bottom:12px;font-weight:700}
.footer-columns ul{list-style:none;padding:0;margin:0}
.footer-columns ul li{margin:10px 0}
.footer-columns ul li a{color:#dcdcdc;text-decoration:none;font-size:14px}
.footer-columns ul li a:hover{text-decoration:underline;color:#fff}
.footer-sep{border:0;height:1px;background:rgba(255,255,255,0.08);margin:22px 0}
.footer-policies{max-width:1200px;margin:0 auto;padding-bottom:8px}
.footer-policies nav{font-size:13px;color:#cfcfcf}
.footer-policies a{color:#cfcfcf;text-decoration:none;margin:0 8px}
.footer-policies .sep{color:rgba(255,255,255,0.18);margin:0 6px}
.recaptcha-note{font-size:12px;color:#bfbfbf;margin-top:6px}

@media (max-width:1000px){
  .footer-columns{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:600px){
  .footer-columns{grid-template-columns:1fr}
  .footer-policies nav{font-size:12px}
}

/* Header menu and modal styles */
.menu{font-size:20px;background:transparent;border:0;cursor:pointer;padding:6px}
.auth .signin{background:transparent;border:1px solid #2d1a7a;color:#2d1a7a;padding:6px 10px;border-radius:4px;cursor:pointer}

/* full-screen news menu overlay */
.news-menu{position:fixed;inset:0;display:flex;align-items:flex-start;justify-content:center;padding-top:60px;transform:translateY(-100%);transition:transform .45s ease-in-out;z-index:1200;background:rgba(18,18,18,0.85);backdrop-filter:blur(4px)}
.news-menu.open{transform:translateY(0%)}
.news-menu .menu-inner{width:100%;max-width:1000px;padding:28px;color:#fff}
.news-menu .menu-inner .menu-close{background:transparent;border:0;color:#fff;font-size:34px;float:right;cursor:pointer}
.news-menu nav ul{list-style:none;padding:40px 0 0;margin:0;display:grid;grid-template-columns:repeat(2,1fr);gap:18px}
.news-menu nav li{opacity:0;transform:translateY(10px);transition:opacity .35s ease, transform .35s ease}
.news-menu nav li.visible{opacity:1;transform:translateY(0)}
.news-menu nav a{color:#fff;text-decoration:none;font-size:20px;font-weight:700}

/* login modal */
.login-modal{position:fixed;inset:0;display:none;align-items:center;justify-content:center;z-index:1300}
.login-modal.open{display:flex}
.login-modal .backdrop{position:absolute;inset:0;background:rgba(0,0,0,0.45);backdrop-filter:blur(2px)}
.login-modal .panel{position:relative;z-index:2;background:rgba(255,255,255,0.02);border:1px solid rgba(255,255,255,0.08);padding:24px;max-width:420px;width:92%;border-radius:8px;color:#fff}
.login-modal h3{margin-top:0;font-family:Playfair Display,serif}
.login-modal label{display:block;margin-top:12px;font-size:13px;color:#ddd}
.login-modal input{width:100%;padding:10px;border-radius:6px;border:1px solid #333;background:#111;color:#fff;margin-top:6px}
.login-modal button.submit{margin-top:16px;padding:10px 14px;border-radius:6px;border:0;background:var(--accent);color:#fff;cursor:pointer}
.login-modal .note{color:#ddd;margin-top:8px;font-size:13px}
.login-modal .error{color:#ffddd2;background:#6b0b0b;padding:10px;border-radius:6px;margin-top:12px;display:none}
.login-modal .error.show{display:block;animation:shake .6s}

@keyframes shake{0%{transform:translateX(0)}20%{transform:translateX(-8px)}40%{transform:translateX(6px)}60%{transform:translateX(-6px)}80%{transform:translateX(4px)}100%{transform:translateX(0)}}

@media (max-width:1000px){
  .columns{grid-template-columns:1fr 1fr}
  .right-col{display:none}
  .grid-list{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:600px){
  .columns{grid-template-columns:1fr}
  .cards{grid-template-columns:1fr}
  .grid-list{grid-template-columns:1fr}
}

/* Mobile header/menu tweaks */
@media (max-width:600px){
  .topbar{padding:8px 12px;gap:12px}
  .brand{margin:8px 0}
  .brand .logo{font-size:40px}
  .brand .title{font-size:14px}
  /* hide desktop navlinks on small screens, use hamburger */
  .navlinks{display:none}
  .menu{font-size:26px;padding:10px}
  /* menu overlay tweaks for mobile */
  .news-menu{align-items:flex-start;padding-top:44px}
  .news-menu .menu-inner{padding:18px}
  .news-menu nav ul{grid-template-columns:1fr;gap:12px;padding:8px 0}
  .news-menu nav a{font-size:18px;padding:14px 10px;display:block}
  .news-menu .menu-close{font-size:34px}
}

/* header scroll animation */
.site-header{position:sticky;top:0;z-index:1100;transition:all .3s ease}
.site-header.scrolled{padding:8px 0;background:rgba(255,255,255,0.98);box-shadow:0 6px 18px rgba(0,0,0,0.08);transform:translateY(0)}
.site-header .brand{transition:all .25s ease}
.site-header.scrolled .brand .logo{font-size:48px}
.site-header.scrolled .brand .title{font-size:16px}
