/* Moved @import to tailwind-input.css */

/* Global / Reset */
:root {
    --primary-color: #e60013;
    /* The red from the logo roughly */
    --text-dark: #222;
    --text-body: #444;
    --text-light: #777;
    --bg-light: #f8f9fa;
    --footer-bg: #1f1f1f;
    --white: #ffffff;
    --font-heading: 'Pretendard', sans-serif;
    --font-body: 'Pretendard', sans-serif;
    --container-width: 1400px;
}

.mobile-break {
    display: none;
}

/* Ensure no global filter on images */
img {
    filter: none;
    -webkit-filter: none;
}


@media (max-width: 600px) {
    .mobile-break {
        display: inline;
    }
}

@media (max-width: 700px) {
    .desktop-break {
        display: none;
    }
}

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

html,
body {
    overflow-x: hidden;
    width: 100%;
    max-width: 100vw;
    position: relative;
}

body {
    font-family: var(--font-body);
    color: var(--text-body);
    line-height: 1.6;
    background-color: var(--white);
    letter-spacing: -0.5px;
}

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

ul {
    list-style: none;
}

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

.container {
    max-width: var(--container-width);
    margin: 0 auto;
    width: 90%;
    padding: 0 20px;
}

.section {
    padding: 80px 0;
}

.text-center {
    text-align: center;
}

.text-highlight {
    color: var(--primary-color);
    font-weight: 900;
}

/* Large section titles - scope to section-header or hero to avoid conflicts */
.section-header h3,
.hero h3,
.hero-content h3 {
    font-size: clamp(40px, 5vw, 55px);
    font-weight: 900;
    margin-bottom: 20px;
    color: var(--text-dark);
    line-height: 1.3;
    word-break: keep-all;
    /* Prevent awkward breaks with large text */
}

.section-header p {
    font-size: clamp(16px, 2vw, 20px);
    font-weight: 300;
    color: #333333;
    margin-top: 10px;
    letter-spacing: -0.5px;
    line-height: 1.6;
}

.section-header h4,
.hero h4,
.hero-content h4 {
    font-size: 30px;
    font-weight: 700;
    margin-bottom: 10px;
}

/* Buttons */
.btn {
    display: inline-block;
    padding: 10px 25px;
    border-radius: 50px;
    font-weight: 500;
    transition: all 0.3s ease;
    cursor: pointer;
}

.btn-outline {
    border: 1px solid #ccc;
    color: var(--text-dark);
}

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

.btn-white-outline {
    border: 1px solid rgba(255, 255, 255, 0.7);
    color: #fff;
}

.btn-white-outline:hover {
    background: #fff;
    color: var(--primary-color);
}

.btn-dark-outline {
    border: 1px solid #c33;
    color: #c33;
}

.btn-outline-dark {
    border: 1px solid #ccc;
    padding: 8px 40px;
    font-size: 0.9rem;
}

.mt-30 {
    margin-top: 30px;
}

/* Header */
.header {
    padding: 25px 0;
    /* Increased initial size */
    position: sticky;
    top: 0;
    background: rgba(255, 255, 255, 0.95);
    z-index: 10005;
    transition: padding 0.3s ease;
    /* Smooth transition */
}

/* Shrink header on scroll */
/* Shrink header on scroll */
body.scrolled .header {
    padding: 15px 0;
    /* Original size */
    border-bottom: 1px solid #eee;
}

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

.logo {
    display: flex;
    align-items: center;
    width: 200px;
    flex: 0 0 auto;
    transition: opacity 0.5s ease;
}

.logo.intro-hidden,
.hero-logo-large.intro-hidden {
    opacity: 0 !important;
}

.logo.intro-visible,
.hero-logo-large.intro-visible {
    opacity: 1 !important;
}

@media (max-width: 1024px) {
    .logo.intro-hidden {
        opacity: 1 !important;
    }
}

/* Header Right Wrapper */
.header-right {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    width: auto;
    /* Adapted for right alignment */
    flex: 0 0 auto;
    margin-left: 40px;
    /* Space from menu */
}

/* Logo Styles & Animation */
.logo-link {
    display: block;
    position: relative;
    width: 180px;
    /* Increased for wider logo */
    height: 36px;
    /* Adjusted height */
}

/* Ensure images stack */
.logo-link img {
    position: absolute;
    top: 0;
    left: 0;
    height: 100%;
    /* Adjust based on preference */
    width: auto;
}

.logo-main {
    opacity: 0;
    transition: opacity 1s ease-in-out;
}

.logo-main.active {
    opacity: 1;
}

/* Force logo visibility on scroll */
/* Force logo visibility on scroll */
body.scrolled .logo,
body.nav-hover .logo {
    opacity: 1 !important;
}

/* Force hide logo when intro is active (Overrides scroll/hover) */
body.intro-active .logo {
    opacity: 0 !important;
}

body.scrolled .intro-overlay,
body.nav-hover .intro-overlay {
    opacity: 0 !important;
    /* transition handled in base class */
}

.intro-overlay {
    position: absolute;
    top: 0;
    left: 0;
    z-index: 9999;
    pointer-events: none;
    opacity: 0;
    /* Hidden by default */
    transition: opacity 0.5s ease-out;
    /* Smooth fade toggle */
    width: auto;
    height: auto;
}

/* Container active state to show wrapper */
.intro-overlay.active {
    opacity: 1;
}

.curve-part {
    position: absolute;
    top: 0;
    left: 0;
    width: auto;
    /* Use original image size */
    max-width: none;
    /* Override global img max-width */
    height: auto;
    opacity: 0;
    /* Parts hidden initially */
    display: block;
}

/* When active, parts become visible and animate */
.intro-overlay.active .curve-part {
    opacity: 1;
}

/* Top Curve (Gray) - Comes from Top */
.intro-overlay.active .part-1 {
    animation: slideFromTop 1s ease-out forwards;
}

/* Middle Curve (Red) - Comes from Right */
.intro-overlay.active .part-2 {
    animation: slideFromRight 1s ease-out forwards;
}

/* Bottom Curve (Gray) - Comes from Left */
.intro-overlay.active .part-3 {
    animation: slideFromLeft 1s ease-out forwards;
}

/* Exiting Animations */
.intro-overlay.exiting {
    opacity: 1;
}

.intro-overlay.exiting .part-1 {
    animation: slideFromTopOut 1s ease-in forwards;
}

.intro-overlay.exiting .part-2 {
    animation: slideFromRightOut 1s ease-in forwards;
}

.intro-overlay.exiting .part-3 {
    animation: slideFromLeftOut 1s ease-in forwards;
}

@keyframes slideFromTop {
    0% {
        clip-path: inset(0 0 100% 0);
        opacity: 1;
    }

    100% {
        clip-path: inset(0 0 0 0);
        opacity: 1;
    }
}

@keyframes slideFromTopOut {
    0% {
        clip-path: inset(0 0 0 0);
        opacity: 1;
    }

    100% {
        clip-path: inset(0 0 100% 0);
        opacity: 1;
    }
}

@keyframes slideFromRight {
    0% {
        clip-path: inset(0 0 0 100%);
        opacity: 1;
    }

    100% {
        clip-path: inset(0 0 0 0);
        opacity: 1;
    }
}

@keyframes slideFromRightOut {
    0% {
        clip-path: inset(0 0 0 0);
        opacity: 1;
    }

    100% {
        clip-path: inset(0 0 0 100%);
        opacity: 1;
    }
}

@keyframes slideFromLeft {
    0% {
        clip-path: inset(0 100% 0 0);
        opacity: 1;
    }

    100% {
        clip-path: inset(0 0 0 0);
        opacity: 1;
    }
}

@keyframes slideFromLeftOut {
    0% {
        clip-path: inset(0 0 0 0);
        opacity: 1;
    }

    100% {
        clip-path: inset(0 100% 0 0);
        opacity: 1;
    }
}

.nav {
    display: flex;
    justify-content: flex-end;
    /* Align nav items to the right */
    align-items: center;
    flex: 1;
    /* Take remaining space */
}

.nav-list {
    display: flex;
    gap: 0;
    /* Use fixed width instead of gap */
    margin: 0;
    list-style: none;
}

/* Base style: hide mobile submenu on desktop */
.mobile-submenu {
    display: none;
}

/* Mega Menu Trigger */
.nav-item {
    width: 160px;
    /* Fixed width matching mega menu columns */
    text-align: left;
}

.nav-item>a {
    font-weight: 400;
    color: var(--text-dark);
    font-size: 20px;
    text-decoration: none;
    transition: color 0.3s;
    padding: 20px 0 20px 15px;
    display: block;
    /* Ensure full width click/hover */
}

.nav-item>a.active {
    color: var(--primary-color);
    font-weight: 700;
}

.nav-item>a:hover {
    color: var(--primary-color);
}

/* Mega Menu Container */
.mega-menu {
    position: absolute;
    top: 100%;
    /* Below header */
    left: 0;
    width: 100%;
    background: #f4f5f7;
    /* Light grey background */
    padding: 30px 0;
    /* Reduced from 40px */
    opacity: 0;
    visibility: hidden;
    transition: all 0.3s ease;
    border-top: 1px solid #ddd;
    box-shadow: 0 5px 10px rgba(0, 0, 0, 0.05);
    z-index: 999;
}

/* Invisible bridge to prevent menu from closing when moving mouse */
.mega-menu::before {
    content: '';
    position: absolute;
    top: -20px;
    /* Adjusted to match gap if any, or just cover enough */
    left: 0;
    width: 100%;
    height: 30px;
    /* Adjusted height */
    background: transparent;
}

/* Show Mega Menu on Hover or Active Class */
.nav:hover .mega-menu,
.nav.active-desktop .mega-menu,
.menu-icon:hover~.nav .mega-menu {
    opacity: 1;
    visibility: visible;
}

/* Mega Menu Inner Layout */
.mega-menu-inner {
    display: flex;
    justify-content: flex-end;
    /* Align to right */
    gap: 30px;
    /* Increase spacing */
    padding-right: 60px;
    /* Align with nav position (accounting for menu icon) */
}

/* ... columns styles ... */
/* ... existing menu-col code ... */
/* I will skip replacing menu-col chunk if possible, but the block is in middle. */
/* I'll target line 414 for hover logic. */
/* And line 470 for menu-icon order. */
/* And line 350 for nav order. */
/* Three separate edits is better. */


.menu-col {
    flex: 0 0 auto;
    width: 160px;
    padding-left: 20px;
    /* Matches .nav-item > a left padding */
}

/* Column Header */
.menu-col h4 {
    color: var(--primary-color);
    font-size: 18px;
    /* Increased font size */
    font-weight: 700;
    margin-bottom: 20px;
}

/* Submenu Links */
.menu-col ul {
    list-style: none;
    padding: 0;
    margin: 0;
}

.menu-col li {
    margin-bottom: 12px;
}

.menu-col a {
    font-size: 16px;
    /* Increased font size */
    color: #666;
    text-decoration: none;
    font-weight: 400;
    transition: color 0.2s;
}

.menu-col a:hover {
    color: var(--text-dark);
    text-decoration: underline;
}

