/*
  =============================================================
  core.css — Combined Core Stylesheet
  =============================================================
  PURPOSE:
    This file combines three previously separate stylesheets
    (fonts.css, style.css, global.css) into one file to reduce
    the number of HTTP requests the browser makes on page load.
    Fewer requests = faster initial paint.

  WHAT'S IN HERE (in order):
    1. FONTS        — Google Fonts import and font-family rules
    2. DESIGN TOKENS — CSS custom properties (colors, spacing)
    3. CSS RESET    — Removes browser default styles
    4. TYPOGRAPHY   — Heading and body text sizes
    5. LAYOUT       — .container and section padding
    6. BUTTONS      — .btn, .btn--primary, .btn--ghost, etc.
    7. NAVIGATION   — .nav and all nav sub-elements
    8. FOOTER       — .footer and all footer sub-elements
    9. RESPONSIVE   — Tablet (1023px) and mobile (767px) overrides

  HOW TO MAINTAIN:
    Edit this file directly. The original individual files
    (fonts.css, style.css, global.css) still exist as source
    references but are no longer loaded by any HTML page.
    If you make changes here, you do NOT need to touch those files.

  LOAD ORDER:
    Every HTML page loads:  core.css  →  [page].css
    Example (index.html):   core.css  →  home.css
    Example (contact.html): core.css  →  contact.css

  BREAKPOINTS:
    Desktop  →  1024px and above (default styles)
    Tablet   →  max-width: 1023px
    Mobile   →  max-width: 767px

  VERSION:
    Cache-busted with ?v=X.X query string on each HTML page.
    When making changes, bump the version on all HTML files
    so browsers don't serve stale cached versions.
  =============================================================
*/


/* =============================================================
   SECTION 1 — FONTS
   =============================================================
   Loads Inter from Google Fonts and applies it globally.
   Weights: 400 (regular), 500 (medium), 600 (semibold), 700 (bold).

   TO CHANGE THE FONT:
     1. Replace the @import URL with the new Google Fonts URL.
     2. Update the font-family value in the * rule below.
     3. If self-hosting, swap @import for @font-face blocks
        pointing src: url() at your local font files.
   ============================================================= */

/* Google Fonts is loaded via <link> tags in each HTML <head> — NOT here.
   Using @import inside CSS creates a render-blocking chain (browser must
   download core.css first, then discover and fetch the font URL).
   <link> tags in HTML load in parallel and are significantly faster.
   See each HTML file's <head> for the preconnect + font link tags. */

/* Apply Inter to every element including ::before and ::after pseudo-elements */
*, *::before, *::after {
  font-family: 'Inter', sans-serif;
  -webkit-font-smoothing: antialiased; /* Crisp rendering on macOS/iOS (WebKit) */
  -moz-osx-font-smoothing: grayscale;  /* Crisp rendering on macOS Firefox       */
}


/* =============================================================
   SECTION 2 — DESIGN TOKENS (CSS Custom Properties)
   =============================================================
   All brand colors and core layout values live here.
   ALWAYS use these variables — never hard-code hex values.

   TO ADD A NEW COLOR:
     Add it here in :root, then reference it anywhere with var().
     Example: color: var(--color-primary);

   COLOR GUIDE:
     --color-primary        Main orange — buttons, highlights, links
     --color-primary-hover  Lighter orange — hover/active states
     --color-primary-deep   Dark orange — pressed states, high contrast
     --color-primary-tint   Very light orange — backgrounds, callouts
     --color-black          Near-black — all headings
     --color-white          Off-white — page and card backgrounds
     --color-surface        Light gray — subtle section backgrounds
     --color-border         Light gray — dividers, input borders
     --color-body-text      Dark gray — default paragraph color
   ============================================================= */
:root {

  /* ----- Brand Colors ----- */
  --color-primary:        #c2410c;  /* Main CTA color — buttons, links, highlights    */
  --color-primary-hover:  #ea580c;  /* Hover/active state for primary elements         */
  --color-primary-deep:   #7c2d12;  /* Darker shade — pressed states, high contrast    */
  --color-primary-tint:   #fff7ed;  /* Very light orange — backgrounds, callout panels */

  --color-black:          #09090b;  /* Headings, high-emphasis text                    */
  --color-white:          #fafafa;  /* Page background, card backgrounds               */
  --color-surface:        #f4f4f5;  /* Subtle section backgrounds, input fills         */
  --color-border:         #e4e4e7;  /* Dividers, card borders, input borders           */
  --color-body-text:      #374151;  /* Default paragraph / body copy color             */

  /* ----- Semantic / Status Colors ----- */
  --color-success:        #16a34a;  /* Success messages, confirmations                 */
  --color-error:          #dc2626;  /* Error messages, destructive actions             */
  --color-warning:        #ca8a04;  /* Warning notices, caution states                 */

  /* ----- Layout ----- */
  --max-width:            1200px;   /* Max content width — all .container elements     */
  --section-padding:      96px;     /* Top/bottom padding on sections — desktop        */
                                    /* Overridden to 64px (tablet) and 48px (mobile)   */
}


