/*
Theme Name:   AI ScanLab — GeneratePress Child
Theme URI:    https://aiscanlab.com
Description:  AI ScanLab brand theme. Child of GeneratePress.
Author:       AI ScanLab
Author URI:   https://aiscanlab.com
Template:     generatepress
Version:      1.1.0
License:      GNU General Public License v2 or later
Text Domain:  generatepress-child
*/

/* ============================================================
   DESIGN TOKENS
   ============================================================ */

:root {
  --cream:      #F5F0E8;
  --cream2:     #EDE8DE;
  --cream3:     #E5DFD3;
  --ink:        #1A1814;
  --ink2:       #2E2B26;
  --ink3:       #6B6660;
  --ink4:       #9B9590;
  --purple:     #3D2B6B;
  --purple2:    #2A1D4A;
  --purple-lt:  #6B4FB8;
  --purple-pale:#F0ECF8;
  --accent:     #C8A96E;
  --accent2:    #B8944A;
  --border:     rgba(26,24,20,0.10);
  --border2:    rgba(26,24,20,0.06);

  --font-serif: 'DM Serif Display', Georgia, serif;
  --font-mono:  'DM Mono', 'Courier New', monospace;
  --font-body:  'Inter', system-ui, sans-serif;

  --space-xs:   8px;
  --space-sm:   16px;
  --space-md:   24px;
  --space-lg:   40px;
  --space-xl:   64px;

  --max-wide:   1200px;
}

/* ============================================================
   BASE — uniform cream background everywhere
   ============================================================ */

*, *::before, *::after { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body,
.site,
.site-content,
.site-inner,
.inside-site-inner,
.site-main,
.content-wrap,
.page-hero-section,
.inside-page-hero,
.separate-containers .inside-right-sidebar,
.separate-containers .inside-left-sidebar {
  background-color: var(--cream) !important;
}

body {
  color: var(--ink2) !important;
  font-family: var(--font-body) !important;
  font-size: 16px !important;
  line-height: 1.75 !important;
  -webkit-font-smoothing: antialiased !important;
}

/* ============================================================
   FIX PHANTOM COLUMN LINES
   GeneratePress "separate containers" layout renders each
   content block as a floating card with box-shadow, creating
   visible seam lines. We disable that and use flat cream.
   ============================================================ */

.separate-containers .site-main,
.separate-containers .widget-area .inside-right-sidebar,
.separate-containers .widget-area .inside-left-sidebar,
.separate-containers article,
.one-container .site-content .inside-site-inner {
  box-shadow: none !important;
  background: var(--cream) !important;
  border: none !important;
  padding: 0 !important;
}

/* Remove GeneratePress padding that creates the visual column boxes */
.inside-article,
.inside-right-sidebar,
.inside-left-sidebar {
  padding: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

/* ============================================================
   LAYOUT — two-column preserved (content + right sidebar)
   ============================================================ */

.site-content .inside-site-inner {
  max-width: var(--max-wide) !important;
  margin: 0 auto !important;
  padding: 0 var(--space-lg) !important;
}

/* Content column */
.content-area {
  float: left !important;
  width: 66% !important;
}

/* Sidebar column */
.widget-area {
  display: block !important;
  float: right !important;
  width: 30% !important;
}

/* Clearfix */
.inside-site-inner::after {
  content: '' !important;
  display: table !important;
  clear: both !important;
}

@media (max-width: 900px) {
  .content-area,
  .widget-area {
    float: none !important;
    width: 100% !important;
  }
  .site-content .inside-site-inner {
    padding: 0 var(--space-sm) !important;
  }
  .widget-area {
    border-top: 1px solid var(--border) !important;
    padding-top: var(--space-lg) !important;
    margin-top: var(--space-lg) !important;
  }
}

/* ============================================================
   TYPOGRAPHY
   ============================================================ */

h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-serif) !important;
  color: var(--ink) !important;
  line-height: 1.2 !important;
  letter-spacing: -0.01em !important;
  font-weight: 400 !important;
}

h1 { font-size: clamp(28px, 4vw, 44px) !important; margin-bottom: var(--space-md) !important; }
h2 { font-size: clamp(22px, 3vw, 32px) !important; margin-bottom: var(--space-sm) !important; }
h3 { font-size: clamp(19px, 2.5vw, 24px) !important; margin-bottom: var(--space-sm) !important; }
h4 { font-size: 18px !important; margin-bottom: var(--space-xs) !important; }

p {
  margin-bottom: var(--space-md) !important;
  color: var(--ink2) !important;
  line-height: 1.78 !important;
}