.menu-icon {
    order: 2;
    /* Visually second (right) */
    font-size: 28px;
    cursor: pointer;
    color: #333;
    margin-left: 0;
    /* Removed large gap since we use structure for spacing */
    /* Increased gap to match nav items */
    align-self: center;
    position: relative;
    z-index: 10000;
    /* Always above menu */
    text-decoration: none;
    flex-shrink: 0;
    /* Prevent shrinking */
    display: none;
}

/* Intermediate Responsive Styles (Tablet/Small Desktop) */
@media (max-width: 1280px) {
    .container {
        width: 95%;
    }

    .header-right {
        margin-left: 20px;
    }

    .mega-menu-inner {
        padding-right: 30px;
    }

    .nav-item {
        width: 140px;
    }

    .nav-item>a {
        font-size: 18px;
        padding-left: 10px;
    }
}

@media (max-width: 1100px) {
    .container {
        width: 98%;
        padding: 0 10px;
    }

    .header-right {
        margin-left: 10px;
    }

    .mega-menu-inner {
        padding-right: 10px;
    }

    .nav-item {
        width: 120px;
    }

    .nav-item>a {
        font-size: 16px;
        padding-left: 5px;
    }

    .logo {
        width: 160px;
    }
}

/* Mobile Menu Transition Point */
@media (max-width: 980px) {
    .nav-list {
        display: none !important;
    }

    .header-inner {
        position: relative;
        /* Context for absolute icon */
    }

    .nav {
        display: flex !important;
        /* Ensure parent is visible */
    }

    /* Hamburger Icon */
    .menu-icon {
        position: absolute;
        right: 0;
        top: 50%;
        transform: translateY(-50%);
        margin: 0;
        display: block;
        font-size: 28px;
        z-index: 10001;
    }

    .nav-list {
        position: fixed;
        top: 0;
        right: -320px;
        /* Hide off-screen */
        width: 280px;
        /* Width of the drawer */
        height: 100vh;
        background: #fff;
        display: flex !important;
        flex-direction: column;
        justify-content: flex-start;
        padding-top: 60px;
        margin-top: 0;
        gap: 0;
        transition: right 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94);
        box-shadow: -5px 0 15px rgba(0, 0, 0, 0.1);
        z-index: 9999;
        overflow-y: auto;
    }

    .nav-list.active {
        right: 0 !important;
        visibility: visible !important;
    }

    /* Menu Items */
    .nav-item {
        width: 100%;
        text-align: left;
        border-bottom: 1px solid #f0f0f0;
    }

    .nav-item>a {
        display: block;
        padding: 15px 20px !important;
        font-size: 16px;
        font-weight: 500;
        color: #333;
        display: flex;
        justify-content: space-between;
        align-items: center;
    }

    /* Hide Desktop Mega Menu */
    .mega-menu {
        display: none !important;
    }

    /* Mobile Submenu */
    .mobile-submenu {
        display: none;
        background: #fff;
        padding: 0 0 0 0;
    }

    .mobile-submenu.active {
        display: block;
    }

    .mobile-submenu li {
        width: 100%;
        border-bottom: none !important;
        border: none !important;
    }

    .mobile-submenu a {
        padding: 14px 0 14px 30px !important;
        font-size: 15px;
        color: #666;
        display: block;
        text-decoration: none;
    }

    .mobile-submenu a:hover {
        color: var(--primary-color);
        background: #f9f9f9;
    }

    /* Accordion Icons (+ / -) */
    .nav-item>a::after {
        content: '+';
        font-size: 20px;
        font-weight: 400;
        color: #333;
        transition: transform 0.3s;
    }

    .nav-item>a.accordion-active::after {
        content: '-';
    }
}

/* Handled by 1024px transition above */

/* Disable Intro Animation on Smaller Screens */
@media (max-width: 1280px) {
    .intro-overlay {
        display: none !important;
        animation: none !important;
    }

    .logo-main {
        opacity: 1 !important;
    }

    /* Reduce vertical spacing for smaller screens */
    .hero {
        padding: clamp(80px, 10vw, 120px) 0 clamp(60px, 8vw, 100px);
    }
}

@media (max-width: 480px) {
    .logo-main {
        width: 150px;
        /* Shrink logo on small mobile */
    }
}

/* Hero */
.hero {
    position: relative;
    padding: clamp(100px, 15vw, 180px) 0 clamp(80px, 12vw, 160px);
    /* Responsive vertical spacing */
    background: transparent;
    /* 배경 이미지가 잘 보이도록 투명화 */
    overflow: visible;
    /* Allow indicators to be seen if outside */
}

.hero-inner {
    position: relative;
    z-index: 2;
    min-height: 400px;
    width: 100%;
}

/* Container for text and logo to be centered together */
.hero-slider {
    width: 100%;
    max-width: 1240px;
    /* 가로폭 축소 */
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1fr;
    grid-template-rows: 1fr;
    align-items: center;
}

.hero-slide {
    display: block;
    /* Always part of layout */
    visibility: hidden;
    /* Hide visually but keep layout structure contribution if needed?
                           Wait, visibility: hidden takes space? Yes.
                           This makes grid height = tallest slide. Perfect. */
    opacity: 0;
    pointer-events: none;
    width: 100%;
    /* Ensure width */
    background: transparent;
    /* Transparent for media layer */
    grid-column: 1;
    /* Stack in first column */
    grid-row: 1;
    /* Stack in first row */
    transition: opacity 0.1s;
    /* Quick toggle base */
    overflow: hidden;
}

/* Background Layer for Media */
.hero-bg-layer {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 1;
    overflow: hidden;
}

.hero-bg-video {
    width: 100%;
    height: 100%;
    object-fit: cover;
    opacity: 0.6;
    /* Slight dimming for text readability */
}

.hero-bg-accent {
    width: 100%;
    height: 100%;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    opacity: 0.8;
    /* 디자이너 이미지 선명도 확보 */
}

/* Base Styles for Content */
.hero-content {
    position: relative;
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: space-between;
    /* 가로 배치 핵심 */
    width: 100%;
    min-height: 450px;
    /* 약간 더 축소 */
    padding: 60px 0;
    gap: 60px;
}

/* Center Layout Type - Desktop is still side-by-side per designer */
.hero-content.layout-center {
    flex-direction: row;
    /* 좌우 배치 유지 */
    justify-content: center;
    text-align: left;
    /* 텍스트는 좌측 정렬 유지 */
    min-height: 550px;
}

.hero-content.layout-center .hero-text-col {
    max-width: 650px;
    margin: 0;
    text-align: left;
}

.hero-content.layout-center .hero-visual-col {
    justify-content: flex-end;
    width: auto;
}

.hero-logo-large {
    width: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
}

.hero-logo-large img {
    max-width: 100%;
    height: auto;
    max-height: 450px;
    object-fit: contain;
}

.hero-actions {
    margin-top: 35px;
    display: flex;
    gap: 15px;
}

.hero-content.layout-center .hero-actions {
    justify-content: center;
}

/* Device Visibility */
.pc-only {
    display: flex !important;
}

.mobile-only {
    display: none !important;
}

@media (max-width: 1024px) {
    .pc-only {
        display: none !important;
    }

    .mobile-only {
        display: flex !important;
    }
}

.hero-content.layout-reverse {
    flex-direction: row-reverse;
}

.hero-text-col {
    flex: 1.2;
    text-align: left;
    max-width: 700px;
    z-index: 3;
}

.hero-visual-col {
    flex: 1;
    display: flex;
    justify-content: flex-end;
    align-items: center;
    z-index: 2;
}

.hero-slide.active {
    visibility: visible;
    opacity: 1;
    position: relative;
    z-index: 2;
    pointer-events: auto;
}

.hero-slide.exiting {
    visibility: visible;
    display: block;
    z-index: 1;
    /* Grid handles positioning, no need for absolute */
    pointer-events: none;
}

/* Next Direction (Default: Right to Left) */
.hero-slider.next .hero-slide.active {
    animation: slideInRight 0.8s ease-out;
}

.hero-slider.next .hero-slide.exiting {
    animation: slideOutLeft 0.8s ease-out forwards;
}

/* Prev Direction (Left to Right) */
.hero-slider.prev .hero-slide.active {
    animation: slideInLeft 0.8s ease-out;
}

.hero-slider.prev .hero-slide.exiting {
    animation: slideOutRight 0.8s ease-out forwards;
}

@keyframes slideInRight {
    from {
        transform: translateX(100%);
        opacity: 0;
    }

    to {
        transform: translateX(0);
        opacity: 1;
    }
}

@keyframes slideOutLeft {
    from {
        transform: translateX(0);
        opacity: 1;
    }

    to {
        transform: translateX(-100%);
        opacity: 0;
    }
}

@keyframes slideInLeft {
    from {
        transform: translateX(-100%);
        opacity: 0;
    }

    to {
        transform: translateX(0);
        opacity: 1;
    }
}

@keyframes slideOutRight {
    from {
        transform: translateX(0);
        opacity: 1;
    }

    to {
        transform: translateX(100%);
        opacity: 0;
    }
}

/* 중복 제거됨 */

.hero-content h1,
.hero-content h2 {
    font-size: clamp(40px, 5vw, 70px);
    line-height: 1.25;
    font-weight: 900;
    /* Black */
    color: #333;
    white-space: normal;
    word-break: keep-all;
    /* Prevent mid-word breaks */
    margin-bottom: 0;
}

.hero-content h2 .text-highlight {
    color: var(--primary-color);
}

.hero-logo-large {
    width: 100%;
    max-width: 650px;
    /* 로고 사이즈 상향 */
    display: flex;
    justify-content: flex-end;
}

/* 중복 코드 제거됨 - 상단(887라인)의 설정을 따름 */

/* Mobile Optimization for Hero Section */
@media (max-width: 1024px) {
    .hero-content.layout-center {
        flex-direction: column !important;
        text-align: center !important;
        justify-content: center !important;
        min-height: auto !important;
        padding: 40px 0 !important;
    }

    .layout-center .hero-text-col {
        text-align: center !important;
        max-width: 100% !important;
        margin-bottom: 30px !important;
    }

    .layout-center .hero-visual-col {
        justify-content: center !important;
        width: 100% !important;
    }

    .layout-center .hero-logo-large {
        justify-content: center !important;
        max-width: 100% !important;
    }

    .hero-content h1,
    .hero-content h2 {
        font-size: clamp(32px, 8vw, 48px) !important;
        line-height: 1.2;
    }
}

@media (max-width: 768px) {
    .hero {
        padding: 80px 0 60px !important;
    }

    .hero-content {
        padding: 30px 0 !important;
        gap: 30px !important;
    }

    .hero-desc {
        font-size: 16px !important;
        margin-top: 20px !important;
    }

    .hero-logo-large img {
        max-height: 300px !important;
    }
}

.hero-logo-large img {
    width: 100%;
    height: auto;
    object-fit: contain;
}

.badge-pink {
    display: inline-block;
    background-color: #ffe5e5;
    color: var(--primary-color);
    padding: 8px 20px;
    border-radius: 30px;
    font-weight: 700;
    font-size: clamp(14px, 1.45vw, 18px);
    margin-bottom: 25px;
    text-transform: uppercase;
}