/* =============================================================
   SECTION 3 — CSS RESET
   =============================================================
   Removes browser default styles for a clean, consistent baseline.

   WHY EACH RULE:
     box-sizing: border-box   → padding/border included in width
     margin/padding: 0        → removes browser defaults on headings, lists, etc.
     scroll-behavior: smooth  → anchor links scroll smoothly
     img/video block          → removes inline gap at bottom of images
     a color: inherit         → links don't default to browser blue/purple
     list-style: none         → removes bullets/numbers from ul/ol
     button/input font:inherit→ form elements use Inter, not browser default
   ============================================================= */

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

html {
  scroll-behavior: smooth; /* Smooth scrolling for in-page anchor links */
}

body {
  overflow-x: hidden;             /* Prevent horizontal scroll from tilted hero phones */
  color: var(--color-body-text);
  background-color: var(--color-white);
  line-height: 1.75;
}

img, video, svg {
  display: block;
  max-width: 100%; /* Prevent media from overflowing their container */
}

a {
  color: inherit;
  text-decoration: none;
}

ul, ol {
  list-style: none;
}

button, input, select, textarea {
  font: inherit;   /* Use Inter — browsers override this for form elements by default */
  border: none;
  background: none;
  outline: none;   /* Remove default focus ring — add custom focus styles per component */
}

button {
  cursor: pointer;
}


/* =============================================================
   SECTION 4 — TYPOGRAPHY
   =============================================================
   Desktop heading sizes and weights. Responsive overrides
   are at the bottom of this file in the media query sections.

   WEIGHT GUIDE:
     900 (black)    → hero headlines
     700 (bold)     → h1, h2 — major section headings
     600 (semibold) → h3, h4 — subheadings
     400 (regular)  → body copy

   UTILITY CLASSES:
     .text-large → 18px — intro paragraphs, lead copy
     .text-small → 14px — captions, labels, fine print

   LINE HEIGHTS:
     Headings → 1.2  (tight — looks better at large sizes)
     Body     → 1.75 (loose — easier to read at small sizes)
   ============================================================= */

h1, h2, h3, h4, h5, h6 {
  color: var(--color-black);
  line-height: 1.2;
}

h1 { font-size: 48px; font-weight: 700; }
h2 { font-size: 36px; font-weight: 700; }
h3 { font-size: 24px; font-weight: 600; }
h4 { font-size: 20px; font-weight: 600; }

p {
  font-size: 16px;
  font-weight: 400;
  line-height: 1.75;
}

.text-large { font-size: 18px; }
.text-small  { font-size: 14px; }


/* =============================================================
   SECTION 5 — LAYOUT UTILITIES
   =============================================================
   .container  — centers content and enforces max-width.
                 Wrap page content in this inside every section.

   section     — applies consistent vertical padding.
                 Value comes from --section-padding (96px desktop,
                 64px tablet, 48px mobile).

   HOW TO USE:
     <section>
       <div class="container">
         ... your content here ...
       </div>
     </section>
   ============================================================= */

.container {
  width: 100%;
  max-width: var(--max-width);  /* 1200px */
  margin-inline: auto;          /* Centers horizontally */
  padding-inline: 24px;         /* Side gutters on all screen sizes */
}

section {
  padding-block: var(--section-padding); /* 96px desktop, reduced in breakpoints */
}


/* =============================================================
   SECTION 6 — SHARED UTILITIES
   ============================================================= */
.eyebrow {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--color-primary);
  margin-bottom: 12px;
}

.section-headline {
  font-size: 36px;
  font-weight: 700;
  color: var(--color-black);
  line-height: 1.2;
  margin-bottom: 16px;
}

.section-headline--centered {
  text-align: center;
  max-width: 640px;
  margin-inline: auto;
  margin-bottom: 16px;
}


/* =============================================================
   SECTION 7 — BUTTONS
   =============================================================
   Base .btn class + modifier variants.

   VARIANTS:
     .btn--primary       → orange fill (main CTA)
     .btn--ghost         → transparent with black border
     .btn--outline-white → transparent with white border (dark backgrounds)

   SIZE MODIFIER:
     .btn--lg            → larger padding and font size

   USAGE:
     <a href="#" class="btn btn--primary">Get Started</a>
     <a href="#" class="btn btn--ghost btn--lg">Learn More</a>
   ============================================================= */

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 12px 24px;
  border-radius: 8px;
  font-size: 15px;
  font-weight: 600;
  cursor: pointer;
  transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
  text-decoration: none;
  border: 1.5px solid transparent;
  white-space: nowrap;
}

