/*
Theme Name: Ghost Coast Video
Theme URI: https://ghostcoast.video
Description: GeneratePress child theme — GCV dark VHS aesthetic
Author: Ghost Coast Video
Author URI: https://ghostcoast.video
Template: generatepress
Version: 1.0.0
*/

/* ========================================
   DESIGN TOKENS
   ======================================== */
:root {
  --gcv-black: #1A1A1A;
  --gcv-cream: #F3F3E9;
  --gcv-red: #E61D5F;
  --gcv-orange: #FF6D00;
  --gcv-yellow: #FFC800;
  --gcv-purple: #5E2D5E;
  --gcv-purple-light: #7a3d7a;
  --gcv-muted: #a0a090;
  --gcv-border: #5E2D5E;
  --gcv-surface: #222222;
  --gcv-surface-alt: #2a2a2a;
}

/* ========================================
   BASE / RESET
   ======================================== */
body {
  background-color: var(--gcv-black) !important;
  color: var(--gcv-cream) !important;
  font-family: 'Inter', -apple-system, sans-serif !important;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

a {
  color: var(--gcv-red);
  transition: color 0.2s;
}

a:hover {
  color: var(--gcv-yellow);
}

::selection {
  background: var(--gcv-red);
  color: var(--gcv-cream);
}

/* ========================================
   GP CONTAINER OVERRIDES
   ======================================== */
.site-content {
  background-color: var(--gcv-black);
}

.inside-article {
  background-color: var(--gcv-black) !important;
  border: none !important;
  padding: 40px 0 !important;
}

.separate-containers .inside-article {
  background-color: var(--gcv-black) !important;
  border: none !important;
  box-shadow: none !important;
}

.separate-containers .site-main > *,
.separate-containers .widget-area .widget {
  background-color: var(--gcv-black) !important;
  border: none;
  box-shadow: none;
}

/* ========================================
   HEADER / NAV
   ======================================== */
.site-header {
  background-color: rgba(26, 26, 26, 0.95) !important;
  border-bottom: 1px solid var(--gcv-border) !important;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}

.main-title a,
.site-title a {
  color: var(--gcv-cream) !important;
  font-family: 'Inter', sans-serif !important;
  font-weight: 900 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.1em !important;
  text-decoration: none !important;
}

.main-title a:hover,
.site-title a:hover {
  color: var(--gcv-red) !important;
}

.site-description {
  color: var(--gcv-muted) !important;
  font-family: 'Playfair Display', serif !important;
  font-style: italic !important;
}

/* Main navigation */
.main-navigation {
  background-color: transparent !important;
}

.main-navigation a {
  color: var(--gcv-cream) !important;
  font-family: 'JetBrains Mono', monospace !important;
  font-size: 0.8rem !important;
  text-transform: uppercase !important;
  letter-spacing: 0.15em !important;
  transition: color 0.2s !important;
}

.main-navigation a:hover,
.main-navigation .current-menu-item > a {
  color: var(--gcv-red) !important;
}

.main-navigation .current-menu-item > a {
  border-bottom: 2px solid var(--gcv-red);
}

/* Dropdown menus */
.main-navigation ul ul {
  background-color: var(--gcv-black) !important;
  border: 1px solid var(--gcv-border) !important;
  border-radius: 0 !important;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.5);
}

.main-navigation ul ul a {
  font-size: 0.75rem !important;
  border-bottom: 1px solid rgba(94, 45, 94, 0.3) !important;
}

/* Mobile menu */
.menu-toggle {
  color: var(--gcv-cream) !important;
}

.menu-toggle:hover {
  color: var(--gcv-red) !important;
}

/* ========================================
   TYPOGRAPHY
   ======================================== */
h1, h2, h3, h4, h5, h6 {
  color: var(--gcv-cream) !important;
  font-family: 'Inter', sans-serif !important;
  font-weight: 900 !important;
}

h1 {
  font-size: 2.5rem;
  text-transform: uppercase;
  letter-spacing: 0.02em;
}

h2 {
  font-size: 1.8rem;
  text-transform: uppercase;
  letter-spacing: 0.02em;
}

.entry-title,
.entry-title a {
  color: var(--gcv-cream) !important;
  text-decoration: none !important;
}

.entry-title a:hover {
  color: var(--gcv-red) !important;
}