.badge-blue {
    background-color: #e5f0ff;
    color: #0066e6;
}

.badge-dark {
    background-color: #333;
    color: #fff;
}

.hero-desc {
    margin-top: 30px;
    font-size: clamp(16px, 1.45vw, 20px);
    /* Responsive sizing */
    color: #555;
    line-height: 1.3;
    word-break: keep-all;
    letter-spacing: -0.75px;
}

.hero-actions {
    margin-top: 40px;
}

.mobile-only {
    display: none;
}

.pc-only {
    display: block;
}

@media (max-width: 980px) {
    .pc-only {
        display: none !important;
    }

    .mobile-only {
        display: block !important;
        position: relative !important;
        z-index: 10 !important;
        /* Ensure it stays above hero-content (z-index: 2) and bg-layer (z-index: 1) */
    }
}

@media (min-width: 1500px) {
    .hero-desc {
        font-size: 20px;
        line-height: 1.7;
    }
}

.hero-image-showcase {
    flex: 1.5;
    /* 우측 이미지 비중 대폭 상향 */
    max-width: 900px;
    /* 사이즈 확대 */
    border-radius: 20px;
    overflow: hidden;
    box-shadow: 0 30px 60px rgba(0, 0, 0, 0.15);
    background: #fff;
    margin-left: 0;
    /* 기본 마진 제거 (gap으로 대체) */
}

/* 좌측 이미지 레이아웃 전용 보정 */
.hero-content.layout-reverse .hero-visual-col {
    justify-content: flex-start;
}

.hero-content.layout-reverse .hero-image-showcase {
    margin-right: 0;
}

.hero-image-showcase img {
    width: 100%;
    height: auto;
    display: block;
}

/* Controls */
.hero-controls {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
    z-index: 10;
}

.hero-controls .prev,
.hero-controls .next {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    background: none;
    border: none;
    /* SVG manages size */
    width: 80px;
    /* Increased */
    height: 80px;
    /* Increased */
    color: #CCCCCC;
    cursor: pointer;
    pointer-events: auto;
    z-index: 9999;
    padding: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.3s;
}

.hero-controls .prev svg,
.hero-controls .next svg {
    width: 70px;
    /* Increased */
    height: 70px;
    /* Increased */
}

.hero-controls .prev {
    left: -90px;
}

.hero-controls .next {
    right: -90px;
}

/* Responsive Arrows to prevent edge sticking */
@media (max-width: 1500px) {
    .hero-slider {
        padding: 0 85px;
        /* create space for arrows */
    }

    .hero-content h2 {
        font-size: clamp(40px, 4vw, 55px);
        /* Shrink font to keep 2 lines */
    }

    .hero-controls .prev {
        left: 10px;
    }

    .hero-controls .next {
        right: 10px;
    }
}

/* Tablet Layout - Stacked */
@media (max-width: 1024px) {
    .hero-content {
        flex-direction: column;
        gap: 30px;
        /* Reduced gap since button is moved */
        text-align: center;
    }

    .pc-only {
        display: none !important;
    }

    .mobile-only {
        display: flex !important;
        justify-content: center;
        margin-top: 30px;
        margin-bottom: 20px;
        width: 100%;
    }

    .hero-text-col {
        text-align: center;
        max-width: 800px;
        /* Allow wider text block */
        margin: 0 auto;
    }

    .hero-content h2 {
        font-size: clamp(40px, 6vw, 60px);
        /* Increased size compared to squeezed desktop */
    }

    .hero-logo-large,
    .hero-image-showcase {
        max-width: 80%;
        margin: 0 auto;
    }

    /* Hero Slider Tighter Padding & Smaller Arrows */
    .hero-slider {
        padding: 0 60px;
        /* Reduced from 85px */
    }

    .hero-controls .prev,
    .hero-controls .next {
        width: 50px;
        height: 50px;
    }

    .hero-controls .prev {
        left: 0;
    }

    .hero-controls .next {
        right: 0;
    }

    .hero-controls .prev svg,
    .hero-controls .next svg {
        width: 40px;
        height: 40px;
    }
}

.hero-controls .prev:hover,
.hero-controls .next:hover {
    color: var(--primary-color);
    transform: translateY(-50%) scale(1.1);
}

.indicators {
    position: absolute;
    bottom: -120px;
    /* Moved down further 30px */
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    gap: 10px;
    pointer-events: auto;
}

.indicators span {
    width: 13px;
    height: 13px;
    border-radius: 50%;
    border: 1px solid #ddd;
    background: transparent;
    cursor: pointer;
}

.indicators span.active {
    background: var(--primary-color);
    border-color: var(--primary-color);
}

.hero-bg-accent {
    display: none;
    /* Remove old background accent */
}

.sub-title {
    display: block;
    font-size: 25px;
    font-weight: 300;
    color: #e60013;
    margin-bottom: 15px;
    letter-spacing: 2px;
    text-transform: uppercase;
}

/* Core Tech */
.core-tech {
    padding: 130px 0;
}

.grid-3 {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 30px;
    margin-top: 50px;
}

.tech-card {
    background: #fff;
    border-radius: 15px;
    overflow: hidden;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.05);
    transition: transform 0.3s;
}

.tech-card:hover {
    transform: translateY(-10px);
}

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

.card-body {
    padding: 25px;
    text-align: center;
}

.card-body h4 {
    font-weight: 700;
    color: var(--primary-color);
}

.card-body p {
    color: #666;
    font-size: 18px;
    font-weight: 400;
}

/* Business Line / Timeline */
/* Business Line (Mockup Style) */
.business-line {
    background-color: #fff;
    overflow-x: clip;
    overflow-y: visible;
    padding: 100px 0 50px;
    position: relative;
}

.bl-bg-overlay {
    position: absolute;
    top: -168px;
    /* Original top position from backup */
    right: 0;
    width: 525px;
    z-index: 50;
    pointer-events: none;
}

.business-layout {
    display: flex;
    align-items: flex-start;
    gap: 40px;
    /* Secure space for left actions */
    position: relative;
    padding-top: 100px;
    /* Added internal padding instead of negative margin */
}

/* Left Column */
.bl-left {
    flex: 0 0 35%;
    position: relative;
    z-index: 60;
    /* Above bl-slider cards (z-index: 30) */
}

.bl-left h2 {
    font-size: 3rem;
    font-weight: 900;
    line-height: 1.2;
    margin-bottom: 45px;
    color: #000;
}

.bl-actions {
    display: flex;
    align-items: center;
    gap: 15px;
}

.btn-red-pill {
    background-color: #e60013;
    color: #fff;
    height: 46px;
    padding: 0 30px;
    border-radius: 50px;
    font-weight: 700;
    font-size: 16px;
    display: inline-flex;
    justify-content: center;
    align-items: center;
    text-decoration: none;
    transition: background 0.3s;
}

.btn-red-pill:hover {
    background-color: #c40010;
}

.bl-controls {
    display: flex;
    gap: 5px;
}

.nav-btn {
    width: 42px;
    height: 42px;
    border-radius: 50%;
    border: 2px solid #ddd;
    background: #fff;
    color: #999;
    font-size: 14px;
    cursor: pointer;
    display: flex;
    justify-content: center;
    align-items: center;
    transition: all 0.3s;
}

.nav-btn:hover {
    border-color: #e60013;
    color: #e60013;
}

/* Right Column (Slider area) */
.bl-right {
    flex: 1;
    min-width: 0;
    /* Important for flex-child with overflow-x: auto child */
    position: relative;
    padding-top: 0;
}

/* The Red Line Decor */
.bl-decor-line-bg {
    position: absolute;
    top: 341px;
    /* Vertically centered with nav buttons */
    left: -100vw;
    width: 300vw;
    height: 2px;
    background-color: #e60013;
    z-index: 40;
    /* Above cards (z-index: 35) so line appears on top */
    pointer-events: none;
}

.bl-slider {
    display: flex;
    gap: 25px;
    padding-top: 25px;
    /* Added more top padding for shadow */
    overflow-x: auto;
    width: 100%;
    /* Ensure it doesn't exceed bl-right */
    padding-bottom: 40px;
    /* Added more bottom padding for shadow */
    padding-left: 20px;
    /* Added side padding to prevent left card clipping */
    padding-right: 20px;
    /* Added side padding to prevent right card clipping */
    margin-left: -20px;
    /* Offset side padding to keep alignment */
    margin-top: 0;
    /* Reset negative margin to prevent button overlap */
    position: relative;
    z-index: 30;
    /* Above the red line */
    /* Scrollbar space / shadow space */
    scrollbar-width: none;
    /* Hide scrollbar Firefox */
}

.bl-slider::-webkit-scrollbar {
    display: none;
}

/* Cards */
.bl-card {
    flex: 0 0 266px;
    background: #fff;
    border: 1px solid #bababa;
    border-radius: 20px;
    padding: 40px 30px;
    /* Increased top/bottom padding to straddle the line */
    min-height: 320px;
    box-shadow: 0 5px 20px rgba(0, 0, 0, 0.1);
    /* Slightly adjusted shadow for better visibility */
    display: flex;
    text-decoration: none;
    color: inherit;
    flex-direction: column;
    justify-content: space-between;
    position: relative;
    z-index: 35;
    transition: transform 0.3s, border-color 0.3s, box-shadow 0.3s;
}

.bl-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 10px 20px rgba(0, 0, 0, 0.05);
    border-color: #e60013;
}

.bl-year {
    color: #e60013;
    font-weight: 400;
    margin-bottom: 15px;
    font-size: 18px;
}

.bl-card-title {
    font-size: 19px;
    font-weight: 500;
    color: #222;
    line-height: 1.5;
    margin-bottom: auto;
    letter-spacing: -0.75px;
}

.bl-client {
    font-size: 17px;
    font-weight: 500;
    color: #888;
    margin-top: 23px;
}

/* Partners Strip Styles */
.partners-strip {
    background-color: #fff;
    padding: 60px 0;
    border-top: 1px solid #f0f0f0;
    overflow: hidden;
}

.marquee-container {
    overflow: hidden;
    white-space: nowrap;
}

.marquee-content {
    display: inline-flex;
    gap: 60px;
    animation: marquee 20s linear infinite;
    padding-left: 100%;
    /* Start off screen */
}

.marquee-content img {
    height: 40px;
    /* Logo height */
    filter: grayscale(1);
    /* Optional: match sleek design */
    opacity: 0.7;
}

@keyframes marquee {
    from {
        transform: translateX(0);
    }

    to {
        transform: translateX(-100%);
    }
}

/* Mobile Responsiveness for new section */
@media (max-width: 1280px) {
    .bl-bg-overlay {
        top: -168px;
        /* Maintain top position */
    }

    .business-layout {
        flex-direction: column;
    }

    .bl-right {
        width: 100%;
        padding-top: 40px;
    }

    .bl-slider {
        margin-left: 0;
        /* Keep margin-top: -155px for 1280px screens as they are still horizontal */
    }
}

@media (max-width: 768px) {
    .bl-slider {
        margin-top: 0;
        /* Reset only for small mobile where layout stacks */
    }
}

