:root {
   --ip-accent: #E8540E;
   --ip-accent-hover: #C94409;
   --ip-accent-light: #FFF0EA;
   --ip-dark: #0F1923;
   --ip-dark-card: #1A2838;
   --ip-dark-border: #2E3F52;
   --ip-bg: #FAFAF8;
   --ip-bg-alt: #F4F1ED;
   --ip-heading: #0F1923;
   --ip-text: #3D4956;
   --ip-muted: #7A8897;
   --ip-border: #E2DDD8;
   --ip-dark-heading: #EEF2F7;
   --ip-dark-body: #BFCBD6;
   --ip-dark-muted: #7D95AA;
   --ip-radius: 10px;
   --ip-radius-sm: 6px;
   --ip-radius-lg: 16px;
   --ip-shadow: 0 2px 16px rgba(15, 25, 35, 0.08);
   --ip-shadow-hover: 0 8px 32px rgba(15, 25, 35, 0.14);
   --ip-shadow-dark: 0 4px 24px rgba(0, 0, 0, 0.3);
   --ip-transition: 0.2s ease;
}

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

html {
   scroll-behavior: smooth;
}

body {
   font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
   font-size: 16px;
   line-height: 1.65;
   color: #3D4956;
   background-color: #FAFAF8;
}

img {
   max-width: 100%;
   height: auto;
   display: block;
}

a {
   color: #E8540E;
   text-decoration: none;
   transition: color 0.2s ease;
}

a:hover {
   color: #C94409;
}

.container {
   max-width: 1200px;
   margin: 0 auto;
   padding: 0 24px;
}

h1, h2, h3, h4, h5, h6 {
   color: #0F1923;
   line-height: 1.25;
}

p {
   margin-bottom: 16px;
}

p:last-child {
   margin-bottom: 0;
}

.ip-section {
   padding: 80px 0;
}

.ip-section-alt {
   padding: 80px 0;
   background-color: #F4F1ED;
}

.ip-section-dark {
   padding: 80px 0;
   background-color: #0F1923;
}

.ip-section-compact {
   padding: 56px 0;
}

.ip-section-label {
   font-size: 13px;
   font-weight: 600;
   letter-spacing: 1.2px;
   text-transform: uppercase;
   color: #E8540E;
   display: block;
   margin-bottom: 12px;
}

.ip-section-title {
   font-size: 34px;
   font-weight: 700;
   color: #0F1923;
   letter-spacing: -0.2px;
   margin-bottom: 16px;
}

.ip-section-subtitle {
   font-size: 18px;
   color: #7A8897;
   line-height: 1.7;
   max-width: 640px;
}

.ip-section-header {
   margin-bottom: 56px;
}

.ip-section-header.center {
   text-align: center;
}

.ip-section-header.center .ip-section-subtitle {
   margin: 0 auto;
}

.ip-section-title-light {
   color: #EEF2F7;
}

.ip-section-subtitle-light {
   color: #BFCBD6;
}

.ip-btn-primary {
   display: inline-block;
   background-color: #E8540E;
   color: #FFFFFF;
   border: none;
   border-radius: 8px;
   padding: 12px 28px;
   font-size: 15px;
   font-weight: 600;
   letter-spacing: 0.3px;
   cursor: pointer;
   transition: background-color 0.2s ease, transform 0.2s ease;
   text-decoration: none;
}

.ip-btn-primary:hover {
   background-color: #C94409;
   color: #FFFFFF;
   transform: translateY(-1px);
}

.ip-btn-outline {
   display: inline-block;
   background-color: transparent;
   color: #E8540E;
   border: 2px solid #E8540E;
   border-radius: 8px;
   padding: 10px 26px;
   font-size: 15px;
   font-weight: 600;
   letter-spacing: 0.3px;
   cursor: pointer;
   transition: background-color 0.2s ease;
   text-decoration: none;
}

.ip-btn-outline:hover {
   background-color: #FFF0EA;
   color: #E8540E;
}

.ip-btn-white {
   display: inline-block;
   background-color: #FFFFFF;
   color: #E8540E;
   border: none;
   border-radius: 8px;
   padding: 12px 28px;
   font-size: 15px;
   font-weight: 600;
   letter-spacing: 0.3px;
   cursor: pointer;
   transition: background-color 0.2s ease, transform 0.2s ease;
   text-decoration: none;
}

.ip-btn-white:hover {
   background-color: #FFF0EA;
   color: #E8540E;
   transform: translateY(-1px);
}