.entry-meta,
.entry-meta a {
  color: var(--gcv-muted) !important;
  font-family: 'JetBrains Mono', monospace !important;
  font-size: 0.75rem !important;
  text-transform: uppercase !important;
  letter-spacing: 0.1em !important;
}

.entry-meta a:hover {
  color: var(--gcv-orange) !important;
}

.entry-content,
.entry-content p {
  color: var(--gcv-cream);
  line-height: 1.75;
}

blockquote {
  border-left: 4px solid var(--gcv-yellow) !important;
  background: var(--gcv-surface) !important;
  padding: 1.5rem !important;
  color: var(--gcv-cream) !important;
  font-family: 'Playfair Display', serif !important;
  font-style: italic !important;
  border-radius: 0 !important;
}

code, pre {
  font-family: 'JetBrains Mono', monospace !important;
  background: var(--gcv-surface) !important;
  color: var(--gcv-yellow) !important;
  border: 1px solid var(--gcv-border) !important;
  border-radius: 0 !important;
}

pre {
  padding: 1.5rem !important;
  overflow-x: auto;
}

/* ========================================
   BLOG ARCHIVE / POST CARDS
   ======================================== */
.generate-columns .inside-article {
  background: var(--gcv-surface) !important;
  border-left: 4px solid var(--gcv-red) !important;
  padding: 1.5rem !important;
  transition: transform 0.2s, border-color 0.2s;
}

.generate-columns .inside-article:hover {
  transform: translateY(-2px);
  border-left-color: var(--gcv-yellow) !important;
}

/* Post thumbnails */
.post-image img {
  border-radius: 0 !important;
  border: 1px solid var(--gcv-border);
}

/* Read more links */
.read-more,
a.read-more {
  color: var(--gcv-red) !important;
  font-family: 'JetBrains Mono', monospace !important;
  font-size: 0.8rem !important;
  text-transform: uppercase !important;
  letter-spacing: 0.1em !important;
  text-decoration: none !important;
  border-bottom: 1px solid transparent;
}

.read-more:hover,
a.read-more:hover {
  color: var(--gcv-yellow) !important;
  border-bottom-color: var(--gcv-yellow);
}

/* ========================================
   BUTTONS
   ======================================== */
button,
input[type="submit"],
.wp-block-button__link,
.button,
a.button {
  background-color: var(--gcv-red) !important;
  color: var(--gcv-cream) !important;
  border: 1px solid var(--gcv-red) !important;
  border-radius: 0 !important;
  font-family: 'JetBrains Mono', monospace !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.15em !important;
  padding: 0.75rem 2rem !important;
  transition: all 0.2s !important;
  cursor: pointer;
}

button:hover,
input[type="submit"]:hover,
.wp-block-button__link:hover,
.button:hover,
a.button:hover {
  background-color: transparent !important;
  color: var(--gcv-red) !important;
  border-color: var(--gcv-red) !important;
}

/* ========================================
   FORMS / INPUTS
   ======================================== */
input[type="text"],
input[type="email"],
input[type="url"],
input[type="password"],
input[type="search"],
input[type="number"],
input[type="tel"],
textarea,
select {
  background-color: var(--gcv-surface) !important;
  color: var(--gcv-cream) !important;
  border: 1px solid var(--gcv-border) !important;
  border-radius: 0 !important;
  font-family: 'Inter', sans-serif !important;
  padding: 0.75rem 1rem !important;
  transition: border-color 0.2s;
}

input:focus,
textarea:focus,
select:focus {
  border-color: var(--gcv-yellow) !important;
  outline: none !important;
  box-shadow: 0 0 0 1px var(--gcv-yellow) !important;
}

/* Search form */
.search-form input[type="search"] {
  background-color: var(--gcv-surface) !important;
  color: var(--gcv-cream) !important;
  border: 1px solid var(--gcv-border) !important;
}

/* ========================================
   SIDEBAR / WIDGETS
   ======================================== */
.widget-area {
  background-color: var(--gcv-black) !important;
}

.widget {
  background-color: var(--gcv-black) !important;
}

.widget-title {
  color: var(--gcv-cream) !important;
  font-family: 'JetBrains Mono', monospace !important;
  font-size: 0.85rem !important;
  text-transform: uppercase !important;
  letter-spacing: 0.15em !important;
  border-bottom: 2px solid var(--gcv-border) !important;
  padding-bottom: 0.75rem !important;
  margin-bottom: 1.25rem !important;
}