@media (max-width: 980px) {
    .bl-card {
        flex: 0 0 clamp(200px, 28vw, 266px);
        min-height: clamp(230px, 31vw, 300px);
        padding: clamp(15px, 2vw, 30px);
    }

    .bl-year {
        font-size: clamp(14px, 1.8vw, 18px);
        margin-bottom: 10px;
    }

    .bl-card-title {
        font-size: clamp(15px, 2vw, 19px);
        letter-spacing: -0.5px;
    }

    .bl-client {
        font-size: clamp(13px, 1.7vw, 17px);
        margin-top: 15px;
    }
}

@media (max-width: 900px) {
    .bl-bg-overlay {
        display: none;
    }
}

/* Solutions */
.solutions {
    background: #fdfdfd;
}

.solution-list {
    display: flex;
    flex-direction: column;
    gap: 30px;
    margin-top: 50px;
}

.solution-card {
    border-radius: 20px;
    overflow: hidden;
    display: flex;
    align-items: center;
    color: #fff;
    min-height: 350px;
    position: relative;
    box-shadow: 0 15px 40px rgba(0, 0, 0, 0.1);
}

.sol-content {
    flex: 1;
    padding: clamp(30px, 4vw, 60px);
    z-index: 2;
}

.sol-content h4 {
    font-size: clamp(24px, 2.5vw, 32px);
    font-weight: 300;
    margin-bottom: 20px;
    line-height: 1.3;
}

.sol-content h4 strong {
    display: block;
    font-weight: 800;
    font-size: clamp(32px, 4vw, 50px);
    color: #e60013;
}

.solution-red .sol-content h4 strong {
    color: inherit;
}

.solution-blue .sol-content h4 strong,
.solution-dark .sol-content h4 strong {
    color: #ff4f5e;
}



.sol-content p {
    font-size: clamp(16px, 1.6vw, 20px);
    margin-bottom: 30px;
    opacity: 0.9;
    line-height: 1.4;
}

.sol-image {
    flex: 1.2;
    height: 100%;
    position: relative;
    padding: clamp(20px, 3vw, 50px);
}

.sol-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: left center;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.15);
    /* Soft shadow */
    border-radius: 12px;
    /* Polish */
}

/* Buttons */
.btn {
    display: inline-block;
    padding: clamp(10px, 1.5vw, 12px) clamp(20px, 3vw, 30px);
    border-radius: 50px;
    text-decoration: none;
    font-weight: 600;
    font-size: clamp(14px, 1.5vw, 16px);
    transition: all 0.3s;
}

.btn-white-outline {
    border: 1px solid #fff;
    color: #fff;
}

.btn-white-outline:hover {
    background: #fff;
    color: var(--primary-color);
}

.btn-dark-outline {
    border: 1px solid #333;
    color: #333;
}

.btn-dark-outline:hover {
    background: #333;
    color: #fff;
}

.btn-outline-dark {
    border: 1px solid #333;
    color: #333;
}

.btn-outline-dark:hover {
    background: #e60013;
    /* Primary Red */
    border-color: #e60013;
    color: #fff;
}

/* Specific Cards */
.solution-red {
    background: url('../images/sol_red_bg.png') no-repeat center/cover;
}

.solution-light {
    background: url('../images/sol_light_bg.png') no-repeat center/cover;
    color: #333;
}

.solution-blue {
    background: url('../images/sol_blue_bg.png') no-repeat center/cover;
}

.solution-light .sol-content h4,
.solution-light .sol-content p {
    color: #333;
}

.solution-dark {
    background: url('../images/sol_dark_bg.png') no-repeat center/cover;
    color: #fff;
}

/* Button Arrow Spacing */
.btn-arrow {
    margin-left: 10px;
    display: inline-block;
    /* Ensure transform/transition works cleanly if needed later */
}

/* News */
.news-list {
    margin-top: 50px;
    border-top: 2px solid #000;
}

.news-item {
    display: flex;
    gap: 20px;
    padding: 25px 0;
    border-bottom: 1px solid #eee;
    align-items: flex-start;
    text-decoration: none;
    /* For link */
    color: inherit;
    /* For link */
    transition: background-color 0.2s;
}

.news-item:hover {
    background-color: #fafafa;
    /* Subtle hover effect */
}

.news-thumb {
    width: 200px;
    flex-shrink: 0;
    border-radius: 8px;
    overflow: hidden;
}

.news-thumb img {
    width: 100%;
    height: auto;
}

.news-info {
    flex: 1;
}

.news-info .date {
    font-size: 0.95rem;
    color: var(--primary-color);
    font-weight: 400;
    margin-bottom: 5px;
    display: block;
}

.news-info h5 {
    font-size: 1.3rem;
    font-weight: 700;
    margin-bottom: 10px;
}

.news-info .summary {
    font-size: 1.05rem;
    color: #666;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* Pre-Footer */
.pre-footer {
    background: #fdfdfd;
    border-top: 1px solid #f0f0f0;
    padding: 60px 0;
}

.pf-links {
    display: flex;
    justify-content: center;
    gap: 0;
    align-items: stretch;
}

.pf-links li {
    flex: 1;
    text-align: left;
    border-right: 1px solid #eee;
    padding: 0 40px;
    display: flex;
    justify-content: center;
    /* Center content block within column */
}

/* Specific alignments */
.pf-links li:first-child {
    justify-content: flex-end;
    /* Push first to right side of its col */
    padding-left: 0;
}

.pf-links li:last-child {
    border-right: none;
    justify-content: flex-start;
    /* Push last to left side of its col */
    padding-right: 0;
}

/* Middle item centered naturally by flex spacing or explicit */
.pf-links li:nth-child(2) {
    justify-content: center;
}

/* Link Container */
.pf-links a {
    display: flex;
    align-items: center;
    gap: 20px;
    text-decoration: none;
    color: inherit;
    transition: transform 0.3s;
}

.pf-links a:hover {
    transform: translateY(-5px);
}

/* Icon Box */
.icon-box {
    width: 60px;
    height: 60px;
    background: #fff;
    border-radius: 20px;
    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.05);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.icon-box svg {
    width: 30px;
    height: 30px;
    stroke: #e60013;
}

.pf-links .text {
    text-align: left;
}

.pf-links .text strong {
    display: block;
    font-size: 1.15rem;
    font-weight: 700;
    color: #333;
    margin-bottom: 4px;
    letter-spacing: -0.5px;
}

.pf-links .text span {
    color: #999;
    font-size: 0.9rem;
    font-weight: 400;
}

/* Responsive adjustment for Pre-Footer */
/* Responsive adjustment for Pre-Footer */
@media (max-width: 900px) {
    .solution-card {
        flex-direction: column;
        height: auto;
    }

    .sol-content {
        width: 100%;
        padding: 40px 40px 0 40px;
        /* Remove bottom padding to pull image up */
    }

    .sol-image {
        width: 100% !important;
        flex: auto !important;
        height: auto !important;
        padding-top: 0 !important;
        padding-bottom: 25px !important;
        /* Final 15px reduction */
        box-sizing: border-box !important;
        background: transparent !important;
        /* Ensure no overlap */
    }

    .sol-image img {
        height: auto !important;
        width: 100% !important;
        position: static !important;
        display: block !important;
        margin-bottom: 0 !important;
    }

    .pf-links {
        /* flex-direction: column; REMOVED to keep single line */
        gap: 10px;
        /* Reduced gap */
    }

    .pf-links li {
        /* border-right: none; REMOVED */
        /* border-bottom: 1px solid #eee; REMOVED */
        padding: 0 10px;
        /* Reduced padding */
        /* justify-content: center !important; REMOVED */
    }

    .pf-links li:last-child {
        /* border-bottom: none; */
        /* padding-bottom: 0; */
        border-right: none;
    }

    /* Reduce icon and text size for smaller screens to fit */
    .icon-box {
        width: 40px;
        height: 40px;
        border-radius: 12px;
    }

    .icon-box svg {
        width: 20px;
        height: 20px;
    }

    .pf-links a {
        gap: 10px;
    }

    .pf-links .text strong {
        font-size: 0.9rem;
    }

    .pf-links .text span {
        font-size: 0.75rem;
    }
}

@media (max-width: 720px) {
    .pf-links .text span {
        display: none;
    }

    .pf-links {
        flex-flow: row nowrap;
        gap: 5px;
        /* Reduced gap */
    }

    .pf-links li {
        padding: 0;
        /* Remove padding completely */
        flex: 1;
        /* Distribute space evenly */
    }

    .pf-links a {
        gap: 5px;
        /* Tighter gap icon-text */
        justify-content: center;
        /* Center content in the flex item */
        flex-direction: row;
    }
}

@media (max-width: 600px) {
    .pre-footer .container {
        padding-left: 5px;
        padding-right: 5px;
    }

    .pf-links {
        display: flex !important;
        flex-flow: row nowrap !important;
        /* Force wrap off violently */
        justify-content: space-between !important;
        align-items: flex-start !important;
        width: 100% !important;
        gap: 0 !important;
    }

    /* RESET Specific alignments causing stepping */
    .pf-links li,
    .pf-links li:first-child,
    .pf-links li:last-child {
        display: flex !important;
        flex-direction: column !important;
        /* Keep internal vertical if needed, or inherited */
        justify-content: center !important;
        align-items: center !important;
        padding: 0 !important;
        border: none !important;
        flex: 1 1 0% !important;
        /* Critical: Force equal width ignoring content */
        max-width: 33.33% !important;
        /* Force constraint */
        min-width: 0 !important;
        /* Allow shrinking below content size */
    }

    .icon-box {
        width: 50px;
        /* Increased from 44px */
        height: 50px;
        /* Increased from 44px */
        border-radius: 14px;
        /* Scaled radius */
        margin-bottom: 8px;
    }

    .icon-box svg {
        width: 26px;
        /* Increased from 22px */
        height: 26px;
        /* Increased from 22px */
    }

    .pf-links a {
        flex-direction: column;
        /* Stack Icon top, Text bottom */
        gap: 0;
        text-align: center;
        width: 100%;
    }

    .pf-links .text strong {
        font-size: 0.95rem;
        /* Increased from 0.85rem */
        display: block;
    }

    /* Ensure no span displayed */
    .pf-links .text span {
        display: none !important;
    }
}

/* Footer */
.footer {
    background: url('../images/footer_bg.png') no-repeat center/cover;
    background-color: var(--footer-bg);
    position: relative;
    color: #fff;
    padding: 80px 0 60px;
}

.footer::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: transparent;
    /* Removed overlay as requested */
    z-index: 1;
    display: none;
    /* Hide it completely */
}

.footer .container {
    position: relative;
    z-index: 2;
}

/* Footer Top: CTA */
.footer-top {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 40px;
}

.footer-top h3 {
    font-size: clamp(28px, 4vw, 45px);
    font-weight: 700;
    line-height: 1.3;
    margin: 0;
    color: #fff;
}

.contact-link {
    font-size: clamp(20px, 2.5vw, 32px);
    font-weight: 700;
    color: #fff;
    text-decoration: none;
    display: flex;
    align-items: center;
    gap: 10px;
    transition: color 0.3s;
}