a {
  color: var(--purple) !important;
  text-decoration: none !important;
  transition: color 0.2s !important;
}

a:hover {
  color: var(--purple-lt) !important;
}

strong, b {
  font-weight: 600 !important;
  color: var(--ink) !important;
}

blockquote {
  font-family: var(--font-serif) !important;
  font-style: italic !important;
  font-size: clamp(18px, 2.5vw, 22px) !important;
  color: var(--purple) !important;
  border-left: none !important;
  border-top: 2px solid var(--purple) !important;
  border-bottom: 1px solid var(--border) !important;
  padding: var(--space-md) 0 !important;
  margin: var(--space-lg) 0 !important;
  background: transparent !important;
}

blockquote p {
  color: var(--purple) !important;
  margin: 0 !important;
}

hr {
  border: none !important;
  border-top: 1px solid var(--border) !important;
  margin: var(--space-xl) 0 !important;
}

code {
  font-family: var(--font-mono) !important;
  font-size: 13px !important;
  background: var(--cream2) !important;
  border: 1px solid var(--border) !important;
  padding: 2px 6px !important;
}

/* ============================================================
   NAVIGATION
   ============================================================ */

.site-header {
  background: var(--cream) !important;
  border-bottom: 1px solid var(--border) !important;
  box-shadow: none !important;
}

.site-branding {
  padding: var(--space-md) 0 var(--space-sm) !important;
}

.site-title {
  font-family: var(--font-mono) !important;
  font-size: 15px !important;
  font-weight: 500 !important;
  letter-spacing: 0.08em !important;
  color: var(--purple) !important;
}

.site-title a,
.site-title a:visited {
  color: var(--purple) !important;
}

.site-title a:hover {
  color: var(--purple-lt) !important;
}

.site-description {
  font-family: var(--font-mono) !important;
  font-size: 10px !important;
  letter-spacing: 0.12em !important;
  color: var(--ink3) !important;
  text-transform: uppercase !important;
}

.site-logo img {
  max-height: 48px !important;
  width: auto !important;
}

.main-navigation {
  background: transparent !important;
  border-top: 1px solid var(--border) !important;
}

.main-navigation ul li a {
  font-family: var(--font-mono) !important;
  font-size: 11px !important;
  font-weight: 500 !important;
  letter-spacing: 0.07em !important;
  text-transform: uppercase !important;
  color: var(--ink2) !important;
  padding: 14px 12px !important;
  transition: color 0.2s !important;
}

.main-navigation ul li a:hover,
.main-navigation ul li.current-menu-item > a,
.main-navigation ul li.current_page_item > a {
  color: var(--purple) !important;
  background: transparent !important;
}

.main-navigation ul ul {
  background: var(--cream) !important;
  border: 1px solid var(--border) !important;
  border-top: 2px solid var(--purple) !important;
  box-shadow: 0 8px 24px rgba(26,24,20,0.08) !important;
  border-radius: 0 !important;
}

.main-navigation ul ul li a {
  font-size: 11px !important;
  padding: 10px 16px !important;
  border-bottom: 1px solid var(--border2) !important;
}

.main-navigation ul ul li:last-child a {
  border-bottom: none !important;
}

/* WPML language bar */
.wpml-ls-statics-shortcode_actions,
.wpml-ls-legacy-list-horizontal {
  background: var(--purple2) !important;
  padding: 5px var(--space-lg) !important;
  text-align: right !important;
}

.wpml-ls-legacy-list-horizontal a,
.wpml-ls-statics-shortcode_actions a {
  font-family: var(--font-mono) !important;
  font-size: 11px !important;
  letter-spacing: 0.06em !important;
  color: rgba(255,255,255,0.75) !important;
}

.wpml-ls-legacy-list-horizontal a:hover,
.wpml-ls-statics-shortcode_actions a:hover {
  color: #fff !important;
}

.menu-toggle {
  background: transparent !important;
  border: 1px solid var(--border) !important;
  color: var(--ink2) !important;
  font-family: var(--font-mono) !important;
  font-size: 11px !important;
  border-radius: 0 !important;
}

/* ============================================================
   ENTRY TITLES & META
   ============================================================ */

.entry-title,
.page-title {
  font-family: var(--font-serif) !important;
  font-size: clamp(26px, 4vw, 40px) !important;
  line-height: 1.15 !important;
  color: var(--ink) !important;
  font-weight: 400 !important;
  letter-spacing: -0.01em !important;
}

.entry-title a {
  color: var(--ink) !important;
}

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