.widget ul li {
  border-bottom: 1px solid rgba(94, 45, 94, 0.2);
  padding: 0.5rem 0;
}

.widget ul li a {
  color: var(--gcv-muted) !important;
  text-decoration: none;
}

.widget ul li a:hover {
  color: var(--gcv-red) !important;
  padding-left: 4px;
}

/* ========================================
   FOOTER
   ======================================== */
.site-footer {
  background-color: var(--gcv-black) !important;
  border-top: 1px solid var(--gcv-border) !important;
  color: var(--gcv-muted) !important;
  font-family: 'JetBrains Mono', monospace !important;
  font-size: 0.75rem !important;
  text-transform: uppercase !important;
  letter-spacing: 0.1em !important;
}

.site-footer a {
  color: var(--gcv-muted) !important;
}

.site-footer a:hover {
  color: var(--gcv-orange) !important;
}

.site-info {
  color: var(--gcv-muted) !important;
}

/* ========================================
   PAGINATION
   ======================================== */
.nav-links a,
.page-numbers {
  color: var(--gcv-muted) !important;
  font-family: 'JetBrains Mono', monospace !important;
  border: 1px solid var(--gcv-border) !important;
  background: transparent !important;
  border-radius: 0 !important;
  padding: 0.5rem 1rem !important;
}

.nav-links a:hover,
.page-numbers:hover {
  color: var(--gcv-cream) !important;
  border-color: var(--gcv-red) !important;
  background: var(--gcv-surface) !important;
}

.page-numbers.current {
  background: var(--gcv-red) !important;
  color: var(--gcv-cream) !important;
  border-color: var(--gcv-red) !important;
}

/* ========================================
   COMMENTS
   ======================================== */
.comments-area {
  background-color: var(--gcv-black) !important;
}

.comment-body {
  border: 1px solid var(--gcv-border) !important;
  background: var(--gcv-surface) !important;
  padding: 1.5rem !important;
  border-radius: 0 !important;
}

.comment-author .fn {
  color: var(--gcv-cream) !important;
  font-weight: 700;
}

.comment-metadata a {
  color: var(--gcv-muted) !important;
  font-family: 'JetBrains Mono', monospace !important;
  font-size: 0.7rem !important;
}

/* ========================================
   UTILITY: VHS ACCENTS
   ======================================== */
.entry-content hr {
  border: none !important;
  height: 4px !important;
  background: linear-gradient(90deg, var(--gcv-yellow), var(--gcv-orange), var(--gcv-red), var(--gcv-purple)) !important;
  margin: 3rem 0 !important;
}

/* Category / tag pills */
.cat-links a,
.tags-links a {
  background: var(--gcv-surface) !important;
  color: var(--gcv-muted) !important;
  border: 1px solid var(--gcv-border) !important;
  border-radius: 0 !important;
  font-family: 'JetBrains Mono', monospace !important;
  font-size: 0.7rem !important;
  text-transform: uppercase !important;
  letter-spacing: 0.1em !important;
  padding: 0.25rem 0.75rem !important;
  text-decoration: none !important;
  display: inline-block;
  margin: 0.15rem;
}

.cat-links a:hover,
.tags-links a:hover {
  border-color: var(--gcv-red) !important;
  color: var(--gcv-red) !important;
}

/* ========================================
   BACK TO MAIN SITE LINK
   ======================================== */
.gcv-back-link {
  display: inline-block;
  font-family: 'JetBrains Mono', monospace;
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  color: var(--gcv-muted);
  text-decoration: none;
  padding: 0.5rem 0;
  transition: color 0.2s;
}

.gcv-back-link:hover {
  color: var(--gcv-yellow);
}

/* ========================================
   RESPONSIVE
   ======================================== */
@media (max-width: 768px) {
  h1 { font-size: 1.75rem; }
  h2 { font-size: 1.4rem; }

  .inside-article {
    padding: 20px 15px !important;
  }
}

/* ========================================
   FLUENT BOOKING — GCV DARK THEME
   ======================================== */

/* Override FluentBooking CSS variables to match GCV palette */
:root {
  --fcal_dark: var(--gcv-cream);
  --fcal_body_bg: var(--gcv-black);
  --fcal_cal_bg: var(--gcv-surface);
  --fcal_slot_border: var(--gcv-border);
  --fcal_primary_color: var(--gcv-red);
  --fcal_thBG: var(--gcv-surface-alt);
  --fcal_input_disable_bg: #2a2a2a;
}