.contact-link:hover {
    color: #e60013;
}

.contact-link::after {
    content: '>';
    /* Simple chevron as per image logic if fontawesome not used */
    font-weight: 400;
}

/* Divider */
.footer-divider {
    height: 1px;
    background: rgba(255, 255, 255, 0.2);
    width: 100%;
    margin-bottom: 50px;
}

/* Footer Bottom */
.footer-bottom {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    flex-wrap: wrap;
    gap: 40px;
    /* Gap takes up space */
}

/* Footer Info (Left) */
.footer-info {
    flex: 0 0 30%;
    /* Approx 35% including gap logic or just visible width */
    /* User asked for 35:65 ratio. Let's try explicit percentages that sum to < 100 with gap */
    flex: 0 0 32%;
    min-width: 300px;
}

/* ... existing styles ... */

/* Footer Links (Right) */
.footer-links {
    flex: 1;
    /* Allow it to fill, but constrained */
    flex: 0 0 62%;
    /* Approx 65%ish relative to info */
    display: flex;
    justify-content: space-between;
    /* Spread columns */
    flex-wrap: wrap;
    gap: 20px;
    padding-left: 0;
    /* Remove padding if any */
}

.footer-logo {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 30px;
}

.footer-logo-img {
    height: 30px;
    /* Adjusted size */
    width: auto;
    filter: brightness(0) invert(1);
    /* Ensure white logo */
}

.logo-text {
    font-size: 1rem;
    font-weight: 700;
    color: #fff;
    padding-top: 4px;
    /* Align with image text baseline */
}

.contact-details p {
    font-size: 0.95rem;
    color: #ddd;
    margin-bottom: 8px;
}

.contact-details strong {
    color: #fff;
    font-weight: 600;
}

.address-info {
    margin-top: 30px;
    color: #aaa;
    font-size: 0.85rem;
    line-height: 1.6;
}

.copyright {
    margin-top: 5px;
    font-size: 0.8rem;
    color: #888;
}

/* Footer Links (Right) */
.footer-links {
    flex: 1;
    display: flex;
    justify-content: space-between;
    /* Spread columns evenly */
    flex-wrap: nowrap;
    /* Prevent wrapping if possible for cleaner look */
    gap: 0;
    /* Let space-between handle spacing */
    padding-left: 40px;
    /* Restore padding */
}

.link-col {
    flex: 0 0 auto;
}

.link-col strong {
    display: block;
    color: #fff;
    font-size: 0.95rem;
    font-weight: 700;
    margin-bottom: 20px;
}

.link-col ul {
    list-style: none;
    padding: 0;
    margin: 0;
}

.link-col li {
    margin-bottom: 12px;
}

.link-col a {
    color: #aaa;
    text-decoration: none;
    font-size: 0.85rem;
    transition: color 0.3s;
}

.link-col a:hover {
    color: #fff;
    text-decoration: underline;
}

/* Scroll Top Button */
/* Footer Controls */
.footer-controls {
    position: absolute;
    bottom: 0;
    right: 0;
    display: flex;
    gap: 10px;
}

.footer-btn {
    width: 40px;
    height: 40px;
    border: 1px solid rgba(255, 255, 255, 0.3);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    transition: all 0.3s;
    background: transparent;
}

.footer-btn.btn-admin {
    /* Specific styles for admin button if needed, e.g., slightly different hover */
}



.footer-btn:hover {
    background: #fff;
    color: #333;
    border-color: #fff;
}

/* Responsive Footer */
@media (max-width: 1030px) {
    .footer-links {
        display: none !important;
    }

    .footer-info {
        flex: 0 0 100%;
        /* Make info take full width since links are gone */
        text-align: left;
    }

    .footer-logo {
        justify-content: flex-start;
    }
}

@media (max-width: 1024px) {
    .footer-bottom {
        flex-direction: column;
        gap: 60px;
    }

    .footer-links {
        padding-left: 0;
        width: 100%;
        justify-content: flex-start;
        gap: 40px;
    }
}

@media (max-width: 768px) {
    .footer-top {
        flex-direction: column;
        align-items: flex-start;
        gap: 30px;
    }

    .footer-top h3 {
        font-size: 1.8rem;
    }

    .footer-links {
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        gap: 30px;
    }

    .footer-controls {
        position: relative;
        margin-top: 30px;
        margin-left: auto;
        /* Right align in mobile flow */
        width: fit-content;
        /* Ensure it doesn't stretch */
    }
}

/* Hide cloned mobile menu items on desktop */
.nav-list .menu-col {
    display: none;
}

/* Responsive */
@media (max-width: 900px) {
    /* Hero scaling handled by base styles (clamp/flex) for natural ratio */

    /* Other Sections */
    .solution-card {
        flex-direction: column;
    }

    .sol-image {
        width: 100%;
        height: 200px;
    }

    .sol-content {
        padding: 40px;
    }

    .business-inner {
        flex-direction: column;
        align-items: flex-start;
    }

    .timeline-slider {
        width: 100%;
    }

    .footer-inner {
        flex-direction: column;
        align-items: flex-start;
    }

    .footer-right {
        align-items: flex-start;
        text-align: left;
    }
}

@media (max-width: 600px) {
    .nav {
        display: none;
    }

    /* Simplified mobile nav handling would be needed */
    .grid-3 {
        grid-template-columns: 1fr;
    }

    .pf-links {
        flex-direction: column;
        gap: 20px;
    }

    .pf-links li {
        border: none;
    }

    .hero {
        padding: 50px 0;
    }

    .hero-controls .prev,
    .hero-controls .next {
        display: none;
        /* Hide arrows only */
    }

    .hero-controls {
        display: flex;
        /* Ensure container is visible for indicators */
    }

    .hero-slider {
        padding: 0 10px;
        /* Maximize content width slightly more */
    }
}

/* Mobile Menu Accordion Styles (Using Cloned Content) */
@media (max-width: 768px) {

    /* Hide the original Mega Menu container on mobile */
    .mega-menu {
        display: none !important;
    }

    .nav-list li {
        flex-direction: column;
        align-items: flex-start;
        width: 100%;
        border-bottom: 1px solid #eee;
    }

    .nav-list a {
        width: 100%;
        padding: 15px 20px;
        display: flex;
        justify-content: space-between;
        align-items: center;
    }

    /* Styles for the Cloned Content */
    .nav-list .menu-col {
        display: none;
        /* Hidden by default */
        width: 100%;
        padding: 0;
        background: #fcfcfc;
    }

    .nav-list .menu-col h4 {
        display: none;
        /* Hide the title in mobile accordion if redundant */
    }

    .nav-list li.open .menu-col {
        display: block;
        /* Show when open */
    }

    .nav-list .menu-col ul {
        padding: 10px 0;
        list-style: none;
        margin: 0;
    }

    .nav-list .menu-col li {
        border: none;
        padding: 0;
    }

    .nav-list .menu-col a {
        padding: 10px 40px;
        /* Indent sub-items */
        font-size: 0.95rem;
        color: #666;
        background: transparent;
    }

    /* Arrow indicators */
    .nav-list li.has-submenu>a::after {
        content: '+';
        font-weight: bold;
    }

    .nav-list li.has-submenu.open>a::after {
        content: '-';
    }
}


/* Logo Animation State */
.logo-main {
    opacity: 1;
    transition: opacity 0.5s ease;
}

.logo-main:not(.active) {
    /* If needed, specific state when intro is active */
}

/* =========================================
   Sub Page Styles (Refactored from Tailwind)
   ========================================= */

/* Sub Hero Section */
.sub-hero {
    position: relative;
    height: 480px;
    /* Adjusted height to 480px as requested for better proportions */
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    padding-top: 0;
    /* Removed 60px padding to achieve true vertical centering */
    background-color: #0f172a;
    color: white;
    overflow: hidden;
}

.sub-hero-bg {
    position: absolute;
    inset: 0;
    background-size: cover;
    background-position: center;
}

.sub-hero-bg.ai-bg {
    background-image: url('../images/hero_bg_ai.jpg');
}

.sub-hero-bg.bigdata-bg {
    background-image: url('../images/hero_bg_bigdata.jpg');
}

.sub-hero-bg.dwda-bg {
    background-image: url('../images/hero_bg_dwda.jpg');
}

.sub-hero-bg.edge-bg {
    background-image: url('../images/hero_bg_edge.jpg');
}

.sub-hero-bg.aiops-bg {
    background-image: url('../images/hero_bg_aiops.jpg');
}

.sub-hero-bg.bi-bg {
    background-image: url('../images/hero_bg_bi.jpg');
}

.sub-hero-bg.explorer-bg {
    background-image: url('../images/hero_bg_explorer.jpg');
}

.sub-hero-bg.ref-cases-bg {
    background-image: url('../images/hero_ref_cases.png');
}

.sub-hero-bg.ref-projects-bg {
    background-image: url('../images/hero_ref_projects.jpg');
}

.sub-hero-bg.ref-clients-bg {
    background-image: url('../images/hero_ref_clients.jpg');
}

.sub-hero-bg.support-tech-bg {
    background-image: url('../images/hero_support_tech.png');
}

.sub-hero-bg.support-faq-bg {
    background-image: url('../images/hero_support_faq.jpg');
}

.sub-hero-bg.support-contact-bg {
    background-image: url('../images/hero_support_contact.jpg');
}

.sub-hero-bg.company-overview-bg {
    background-image: url('../images/hero_company_overview.jpg');
}

.sub-hero-bg.company-history-bg {
    background-image: url('../images/hero_company_history.jpg');
}

.sub-hero-bg.company-location-bg {
    background-image: url('../images/hero_company_location.jpg');
}

.sub-hero-bg.company-news-bg {
    background-image: url('../images/hero_company_news.jpg');
}

.sub-hero-overlay {
    position: absolute;
    inset: 0;
    background-color: rgba(0, 0, 0, 0.6);
    /* bg-black/60 */
}

/* Container logic for sub-pages - Reuse existing .container if compatible, but defining local for safety */
.sub-container {
    width: 100%;
    margin-left: auto;
    margin-right: auto;
    padding-left: 1.5rem;
    /* px-6 */
    padding-right: 1.5rem;
    max-width: 1280px;
    /* Tailwind xl defaults */
    position: relative;
    z-index: 10;
}

.sub-hero-content {
    text-align: center;
}

.sub-hero-badge {
    display: inline-block;
    padding: 0.25rem 0.75rem;
    border-radius: 9999px;
    background-color: rgba(37, 99, 235, 0.3);
    /* bg-blue-600/30 */
    border: 1px solid rgba(59, 130, 246, 0.5);
    /* border-blue-500/50 */
    color: #93c5fd;
    /* text-blue-300 */
    font-size: 0.875rem;
    font-weight: 600;
    margin-bottom: 1rem;
}

.sub-hero-hashtag {
    display: inline-block;
    padding: 0.6rem 1.5rem;
    border-radius: 9999px;
    background-color: rgba(255, 255, 255, 0.2);
    border: 1.5px solid rgba(255, 255, 255, 0.3);
    color: #ffffff;
    font-size: 0.9rem;
    font-weight: 300;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    white-space: nowrap;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
    z-index: 20;
}

