@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:wght@400;600;700&family=Source+Sans+3:wght@300;400;600;700&display=swap');

/* Quezaal Inc. — Base Stylesheet */

@font-face{font-display:swap;}

:root{
  --navy:#1A3A6B;--navy-d:#0f2236;--navy-m:#22508a;
  --green:#4A7229;--green-l:#5d8f32;--green-p:#eaf2e4;
  --white:#ffffff;--off:#f7f9f6;--text:#1c2230;--muted:#556070;--border:#d4dde8;
}

*,*::before,*::after{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{font-family:'Source Sans 3',sans-serif;color:var(--text);background:var(--white);font-size:16px;line-height:1.65;}


/* ── Nav */
nav{position:fixed;top:0;width:100%;z-index:100;background:rgba(255,255,255,.97);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:1px solid var(--border);padding:0 2.5rem;height:68px;display:flex;align-items:center;justify-content:space-between;}
.nav-logo img{height:40px;width:auto;display:block;}
/* ── Desktop nav links (only on screens wider than mobile breakpoint) */
/*@media(min-width:769px){
  .nav-links{display:flex;gap:1.8rem;align-items:center;list-style:none;}
}*/

/* ── Desktop Safety (Min 769px) ── */
@media(min-width:769px) {
  .nav-links {
    /* Force horizontal row and ignore mobile fixed positioning */
    display: flex !important; 
    gap:1.8rem; align-items:center;list-style:none;
    flex-direction: row !important; 
    position: static !important;
    background: none !important;
    height: auto !important;
    width: auto !important;
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
    gap: 1.8rem;
  }
  
  .ham {
    display: none !important; /* Always hide hamburger on laptop */
  }
}

/* ── Mobile nav (Max 768px) ── */
@media(max-width:768px){
  .ham{display:flex; z-index: 1001; }
  
  .nav-links {
    display: none; /* Hidden until toggled */
    position: fixed;
    top: 68px;
    left: 0;
    
    /*right: 0;
    bottom: 0;*/
    width: 100%;
    height: 100vh;

    background: rgba(255,255,255,0.98);
    flex-direction: column; /* Vertical stack ONLY on mobile */
    align-items: center;
    justify-content: center;
    /*gap: 2.2rem;
    z-index: 300;*/
    gap: 2rem;
    z-index: 1000;
  }

  .nav-links.open {
    display: flex !important;
  }


}

.nav-links a{text-decoration:none;color:var(--navy);font-weight:600;font-size:.85rem;letter-spacing:.05em;text-transform:uppercase;transition:color .2s;position:relative;}
.nav-links a::after{content:'';position:absolute;bottom:-4px;left:0;right:0;height:2px;background:var(--green);transform:scaleX(0);transform-origin:left;transition:transform .25s;}
.nav-links a:hover,.nav-links a.active{color:var(--green);}
.nav-links a:hover::after,.nav-links a.active::after{transform:scaleX(1);}
.nav-cta{background:var(--navy)!important;color:#fff!important;padding:.45rem 1.1rem;border-radius:4px;transition:background .2s!important;}
.nav-cta::after{display:none!important;}
.nav-cta:hover{background:var(--green)!important;}

/* ── Hamburger (hidden on desktop) */
.ham{display:none;flex-direction:column;justify-content:center;gap:5px;width:44px;height:44px;background:none;border:none;cursor:pointer;padding:4px;border-radius:4px;flex-shrink:0;-webkit-tap-highlight-color:transparent;touch-action:manipulation;}
.ham span{display:block;width:100%;height:2px;background:var(--navy);border-radius:2px;transition:transform .28s,opacity .2s;}
.ham.open span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.ham.open span:nth-child(2){opacity:0;}
.ham.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}

/* ── Footer */
footer{background:var(--navy-d);color:rgba(255,255,255,.8);}
.footer-bar{height:7px;background:linear-gradient(90deg,var(--navy) 75%,var(--green) 75%);}
.footer-inner{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:3rem;max-width:1200px;margin:0 auto;padding:3.5rem 2.5rem 2.5rem;}
.footer-logo-wrap{display:inline-block;background:#fff;border-radius:8px;padding:8px 14px;margin-bottom:1rem;line-height:0;}
.footer-logo-wrap img{height:32px;width:auto;display:block;}
.footer-brand p{font-size:.88rem;color:rgba(255,255,255,.55);line-height:1.75;max-width:260px;}
.footer-tagline{font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:#5d8f32;font-weight:700;margin-bottom:.6rem;}
.footer-col h4{font-family:'Playfair Display',serif;color:#fff;font-size:.95rem;margin-bottom:1rem;padding-bottom:.4rem;border-bottom:1px solid rgba(255,255,255,.12);}
.footer-col ul{list-style:none;}
.footer-col ul li{margin-bottom:.5rem;}
.footer-col ul li a{color:rgba(255,255,255,.55);text-decoration:none;font-size:.88rem;transition:color .2s;}
.footer-col ul li a:hover{color:#5d8f32;}
.footer-bottom{border-top:1px solid rgba(255,255,255,.08);padding:1.25rem 2.5rem;text-align:center;font-size:.78rem;color:rgba(255,255,255,.35);max-width:1200px;margin:0 auto;}.footer-bottom p{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.footer-bottom a{color:rgba(255,255,255,.35);text-decoration:none;transition:color .2s;}
.footer-bottom a:hover{color:#5d8f32;}

/* ── Utilities */
.container{max-width:1200px;margin:0 auto;padding:0 2.5rem;}
.section{padding:6rem 0;}
.section-alt{background:var(--off);}
.label{font-size:.72rem;font-weight:700;letter-spacing:.13em;text-transform:uppercase;color:var(--green);display:block;margin-bottom:.7rem;}
h1,h2,h3{font-family:'Playfair Display',serif;line-height:1.2;}
h2{font-size:2.3rem;color:var(--navy-d);}
.btn{display:inline-block;padding:.8rem 1.9rem;border-radius:4px;font-weight:700;font-size:.85rem;text-decoration:none;text-transform:uppercase;letter-spacing:.06em;transition:all .25s;cursor:pointer;border:none;font-family:'Source Sans 3',sans-serif;}
.btn-navy{background:var(--navy);color:#fff;}.btn-navy:hover{background:var(--navy-m);}
.btn-green{background:var(--green);color:#fff;}.btn-green:hover{background:var(--green-l);}
.btn-outline-w{background:transparent;color:#fff;border:2px solid rgba(255,255,255,.6);}.btn-outline-w:hover{background:#fff;color:var(--navy);}
.lh-bar{height:7px;background:linear-gradient(90deg,var(--navy) 75%,var(--green) 75%);}

/* ── Page hero (inner pages) */
.page-hero{background:linear-gradient(135deg,var(--navy-d) 0%,var(--navy-m) 100%);padding:10rem 0 7rem;min-height:420px;display:flex;align-items:center;text-align:center;color:#fff;}
.page-hero .container{width:100%;}
.page-hero .label{color:#5d8f32;}
.page-hero h1{font-size:2.9rem;color:#fff;margin-bottom:1rem;}
.page-hero p{font-size:1.1rem;color:rgba(255,255,255,.68);max-width:560px;margin:0 auto;}

/* --- Portfolio Layout Logic --- */
/* ── Portfolio Grid (Desktop/Laptop) ── */
.port-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2rem;
}

.featured-card {
  grid-column: span 3;
  display: grid;
  grid-template-columns: 2fr 3fr;
  border-radius: 14px;
  overflow: hidden;
  border: 1px solid var(--border);
  box-shadow: 0 4px 24px rgba(26, 58, 107, .1);
}

.section-label {
  grid-column: span 3;
  margin-top: .5rem;
  padding-bottom: .25rem;
  border-bottom: 1px solid var(--border);
}

.case-study-grid {
  grid-column: span 3;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.5rem;
}

/* ── Tablet */
@media(max-width:900px){
  .footer-inner{grid-template-columns:1fr 1fr;gap:2rem;}
  nav{padding:0 1rem;}
  .container{padding:0 1.25rem;}
}

/* ── Mobile nav */
@media(max-width:768px) {
  .ham{display:flex;}
  .nav-links{display:none;position:fixed;top:68px;left:0;right:0;bottom:0;background:rgba(255,255,255,.98);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);flex-direction:column;align-items:center;justify-content:center;gap:2.2rem;z-index:300;overflow-y:auto;-webkit-overflow-scrolling:touch;}
  .nav-links.open{display:flex;}
  .nav-links a{font-size:1.1rem;}
  .nav-cta{padding:.65rem 1.8rem !important;font-size:1rem !important;}
  .section{padding:3.5rem 0;}
  .stats-band{padding:2rem 0;}
  .cta-band{padding:3.5rem 0;}
  .cta-band h2{font-size:1.75rem;}
  .cta-band p{font-size:.95rem;}
  h2{font-size:1.7rem;}
  .page-hero{padding:7rem 0 4.5rem;}
  .page-hero h1{font-size:2rem;}
  .page-hero p{font-size:.95rem;}
  .hero h1{font-size:2rem;}
  .hero-sub{font-size:.95rem;}
  .hero-tagline{font-size:.85rem;}
  .hero-actions{flex-direction:column;align-items:flex-start;gap:.7rem;}
  .s-num{font-size:1.8rem;}
  .qz-letter{font-size:1.9rem;}
  .btn{padding:.75rem 1.5rem;font-size:.82rem;}
  .why-list li{gap:.7rem;}

  /* ── Branding Story Mobile Layout ── */
  .branding-story .container > div {
    grid-template-columns: 1fr !important; /* Forces vertical stacking */
    text-align: center;
    gap: 2.5rem !important;
  }

  .branding-story h2 {
    font-size: 1.8rem !important;
  }
  
  .branding-story img {
    max-width: 240px !important; /* Optimizes logo size for mobile screens */
  }

  .branding-story p {
    font-size: 1rem !important;
    text-align: left; /* Keeps text readable on mobile while image is centered */
  }

  /* ── Branding Story Mobile ── */
  /* --- Minimized Branding Story Mobile --- */
  .branding-story .container > div {
    flex-direction: column !important;
    text-align: center;
    gap: 1.5rem !important;
    padding: 0 1rem;
  }

  .branding-story img[src*="quezaal-inspiration"] {
    width: 120px !important;
    height: 120px !important;
  }

  .branding-story h2 {
    font-size: 1.5rem !important;
  }

  .branding-story p {
    text-align: left;
    font-size: 0.95rem !important;
  }



  /* ── Portfolio Mobile Fixes ── */
  .port-grid {
    grid-template-columns: 1fr; /* 1 column for page */
  }

  .featured-card, 
  .case-study-grid, 
  .section-label {
    grid-column: span 1; /* Reset to fit 1 column */
  }

  .featured-card {
    grid-template-columns: 1fr !important; /* Stack Data Bridge halves */
  }

  .case-study-grid {
    grid-template-columns: 1fr !important; /* Stack small cards */
  }

  /* Force internal Data Bridge sections (What It Does/Privacy) to stack */
  .featured-card div[style*="grid-template-columns:1fr 1fr"] {
    grid-template-columns: 1fr !important;
  }


  /* ── Footer Mobile Fix ── */
  /* ── Footer 4-Line Stack ── */
  .footer-bottom p {
    display: flex;
    flex-direction: column; /* Stack vertically */
    align-items: center;    /* Center all text */
    gap: 0.4rem;            /* Space between lines */
    text-align: center;
  }

  .footer-line, 
  .footer-link {
    display: block;         /* Force each to occupy its own line */
    width: 100%;
  }

  .footer-bottom .sep {
    display: none;          /* Hide the "|" bars on mobile */
  }



}

/* ── Small mobile */
@media(max-width:600px){
  .footer-inner{grid-template-columns:1fr;}
}