.ip-nav {
   background-color: #0F1923;
   height: 72px;
   position: fixed;
   top: 0;
   left: 0;
   right: 0;
   z-index: 1000;
   display: flex;
   align-items: center;
   transition: box-shadow 0.2s ease;
}

.ip-nav.scrolled {
   box-shadow: 0 2px 20px rgba(0, 0, 0, 0.3);
}

.ip-nav-inner {
   display: flex;
   align-items: center;
   justify-content: space-between;
   width: 100%;
   max-width: 1200px;
   margin: 0 auto;
   padding: 0 24px;
}

.ip-nav-logo {
   font-size: 20px;
   font-weight: 700;
   color: #EEF2F7;
   text-decoration: none;
   display: flex;
   align-items: center;
   gap: 4px;
   flex-shrink: 0;
}

.ip-nav-logo .logo-accent {
   color: #E8540E;
}

.ip-nav-logo:hover {
   color: #EEF2F7;
}

.ip-nav-links {
   display: flex;
   align-items: center;
   gap: 32px;
   list-style: none;
}

.ip-nav-links a,
.ip-nav-links a:visited {
   font-size: 15px;
   font-weight: 500;
   letter-spacing: 0.1px;
   color: #BFCBD6;
   text-decoration: none;
   transition: color 0.2s ease;
}

.ip-nav-links a:hover,
.ip-nav-links a.active {
   color: #E8540E;
}

.ip-nav-cta {
   flex-shrink: 0;
}

.ip-hamburger {
   display: none;
   flex-direction: column;
   gap: 5px;
   cursor: pointer;
   padding: 4px;
   background: none;
   border: none;
}

.ip-hamburger span {
   display: block;
   width: 24px;
   height: 2px;
   background-color: #EEF2F7;
   transition: transform 0.2s ease, opacity 0.2s ease;
}

.ip-nav-mobile {
   display: none;
   flex-direction: column;
   background-color: #0F1923;
   padding: 20px 24px;
   position: absolute;
   top: 72px;
   left: 0;
   right: 0;
   border-top: 1px solid #2E3F52;
   z-index: 999;
}

.ip-nav-mobile.open {
   display: flex;
}

.ip-nav-mobile a,
.ip-nav-mobile a:visited {
   font-size: 15px;
   font-weight: 500;
   color: #BFCBD6;
   padding: 12px 0;
   border-bottom: 1px solid #2E3F52;
   text-decoration: none;
}

.ip-nav-mobile a:hover {
   color: #E8540E;
}

.ip-nav-mobile .ip-btn-primary {
   margin-top: 16px;
   text-align: center;
}

.ip-hero {
   background-color: #0F1923;
   padding: 120px 0 100px;
   position: relative;
   margin-top: 72px;
   overflow: hidden;
}

.ip-hero-bg {
   position: absolute;
   inset: 0;
   background-image: url('../img/hero-bg.webp');
   background-size: cover;
   background-position: center;
   opacity: 0.18;
}

.ip-hero-content {
   position: relative;
   z-index: 1;
   max-width: 660px;
}

.ip-hero-label {
   font-size: 13px;
   font-weight: 600;
   letter-spacing: 1.4px;
   text-transform: uppercase;
   color: #E8540E;
   display: block;
   margin-bottom: 20px;
}

.ip-hero h1 {
   font-size: 52px;
   font-weight: 700;
   line-height: 1.15;
   letter-spacing: -0.5px;
   color: #EEF2F7;
   margin-bottom: 24px;
}

.ip-hero-sub {
   font-size: 18px;
   line-height: 1.7;
   color: #BFCBD6;
   margin-bottom: 40px;
}

.ip-hero-actions {
   display: flex;
   gap: 16px;
   flex-wrap: wrap;
}

.ip-hero-inner {
   margin-top: 72px;
   padding: 72px 0;
   background-color: #0F1923;
   text-align: center;
}

.ip-hero-inner h1 {
   font-size: 42px;
   font-weight: 700;
   letter-spacing: -0.3px;
   color: #EEF2F7;
   margin-bottom: 16px;
}

.ip-hero-inner p {
   font-size: 18px;
   color: #BFCBD6;
   max-width: 560px;
   margin: 0 auto;
   line-height: 1.7;
}

.ip-stats-bar {
   background-color: #1A2838;
   padding: 40px 0;
}

.ip-stats-grid {
   display: grid;
   grid-template-columns: repeat(4, 1fr);
   gap: 0;
}

.ip-stat-item {
   text-align: center;
   padding: 24px 20px;
   border-right: 1px solid #2E3F52;
}