.btn--primary {
  background: var(--color-primary);
  color: #fff;
  border-color: var(--color-primary);
}

.btn--primary:hover {
  background: var(--color-primary-hover);
  border-color: var(--color-primary-hover);
}

.btn--ghost {
  background: transparent;
  color: var(--color-black);
  border-color: var(--color-black);
}

.btn--ghost:hover {
  background: var(--color-surface);
}

.btn--outline-white {
  background: transparent;
  color: var(--color-white);
  border-color: var(--color-white);
}

.btn--outline-white:hover {
  background: rgba(255,255,255,0.08);
}

.btn--lg {
  padding: 14px 28px;
  font-size: 16px;
}


/* =============================================================
   SECTION 8 — NAVIGATION
   =============================================================
   Sticky top nav used on every page.

   ELEMENTS:
     .nav             → sticky header wrapper
     .nav__inner      → flex row: logo + links + toggle
     .nav__logo       → text or image logo link
     .nav__logo-img   → logo <img> tag sizing
     .nav__links      → desktop link group (hidden on mobile)
     .nav__link       → individual nav link
     .nav__cta        → "Get a Demo" button in nav
     .nav__toggle     → hamburger button (mobile/tablet only)

   MOBILE BEHAVIOR:
     .nav__toggle appears at ≤1023px.
     .nav__links collapses to max-height: 0 and expands to
     max-height: 400px when .is-open is added via main.js.

   TO ADD A NAV LINK:
     Add an <a class="nav__link"> inside .nav__links in each
     HTML file. No CSS changes needed.
   ============================================================= */

.nav {
  position: sticky;
  top: 0;
  z-index: 100;
  background: #fff;
  border-bottom: 1px solid var(--color-border);
}

.nav__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 68px;
}

.nav__logo {
  font-size: 18px;
  font-weight: 700;
  color: var(--color-black);
  text-decoration: none;
  flex-shrink: 0;
}

.nav__logo-img {
  height: 40px;
  width: auto;
  display: block;
}

.nav__links {
  display: flex;
  align-items: center;
  gap: 32px;
}

.nav__link {
  font-size: 14px;
  font-weight: 500;
  color: var(--color-body-text);
  text-decoration: none;
  transition: color 0.2s;
  padding-block: 8px; /* Increases tap target height to meet 44px minimum */
}

.nav__link:hover {
  color: var(--color-black);
}

.nav__cta {
  margin-left: 8px;
  font-size: 14px;
  padding: 10px 20px;
}

/* Hamburger button — hidden on desktop, shown at ≤1023px */
.nav__toggle {
  display: none;
  flex-direction: column;
  justify-content: center;
  gap: 5px;
  width: 36px;
  height: 36px;
  padding: 4px;
  background: none;
  border: none;
  cursor: pointer;
}

/* Three lines of the hamburger icon */
.nav__toggle span {
  display: block;
  width: 22px;
  height: 2px;
  background: var(--color-black);
  border-radius: 2px;
  transition: transform 0.3s ease, opacity 0.3s ease;
}

/* Animate hamburger → X when menu is open */
.nav__toggle[aria-expanded="true"] span:nth-child(1) {
  transform: translateY(7px) rotate(45deg);
}

.nav__toggle[aria-expanded="true"] span:nth-child(2) {
  opacity: 0;
}

.nav__toggle[aria-expanded="true"] span:nth-child(3) {
  transform: translateY(-7px) rotate(-45deg);
}


/* =============================================================
   SECTION 9 — FOOTER
   =============================================================
   Dark footer used on every page.

   STRUCTURE:
     .footer              → dark background wrapper
     .footer__inner       → 3-column grid (brand / pages / contact)
     .footer__brand       → logo/brand name link
     .footer__tagline     → short tagline under brand
     .footer__sub         → secondary tagline line
     .footer__heading     → column label (uppercase, small)
     .footer__nav         → vertical link list
     .footer__contact-link→ WhatsApp or contact link
     .footer__note        → small note under contact link
     .footer__bottom      → copyright bar below the grid

   TO ADD A FOOTER LINK:
     Add an <a> inside the relevant .footer__nav in each HTML file.
   ============================================================= */

.footer {
  background: var(--color-black);
  border-top: 1px solid #1f1f1f;
}

.footer__inner {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 48px;
  padding-block: 64px;
}