.entry-meta,
.post-meta {
  font-family: var(--font-mono) !important;
  font-size: 11px !important;
  letter-spacing: 0.06em !important;
  color: var(--ink3) !important;
  margin-bottom: var(--space-md) !important;
}

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

/* ============================================================
   ARTICLE CONTENT
   ============================================================ */

.entry-content {
  padding-top: var(--space-md) !important;
}

.entry-content p {
  font-size: 16px !important;
  line-height: 1.78 !important;
  color: var(--ink2) !important;
}

.entry-content h2 {
  margin-top: var(--space-xl) !important;
  padding-bottom: var(--space-sm) !important;
  border-bottom: 1px solid var(--border) !important;
}

.entry-content h3 {
  margin-top: var(--space-lg) !important;
}

.entry-content h4 {
  font-family: var(--font-body) !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  letter-spacing: 0.10em !important;
  text-transform: uppercase !important;
  color: var(--purple-lt) !important;
  margin-top: var(--space-lg) !important;
}

.entry-content ul,
.entry-content ol {
  padding-left: var(--space-md) !important;
  margin-bottom: var(--space-md) !important;
}

.entry-content li {
  margin-bottom: 8px !important;
  line-height: 1.7 !important;
  color: var(--ink2) !important;
}

.entry-content ul li::marker { color: var(--accent) !important; }

.entry-content a {
  border-bottom: 1px solid rgba(61,43,107,0.25) !important;
}

.entry-content a:hover {
  border-bottom-color: var(--purple) !important;
}

/* Tables */
.entry-content table {
  width: 100% !important;
  border-collapse: collapse !important;
  margin: var(--space-lg) 0 !important;
  font-size: 14px !important;
}

.entry-content th {
  font-family: var(--font-mono) !important;
  font-size: 10px !important;
  letter-spacing: 0.10em !important;
  text-transform: uppercase !important;
  color: var(--ink3) !important;
  background: var(--cream2) !important;
  padding: 10px 14px !important;
  text-align: left !important;
  border-bottom: 2px solid var(--border) !important;
}

.entry-content td {
  padding: 10px 14px !important;
  border-bottom: 1px solid var(--border) !important;
  color: var(--ink2) !important;
}

.entry-content tr:hover td { background: var(--cream2) !important; }
.entry-content tr:last-child td { border-bottom: none !important; }

/* ============================================================
   BLOG ARCHIVE
   ============================================================ */

article.post,
article.page {
  border-bottom: 1px solid var(--border) !important;
  padding-bottom: var(--space-lg) !important;
  margin-bottom: var(--space-lg) !important;
  background: transparent !important;
  box-shadow: none !important;
}

.entry-summary {
  font-size: 15px !important;
  line-height: 1.7 !important;
  color: var(--ink3) !important;
}

.more-link,
.read-more {
  font-family: var(--font-mono) !important;
  font-size: 11px !important;
  letter-spacing: 0.08em !important;
  color: var(--purple) !important;
  border-bottom: 1px solid rgba(61,43,107,0.30) !important;
}

.more-link:hover,
.read-more:hover {
  color: var(--purple-lt) !important;
  border-bottom-color: var(--purple-lt) !important;
}

/* ============================================================
   SIDEBAR
   ============================================================ */

.widget-area .widget {
  margin-bottom: var(--space-xl) !important;
  background: transparent !important;
  box-shadow: none !important;
  padding: 0 !important;
}

.widget-area .widget-title,
.widget-area h2.widget-title {
  font-family: var(--font-mono) !important;
  font-size: 10px !important;
  font-weight: 500 !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase !important;
  color: var(--ink3) !important;
  margin-bottom: var(--space-md) !important;
  padding-bottom: var(--space-sm) !important;
  border-bottom: 1px solid var(--border) !important;
  font-style: normal !important;
  font-family: var(--font-mono) !important;
}

.widget-area a {
  color: var(--ink2) !important;
  font-size: 14px !important;
  line-height: 1.55 !important;
  border-bottom: none !important;
}

.widget-area a:hover { color: var(--purple) !important; }

/* Recent posts */
.widget_recent_entries ul,
.widget_recent_entries ol {
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
}

.widget_recent_entries li {
  padding: 10px 0 !important;
  border-bottom: 1px solid var(--border2) !important;
  line-height: 1.5 !important;
}

.widget_recent_entries li:last-child { border-bottom: none !important; }

.widget_recent_entries li a {
  font-size: 13px !important;
  color: var(--ink2) !important;
  display: block !important;
  margin-bottom: 3px !important;
}

.widget_recent_entries li a:hover { color: var(--purple) !important; }

