/* ============================================
   Hiraba Group - Custom Styles
   Brand Guidelines: Corporate Blue #0B3D91 | Tech Blue #2563EB | Industrial Orange #F97316
   Typography: Poppins (headings), Inter (body)
   ============================================ */

:root {
  /* Primary brand colors per guidelines */
  --hiraba-corporate-blue: #0B3D91;
  --hiraba-tech-blue: #2563EB;
  --hiraba-industrial-orange: #F97316;
  --hiraba-dark: #1F2937;
  --hiraba-white: #FFFFFF;
  /* Legacy names for compatibility */
  --hiraba-blue: #0B3D91;
  --hiraba-orange: #F97316;
  --hiraba-bg: #F7F9FC;
  --hiraba-card-bg: #F7F9FC;
}

/* Base – Inter for body (brand guidelines) */
body {
  font-family: 'Inter', sans-serif;
  background: var(--hiraba-bg);
  color: var(--hiraba-dark);
}

/* Headings – Poppins (brand guidelines) */
h1, h2, h3, h4, h5, h6,
.section-heading-left,
.card-title,
.hero-hiraba h1 {
  font-family: 'Poppins', sans-serif;
}

/* Header / Navbar */
.navbar-hiraba {
  background: var(--hiraba-blue) !important;
  padding: 0.75rem 1rem;
}

.navbar-hiraba .navbar-brand img {
  height: 72px;
}

.navbar-hiraba .nav-link {
  color: rgba(255, 255, 255, 0.95) !important;
  font-weight: 600;
  padding: 0.5rem 1rem !important;
  border-radius: 4px;
}

.navbar-hiraba .nav-link:hover,
.navbar-hiraba .nav-link:focus {
  color: #fff !important;
  background: rgba(255, 255, 255, 0.1);
}

.navbar-hiraba .navbar-toggler {
  border-color: rgba(255, 255, 255, 0.4);
}

.navbar-hiraba .navbar-toggler-icon {
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.9%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
}

/* Hero - solid background, no gradient */
.hero-hiraba {
  background: var(--hiraba-blue);
  color: #fff;
  padding: 4rem 1.5rem 4rem;
  text-align: center;
}

.hero-hiraba .hero-content {
  max-width: 720px;
  margin-left: auto;
  margin-right: auto;
}

.hero-hiraba h1 {
  font-size: clamp(1.5rem, 4vw, 2.35rem);
  font-weight: 700;
  margin-bottom: 0.75rem;
  letter-spacing: 0.02em;
  line-height: 1.3;
  animation: fadeInUp 0.8s ease-out 0.2s both;
}

.hero-hiraba .hero-subheading {
  color: var(--hiraba-industrial-orange);
  font-weight: 700;
  font-size: clamp(1rem, 2vw, 1.2rem);
  margin-bottom: 0.25rem;
  animation: fadeInUp 0.8s ease-out 0.35s both;
}

.hero-hiraba .hero-tagline-secondary {
  font-size: 0.95rem;
  opacity: 0.9;
  margin-bottom: 1rem;
  animation: fadeInUp 0.8s ease-out 0.4s both;
}

.hero-hiraba .hero-desc {
  font-size: 1rem;
  opacity: 0.95;
  max-width: 640px;
  margin-left: auto;
  margin-right: auto;
  margin-bottom: 1.5rem;
  line-height: 1.6;
  animation: fadeInUp 0.8s ease-out 0.5s both;
}

.hero-hiraba .hero-desc p {
  margin-bottom: 0.75rem;
}

.hero-hiraba .hero-desc p:last-of-type {
  margin-bottom: 0;
}

.hero-hiraba .hero-cta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  justify-content: center;
  animation: fadeInUp 0.8s ease-out 0.65s both;
}

.btn-cta {
  padding: 0.6rem 1.5rem;
  font-weight: 600;
  border-radius: 6px;
  text-decoration: none;
  transition: background 0.2s, color 0.2s, border-color 0.2s, transform 0.2s;
}

.btn-cta:hover {
  transform: translateY(-2px);
}

.btn-cta-primary {
  background: var(--hiraba-orange);
  color: #fff;
  border: 2px solid var(--hiraba-orange);
}

