/*
Theme Name: Steampunk UK Magazine
Theme URI: https://steampunkuk.com/news/
Author: Built for steampunkuk.com
Description: The magazine theme for Steampunk UK. Uses the same Union Brass on Admiralty Blue palette, the same Cinzel and Montserrat typography, and the same seven-heading navigation as the main site, so /news stops looking like a different website.
Version: 1.0
Requires at least: 6.0
Tested up to: 7.0
Requires PHP: 8.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: steampunk-uk
Tags: blog, news, one-column, custom-menu, featured-images, dark
*/

/* ==========================================================================
   Palette and type — copied from the main site so the two never drift.
   ========================================================================== */
:root{
  --ink-900:#070E17;
  --bg:#0A1320;
  --bg2:#0E1B2E;
  --panel:#132338;
  --card:#16283F;
  --raised:#1B3252;
  --plate:#0E1B2E;

  --line:rgba(227,178,60,.26);
  --line2:rgba(227,178,60,.12);
  --line-cool:rgba(120,160,210,.16);

  --gold:#E3B23C;--gold-hi:#F7DC8C;--brass:#C9922F;--brass-bright:#F5D77A;--amber:#F0A93B;
  --rust:#D2542F;--oxblood:#B3272D;--verdigris:#2E9E86;
  --steel:#7FA3CC;

  --ink:#F4E9D2;--ink-dim:#D8C7A6;--muted:#9BAAC0;--dim:#6E809A;

  --grad:linear-gradient(180deg,#F7DC8C,#E3B23C 50%,#A87C2C);
  --btn:linear-gradient(180deg,#F0C55A,#C9922F);
  --union:linear-gradient(90deg,#B3272D 0%,#0E1B2E 34%,#E3B23C 67%,#B3272D 100%);
  --glow:0 0 0 1px rgba(227,178,60,.22),0 8px 30px rgba(0,0,0,.45);

  --fh:'Cinzel',serif;
  --fdisplay:'Cinzel Decorative',serif;
  --fb:'Montserrat',system-ui,sans-serif;
}

*{box-sizing:border-box}

body{
  margin:0;background:var(--bg);color:var(--ink);font-family:var(--fb);line-height:1.6;
  background-image:
    radial-gradient(1200px 620px at 50% -8%,rgba(45,84,132,.30),transparent 65%),
    repeating-linear-gradient(45deg,rgba(179,39,45,.028) 0 2px,transparent 2px 52px),
    repeating-linear-gradient(-45deg,rgba(227,178,60,.020) 0 2px,transparent 2px 52px);
  background-attachment:fixed;
  overflow-wrap:break-word;
}

a{color:var(--gold);text-decoration:none}
a:hover{color:var(--gold-hi)}
img{max-width:100%;height:auto;display:block}

.wrap{max-width:1180px;margin:0 auto;padding:0 1.4rem}
.narrow{max-width:760px;margin:0 auto;padding:0 1.4rem}

.btn{
  display:inline-block;font-family:var(--fb);font-weight:700;font-size:.78rem;letter-spacing:.1em;
  text-transform:uppercase;padding:.6rem 1.1rem;border-radius:4px;cursor:pointer;
  border:1px solid var(--gold);color:var(--gold);background:transparent;transition:.15s;
}
.btn:hover{background:rgba(227,178,60,.14);border-color:var(--gold-hi);color:var(--gold-hi);transform:translateY(-1px)}
.btn--gold{background:var(--btn);color:#0b1420;border:1px solid transparent;box-shadow:0 2px 12px rgba(0,0,0,.4)}
.btn--gold:hover{color:#0A1320;filter:brightness(1.08);transform:translateY(-1px);box-shadow:0 6px 20px rgba(227,178,60,.28)}

/* Accessibility: skip link, visible on focus only. */
.skip{position:absolute;left:-9999px;top:0;z-index:200;padding:.7rem 1.1rem;background:var(--gold);color:#0b1420;font-weight:700}
.skip:focus{left:.6rem;top:.6rem}
.screen-reader-text{
  position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(1px,1px,1px,1px);white-space:nowrap
}

/* ==========================================================================
   Top bar — mirrors the main site, including the mobile burger
   ========================================================================== */
.top{
  position:sticky;top:0;z-index:50;
  background:linear-gradient(180deg,rgba(14,27,46,.97),rgba(10,19,32,.93));
  backdrop-filter:blur(10px) saturate(1.1);
  border-bottom:1px solid var(--line2);box-shadow:0 6px 24px rgba(0,0,0,.42);
}
.top::after{content:'';display:block;height:3px;background:var(--union)}
.top__in{max-width:1180px;margin:0 auto;padding:.6rem 1.4rem;display:flex;align-items:center;gap:1.2rem;flex-wrap:wrap}
.brand{display:flex;align-items:center;gap:.55rem;position:relative;z-index:2}
.brand__logo{height:110px;width:auto;margin:0 0 -53px;position:relative;z-index:2}
.brand__name{font-family:var(--fdisplay);font-weight:900;font-size:1.2rem;letter-spacing:.02em;line-height:1;color:var(--ink)}

.nav{display:flex;gap:1.15rem;margin-left:.8rem;font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.nav a{color:inherit}
.nav a:hover{color:var(--gold)}
.nav__item{position:relative}
.nav__top{display:inline-flex;align-items:center;gap:.32rem;padding:.85rem 0;white-space:nowrap}
.nav__item.is-current .nav__top{color:var(--gold)}
.nav__item:hover .nav__top,.nav__item:focus-within .nav__top{color:var(--gold)}
.nav__caret{width:8px;height:8px;flex:none;opacity:.65;transition:transform .15s}
.nav__item:hover .nav__caret,.nav__item:focus-within .nav__caret{transform:rotate(180deg);opacity:1}
.nav__menu{
  position:absolute;top:100%;left:50%;transform:translateX(-50%) translateY(6px);
  min-width:210px;padding:.45rem 0;margin:0;list-style:none;
  background:linear-gradient(180deg,#12233c,#0d1a2c);
  border:1px solid var(--line2);border-radius:8px;box-shadow:0 14px 38px rgba(0,0,0,.55);
  opacity:0;visibility:hidden;pointer-events:none;transition:opacity .15s,transform .15s;z-index:60;
}
.nav__item:hover .nav__menu,.nav__item:focus-within .nav__menu{
  opacity:1;visibility:visible;pointer-events:auto;transform:translateX(-50%) translateY(0)
}
.nav__menu::before{content:'';position:absolute;top:-8px;left:0;right:0;height:8px}
.nav__menu a{display:block;padding:.5rem 1.05rem;font-size:.74rem;letter-spacing:.08em;color:var(--muted);text-transform:none}
.nav__menu a:hover{color:var(--gold);background:rgba(227,178,60,.07)}

.navtoggle{
  display:none;margin-left:auto;background:none;border:1px solid var(--line2);border-radius:6px;
  padding:.42rem .5rem;color:var(--muted);cursor:pointer;line-height:0
}
.navtoggle:hover{color:var(--gold);border-color:var(--gold)}
.navtoggle svg{width:22px;height:22px}
.top__right{margin-left:auto}
.mobilenav{display:none}

@media(max-width:980px){
  .nav{display:none}
  .navtoggle{display:block}
  .top__right{display:none}
  .brand__logo{height:74px;margin:0 0 -32px}
  .mobilenav{
    display:none;width:100%;order:99;border-top:1px solid var(--line2);
    margin-top:.55rem;padding:.5rem 0 .9rem;max-height:min(72vh,560px);overflow-y:auto
  }
  .mobilenav.is-open{display:block}
  .mobilenav h5{
    margin:.85rem 0 .3rem;font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;
    color:var(--gold);font-family:var(--fdisplay)
  }
  .mobilenav a{display:block;padding:.5rem .2rem;font-size:.92rem;color:var(--ink);border-bottom:1px solid rgba(255,255,255,.05)}
  .mobilenav a:hover{color:var(--gold)}
  .mobilenav .mobilenav__cta{margin-top:1rem;border-bottom:0}
}

/* ==========================================================================
   Masthead
   ========================================================================== */
.mast{text-align:center;padding:3rem 0 1.6rem}
.mast__eyebrow{
  font-family:var(--fb);font-size:.7rem;letter-spacing:.28em;text-transform:uppercase;
  color:var(--dim);margin:0 0 .7rem
}
.mast__title{
  font-family:var(--fdisplay);font-weight:900;font-size:clamp(2.1rem,5.5vw,3.4rem);line-height:1.05;margin:0 0 .6rem;
  background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent
}
.mast__sub{color:var(--muted);font-size:1rem;margin:0 auto;max-width:44rem}
.mast__rule{height:1px;background:linear-gradient(90deg,transparent,var(--line),transparent);margin:1.8rem 0 0}

/* ==========================================================================
   Article cards
   ========================================================================== */
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1.6rem;padding:2.2rem 0 1rem}

.card{
  display:flex;flex-direction:column;background:var(--panel);border:1px solid var(--line2);
  border-radius:12px;overflow:hidden;transition:.18s;height:100%
}
.card:hover{border-color:var(--line);transform:translateY(-3px);box-shadow:0 14px 34px rgba(0,0,0,.42)}
.card__media{display:block;aspect-ratio:16/9;background:var(--ink-900);overflow:hidden;position:relative}
.card__media img{width:100%;height:100%;object-fit:cover}
.card__media--empty{
  display:flex;align-items:center;justify-content:center;
  background:linear-gradient(140deg,#12233c,#0d1a2c)
}
.card__media--empty svg{width:56px;height:56px;color:rgba(227,178,60,.28)}
.card__body{padding:1.15rem 1.25rem 1.35rem;display:flex;flex-direction:column;flex:1}
.card__cat{
  font-family:var(--fh);font-weight:700;font-size:.66rem;letter-spacing:.18em;text-transform:uppercase;
  color:var(--rust);margin:0 0 .5rem
}
.card__title{font-family:var(--fh);font-weight:700;font-size:1.22rem;line-height:1.25;margin:0 0 .55rem}
.card__title a{color:var(--ink)}
.card__title a:hover{color:var(--gold-hi)}
.card__x{color:var(--muted);font-size:.93rem;margin:0 0 1rem;flex:1}
.card__meta{font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--dim);margin:0}

/* ==========================================================================
   Single post / page
   ========================================================================== */
.post{padding:2.4rem 0 1rem}
.post__eyebrow{
  font-family:var(--fh);font-weight:700;font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;
  color:var(--rust);margin:0 0 .8rem;text-align:center
}
.post__title{
  font-family:var(--fh);font-weight:700;font-size:clamp(1.9rem,4.4vw,2.9rem);line-height:1.15;
  margin:0 0 .8rem;text-align:center;
  background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent
}
.post__meta{text-align:center;color:var(--dim);font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;margin:0 0 2rem}
.post__meta a{color:var(--muted)}
.post__hero{border-radius:14px;overflow:hidden;border:1px solid var(--line);margin:0 0 2.2rem;box-shadow:0 16px 40px rgba(0,0,0,.45)}

.entry{font-size:1.06rem;line-height:1.8;color:var(--ink)}
.entry > * + *{margin-top:1.25rem}
.entry p{margin:0}
.entry h2{font-family:var(--fh);font-weight:700;font-size:1.7rem;color:var(--gold-hi);margin:2.4rem 0 0;line-height:1.25}
.entry h3{font-family:var(--fh);font-weight:700;font-size:1.32rem;color:var(--gold-hi);margin:2rem 0 0}
.entry h4{font-family:var(--fh);font-weight:700;font-size:1.1rem;color:var(--ink-dim);margin:1.7rem 0 0}
.entry a{text-decoration:underline;text-underline-offset:3px}
.entry ul,.entry ol{padding-left:1.4rem;margin:0}
.entry li + li{margin-top:.45rem}
.entry blockquote{
  margin:2rem 0;padding:.4rem 0 .4rem 1.4rem;border-left:3px solid var(--gold);
  color:var(--ink-dim);font-size:1.12rem;font-style:italic
}
.entry blockquote cite{display:block;margin-top:.6rem;font-size:.85rem;font-style:normal;color:var(--dim)}
.entry img,.entry figure img{border-radius:10px;border:1px solid var(--line2)}
.entry figure{margin:2rem 0}
.entry figcaption{color:var(--dim);font-size:.83rem;text-align:center;margin-top:.6rem}
.entry code{background:var(--ink-900);padding:.15rem .4rem;border-radius:4px;font-size:.9em;color:var(--brass-bright)}
.entry pre{background:var(--ink-900);padding:1rem 1.2rem;border-radius:9px;overflow:auto;border:1px solid var(--line2)}
.entry pre code{background:none;padding:0}
.entry hr{border:0;height:1px;background:linear-gradient(90deg,transparent,var(--line),transparent);margin:2.6rem 0}
.entry table{width:100%;border-collapse:collapse;font-size:.95rem}
.entry th,.entry td{border:1px solid var(--line2);padding:.55rem .7rem;text-align:left}
.entry th{background:var(--panel);font-family:var(--fh);color:var(--gold-hi)}

.tags{margin:2.6rem 0 0;display:flex;flex-wrap:wrap;gap:.5rem}
.tags a{
  font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);
  border:1px solid var(--line2);border-radius:999px;padding:.28rem .8rem
}
.tags a:hover{color:var(--gold);border-color:var(--line)}

.postnav{
  display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin:3rem 0 0;padding:1.8rem 0 0;
  border-top:1px solid var(--line2)
}
.postnav a{display:block;color:var(--muted)}
.postnav a:hover{color:var(--gold)}
.postnav__k{font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;color:var(--dim);margin:0 0 .3rem}
.postnav__t{font-family:var(--fh);font-size:1rem;line-height:1.35}
.postnav > :last-child{text-align:right}
@media(max-width:640px){.postnav{grid-template-columns:1fr}.postnav > :last-child{text-align:left}}

/* Back to the main site — the point of the whole theme */
.backbar{
  margin:3.4rem 0 0;padding:1.6rem 1.4rem;text-align:center;
  background:var(--panel);border:1px solid var(--line2);border-radius:12px
}
.backbar p{margin:0 0 1rem;color:var(--muted)}

/* ==========================================================================
   Pagination, search, comments
   ========================================================================== */
.pagination{display:flex;justify-content:center;gap:.5rem;flex-wrap:wrap;padding:1.6rem 0 3rem}
.pagination .page-numbers{
  display:inline-block;min-width:2.4rem;text-align:center;padding:.5rem .7rem;
  border:1px solid var(--line2);border-radius:6px;color:var(--muted);font-size:.85rem
}
.pagination .page-numbers:hover{color:var(--gold);border-color:var(--line)}
.pagination .page-numbers.current{background:var(--btn);color:#0b1420;border-color:transparent;font-weight:700}

.searchform{display:flex;gap:.6rem;max-width:520px;margin:0 auto}
.searchform input[type=search]{
  flex:1;padding:.65rem .9rem;border-radius:6px;border:1px solid var(--line2);
  background:var(--ink-900);color:var(--ink);font:inherit;font-size:.95rem
}
.searchform input[type=search]:focus{outline:none;border-color:var(--gold)}

.comments{margin:3.4rem 0 0;padding:2rem 0 0;border-top:1px solid var(--line2)}
.comments h2{font-family:var(--fh);color:var(--gold-hi);font-size:1.4rem;margin:0 0 1.4rem}
.commentlist{list-style:none;margin:0;padding:0}
.commentlist li{background:var(--panel);border:1px solid var(--line2);border-radius:10px;padding:1.1rem 1.2rem;margin:0 0 1rem}
.commentlist .children{list-style:none;margin:1rem 0 0 1.4rem;padding:0}
.comment-author{font-family:var(--fh);color:var(--gold-hi);font-size:.95rem}
.comment-meta{font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--dim);margin:.2rem 0 .8rem}
.comment-respond input[type=text],.comment-respond input[type=email],.comment-respond input[type=url],.comment-respond textarea{
  width:100%;padding:.6rem .8rem;border-radius:6px;border:1px solid var(--line2);
  background:var(--ink-900);color:var(--ink);font:inherit;margin-top:.3rem
}
.comment-respond label{display:block;margin-top:.9rem;font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.comment-respond .submit{
  margin-top:1.1rem;background:var(--btn);color:#0b1420;border:0;border-radius:4px;
  padding:.65rem 1.2rem;font:inherit;font-weight:700;letter-spacing:.1em;text-transform:uppercase;
  font-size:.78rem;cursor:pointer
}

.notice{
  background:var(--panel);border:1px solid var(--line2);border-radius:12px;
  padding:2.4rem 1.6rem;text-align:center;color:var(--muted);margin:2rem 0
}

/* ==========================================================================
   Footer
   ========================================================================== */
.foot{background:var(--ink-900);border-top:1px solid var(--line2);margin-top:4rem;padding:2.8rem 0 1.4rem}
.foot__grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:2rem}
@media(max-width:900px){.foot__grid{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.foot__grid{grid-template-columns:1fr}}
.foot__tag{color:var(--muted);font-size:.92rem;margin:.8rem 0 1.1rem;max-width:24rem}
.foot h4{font-family:var(--fh);font-weight:700;font-size:.82rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);margin:0 0 .9rem}
.foot__links a{display:block;color:var(--muted);font-size:.9rem;padding:.22rem 0}
.foot__links a:hover{color:var(--gold)}
.foot__logo{height:84px;width:auto}
.foot__legal{
  margin-top:2.4rem;padding-top:1.2rem;border-top:1px solid rgba(255,255,255,.06);
  color:var(--dim);font-size:.78rem;text-align:center
}

/* WordPress core classes that themes are required to style */
.alignleft{float:left;margin:.4rem 1.4rem 1rem 0}
.alignright{float:right;margin:.4rem 0 1rem 1.4rem}
.aligncenter{margin-left:auto;margin-right:auto}
.alignwide{max-width:1100px;margin-left:auto;margin-right:auto}
.alignfull{max-width:none}
.wp-caption{max-width:100%}
.wp-caption-text{color:var(--dim);font-size:.83rem;text-align:center;margin-top:.5rem}
.sticky .card{border-color:var(--line)}
.bypostauthor{}
