/* Redwoods Games — v4. Matches the Redwoods Media palette and type system.
   Scoped to /redwoodsgames/; the main /style.css remains unchanged. */
:root {
  color-scheme: light;
  --bg: #F4F1EA;
  --paper: #EFECE4;
  --text: #2C2A26;
  --muted: #625D56;
  --line: #D8D1C5;
  --accent: #7A3E26;
  --accent-dark: #5A2E1C;
  --gold: #B38B59;
  --font-body: 'Urbanist', sans-serif;
  --font-heading: 'EB Garamond', serif;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 95px; }
body { margin: 0; background: var(--bg); color: var(--text); font: 400 15px/1.62 var(--font-body); overflow-x: hidden; }
img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
a:focus-visible { outline: 2px solid var(--accent); outline-offset: 4px; }
h1,h2,h3,p { margin-top: 0; }
h1,h2,h3 { font-family: var(--font-heading); font-weight: 400; line-height: 1.12; letter-spacing: 0; text-transform: none; }
h1 { font-size: clamp(2.25rem,3.8vw,3.45rem); }
h2 { font-size: clamp(1.9rem,2.8vw,2.7rem); margin-bottom: .65rem; }
h3 { font-size: clamp(1.45rem,1.8vw,1.85rem); margin-bottom: .25rem; }
.shell { width: min(1140px,calc(100% - 3rem)); margin-inline: auto; }
.skip-link { position:absolute; top:-100px; left:1rem; padding:.6rem 1rem; background:var(--paper); z-index:300; }
.skip-link:focus { top:1rem; }