.ip-stat-item:last-child {
   border-right: none;
}

.ip-stat-number {
   font-size: 40px;
   font-weight: 700;
   color: #E8540E;
   line-height: 1;
   display: block;
   margin-bottom: 8px;
}

.ip-stat-label {
   font-size: 14px;
   color: #7D95AA;
   letter-spacing: 0.2px;
}

.ip-features-grid-3 {
   display: grid;
   grid-template-columns: repeat(3, 1fr);
   gap: 28px;
}

.ip-feature-card {
   background-color: #FFFFFF;
   border: 1px solid #E2DDD8;
   border-radius: 10px;
   padding: 28px;
   box-shadow: 0 2px 16px rgba(15, 25, 35, 0.08);
   transition: box-shadow 0.2s ease, transform 0.2s ease;
   display: flex;
   flex-direction: column;
}

.ip-feature-card:hover {
   box-shadow: 0 8px 32px rgba(15, 25, 35, 0.14);
   transform: translateY(-2px);
}

.ip-feature-icon {
   width: 52px;
   height: 52px;
   background-color: #FFF0EA;
   border-radius: 10px;
   display: flex;
   align-items: center;
   justify-content: center;
   margin-bottom: 20px;
   font-size: 22px;
   color: #E8540E;
}

.ip-feature-card h3 {
   font-size: 22px;
   font-weight: 600;
   color: #0F1923;
   margin-bottom: 12px;
}

.ip-feature-card p {
   font-size: 16px;
   color: #3D4956;
   line-height: 1.65;
}

.ip-features-grid-6 {
   display: grid;
   grid-template-columns: repeat(3, 1fr);
   gap: 28px;
}

.ip-portfolio-card {
   background-color: #FFFFFF;
   border: 1px solid #E2DDD8;
   border-radius: 10px;
   overflow: hidden;
   box-shadow: 0 2px 16px rgba(15, 25, 35, 0.08);
   transition: box-shadow 0.2s ease, transform 0.2s ease;
   display: flex;
   flex-direction: column;
   height: 100%;
}

.ip-portfolio-card:hover {
   box-shadow: 0 8px 32px rgba(15, 25, 35, 0.14);
   transform: translateY(-2px);
}

.ip-portfolio-card-img {
   width: 100%;
   height: 200px;
   object-fit: cover;
   background-color: #1A2838;
   display: flex;
   align-items: center;
   justify-content: center;
}

.ip-portfolio-card-img img {
   width: 100%;
   height: 200px;
   object-fit: cover;
}

.ip-portfolio-card-body {
   padding: 24px;
   flex: 1;
   display: flex;
   flex-direction: column;
}

.ip-portfolio-card-badge {
   display: inline-block;
   font-size: 12px;
   font-weight: 600;
   letter-spacing: 0.5px;
   text-transform: uppercase;
   background-color: #FFF0EA;
   color: #E8540E;
   border-radius: 6px;
   padding: 4px 10px;
   margin-bottom: 12px;
}

.ip-portfolio-card-stage {
   display: inline-block;
   font-size: 12px;
   font-weight: 500;
   background-color: #F4F1ED;
   color: #7A8897;
   border-radius: 6px;
   padding: 4px 10px;
   margin-bottom: 12px;
   margin-left: 8px;
}

.ip-portfolio-card h3 {
   font-size: 20px;
   font-weight: 600;
   color: #0F1923;
   margin-bottom: 8px;
}

.ip-portfolio-card p {
   font-size: 15px;
   color: #3D4956;
   line-height: 1.6;
   flex: 1;
}

.ip-process-section {
   background-color: #F4F1ED;
}

.ip-process-steps {
   display: grid;
   grid-template-columns: repeat(4, 1fr);
   gap: 28px;
}

.ip-process-step {
   text-align: center;
   padding: 28px 20px;
}

.ip-process-number {
   font-size: 48px;
   font-weight: 700;
   color: #E8540E;
   line-height: 1;
   display: block;
   margin-bottom: 16px;
   opacity: 0.9;
}

.ip-process-step h3 {
   font-size: 20px;
   font-weight: 600;
   color: #0F1923;
   margin-bottom: 12px;
}

.ip-process-step p {
   font-size: 15px;
   color: #3D4956;
   line-height: 1.6;
}

.ip-testimonials {
   background-color: #0F1923;
}

.ip-testimonial-grid {
   display: grid;
   grid-template-columns: repeat(3, 1fr);
   gap: 28px;
}