.footer__brand {
  display: inline-block;
  font-size: 18px;
  font-weight: 700;
  color: var(--color-white);
  text-decoration: none;
  margin-bottom: 10px;
}

.footer__tagline {
  font-size: 14px;
  color: #9a9183; /* Light warm gray — sufficient contrast on dark footer background */
  margin-bottom: 6px;
}

.footer__sub {
  font-size: 13px;
  color: #9a9183; /* Matches footer link color for consistency */
}

.footer__heading {
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--color-body-text);
  margin-bottom: 16px;
}

.footer__nav {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.footer__nav a {
  font-size: 14px;
  color: #9a9183;
  text-decoration: none;
  transition: color 0.2s;
}

.footer__nav a:hover {
  color: var(--color-white);
}

.footer__contact-link {
  display: block;
  font-size: 14px;
  color: #9a9183;
  text-decoration: none;
  margin-bottom: 10px;
  transition: color 0.2s;
}

.footer__contact-link:hover {
  color: var(--color-white);
}

.footer__note {
  font-size: 14px;
  color: #9a9183;
  margin-top: 8px;
}

.footer__bottom {
  border-top: 1px solid #1f1f1f;
  padding-block: 24px;
}

.footer__bottom p {
  font-size: 13px;
  color: #6b7280;
  text-align: center;
  margin: 0;
}


/* =============================================================
   SECTION 10 — RESPONSIVE: TABLET (max-width: 1023px)
   =============================================================
   Applies at 1023px and below — tablets and small laptops.

   CHANGES AT THIS BREAKPOINT:
     - Section padding: 96px → 64px
     - Heading sizes scaled down slightly
     - Hamburger nav shown (nav links collapse)
     - Footer stays 3 columns (switches to 1 on mobile)
   ============================================================= */
@media (max-width: 1023px) {

  :root {
    --section-padding: 64px;
  }

  h1 { font-size: 38px; }
  h2 { font-size: 28px; }
  h3 { font-size: 22px; }
  h4 { font-size: 18px; }
  p  { font-size: 16px; }

  .footer__inner {
    gap: 32px;
    padding-block: 48px;
  }

  /* Hamburger nav — kicks in at tablet (6 links won't fit) */
  .nav__toggle {
    display: flex;
  }

  .nav__links {
    position: absolute;
    top: 68px;
    left: 0;
    right: 0;
    background: #fff;
    border-bottom: 1px solid var(--color-border);
    flex-direction: column;
    align-items: flex-start;
    gap: 0;
    padding: 0 24px;
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.35s ease, padding 0.35s ease;
    box-shadow: 0 8px 24px rgba(0,0,0,0.08);
  }

  /* .is-open is toggled by main.js when hamburger is clicked */
  .nav__links.is-open {
    max-height: 400px;
    padding: 16px 24px 24px;
  }

  .nav__link {
    padding: 12px 0;
    width: 100%;
    border-bottom: 1px solid var(--color-border);
    font-size: 16px;
  }

  .nav__cta {
    margin-left: 0;
    margin-top: 16px;
    width: 100%;
    justify-content: center;
  }

}


/* =============================================================
   SECTION 11 — RESPONSIVE: MOBILE (max-width: 767px)
   =============================================================
   Applies at 767px and below — phones.

   CHANGES AT THIS BREAKPOINT:
     - Section padding: 64px → 48px
     - Heading sizes scaled down further
     - Footer collapses to single column
   ============================================================= */
@media (max-width: 767px) {

  :root {
    --section-padding: 48px;
  }

  h1 { font-size: 30px; }
  h2 { font-size: 24px; }
  h3 { font-size: 20px; }
  h4 { font-size: 17px; }
  p  { font-size: 15px; }

  .nav__toggle {
    display: flex;
  }

  .nav__links {
    position: absolute;
    top: 68px;
    left: 0;
    right: 0;
    background: #fff;
    border-bottom: 1px solid var(--color-border);
    flex-direction: column;
    align-items: flex-start;
    gap: 0;
    padding: 0 24px;
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.35s ease, padding 0.35s ease;
    box-shadow: 0 8px 24px rgba(0,0,0,0.08);
  }

  .nav__links.is-open {
    max-height: 400px;
    padding: 16px 24px 24px;
  }

  .nav__link {
    padding: 12px 0;
    width: 100%;
    border-bottom: 1px solid var(--color-border);
    font-size: 16px;
  }

  .nav__cta {
    margin-left: 0;
    margin-top: 16px;
    width: 100%;
    justify-content: center;
  }

  .footer__inner {
    grid-template-columns: 1fr;
    gap: 40px;
    padding-block: 48px;
  }

}