.sub-hero-hashtag:hover {
    background-color: rgba(255, 255, 255, 0.3);
    transform: translateY(-3px);
    border-color: rgba(255, 255, 255, 0.5);
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.2);
    color: #ffffff;
}

.sub-hero-title {
    font-size: 2.25rem;
    /* text-4xl */
    line-height: 2.5rem;
    font-weight: 700;
    margin-bottom: 1.5rem;
}

@media (min-width: 768px) {
    .sub-hero-title {
        font-size: 3rem;
        /* text-5xl */
        line-height: 1;
    }
}

.sub-hero-desc {
    font-size: 1.125rem;
    /* text-lg */
    color: #cbd5e1;
    /* text-slate-300 */
    max-width: 48rem;
    /* max-w-3xl */
    margin-left: auto;
    margin-right: auto;
    margin-bottom: 2rem;
    text-align: center;
}

/* Sub Tab Navigation */
.sub-tab-nav {
    border-bottom: 1px solid #dddddd;
    /* border-slate-200 */
    background-color: white;
    position: sticky;
    top: 121px;
    /* Adjusted for initial header height */
    z-index: 2000;
    transition: top 0.3s ease;
    /* Match header transition if possible */
}

body.scrolled .sub-tab-nav {
    top: 101px;
    /* Adjusted for scrolled header height (121 - 20) */
}

.sub-tab-list {
    display: flex;
    width: 100%;
}

.sub-tab-item {
    flex: 1;
    text-align: center;
    padding-top: 1rem;
    padding-bottom: 1rem;
    border-bottom: 3px solid transparent;
    color: #666666;
    /* text-slate-500 */
    white-space: nowrap;
    font-size: 1.25rem;
    /* text-xl */
    text-decoration: none;
    transition: all 0.2s;
}

.sub-tab-item:hover {
    color: #e60013;
    /* text-slate-800 */
}

.sub-tab-item.active {
    border-color: #e60013;
    color: #e60013;
    font-weight: 700;
}

/* AI Overview Section */
.ai-overview-section {
    padding-top: 5rem;
    /* py-20 */
    padding-bottom: 5rem;
    background-color: white;
}

.ai-overview-wrapper {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 3rem;
}

@media (min-width: 768px) {
    .ai-overview-wrapper {
        flex-direction: row;
    }
}

.ai-overview-image-col {
    width: 100%;
}

@media (min-width: 768px) {
    .ai-overview-image-col {
        width: 40%;
    }
}

.ai-overview-img {
    border-radius: 0.75rem;
    /* rounded-xl */
    box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1);
    /* shadow-lg */
    width: 100%;
    object-fit: cover;
    display: block;
}

.ai-overview-text-col {
    width: 100%;
}

@media (min-width: 768px) {
    .ai-overview-text-col {
        width: 60%;
    }
}

.ai-overview-label {
    color: #e60013;
    /* Red */
    font-weight: 300;
    /* Light 300 */
    font-size: 1.125rem;
    /* text-lg */
    margin-bottom: 0.5rem;
    display: block;
}

.ai-overview-title {
    font-size: 1.875rem;
    /* text-3xl */
    font-weight: 700;
    color: #333333;
    /* text-slate-900 */
    margin-bottom: 1.5rem;
}

.ai-overview-desc {
    color: #333333;
    /* text-slate-600 */
    font-size: 1.125rem;
    /* text-lg */
    line-height: 1.625;
    margin-bottom: 1.5rem;
}

/* AI Services Section */
.ai-services-section {
    padding-top: 5rem;
    padding-bottom: 5rem;
    background-color: #f8fafc;
    /* bg-slate-50 */
}

.ai-services-header {
    text-align: center;
    margin-bottom: 4rem;
    max-width: 48rem;
    margin-left: auto;
    margin-right: auto;
}

.ai-services-title {
    font-size: 2.25rem;
    font-weight: 800;
    color: #333333;
    margin-bottom: 1rem;
}

.ai-services-subtitle {
    font-size: 1.125rem;
    color: #333333;
}

.ai-services-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 2rem;
}

@media (min-width: 768px) {
    .ai-services-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

.service-card {
    background-color: white;
    border-radius: 1rem;
    padding: 2.5rem;
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.05), 0 2px 4px -1px rgba(0, 0, 0, 0.03);
    transition: transform 0.2s, box-shadow 0.2s;
    border: 1px solid #e2e8f0;
}

.service-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
}

.service-icon-box {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 3.5rem;
    height: 3.5rem;
    border-radius: 0.75rem;
    margin-bottom: 1.5rem;
}

.service-icon-box svg {
    width: 2rem;
    height: 2rem;
}


.service-icon-box.blue {
    background-color: #eff6ff;
    color: #3b82f6;
}

.service-icon-box.teal {
    background-color: #f0fdfa;
    color: #14b8a6;
}

.service-icon-box.indigo {
    background-color: #eef2ff;
    color: #6366f1;
}

.service-icon-box.purple {
    background-color: #f3e8ff;
    color: #a855f7;
}

.service-card-title {
    font-size: 1.5rem;
    font-weight: 700;
    color: #0f172a;
    margin-bottom: 1rem;
}

.service-card-desc {
    color: #475569;
    line-height: 1.6;
    margin-bottom: 1.5rem;
    font-size: 1rem;
}

.service-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.service-list li {
    position: relative;
    padding-left: 1.5rem;
    color: #64748b;
    margin-bottom: 0.5rem;
    font-size: 0.95rem;
}

.service-list li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0.6em;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background-color: currentColor;
}


/* Solution Edge Page Specific Styles */
.glass-dark {
    background: rgba(15, 23, 42, 0.9);
    backdrop-filter: blur(12px);
    border-bottom: 1px solid rgba(255, 255, 255, 0.05);
}

.group:hover .group-hover\:block {
    display: block;
    animation: fadeIn 0.2s ease-in-out;
}

@keyframes fadeIn {
    from {
        opacity: 0;
        transform: translateY(-10px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.btn-container {
    text-align: center;
    width: 100%;
    margin-top: 60px;
    margin-bottom: 40px;
}

/* CEREBRO Edge Brochure Button Style */
.red-brochure-btn-container {
    text-align: center !important;
    width: 100% !important;
    margin-top: 60px !important;
    margin-bottom: 60px !important;
    display: flex !important;
    justify-content: center !important;
}

.red-brochure-btn {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    background-color: #e60013 !important;
    color: #ffffff !important;
    padding: 18px 45px !important;
    border-radius: 50px !important;
    font-size: 1.3rem !important;
    font-weight: 700 !important;
    text-decoration: none !important;
    gap: 12px !important;
    transition: all 0.3s ease !important;
    border: none !important;
    cursor: pointer !important;
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06) !important;
}

.red-brochure-btn:hover {
    background-color: #c40010 !important;
    box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04) !important;
    transform: translateY(-3px) !important;
}

.red-brochure-btn span {
    color: #ffffff !important;
}

.red-brochure-btn svg {
    width: 26px !important;
    height: 26px !important;
    stroke: #ffffff !important;
    stroke-width: 2.5 !important;
    transition: transform 0.3s ease !important;
    flex-shrink: 0 !important;
}

.red-brochure-btn:hover svg {
    transform: translateX(5px) !important;
}

.service-icon-box.blue+.service-card-title+.service-card-desc+.service-list li::before {
    background-color: #3b82f6;
}

.service-icon-box.teal+.service-card-title+.service-card-desc+.service-list li::before {
    background-color: #14b8a6;
}

.service-icon-box.indigo+.service-card-title+.service-card-desc+.service-list li::before {
    background-color: #6366f1;
}

.service-icon-box.purple+.service-card-title+.service-card-desc+.service-list li::before {
    background-color: #a855f7;
}

/* Page Title Section (e.g., CEO Message, AI, etc.) */
.page-title-section {
    padding-top: 5rem;
    /* py-20 equivalent or slightly less depending on spacing needed */
    padding-bottom: 2rem;
    text-align: center;
    background-color: white;
}

.page-title-line {
    width: 1px;
    height: 2rem;
    /* Roughly 32px */
    background-color: #aaaaaa;
    /* slate-300 */
    margin: 0 auto 1.5rem;
    /* Center and margin bottom */
    display: block;
}

.page-title-text {
    font-size: 2.5rem;
    /* 36px/text-4xl */
    font-weight: 800;
    color: #0f172a;
    /* slate-900 */
    line-height: 1.2;
}

/* Mobile Location Bar Styles (Responsive < 980px) */
.mobile-location-bar {
    display: none;
    width: 100%;
    height: 50px;
    align-items: center;
    background-color: white;
    border-bottom: 1px solid #e2e8f0;
}

.loc-home {
    width: 50px;
    height: 50px;
    background-color: #e60013;
    display: flex;
    justify-content: center;
    align-items: center;
    color: white;
    text-decoration: none;
    flex-shrink: 0;
}

.loc-dropdown {
    position: relative;
    flex: 1;
    height: 100%;
    border-left: 1px solid #e2e8f0;
}

.loc-btn {
    width: 100%;
    height: 100%;
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0 1.5rem;
    background: white;
    font-size: 1rem;
    font-weight: 500;
    color: #333;
    cursor: pointer;
    border: none;
    outline: none;
}

.loc-list {
    display: none;
    position: absolute;
    top: 50px;
    left: -1px;
    right: -1px;
    background: white;
    border: 1px solid #e2e8f0;
    border-top: none;
    list-style: none;
    padding: 0;
    margin: 0;
    z-index: 1000;
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.05);
}

.loc-list.active {
    display: block;
}

.loc-list li a {
    display: block;
    padding: 0.75rem 1.5rem;
    text-decoration: none;
    color: #666;
    border-bottom: 1px solid #f1f5f9;
    font-size: 0.95rem;
}

.loc-list li a:hover {
    background-color: #f8fafc;
    color: #e60013;
}

/* Media Query for Mobile Navigation */
@media (max-width: 980px) {
    .sub-tab-list {
        display: none !important;
    }

    .mobile-location-bar {
        display: flex !important;
    }

    .sub-tab-nav .sub-container {
        padding-left: 0 !important;
        padding-right: 0 !important;
        width: 100% !important;
        max-width: 100% !important;
    }

    /* Adjust sticky top for mobile header height */
    .sub-tab-nav {
        top: 86px;
    }

    body.scrolled .sub-tab-nav {
        top: 66px;
    }
}

/* Partners Strip */
.partners-strip {
    background-color: #ffffff;
    border-top: none;
    padding: 1rem 0 4rem;
    overflow: hidden;
    margin-top: -50px;
    position: relative;
    z-index: 5;
}

.partners-strip .container {
    overflow: hidden;
    position: relative;
    max-width: 100%;
    padding: 0 20px;
}

/* Partner Strip Styles - Updated to match HTML */
.marquee-content {
    display: flex;
    gap: 5rem;
    width: max-content;
    animation: scrollPartners 30s linear infinite;
}

.marquee-content:hover {
    animation-play-state: paused;
}