.ip-testimonial-card {
   background-color: #1A2838;
   border: 1px solid #2E3F52;
   border-radius: 10px;
   padding: 28px;
   display: flex;
   flex-direction: column;
}

.ip-testimonial-quote {
   font-size: 18px;
   color: #BFCBD6;
   line-height: 1.7;
   font-style: italic;
   flex: 1;
   margin-bottom: 24px;
}

.ip-testimonial-quote::before {
   content: '"';
   font-size: 40px;
   color: #E8540E;
   line-height: 0;
   vertical-align: -16px;
   margin-right: 4px;
}

.ip-testimonial-author {
   display: flex;
   flex-direction: column;
   gap: 2px;
}

.ip-testimonial-name {
   font-size: 15px;
   font-weight: 600;
   color: #EEF2F7;
}

.ip-testimonial-role {
   font-size: 13px;
   color: #7D95AA;
}

.ip-cta-banner {
   background-color: #E8540E;
   padding: 80px 0;
   text-align: center;
}

.ip-cta-banner h2 {
   font-size: 36px;
   font-weight: 700;
   color: #FFFFFF;
   margin-bottom: 16px;
}

.ip-cta-banner p {
   font-size: 18px;
   color: rgba(255, 255, 255, 0.88);
   margin-bottom: 36px;
   max-width: 560px;
   margin-left: auto;
   margin-right: auto;
}

.ip-cta-banner .ip-btn-white {
   margin: 0 8px;
}

.ip-footer {
   background-color: #0F1923;
   padding: 72px 0 0;
}

.ip-footer-grid {
   display: grid;
   grid-template-columns: 2fr 1fr 1fr 1fr;
   gap: 48px;
   padding-bottom: 56px;
}

.ip-footer-brand .brand-name {
   font-size: 20px;
   font-weight: 700;
   color: #EEF2F7;
   display: block;
   margin-bottom: 12px;
}

.ip-footer-brand .brand-desc {
   font-size: 15px;
   color: #7D95AA;
   line-height: 1.65;
   margin-bottom: 16px;
}

.ip-footer-brand .brand-email {
   font-size: 14px;
   color: #7D95AA;
}

.ip-footer-brand .brand-email a {
   color: #E8540E;
}

.ip-footer-brand .brand-email a:hover {
   color: #C94409;
}

.ip-footer-col h4 {
   font-size: 14px;
   font-weight: 600;
   letter-spacing: 0.8px;
   text-transform: uppercase;
   color: #EEF2F7;
   margin-bottom: 20px;
}

.ip-footer-col ul {
   list-style: none;
}

.ip-footer-col ul li {
   margin-bottom: 12px;
}

.ip-footer-col ul li a {
   font-size: 14px;
   color: #7D95AA;
   text-decoration: none;
   transition: color 0.2s ease;
}

.ip-footer-col ul li a:hover {
   color: #E8540E;
}

.ip-footer-bottom {
   border-top: 1px solid #2E3F52;
   padding: 24px 0;
}

.ip-footer-bottom-inner {
   display: flex;
   align-items: center;
   justify-content: space-between;
}

.ip-footer-copyright {
   font-size: 14px;
   color: #4A5E70;
}

.ip-footer-social {
   display: flex;
   gap: 16px;
}

.ip-footer-social a {
   font-size: 16px;
   color: #7D95AA;
   transition: color 0.2s ease;
}

.ip-footer-social a:hover {
   color: #E8540E;
}

.ip-cookie-banner {
   position: fixed;
   bottom: 0;
   left: 0;
   right: 0;
   background-color: #0F1923;
   border-top: 2px solid #2E3F52;
   padding: 20px 24px;
   z-index: 9999;
   display: none;
}

.ip-cookie-banner.show {
   display: block;
}

.ip-cookie-inner {
   max-width: 1200px;
   margin: 0 auto;
   display: flex;
   align-items: center;
   justify-content: space-between;
   gap: 24px;
   flex-wrap: wrap;
}

.ip-cookie-text {
   font-size: 14px;
   color: #BFCBD6;
   line-height: 1.6;
   flex: 1;
   min-width: 280px;
}

.ip-cookie-text a {
   color: #E8540E;
}

.ip-cookie-actions {
   display: flex;
   align-items: center;
   gap: 16px;
   flex-shrink: 0;
}

.ip-cookie-decline {
   font-size: 14px;
   color: #7D95AA;
   cursor: pointer;
   background: none;
   border: none;
   text-decoration: underline;
   transition: color 0.2s ease;
}