.btn-cta-primary:hover {
  background: #ea580c;
  border-color: #ea580c;
  color: #fff;
}

.btn-cta-outline {
  background: transparent;
  color: #fff;
  border: 2px solid rgba(255, 255, 255, 0.8);
}

.btn-cta-outline:hover {
  background: rgba(255, 255, 255, 0.15);
  border-color: #fff;
  color: #fff;
}

/* Animations */
@keyframes fadeInDown {
  from {
    opacity: 0;
    transform: translateY(-24px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes fadeInUp {
  from {
    opacity: 0;
    transform: translateY(24px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes fadeIn {
  from { opacity: 0; }
  to { opacity: 1; }
}

.animate-on-scroll {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity 0.6s ease-out, transform 0.6s ease-out;
}

.animate-on-scroll.visible {
  opacity: 1;
  transform: translateY(0);
}

/* Sections – Background: #FFFFFF or #F7F9FC per guidelines */
.section-hiraba {
  padding: 4rem 0;
  background: var(--hiraba-white);
}

.section-hiraba.alt-bg {
  background: #F7F9FC;
}

.section-hiraba h2 {
  color: var(--hiraba-dark);
  font-size: clamp(1.5rem, 3vw, 2rem);
  font-weight: 700;
  margin-bottom: 2rem;
}

/* Company columns: left-aligned heading and full-width content */
.section-heading-left {
  text-align: left !important;
  margin-bottom: 1.25rem !important;
}

#technologies .text-block,
#industries .text-block,
#vision .text-block,
#mission .text-block {
  max-width: 100%;
  margin-left: 0;
  margin-right: 0;
}

/* Division taglines & colors per brand guidelines */
.company-tagline {
  font-size: 0.95rem;
  font-weight: 600;
  margin-bottom: 1rem;
}

.company-heading-tech,
#technologies .section-heading-left {
  color: var(--hiraba-tech-blue);
}

.company-tagline-tech {
  color: var(--hiraba-tech-blue);
}

.company-heading-industries,
#industries .section-heading-left {
  color: var(--hiraba-corporate-blue);
}

.company-tagline-industries {
  color: var(--hiraba-industrial-orange);
}

/* Cards */
.card-hiraba {
  background: var(--hiraba-card-bg);
  border: none;
  border-radius: 10px;
  box-shadow: 0 3px 12px rgba(0, 0, 0, 0.08);
  height: 100%;
  transition: transform 0.2s, box-shadow 0.2s;
}

.card-hiraba:hover {
  transform: translateY(-4px);
  box-shadow: 0 6px 20px rgba(11, 60, 93, 0.15);
}

.card-hiraba .card-title {
  color: var(--hiraba-blue);
  font-weight: 700;
  font-size: clamp(1.05rem, 2vw, 1.2rem);
  margin-bottom: 0.5rem;
  line-height: 1.3;
}

.badge-formerly,
.card-hiraba .badge-formerly {
  background: var(--hiraba-orange);
  color: #fff;
  font-size: 0.75rem;
  font-weight: 600;
  padding: 0.35rem 0.75rem;
  margin-bottom: 0.5rem;
  display: inline-block;
  border-radius: 4px;
}

.card-hiraba .card-text {
  color: var(--hiraba-dark);
  line-height: 1.6;
  margin-bottom: 1rem;
}

.card-hiraba ul {
  list-style: none;
  padding-left: 0;
  margin-bottom: 0;
}

.card-hiraba ul li {
  position: relative;
  padding-left: 1.25rem;
  margin-bottom: 0.4rem;
  color: var(--hiraba-dark);
}

.card-hiraba ul li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.5em;
  width: 6px;
  height: 6px;
  background: var(--hiraba-orange);
  border-radius: 50%;
}

/* About / Vision / Mission text */
.section-hiraba .lead,
.section-hiraba .text-block {
  max-width: 800px;
  margin-left: auto;
  margin-right: auto;
  line-height: 1.75;
  color: var(--hiraba-dark);
}

.section-hiraba .text-block p {
  margin-bottom: 1rem;
}

.section-hiraba .text-block p:last-child {
  margin-bottom: 0;
}

.section-hiraba .vision-list,
.section-hiraba .mission-list,
.section-hiraba .future-list {
  list-style: none;
  padding-left: 0;
  margin-bottom: 1rem;
}

.section-hiraba .vision-list li,
.section-hiraba .mission-list li,
.section-hiraba .future-list li {
  position: relative;
  padding-left: 1.5rem;
  margin-bottom: 0.5rem;
}

.section-hiraba .vision-list li::before,
.section-hiraba .mission-list li::before,
.section-hiraba .future-list li::before,
.section-hiraba .section-list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.5em;
  width: 8px;
  height: 8px;
  background: var(--hiraba-orange);
  border-radius: 50%;
}

.section-hiraba .section-list {
  list-style: none;
  padding-left: 0;
  margin-bottom: 1rem;
}

.section-hiraba .section-list li {
  position: relative;
  padding-left: 1.5rem;
  margin-bottom: 0.5rem;
}

/* Why Choose cards */
.card-why {
  background: #fff;
  border: 1px solid #eee;
  border-radius: 10px;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.06);
  transition: transform 0.2s, box-shadow 0.2s;
}