/* Individual Images within Marquee */
.marquee-content img {
    max-width: 100%;
    max-height: 50px;
    /* Enforce height */
    width: auto;
    object-fit: contain;
    /* Force color display */
    filter: none !important;
    -webkit-filter: none !important;
    opacity: 1 !important;
    transition: transform 0.3s ease;
    margin: 0 20px;
    flex-shrink: 0;
}

.marquee-content img:hover {
    transform: scale(1.05);
}

@keyframes scrollPartners {
    0% {
        transform: translateX(0);
    }

    100% {
        transform: translateX(-50%);
    }
}

/* Responsive News Section */
@media (max-width: 900px) {
    .news-thumb {
        width: 150px;
    }

    .news-info h5 {
        font-size: 1.15rem;
    }

    .news-info .summary {
        font-size: 0.95rem;
    }
}

@media (max-width: 600px) {
    .news-item {
        gap: 15px;
        padding: 20px 0;
    }

    .news-thumb {
        width: 110px;
    }

    .news-info h5 {
        font-size: 1.05rem;
        margin-bottom: 5px;
    }

    .news-info .date {
        font-size: 0.85rem;
    }

    .news-info .summary {
        font-size: 0.9rem;
        -webkit-line-clamp: 3;
    }
}

/* Hero Full Banner (for Image-only slides) */
.hero-full-banner {
    width: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
}

.hero-full-banner img {
    width: 100%;
    max-width: 1200px;
    /* Adjust based on container */
    height: auto;
    object-fit: contain;
    border-radius: 20px;
    box-shadow: 0 15px 40px rgba(0, 0, 0, 0.1);
}

@media (max-width: 768px) {
    .hero-full-banner img {
        border-radius: 10px;
    }
}

/* Layer Popup Responsive */
@media (max-width: 768px) {
    .layer-popup {
        width: 90% !important;
        top: 50% !important;
        left: 50% !important;
        transform: translate(-50%, -50%) !important;
        margin: 0 !important;
        max-height: 80vh !important;
    }
}

.sub-hero-bg.company-bg {
    background-image: url('../images/hero_company_overview.png');
}

/* Cerebro Edge Sub-page Custom Styles */
.edge-innovation-section {
    padding: 60px 0 100px 0;
    background-color: #ffffff;
}

.edge-section-header {
    text-align: center;
    margin-bottom: 3rem;
    max-width: 48rem;
    margin-left: auto;
    margin-right: auto;
}

.edge-section-header.spacing-top {
    margin-top: 5rem;
}

.edge-section-title {
    font-size: 2.25rem;
    font-weight: 800;
    color: #333333;
    margin-bottom: 1rem;
}

.edge-section-subtitle {
    font-size: 1.125rem;
    color: #333333;
}

.edge-innovation-grid {
    display: grid;
    grid-template-columns: repeat(1, minmax(0, 1fr));
    gap: 2rem;
}

@media (min-width: 768px) {
    .edge-innovation-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

.edge-innovation-card {
    background-color: #fff;
    border-radius: 0.75rem;
    box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
    padding: 2.5rem;
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    transition: transform 0.3s ease;
    border: 1px solid #f3f4f6;
}

.edge-innovation-card:hover {
    transform: translateY(-0.5rem);
}

.edge-innovation-icon {
    width: 5rem;
    height: 5rem;
    background-color: #fef2f2;
    border-radius: 9999px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #e60013;
    margin-bottom: 1.5rem;
}

.edge-innovation-icon svg {
    width: 2.5rem;
    height: 2.5rem;
}

.edge-innovation-name {
    font-size: 1.75rem;
    font-weight: 700;
    margin-bottom: 0.5rem;
    color: #0f172a;
}

.edge-innovation-action {
    color: #e60013;
    font-weight: 700;
    font-size: 1.5rem;
    margin-bottom: 0.5rem;
}

.edge-innovation-phase {
    color: #6b7280;
    font-size: 1.05rem;
}

/* AI Detail Service Section */
.ai-detail-wrapper {
    margin-top: 0.5rem;
    position: relative;
    width: 100%;
    z-index: 5;
}

.ai-detail-arrow-row {
    display: grid;
    grid-template-columns: 1fr;
    gap: 2rem;
    width: 100%;
    margin-bottom: -1px;
    /* Stitch to container */
}

@media (min-width: 768px) {
    .ai-detail-arrow-row {
        grid-template-columns: repeat(3, 1fr);
    }
}

.ai-detail-arrow-item {
    display: flex;
    justify-content: center;
    position: relative;
    z-index: 20;
}

.ai-detail-arrow-item svg {
    fill: #fef2f2;
    filter: drop-shadow(0 -2px 2px rgba(0, 0, 0, 0.03));
}

.ai-detail-container {
    background-color: #fef2f2;
    border-radius: 2rem;
    padding: 1.5rem;
    width: 100%;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(90px, 1fr));
    gap: 1.25rem;
    justify-content: center;
    box-shadow: inset 0 2px 4px 0 rgba(0, 0, 0, 0.05);
}

.ai-detail-item {
    background-color: #ffffff;
    border-radius: 50%;
    aspect-ratio: 1 / 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: 0.75rem;
    /* Reduced padding */
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
    transition: transform 0.3s ease;
}

.ai-detail-item:hover {
    transform: translateY(-5px);
}

.ai-detail-item .title {
    font-size: 1.05rem;
    font-weight: 800;
    color: #1e293b;
    white-space: nowrap;
}

.ai-detail-item .sub {
    font-size: 0.85rem;
    color: #475569;
    margin-top: 0.15rem;
}

@media (max-width: 768px) {
    .ai-detail-container {
        grid-template-columns: repeat(3, 1fr);
        padding: 1.5rem;
    }

    .ai-detail-arrow {
        width: 100%;
    }
}

@media (max-width: 480px) {
    .ai-detail-container {
        grid-template-columns: repeat(2, 1fr);
    }
}

/* Red Brochure Button */
.btn-red-brochure {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 1.25rem 2.5rem;
    font-size: 1.25rem;
    font-weight: 700;
    color: #ffffff !important;
    background-color: #e60013;
    border-radius: 9999px;
    text-decoration: none;
    transition: all 0.3s ease;
    gap: 0.75rem;
    border: none;
    cursor: pointer;
    margin: 0 auto;
}

.btn-red-brochure:hover {
    background-color: #c40010;
    box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
    transform: translateY(-2px);
}

.btn-red-brochure svg {
    width: 1.5rem !important;
    height: 1.5rem !important;
    transition: transform 0.3s ease;
}

.btn-red-brochure:hover svg {
    transform: translateX(4px);
}

/* Key Features Section */
.edge-features-section {
    padding: 100px 0 60px 0;
    background-color: #f8fafc;
}

.edge-features-grid {
    display: grid;
    grid-template-columns: repeat(1, minmax(0, 1fr));
    gap: 2rem;
}

@media (min-width: 1024px) {
    .edge-features-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

.edge-feature-card {
    background-color: #fff;
    padding: 2rem;
    border-radius: 0.75rem;
    box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06);
    border: 1px solid #f3f4f6;
    display: flex;
    align-items: flex-start;
    gap: 1.5rem;
    transition: box-shadow 0.3s ease;
}

.edge-feature-card:hover {
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
}

.edge-feature-number {
    width: 3.5rem;
    height: 3.5rem;
    flex-shrink: 0;
    background-color: rgba(230, 0, 19, 0.1);
    color: #e60013;
    border-radius: 0.5rem;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    font-size: 1.25rem;
}

.edge-feature-title {
    font-size: 1.5rem;
    font-weight: 700;
    margin-bottom: 0.75rem;
    color: #0f172a;
}

.edge-feature-desc {
    color: #4b5563;
    font-size: 1.05rem;
    line-height: 1.75;
}

/* Benefits (Key Features) Section - New Row Layout */
.sol-benefits-list {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
    margin-top: 3rem;
}

.sol-benefit-item {
    display: flex;
    align-items: flex-start;
    gap: 2rem;
    background-color: #ffffff;
    padding: 2.5rem;
    border-radius: 1.25rem;
    border: 1px solid #eef2f6;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.02);
}

.sol-benefit-item:hover {
    transform: translateX(10px);
    border-color: #e60013;
    box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.05);
}

.sol-benefit-icon-wrap {
    flex-shrink: 0;
}

.sol-benefit-icon-box {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 4.5rem;
    height: 4.5rem;
    border-radius: 1rem;
    transition: transform 0.3s ease;
}

.sol-benefit-item:hover .sol-benefit-icon-box {
    transform: scale(1.1);
}

.sol-benefit-icon-box.red {
    background-color: #fef2f2;
    color: #e60013;
}

.sol-benefit-icon-box.blue {
    background-color: #eff6ff;
    color: #3b82f6;
}

.sol-benefit-icon-box.green {
    background-color: #f0fdf4;
    color: #22c55e;
}

.sol-benefit-icon-box.purple {
    background-color: #f3e8ff;
    color: #a855f7;
}

.sol-benefit-content {
    flex: 1;
}

.sol-benefit-title {
    font-size: 1.35rem;
    font-weight: 800;
    color: #0f172a;
    margin-bottom: 0.75rem;
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.sol-benefit-desc {
    color: #475569;
    font-size: 1.05rem;
    line-height: 1.6;
    margin-bottom: 1.25rem;
}

.sol-benefit-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
}

.sol-benefit-tag {
    font-size: 0.875rem;
    padding: 0.35rem 0.85rem;
    background-color: #f1f5f9;
    color: #64748b;
    border-radius: 9999px;
    font-weight: 500;
}

@media (max-width: 768px) {
    .sol-benefit-item {
        flex-direction: column;
        padding: 2rem;
        gap: 1.5rem;
    }

    .sol-benefit-item:hover {
        transform: translateY(-5px);
    }
}

/* =========================================
   Sub Page: Company Overview
   ========================================= */

/* Hero Section */
.overview-hero-section {
    position: relative;
    /* height: 500px;  Adjust based on preference, or leave auto */
}

.overview-hero-bg {
    /* Assuming class .sub-hero-bg is defined elsewhere, if not need to check */
    /* Add specific overrides if needed */
}

/* Page Title Section */
.overview-title-section {
    padding-top: 5rem;
    padding-bottom: 5rem;
    background-color: var(--white);
}

.overview-title-container {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 3rem;
}

@media (min-width: 768px) {
    .overview-title-container {
        flex-direction: row;
    }
}

.overview-symbol-img {
    border-radius: 1rem;
    box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
    width: 100%;
    object-fit: cover;
    height: 500px;
}

.overview-message-content {
    width: 100%;
}

@media (min-width: 768px) {
    .overview-message-content {
        width: 66.666667%;
    }
}

.overview-message-label {
    color: var(--primary-color);
    font-weight: 700;
    font-size: 1.125rem;
    margin-bottom: 0.5rem;
}

.overview-message-title {
    font-size: 1.875rem;
    line-height: 2.25rem;
    font-weight: 700;
    color: var(--text-dark);
    margin-bottom: 1.5rem;
}

.overview-message-text {
    color: var(--text-body);
    line-height: 1.625;
    margin-bottom: 1.5rem;
    font-size: 1.125rem;
}