.ip-cookie-decline:hover {
   color: #BFCBD6;
}

.ip-about-story {
   display: grid;
   grid-template-columns: 1fr 1fr;
   gap: 72px;
   align-items: center;
}

.ip-about-text h2 {
   font-size: 34px;
   font-weight: 700;
   color: #0F1923;
   letter-spacing: -0.2px;
   margin-bottom: 20px;
}

.ip-about-text p {
   font-size: 17px;
   color: #3D4956;
   line-height: 1.7;
   margin-bottom: 20px;
}

.ip-about-img img {
   width: 100%;
   height: 400px;
   object-fit: cover;
   border-radius: 10px;
   box-shadow: 0 8px 32px rgba(15, 25, 35, 0.14);
}

.ip-about-placeholder {
   width: 100%;
   height: 400px;
   background-color: #1A2838;
   border-radius: 10px;
   display: flex;
   align-items: center;
   justify-content: center;
   flex-direction: column;
   gap: 8px;
   color: #7D95AA;
   font-size: 14px;
}

.ip-team-grid {
   display: grid;
   grid-template-columns: repeat(3, 1fr);
   gap: 28px;
}

.ip-team-card {
   background-color: #FFFFFF;
   border: 1px solid #E2DDD8;
   border-radius: 10px;
   overflow: hidden;
   box-shadow: 0 2px 16px rgba(15, 25, 35, 0.08);
   transition: box-shadow 0.2s ease, transform 0.2s ease;
   text-align: center;
}

.ip-team-card:hover {
   box-shadow: 0 8px 32px rgba(15, 25, 35, 0.14);
   transform: translateY(-2px);
}

.ip-team-card img {
   width: 100%;
   height: 280px;
   object-fit: cover;
   object-position: top;
}

.ip-team-placeholder {
   width: 100%;
   height: 280px;
   background-color: #F4F1ED;
   display: flex;
   align-items: center;
   justify-content: center;
   font-size: 48px;
   color: #E2DDD8;
}

.ip-team-card-body {
   padding: 24px;
}

.ip-team-card h3 {
   font-size: 20px;
   font-weight: 600;
   color: #0F1923;
   margin-bottom: 4px;
}

.ip-team-card-title {
   font-size: 14px;
   color: #E8540E;
   font-weight: 500;
   letter-spacing: 0.2px;
   margin-bottom: 12px;
   display: block;
}

.ip-team-card p {
   font-size: 14px;
   color: #7A8897;
   line-height: 1.6;
}

.ip-contact-section {
   padding: 80px 0;
}

.ip-contact-grid {
   display: grid;
   grid-template-columns: 1fr 1fr;
   gap: 72px;
   align-items: start;
}

.ip-contact-info h2 {
   font-size: 34px;
   font-weight: 700;
   color: #0F1923;
   margin-bottom: 20px;
   letter-spacing: -0.2px;
}

.ip-contact-info p {
   font-size: 17px;
   color: #3D4956;
   line-height: 1.7;
   margin-bottom: 32px;
}

.ip-contact-detail {
   display: flex;
   align-items: flex-start;
   gap: 16px;
   margin-bottom: 24px;
}

.ip-contact-detail-icon {
   width: 44px;
   height: 44px;
   background-color: #FFF0EA;
   border-radius: 10px;
   display: flex;
   align-items: center;
   justify-content: center;
   font-size: 18px;
   color: #E8540E;
   flex-shrink: 0;
}

.ip-contact-detail-text {
   display: flex;
   flex-direction: column;
   gap: 2px;
}

.ip-contact-detail-label {
   font-size: 12px;
   font-weight: 600;
   letter-spacing: 0.8px;
   text-transform: uppercase;
   color: #7A8897;
}

.ip-contact-detail-value {
   font-size: 16px;
   color: #0F1923;
   font-weight: 500;
}

.ip-contact-detail-value a {
   color: #0F1923;
   text-decoration: none;
}

.ip-contact-detail-value a:hover {
   color: #E8540E;
}

.ip-contact-form {
   background-color: #FFFFFF;
   border: 1px solid #E2DDD8;
   border-radius: 10px;
   padding: 40px;
   box-shadow: 0 2px 16px rgba(15, 25, 35, 0.08);
}

.ip-form-group {
   margin-bottom: 20px;
}

.ip-form-group label {
   display: block;
   font-size: 14px;
   font-weight: 600;
   color: #0F1923;
   margin-bottom: 8px;
}

