/* Mobile-first styles for Vector Gate Publishing
   Place this in styles.css (same folder as index.html and assets) */

/* ---------- Brand variables ---------- */
:root{
  --header-height: 75px;        /* base header / logo unit on mobile */
  --logo-extra: 50px;          /* extra square size (adjust if needed) */
  --gutter: 5vw;

  --vg-white: #FFFFFF;
  --vg-steel: #C6D0D6;
  --vg-deepspace: #222C34;
  --vg-plasma: #B7DCEB;
  --vg-corelight: #E6F5FC;

  --font-sans: "Inter", "Segoe UI", system-ui, -apple-system, "Helvetica Neue", Arial, sans-serif;
}

/* ---------- Global reset / base ---------- */
* { box-sizing: border-box; -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale; }
html,body { height:100%; margin:0; font-family:var(--font-sans); background:var(--vg-white); color:var(--vg-deepspace); }
a { color:inherit; text-decoration:none; }
img { max-width:100%; height:auto; display:block; }

/* ---------- Header / logo ---------- */
.header-wrap {
  position: relative;
  height: calc(var(--header-height) + var(--logo-extra));
  padding: 0 4vw;
  display:flex;
  align-items:center;
  justify-content:flex-end;
  background: linear-gradient(180deg, var(--vg-deepspace) 0%, rgba(34,44,52,0.96) 100%);
  color: var(--vg-white);
  z-index:30;
}

/* more specific selector to avoid conflicts */
.header-wrap .vgp-logo-block {
  position: absolute;
  left: calc(var(--gutter));
  top: 6px;
  width: calc(var(--header-height) + var(--logo-extra));
  height: calc(var(--header-height) + var(--logo-extra));
  background: var(--vg-white);
  border: 4px solid var(--vg-white);
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:8px;
  overflow:hidden;
  box-shadow: 0 8px 24px rgba(2,15,43,0.12);
  z-index:40;
}
.header-wrap .vgp-logo-block img { width:92%; height:auto; object-fit:contain; display:block; }

/* Primary nav (right side) */
.primary-nav {
  display:flex;
  align-items:center;
  gap:0.5rem;
  padding-left: calc(var(--header-height) + var(--logo-extra) + 0.75rem);
  height: calc(var(--header-height) + var(--logo-extra));
}
.nav-inner { display:flex; gap:0.5rem; align-items:center; }
.nav-inner a { color:var(--vg-corelight); padding:0.45rem 0.6rem; border-radius:8px; font-weight:600; font-size:0.95rem; }
.nav-inner a:hover { color:var(--vg-plasma); background: rgba(183,220,235,0.04); }

/* Mobile nav toggle */
.nav-toggle {
  display:block;
  background:transparent;
  border:0;
  color:var(--vg-corelight);
  font-size:1.25rem;
  padding:0.5rem;
  margin-left:0.5rem;
}

/* Hide nav inner by default on very small screens (toggle will show) */
@media (max-width:520px) {
  .nav-inner { display:none; flex-direction:column; background:rgba(34,44,52,0.98); position:absolute; right:0; top:calc(var(--header-height) + var(--logo-extra)); padding:0.5rem; border-radius:8px; }
}

/* ---------- Top banner / hero (mobile-first) ---------- */
.top-banner {
  position:relative;
  padding: 2rem 4vw 2.25rem 4vw;
  background: var(--vg-deepspace);
  color: var(--vg-white);
  overflow:hidden;
}
.top-banner .bg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  z-index: -1;
  pointer-events: none;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}