.card-why:hover {
  transform: translateY(-4px);
  box-shadow: 0 6px 20px rgba(11, 60, 93, 0.12);
}

.card-why .card-title {
  color: var(--hiraba-blue);
  font-size: 1.1rem;
  font-weight: 700;
  margin-bottom: 0.75rem;
}

.card-why .card-text {
  font-size: 0.95rem;
  line-height: 1.6;
  color: var(--hiraba-dark);
  margin-bottom: 0;
}

.why-icon {
  width: 48px;
  height: 48px;
  margin: 0 auto 1rem;
  background: var(--hiraba-blue);
  color: #fff;
  font-weight: 700;
  font-size: 1.25rem;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* Contact */
.contact-address {
  font-size: 1.1rem;
  margin-bottom: 0.5rem;
  color: var(--hiraba-dark);
}

.contact-intro {
  max-width: 560px;
  margin-left: auto;
  margin-right: auto;
  margin-bottom: 1rem;
  color: var(--hiraba-dark);
}

.contact-block a {
  color: var(--hiraba-orange);
  font-weight: 600;
  text-decoration: none;
}

.contact-block a:hover {
  text-decoration: underline;
}

.contact-block {
  font-size: 1.05rem;
  line-height: 1.8;
}

.contact-block strong {
  color: var(--hiraba-blue);
}

/* Company website links */
.company-website {
  text-align: center;
}

.company-link {
  display: inline-block;
  color: var(--hiraba-orange);
  font-weight: 600;
  text-decoration: none;
  padding: 0.5rem 1rem;
  border: 2px solid var(--hiraba-orange);
  border-radius: 6px;
  transition: background 0.2s, color 0.2s;
}

.company-link:hover {
  background: var(--hiraba-orange);
  color: #fff;
}

/* Footer */
.footer-hiraba {
  background: var(--hiraba-dark);
  color: rgba(255, 255, 255, 0.9);
  text-align: center;
  padding: 2.5rem 1rem;
}

.footer-hiraba p {
  margin-bottom: 0;
  font-size: 0.95rem;
}

/* Utilities */
.text-hiraba-orange {
  color: var(--hiraba-orange);
}

.text-hiraba-blue {
  color: var(--hiraba-blue);
}

.text-hiraba-tech {
  color: var(--hiraba-tech-blue);
}

.bg-hiraba-blue {
  background-color: var(--hiraba-blue);
}

.bg-hiraba-orange {
  background-color: var(--hiraba-orange);
}

/* Responsive tweaks */
@media (min-width: 768px) {
  .navbar-hiraba .navbar-brand img {
    height: 80px;
  }
  .hero-hiraba .hero-logo {
    max-width: 340px;
  }
}

@media (max-width: 991.98px) {
  .navbar-hiraba .navbar-collapse {
    margin-top: 1rem;
    padding-top: 1rem;
    border-top: 1px solid rgba(255, 255, 255, 0.15);
  }
}