.ip-form-group input,
.ip-form-group textarea,
.ip-form-group select {
   width: 100%;
   padding: 12px 16px;
   border: 1px solid #E2DDD8;
   border-radius: 8px;
   font-size: 15px;
   color: #0F1923;
   background-color: #FAFAF8;
   font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
   transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.ip-form-group input:focus,
.ip-form-group textarea:focus,
.ip-form-group select:focus {
   outline: none;
   border-color: #E8540E;
   box-shadow: 0 0 0 3px rgba(232, 84, 14, 0.12);
}

.ip-form-group textarea {
   resize: vertical;
   min-height: 140px;
}

.ip-form-row {
   display: grid;
   grid-template-columns: 1fr 1fr;
   gap: 16px;
}

.ip-blog-grid {
   display: grid;
   grid-template-columns: repeat(3, 1fr);
   gap: 28px;
}

.ip-blog-card {
   background-color: #FFFFFF;
   border: 1px solid #E2DDD8;
   border-radius: 10px;
   overflow: hidden;
   box-shadow: 0 2px 16px rgba(15, 25, 35, 0.08);
   transition: box-shadow 0.2s ease, transform 0.2s ease;
   display: flex;
   flex-direction: column;
   height: 100%;
}

.ip-blog-card:hover {
   box-shadow: 0 8px 32px rgba(15, 25, 35, 0.14);
   transform: translateY(-2px);
}

.ip-blog-card-img a {
   display: block;
}

.ip-blog-card-img img {
   width: 100%;
   height: 200px;
   object-fit: cover;
}

.ip-blog-card-body {
   padding: 24px;
   flex: 1;
   display: flex;
   flex-direction: column;
}

.ip-blog-meta {
   font-size: 13px;
   color: #7A8897;
   letter-spacing: 0.2px;
   margin-bottom: 10px;
   display: block;
}

.ip-blog-card h3 {
   font-size: 18px;
   font-weight: 600;
   color: #0F1923;
   line-height: 1.4;
   margin-bottom: 10px;
}

.ip-blog-card h3 a {
   color: #0F1923;
   text-decoration: none;
}

.ip-blog-card h3 a:hover {
   color: #E8540E;
}

.ip-blog-card p {
   font-size: 14px;
   color: #7A8897;
   line-height: 1.6;
   flex: 1;
   margin-bottom: 0;
}

.ip-blog-read-more {
   display: inline-block;
   font-size: 14px;
   font-weight: 600;
   color: #E8540E;
   text-decoration: none;
   margin-top: auto;
   padding-top: 16px;
   transition: color 0.2s ease;
}

.ip-blog-read-more:hover {
   color: #C94409;
}

.ip-legal-content {
   max-width: 780px;
   margin: 0 auto;
   padding: 72px 24px;
}

.ip-legal-content h1 {
   font-size: 36px;
   font-weight: 700;
   color: #0F1923;
   margin-bottom: 8px;
}

.ip-legal-content .ip-legal-date {
   font-size: 14px;
   color: #7A8897;
   display: block;
   margin-bottom: 40px;
}

.ip-legal-content h2 {
   font-size: 22px;
   font-weight: 700;
   color: #0F1923;
   margin-top: 48px;
   margin-bottom: 16px;
}

.ip-legal-content h3 {
   font-size: 18px;
   font-weight: 600;
   color: #0F1923;
   margin-top: 32px;
   margin-bottom: 12px;
}

.ip-legal-content p {
   font-size: 16px;
   color: #3D4956;
   line-height: 1.75;
   margin-bottom: 16px;
}

.ip-legal-content ul,
.ip-legal-content ol {
   padding-left: 24px;
   margin-bottom: 16px;
}

.ip-legal-content li {
   font-size: 16px;
   color: #3D4956;
   line-height: 1.75;
   margin-bottom: 8px;
}

.ip-legal-content a {
   color: #E8540E;
}

.ip-404-page {
   min-height: 100vh;
   background-color: #0F1923;
   display: flex;
   align-items: center;
   justify-content: center;
   text-align: center;
   padding: 40px 24px;
}

.ip-404-inner {
   max-width: 560px;
}

.ip-404-number {
   font-size: 96px;
   font-weight: 700;
   color: #E8540E;
   line-height: 1;
   display: block;
   margin-bottom: 24px;
}

.ip-404-heading {
   font-size: 36px;
   font-weight: 700;
   color: #EEF2F7;
   margin-bottom: 16px;
}

.ip-404-sub {
   font-size: 18px;
   color: #BFCBD6;
   line-height: 1.7;
   margin-bottom: 40px;
}

.ip-404-links {
   display: flex;
   align-items: center;
   justify-content: center;
   gap: 20px;
   margin-top: 24px;
   flex-wrap: wrap;
}

.ip-404-links a {
   font-size: 14px;
   color: #7D95AA;
   text-decoration: none;
   transition: color 0.2s ease;
}

.ip-404-links a:hover {
   color: #E8540E;
}

.ip-404-links .sep {
   color: #2E3F52;
}

.ip-badge {
   display: inline-block;
   font-size: 12px;
   font-weight: 600;
   letter-spacing: 0.5px;
   padding: 5px 12px;
   border-radius: 6px;
   background-color: #FFF0EA;
   color: #E8540E;
}

.ip-portfolio-filters {
   display: flex;
   gap: 8px;
   flex-wrap: wrap;
   margin-bottom: 40px;
}

.ip-filter-btn {
   font-size: 13px;
   font-weight: 600;
   padding: 8px 18px;
   border-radius: 6px;
   border: 1px solid #E2DDD8;
   background-color: #FFFFFF;
   color: #7A8897;
   cursor: pointer;
   transition: all 0.2s ease;
}

.ip-filter-btn:hover,
.ip-filter-btn.active {
   background-color: #E8540E;
   border-color: #E8540E;
   color: #FFFFFF;
}

.ip-principles-grid {
   display: grid;
   grid-template-columns: repeat(3, 1fr);
   gap: 28px;
}

.ip-principle-card {
   background-color: #FFFFFF;
   border: 1px solid #E2DDD8;
   border-radius: 10px;
   padding: 28px;
   box-shadow: 0 2px 16px rgba(15, 25, 35, 0.08);
}

.ip-principle-card h3 {
   font-size: 20px;
   font-weight: 700;
   color: #0F1923;
   margin-bottom: 12px;
}

.ip-principle-card p {
   font-size: 15px;
   color: #3D4956;
   line-height: 1.65;
}

.ip-principle-num {
   font-size: 36px;
   font-weight: 700;
   color: #E8540E;
   opacity: 0.6;
   display: block;
   margin-bottom: 12px;
}

@media (max-width: 991px) {
   .ip-stats-grid {
      grid-template-columns: repeat(2, 1fr);
   }
   .ip-stat-item:nth-child(2) {
      border-right: none;
   }
   .ip-stat-item:nth-child(3),
   .ip-stat-item:nth-child(4) {
      border-top: 1px solid #2E3F52;
   }
   .ip-features-grid-3 {
      grid-template-columns: 1fr;
   }
   .ip-features-grid-6 {
      grid-template-columns: repeat(2, 1fr);
   }
   .ip-process-steps {
      grid-template-columns: repeat(2, 1fr);
   }
   .ip-testimonial-grid {
      grid-template-columns: 1fr;
   }
   .ip-footer-grid {
      grid-template-columns: 1fr 1fr;
      gap: 32px;
   }
   .ip-about-story {
      grid-template-columns: 1fr;
      gap: 40px;
   }
   .ip-team-grid {
      grid-template-columns: repeat(2, 1fr);
   }
   .ip-contact-grid {
      grid-template-columns: 1fr;
      gap: 40px;
   }
   .ip-blog-grid {
      grid-template-columns: repeat(2, 1fr);
   }
   .ip-principles-grid {
      grid-template-columns: 1fr;
   }
}

@media (max-width: 767px) {
   .ip-nav-links,
   .ip-nav-cta {
      display: none;
   }
   .ip-hamburger {
      display: flex;
   }
   .ip-hero h1 {
      font-size: 36px;
   }
   .ip-section-title {
      font-size: 28px;
   }
   .ip-hero-inner h1 {
      font-size: 32px;
   }
   .ip-stats-grid {
      grid-template-columns: repeat(2, 1fr);
   }
   .ip-features-grid-6 {
      grid-template-columns: 1fr;
   }
   .ip-process-steps {
      grid-template-columns: 1fr;
   }
   .ip-team-grid {
      grid-template-columns: 1fr;
   }
   .ip-blog-grid {
      grid-template-columns: 1fr;
   }
   .ip-footer-grid {
      grid-template-columns: 1fr;
      gap: 32px;
   }
   .ip-footer-bottom-inner {
      flex-direction: column;
      gap: 12px;
      text-align: center;
   }
   .ip-form-row {
      grid-template-columns: 1fr;
   }
   .ip-cta-banner h2 {
      font-size: 28px;
   }
   .ip-contact-form {
      padding: 24px;
   }
   .ip-cookie-inner {
      flex-direction: column;
      align-items: flex-start;
      gap: 16px;
   }
}


/* vc0502-dark-section-safeguard -- prevent dark-bg sections from inheriting default dark text */
[class*="-dark"] h1,
[class*="-dark"] h2,
[class*="-dark"] h3,
[class*="-dark"] h4,
[class*="-dark"] h5,
[class*="-dark"] h6,
[class*="dark-"] h1,
[class*="dark-"] h2,
[class*="dark-"] h3,
[class*="dark-"] h4,
[class*="dark-"] h5,
[class*="dark-"] h6,
[class*="-night"] h1,
[class*="-night"] h2,
[class*="-night"] h3 {
  color: #FAEFE0 !important;
}
[class*="-dark"] p,
[class*="-dark"] .lead,
[class*="dark-"] p,
[class*="dark-"] .lead {
  color: color-mix(in srgb, #FAEFE0 82%, transparent) !important;
}
[class*="-dark"] .eyebrow,
[class*="-dark"] .kicker,
[class*="-dark"] [class*="section-label"],
[class*="dark-"] .eyebrow,
[class*="dark-"] .kicker,
[class*="dark-"] [class*="section-label"] {
  color: #F59F6A !important;
}


/* ===== Fix: stats-bar heading on dark bg ===== */
.ip-stats-bar .ip-stats-heading h2 {
  color: var(--ip-dark-heading);
}
.ip-stats-bar .ip-stats-heading p {
  color: var(--ip-dark-body);
}

/* ===== Blog article detail layout (ip-article-*) ===== */
.ip-article-layout {
  max-width: 760px;
  margin: 0 auto;
}
.ip-article-body {
  font-size: 17px;
  line-height: 1.75;
  color: var(--ip-text);
}
.ip-article-hero-img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: var(--ip-radius);
  margin-bottom: 40px;
  box-shadow: var(--ip-shadow);
}
.ip-article-body > p {
  font-size: 17px;
  line-height: 1.75;
  color: var(--ip-text);
  margin: 0 0 1.25em;
}
.ip-article-body > p:first-of-type {
  font-size: 19px;
  color: var(--ip-heading);
  line-height: 1.6;
}
.ip-article-body h2 {
  font-size: 1.55rem;
  font-weight: 700;
  color: var(--ip-heading);
  margin: 2.2em 0 0.7em;
  letter-spacing: -0.01em;
}
.ip-article-body h3 {
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--ip-heading);
  margin: 1.8em 0 0.6em;
}
.ip-article-body ul,
.ip-article-body ol {
  margin: 0 0 1.25em;
  padding-left: 1.4em;
}
.ip-article-body li {
  margin-bottom: 0.5em;
  color: var(--ip-text);
  line-height: 1.7;
}
.ip-article-body blockquote {
  margin: 1.8em 0;
  padding: 16px 24px;
  border-left: 4px solid var(--ip-accent);
  background: var(--ip-accent-light);
  border-radius: 0 var(--ip-radius-sm) var(--ip-radius-sm) 0;
}
.ip-article-body blockquote p {
  font-size: 17px;
  font-style: italic;
  color: var(--ip-heading);
  margin: 0;
  line-height: 1.7;
}
.ip-article-body a {
  color: var(--ip-accent);
  text-decoration: underline;
  text-underline-offset: 2px;
}
.ip-article-body a:hover {
  color: var(--ip-accent-hover);
}
.ip-article-body img:not(.ip-article-hero-img) {
  display: block;
  max-width: 100%;
  height: auto;
  border-radius: var(--ip-radius-sm);
  margin: 1.6em auto;
}

/* Related posts block inside article */
.ip-article-related {
  margin-top: 72px;
  padding-top: 40px;
  border-top: 1px solid var(--ip-border);
}
.ip-article-related h3 {
  font-size: 1.3rem;
  font-weight: 700;
  color: var(--ip-heading);
  margin: 0 0 24px;
}

/* Related grid uses full width of article area, not constrained 760 */
.ip-article-related .ip-blog-grid-3 {
  grid-template-columns: repeat(3, 1fr);
}
@media (max-width: 767.98px) {
  .ip-article-layout { max-width: 100%; }
  .ip-article-body { font-size: 16px; }
  .ip-article-body > p:first-of-type { font-size: 17px; }
  .ip-article-body h2 { font-size: 1.35rem; }
  .ip-article-related .ip-blog-grid-3 { grid-template-columns: 1fr; }
}