/* Hero content stack */
.hero-wrap { position:relative; z-index:2; display:flex; flex-direction:column; gap:1rem; align-items:flex-start; }
.hero-tagline { color:var(--vg-plasma); font-weight:700; font-size:0.85rem; letter-spacing:0.08em; }
.hero-line-2 { font-size:28px; line-height:1.02; margin:0; color:var(--vg-white); font-weight:800; }
.hero-line-1 { font-size:16px; color:var(--vg-corelight); margin-top:0.25rem; }
.hero-paragraph { color: #dbe8f2; font-size:0.98rem; margin-top:0.5rem; max-width:56ch; }

/* CTAs */
.hero-ctas { display:flex; gap:0.6rem; margin-top:0.75rem; flex-wrap:wrap; }
.btn { display:inline-flex; align-items:center; justify-content:center; gap:0.5rem; padding:0.6rem 0.9rem; border-radius:10px; font-weight:700; font-size:0.95rem; cursor:pointer; border:0; }
.btn-primary { background: linear-gradient(90deg, var(--vg-plasma), var(--vg-corelight)); color:var(--vg-deepspace); box-shadow: 0 8px 30px rgba(183,220,235,0.12); }
.btn-ghost { background: transparent; color: var(--vg-corelight); border: 1px solid rgba(255,255,255,0.06); }

/* Right book card (stacked under hero on mobile) */
.hero-right { width:100%; margin-top:0.75rem; }
.book-card {
  background: linear-gradient(180deg, rgba(255,255,255,0.02), rgba(255,255,255,0.01));
  border-radius:12px;
  padding:0.9rem;
  border: 1px solid rgba(183,220,235,0.04);
  box-shadow: 0 18px 40px rgba(2,15,43,0.12);
  color:var(--vg-white);
}
.book-cover { width:100%; border-radius:6px; margin-bottom:0.6rem; }
.rocket-eyebrow { color:var(--vg-plasma); font-weight:700; font-size:0.8rem; }
.rocket-title { font-weight:800; font-size:1.05rem; margin-top:0.25rem; }
.rocket-copy { color:#dbe8f2; font-size:0.95rem; margin-top:0.5rem; }

/* ---------- Sections (stacked) ---------- */
.section { padding:1.25rem 4vw; background:transparent; }
.section-heading { font-size:1.25rem; margin:0 0 0.5rem 0; color:var(--vg-deepspace); font-weight:800; }
.section-sub { color:var(--vg-steel); margin-bottom:0.75rem; }

/* Featured book card (single-column on mobile) */

/* Carousel base (mobile-first) */
.carousel { margin-top: 1rem; }
.carousel-viewport { 
display: flex;
  overflow-x: auto;   /* <-- REQUIRED */
  overflow-y: hidden;
  scroll-behavior: smooth;
  gap: 0;
  padding: 0;
  margin: 0;
  scroll-snap-type: x mandatory;
	}
.carousel-slide {
  min-width: 100%;
  display:flex;
  flex-direction:column;
  gap:0.75rem;
  align-items:flex-start;
  transition: transform .45s ease, opacity .35s ease;
  box-sizing:border-box;
  padding-bottom:0.5rem;
}
.carousel-slide[aria-hidden="true"] { opacity:0.0; pointer-events:none; transform: scale(0.995); }
.book-feature-cover { width:100%; border-radius:8px; box-shadow: 0 12px 30px rgba(2,15,43,0.08); }

/* Controls */
.carousel-controls { display:flex; align-items:center; gap:0.6rem; margin-top:0.6rem; }
.carousel-prev, .carousel-next { font-size:1.25rem; padding:0.45rem 0.7rem; border-radius:8px; background:transparent; color:var(--vg-corelight); border:1px solid rgba(255,255,255,0.04); }
.carousel-indicators { display:flex; gap:0.4rem; }
.carousel-indicators button {
  width:36px; height:36px; border-radius:8px; background:transparent; border:1px solid rgba(255,255,255,0.04); color:var(--vg-corelight); font-weight:700;
}
.carousel-indicators button[aria-selected="true"] { background: linear-gradient(90deg,var(--vg-plasma),var(--vg-corelight)); color:var(--vg-deepspace); border-color:transparent; }

/* Series description */
.series-description {
	background: rgba(183, 220, 235, 0.08); /* subtle VGP Core Light tint */
    padding: 1.25rem;
    border-radius: 10px;
    margin-top: 1.5rem;
    margin-bottom: 2rem;
	color:var(--vg-deepspace); }

/* Desktop: show two-column layout for carousel slide content */
@media (min-width: 901px) {
  .carousel-viewport { gap:2rem; }
  .carousel-slide { min-width: 420px; display:grid; grid-template-columns: 360px 1fr; align-items:start; gap:1rem; }
  .book-feature-cover { width:100%; height:auto; }
  .carousel-indicators button { width:44px; height:44px; }
}


.books-grid { display:flex; flex-direction:column; gap:1rem; }
.book-feature { display:flex; flex-direction:column; gap:0.75rem; }
.book-feature-cover { width:100%; border-radius:8px; box-shadow: 0 12px 30px rgba(2,15,43,0.08); }
.book-feature-copy h3 { margin:0.25rem 0; font-size:1.05rem; }
.book-meta { list-style:none; padding:0; margin:0.5rem 0; color:var(--vg-steel); }

/* Timeline pills */
.timeline { display:flex; gap:0.5rem; margin-top:1rem; flex-wrap:wrap; }
.pill { background: rgba(183,220,235,0.06); color:var(--vg-plasma); padding:0.45rem 0.8rem; border-radius:999px; font-weight:700; font-size:0.85rem; }

/* Features grid (stacked on mobile) */
.features-grid { display:flex; flex-direction:column; gap:0.9rem; }
.service { background: #fff; border-radius:10px; padding:0.9rem; box-shadow: 0 8px 20px rgba(2,15,43,0.04); }
.service .label { font-size:0.75rem; color:var(--vg-plasma); font-weight:700; }

/* Author spotlight */
/* AUTHOR SECTION PANEL */
.author-section {
  background: #F7F7F5; /* VGP Off-White */
  padding: 2rem 1.25rem;
  border-radius: 10px;
  margin-top: 2rem;
  margin-bottom: 2rem;
}
/* Ensure text stays readable on the off-white */
.author-section p,
.author-section h2 {
  color: #020F2B; /* Deep Space */
}
.author-grid { display:flex; flex-direction:column; gap:0.75rem; }
.author-photo img { width:120px; height:120px; border-radius:8px; object-fit:cover; }

/* Catalog / services grid (stacked) */
.services-grid { display:flex; flex-direction:column; gap:0.75rem; }

/* ---------- Newsletter form (mobile-friendly) ---------- */
.contact { background: linear-gradient(180deg, var(--vg-deepspace), rgba(34,44,52,0.95)); color:var(--vg-white); padding:1.25rem 4vw; border-top:1px solid rgba(255,255,255,0.03); }
.newsletter-form { display:flex; flex-direction:column; gap:0.6rem; max-width:720px; }
.newsletter-form input[type="email"], .newsletter-form input[type="text"] {
  padding:0.85rem 1rem; border-radius:10px; border:1px solid rgba(255,255,255,0.06); background: rgba(255,255,255,0.02); color:var(--vg-white);
}
.form-row { display:flex; gap:0.5rem; flex-wrap:wrap; }
.consent { color:var(--vg-corelight); font-size:0.9rem; }

/* Form message */
.form-message { margin-top:0.5rem; font-weight:700; }

/* ---------- Footer ---------- */
footer { padding:1rem 4vw; background:var(--vg-deepspace); color:var(--vg-corelight); }
.footer-row { display:flex; justify-content:space-between; gap:1rem; align-items:center; }

/* ---------- Utility / accessibility ---------- */
a:focus, button:focus, input:focus { outline: 3px solid rgba(183,220,235,0.14); outline-offset:2px; }
.sr-only { position:absolute; left:-9999px; top:auto; width:1px; height:1px; overflow:hidden; }

/* ---------- Responsive breakpoints (mobile -> tablet) ---------- */
@media (min-width: 520px) {
  .hero-line-2 { font-size:34px; }
  .hero-line-1 { font-size:18px; }
  .nav-inner { display:flex !important; flex-direction:row; background:transparent; position:static; padding:0; }
  .nav-toggle { display:none; }
  .header-wrap { padding: 0 6vw; }
}

/* Larger tablet breakpoint handled by desktop.css (loaded after this file) */