/* Same warm, pale header family as the Redwoods Media homepage. */
.rg-header {
  position:sticky; top:0; z-index:100; display:flex; align-items:center;
  gap:1.4rem; min-height:66px; padding:.45rem max(1.5rem,calc((100vw - 1140px)/2));
  background:linear-gradient(180deg,#FBEDE3 0%,#F6E3D4 48%,#EBCFBC 100%);
  border-bottom:1px solid rgba(122,62,38,.34); box-shadow:0 3px 12px rgba(46,24,16,.09);
}
.rg-header__identity { display:flex; align-items:center; gap:.7rem; flex-shrink:0; font-weight:600; font-size:1.05rem; letter-spacing:.035em; line-height:1.2; }
.rg-header__identity img { width:46px; height:46px; object-fit:contain; }
.rg-header__identity strong { font-weight:600; color:var(--accent); }
.rg-header__nav { display:flex; flex:1; justify-content:center; align-items:center; flex-wrap:wrap; gap:.5rem 1.1rem; }
.rg-header__nav a,.rg-header__parent { font-size:.74rem; font-weight:500; letter-spacing:.04em; text-transform:uppercase; white-space:nowrap; }
.rg-header__nav a:hover,.rg-header__parent:hover,.rg-footer a:hover { color:var(--accent); }
.rg-header__parent { padding-left:1rem; border-left:1px solid rgba(122,62,38,.28); color:var(--accent); }
.eyebrow { font-size:.7rem; font-weight:600; letter-spacing:.12em; color:var(--accent); text-transform:uppercase; margin-bottom:.7rem; }

/* Single supplied Redwoods Games / stormlit valley banner at the top.
   Wide on desktop, slightly shorter on mobile. Use the provided artwork unaltered. */
.rg-top-banner { margin:0; width:100%; overflow:hidden; background:#111; }
.rg-top-banner img { width:100%; height:clamp(225px,28vw,500px); object-fit:cover; object-position:center 44%; }

/* Compact introduction follows the banner; no duplicate giant brand mark. */
.rg-hero { padding:1.85rem 0 1.5rem; background:transparent; }
.rg-hero__copy { text-align:center; max-width:730px; margin:auto; }
.rg-hero__brand { width:clamp(130px,18vw,195px); height:auto; margin:.2rem auto .5rem; object-fit:contain; }
.rg-hero h1 { margin:0 0 .7rem; }
.rg-hero h1 em { color:var(--accent); font-style:italic; }
.lead { font-size:1rem; line-height:1.65; max-width:650px; margin:0 auto 1.35rem; color:var(--muted); }
.button { display:inline-flex; align-items:center; justify-content:center; gap:.9rem; min-height:39px; padding:.62rem 1rem; border:1px solid var(--accent); font-size:.75rem; font-family:var(--font-body); font-weight:600; letter-spacing:.04em; line-height:1.25; text-transform:uppercase; transition:background .18s,color .18s; }
.button--primary { background:var(--accent); color:white; }
.button--primary:hover { background:var(--accent-dark); }
.button--outline { background:transparent; color:var(--accent); }
.button--outline:hover { background:var(--accent); color:white; }
.rg-hero__ornament { display:flex; justify-content:space-between; gap:1rem; border-top:1px solid var(--line); padding-top:.55rem; margin-top:2rem; color:var(--muted); font-size:.64rem; letter-spacing:.08em; }

/* Every main section uses the same ivory background as Redwoods Media. */
.section { padding:3.1rem 0; border-top:1px solid var(--line); background:var(--bg); }
.section--about,.section--games,.section--cta { background:var(--bg); }
.two-column { display:grid; grid-template-columns:.95fr 1.35fr; gap:2.7rem; }
.body-copy p { font-size:.96rem; line-height:1.7; color:var(--muted); margin-bottom:.8rem; }
.section-header { margin-bottom:1.25rem; }
.section-header__sub { font-size:1rem; color:var(--muted); margin-bottom:0; }
.section-header--inline { display:flex; justify-content:space-between; align-items:end; gap:1.2rem; }
.text-link { font-size:.77rem; font-weight:600; letter-spacing:.025em; color:var(--accent); padding-bottom:.35rem; }
.text-link:hover { text-decoration:underline; }

/* Factory is directly on the page — no backing panel, inset card, or dark frame. */
.factory-panel { display:grid; grid-template-columns:minmax(0,1.18fr) minmax(0,.92fr); gap:2.2rem; align-items:center; background:none; border:0; box-shadow:none; padding:0; }
.factory-panel__image { min-width:0; padding:0; margin:0; background:transparent; border:0; }
.factory-panel__image img { display:block; width:100%; height:auto; max-height:355px; object-fit:contain; }
.image-note { display:none; }
.factory-panel__copy { min-width:0; padding:0; border:0; display:flex; flex-direction:column; gap:0; }
.factory-panel__copy>p { font-size:.96rem; line-height:1.7; color:var(--muted); margin-bottom:.7rem; }
.factory-launch { display:flex; flex-wrap:wrap; align-items:baseline; gap:.25rem .75rem; padding-top:.6rem; margin-top:.45rem; border-top:1px solid var(--line); }
.factory-launch__label { font-size:.77rem; font-weight:600; letter-spacing:.09em; color:var(--accent); }
.factory-launch__soon { font-family:var(--font-body); font-size:.97rem; font-weight:600; letter-spacing:.05em; color:var(--accent); }
.factory-launch__note { display:block; width:100%; color:var(--muted); font-size:.78rem; }
.factory-launch__clock:not([hidden]) { display:grid; width:min(320px,100%); grid-template-columns:repeat(4,1fr); gap:.3rem; margin-top:.4rem; }
.factory-launch__clock span { font-family:var(--font-body); font-size:1.15rem; font-weight:600; color:var(--accent); text-align:center; }
.factory-launch__clock small { font-size:.62rem; text-align:center; color:var(--muted); grid-row:2; }
.factory-launch__clock [data-days] { grid-column:1; grid-row:1; }
.factory-launch__clock [data-hours] { grid-column:2; grid-row:1; }
.factory-launch__clock [data-minutes] { grid-column:3; grid-row:1; }
.factory-launch__clock [data-seconds] { grid-column:4; grid-row:1; }

/* Smaller gallery and tighter cards retain the four supplied games. */
.games-banner { display:block; width:min(790px,100%); height:auto; max-height:370px; object-fit:contain; margin:0 auto 1.5rem; border:0; background:transparent; }
.game-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.2rem; }
.game-card { min-width:0; background:var(--paper); border:1px solid var(--line); display:flex; flex-direction:column; overflow:hidden; }
.game-card__visual { height:205px; background:#171717; overflow:hidden; }
.game-card__visual img { width:100%; height:100%; object-fit:cover; object-position:center; }
.game-card__content { display:flex; flex:1; flex-direction:column; padding:1rem 1.1rem 1.1rem; }
.game-card__heading { display:flex; gap:.8rem; align-items:center; margin-bottom:.65rem; }
.game-card__heading img { flex:none; width:56px; height:56px; object-fit:contain; background:#090909; border:0; border-radius:3px; }
.game-card__category { display:block; font-size:.69rem; color:var(--accent); font-weight:600; text-transform:uppercase; letter-spacing:.05em; }
.game-card__content>p { color:var(--muted); line-height:1.55; font-size:.92rem; margin-bottom:.85rem; flex-grow:1; }
.game-card__shots { height:116px; overflow:hidden; background:#121212; margin-bottom:.85rem; }
.game-card__shots img { width:100%; height:100%; object-fit:cover; }
.game-card .button { align-self:flex-start; }
.store-note { margin:1rem 0 0; font-size:.76rem; color:var(--muted); }
.upcoming-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.2rem; }
.upcoming-card { display:flex; align-items:center; gap:1.1rem; padding:.9rem 1.1rem; border:1px solid var(--line); background:var(--paper); }
.upcoming-card img { width:115px; height:115px; flex:none; object-fit:contain; }
.upcoming-card h3 { margin:0 0 .15rem; }
.upcoming-card p { color:var(--muted); margin:0 0 .55rem; font-size:.92rem; }
.upcoming-card span { font-size:.68rem; letter-spacing:.07em; color:var(--accent); font-weight:600; }
.section--cta { text-align:center; }
.cta-inner { max-width:720px; }
.section--cta h2 { max-width:700px; margin:0 auto .8rem; }
.section--cta .shell>p:not(.eyebrow) { max-width:620px; margin:0 auto 1.3rem; color:var(--muted); font-size:.98rem; }

.rg-footer { padding:1.45rem 0; background:var(--paper); border-top:1px solid var(--line); }
.rg-footer__inner { display:flex; align-items:center; justify-content:space-between; gap:.75rem 1rem; flex-wrap:wrap; }
.rg-footer__brand { display:flex; align-items:center; gap:.55rem; font-size:.89rem; font-weight:600; letter-spacing:.035em; }
.rg-footer__brand img { width:33px; height:33px; object-fit:contain; }
.rg-footer__links { display:flex; gap:1.1rem; font-size:.78rem; }
.rg-footer small { width:100%; text-align:center; color:var(--muted); font-size:.72rem; }

@media(max-width:1100px) {
  .rg-header { flex-wrap:wrap; justify-content:space-between; padding:.4rem 1.25rem; }
  .rg-header__nav { order:3; flex-basis:100%; gap:.4rem 1.3rem; padding:.15rem 0; }
  .factory-panel { grid-template-columns:1fr 1fr; gap:1.4rem; }
}
@media(max-width:760px) {
  html { scroll-padding-top:140px; }
  .shell { width:calc(100% - 2rem); }
  .rg-header__identity { font-size:.95rem; }
  .rg-header__identity img { width:38px; height:38px; }
  .rg-header__parent { padding-left:.6rem; font-size:.67rem; }
  .rg-header__nav { gap:.3rem .85rem; }
  .rg-header__nav a { font-size:.69rem; }
  .rg-top-banner img { height:clamp(195px,45vw,300px); object-position:center 44%; }
  .rg-hero { padding:1.5rem 0 1.1rem; }
  .rg-hero__brand { width:145px; }
  .rg-hero h1 { font-size:clamp(2.05rem,8vw,2.7rem); }
  .section { padding:2.3rem 0; }
  .two-column,.factory-panel,.game-grid,.upcoming-grid { grid-template-columns:1fr; }
  .two-column { gap:.5rem; }
  .section-header--inline { align-items:flex-start; flex-direction:column; gap:.5rem; }
  .factory-panel__image img { max-height:none; width:min(100%,620px); }
  .game-card__visual { height:clamp(175px,44vw,255px); }
  .game-card__shots { height:100px; }
  .upcoming-card img { width:100px; height:100px; }
  .rg-footer__inner { justify-content:center; }
}
@media(max-width:400px) {
  .rg-header__parent { font-size:.61rem; }
  .rg-header__identity { font-size:.83rem; }
  .rg-header__nav { gap:.25rem .6rem; }
  .rg-header__nav a { font-size:.64rem; }
  .upcoming-card img { width:83px; height:83px; }
  .game-card__content { padding:.85rem; }
}
@media(prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  *,*::before,*::after { transition:none!important; animation:none!important; }
}
