/* Desktop styles for Vector Gate Publishing
   Same structure as mobile.css, with desktop-tuned values */

/* ---------- Brand variables (desktop-tuned) ---------- */
:root{
  --header-height: 90px;        /* slightly taller header on desktop */
  --logo-extra: 40px;           /* a bit less extra height */
  --gutter: 6vw;                /* wider gutters on large screens */

  --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 var(--gutter);
  display:flex;
  align-items:center;
  justify-content:flex-start;
  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: var(--gutter);
  top: 10px;
  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.75rem;
  padding-left: calc(var(--header-height) + var(--logo-extra) + 2rem);
  height: calc(var(--header-height) + var(--logo-extra));
}
.nav-inner { display:flex; gap:0.75rem; align-items:center; }
.nav-inner a { color:var(--vg-corelight); padding:0.55rem 0.9rem; border-radius:8px; font-weight:600; font-size:1rem; }
.nav-inner a:hover { color:var(--vg-plasma); background: rgba(183,220,235,0.04); }

/* Mobile nav toggle (hidden on desktop but kept for structure parity) */
.nav-toggle {
  display:none;
  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 (kept for parity) */
@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 (desktop-tuned) ---------- */
.top-banner {
  position:relative;
  padding: calc(var(--header-height) + 2rem) var(--gutter) 3.5rem var(--gutter);
  background: var(--vg-deepspace);
  color: var(--vg-white);
  overflow:hidden;
  display:flex;
  align-items:center;
}
.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:1.25rem; align-items:flex-start; max-width: 800px; }
.hero-tagline { color:var(--vg-plasma); font-weight:700; font-size:0.95rem; letter-spacing:0.08em; }
.hero-line-2 { font-size:48px; line-height:1.05; margin:0; color:var(--vg-white); font-weight:800; }
.hero-line-1 { font-size:20px; color:var(--vg-corelight); margin-top:0.35rem; }
.hero-paragraph { color: #dbe8f2; font-size:1.05rem; margin-top:0.6rem; max-width:60ch; }

/* Two-column hero layout (desktop only) */
@media (min-width: 901px) {
  .hero-grid {
    display: grid;
    grid-template-columns: 1fr 360px;
    gap: 3rem;
    align-items: start;
    position: relative;
    z-index: 2;
  }

  .hero-taglines {
    color: var(--vg-corelight);
    font-size: 1.05rem;
    line-height: 1.45;
    opacity: 0.9;
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
    padding-top: 0.5rem;
  }

  .hero-taglines p {
    margin: 0;
    font-style: italic;
  }
}


/* CTAs */
.hero-ctas { display:flex; gap:0.8rem; margin-top:1rem; flex-wrap:wrap; }
.btn { display:inline-flex; align-items:center; justify-content:center; gap:0.5rem; padding:0.75rem 1.2rem; border-radius:10px; font-weight:700; font-size:1rem; 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 (can sit beside hero on wider screens if desired later) */
.hero-right { width:100%; margin-top:1rem; max-width: 360px; }
.book-card {
  background: linear-gradient(180deg, rgba(255,255,255,0.02), rgba(255,255,255,0.01));
  border-radius:12px;
  padding:1rem;
  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.85rem; }
.rocket-title { font-weight:800; font-size:1.1rem; margin-top:0.25rem; }
.rocket-copy { color:#dbe8f2; font-size:0.98rem; margin-top:0.5rem; }

/* ---------- Sections (desktop spacing) ---------- */
.section { padding:2.5rem var(--gutter); background:transparent; }

#author.section {
  padding-top: 0.0rem; /* or 0 for a flush transition */
}
#SeriesInfo.section {
  padding-left: 0;
  padding-right: 0;
}
.section-heading { font-size:1.75rem; margin:0 0 0.75rem 0; color:var(--vg-deepspace); font-weight:800; }
.section-sub { color:var(--vg-steel); margin-bottom:1rem; }


/* Featured book card (structure parity) */

/* Carousel base (desktop) */
.carousel { margin-top: 1.75rem; 
	padding: 0;
	}
.carousel-viewport { 
display: flex;
  overflow-x: hidden;   /* <-- REQUIRED */
  overflow-y: hidden;
  scroll-behavior: smooth;
  gap: 0;
  padding: 0;
  margin: 0;
  scroll-snap-type: x mandatory;
	}
.carousel-slide {
  min-width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  padding: 0; /* no padding here */
  margin: 0;
  scroll-snap-align: start;

}
.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);
	 }
	 