/* Main booking wrapper */
.fluent_booking_app {
  background-color: var(--gcv-black) !important;
  color: var(--gcv-cream) !important;
}

/* Inner card */
.fcal_booking_inner {
  background: var(--gcv-surface) !important;
  border: 1px solid var(--gcv-border) !important;
  border-radius: 0 !important;
  box-shadow: 0 4px 30px rgba(0, 0, 0, 0.5) !important;
}

/* Loading skeleton */
.fcal_loading {
  background: var(--gcv-surface) !important;
  border: 1px solid var(--gcv-border) !important;
  border-radius: 0 !important;
}

/* Full-page calendar background */
.calendar_wrap {
  background: var(--gcv-black) !important;
}

/* Host/event info panel */
.fcal_left_side {
  background: var(--gcv-surface-alt) !important;
  border-right: 1px solid var(--gcv-border) !important;
}

.fcal_event_name,
.fcal_host_name,
.fcal_host_title {
  color: var(--gcv-cream) !important;
}

.fcal_event_name {
  font-family: 'Inter', sans-serif !important;
  font-weight: 900 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.05em !important;
}

.fcal_host_name {
  font-family: 'JetBrains Mono', monospace !important;
  font-size: 0.8rem !important;
  text-transform: uppercase !important;
  letter-spacing: 0.12em !important;
  color: var(--gcv-muted) !important;
}

.fcal_event_meta_item,
.fcal_event_meta svg {
  color: var(--gcv-muted) !important;
  stroke: var(--gcv-muted) !important;
}

/* Calendar grid */
.fcal_calendar_header {
  color: var(--gcv-cream) !important;
  font-family: 'JetBrains Mono', monospace !important;
  text-transform: uppercase !important;
  letter-spacing: 0.1em !important;
  font-size: 0.75rem !important;
}

.fcal_cal_day {
  color: var(--gcv-cream) !important;
  border-radius: 0 !important;
}

.fcal_cal_day:hover:not(.fcal_day_disabled):not(.fcal_day_selected) {
  background: var(--gcv-surface-alt) !important;
  border-color: var(--gcv-red) !important;
}

.fcal_cal_day.fcal_day_selected,
.fcal_cal_day.fcal_day_selected:hover {
  background: var(--gcv-red) !important;
  color: var(--gcv-cream) !important;
  border-radius: 0 !important;
}

.fcal_day_disabled {
  color: #444 !important;
}

.fcal_cal_day.fcal_day_today:not(.fcal_day_selected) {
  border-color: var(--gcv-yellow) !important;
  color: var(--gcv-yellow) !important;
}

/* Month nav arrows */
.fcal_month_prev,
.fcal_month_next {
  color: var(--gcv-cream) !important;
  background: transparent !important;
  border: 1px solid var(--gcv-border) !important;
  border-radius: 0 !important;
  transition: border-color 0.2s !important;
}

.fcal_month_prev:hover,
.fcal_month_next:hover {
  border-color: var(--gcv-red) !important;
}

/* Time slots */
.fcal_time_slot {
  background: transparent !important;
  border: 1px solid var(--gcv-border) !important;
  border-radius: 0 !important;
  color: var(--gcv-cream) !important;
  font-family: 'JetBrains Mono', monospace !important;
  font-size: 0.8rem !important;
  letter-spacing: 0.05em !important;
  transition: all 0.15s !important;
}

.fcal_time_slot:hover {
  border-color: var(--gcv-red) !important;
  background: rgba(230, 29, 95, 0.1) !important;
  color: var(--gcv-red) !important;
}

.fcal_time_slot.fcal_slot_selected,
.fcal_time_slot.fcal_slot_selected:hover {
  background: var(--gcv-red) !important;
  border-color: var(--gcv-red) !important;
  color: var(--gcv-cream) !important;
}

/* Confirm time button */
.fcal_slot_confirm_btn {
  background: var(--gcv-orange) !important;
  border: 1px solid var(--gcv-orange) !important;
  border-radius: 0 !important;
  color: var(--gcv-cream) !important;
  font-family: 'JetBrains Mono', monospace !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.12em !important;
  font-size: 0.75rem !important;
  transition: all 0.2s !important;
}