.overview-ceo-name {
    font-weight: 700;
    color: var(--text-dark);
    font-size: 1.25rem;
}

/* Statistics Section */
.overview-stats-section {
    padding-top: 5rem;
    padding-bottom: 3rem;
    /* Reduced from 5rem */
    background-color: transparent;
    /* Changed to transparent */
}

.overview-section-header-wrapper {
    text-align: center;
    margin-bottom: 4rem;
    /* Increased margin for headers */
}

/* Statistics & Vision Wrapper */
.overview-bg-wrapper {
    background-color: var(--bg-light);
    background-image: url('/images/company_overview_cont_bg.jpg');
    background-size: cover;
    background-position: center;
}

.overview-stats-header {
    text-align: center;
    margin-bottom: 4rem;
}

.overview-stats-title {
    font-size: 1.875rem;
    line-height: 2.25rem;
    font-weight: 700;
    color: var(--text-dark);
    margin-bottom: 1.5rem;
}

@media (min-width: 768px) {
    .overview-stats-title {
        font-size: 2.25rem;
        line-height: 2.5rem;
    }
}

.overview-stats-desc {
    color: var(--text-body);
    margin-bottom: 4rem;
    line-height: 1.625;
    max-width: 56rem;
    margin-left: auto;
    margin-right: auto;
    word-break: keep-all;
}

.overview-stats-grid {
    display: grid;
    grid-template-columns: repeat(1, minmax(0, 1fr));
    gap: 1.5rem;
}

@media (min-width: 768px) {
    .overview-stats-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (min-width: 1024px) {
    .overview-stats-grid {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

.overview-stat-card {
    background-color: rgba(255, 255, 255, 0.7);
    backdrop-filter: blur(10px);
    padding: 2rem;
    border-radius: 1rem;
    box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
    transition: transform 0.3s;
    /* aspect-ratio removed for mobile optimization */
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}

.overview-stat-card:hover {
    transform: translateY(-0.5rem);
}

.overview-stat-label {
    text-align: left;
    margin-bottom: 2rem;
    height: auto;
    /* Remove fixed height */
}

.overview-stat-label h4 {
    color: var(--primary-color);
    font-weight: 700;
    font-size: 1.25rem;
    /* Reduced for mobile */
    margin-bottom: 0.5rem;
}

.overview-stat-label span {
    font-size: 0.875rem;
    /* Reduced for mobile */
}

.overview-stat-value {
    text-align: right;
}

.overview-stat-number {
    font-size: 3rem;
    /* Reduced for mobile */
    line-height: 1;
    font-weight: 700;
    color: var(--text-dark);
}

.overview-stat-plus {
    font-size: 3rem;
    font-weight: 900;
    color: var(--text-dark);
    vertical-align: super;
    margin-left: 0.25rem;
    line-height: 1;
}

/* Desktop Overrides - Must be AFTER base styles */
@media (min-width: 1024px) {
    .overview-stat-card {
        aspect-ratio: 1 / 1;
    }

    .overview-stat-number {
        font-size: 4rem;
    }

    .overview-stat-label h4 {
        font-size: 1.5rem;
    }

    .overview-stat-label span {
        font-size: 1rem;
    }
}

.overview-stat-unit {
    font-size: 1.5rem;
    line-height: 1.75rem;
    color: var(--text-body);
    font-weight: 500;
    margin-left: 0.25rem;
}

/* Vision & Mission Section */
.overview-vision-section {
    padding-top: 4rem;
    padding-bottom: 3rem;
    background-color: transparent;
}

.overview-vision-grid {
    display: grid;
    grid-template-columns: repeat(1, minmax(0, 1fr));
    gap: 2rem;
}

@media (min-width: 768px) {
    .overview-vision-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

.overview-vision-card {
    background-color: #ffffff;
    /* Solid White */
    border: 1px solid #e2e8f0;
    padding: 3rem 2.5rem;
    border-radius: 1rem;
    text-align: left;
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.05);
    transition: all 0.3s ease;
    height: 100%;
    position: relative;
    overflow: hidden;
    display: flex;
    flex-direction: row;
    /* Horizontal Layout */
    align-items: center;
    gap: 2rem;
}




.overview-vision-card:hover {
    transform: translateY(-8px);
    box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
}

.overview-vision-card.vision {
    border-left: 6px solid var(--primary-color);
}

.overview-vision-card.vision:hover {
    border-color: #e2e8f0;
    border-left-color: var(--primary-color);
}

.overview-vision-card.mission {
    border-left: 6px solid #334155;
    /* Dark Slate */
}

.overview-vision-card.mission:hover {
    border-color: #e2e8f0;
    border-left-color: #334155;
}

.overview-vision-icon {
    width: 4.5rem;
    height: 4.5rem;
    border-radius: 50%;
    margin: 0;
    /* Reset margin */
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    font-size: 1.75rem;
    flex-shrink: 0;
    /* Prevent icon shrinking */
}

/* Remove hover scale/rotate for cleaner look or keep it subtle */
.overview-vision-card:hover .overview-vision-icon {
    transform: scale(1.05);
}

.overview-vision-card.vision .overview-vision-icon {
    background-color: #fff0f0;
    color: var(--primary-color);
}

.overview-vision-card.mission .overview-vision-icon {
    background-color: #f1f5f9;
    color: #334155;
    box-shadow: 0 4px 12px rgba(51, 65, 85, 0.15);
}

.overview-vision-title {
    font-size: 2.25rem;
    font-weight: 800;
    color: #333333;
    margin-bottom: 1rem;
}

.overview-vision-desc {
    font-size: 1.125rem;
    color: #333333;
}

.overview-card-title {
    font-size: 1.5rem;
    /* Larger Title */
    font-weight: 500;
    color: #e60013;
    margin-bottom: 1rem;
}

.overview-card-desc {
    font-size: 1.125rem;
    color: var(--text-body);
    line-height: 1.4;
}

@media (min-width: 1024px) {
    .overview-card-desc {
        font-size: 1.5rem;
    }
}

/* Core Values & Management Philosophy Section */
.overview-values-section,
.overview-philosophy-section {
    padding-top: 5rem;
    padding-bottom: 5rem;
    background-color: transparent;
}

.overview-values-grid {
    display: grid;
    grid-template-columns: repeat(1, minmax(0, 1fr));
    gap: 1.5rem;
}

@media (min-width: 768px) {
    .overview-values-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

.overview-value-item {
    background-color: rgba(255, 255, 255, 0.5);
    /* Glassmorphism Base */
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    border: 1px solid rgba(255, 255, 255, 0.4);
    border-radius: 1rem;
    padding: 2.5rem 2rem;
    text-align: left;
    /* Changed alignment */
    transition: all 0.3s ease;
    border-top: 4px solid transparent;
    /* Prepare for hover border */
    position: relative;
    overflow: hidden;
}

.overview-value-item:hover {
    transform: translateY(-5px);
    background-color: rgba(255, 255, 255, 0.85);
    box-shadow: 0 10px 20px -5px rgba(0, 0, 0, 0.1);
}

/* Specific Top Borders */
.overview-value-item:nth-child(1) {
    border-top-color: var(--primary-color);
}

.overview-value-item:nth-child(2) {
    border-top-color: #334155;
}

.overview-value-item:nth-child(3) {
    border-top-color: #4f46e5;
}

.overview-value-icon {
    font-size: 3.5rem;
    /* Large Number */
    font-weight: 900;
    color: rgba(0, 0, 0, 0.06);
    /* Watermark style */
    position: absolute;
    top: 1rem;
    right: 1.5rem;
    margin-bottom: 0;
    line-height: 1;
    transition: all 0.3s ease;
    z-index: 0;
    background-color: transparent;
    /* Remove bg color */
    width: auto;
    /* Reset width/height */
    height: auto;
}

.overview-value-item:hover .overview-value-icon {
    color: rgba(0, 0, 0, 0.1);
    transform: scale(1.1);
}

.overview-value-item h3,
.overview-value-item p {
    position: relative;
    z-index: 1;
    /* Ensure text is above watermark */
}

.overview-value-title {
    font-size: 1.35rem;
    font-weight: 800;
    color: var(--text-dark);
    margin-bottom: 1rem;
    margin-top: 1rem;
}

.overview-value-title span {
    display: block;
    font-size: 0.9em;
    font-weight: 500;
    color: var(--text-light);
    margin-top: 2px;
}



/* Utility Animations extracted from sub_company_overview.html */
.glass-dark {
    background: rgba(15, 23, 42, 0.9);
    backdrop-filter: blur(12px);
    border-bottom: 1px solid rgba(255, 255, 255, 0.05);
}

.group:hover .group-hover-block {
    display: block;
    animation: fadeIn 0.2s ease-in-out;
}

@keyframes fadeIn {
    from {
        opacity: 0;
        transform: translateY(-10px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Management Philosophy Styles */
.overview-philosophy-item {
    background-color: #ffffff;
    border: 1px solid #e2e8f0;
    border-radius: 1.5rem;
    padding: 3rem 2rem;
    text-align: center;
    transition: all 0.3s ease;
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.05);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    height: 100%;
}

.overview-philosophy-item:hover {
    transform: translateY(-10px);
    box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
    border-color: var(--primary-color);
}

.overview-philosophy-icon {
    width: 5rem;
    height: 5rem;
    background-color: #fef2f2;
    color: var(--primary-color);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 1.5rem;
    transition: transform 0.3s ease;
}

.overview-philosophy-icon svg {
    width: 2.5rem;
    height: 2.5rem;
}

.overview-philosophy-item:hover .overview-philosophy-icon {
    transform: scale(1.1) rotate(5deg);
    background-color: var(--primary-color);
    color: #ffffff;
}

/* Technical Support Procedure Styles (Refactored) */
.tech-step-icon {
    width: 3rem;
    height: 3rem;
    background-color: #ffe5e5;
    border-radius: 9999px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-left: auto;
    margin-right: auto;
    margin-bottom: 0.75rem;
    color: #e60013;
    font-size: 1.125rem;
    font-weight: 700;
    z-index: 10;
    position: relative;
}

.tech-step-title {
    font-size: 1.25rem;
    font-weight: 700;
    color: #0f172a;
    margin-bottom: 0.5rem;
}

.tech-step-desc {
    color: #475569;
    font-size: 0.95rem;
    line-height: 1.4;
}

.tech-step-line {
    display: none;
    position: absolute;
    top: 1.5rem;
    left: 50%;
    width: 100%;
    height: 0.125rem;
    background-color: #e2e8f0;
    z-index: 0;
}

@media (min-width: 768px) {
    .tech-step-line {
        display: block;
    }
}

/* Location Page Styles (Refined) */
.location-info-card {
    background-color: #ffffff;
    border: 1px solid #e2e8f0;
    border-radius: 1rem;
    padding: 2.5rem;
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.05);
    height: 100%;
}

.location-icon-wrapper {
    width: 3.5rem;
    height: 3.5rem;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.location-icon-wrapper.primary {
    background-color: #fef2f2;
    color: #e60013;
}

.location-icon-wrapper.secondary {
    background-color: #f1f5f9;
    color: #475569;
}