/* Inner slide: desktop layout happens here */
@media (min-width: 901px) {
  .carousel-slide-inner {
    display: grid;
    grid-template-columns: 280px 1fr;
    column-gap: 2rem;
    align-items: start;
    width: 100%;
    box-sizing: border-box;
    padding-right: 2rem;
  }

  .book-feature-cover {
    width: 100%;
    max-width: 280px;
  }
}



/* Controls */
.carousel-controls { display:flex; align-items:center; gap:0.8rem; margin-top:0.8rem; }
.carousel-prev, .carousel-next { font-size:1.25rem; padding:0.5rem 0.8rem; border-radius:8px; background:transparent; color:var(--vg-deepspace); border:1px solid rgba(255,255,255,0.04); }
.carousel-indicators { display:flex; gap:0.5rem; color:var(--vg-deepspace);}
.carousel-indicators button {
  width:44px; height:44px; border-radius:8px; background:transparent; border:1px solid rgba(255,255,255,0.04);  color:var(--vg-deepspace); 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.10);
  padding: 2rem var(--gutter); /* this is needed to keep the background color */
  border-radius: 12px;
  margin-top: 2rem;
  margin-bottom: 0.05rem;
  color:var(--vg-deepspace);
  max-width: 100%;
}

.books-grid { display:flex; flex-direction:column; gap:1.25rem; }
.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.1rem; }
.book-meta { list-style:none; padding:0; margin:0.5rem 0; color:var(--vg-steel); }

/* Timeline pills */
.timeline { display:flex; gap:0.6rem; margin-top:1rem; flex-wrap:wrap; }
.pill { background: rgba(183,220,235,0.06); color:var(--vg-plasma); padding:0.5rem 0.9rem; border-radius:999px; font-weight:700; font-size:0.9rem; }

/* Features grid (desktop) */
.features-grid { display:flex; flex-direction:column; gap:1rem; }
.service { background: #fff; border-radius:10px; padding:1rem; box-shadow: 0 8px 20px rgba(2,15,43,0.04); }
.service .label { font-size:0.8rem; color:var(--vg-plasma); font-weight:700; }

.SeriesInfo-section {
  margin-top: 0; /*1.5rem;*/
  margin-bottom: 0; /*1.5rem;*/
}

/* Author spotlight */
/* AUTHOR SECTION PANEL */
.author-section {
  background: #F7F7F5; /* VGP Off-White */
  padding: 1.5rem var(--gutter);
  border-radius: 12px;
  margin-top: 0; /*1.5rem;*/
  margin-bottom: 0; /*1.5rem;*/
}
/* Ensure text stays readable on the off-white */
.author-section p,
.author-section h2 {
  color: #020F2B; /* Deep Space */
}
.author-grid { display:grid; grid-template-columns: 160px 1fr; gap:1.75rem; align-items:flex-start; }
.author-photo img { width:140px; height:140px; border-radius:8px; object-fit:cover; }

/* Catalog / services grid (stacked) */
.services-grid { display:flex; flex-direction:column; gap:0.9rem; }

/* ---------- Newsletter form (desktop-friendly) ---------- */
.contact { background: linear-gradient(180deg, var(--vg-deepspace), rgba(34,44,52,0.95)); color:var(--vg-white); padding:2.5rem var(--gutter); border-top:1px solid rgba(255,255,255,0.03); }
.newsletter-form { display:flex; flex-direction:column; gap:0.75rem; max-width:720px; }
.newsletter-form input[type="email"], .newsletter-form input[type="text"] {
  padding:1rem 1.2rem; 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.6rem; flex-wrap:wrap; }
.consent { color:var(--vg-corelight); font-size:0.95rem; }

/* Form message */
.form-message { margin-top:0.5rem; font-weight:700; }

/* ---------- Footer ---------- */
footer { padding:1.5rem var(--gutter); background:var(--vg-deepspace); color:var(--vg-corelight); }
.footer-row { display:flex; justify-content:space-between; gap:1.25rem; 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 (desktop down to ~1024) ---------- */
@media (min-width: 520px) {
  .hero-line-2 { font-size:40px; }
  .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 var(--gutter); }
}