.widget_recent_entries .post-date {
  font-family: var(--font-mono) !important;
  font-size: 10px !important;
  letter-spacing: 0.06em !important;
  color: var(--ink4) !important;
}

/* Search widget */
.widget_search .search-form {
  display: flex !important;
}

.widget_search input[type="search"] {
  background: #fff !important;
  border: 1px solid var(--border) !important;
  border-right: none !important;
  border-radius: 0 !important;
  font-family: var(--font-body) !important;
  font-size: 13px !important;
  color: var(--ink) !important;
  padding: 8px 12px !important;
  flex: 1 !important;
}

.widget_search input[type="search"]:focus {
  outline: none !important;
  border-color: var(--purple) !important;
}

.widget_search input[type="submit"] {
  background: var(--purple) !important;
  color: #fff !important;
  font-family: var(--font-mono) !important;
  font-size: 11px !important;
  letter-spacing: 0.06em !important;
  border: none !important;
  padding: 8px 14px !important;
  cursor: pointer !important;
  border-radius: 0 !important;
  transition: background 0.2s !important;
}

.widget_search input[type="submit"]:hover {
  background: var(--purple-lt) !important;
}

/* ============================================================
   BUTTONS
   ============================================================ */

.wp-block-button .wp-block-button__link,
a.btn-primary,
input[type="submit"],
button[type="submit"] {
  background: var(--accent) !important;
  color: var(--ink) !important;
  font-family: var(--font-mono) !important;
  font-size: 12px !important;
  font-weight: 500 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  padding: 12px 24px !important;
  border: none !important;
  border-radius: 0 !important;
  cursor: pointer !important;
  transition: background 0.2s !important;
}

.wp-block-button .wp-block-button__link:hover,
a.btn-primary:hover,
input[type="submit"]:hover,
button[type="submit"]:hover {
  background: var(--accent2) !important;
  color: var(--ink) !important;
}

/* ============================================================
   FOOTER
   ============================================================ */

.site-footer {
  background: var(--cream2) !important;
  border-top: 1px solid var(--border) !important;
}

.inside-footer-widgets,
.inside-footer {
  max-width: var(--max-wide) !important;
  margin: 0 auto !important;
  padding: var(--space-lg) !important;
}

.footer-bar {
  background: var(--cream3) !important;
  border-top: 1px solid var(--border) !important;
}

.inside-footer-bar {
  max-width: var(--max-wide) !important;
  margin: 0 auto !important;
  padding: var(--space-sm) var(--space-lg) !important;
  display: flex !important;
  justify-content: space-between !important;
  align-items: center !important;
  flex-wrap: wrap !important;
  gap: var(--space-sm) !important;
}

.copyright-bar,
.footer-bar .copyright,
.footer-bar a {
  font-family: var(--font-mono) !important;
  font-size: 10px !important;
  letter-spacing: 0.06em !important;
  color: var(--ink3) !important;
}

.footer-bar a:hover { color: var(--purple) !important; }

/* ============================================================
   FORMS
   ============================================================ */

input[type="text"],
input[type="email"],
input[type="url"],
textarea,
select {
  background: #fff !important;
  border: 1px solid var(--border) !important;
  border-radius: 0 !important;
  font-family: var(--font-body) !important;
  font-size: 15px !important;
  color: var(--ink) !important;
  padding: 10px 14px !important;
  width: 100% !important;
  transition: border-color 0.2s !important;
}

input[type="text"]:focus,
input[type="email"]:focus,
textarea:focus {
  outline: none !important;
  border-color: var(--purple) !important;
}

label {
  font-family: var(--font-mono) !important;
  font-size: 11px !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  color: var(--ink3) !important;
  display: block !important;
  margin-bottom: 6px !important;
}

/* ============================================================
   PAGINATION
   ============================================================ */

.pagination .page-numbers {
  font-family: var(--font-mono) !important;
  font-size: 12px !important;
  letter-spacing: 0.06em !important;
  border: 1px solid var(--border) !important;
  padding: 6px 12px !important;
  border-radius: 0 !important;
  color: var(--ink2) !important;
}

.pagination .page-numbers.current {
  background: var(--purple) !important;
  color: #fff !important;
  border-color: var(--purple) !important;
}

/* ============================================================
   PRINT
   ============================================================ */

@media print {
  body { background: #fff !important; color: #000 !important; }
  .site-header, .site-footer, .widget-area, nav { display: none !important; }
  .content-area { width: 100% !important; float: none !important; }
  a { color: #000 !important; text-decoration: underline !important; }
}