.fcal_slot_confirm_btn:hover {
  background: transparent !important;
  color: var(--gcv-orange) !important;
}

/* Booking form */
.fcal_form_wrap,
.fcal_form_section {
  background: var(--gcv-surface) !important;
}

.fcal_form_label {
  color: var(--gcv-cream) !important;
  font-family: 'JetBrains Mono', monospace !important;
  font-size: 0.75rem !important;
  text-transform: uppercase !important;
  letter-spacing: 0.1em !important;
}

.fcal_form_item .fcal_input,
.fcal_form_item textarea,
.fcal_form_item select {
  background: var(--gcv-black) !important;
  border: 1px solid var(--gcv-border) !important;
  border-radius: 0 !important;
  color: var(--gcv-cream) !important;
  font-family: 'Inter', sans-serif !important;
}

.fcal_form_item .fcal_input:focus,
.fcal_form_item textarea:focus,
.fcal_form_item select:focus {
  border-color: var(--gcv-yellow) !important;
  box-shadow: 0 0 0 1px var(--gcv-yellow) !important;
  outline: none !important;
}

/* Submit button */
.fcal_btn_submit,
.fcal_form_section .fcal_btn_submit {
  background: var(--gcv-red) !important;
  border: 1px solid var(--gcv-red) !important;
  border-radius: 0 !important;
  color: var(--gcv-cream) !important;
  font-family: 'JetBrains Mono', monospace !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.15em !important;
  transition: all 0.2s !important;
}

.fcal_btn_submit:hover {
  background: transparent !important;
  color: var(--gcv-red) !important;
}

/* Confirmation page */
.confirmation_page {
  background: var(--gcv-black) !important;
}

.fcal_conf_wrap {
  background: var(--gcv-surface) !important;
  border: 1px solid var(--gcv-border) !important;
  border-radius: 0 !important;
}

.fcal_confirm_header h2,
.fcal_confirm_section h4 {
  color: var(--gcv-cream) !important;
}

.fcal_confirm_section_content {
  color: var(--gcv-muted) !important;
}

.fcal_check_holder {
  background: var(--gcv-surface-alt) !important;
}

.fcal_check_holder svg {
  stroke: var(--gcv-yellow) !important;
}

/* Timezone / dropdown selector */
.fcal_timezone_select,
.fcal_time_format_select {
  background: var(--gcv-surface-alt) !important;
  border: 1px solid var(--gcv-border) !important;
  border-radius: 0 !important;
  color: var(--gcv-muted) !important;
  font-family: 'JetBrains Mono', monospace !important;
  font-size: 0.75rem !important;
}

/* Powered by / footer links */
.fcal_powered_by {
  color: var(--gcv-muted) !important;
}

.fcal_powered_by a,
.fcal_powered_by span a {
  color: var(--gcv-muted) !important;
}

/* VHS stripe accent above the booking card */
.fcal_booking_inner::before,
.fluent_booking_app > div::before {
  content: '';
  display: block;
  height: 4px;
  background: linear-gradient(90deg, var(--gcv-yellow), var(--gcv-orange), var(--gcv-red), var(--gcv-purple));
}

/* =====================================================
   Full Width page template overrides — GCV blog
   Append to child theme style.css
   ===================================================== */

/* Remove max-width constraint on 100%-width Avada layout */
body .page-template-page-fullwidth .fusion-row,
body .page-template-page-fullwidth #wrapper_all,
body .page-template-page-fullwidth #main,
body .page-template-page-fullwidth .post-content {
	max-width: 100% !important;
	padding-left: 0 !important;
	padding-right: 0 !important;
}

/* Hide sidebar columns if any slip through */
body .page-template-page-fullwidth #sidebar,
body .page-template-page-fullwidth .sidebar-container,
body .page-template-page-fullwidth .fusion-column-last.sidebar {
	display: none !important;
}

/* Expand the main content column to fill the row */
body .page-template-page-fullwidth #content {
	width: 100% !important;
	margin-right: 0 !important;
}

/* Pull Fusion Builder sections edge-to-edge */
body .page-template-page-fullwidth .fusion-fullwidth {
	margin-left: calc(-50vw + 50%) !important;
	margin-right: calc(-50vw + 50%) !important;
	max-width: 100vw !important;
}
