@import url('https://fonts.googleapis.com/css2?family=Outfit:wght@400;500&display=swap');

:root{
  --primary:#002C6A;
  --primary-700:#07306f;
  --primary-600:#0b3a88;
  --primary-500:#1b4fa6;
  --primary-400:#3f72c7;
  --bg:#0b1220;
  --text:#0b1220;
}
/* Typography */
h1, h2, h3, .heading-serif{font-family:'Outfit', sans-serif; font-weight: 400;}
/* Glass */
.glass{background:rgba(255,255,255,0.6);backdrop-filter:saturate(180%) blur(12px);-webkit-backdrop-filter:saturate(180%) blur(12px);}
.shadow-soft{box-shadow:0 10px 30px rgba(0,0,0,.08);}
/* Header logo area darker */
.header-dark{background:linear-gradient(180deg, var(--primary) 0%, #0b3a88 100%);} 
/* Hero with background image and blue overlay */
.hero-bg{position:relative;background-image:url('assets/images/background-tech.jpg');background-size:cover;background-position:top center;background-attachment:fixed;}
.hero-bg:before{content:"";position:absolute;inset:0;background:linear-gradient(180deg, rgba(2, 15, 32, 0.88) 0%, rgba(0,44,106,0.6) 100%);} 
@media (max-width: 767px){
  .hero-bg{background-attachment:fixed;}
}
/* Ensure stacking context for content over overlay */
.hero-bg > *{position:relative;z-index:1;}

/* Header div.container needs higher z-index than section.container below */
header > div.container {
  position: relative;
  z-index: 10;
}
/* Blue section with overlay and subtle parallax (like hero) */
.section-blue{position:relative;background-image:url('assets/images/background-tech.jpg');background-size:cover;background-position:top center;background-attachment:fixed;}
.section-blue:before{content:"";position:absolute;inset:0;background:linear-gradient(180deg, rgba(0,44,106,0.92) 0%, rgba(0,44,106,0.88) 100%);} 
.section-blue > *{position:relative;z-index:1;}
@media (max-width: 767px){.section-blue{background-attachment:fixed;}}
/* Accent underline */
/* underline-accent removed from usage */
/* Buttons */
.btn-primary{background:var(--primary);color:#fff;}
.btn-primary:hover{filter:brightness(1.1);} 
/* White button for hero contrast */
.btn-white{background:#fff;color:var(--primary);border:1px solid transparent;transition:background .2s ease, color .2s ease, border-color .2s ease;} 
.btn-white:hover{background:var(--primary);color:#fff;border-color:var(--primary);} 
/* Logo sizing (≈40% larger than before) */
.site-logo{width:auto;display:block;}
.hero-logo{height:4.2rem;} /* was ~3rem (h-12) */
.sticky-logo{height:3.5rem;} /* was ~2.5rem (h-10) */
/* Header nav hover bold effect without layout shift */
header nav a{display:inline-block;font-weight:400;transition:color .2s ease, text-shadow .2s ease;font-family:'Outfit', sans-serif;}
/* In hero (dark), soften hover (no bold effect) */
.hero-bg nav{position:relative;}
.hero-bg nav a:hover{opacity:.9;}
/* Moving underline indicator for hero nav */
.hero-nav-underline{position:absolute;bottom:-6px;height:2px;background:#fff;left:0;width:0;transition:transform .25s ease, width .25s ease;transform:translateX(0);z-index:10;} 
/* Hero title ≈40% larger than Tailwind 4xl/6xl */
.hero-title{font-size:3.15rem;line-height:1.1;}
/* Mini-hero title styling for non-index pages */
.hero-bg h1{font-size:2.5rem;line-height:1.2;font-weight:600;}
/* Mini-hero subtitle styling */
.hero-bg p{font-size:1.25rem;line-height:1.6;}
.container{max-width:1200px;margin:0 auto;padding:0 1rem;}
.container-wide{max-width:1320px;margin:0 auto;padding:0 1rem;}
.section-muted{background:#f6f8fc;}
.lead{font-size:1.125rem;line-height:1.7;}
@media(min-width:768px){.hero-title{font-size:5.25rem;}}
@media(min-width:768px){.hero-bg h1{font-size:3.5rem;}}
@media(min-width:768px){.hero-bg p{font-size:1.375rem;}}
/* Sticky header (light), hover keeps primary color without shifting */
.sticky-header nav{font-size:1.125rem;}
.sticky-header nav a{color:var(--primary);} 
.sticky-header nav a:hover{color:var(--primary);text-shadow:0 0 0 currentColor, .01em 0 0 currentColor, 0 .01em 0 currentColor, -.01em 0 0 currentColor, 0 -.01em 0 currentColor;}

/* Sticky header styles */
.sticky-header{position:fixed;top:0;left:0;right:0;background:#fff;box-shadow:0 6px 20px rgba(0,0,0,.08);z-index:50;opacity:0;transform:translateY(-10px);transition:opacity .25s ease, transform .25s ease;pointer-events:none;overflow:visible;}

.sticky-header .container {
  overflow: visible;
}

.sticky-header nav {
  overflow: visible;
}
body.scrolled .sticky-header{opacity:1;transform:translateY(0);pointer-events:auto;} 
.sticky-header nav a{font-family:'Outfit', sans-serif;font-weight:400;}

/* Helpers for section layout */
.max-w-prose{max-width:65ch;}
@media(min-width:768px){.md\:max-w-prose{max-width:65ch;}}
.divider-white-l{border-left:1px solid rgba(255,255,255,0.18);} 

/* Full viewport height helper */
.vh-screen{min-height:100vh;}

/* Vertical center helper */
.v-center{display:flex;align-items:center;}

/* Attempt to color external SVG logo close to primary using filter */
.logo-primary{filter: brightness(0) saturate(100%) invert(14%) sepia(49%) saturate(1962%) hue-rotate(187deg) brightness(90%) contrast(102%);} 
/* Cards */
.card{border:1px solid rgba(0,0,0,.06);border-radius:.25rem;transition:transform .2s ease, box-shadow .2s ease;}
.card:hover{transform:translateY(-2px);} 
.card h3{font-size:1.3rem;}
.card ul{list-style:none;padding-left:1.25rem;margin:0;}
.card ul li{position:relative;margin:.4rem 0;}
.card ul li:before{content:"";position:absolute;left:-1.25rem;top:.55em;width:.5rem;height:.5rem;border-radius:999px;background:var(--primary);box-shadow:0 0 0 2px rgba(0,44,106,0.15);} 
.card--primary{border:none;background:linear-gradient(180deg, rgba(0,44,106,0.98) 0%, rgba(0,44,106,0.85) 100%);color:#fff;}
.card--primary h3{color:#fff;}
.card--primary h4{color:#fff;}
.card--primary p{color:#e9effa;}
.card--primary ul{color:#e9effa;}
.card--primary ul li:before{background:#fff;box-shadow:0 0 0 2px rgba(255,255,255,0.25);} 

/* Value cards (large icon, centered) */
.value-card{display:flex;flex-direction:column;align-items:center;text-align:center;padding:1.5rem;border-radius:.5rem;background:#fff;box-shadow:0 10px 25px rgba(2,6,23,0.06);border:1px solid rgba(2,6,23,0.06);} 
.value-card .value-icon{margin-bottom:.9rem;line-height:1;}
.value-card .value-icon i{font-size:44px;}
.text-primary-700{color:var(--primary-700);} 
.text-primary-600{color:var(--primary-600);} 
.text-primary-500{color:var(--primary-500);} 
.text-primary-400{color:var(--primary-400);} 
.value-card h3{margin-top:.25rem;font-size:1.1rem;}
.value-card p{font-size:.9rem;color:#5b677a;margin-top:.5rem;}
.value-card .underline{width:38px;height:3px;border-radius:3px;background:var(--primary);margin:.65rem auto 0 auto;opacity:.9;}

/* Inverted theme for benefits section: primary background with white text/icons */
.benefits-cards .value-card{background:var(--primary);color:#fff;border:1px solid rgba(255,255,255,0.18);box-shadow:0 12px 28px rgba(0,44,106,0.35);} 
.benefits-cards .value-card h3{color:#fff;}
.benefits-cards .value-card p{color:#e8effa;}
.benefits-cards .value-card .underline{background:#fff;opacity:.35;}
.benefits-cards .value-card .value-icon i{color:#fff !important;}

/* Video template styles */
.video-card{display:grid;grid-template-columns:1fr;gap:1rem;}
@media(min-width: 768px){.video-card{grid-template-columns:1.6fr 1fr;align-items:center;}}
.video-thumb{position:relative;border-radius:.5rem;overflow:hidden;background:#0b2a57;box-shadow:0 10px 30px rgba(0,0,0,.15);} 
.video-thumb::before{content:"";display:block;aspect-ratio:16/9;background-image:url('assets/images/background.jpg');background-size:cover;background-position:center;opacity:.6;}
.video-thumb .play{position:absolute;inset:0;display:grid;place-items:center;}
.video-thumb .play::before{content:"";display:block;width:70px;height:70px;border-radius:999px;background:rgba(255,255,255,.9);box-shadow:0 6px 20px rgba(0,0,0,.25);} 
.video-thumb .play::after{content:"";position:absolute;border-style:solid;border-width:12px 0 12px 20px;border-color:transparent transparent transparent var(--primary);margin-left:6px;} 
/* Page-specific backgrounds for solution pages */
body.page-tjmpg .hero-bg, body.page-tjmpg .section-blue{ background-image:url('assets/images/mock1.jpg'); }
body.page-defensoria .hero-bg, body.page-defensoria .section-blue{ background-image:url('assets/images/mock2.jpg'); }
body.page-controle .hero-bg, body.page-controle .section-blue{ background-image:url('assets/images/mock3.jpg'); }
body.page-adv .hero-bg, body.page-adv .section-blue{ background-image:url('assets/images/context-adv.jpg'); }
body.page-office .hero-bg{ background-image:url('assets/images/office.png'); }
/* Sobre page: use office.png as contain only on hero */
body.page-office-contain .hero-bg{
  background-image:url('assets/images/office.png');
  background-size: contain;
  background-repeat: no-repeat;
  background-position: top center;
}
/* Contato page hero */
body.page-contato .hero-bg{ background-image:url('assets/images/shake.jpg'); }

/* Footer */
.site-footer{background:#0b1220;color:#c9d3e7;}
.site-footer a{color:#e6eefc;}
/* Utilities in case Tailwind fails to load */
.container{max-width:1200px;margin:0 auto;padding:0 1rem;}
.text-primary{color:var(--primary);} 
.bg-primary{background:var(--primary);} 
/* Responsive menu assist */
.nav-open{display:block !important;}

/* Mobile hamburger buttons - larger, no background */
#menu-btn,#menu-btn-sticky{background:transparent;border:none;}
#menu-btn span,#menu-btn-sticky span{width:28px;height:3px;border-radius:2px;}
#menu-btn span{background:#fff;}
#menu-btn-sticky span{background:#334155;} /* slate-700 */

/* Mobile dropdown menus: fixed panel below the header (not full-screen) */
#mobile-menu,#mobile-menu-sticky{position:fixed;left:0;right:0;top:0;display:none;background:#ffffff;z-index:100000;color:var(--primary);border-bottom:1px solid #e5eaf2;box-shadow:0 8px 20px rgba(2,6,23,0.08);opacity:0;transform:translateY(-6px);transition:opacity .18s ease, transform .18s ease;backdrop-filter:none;-webkit-backdrop-filter:none;}
#mobile-menu.open,#mobile-menu-sticky.open{display:block;opacity:1;transform:translateY(0);}
#mobile-menu nav,#mobile-menu-sticky nav{padding:1rem 1.25rem;gap:.25rem;}
#mobile-menu a,#mobile-menu-sticky a{padding:.9rem 0;border-bottom:1px solid #eef2f7;}
#menu-btn,#menu-btn-sticky{-webkit-tap-highlight-color:transparent;outline:none;}

/* Click-based dropdown menu */
.dropdown-menu {
  position: relative;
  display: inline-block;
  z-index: 1000;
}

/* Ensure header allows dropdown overflow */
header {
  overflow: visible;
}

header .container {
  overflow: visible;
}

header nav {
  overflow: visible;
}

.dropdown-toggle {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  cursor: pointer;
  background: none;
  border: none;
  color: inherit;
  font-size: inherit;
  font-family: 'Outfit', sans-serif;
  font-weight: 400;
  text-decoration: none;
  padding: 0.5rem 0;
  transition: color .2s ease, text-shadow .2s ease;
}

/* Hero dropdown button hover effect */
.hero-bg .dropdown-toggle:hover {
  opacity: 0.9;
}

/* Sticky header dropdown button hover effect */
.sticky-header .dropdown-toggle:hover {
  color: var(--primary);
  text-shadow: 0 0 0 currentColor, .01em 0 0 currentColor, 0 .01em 0 currentColor, -.01em 0 0 currentColor, 0 -.01em 0 currentColor;
}

.dropdown-arrow {
  transition: transform 0.2s ease;
  font-size: 0.75rem;
}

.dropdown-menu.open .dropdown-arrow {
  transform: rotate(180deg);
}

/* Remove hover bridge - dropdown now only closes on click */

.dropdown-content {
  display: none;
  position: absolute;
  top: calc(100% + 0.25rem);
  left: 0;
  min-width: 224px;
  background-color: white;
  border: 1px solid #e2e8f0;
  border-radius: 0.375rem;
  box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1);
  z-index: 9999;
  pointer-events: auto;
}

.dropdown-menu.open .dropdown-content {
  display: block;
}

.dropdown-content a {
  display: block;
  padding: 0.75rem 1rem;
  color: #334155;
  text-decoration: none;
  transition: background-color 0.15s ease;
  border-bottom: 1px solid #f1f5f9;
}

.dropdown-content a:last-child {
  border-bottom: none;
}

.dropdown-content a:hover {
  background-color: #f8fafc;
}

/* Backdrop for mobile dropdown (keeps site visible but prevents text overlap artifacts) */
/*#menu-backdrop{position:fixed;inset:0;background:rgba(11,18,32,0.35);backdrop-filter:saturate(120%) blur(1px);z-index:99990;display:none;opacity:0;transition:opacity .18s ease;}
/*#menu-backdrop.show{display:block;opacity:1;}

/* Hero media placeholder (right column on home hero) */
.hero-media { position: relative; }
.hero-media .frame{
  position: relative;
  border-radius: .75rem;
  overflow: hidden;
  background: linear-gradient(180deg, rgba(255,255,255,0.5), rgba(255,255,255,0.6));
  border:1px solid rgba(255,255,255,0.28);
  box-shadow: 0 18px 40px rgba(0,0,0,0.28), inset 0 1px 0 rgba(255,255,255,0.18);
  min-height: clamp(320px, 62vh, 640px);
}
.hero-media .frame::before{
  content:"";
  position:absolute;inset:-20%;
  background: radial-gradient(1200px 400px at 10% 0%, rgba(255,255,255,0.12), transparent 80%),
              radial-gradient(800px 300px at 90% 100%, rgba(255,255,255,0.08), transparent 90%),
              linear-gradient(120deg, rgba(255,255,255,0.06) 15%, rgba(255,255,255,0.18) 25%, rgba(255,255,255,0.06) 35%);
  transform: translateX(-40%);
  filter: blur(.2px);
  animation: sheen 6s ease-in-out infinite;
}
@keyframes sheen{
  0%{ transform: translateX(-40%); opacity:.65; }
  50%{ transform: translateX(20%); opacity:.35; }
  100%{ transform: translateX(60%); opacity:.6; }
}
.hero-media .label{
  position:absolute;left:14px;top:12px;
  background: rgba(255,255,255,0.22);
  color:#fff;
  padding:.25rem .55rem;
  border-radius:.5rem;
  font-size:.8rem;
  letter-spacing:.02em;
  border:1px solid rgba(255,255,255,0.35);
}
.hero-media .cta{
  position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
  color:#f1f5ff;
  text-align:center;
  width:86%;
  line-height:1.5;
  text-shadow:0 1px 0 rgba(0,0,0,0.2);
  font-size: clamp(0.95rem, 1.2vw, 1.1rem);
}

/* Hero carousel (right column on home hero) */
.hero-carousel { 
  position: relative; 
  height: 500px; /* Fixed height for consistency */
  z-index: 2;
}
.carousel-container{
  position: relative;
  width: 100%;
  height: 100%;
  z-index: 2;
  /* no padding to avoid shrinking the slide area */
}
.carousel-container::before{ display:none; }
.carousel-slides{
  position: relative;
  width: 100%;
  height: 100%;
  z-index: 2;
  /* no padding to avoid shrinking the slide area */
}
.carousel-slide{
  position: absolute;
  inset: 0;
  opacity: 0;
  display: flex;
  flex-direction: column;
  transition: opacity .6s ease;
  text-decoration: none;
  cursor: pointer;
  background: transparent;
  z-index: 1;
}
.carousel-slide.active{ opacity: 1; z-index: 2; }
.carousel-image {
  width: 100%;
  height: 280px; /* Fixed height for all images */
  overflow: hidden;
  position: relative;
  margin: 0 auto;
  flex-shrink: 0; /* Prevent shrinking */
}

.slide-img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  transition: transform 0.3s ease;
}

.carousel-slide:hover .slide-img {
  transform: scale(1.05);
}

/* Content section - flexible height with transparent background */
.carousel-content {
  flex: 1;
  padding: 1.5rem;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  background: transparent;
  text-align: center;
  position: relative;
}

/* Text content - with slide animation */
.carousel-text {
  transform: translateX(30px);
  transition: transform .6s ease, opacity .6s ease;
  opacity: 0;
  width: 100%;
}

.carousel-slide.active .carousel-text {
  transform: translateX(0);
  opacity: 1;
}

/* Watermark logo positioned in bottom-right of image */
.carousel-watermark {
  position: absolute;
  bottom: 0.75rem;
  right: 0.75rem;
  width: 80px;
  height: auto;
  opacity: 0.7;
  z-index: 2;
  filter: drop-shadow(0 1px 3px rgba(0, 0, 0, 0.3));
}

.carousel-title {
  font-size: 1.5rem;
  font-weight: 600;
  color: white;
  margin-bottom: 0.5rem;
  line-height: 1.2;
  text-shadow: 0 2px 4px rgba(0, 0, 0, 0.5);
}

.carousel-subtitle {
  font-size: 0.9rem;
  color: rgba(255, 255, 255, 0.9);
  margin-bottom: 1rem;
  line-height: 1.4;
  text-shadow: 0 1px 3px rgba(0, 0, 0, 0.5);
}

.carousel-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  justify-content: center;
}

.carousel-tags .tag {
  background: rgba(255, 255, 255, 0.2);
  color: white;
  padding: 0.25rem 0.5rem;
  border-radius: 12px;
  font-size: 0.75rem;
  font-weight: 500;
  border: 1px solid rgba(255, 255, 255, 0.3);
  backdrop-filter: blur(4px);
}

/* Textual slide content over image */
.slide-content{
  position: absolute;
  left: 50%;
  bottom: 3.25rem; /* keep clear of dots */
  transform: translateX(-50%);
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  color: #fff;
  z-index: 3;
  padding: 1rem 1.25rem;
  border-radius: .5rem;
  background: rgba(0,0,0,0.35);
  box-shadow: 0 6px 20px rgba(0,0,0,0.25);
  max-width: 85%;
}
.slide-icon{ font-size: 1.9rem; margin-bottom: .4rem; }
.slide-title{ font-size: 1.25rem; font-weight: 600; margin-bottom: .4rem; text-shadow: 0 1px 2px rgba(0,0,0,0.35); }
.slide-description{ font-size: .95rem; line-height: 1.45; color: #e8effa; margin-bottom: .6rem; text-shadow: 0 1px 1px rgba(0,0,0,0.25); max-width: 560px; }
.slide-features{ display:flex; flex-wrap:wrap; gap:.4rem; justify-content:center; }
.feature-tag{ background: rgba(255,255,255,0.18); color:#fff; padding:.25rem .6rem; border-radius: 1rem; font-size:.75rem; border:1px solid rgba(255,255,255,0.25); backdrop-filter: blur(4px); }

/* Bias spacing on very short viewports */
@media (max-height: 760px){
  .slide-content{ bottom: 2.75rem; }
}

.carousel-dots{ position:absolute; bottom:1rem; left:50%; transform:translateX(-50%); display:flex; gap:.5rem; z-index:4; }
.dot{ width:8px; height:8px; border-radius:50%; background:rgba(255, 255, 255, 0.4); border:none; cursor:pointer; transition: background .3s ease, transform .3s ease; }
.dot.active{ background:white; transform: scale(1.2); }

.carousel-arrow{ position:absolute; bottom:1rem; top:auto; transform: none; background: rgba(255, 255, 255, 0.15); border:1px solid rgba(255, 255, 255, 0.3); color:white; width:40px; height:40px; border-radius:50%; cursor:pointer; font-size:1.2rem; display:flex; align-items:center; justify-content:center; transition: background .3s ease, transform .3s ease; z-index:4; backdrop-filter: blur(4px); }
.carousel-arrow:hover{ background: rgba(255, 255, 255, 0.25); transform: scale(1.1); }
.carousel-prev{ left:1rem; }
.carousel-next{ right:1rem; }

/* Solution tables: enforce header borders */
.table-compare{ border-collapse: collapse; width:100%; }
.table-compare thead th{ border-bottom: 1px solid rgba(255,255,255,0.4) !important; }
.table-compare tbody tr{ border-bottom: 1px solid rgba(255,255,255,0.25); }
.table-compare th, .table-compare td{ padding:.75rem 1rem; }

/* Mobile tweaks */
@media (max-width: 767px){
  /* Move carousel arrows 30px lower than dot baseline */
  /* Update: arrows moved up and sized +20% from previous (now ~29px) */
  .carousel-arrow{ transform: translateY(0); width:29px; height:29px; font-size:1.08rem; }
  .carousel-arrow:hover{ transform: translateY(0) scale(1.1); }
  /* Sobre page hero: use cover on mobile */
  body.page-office-contain .hero-bg{ background-size: cover; background-position: center; }
  /* Hero carousel: reduce width and height on mobile to avoid side cropping and arrow cut */
  .hero-carousel { 
    margin-bottom: -120px; /* Smaller negative margin on mobile */
    height: 400px; /* Fixed height on mobile for consistency */
  }
  .hero-carousel .carousel-prev{ left: .75rem; }
  .hero-carousel .carousel-next{ right: .75rem; }
  
  /* Mobile carousel content adjustments */
  .carousel-image {
    height: 200px; /* Fixed height for mobile images */
  }
  
  .carousel-content {
    padding: 1rem;
  }
  
  .carousel-watermark {
    width: 30px;
    bottom: 0.5rem;
    right: 0.5rem;
  }
  
  .carousel-title {
    font-size: 1.25rem;
    margin-bottom: 0.5rem;
  }
  
  .carousel-subtitle {
    font-size: 0.8rem;
    margin-bottom: 0.75rem;
  }
  
  .carousel-tags .tag {
    font-size: 0.7rem;
    padding: 0.2rem 0.4rem;
  }
  
  /* Show dots on mobile again */
  
  /* Adjust first section padding on mobile to accommodate smaller carousel overflow */
  .container.pt-40 {
    padding-top: 8rem; /* Reduced from 10rem (pt-40) to 8rem on mobile */
  }
}

/* Mobile menus: keep 'Soluções' expanded and hide caret */
@media (max-width: 767px){
  #mobile-menu .mobile-dropdown-content,
  #mobile-menu-sticky .mobile-dropdown-content{ display:flex !important; }
  #mobile-menu .mobile-caret,
  #mobile-menu-sticky .mobile-caret{ display:none !important; }
  #mobile-menu .mobile-dropdown-toggle,
  #mobile-menu-sticky .mobile-dropdown-toggle{ pointer-events:none; }
}
